Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index d88f14a005d5b8e2ec7dd3ae1b52daa66d94df88..2f7f206b449567917db080f7bae7ea9d88bac48e 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -90,7 +90,6 @@ |
#include "chrome/browser/ui/browser_command_controller.h" |
#include "chrome/browser/ui/browser_commands.h" |
#include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h" |
-#include "chrome/browser/ui/browser_content_translate_driver_observer.h" |
#include "chrome/browser/ui/browser_dialogs.h" |
#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/browser_instant_controller.h" |
@@ -159,6 +158,7 @@ |
#include "components/search/search.h" |
#include "components/sessions/session_types.h" |
#include "components/startup_metric_utils/startup_metric_utils.h" |
+#include "components/translate/core/browser/language_state.h" |
#include "components/ui/zoom/zoom_controller.h" |
#include "components/web_modal/popup_manager.h" |
#include "components/web_modal/web_contents_modal_dialog_manager.h" |
@@ -361,8 +361,6 @@ Browser::Browser(const CreateParams& params) |
bookmark_bar_state_(BookmarkBar::HIDDEN), |
command_controller_(new chrome::BrowserCommandController(this)), |
window_has_shown_(false), |
- translate_driver_observer_( |
- new BrowserContentTranslateDriverObserver(this)), |
chrome_updater_factory_(this), |
weak_factory_(this) { |
// If this causes a crash then a window is being opened using a profile type |
@@ -2066,6 +2064,24 @@ void Browser::OnExtensionUnloaded( |
#endif // defined(ENABLE_EXTENSIONS) |
/////////////////////////////////////////////////////////////////////////////// |
+// Browser, translate::ContentTranslateDriver::Observer implementation: |
+ |
+void Browser::OnIsPageTranslatedChanged(content::WebContents* source) { |
+ DCHECK(source); |
+ if (tab_strip_model_->GetActiveWebContents() == source) { |
+ window_->SetTranslateIconToggled( |
+ ChromeTranslateClient::FromWebContents( |
+ source)->GetLanguageState().IsPageTranslated()); |
+ } |
+} |
+ |
+void Browser::OnTranslateEnabledChanged(content::WebContents* source) { |
+ DCHECK(source); |
+ if (tab_strip_model_->GetActiveWebContents() == source) |
+ UpdateToolbar(false); |
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
// Browser, Command and state updating (private): |
void Browser::OnDevToolsDisabledChanged() { |
@@ -2293,11 +2309,11 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { |
ChromeTranslateClient::FromWebContents(web_contents)->translate_driver(); |
if (delegate) { |
ui_zoom::ZoomController::FromWebContents(web_contents)->AddObserver(this); |
- content_translate_driver.AddObserver(translate_driver_observer_.get()); |
+ content_translate_driver.AddObserver(this); |
} else { |
- ui_zoom::ZoomController::FromWebContents(web_contents) |
- ->RemoveObserver(this); |
- content_translate_driver.RemoveObserver(translate_driver_observer_.get()); |
+ ui_zoom::ZoomController::FromWebContents(web_contents)->RemoveObserver( |
+ this); |
+ content_translate_driver.RemoveObserver(this); |
} |
} |