OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/identity_api.h" | 5 #include "chrome/browser/extensions/api/identity/identity_api.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 } | 240 } |
241 | 241 |
242 void IdentityAPI::OnAccountRemoved(const gaia::AccountIds& ids) { | 242 void IdentityAPI::OnAccountRemoved(const gaia::AccountIds& ids) { |
243 } | 243 } |
244 | 244 |
245 void IdentityAPI::OnAccountSignInChanged(const gaia::AccountIds& ids, | 245 void IdentityAPI::OnAccountSignInChanged(const gaia::AccountIds& ids, |
246 bool is_signed_in) { | 246 bool is_signed_in) { |
247 api::identity::AccountInfo account_info; | 247 api::identity::AccountInfo account_info; |
248 account_info.id = ids.gaia; | 248 account_info.id = ids.gaia; |
249 | 249 |
250 scoped_ptr<base::ListValue> args = | 250 std::unique_ptr<base::ListValue> args = |
251 api::identity::OnSignInChanged::Create(account_info, is_signed_in); | 251 api::identity::OnSignInChanged::Create(account_info, is_signed_in); |
252 scoped_ptr<Event> event(new Event(events::IDENTITY_ON_SIGN_IN_CHANGED, | 252 std::unique_ptr<Event> event( |
253 api::identity::OnSignInChanged::kEventName, | 253 new Event(events::IDENTITY_ON_SIGN_IN_CHANGED, |
254 std::move(args), browser_context_)); | 254 api::identity::OnSignInChanged::kEventName, std::move(args), |
| 255 browser_context_)); |
255 | 256 |
256 EventRouter::Get(browser_context_)->BroadcastEvent(std::move(event)); | 257 EventRouter::Get(browser_context_)->BroadcastEvent(std::move(event)); |
257 } | 258 } |
258 | 259 |
259 void IdentityAPI::AddShutdownObserver(ShutdownObserver* observer) { | 260 void IdentityAPI::AddShutdownObserver(ShutdownObserver* observer) { |
260 shutdown_observer_list_.AddObserver(observer); | 261 shutdown_observer_list_.AddObserver(observer); |
261 } | 262 } |
262 | 263 |
263 void IdentityAPI::RemoveShutdownObserver(ShutdownObserver* observer) { | 264 void IdentityAPI::RemoveShutdownObserver(ShutdownObserver* observer) { |
264 shutdown_observer_list_.RemoveObserver(observer); | 265 shutdown_observer_list_.RemoveObserver(observer); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 "IdentityGetAuthTokenFunction", | 320 "IdentityGetAuthTokenFunction", |
320 this, | 321 this, |
321 "extension", | 322 "extension", |
322 extension()->id()); | 323 extension()->id()); |
323 | 324 |
324 if (GetProfile()->IsOffTheRecord()) { | 325 if (GetProfile()->IsOffTheRecord()) { |
325 error_ = identity_constants::kOffTheRecord; | 326 error_ = identity_constants::kOffTheRecord; |
326 return false; | 327 return false; |
327 } | 328 } |
328 | 329 |
329 scoped_ptr<identity::GetAuthToken::Params> params( | 330 std::unique_ptr<identity::GetAuthToken::Params> params( |
330 identity::GetAuthToken::Params::Create(*args_)); | 331 identity::GetAuthToken::Params::Create(*args_)); |
331 EXTENSION_FUNCTION_VALIDATE(params.get()); | 332 EXTENSION_FUNCTION_VALIDATE(params.get()); |
332 interactive_ = params->details.get() && | 333 interactive_ = params->details.get() && |
333 params->details->interactive.get() && | 334 params->details->interactive.get() && |
334 *params->details->interactive; | 335 *params->details->interactive; |
335 | 336 |
336 should_prompt_for_scopes_ = interactive_; | 337 should_prompt_for_scopes_ = interactive_; |
337 should_prompt_for_signin_ = interactive_; | 338 should_prompt_for_signin_ = interactive_; |
338 | 339 |
339 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); | 340 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); |
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
925 IdentityRemoveCachedAuthTokenFunction:: | 926 IdentityRemoveCachedAuthTokenFunction:: |
926 ~IdentityRemoveCachedAuthTokenFunction() { | 927 ~IdentityRemoveCachedAuthTokenFunction() { |
927 } | 928 } |
928 | 929 |
929 bool IdentityRemoveCachedAuthTokenFunction::RunSync() { | 930 bool IdentityRemoveCachedAuthTokenFunction::RunSync() { |
930 if (GetProfile()->IsOffTheRecord()) { | 931 if (GetProfile()->IsOffTheRecord()) { |
931 error_ = identity_constants::kOffTheRecord; | 932 error_ = identity_constants::kOffTheRecord; |
932 return false; | 933 return false; |
933 } | 934 } |
934 | 935 |
935 scoped_ptr<identity::RemoveCachedAuthToken::Params> params( | 936 std::unique_ptr<identity::RemoveCachedAuthToken::Params> params( |
936 identity::RemoveCachedAuthToken::Params::Create(*args_)); | 937 identity::RemoveCachedAuthToken::Params::Create(*args_)); |
937 EXTENSION_FUNCTION_VALIDATE(params.get()); | 938 EXTENSION_FUNCTION_VALIDATE(params.get()); |
938 IdentityAPI::GetFactoryInstance()->Get(GetProfile())->EraseCachedToken( | 939 IdentityAPI::GetFactoryInstance()->Get(GetProfile())->EraseCachedToken( |
939 extension()->id(), params->details.token); | 940 extension()->id(), params->details.token); |
940 return true; | 941 return true; |
941 } | 942 } |
942 | 943 |
943 IdentityLaunchWebAuthFlowFunction::IdentityLaunchWebAuthFlowFunction() {} | 944 IdentityLaunchWebAuthFlowFunction::IdentityLaunchWebAuthFlowFunction() {} |
944 | 945 |
945 IdentityLaunchWebAuthFlowFunction::~IdentityLaunchWebAuthFlowFunction() { | 946 IdentityLaunchWebAuthFlowFunction::~IdentityLaunchWebAuthFlowFunction() { |
946 if (auth_flow_) | 947 if (auth_flow_) |
947 auth_flow_.release()->DetachDelegateAndDelete(); | 948 auth_flow_.release()->DetachDelegateAndDelete(); |
948 } | 949 } |
949 | 950 |
950 bool IdentityLaunchWebAuthFlowFunction::RunAsync() { | 951 bool IdentityLaunchWebAuthFlowFunction::RunAsync() { |
951 if (GetProfile()->IsOffTheRecord()) { | 952 if (GetProfile()->IsOffTheRecord()) { |
952 error_ = identity_constants::kOffTheRecord; | 953 error_ = identity_constants::kOffTheRecord; |
953 return false; | 954 return false; |
954 } | 955 } |
955 | 956 |
956 scoped_ptr<identity::LaunchWebAuthFlow::Params> params( | 957 std::unique_ptr<identity::LaunchWebAuthFlow::Params> params( |
957 identity::LaunchWebAuthFlow::Params::Create(*args_)); | 958 identity::LaunchWebAuthFlow::Params::Create(*args_)); |
958 EXTENSION_FUNCTION_VALIDATE(params.get()); | 959 EXTENSION_FUNCTION_VALIDATE(params.get()); |
959 | 960 |
960 GURL auth_url(params->details.url); | 961 GURL auth_url(params->details.url); |
961 WebAuthFlow::Mode mode = | 962 WebAuthFlow::Mode mode = |
962 params->details.interactive && *params->details.interactive ? | 963 params->details.interactive && *params->details.interactive ? |
963 WebAuthFlow::INTERACTIVE : WebAuthFlow::SILENT; | 964 WebAuthFlow::INTERACTIVE : WebAuthFlow::SILENT; |
964 | 965 |
965 // Set up acceptable target URLs. (Does not include chrome-extension | 966 // Set up acceptable target URLs. (Does not include chrome-extension |
966 // scheme for this version of the API.) | 967 // scheme for this version of the API.) |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1014 if (redirect_url.GetWithEmptyPath() == final_url_prefix_) { | 1015 if (redirect_url.GetWithEmptyPath() == final_url_prefix_) { |
1015 SetResult(new base::StringValue(redirect_url.spec())); | 1016 SetResult(new base::StringValue(redirect_url.spec())); |
1016 SendResponse(true); | 1017 SendResponse(true); |
1017 if (auth_flow_) | 1018 if (auth_flow_) |
1018 auth_flow_.release()->DetachDelegateAndDelete(); | 1019 auth_flow_.release()->DetachDelegateAndDelete(); |
1019 Release(); // Balanced in RunAsync. | 1020 Release(); // Balanced in RunAsync. |
1020 } | 1021 } |
1021 } | 1022 } |
1022 | 1023 |
1023 } // namespace extensions | 1024 } // namespace extensions |
OLD | NEW |