diff options
author | ckehoe <ckehoe@chromium.org> | 2015-02-09 14:37:46 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-09 22:38:09 +0000 |
commit | 13c2644be4b4c19f8f176c2b304e53f7b1817442 (patch) | |
tree | 0be5c90f2c61e95f49998944e058bb47c73d6812 /components | |
parent | eaf9258c49f76a997f690a63cb7e3091a09990b0 (diff) | |
download | chromium_src-13c2644be4b4c19f8f176c2b304e53f7b1817442.zip chromium_src-13c2644be4b4c19f8f176c2b304e53f7b1817442.tar.gz chromium_src-13c2644be4b4c19f8f176c2b304e53f7b1817442.tar.bz2 |
The project ID isn't needed, since it's actually ok to expose the API key. We should offer the option of putting it in the manifest though.
BUG=454887
Review URL: https://codereview.chromium.org/901213003
Cr-Commit-Position: refs/heads/master@{#315413}
Diffstat (limited to 'components')
-rw-r--r-- | components/copresence/proto/data.proto | 1 | ||||
-rw-r--r-- | components/copresence/public/copresence_delegate.h | 3 | ||||
-rw-r--r-- | components/copresence/rpc/rpc_handler.cc | 33 | ||||
-rw-r--r-- | components/copresence/rpc/rpc_handler.h | 4 | ||||
-rw-r--r-- | components/copresence/rpc/rpc_handler_unittest.cc | 6 |
5 files changed, 17 insertions, 30 deletions
diff --git a/components/copresence/proto/data.proto b/components/copresence/proto/data.proto index c3679bc..f862e9b 100644 --- a/components/copresence/proto/data.proto +++ b/components/copresence/proto/data.proto @@ -9,7 +9,6 @@ message ClientVersion { optional string version_name = 2; optional int64 version_code = 3; optional string certificate_fingerprint = 4; - optional string project_id = 5; } message Status { optional StatusCode code = 1; diff --git a/components/copresence/public/copresence_delegate.h b/components/copresence/public/copresence_delegate.h index b909742..3f54b30 100644 --- a/components/copresence/public/copresence_delegate.h +++ b/components/copresence/public/copresence_delegate.h @@ -47,11 +47,8 @@ class CopresenceDelegate { virtual const std::string GetPlatformVersionString() const = 0; - // This is deprecated. Clients should pass in the project ID instead. virtual const std::string GetAPIKey(const std::string& app_id) const = 0; - virtual const std::string GetProjectId(const std::string& app_id) const = 0; - // Thw WhispernetClient must outlive the CopresenceManager. virtual WhispernetClient* GetWhispernetClient() = 0; diff --git a/components/copresence/rpc/rpc_handler.cc b/components/copresence/rpc/rpc_handler.cc index 39a3797..372b680 100644 --- a/components/copresence/rpc/rpc_handler.cc +++ b/components/copresence/rpc/rpc_handler.cc @@ -139,18 +139,10 @@ scoped_ptr<DeviceState> GetDeviceCapabilities(const ReportRequest& request) { // an int64 version. We should probably change the version proto // to handle a more detailed version. ClientVersion* CreateVersion(const std::string& client, - const std::string& version_name, - const std::string& project_id) { + const std::string& version_name) { ClientVersion* version = new ClientVersion; - version->set_client(client); version->set_version_name(version_name); - - if (!project_id.empty()) { - DVLOG(3) << "Using project ID " << project_id; - version->set_project_id(project_id); - } - return version; } @@ -213,6 +205,15 @@ void RpcHandler::SendReportRequest(scoped_ptr<ReportRequest> request, const StatusCallback& status_callback) { DCHECK(request.get()); + // Check that the app, if any, has some kind of authentication token. + // Don't allow it to piggyback on Chrome's credentials. + if (!app_id.empty() && delegate_->GetAPIKey(app_id).empty() && + auth_token.empty()) { + LOG(ERROR) << "App " << app_id << " has no API key or auth token"; + status_callback.Run(FAIL); + return; + } + // Store just one auth token since we should have only one account // per instance of the copresence component. // TODO(ckehoe): We may eventually need to support multiple auth tokens. @@ -572,13 +573,9 @@ RequestHeader* RpcHandler::CreateRequestHeader( RequestHeader* header = new RequestHeader; header->set_allocated_framework_version(CreateVersion( - "Chrome", delegate_->GetPlatformVersionString(), std::string())); - if (!app_id.empty()) { - LOG_IF(WARNING, delegate_->GetProjectId(app_id).empty()) - << "No copresence project ID available"; - header->set_allocated_client_version(CreateVersion( - app_id, std::string(), delegate_->GetProjectId(app_id))); - } + "Chrome", delegate_->GetPlatformVersionString())); + if (!app_id.empty()) + header->set_allocated_client_version(CreateVersion(app_id, std::string())); header->set_current_time_millis(base::Time::Now().ToJsTime()); if (!device_id.empty()) header->set_registered_device_id(device_id); @@ -604,7 +601,7 @@ void RpcHandler::SendServerRequest( DCHECK(!auth_token_.empty()); server_post_callback_.Run(delegate_->GetRequestContext(), rpc_name, - delegate_->GetAPIKey(app_id), // Deprecated + delegate_->GetAPIKey(app_id), authenticated ? auth_token_ : std::string(), make_scoped_ptr<MessageLite>(request.release()), response_handler); @@ -612,7 +609,7 @@ void RpcHandler::SendServerRequest( void RpcHandler::SendHttpPost(net::URLRequestContextGetter* url_context_getter, const std::string& rpc_name, - const std::string& api_key, // Deprecated + const std::string& api_key, const std::string& auth_token, scoped_ptr<MessageLite> request_proto, const PostCleanupCallback& callback) { diff --git a/components/copresence/rpc/rpc_handler.h b/components/copresence/rpc/rpc_handler.h index 9ead5e16..6277145 100644 --- a/components/copresence/rpc/rpc_handler.h +++ b/components/copresence/rpc/rpc_handler.h @@ -49,7 +49,7 @@ class RpcHandler { // Arguments: // URLRequestContextGetter: Context for the HTTP POST request. // string: Name of the rpc to invoke. URL format: server.google.com/rpc_name - // string: The API key to pass in the request. Deprecated. + // string: The API key to pass in the request. // string: The auth token to pass with the request. // MessageLite: Contents of POST request to be sent. This needs to be // a (scoped) pointer to ease handling of the abstract MessageLite class. @@ -157,7 +157,7 @@ class RpcHandler { // to contact the server, but it can be overridden for testing. void SendHttpPost(net::URLRequestContextGetter* url_context_getter, const std::string& rpc_name, - const std::string& api_key, // Deprecated + const std::string& api_key, const std::string& auth_token, scoped_ptr<google::protobuf::MessageLite> request_proto, const PostCleanupCallback& callback); diff --git a/components/copresence/rpc/rpc_handler_unittest.cc b/components/copresence/rpc/rpc_handler_unittest.cc index b10c1fa..e0337ce 100644 --- a/components/copresence/rpc/rpc_handler_unittest.cc +++ b/components/copresence/rpc/rpc_handler_unittest.cc @@ -81,10 +81,6 @@ class RpcHandlerTest : public testing::Test, public CopresenceDelegate { return app_id + " API Key"; } - const std::string GetProjectId(const std::string& app_id) const override { - return app_id + " Project ID"; - } - WhispernetClient* GetWhispernetClient() override { return whispernet_client_.get(); } @@ -290,8 +286,6 @@ TEST_F(RpcHandlerTest, CreateRequestHeader) { report->header().framework_version().version_name()); EXPECT_EQ("CreateRequestHeader App", report->header().client_version().client()); - EXPECT_EQ("CreateRequestHeader App Project ID", - report->header().client_version().project_id()); EXPECT_EQ("CreateRequestHeader Device ID", report->header().registered_device_id()); EXPECT_EQ(CHROME_PLATFORM_TYPE, |