| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/identity/gaia_web_auth_flow.h" | 5 #include "chrome/browser/extensions/api/identity/gaia_web_auth_flow.h" |
| 6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/strings/string_split.h" | 8 #include "base/strings/string_split.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 // Additional parameters to pass if device_id is enabled. | 48 // Additional parameters to pass if device_id is enabled. |
| 49 const char kOAuth2AuthorizeFormatDeviceIdAddendum[] = | 49 const char kOAuth2AuthorizeFormatDeviceIdAddendum[] = |
| 50 "&device_id=%s&" | 50 "&device_id=%s&" |
| 51 "device_type=chrome"; | 51 "device_type=chrome"; |
| 52 | 52 |
| 53 std::vector<std::string> scopes(token_key->scopes.begin(), | 53 std::vector<std::string> scopes(token_key->scopes.begin(), |
| 54 token_key->scopes.end()); | 54 token_key->scopes.end()); |
| 55 std::vector<std::string> client_id_parts; | 55 std::vector<std::string> client_id_parts; |
| 56 base::SplitString(oauth2_client_id, '.', &client_id_parts); | 56 base::SplitString(oauth2_client_id, '.', &client_id_parts); |
| 57 std::reverse(client_id_parts.begin(), client_id_parts.end()); | 57 std::reverse(client_id_parts.begin(), client_id_parts.end()); |
| 58 redirect_scheme_ = JoinString(client_id_parts, '.'); | 58 redirect_scheme_ = base::JoinString(client_id_parts, "."); |
| 59 std::string signin_scoped_device_id; | 59 std::string signin_scoped_device_id; |
| 60 // profile_ can be nullptr in unittests. | 60 // profile_ can be nullptr in unittests. |
| 61 SigninClient* signin_client = | 61 SigninClient* signin_client = |
| 62 profile_ ? ChromeSigninClientFactory::GetForProfile(profile_) : nullptr; | 62 profile_ ? ChromeSigninClientFactory::GetForProfile(profile_) : nullptr; |
| 63 if (signin_client) | 63 if (signin_client) |
| 64 signin_scoped_device_id = signin_client->GetSigninScopedDeviceId(); | 64 signin_scoped_device_id = signin_client->GetSigninScopedDeviceId(); |
| 65 | 65 |
| 66 redirect_path_prefix_ = base::StringPrintf(kOAuth2RedirectPathFormat, | 66 redirect_path_prefix_ = base::StringPrintf(kOAuth2RedirectPathFormat, |
| 67 token_key->extension_id.c_str()); | 67 token_key->extension_id.c_str()); |
| 68 | 68 |
| 69 std::string oauth2_authorize_params = base::StringPrintf( | 69 std::string oauth2_authorize_params = base::StringPrintf( |
| 70 kOAuth2AuthorizeFormat, | 70 kOAuth2AuthorizeFormat, |
| 71 oauth2_client_id.c_str(), | 71 oauth2_client_id.c_str(), |
| 72 net::EscapeUrlEncodedData(JoinString(scopes, ' '), true).c_str(), | 72 net::EscapeUrlEncodedData(base::JoinString(scopes, " "), true).c_str(), |
| 73 token_key->extension_id.c_str(), | 73 token_key->extension_id.c_str(), |
| 74 redirect_scheme_.c_str(), | 74 redirect_scheme_.c_str(), |
| 75 token_key->extension_id.c_str(), | 75 token_key->extension_id.c_str(), |
| 76 locale.c_str()); | 76 locale.c_str()); |
| 77 if (!signin_scoped_device_id.empty()) { | 77 if (!signin_scoped_device_id.empty()) { |
| 78 oauth2_authorize_params += base::StringPrintf( | 78 oauth2_authorize_params += base::StringPrintf( |
| 79 kOAuth2AuthorizeFormatDeviceIdAddendum, | 79 kOAuth2AuthorizeFormatDeviceIdAddendum, |
| 80 net::EscapeUrlEncodedData(signin_scoped_device_id, true).c_str()); | 80 net::EscapeUrlEncodedData(signin_scoped_device_id, true).c_str()); |
| 81 } | 81 } |
| 82 auth_url_ = GaiaUrls::GetInstance()->oauth2_auth_url().Resolve( | 82 auth_url_ = GaiaUrls::GetInstance()->oauth2_auth_url().Resolve( |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 } | 232 } |
| 233 | 233 |
| 234 scoped_ptr<WebAuthFlow> GaiaWebAuthFlow::CreateWebAuthFlow(GURL url) { | 234 scoped_ptr<WebAuthFlow> GaiaWebAuthFlow::CreateWebAuthFlow(GURL url) { |
| 235 return scoped_ptr<WebAuthFlow>(new WebAuthFlow(this, | 235 return scoped_ptr<WebAuthFlow>(new WebAuthFlow(this, |
| 236 profile_, | 236 profile_, |
| 237 url, | 237 url, |
| 238 WebAuthFlow::INTERACTIVE)); | 238 WebAuthFlow::INTERACTIVE)); |
| 239 } | 239 } |
| 240 | 240 |
| 241 } // namespace extensions | 241 } // namespace extensions |
| OLD | NEW |