Commit 2fd6cf23 authored by Doug Arnett's avatar Doug Arnett Committed by Commit Bot

Renames TranslateHelper to TranslateAgent for consistency

Also renames translate::mojom::Page interface to
translate::mojom::TranslateAgent

No functional changes.

Bug: 1043351
Change-Id: I2994e1219ff95aadd3fd650ebb1ee79e7d7b37e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007319Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avataranthonyvd <anthonyvd@chromium.org>
Commit-Queue: Doug Arnett <dougarnett@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735496}
parent 5c4a542e
......@@ -37,20 +37,21 @@
FakePageImpl::FakePageImpl()
: called_translate_(false), called_revert_translation_(false) {}
FakePageImpl::~FakePageImpl() {}
mojo::PendingRemote<translate::mojom::Page>
mojo::PendingRemote<translate::mojom::TranslateAgent>
FakePageImpl::BindToNewPageRemote() {
receiver_.reset();
translate_callback_pending_.Reset();
return receiver_.BindNewPipeAndPassRemote();
}
// translate::mojom::Page implementation.
void FakePageImpl::Translate(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateCallback callback) {
// translate::mojom::TranslateAgent implementation.
void FakePageImpl::TranslateFrame(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateFrameCallback callback) {
// Ensure pending callback gets called.
if (translate_callback_pending_) {
std::move(translate_callback_pending_)
......
......@@ -40,18 +40,18 @@
#include "mojo/public/cpp/bindings/receiver.h"
#include "url/gurl.h"
class FakePageImpl : public translate::mojom::Page {
class FakePageImpl : public translate::mojom::TranslateAgent {
public:
FakePageImpl();
~FakePageImpl() override;
mojo::PendingRemote<translate::mojom::Page> BindToNewPageRemote();
mojo::PendingRemote<translate::mojom::TranslateAgent> BindToNewPageRemote();
// translate::mojom::Page implementation.
void Translate(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateCallback callback) override;
// translate::mojom::TranslateAgent implementation.
void TranslateFrame(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateFrameCallback callback) override;
void RevertTranslation() override;
......@@ -66,8 +66,8 @@ class FakePageImpl : public translate::mojom::Page {
bool called_revert_translation_;
private:
TranslateCallback translate_callback_pending_;
mojo::Receiver<translate::mojom::Page> receiver_{this};
TranslateFrameCallback translate_callback_pending_;
mojo::Receiver<translate::mojom::TranslateAgent> receiver_{this};
DISALLOW_COPY_AND_ASSIGN(FakePageImpl);
};
......
......@@ -29,7 +29,7 @@
#include "components/crash/core/common/crash_key.h"
#include "components/offline_pages/buildflags/buildflags.h"
#include "components/safe_browsing/buildflags.h"
#include "components/translate/content/renderer/translate_helper.h"
#include "components/translate/content/renderer/translate_agent.h"
#include "components/web_cache/renderer/web_cache_impl.h"
#include "content/public/common/bindings_policy.h"
#include "content/public/renderer/render_frame.h"
......@@ -137,7 +137,7 @@ ChromeRenderFrameObserver::ChromeRenderFrameObserver(
content::RenderFrame* render_frame,
web_cache::WebCacheImpl* web_cache_impl)
: content::RenderFrameObserver(render_frame),
translate_helper_(nullptr),
translate_agent_(nullptr),
phishing_classifier_(nullptr),
web_cache_impl_(web_cache_impl) {
render_frame->GetAssociatedInterfaceRegistry()->AddInterface(
......@@ -153,7 +153,7 @@ ChromeRenderFrameObserver::ChromeRenderFrameObserver(
if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection))
SetClientSidePhishingDetection(true);
#endif
translate_helper_ = new translate::TranslateHelper(
translate_agent_ = new translate::TranslateAgent(
render_frame, ISOLATED_WORLD_ID_TRANSLATE, extensions::kExtensionScheme);
}
......@@ -375,11 +375,11 @@ void ChromeRenderFrameObserver::ReadyToCommitNavigation(
if (render_frame()->IsMainFrame() && web_cache_impl_)
web_cache_impl_->ExecutePendingClearCache();
// Let translate_helper do any preparatory work for loading a URL.
if (!translate_helper_)
// Let translate_agent do any preparatory work for loading a URL.
if (!translate_agent_)
return;
translate_helper_->PrepareForUrl(
translate_agent_->PrepareForUrl(
render_frame()->GetWebFrame()->GetDocument().Url());
}
......@@ -453,8 +453,8 @@ void ChromeRenderFrameObserver::CapturePageText(TextCaptureType capture_type) {
// We should run language detection only once. Parsing finishes before
// the page loads, so let's pick that timing.
if (translate_helper_ && capture_type == PRELIMINARY_CAPTURE) {
translate_helper_->PageCaptured(contents);
if (translate_agent_ && capture_type == PRELIMINARY_CAPTURE) {
translate_agent_->PageCaptured(contents);
}
TRACE_EVENT0("renderer", "ChromeRenderFrameObserver::CapturePageText");
......
......@@ -25,7 +25,7 @@ class PhishingClassifierDelegate;
}
namespace translate {
class TranslateHelper;
class TranslateAgent;
}
namespace web_cache {
......@@ -104,7 +104,7 @@ class ChromeRenderFrameObserver : public content::RenderFrameObserver,
base::TimeDelta delay);
// Have the same lifetime as us.
translate::TranslateHelper* translate_helper_;
translate::TranslateAgent* translate_agent_;
safe_browsing::PhishingClassifierDelegate* phishing_classifier_;
// Owned by ChromeContentRendererClient and outlive us.
......
......@@ -11,7 +11,7 @@
#include "base/test/metrics/histogram_tester.h"
#include "chrome/test/base/chrome_render_view_test.h"
#include "components/translate/content/common/translate.mojom.h"
#include "components/translate/content/renderer/translate_helper.h"
#include "components/translate/content/renderer/translate_agent.h"
#include "components/translate/core/common/translate_constants.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_view.h"
......@@ -38,9 +38,10 @@ class FakeContentTranslateDriver
}
// translate::mojom::ContentTranslateDriver implementation.
void RegisterPage(mojo::PendingRemote<translate::mojom::Page> page,
const translate::LanguageDetectionDetails& details,
bool page_needs_translation) override {
void RegisterPage(
mojo::PendingRemote<translate::mojom::TranslateAgent> translate_agent,
const translate::LanguageDetectionDetails& details,
bool page_needs_translation) override {
called_new_page_ = true;
page_needs_translation_ = page_needs_translation;
}
......
......@@ -114,7 +114,7 @@ class TranslateScriptBrowserTest : public ChromeRenderViewTest {
if (result.IsEmpty() || !result->IsNumber()) {
NOTREACHED();
// TODO(toyoshim): Return NaN here and the real implementation in
// TranslateHelper::ExecuteScriptAndGetDoubleResult().
// TranslateAgent::ExecuteScriptAndGetDoubleResult().
return 0.0;
}
return result.As<v8::Number>()->Value();
......
......@@ -1401,7 +1401,7 @@ if (!is_android) {
"../renderer/chrome_render_frame_observer_browsertest.cc",
"../renderer/content_settings_agent_impl_browsertest.cc",
"../renderer/media/cast_session_browsertest.cc",
"../renderer/translate/translate_helper_browsertest.cc",
"../renderer/translate/translate_agent_browsertest.cc",
"../renderer/translate/translate_script_browsertest.cc",
"base/chrome_render_view_test.cc",
"base/chrome_render_view_test.h",
......
......@@ -126,19 +126,19 @@ void ContentTranslateDriver::TranslatePage(int page_seq_no,
const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) {
auto it = pages_.find(page_seq_no);
if (it == pages_.end())
auto it = translate_agents_.find(page_seq_no);
if (it == translate_agents_.end())
return; // This page has navigated away.
it->second->Translate(
it->second->TranslateFrame(
translate_script, source_lang, target_lang,
base::BindOnce(&ContentTranslateDriver::OnPageTranslated,
base::Unretained(this)));
}
void ContentTranslateDriver::RevertTranslation(int page_seq_no) {
auto it = pages_.find(page_seq_no);
if (it == pages_.end())
auto it = translate_agents_.find(page_seq_no);
if (it == translate_agents_.end())
return; // This page has navigated away.
it->second->RevertTranslation();
......@@ -266,7 +266,7 @@ void ContentTranslateDriver::DidFinishNavigation(
}
void ContentTranslateDriver::OnPageAway(int page_seq_no) {
pages_.erase(page_seq_no);
translate_agents_.erase(page_seq_no);
}
void ContentTranslateDriver::AddReceiver(
......@@ -275,7 +275,7 @@ void ContentTranslateDriver::AddReceiver(
}
void ContentTranslateDriver::RegisterPage(
mojo::PendingRemote<translate::mojom::Page> page,
mojo::PendingRemote<translate::mojom::TranslateAgent> translate_agent,
const translate::LanguageDetectionDetails& details,
const bool page_needs_translation) {
// If we have a language histogram (i.e. we're not in incognito), update it
......@@ -283,8 +283,8 @@ void ContentTranslateDriver::RegisterPage(
if (language_histogram_ && details.is_cld_reliable)
language_histogram_->OnPageVisited(details.cld_language);
pages_[++next_page_seq_no_].Bind(std::move(page));
pages_[next_page_seq_no_].set_disconnect_handler(
translate_agents_[++next_page_seq_no_].Bind(std::move(translate_agent));
translate_agents_[next_page_seq_no_].set_disconnect_handler(
base::BindOnce(&ContentTranslateDriver::OnPageAway,
base::Unretained(this), next_page_seq_no_));
translate_manager_->set_current_seq_no(next_page_seq_no_);
......
......@@ -117,9 +117,10 @@ class ContentTranslateDriver : public TranslateDriver,
void AddReceiver(
mojo::PendingReceiver<translate::mojom::ContentTranslateDriver> receiver);
// Called when a page has been loaded and can be potentially translated.
void RegisterPage(mojo::PendingRemote<translate::mojom::Page> page,
const translate::LanguageDetectionDetails& details,
bool page_needs_translation) override;
void RegisterPage(
mojo::PendingRemote<translate::mojom::TranslateAgent> translate_agent,
const translate::LanguageDetectionDetails& details,
bool page_needs_translation) override;
private:
void OnPageAway(int page_seq_no);
......@@ -136,17 +137,17 @@ class ContentTranslateDriver : public TranslateDriver,
// Records mojo connections with all current alive pages.
int next_page_seq_no_;
// mojo::Remote<Page> is the connection between this driver and a
// TranslateHelper (which are per RenderFrame). Each TranslateHelper has a
// mojo::Remote<TranslateAgent> is the connection between this driver and a
// TranslateAgent (which are per RenderFrame). Each TranslateAgent has a
// |binding_| member, representing the other end of this pipe.
std::map<int, mojo::Remote<mojom::Page>> pages_;
std::map<int, mojo::Remote<mojom::TranslateAgent>> translate_agents_;
// Histogram to be notified about detected language of every page visited. Not
// owned here.
language::UrlLanguageHistogram* const language_histogram_;
// ContentTranslateDriver is a singleton per web contents but multiple render
// frames may be contained in a single web contents. TranslateHelpers get the
// frames may be contained in a single web contents. TranslateAgents get the
// other end of this receiver in the form of a ContentTranslateDriver.
mojo::ReceiverSet<translate::mojom::ContentTranslateDriver> receivers_;
......
......@@ -35,8 +35,11 @@ struct LanguageDetectionDetails {
mojo_base.mojom.String16 contents;
};
interface Page {
// Requests that the page be translated from |source_lang| to
// Handles language translation. This is used by the browser process to
// direct a renderer to translate the language of a frame (or revert a
// previous translation of the contents of a frame).
interface TranslateAgent {
// Requests that the frame be translated from |source_lang| to
// |target_lang|.
//
// If a Translate request is already in progress with a matching
......@@ -49,18 +52,22 @@ interface Page {
//
// If |cancelled| is |true| all other response values should be
// ignored.
Translate(string translate_script, string source_lang, string target_lang)
TranslateFrame(string translate_script, string source_lang,
string target_lang)
=> (bool cancelled, string original_lang, string translated_lang,
TranslateError error);
// Requests that the page be reverted to its original language with
// Requests that the frame be reverted to its original language with
// no translation applied.
RevertTranslation();
};
// Reports when page is ready for translation. This is used by the
// renderer of a main frame to report its detected language to the
// browser process and provides the translation interface back to itself.
interface ContentTranslateDriver {
// Notification that a new page is ready to translate,
// and the language for it has been determined.
RegisterPage(pending_remote<Page> page, LanguageDetectionDetails details,
bool page_needs_translation);
RegisterPage(pending_remote<TranslateAgent> translate_agent,
LanguageDetectionDetails details, bool page_needs_translation);
};
......@@ -6,8 +6,8 @@ import("//build/config/features.gni")
static_library("renderer") {
sources = [
"translate_helper.cc",
"translate_helper.h",
"translate_agent.cc",
"translate_agent.h",
]
deps = [
......@@ -28,7 +28,7 @@ static_library("renderer") {
source_set("unit_tests") {
testonly = true
sources = [ "translate_helper_unittest.cc" ]
sources = [ "translate_agent_unittest.cc" ]
deps = [
":renderer",
"//base",
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_HELPER_H_
#define COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_HELPER_H_
#ifndef COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_AGENT_H_
#define COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_AGENT_H_
#include <memory>
#include <string>
......@@ -27,14 +27,14 @@ class WebLocalFrame;
namespace translate {
// This class deals with page translation.
// There is one TranslateHelper per RenderView.
class TranslateHelper : public content::RenderFrameObserver,
public mojom::Page {
// There is one TranslateAgent per RenderView.
class TranslateAgent : public content::RenderFrameObserver,
public mojom::TranslateAgent {
public:
TranslateHelper(content::RenderFrame* render_frame,
int world_id,
const std::string& extension_scheme);
~TranslateHelper() override;
TranslateAgent(content::RenderFrame* render_frame,
int world_id,
const std::string& extension_scheme);
~TranslateAgent() override;
// Informs us that the page's text has been extracted.
void PageCaptured(const base::string16& contents);
......@@ -44,11 +44,11 @@ class TranslateHelper : public content::RenderFrameObserver,
// this URL loads, this is the time to prepare for it.
void PrepareForUrl(const GURL& url);
// mojom::Page implementation.
void Translate(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateCallback callback) override;
// mojom::TranslateAgent implementation.
void TranslateFrame(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang,
TranslateFrameCallback callback) override;
void RevertTranslation() override;
protected:
......@@ -109,7 +109,7 @@ class TranslateHelper : public content::RenderFrameObserver,
virtual int64_t ExecuteScriptAndGetIntegerResult(const std::string& script);
private:
FRIEND_TEST_ALL_PREFIXES(TranslateHelperTest, TestBuildTranslationScript);
FRIEND_TEST_ALL_PREFIXES(TranslateAgentTest, TestBuildTranslationScript);
// Converts language code to the one used in server supporting list.
static void ConvertLanguageCodeSynonym(std::string* code);
......@@ -145,12 +145,12 @@ class TranslateHelper : public content::RenderFrameObserver,
// with |error|.
void NotifyBrowserTranslationFailed(TranslateErrors::Type error);
// Convenience method to access the main frame. Can return NULL, typically
// Convenience method to access the main frame. Can return nullptr, typically
// if the page is being closed.
blink::WebLocalFrame* GetMainFrame();
// The states associated with the current translation.
TranslateCallback translate_callback_pending_;
TranslateFrameCallback translate_callback_pending_;
std::string source_lang_;
std::string target_lang_;
......@@ -174,14 +174,14 @@ class TranslateHelper : public content::RenderFrameObserver,
// Mojo interface).
mojo::Remote<mojom::ContentTranslateDriver> translate_handler_;
mojo::Receiver<mojom::Page> receiver_{this};
mojo::Receiver<mojom::TranslateAgent> receiver_{this};
// Method factory used to make calls to TranslatePageImpl.
base::WeakPtrFactory<TranslateHelper> weak_method_factory_{this};
base::WeakPtrFactory<TranslateAgent> weak_method_factory_{this};
DISALLOW_COPY_AND_ASSIGN(TranslateHelper);
DISALLOW_COPY_AND_ASSIGN(TranslateAgent);
};
} // namespace translate
#endif // COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_HELPER_H_
#endif // COMPONENTS_TRANSLATE_CONTENT_RENDERER_TRANSLATE_AGENT_H_
......@@ -2,27 +2,27 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/translate/content/renderer/translate_helper.h"
#include "components/translate/content/renderer/translate_agent.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace translate {
class TranslateHelperTest : public testing::Test {};
class TranslateAgentTest : public testing::Test {};
TEST_F(TranslateHelperTest, TestBuildTranslationScript) {
TEST_F(TranslateAgentTest, TestBuildTranslationScript) {
// Test expected cases.
EXPECT_EQ(TranslateHelper::BuildTranslationScript("en", "es"),
EXPECT_EQ(TranslateAgent::BuildTranslationScript("en", "es"),
"cr.googleTranslate.translate(\"en\",\"es\")");
EXPECT_EQ(TranslateHelper::BuildTranslationScript("en-US", "zh-TW"),
EXPECT_EQ(TranslateAgent::BuildTranslationScript("en-US", "zh-TW"),
"cr.googleTranslate.translate(\"en-US\",\"zh-TW\")");
// Test that quote gets quoted.
EXPECT_EQ(TranslateHelper::BuildTranslationScript("en\"", "es"),
EXPECT_EQ(TranslateAgent::BuildTranslationScript("en\"", "es"),
"cr.googleTranslate.translate(\"en\\\"\",\"es\")");
// Test that < gets quoted.
EXPECT_EQ(TranslateHelper::BuildTranslationScript("en<", "es"),
EXPECT_EQ(TranslateAgent::BuildTranslationScript("en<", "es"),
"cr.googleTranslate.translate(\"en\\u003C\",\"es\")");
}
......
......@@ -30,7 +30,7 @@ extern const char kTranslateLanguageDetectionConflict[];
} // namespace metrics_internal
// A page may provide a Content-Language HTTP header or a META tag.
// TranslateHelper checks if a server provides a valid Content-Language.
// TranslateAgent checks if a server provides a valid Content-Language.
enum LanguageCheckType {
LANGUAGE_NOT_PROVIDED,
LANGUAGE_VALID,
......@@ -38,7 +38,7 @@ enum LanguageCheckType {
LANGUAGE_MAX,
};
// When a valid Content-Language is provided, TranslateHelper checks if a
// When a valid Content-Language is provided, TranslateAgent checks if a
// server provided Content-Language matches to a language CLD determined.
enum LanguageVerificationType {
LANGUAGE_VERIFICATION_CLD_DISABLED, // obsolete
......@@ -59,14 +59,14 @@ enum SchemeType {
SCHEME_MAX,
};
// Called after TranslateHelper verifies a server providing Content-Language
// Called after TranslateAgent verifies a server providing Content-Language
// header. |provided_code| contains a Content-Language header value which a
// server provides. It can be empty string when a server doesn't provide it.
// |revised_code| is a value modified by format error corrector.
void ReportContentLanguage(const std::string& provided_code,
const std::string& revised_code);
// Called after TranslateHelper verifies a page providing html lang attribute.
// Called after TranslateAgent verifies a page providing html lang attribute.
// |provided_code| contains a html lang attribute which a page provides. It can
// be empty string when a page doesn't provide it. |revised_code| is a value
// modified by format error corrector.
......
......@@ -113,7 +113,7 @@ class IOSTranslateDriver
// An ever-increasing sequence number of the current page, used to match up
// translation requests with responses.
// This matches the similar field in TranslateHelper in the renderer on other
// This matches the similar field in TranslateAgent in the renderer on other
// platforms.
int page_seq_no_;
......
......@@ -14,8 +14,8 @@
@class NSString;
// Manager for the injection of the Translate JavaScript.
// Replicates functionality from TranslateHelper in
// chrome/renderer/translate/translate_helper.cc.
// Replicates functionality from TranslateAgent in
// chrome/renderer/translate/translate_agent.cc.
// JsTranslateManager injects the script in the page and calls it, but is not
// responsible for loading it or caching it.
@interface JsTranslateManager : CRWJSInjectionManager
......@@ -25,7 +25,7 @@
@property(nonatomic, copy) NSString* script;
// Starts translation of the page from |source| language to |target| language.
// Equivalent to TranslateHelper::StartTranslation().
// Equivalent to TranslateAgent::StartTranslation().
- (void)startTranslationFrom:(const std::string&)source
to:(const std::string&)target;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment