Index: chrome/common/net/google_apis/google_api_keys.cc |
diff --git a/chrome/common/net/google_apis/google_api_keys.cc b/chrome/common/net/google_apis/google_api_keys.cc |
deleted file mode 100644 |
index b86c9cc8cad3ab3eca9c2489c4d61afc46204c7a..0000000000000000000000000000000000000000 |
--- a/chrome/common/net/google_apis/google_api_keys.cc |
+++ /dev/null |
@@ -1,250 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/common/net/google_apis/google_api_keys.h" |
- |
-#include "base/command_line.h" |
-#include "base/environment.h" |
-#include "base/lazy_instance.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/stringize_macros.h" |
- |
-#if defined(GOOGLE_CHROME_BUILD) |
-// TODO(joi): Include a src-internal file that defines the official |
-// keys for official builds, something like: #include |
-// "chrome/app/internal/official_google_api_keys.h" |
-#endif |
- |
-#if !defined(GOOGLE_API_KEY) |
-// TODO(joi): This should be blank here, with the official key |
-// provided in official builds. |
-#define GOOGLE_API_KEY "abcNOTREALKEYxyz" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_ID_MAIN) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_ID_MAIN "77185425430.apps.googleusercontent.com" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_SECRET_MAIN) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_SECRET_MAIN "OTJgUOQcT7lO7GsGZq2G4IlT" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_ID_CLOUD_PRINT) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_ID_CLOUD_PRINT "551556820943.apps.googleusercontent.com" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_SECRET_CLOUD_PRINT) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_SECRET_CLOUD_PRINT "u3/mp8CgLFxh4uiX1855/MHe" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_ID_REMOTING) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_ID_REMOTING \ |
- "440925447803-avn2sj1kc099s0r7v62je5s339mu0am1.apps.googleusercontent.com" |
-#endif |
- |
-#if !defined(GOOGLE_CLIENT_SECRET_REMOTING) |
-// TODO(joi): This should be blank here, but provided in official |
-// builds. |
-#define GOOGLE_CLIENT_SECRET_REMOTING "Bgur6DFiOMM1h8x-AQpuTQlK" |
-#endif |
- |
-// These are used as shortcuts for developers and users providing |
-// OAuth credentials via preprocessor defines or environment |
-// variables. If set, they will be used to replace any of the client |
-// IDs and secrets above that have not been set (and only those; they |
-// will not override already-set values). |
-#if !defined(GOOGLE_DEFAULT_CLIENT_ID) |
-#define GOOGLE_DEFAULT_CLIENT_ID "" |
-#endif |
-#if !defined(GOOGLE_DEFAULT_CLIENT_SECRET) |
-#define GOOGLE_DEFAULT_CLIENT_SECRET "" |
-#endif |
- |
-namespace switches { |
- |
-// Specifies custom OAuth2 client id for testing purposes. |
-const char kOAuth2ClientID[] = "oauth2-client-id"; |
- |
-// Specifies custom OAuth2 client secret for testing purposes. |
-const char kOAuth2ClientSecret[] = "oauth2-client-secret"; |
- |
-} // namespace switches |
- |
-namespace google_apis { |
- |
-namespace { |
- |
-// This is used as a lazy instance to determine keys once and cache them. |
-class APIKeyCache { |
- public: |
- APIKeyCache() { |
- scoped_ptr<base::Environment> environment(base::Environment::Create()); |
- CommandLine* command_line = CommandLine::ForCurrentProcess(); |
- |
- api_key_ = CalculateKeyValue(GOOGLE_API_KEY, |
- STRINGIZE_NO_EXPANSION(GOOGLE_API_KEY), |
- NULL, "", |
- environment.get(), |
- command_line); |
- |
- std::string default_client_id = CalculateKeyValue( |
- GOOGLE_DEFAULT_CLIENT_ID, |
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), |
- NULL, "", |
- environment.get(), |
- command_line); |
- std::string default_client_secret = CalculateKeyValue( |
- GOOGLE_DEFAULT_CLIENT_SECRET, |
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), |
- NULL, "", |
- environment.get(), |
- command_line); |
- |
- // We currently only allow overriding the baked-in values for the |
- // default OAuth2 client ID and secret using a command-line |
- // argument, since that is useful to enable testing against |
- // staging servers, and since that was what was possible and |
- // likely practiced by the QA team before this implementation was |
- // written. |
- client_ids_[CLIENT_MAIN] = CalculateKeyValue( |
- GOOGLE_CLIENT_ID_MAIN, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_ID_MAIN), |
- switches::kOAuth2ClientID, |
- default_client_id, |
- environment.get(), |
- command_line); |
- client_secrets_[CLIENT_MAIN] = CalculateKeyValue( |
- GOOGLE_CLIENT_SECRET_MAIN, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_SECRET_MAIN), |
- switches::kOAuth2ClientSecret, |
- default_client_secret, |
- environment.get(), |
- command_line); |
- |
- client_ids_[CLIENT_CLOUD_PRINT] = CalculateKeyValue( |
- GOOGLE_CLIENT_ID_CLOUD_PRINT, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_ID_CLOUD_PRINT), |
- NULL, |
- default_client_id, |
- environment.get(), |
- command_line); |
- client_secrets_[CLIENT_CLOUD_PRINT] = CalculateKeyValue( |
- GOOGLE_CLIENT_SECRET_CLOUD_PRINT, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_SECRET_CLOUD_PRINT), |
- NULL, |
- default_client_secret, |
- environment.get(), |
- command_line); |
- |
- client_ids_[CLIENT_REMOTING] = CalculateKeyValue( |
- GOOGLE_CLIENT_ID_REMOTING, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_ID_REMOTING), |
- NULL, |
- default_client_id, |
- environment.get(), |
- command_line); |
- client_secrets_[CLIENT_REMOTING] = CalculateKeyValue( |
- GOOGLE_CLIENT_SECRET_REMOTING, |
- STRINGIZE_NO_EXPANSION(GOOGLE_CLIENT_SECRET_REMOTING), |
- NULL, |
- default_client_secret, |
- environment.get(), |
- command_line); |
- } |
- |
- std::string api_key() const { return api_key_; } |
- |
- std::string GetClientID(OAuth2Client client) const { |
- DCHECK_LT(client, CLIENT_NUM_ITEMS); |
- return client_ids_[client]; |
- } |
- |
- std::string GetClientSecret(OAuth2Client client) const { |
- DCHECK_LT(client, CLIENT_NUM_ITEMS); |
- return client_secrets_[client]; |
- } |
- |
- private: |
- // Gets a value for a key. In priority order, this will be the value |
- // provided via a command-line switch, the value provided via an |
- // environment variable, or finally a value baked into the build. |
- // |command_line_switch| may be NULL. |
- static std::string CalculateKeyValue(const char* baked_in_value, |
- const char* environment_variable_name, |
- const char* command_line_switch, |
- const std::string& default_if_unset, |
- base::Environment* environment, |
- CommandLine* command_line) { |
- std::string key_value = baked_in_value; |
- std::string temp; |
- if (environment->GetVar(environment_variable_name, &temp)) |
- key_value = temp; |
- if (command_line_switch && command_line->HasSwitch(command_line_switch)) |
- key_value = command_line->GetSwitchValueASCII(command_line_switch); |
- |
- if (key_value.size() == 0) { |
-#if defined(GOOGLE_CHROME_BUILD) |
- // No key should be empty in an official build, except the |
- // default keys themselves, which will have an empty default. |
- CHECK(default_if_unset.size() == 0); |
-#endif |
- key_value = default_if_unset; |
- } |
- |
- return key_value; |
- } |
- |
- // If |default_value| itself is not empty, any empty strings in |
- // |array| (which has |array_count| items) will be replaced with a |
- // copy of the default value. |
- static void ReplaceEmptyItemsWithDefaultValue( |
- const std::string& default_value, |
- std::string* array, |
- size_t array_count) { |
- if (default_value.size() > 0) { |
- for (size_t i = 0; i < array_count; ++i) { |
- if (array[i].size() == 0) { |
-#if defined(GOOGLE_CHROME_BUILD) |
- // None of these should be empty in official builds. |
- CHECK(false); |
-#endif |
- array[i] = default_value; |
- } |
- } |
- } |
- } |
- |
- std::string api_key_; |
- std::string client_ids_[CLIENT_NUM_ITEMS]; |
- std::string client_secrets_[CLIENT_NUM_ITEMS]; |
-}; |
- |
-static base::LazyInstance<APIKeyCache> g_api_key_cache = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-} // namespace |
- |
-std::string GetAPIKey() { |
- return g_api_key_cache.Get().api_key(); |
-} |
- |
-std::string GetOAuth2ClientID(OAuth2Client client) { |
- return g_api_key_cache.Get().GetClientID(client); |
-} |
- |
-std::string GetOAuth2ClientSecret(OAuth2Client client) { |
- return g_api_key_cache.Get().GetClientSecret(client); |
-} |
- |
-} // namespace google_apis |