OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/shell/browser/api/identity/identity_api.h" | 5 #include "extensions/shell/browser/api/identity/identity_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 OAuth2MintTokenFlow* flow) { | 58 OAuth2MintTokenFlow* flow) { |
59 mint_token_flow_.reset(flow); | 59 mint_token_flow_.reset(flow); |
60 } | 60 } |
61 | 61 |
62 ExtensionFunction::ResponseAction IdentityGetAuthTokenFunction::Run() { | 62 ExtensionFunction::ResponseAction IdentityGetAuthTokenFunction::Run() { |
63 scoped_ptr<api::identity::GetAuthToken::Params> params( | 63 scoped_ptr<api::identity::GetAuthToken::Params> params( |
64 api::identity::GetAuthToken::Params::Create(*args_)); | 64 api::identity::GetAuthToken::Params::Create(*args_)); |
65 EXTENSION_FUNCTION_VALIDATE(params.get()); | 65 EXTENSION_FUNCTION_VALIDATE(params.get()); |
66 | 66 |
67 ShellOAuth2TokenService* service = ShellOAuth2TokenService::GetInstance(); | 67 ShellOAuth2TokenService* service = ShellOAuth2TokenService::GetInstance(); |
68 std::string account_id = service->account_id(); | 68 std::string account_id = service->AccountId(); |
69 if (account_id.empty()) | 69 if (account_id.empty()) |
70 return RespondNow(Error(kErrorNoUserAccount)); | 70 return RespondNow(Error(kErrorNoUserAccount)); |
71 | 71 |
72 if (!service->RefreshTokenIsAvailable(account_id)) | 72 if (!service->RefreshTokenIsAvailable(account_id)) |
73 return RespondNow(Error(kErrorNoRefreshToken)); | 73 return RespondNow(Error(kErrorNoRefreshToken)); |
74 | 74 |
75 // Verify that we have scopes. | 75 // Verify that we have scopes. |
76 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); | 76 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); |
77 if (oauth2_info.scopes.empty()) | 77 if (oauth2_info.scopes.empty()) |
78 return RespondNow(Error(kErrorNoScopesInManifest)); | 78 return RespondNow(Error(kErrorNoScopesInManifest)); |
79 | 79 |
80 // Balanced in OnGetTokenFailure() and in the OAuth2MintTokenFlow callbacks. | 80 // Balanced in OnGetTokenFailure() and in the OAuth2MintTokenFlow callbacks. |
81 AddRef(); | 81 AddRef(); |
82 | 82 |
83 // First, fetch a logged-in-user access token for the Chrome project client ID | 83 // First, fetch a logged-in-user access token for the Chrome project client ID |
84 // and client secret. This token is used later to get a second access token | 84 // and client secret. This token is used later to get a second access token |
85 // that will be returned to the app. | 85 // that will be returned to the app. |
86 std::set<std::string> no_scopes; | 86 std::set<std::string> no_scopes; |
87 access_token_request_ = | 87 access_token_request_ = |
88 service->StartRequest(service->account_id(), no_scopes, this); | 88 service->StartRequest(service->AccountId(), no_scopes, this); |
89 return RespondLater(); | 89 return RespondLater(); |
90 } | 90 } |
91 | 91 |
92 void IdentityGetAuthTokenFunction::OnGetTokenSuccess( | 92 void IdentityGetAuthTokenFunction::OnGetTokenSuccess( |
93 const OAuth2TokenService::Request* request, | 93 const OAuth2TokenService::Request* request, |
94 const std::string& access_token, | 94 const std::string& access_token, |
95 const base::Time& expiration_time) { | 95 const base::Time& expiration_time) { |
96 // Tests may override the mint token flow. | 96 // Tests may override the mint token flow. |
97 if (!mint_token_flow_) { | 97 if (!mint_token_flow_) { |
98 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); | 98 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension()); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 scoped_ptr<api::identity::RemoveCachedAuthToken::Params> params( | 151 scoped_ptr<api::identity::RemoveCachedAuthToken::Params> params( |
152 api::identity::RemoveCachedAuthToken::Params::Create(*args_)); | 152 api::identity::RemoveCachedAuthToken::Params::Create(*args_)); |
153 EXTENSION_FUNCTION_VALIDATE(params.get()); | 153 EXTENSION_FUNCTION_VALIDATE(params.get()); |
154 // This stub identity API does not maintain a token cache, so there is nothing | 154 // This stub identity API does not maintain a token cache, so there is nothing |
155 // to remove. | 155 // to remove. |
156 return RespondNow(NoArguments()); | 156 return RespondNow(NoArguments()); |
157 } | 157 } |
158 | 158 |
159 } // namespace shell | 159 } // namespace shell |
160 } // namespace extensions | 160 } // namespace extensions |
OLD | NEW |