diff options
-rw-r--r-- | chrome/browser/ui/zoom/zoom_controller_browsertest.cc | 22 | ||||
-rw-r--r-- | chrome/test/data/extensions/platform_apps/web_view/shim/main.js | 5 | ||||
-rw-r--r-- | components/ui/zoom/zoom_controller.cc | 4 |
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; } } |