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()); |
} |