Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(303)

Unified Diff: chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc

Issue 2753753007: Introduce Identity Service and its initial usage (Closed)
Patch Set: Response to reviews Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc
diff --git a/chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc b/chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc
index 0940586623b4d09a5a3d803c6aa7f49d128616ac..84a1253fb719917256a5710a56f02c9fd0d64ab5 100644
--- a/chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.cc
@@ -6,11 +6,12 @@
#include "chrome/browser/extensions/api/identity/identity_constants.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/common/extensions/api/identity.h"
-#include "components/signin/core/browser/signin_manager.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/interfaces/constants.mojom.h"
+#include "services/service_manager/public/cpp/connector.h"
namespace extensions {
@@ -25,16 +26,35 @@ ExtensionFunction::ResponseAction IdentityGetProfileUserInfoFunction::Run() {
return RespondNow(Error(identity_constants::kOffTheRecord));
}
- AccountInfo account = SigninManagerFactory::GetForProfile(
- GetProfile())->GetAuthenticatedAccountInfo();
- api::identity::ProfileUserInfo profile_user_info;
- if (extension()->permissions_data()->HasAPIPermission(
+ if (!extension()->permissions_data()->HasAPIPermission(
APIPermission::kIdentityEmail)) {
- profile_user_info.email = account.email;
- profile_user_info.id = account.gaia;
+ api::identity::ProfileUserInfo profile_user_info;
+ return RespondNow(OneArgument(profile_user_info.ToValue()));
+ }
+
+ content::BrowserContext::GetConnectorFor(GetProfile())
+ ->BindInterface(identity::mojom::kServiceName,
+ mojo::MakeRequest(&identity_manager_));
+
+ identity_manager_->GetPrimaryAccountId(base::Bind(
+ &IdentityGetProfileUserInfoFunction::OnReceivedPrimaryAccountId, this));
+
+ return RespondLater();
+}
+
+void IdentityGetProfileUserInfoFunction::OnReceivedPrimaryAccountId(
+ const base::Optional<AccountId>& account_id) {
+ DCHECK(extension()->permissions_data()->HasAPIPermission(
+ APIPermission::kIdentityEmail));
+
+ api::identity::ProfileUserInfo profile_user_info;
+
+ if (account_id) {
+ profile_user_info.email = account_id->GetUserEmail();
+ profile_user_info.id = account_id->GetGaiaId();
}
- return RespondNow(OneArgument(profile_user_info.ToValue()));
+ Respond(OneArgument(profile_user_info.ToValue()));
}
} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/api/identity/identity_get_profile_user_info_function.h ('k') | chrome/browser/profiles/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698