diff options
Diffstat (limited to 'chromium/weblayer/browser/translate_client_impl.h')
-rw-r--r-- | chromium/weblayer/browser/translate_client_impl.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/weblayer/browser/translate_client_impl.h b/chromium/weblayer/browser/translate_client_impl.h index 760d69dbfaf..c33e77eb77b 100644 --- a/chromium/weblayer/browser/translate_client_impl.h +++ b/chromium/weblayer/browser/translate_client_impl.h @@ -8,6 +8,7 @@ #include <memory> #include <string> +#include "base/scoped_observer.h" #include "build/build_config.h" #include "components/translate/content/browser/content_translate_driver.h" #include "components/translate/core/browser/translate_client.h" @@ -27,6 +28,7 @@ namespace weblayer { class TranslateClientImpl : public translate::TranslateClient, + public translate::ContentTranslateDriver::Observer, public content::WebContentsObserver, public content::WebContentsUserData<TranslateClientImpl> { public: @@ -63,6 +65,14 @@ class TranslateClientImpl bool IsTranslatableURL(const GURL& url) override; void ShowReportLanguageDetectionErrorUI(const GURL& report_url) override; + // ContentTranslateDriver::Observer implementation. + void OnLanguageDetermined( + const translate::LanguageDetectionDetails& details) override; + + // Trigger a manual translation when the necessary state (e.g. source + // language) is ready. + void ManualTranslateWhenReady(); + private: explicit TranslateClientImpl(content::WebContents* web_contents); friend class content::WebContentsUserData<TranslateClientImpl>; @@ -73,6 +83,13 @@ class TranslateClientImpl translate::ContentTranslateDriver translate_driver_; std::unique_ptr<translate::TranslateManager> translate_manager_; + // Whether to trigger a manual translation when ready. + bool manual_translate_on_ready_ = false; + + ScopedObserver<translate::ContentTranslateDriver, + translate::ContentTranslateDriver::Observer> + observer_{this}; + WEB_CONTENTS_USER_DATA_KEY_DECL(); DISALLOW_COPY_AND_ASSIGN(TranslateClientImpl); |