Commit 4d724e74 authored by Henrique Ferreiro's avatar Henrique Ferreiro Committed by Commit Bot

Move IdentityGetProfileUserInfoFunction to C++ IdentityManager

Remove the usage of the IdentityManager Mojo API in favor of the C++
API for consistency with other //chrome/browser code.

Bug: 928187
Change-Id: Id6431d3ec57c0b7dc872ed5e23d863dd3c96e922
Reviewed-on: https://chromium-review.googlesource.com/c/1454527
Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarDavid Roger <droger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629990}
parent e5de243e
...@@ -4,15 +4,15 @@ ...@@ -4,15 +4,15 @@
#include "chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.h" #include "chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.h"
#include "base/bind.h"
#include "chrome/browser/extensions/api/identity/identity_constants.h" #include "chrome/browser/extensions/api/identity/identity_constants.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/extensions/api/identity.h" #include "chrome/common/extensions/api/identity.h"
#include "components/signin/core/browser/account_info.h"
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
#include "content/public/common/service_manager_connection.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h" #include "extensions/common/permissions/permissions_data.h"
#include "services/identity/public/mojom/constants.mojom.h" #include "services/identity/public/cpp/identity_manager.h"
#include "services/service_manager/public/cpp/connector.h"
namespace extensions { namespace extensions {
...@@ -27,36 +27,18 @@ ExtensionFunction::ResponseAction IdentityGetProfileUserInfoFunction::Run() { ...@@ -27,36 +27,18 @@ ExtensionFunction::ResponseAction IdentityGetProfileUserInfoFunction::Run() {
return RespondNow(Error(identity_constants::kOffTheRecord)); return RespondNow(Error(identity_constants::kOffTheRecord));
} }
if (!extension()->permissions_data()->HasAPIPermission(
APIPermission::kIdentityEmail)) {
api::identity::ProfileUserInfo profile_user_info;
return RespondNow(OneArgument(profile_user_info.ToValue()));
}
content::BrowserContext::GetConnectorFor(browser_context())
->BindInterface(identity::mojom::kServiceName,
mojo::MakeRequest(&identity_manager_));
identity_manager_->GetPrimaryAccountInfo(base::BindOnce(
&IdentityGetProfileUserInfoFunction::OnReceivedPrimaryAccountInfo, this));
return RespondLater();
}
void IdentityGetProfileUserInfoFunction::OnReceivedPrimaryAccountInfo(
const base::Optional<AccountInfo>& account_info,
const identity::AccountState& account_state) {
DCHECK(extension()->permissions_data()->HasAPIPermission(
APIPermission::kIdentityEmail));
api::identity::ProfileUserInfo profile_user_info; api::identity::ProfileUserInfo profile_user_info;
if (account_info) { if (extension()->permissions_data()->HasAPIPermission(
profile_user_info.email = account_info->email; APIPermission::kIdentityEmail)) {
profile_user_info.id = account_info->gaia; auto account_info = IdentityManagerFactory::GetForProfile(
Profile::FromBrowserContext(browser_context()))
->GetPrimaryAccountInfo();
profile_user_info.email = account_info.email;
profile_user_info.id = account_info.gaia;
} }
Respond(OneArgument(profile_user_info.ToValue())); return RespondNow(OneArgument(profile_user_info.ToValue()));
} }
} // namespace extensions } // namespace extensions
...@@ -5,11 +5,8 @@ ...@@ -5,11 +5,8 @@
#ifndef CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_GET_PROFILE_USER_INFO_FUNCTION_H_ #ifndef CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_GET_PROFILE_USER_INFO_FUNCTION_H_
#define CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_GET_PROFILE_USER_INFO_FUNCTION_H_ #define CHROME_BROWSER_EXTENSIONS_API_IDENTITY_IDENTITY_GET_PROFILE_USER_INFO_FUNCTION_H_
#include "components/signin/core/browser/account_info.h"
#include "extensions/browser/extension_function.h" #include "extensions/browser/extension_function.h"
#include "extensions/browser/extension_function_histogram_value.h" #include "extensions/browser/extension_function_histogram_value.h"
#include "services/identity/public/cpp/account_state.h"
#include "services/identity/public/mojom/identity_manager.mojom.h"
namespace extensions { namespace extensions {
...@@ -22,14 +19,9 @@ class IdentityGetProfileUserInfoFunction : public UIThreadExtensionFunction { ...@@ -22,14 +19,9 @@ class IdentityGetProfileUserInfoFunction : public UIThreadExtensionFunction {
private: private:
~IdentityGetProfileUserInfoFunction() override; ~IdentityGetProfileUserInfoFunction() override;
void OnReceivedPrimaryAccountInfo(
const base::Optional<AccountInfo>& account_info,
const identity::AccountState& account_state);
// UIThreadExtensionFunction implementation. // UIThreadExtensionFunction implementation.
ExtensionFunction::ResponseAction Run() override; ExtensionFunction::ResponseAction Run() override;
identity::mojom::IdentityManagerPtr identity_manager_;
}; };
} // namespace extensions } // namespace extensions
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment