Commit f9e677dd authored by John Z Wu's avatar John Z Wu Committed by Commit Bot

Hide TranslateManager from CWVTranslationController.

This is in preparation for a FakeWebViewTranslateClient so unit tests
can be written for the rest of the public methods.

Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I7bb15cf38467b5a2b388fee7849599c1876ffa6c
Reviewed-on: https://chromium-review.googlesource.com/953824Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Commit-Queue: John Wu <jzw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541669}
parent 9e0f6e12
......@@ -10,7 +10,6 @@
#include "base/strings/string16.h"
#include "base/strings/sys_string_conversions.h"
#include "components/translate/core/browser/translate_download_manager.h"
#include "components/translate/core/browser/translate_manager.h"
#import "ios/web_view/internal/cwv_web_view_configuration_internal.h"
#import "ios/web_view/internal/translate/cwv_translation_language_internal.h"
#import "ios/web_view/internal/translate/web_view_translate_client.h"
......@@ -146,12 +145,12 @@ const NSInteger CWVTranslationErrorScriptLoadError =
base::SysNSStringToUTF8(sourceLanguage.languageCode);
std::string targetLanguageCode =
base::SysNSStringToUTF8(targetLanguage.languageCode);
_translateClient->translate_manager()->TranslatePage(
sourceLanguageCode, targetLanguageCode, userInitiated);
_translateClient->TranslatePage(sourceLanguageCode, targetLanguageCode,
userInitiated);
}
- (void)revertTranslation {
_translateClient->translate_manager()->RevertTranslation();
_translateClient->RevertTranslation();
}
- (void)setTranslationPolicy:(CWVTranslationPolicy*)policy
......
......@@ -51,9 +51,14 @@ class WebViewTranslateClient
translation_controller_ = controller;
}
translate::TranslateManager* translate_manager() {
return translate_manager_.get();
}
// Performs translation from |source_lang| to |target_lang|.
// |trigged_from_menu| indicates if a direct result of user interaction.
void TranslatePage(const std::string& source_lang,
const std::string& target_lang,
bool triggered_from_menu);
// Reverts previous translations back to original language.
void RevertTranslation();
// TranslateClient implementation.
translate::IOSTranslateDriver* GetTranslateDriver() override;
......
......@@ -55,6 +55,19 @@ WebViewTranslateClient::WebViewTranslateClient(web::WebState* web_state)
WebViewTranslateClient::~WebViewTranslateClient() = default;
void WebViewTranslateClient::TranslatePage(const std::string& source_lang,
const std::string& target_lang,
bool triggered_from_menu) {
DCHECK(translate_manager_);
translate_manager_->TranslatePage(source_lang, target_lang,
triggered_from_menu);
}
void WebViewTranslateClient::RevertTranslation() {
DCHECK(translate_manager_);
translate_manager_->RevertTranslation();
}
// TranslateClient implementation:
std::unique_ptr<infobars::InfoBar> WebViewTranslateClient::CreateInfoBar(
......@@ -124,6 +137,8 @@ void WebViewTranslateClient::ShowReportLanguageDetectionErrorUI(
NOTREACHED();
}
// web::WebStateObserver implementation
void WebViewTranslateClient::WebStateDestroyed(web::WebState* web_state) {
web_state->RemoveObserver(this);
// Translation process can be interrupted.
......
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