Index: chrome/browser/ui/tabs/tab_strip_model.cc |
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc |
index dfad932240f11a5d7e939b29bdf33403f933d6e0..68350fcad3af828cf98d49074e28df3d80f2963f 100644 |
--- a/chrome/browser/ui/tabs/tab_strip_model.cc |
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc |
@@ -160,6 +160,11 @@ class TabStripModel::WebContentsData : public content::WebContentsObserver { |
void set_discarded(bool value) { discarded_ = value; } |
private: |
+ // Notify observers when a WebContents zooms. |
+ virtual void DidSetZoomLevel(double old_zoom_level, |
+ double new_zoom_level, |
+ content::ZoomMode zoom_mode) OVERRIDE; |
+ |
// Make sure that if someone deletes this WebContents out from under us, it |
// is properly removed from the tab strip. |
virtual void WebContentsDestroyed(WebContents* web_contents) OVERRIDE; |
@@ -225,6 +230,15 @@ void TabStripModel::WebContentsData::SetWebContents(WebContents* contents) { |
Observe(contents); |
} |
+void TabStripModel::WebContentsData::DidSetZoomLevel( |
+ double old_zoom_level, |
+ double new_zoom_level, |
+ content::ZoomMode zoom_mode) { |
+ DCHECK(contents_); |
+ tab_strip_model_->WebContentsZoomChange(contents_, old_zoom_level, |
+ new_zoom_level, zoom_mode); |
+} |
+ |
void TabStripModel::WebContentsData::WebContentsDestroyed( |
WebContents* web_contents) { |
DCHECK_EQ(contents_, web_contents); |
@@ -782,6 +796,15 @@ void TabStripModel::SetSelectionFromModel( |
SetSelection(source, NOTIFY_DEFAULT); |
} |
+void TabStripModel::WebContentsZoomChange(content::WebContents* contents, |
+ double old_zoom_level, |
+ double new_zoom_level, |
+ content::ZoomMode zoom_mode) { |
+ FOR_EACH_OBSERVER(TabStripModelObserver, observers_, |
+ TabZoomChange(contents, old_zoom_level, |
+ new_zoom_level, zoom_mode)); |
+} |
+ |
void TabStripModel::AddWebContents(WebContents* contents, |
int index, |
content::PageTransition transition, |