| 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(
|
|
|