| Index: chrome/browser/ui/browser.cc
|
| diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
|
| index 8cd337440a1443a2a048d6ba99b7108cc5965f7a..e622b05bb3bf803bca354370ba0842fe2b6cbc25 100644
|
| --- a/chrome/browser/ui/browser.cc
|
| +++ b/chrome/browser/ui/browser.cc
|
| @@ -50,6 +50,8 @@
|
| #include "chrome/browser/download/download_service.h"
|
| #include "chrome/browser/download/download_service_factory.h"
|
| #include "chrome/browser/download/download_shelf.h"
|
| +#include "chrome/browser/extensions/api/tabs/tabs_event_router.h"
|
| +#include "chrome/browser/extensions/api/tabs/tabs_windows_api.h"
|
| #include "chrome/browser/extensions/browser_extension_window_controller.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/tab_helper.h"
|
| @@ -890,6 +892,7 @@ void Browser::TabInsertedAt(WebContents* contents,
|
| int index,
|
| bool foreground) {
|
| SetAsDelegate(contents, this);
|
| + SetAsObserver(contents);
|
| SessionTabHelper* session_tab_helper =
|
| SessionTabHelper::FromWebContents(contents);
|
| session_tab_helper->SetWindowID(session_id());
|
| @@ -933,6 +936,7 @@ void Browser::TabClosingAt(TabStripModel* tab_strip_model,
|
|
|
| // Sever the WebContents' connection back to us.
|
| SetAsDelegate(contents, NULL);
|
| + ClearAsObserver(contents);
|
| }
|
|
|
| void Browser::TabDetachedAt(WebContents* contents, int index) {
|
| @@ -2181,6 +2185,14 @@ bool Browser::CanCloseWithInProgressDownloads() {
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // Browser, Assorted utility functions (private):
|
|
|
| +void Browser::SetAsObserver(WebContents* web_contents) {
|
| + ZoomController::FromWebContents(web_contents)->AddObserver(this);
|
| +}
|
| +
|
| +void Browser::ClearAsObserver(WebContents* web_contents) {
|
| + ZoomController::FromWebContents(web_contents)->RemoveObserver(this);
|
| +}
|
| +
|
| void Browser::SetAsDelegate(WebContents* web_contents, Browser* delegate) {
|
| // WebContents...
|
| web_contents->SetDelegate(delegate);
|
| @@ -2192,7 +2204,6 @@ void Browser::SetAsDelegate(WebContents* web_contents, Browser* delegate) {
|
| CoreTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
|
| SearchEngineTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
|
| SearchTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
|
| - ZoomController::FromWebContents(web_contents)->set_observer(delegate);
|
| ChromeTranslateClient* chrome_translate_client =
|
| ChromeTranslateClient::FromWebContents(web_contents);
|
| chrome_translate_client->translate_driver().set_observer(
|
| @@ -2222,6 +2233,7 @@ void Browser::TabDetachedAtImpl(content::WebContents* contents,
|
| }
|
|
|
| SetAsDelegate(contents, NULL);
|
| + ClearAsObserver(contents);
|
| RemoveScheduledUpdatesFor(contents);
|
|
|
| if (find_bar_controller_.get() && index == tab_strip_model_->active_index()) {
|
|
|