Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2428)

Unified Diff: chrome/browser/translate/translate_manager.cc

Issue 10914264: Send API keys with translate API URL requests. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressed CR comments. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/translate/translate_manager.cc
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
index b0457f99d14e41ea850f5bce5513f81a34c05d16..b9b4d763730028f2f99e0aa9abd9733c26e48b0d 100644
--- a/chrome/browser/translate/translate_manager.cc
+++ b/chrome/browser/translate/translate_manager.cc
@@ -46,6 +46,7 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
+#include "google_apis/google_api_keys.h"
#include "grit/browser_resources.h"
#include "net/base/escape.h"
#include "net/base/load_flags.h"
@@ -169,6 +170,17 @@ const char* const kLanguageListFetchURL =
const int kMaxRetryLanguageListFetch = 5;
const int kTranslateScriptExpirationDelayDays = 1;
+void AddApiKeyToUrl(GURL* url) {
+ std::string api_key = google_apis::GetAPIKey();
+ std::string query(url->query());
+ if (!query.empty())
+ query += "&";
+ query += "key=" + net::EscapeQueryParamValue(api_key, true);
+ GURL::Replacements replacements;
+ replacements.SetQueryStr(query);
+ *url = url->ReplaceComponents(replacements);
+}
+
} // namespace
// This must be kept in sync with the &cb= value in the kLanguageListFetchURL.
@@ -663,27 +675,31 @@ void TranslateManager::RevertTranslation(WebContents* web_contents) {
void TranslateManager::ReportLanguageDetectionError(WebContents* web_contents) {
UMA_HISTOGRAM_COUNTS("Translate.ReportLanguageDetectionError", 1);
+ // We'll open the URL in a new tab so that the user can tell us more.
+ Browser* browser = browser::FindBrowserWithWebContents(web_contents);
+ if (!browser) {
+ NOTREACHED();
+ return;
+ }
+
GURL page_url = web_contents->GetController().GetActiveEntry()->GetURL();
// Report option should be disabled for secure URLs.
DCHECK(!page_url.SchemeIsSecure());
- std::string report_error_url(kReportLanguageDetectionErrorURL);
- report_error_url += "?client=cr&action=langidc&u=";
- report_error_url += net::EscapeUrlEncodedData(page_url.spec(), true);
- report_error_url += "&sl=";
+ std::string report_error_url_str(kReportLanguageDetectionErrorURL);
+ report_error_url_str += "?client=cr&action=langidc&u=";
+ report_error_url_str += net::EscapeUrlEncodedData(page_url.spec(), true);
+ report_error_url_str += "&sl=";
TranslateTabHelper* helper =
TabContents::FromWebContents(web_contents)->translate_tab_helper();
- report_error_url += helper->language_state().original_language();
- report_error_url += "&hl=";
- report_error_url +=
+ report_error_url_str += helper->language_state().original_language();
+ report_error_url_str += "&hl=";
+ report_error_url_str +=
GetLanguageCode(g_browser_process->GetApplicationLocale());
- // Open that URL in a new tab so that the user can tell us more.
- Browser* browser = browser::FindBrowserWithWebContents(web_contents);
- if (!browser) {
- NOTREACHED();
- return;
- }
- chrome::AddSelectedTabWithURL(browser, GURL(report_error_url),
+
+ GURL report_error_url(report_error_url_str);
+ AddApiKeyToUrl(&report_error_url);
+ chrome::AddSelectedTabWithURL(browser, report_error_url,
content::PAGE_TRANSITION_AUTO_BOOKMARK);
}
@@ -811,11 +827,13 @@ void TranslateManager::FetchLanguageListFromTranslateServer(
return;
}
- std::string language_list_fetch_url = base::StringPrintf(
- kLanguageListFetchURL,
- GetLanguageCode(g_browser_process->GetApplicationLocale()).c_str());
+ GURL language_list_fetch_url = GURL(
+ base::StringPrintf(
+ kLanguageListFetchURL,
+ GetLanguageCode(g_browser_process->GetApplicationLocale()).c_str()));
+ AddApiKeyToUrl(&language_list_fetch_url);
language_list_request_pending_.reset(net::URLFetcher::Create(
- 1, GURL(language_list_fetch_url), net::URLFetcher::GET, this));
+ 1, language_list_fetch_url, net::URLFetcher::GET, this));
language_list_request_pending_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
net::LOAD_DO_NOT_SAVE_COOKIES);
language_list_request_pending_->SetRequestContext(
@@ -833,11 +851,12 @@ void TranslateManager::RequestTranslateScript() {
if (translate_script_request_pending_.get() != NULL)
return;
- std::string translate_script_url = base::StringPrintf(
+ GURL translate_script_url = GURL(base::StringPrintf(
kTranslateScriptURL,
- GetLanguageCode(g_browser_process->GetApplicationLocale()).c_str());
+ GetLanguageCode(g_browser_process->GetApplicationLocale()).c_str()));
+ AddApiKeyToUrl(&translate_script_url);
translate_script_request_pending_.reset(net::URLFetcher::Create(
- 0, GURL(translate_script_url), net::URLFetcher::GET, this));
+ 0, translate_script_url, net::URLFetcher::GET, this));
translate_script_request_pending_->SetLoadFlags(
net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES);
translate_script_request_pending_->SetRequestContext(
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698