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 f4ae23e05bf93849a46454c645903560a43736f2..21ef7443fad99f526d11dd60bcff08692a69c483 100644 |
--- a/chrome/browser/extensions/api/copresence/copresence_api.cc |
+++ b/chrome/browser/extensions/api/copresence/copresence_api.cc |
@@ -58,14 +58,23 @@ copresence::WhispernetClient* CopresenceService::whispernet_client() { |
return whispernet_client_.get(); |
} |
+const std::string CopresenceService::auth_token(const std::string& app_id) |
+ const { |
+ // This won't be const if we use map[] |
+ const auto& key = auth_tokens_by_app_.find(app_id); |
+ return key == auth_tokens_by_app_.end() ? std::string() : key->second; |
+} |
+ |
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& token) { |
- auth_token_ = token; |
+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( |
@@ -184,7 +193,7 @@ ExtensionFunction::ResponseAction CopresenceExecuteFunction::Run() { |
service->manager()->ExecuteReportRequest( |
request, |
extension_id(), |
- service->auth_token(), |
+ service->auth_token(extension_id()), |
base::Bind(&CopresenceExecuteFunction::SendResult, this)); |
return RespondLater(); |
} |
@@ -216,9 +225,8 @@ ExtensionFunction::ResponseAction CopresenceSetAuthTokenFunction::Run() { |
EXTENSION_FUNCTION_VALIDATE(params.get()); |
// The token may be set to empty, to clear it. |
- // TODO(ckehoe): Scope the auth token appropriately (crbug/423517). |
CopresenceService::GetFactoryInstance()->Get(browser_context()) |
- ->set_auth_token(params->token); |
+ ->set_auth_token(extension_id(), params->token); |
return RespondNow(NoArguments()); |
} |