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 @@
#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/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.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/common/service_manager_connection.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#include "services/identity/public/mojom/constants.mojom.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/identity/public/cpp/identity_manager.h"
namespace extensions {
......@@ -27,36 +27,18 @@ ExtensionFunction::ResponseAction IdentityGetProfileUserInfoFunction::Run() {
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;
if (account_info) {
profile_user_info.email = account_info->email;
profile_user_info.id = account_info->gaia;
if (extension()->permissions_data()->HasAPIPermission(
APIPermission::kIdentityEmail)) {
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
......@@ -5,11 +5,8 @@
#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_
#include "components/signin/core/browser/account_info.h"
#include "extensions/browser/extension_function.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 {
......@@ -22,14 +19,9 @@ class IdentityGetProfileUserInfoFunction : public UIThreadExtensionFunction {
private:
~IdentityGetProfileUserInfoFunction() override;
void OnReceivedPrimaryAccountInfo(
const base::Optional<AccountInfo>& account_info,
const identity::AccountState& account_state);
// UIThreadExtensionFunction implementation.
ExtensionFunction::ResponseAction Run() override;
identity::mojom::IdentityManagerPtr identity_manager_;
};
} // 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