Chromium Code Reviews| Index: chrome/browser/extensions/api/copresence/copresence_api.cc |
| diff --git a/chrome/browser/extensions/api/copresence/copresence_api.cc b/chrome/browser/extensions/api/copresence/copresence_api.cc |
| index 61749b8ff9938fdfaca0b5e7e19c75e523be2482..88ee6f70f2a7df0736412a0154bedba199434eb0 100644 |
| --- a/chrome/browser/extensions/api/copresence/copresence_api.cc |
| +++ b/chrome/browser/extensions/api/copresence/copresence_api.cc |
| @@ -30,13 +30,20 @@ const char kShuttingDownMessage[] = "Shutting down."; |
| } // namespace |
| -// CopresenceService implementation: |
| + |
| +// CopresenceService implementation |
| CopresenceService::CopresenceService(content::BrowserContext* context) |
| : is_shutting_down_(false), browser_context_(context) {} |
| CopresenceService::~CopresenceService() {} |
| +void CopresenceService::Shutdown() { |
| + is_shutting_down_ = true; |
| + manager_.reset(); |
| + whispernet_client_.reset(); |
| +} |
| + |
| copresence::CopresenceManager* CopresenceService::manager() { |
| if (!manager_ && !is_shutting_down_) |
| manager_ = copresence::CopresenceManager::Create(this); |
| @@ -49,10 +56,16 @@ copresence::WhispernetClient* CopresenceService::whispernet_client() { |
| return whispernet_client_.get(); |
| } |
| -void CopresenceService::Shutdown() { |
| - is_shutting_down_ = true; |
| - manager_.reset(); |
| - whispernet_client_.reset(); |
| +void CopresenceService::set_api_key(const std::string& app_id, |
| + const std::string& api_key) { |
| + DCHECK(!app_id.empty()); |
| + api_keys_by_app_[app_id] = api_key; |
| +} |
| + |
| +void CopresenceService::set_auth_token(const std::string& app_id, |
| + const std::string& token) { |
| + DCHECK(!app_id.empty()); |
| + auth_tokens_by_app_[app_id] = token; |
| } |
| void CopresenceService::set_manager_for_testing( |
| @@ -112,8 +125,17 @@ const std::string CopresenceService::GetPlatformVersionString() const { |
| return chrome::VersionInfo().CreateVersionString(); |
| } |
| -const std::string CopresenceService::GetAPIKey() const { |
| - return api_key_; |
| +const std::string CopresenceService::GetAPIKey(const std::string& app_id) |
| + const { |
| + // This won't be const if we use map[] |
| + auto key = api_keys_by_app_.find(app_id); |
|
rkc
2014/10/21 22:48:38
const auto& ?
Charlie
2014/10/21 23:19:44
Done.
|
| + return key == api_keys_by_app_.end() ? "" : key->second; |
| +} |
| + |
| +const std::string CopresenceService::GetAuthToken(const std::string& app_id) |
| + const { |
| + auto token = auth_tokens_by_app_.find(app_id); |
| + return token == auth_tokens_by_app_.end() ? "" : token->second; |
| } |
| copresence::WhispernetClient* CopresenceService::GetWhispernetClient() { |
| @@ -126,7 +148,7 @@ BrowserContextKeyedAPIFactory<CopresenceService>::DeclareFactoryDependencies() { |
| DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
| } |
| -// CopresenceExecuteFunction implementation: |
| +// CopresenceExecuteFunction implementation |
| ExtensionFunction::ResponseAction CopresenceExecuteFunction::Run() { |
| scoped_ptr<api::copresence::Execute::Params> params( |
| api::copresence::Execute::Params::Create(*args_)); |
| @@ -164,7 +186,7 @@ void CopresenceExecuteFunction::SendResult( |
| Respond(ArgumentList(api::copresence::Execute::Results::Create(api_status))); |
| } |
| -// CopresenceSetApiKeyFunction implementation: |
| +// CopresenceSetApiKeyFunction implementation |
| ExtensionFunction::ResponseAction CopresenceSetApiKeyFunction::Run() { |
| scoped_ptr<api::copresence::SetApiKey::Params> params( |
| api::copresence::SetApiKey::Params::Create(*args_)); |
| @@ -172,7 +194,19 @@ ExtensionFunction::ResponseAction CopresenceSetApiKeyFunction::Run() { |
| // The api key may be set to empty, to clear it. |
| CopresenceService::GetFactoryInstance()->Get(browser_context()) |
| - ->set_api_key(params->api_key); |
| + ->set_api_key(extension_id(), params->api_key); |
| + return RespondNow(NoArguments()); |
| +} |
| + |
| +// CopresenceSetAuthTokenFunction implementation |
| +ExtensionFunction::ResponseAction CopresenceSetAuthTokenFunction::Run() { |
| + scoped_ptr<api::copresence::SetAuthToken::Params> params( |
| + api::copresence::SetAuthToken::Params::Create(*args_)); |
| + EXTENSION_FUNCTION_VALIDATE(params.get()); |
| + |
| + // The token may be set to empty, to clear it. |
| + CopresenceService::GetFactoryInstance()->Get(browser_context()) |
| + ->set_auth_token(extension_id(), params->token); |
| return RespondNow(NoArguments()); |
| } |