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

Unified Diff: components/translate/content/renderer/translate_helper.cc

Issue 564793003: Move TranslateHelper to the translate component. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@translateBrowserIPC
Patch Set: rebase AGAIN Created 6 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 | « components/translate/content/renderer/translate_helper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/translate/content/renderer/translate_helper.cc
diff --git a/chrome/renderer/translate/translate_helper.cc b/components/translate/content/renderer/translate_helper.cc
similarity index 90%
rename from chrome/renderer/translate/translate_helper.cc
rename to components/translate/content/renderer/translate_helper.cc
index c27cb431723f43e845c6a8c4ef696b4b45246344..5aff9c8c259e2a73ca4ec61a91ed18986a2134da 100644
--- a/chrome/renderer/translate/translate_helper.cc
+++ b/components/translate/content/renderer/translate_helper.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/renderer/translate/translate_helper.h"
+#include "components/translate/content/renderer/translate_helper.h"
#include "base/bind.h"
#include "base/compiler_specific.h"
@@ -12,19 +12,16 @@
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/renderer/isolated_world_ids.h"
#include "components/translate/content/common/translate_messages.h"
#include "components/translate/core/common/translate_constants.h"
#include "components/translate/core/common/translate_metrics.h"
#include "components/translate/core/common/translate_util.h"
#include "components/translate/core/language_detection/language_detection_util.h"
#include "content/public/common/content_constants.h"
+#include "content/public/common/url_constants.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
-#include "extensions/common/constants.h"
-#include "extensions/renderer/extension_groups.h"
#include "ipc/ipc_platform_file.h"
-#include "content/public/common/url_constants.h"
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebElement.h"
#include "third_party/WebKit/public/web/WebFrame.h"
@@ -73,11 +70,15 @@ bool g_cld_callback_set = false;
} // namespace
+namespace translate {
////////////////////////////////////////////////////////////////////////////////
// TranslateHelper, public:
//
-TranslateHelper::TranslateHelper(content::RenderView* render_view)
+TranslateHelper::TranslateHelper(content::RenderView* render_view,
+ int world_id,
+ int extension_group,
+ const std::string& extension_scheme)
: content::RenderViewObserver(render_view),
page_seq_no_(0),
translation_pending_(false),
@@ -86,6 +87,9 @@ TranslateHelper::TranslateHelper(content::RenderView* render_view)
cld_data_polling_canceled_(false),
deferred_page_capture_(false),
deferred_page_seq_no_(-1),
+ world_id_(world_id),
+ extension_group_(extension_group),
+ extension_scheme_(extension_scheme),
weak_method_factory_(this) {
}
@@ -116,7 +120,7 @@ void TranslateHelper::PrepareForUrl(const GURL& url) {
return;
if (url.SchemeIs(url::kFtpScheme))
return;
- if (url.SchemeIs(extensions::kExtensionScheme))
+ if (url.SchemeIs(extension_scheme_.c_str()))
return;
// Start polling for CLD data.
@@ -172,7 +176,7 @@ void TranslateHelper::PageCapturedImpl(int page_seq_no,
html_lang = html_element.getAttribute("lang").utf8();
std::string cld_language;
bool is_cld_reliable;
- std::string language = translate::DeterminePageLanguage(
+ std::string language = DeterminePageLanguage(
content_language, html_lang, contents, &cld_language, &is_cld_reliable);
if (language.empty())
@@ -181,7 +185,7 @@ void TranslateHelper::PageCapturedImpl(int page_seq_no,
language_determined_time_ = base::TimeTicks::Now();
GURL url(document.url());
- translate::LanguageDetectionDetails details;
+ LanguageDetectionDetails details;
details.time = base::Time::Now();
details.url = url;
details.content_language = content_language;
@@ -255,10 +259,7 @@ void TranslateHelper::ExecuteScript(const std::string& script) {
WebScriptSource source = WebScriptSource(ASCIIToUTF16(script));
main_frame->executeScriptInIsolatedWorld(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- &source,
- 1,
- extensions::EXTENSION_GROUP_INTERNAL_TRANSLATE_SCRIPTS);
+ world_id_, &source, 1, extension_group_);
}
bool TranslateHelper::ExecuteScriptAndGetBoolResult(const std::string& script,
@@ -271,11 +272,7 @@ bool TranslateHelper::ExecuteScriptAndGetBoolResult(const std::string& script,
WebVector<v8::Local<v8::Value> > results;
WebScriptSource source = WebScriptSource(ASCIIToUTF16(script));
main_frame->executeScriptInIsolatedWorld(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- &source,
- 1,
- extensions::EXTENSION_GROUP_INTERNAL_TRANSLATE_SCRIPTS,
- &results);
+ world_id_, &source, 1, extension_group_, &results);
if (results.size() != 1 || results[0].IsEmpty() || !results[0]->IsBoolean()) {
NOTREACHED();
return fallback;
@@ -294,11 +291,7 @@ std::string TranslateHelper::ExecuteScriptAndGetStringResult(
WebVector<v8::Local<v8::Value> > results;
WebScriptSource source = WebScriptSource(ASCIIToUTF16(script));
main_frame->executeScriptInIsolatedWorld(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- &source,
- 1,
- extensions::EXTENSION_GROUP_INTERNAL_TRANSLATE_SCRIPTS,
- &results);
+ world_id_, &source, 1, extension_group_, &results);
if (results.size() != 1 || results[0].IsEmpty() || !results[0]->IsString()) {
NOTREACHED();
return std::string();
@@ -321,11 +314,7 @@ double TranslateHelper::ExecuteScriptAndGetDoubleResult(
WebVector<v8::Local<v8::Value> > results;
WebScriptSource source = WebScriptSource(ASCIIToUTF16(script));
main_frame->executeScriptInIsolatedWorld(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- &source,
- 1,
- extensions::EXTENSION_GROUP_INTERNAL_TRANSLATE_SCRIPTS,
- &results);
+ world_id_, &source, 1, extension_group_, &results);
if (results.size() != 1 || results[0].IsEmpty() || !results[0]->IsNumber()) {
NOTREACHED();
return 0.0;
@@ -408,28 +397,25 @@ void TranslateHelper::OnTranslatePage(int page_seq_no,
// If the source language is undetermined, we'll let the translate element
// detect it.
- source_lang_ = (source_lang != translate::kUnknownLanguageCode) ?
- source_lang : kAutoDetectionLanguage;
+ source_lang_ = (source_lang != kUnknownLanguageCode) ? source_lang
+ : kAutoDetectionLanguage;
target_lang_ = target_lang;
- translate::ReportUserActionDuration(language_determined_time_,
- base::TimeTicks::Now());
+ ReportUserActionDuration(language_determined_time_, base::TimeTicks::Now());
GURL url(main_frame->document().url());
- translate::ReportPageScheme(url.scheme());
+ ReportPageScheme(url.scheme());
// Set up v8 isolated world with proper content-security-policy and
// security-origin.
WebFrame* frame = GetMainFrame();
if (frame) {
frame->setIsolatedWorldContentSecurityPolicy(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- WebString::fromUTF8(kContentSecurityPolicy));
+ world_id_, WebString::fromUTF8(kContentSecurityPolicy));
- GURL security_origin = translate::GetTranslateSecurityOrigin();
+ GURL security_origin = GetTranslateSecurityOrigin();
frame->setIsolatedWorldSecurityOrigin(
- chrome::ISOLATED_WORLD_ID_TRANSLATE,
- WebSecurityOrigin::create(security_origin));
+ world_id_, WebSecurityOrigin::create(security_origin));
}
if (!IsTranslateLibAvailable()) {
@@ -465,8 +451,7 @@ void TranslateHelper::CheckTranslateStatus(int page_seq_no) {
// First check if there was an error.
if (HasTranslationFailed()) {
// TODO(toyoshim): Check |errorCode| of translate.js and notify it here.
- NotifyBrowserTranslationFailed(
- translate::TranslateErrors::TRANSLATION_ERROR);
+ NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR);
return; // There was an error.
}
@@ -477,12 +462,10 @@ void TranslateHelper::CheckTranslateStatus(int page_seq_no) {
if (source_lang_ == kAutoDetectionLanguage) {
actual_source_lang = GetOriginalPageLanguage();
if (actual_source_lang.empty()) {
- NotifyBrowserTranslationFailed(
- translate::TranslateErrors::UNKNOWN_LANGUAGE);
+ NotifyBrowserTranslationFailed(TranslateErrors::UNKNOWN_LANGUAGE);
return;
} else if (actual_source_lang == target_lang_) {
- NotifyBrowserTranslationFailed(
- translate::TranslateErrors::IDENTICAL_LANGUAGES);
+ NotifyBrowserTranslationFailed(TranslateErrors::IDENTICAL_LANGUAGES);
return;
}
} else {
@@ -497,7 +480,7 @@ void TranslateHelper::CheckTranslateStatus(int page_seq_no) {
translation_pending_ = false;
// Check JavaScript performance counters for UMA reports.
- translate::ReportTimeToTranslate(
+ ReportTimeToTranslate(
ExecuteScriptAndGetDoubleResult("cr.googleTranslate.translationTime"));
// Notify the browser we are done.
@@ -505,7 +488,7 @@ void TranslateHelper::CheckTranslateStatus(int page_seq_no) {
new ChromeViewHostMsg_PageTranslated(render_view()->GetRoutingID(),
actual_source_lang,
target_lang_,
- translate::TranslateErrors::NONE));
+ TranslateErrors::NONE));
return;
}
@@ -526,8 +509,7 @@ void TranslateHelper::TranslatePageImpl(int page_seq_no, int count) {
// The library is not ready, try again later, unless we have tried several
// times unsucessfully already.
if (++count >= kMaxTranslateInitCheckAttempts) {
- NotifyBrowserTranslationFailed(
- translate::TranslateErrors::INITIALIZATION_ERROR);
+ NotifyBrowserTranslationFailed(TranslateErrors::INITIALIZATION_ERROR);
return;
}
base::MessageLoop::current()->PostDelayedTask(
@@ -541,14 +523,13 @@ void TranslateHelper::TranslatePageImpl(int page_seq_no, int count) {
// The library is loaded, and ready for translation now.
// Check JavaScript performance counters for UMA reports.
- translate::ReportTimeToBeReady(
+ ReportTimeToBeReady(
ExecuteScriptAndGetDoubleResult("cr.googleTranslate.readyTime"));
- translate::ReportTimeToLoad(
+ ReportTimeToLoad(
ExecuteScriptAndGetDoubleResult("cr.googleTranslate.loadTime"));
if (!StartTranslation()) {
- NotifyBrowserTranslationFailed(
- translate::TranslateErrors::TRANSLATION_ERROR);
+ NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR);
return;
}
// Check the status of the translation.
@@ -560,7 +541,7 @@ void TranslateHelper::TranslatePageImpl(int page_seq_no, int count) {
}
void TranslateHelper::NotifyBrowserTranslationFailed(
- translate::TranslateErrors::Type error) {
+ TranslateErrors::Type error) {
translation_pending_ = false;
// Notify the browser there was an error.
render_view()->Send(new ChromeViewHostMsg_PageTranslated(
@@ -653,3 +634,5 @@ void TranslateHelper::RecordLanguageDetectionTiming(
content::RenderThread::Get()->UpdateHistograms(
content::kHistogramSynchronizerReservedSequenceNumber);
}
+
+} // namespace translate
« no previous file with comments | « components/translate/content/renderer/translate_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698