summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/zoom/zoom_controller_browsertest.cc22
-rw-r--r--chrome/test/data/extensions/platform_apps/web_view/shim/main.js5
-rw-r--r--components/ui/zoom/zoom_controller.cc4
3 files changed, 26 insertions, 5 deletions
diff --git a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc
index 83ad727..bf863e8 100644
--- a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc
+++ b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc
@@ -243,6 +243,28 @@ IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, Observe) {
zoom_change_watcher.Wait();
}
+IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, ObserveDisabledModeEvent) {
+ content::WebContents* web_contents =
+ browser()->tab_strip_model()->GetActiveWebContents();
+
+ ZoomController* zoom_controller =
+ ZoomController::FromWebContents(web_contents);
+
+ double default_zoom_level = zoom_controller->GetDefaultZoomLevel();
+ double new_zoom_level = default_zoom_level + 1.0;
+ zoom_controller->SetZoomLevel(new_zoom_level);
+
+ ZoomController::ZoomChangedEventData zoom_change_data(
+ web_contents,
+ new_zoom_level,
+ default_zoom_level,
+ ZoomController::ZOOM_MODE_DISABLED,
+ true);
+ ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data);
+ zoom_controller->SetZoomMode(ZoomController::ZOOM_MODE_DISABLED);
+ zoom_change_watcher.Wait();
+}
+
IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, PerTabModeResetSendsEvent) {
TestResetOnNavigation(ZoomController::ZOOM_MODE_ISOLATED);
}
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
index 0b116a8..d9bcfc2 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
@@ -2170,10 +2170,7 @@ function testDisabledZoomMode() {
var zoomchanged = false;
var zoomchangeListener = function(e) {
- // TODO (paulmeyer): This is currently broken because ZoomObservers do not
- // get the correct new zoom level when changing the zoom mode to
- // 'disabled'. Will add back in after http://crbug.com/472621 is fixed.
- //embedder.test.assertEq(e.newZoomFactor, 1);
+ embedder.test.assertEq(e.newZoomFactor, 1);
zoomchanged = true;
};
diff --git a/components/ui/zoom/zoom_controller.cc b/components/ui/zoom/zoom_controller.cc
index 14a5700..1bd965b 100644
--- a/components/ui/zoom/zoom_controller.cc
+++ b/components/ui/zoom/zoom_controller.cc
@@ -243,8 +243,10 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
}
case ZOOM_MODE_DISABLED: {
// The page needs to be zoomed back to default before disabling the zoom
+ double new_zoom_level = GetDefaultZoomLevel();
+ event_data_->new_zoom_level = new_zoom_level;
zoom_map->SetTemporaryZoomLevel(render_process_id, render_view_id,
- GetDefaultZoomLevel());
+ new_zoom_level);
break;
}
}