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

Unified Diff: chrome/browser/profiles/profile_downloader.cc

Issue 566933005: Do not display lock for hosted domains (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unit tests Created 6 years, 3 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/profiles/profile_downloader.cc
diff --git a/chrome/browser/profiles/profile_downloader.cc b/chrome/browser/profiles/profile_downloader.cc
index 15e8ceef496f45cb3a092c4c16b27a61c899b0d7..b11e903735cef7f584d7582e02f40f81e9636198 100644
--- a/chrome/browser/profiles/profile_downloader.cc
+++ b/chrome/browser/profiles/profile_downloader.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/signin/signin_manager_factory.h"
#include "components/signin/core/browser/profile_oauth2_token_service.h"
#include "components/signin/core/browser/signin_manager.h"
+#include "components/signin/core/common/profile_management_switches.h"
#include "content/public/browser/browser_thread.h"
#include "google_apis/gaia/gaia_constants.h"
#include "google_apis/gaia/gaia_urls.h"
@@ -44,11 +45,16 @@ const char kUserEntryURL[] =
// OAuth scope for the user info API.
// For more info, see https://developers.google.com/accounts/docs/OAuth2LoginV1.
-const char kAPIScope[] = "https://www.googleapis.com/auth/userinfo.profile";
+const char kAPIEmailScope[] = "https://www.googleapis.com/auth/userinfo.email";
+const char kAPIProfileScope[] =
+ "https://www.googleapis.com/auth/userinfo.profile";
// Path in JSON dictionary to user's photo thumbnail URL.
const char kPhotoThumbnailURLPath[] = "picture";
+// Path in JSON dictionary to user's hosted domain.
+const char kHostedDomainPath[] = "hd";
+
// From the user info API, this field corresponds to the full name of the user.
const char kFullNamePath[] = "name";
@@ -138,16 +144,19 @@ bool ProfileDownloader::ParseProfileJSON(const std::string& data,
base::string16* given_name,
std::string* url,
int image_size,
- std::string* profile_locale) {
+ std::string* profile_locale,
+ base::string16* hosted_domain) {
DCHECK(full_name);
DCHECK(given_name);
DCHECK(url);
DCHECK(profile_locale);
+ DCHECK(hosted_domain);
*full_name = base::string16();
*given_name = base::string16();
*url = std::string();
*profile_locale = std::string();
+ *hosted_domain = base::string16();
int error_code = -1;
std::string error_message;
@@ -169,6 +178,7 @@ bool ProfileDownloader::ParseProfileJSON(const std::string& data,
root_dictionary->GetString(kFullNamePath, full_name);
root_dictionary->GetString(kGivenNamePath, given_name);
root_dictionary->GetString(kLocalePath, profile_locale);
+ root_dictionary->GetString(kHostedDomainPath, hosted_domain);
std::string url_string;
if (root_dictionary->GetString(kPhotoThumbnailURLPath, &url_string)) {
@@ -247,6 +257,10 @@ void ProfileDownloader::StartForAccount(const std::string& account_id) {
}
}
+base::string16 ProfileDownloader::GetProfileHostedDomain() const {
+ return profile_hosted_domain_;
+}
+
base::string16 ProfileDownloader::GetProfileFullName() const {
return profile_full_name_;
}
@@ -290,7 +304,10 @@ void ProfileDownloader::StartFetchingImage() {
void ProfileDownloader::StartFetchingOAuth2AccessToken() {
Profile* profile = delegate_->GetBrowserProfile();
OAuth2TokenService::ScopeSet scopes;
- scopes.insert(kAPIScope);
+ scopes.insert(kAPIProfileScope);
+ // Increase scope to get hd attribute to determine if lock should be enabled.
+ if (switches::IsNewProfileManagement())
+ scopes.insert(kAPIEmailScope);
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
oauth2_access_token_request_ = token_service->StartRequest(
@@ -332,7 +349,8 @@ void ProfileDownloader::OnURLFetchComplete(const net::URLFetcher* source) {
&profile_given_name_,
&image_url,
delegate_->GetDesiredImageSideLength(),
- &profile_locale_)) {
+ &profile_locale_,
+ &profile_hosted_domain_)) {
delegate_->OnProfileDownloadFailure(
this, ProfileDownloaderDelegate::SERVICE_ERROR);
return;

Powered by Google App Engine
This is Rietveld 408576698