| Index: chrome/browser/signin/signin_header_helper.cc
|
| diff --git a/chrome/browser/signin/signin_header_helper.cc b/chrome/browser/signin/signin_header_helper.cc
|
| index 92c87d5090d837641393eced672093f8f14456db..7bd3b744396bd98b0e96f8bbfa888d43e8526dc6 100644
|
| --- a/chrome/browser/signin/signin_header_helper.cc
|
| +++ b/chrome/browser/signin/signin_header_helper.cc
|
| @@ -38,6 +38,12 @@ const char kGaiaIdAttrName[] = "id";
|
| const char kProfileModeAttrName[] = "mode";
|
| const char kEnableAccountConsistencyAttrName[] = "enable_account_consistency";
|
|
|
| +const char kServiceTypeAttrName[] = "action";
|
| +const char kEmailAttrName[] = "email";
|
| +const char kIsSamlAttrName[] = "is_saml";
|
| +const char kContinueUrlAttrName[] = "continue_url";
|
| +const char kIsSameTabAttrName[] = "is_same_tab";
|
| +
|
| // Determines the service type that has been passed from GAIA in the header.
|
| signin::GAIAServiceType GetGAIAServiceTypeFromHeader(
|
| const std::string& header_value) {
|
| @@ -102,7 +108,7 @@ void ProcessMirrorHeaderUIThread(
|
| } else {
|
| browser->window()->ShowAvatarBubbleFromAvatarButton(
|
| BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT,
|
| - service_type);
|
| + manage_accounts_params);
|
| }
|
| }
|
| #else // defined(OS_ANDROID)
|
| @@ -203,9 +209,21 @@ ManageAccountsParams GetManageAccountsParams(net::URLRequest* request,
|
|
|
| MirrorResponseHeaderDictionary header_dictionary =
|
| ParseMirrorResponseHeader(header_value);
|
| - if (header_dictionary.count("action")) {
|
| - params.service_type =
|
| - GetGAIAServiceTypeFromHeader(header_dictionary["action"]);
|
| + MirrorResponseHeaderDictionary::const_iterator it = header_dictionary.begin();
|
| + for (; it != header_dictionary.end(); ++it) {
|
| + const std::string key_name(it->first);
|
| + if (key_name == kServiceTypeAttrName) {
|
| + params.service_type =
|
| + GetGAIAServiceTypeFromHeader(header_dictionary[kServiceTypeAttrName]);
|
| + } else if (key_name == kEmailAttrName) {
|
| + params.email = header_dictionary[kEmailAttrName];
|
| + } else if (key_name == kIsSamlAttrName) {
|
| + params.is_saml = header_dictionary[kIsSamlAttrName] == "true";
|
| + } else if (key_name == kContinueUrlAttrName) {
|
| + params.continue_url = header_dictionary[kContinueUrlAttrName];
|
| + } else if (key_name == kIsSameTabAttrName) {
|
| + params.is_same_tab = header_dictionary[kIsSameTabAttrName] == "true";
|
| + }
|
| }
|
| return params;
|
| }
|
| @@ -220,6 +238,8 @@ void ProcessMirrorResponseHeaderIfExists(
|
| #else
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
|
| ManageAccountsParams params = GetManageAccountsParams(request, io_data);
|
| + params.child_id = child_id;
|
| + params.route_id = route_id;
|
| if (params.service_type == GAIA_SERVICE_TYPE_NONE)
|
| return;
|
|
|
|
|