Index: chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
diff --git a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
index 43840d50d0cf9919cf5d616d91018cfb110cb77b..378739ded0521611e497585fce043baaab1f2a21 100644 |
--- a/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
+++ b/chrome/browser/ui/zoom/zoom_controller_browsertest.cc |
@@ -64,7 +64,35 @@ class ZoomChangedWatcher : public ZoomObserver { |
DISALLOW_COPY_AND_ASSIGN(ZoomChangedWatcher); |
}; |
-typedef InProcessBrowserTest ZoomControllerBrowserTest; |
+class ZoomControllerBrowserTest : public InProcessBrowserTest { |
+ public: |
+ ZoomControllerBrowserTest() {} |
+ ~ZoomControllerBrowserTest() override {} |
+ |
+ void TestResetOnNavigation(ZoomController::ZoomMode zoom_mode) { |
+ DCHECK(zoom_mode == ZoomController::ZOOM_MODE_ISOLATED || |
+ zoom_mode == ZoomController::ZOOM_MODE_MANUAL); |
+ content::WebContents* web_contents = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
+ browser(), GURL("about:blank"), 1); |
+ ZoomController* zoom_controller = |
+ ZoomController::FromWebContents(web_contents); |
+ double zoom_level = zoom_controller->GetDefaultZoomLevel(); |
+ zoom_controller->SetZoomMode(zoom_mode); |
+ |
+ // When the navigation occurs, the zoom_mode will be reset to |
+ // ZOOM_MODE_DEFAULT, and this will be reflected in the event that |
+ // is generated. |
+ ZoomController::ZoomChangedEventData zoom_change_data( |
+ web_contents, zoom_level, zoom_level, ZoomController::ZOOM_MODE_DEFAULT, |
+ false); |
+ ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); |
+ |
+ ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)); |
+ zoom_change_watcher.Wait(); |
+ } |
+}; // ZoomControllerBrowserTest |
#if defined(OS_ANDROID) |
#define MAYBE_CrashedTabsDoNotChangeZoom DISABLED_CrashedTabsDoNotChangeZoom |
@@ -164,25 +192,12 @@ IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, Observe) { |
} |
IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, PerTabModeResetSendsEvent) { |
- content::WebContents* web_contents = |
- browser()->tab_strip_model()->GetActiveWebContents(); |
- ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
- browser(), GURL("about:blank"), 1); |
- ZoomController* zoom_controller = |
- ZoomController::FromWebContents(web_contents); |
- double zoom_level = zoom_controller->GetDefaultZoomLevel(); |
- zoom_controller->SetZoomMode(ZoomController::ZOOM_MODE_ISOLATED); |
- |
- // When the navigation occurs, the ZOOM_MODE_ISOLATED will be reset to |
- // ZOOM_MODE_DEFAULT, and this will be reflected in the event that |
- // is generated. |
- ZoomController::ZoomChangedEventData zoom_change_data( |
- web_contents, zoom_level, zoom_level, ZoomController::ZOOM_MODE_DEFAULT, |
- false); |
- ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); |
+ TestResetOnNavigation(ZoomController::ZOOM_MODE_ISOLATED); |
+} |
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)); |
- zoom_change_watcher.Wait(); |
+// Regression test: crbug.com/450909. |
+IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, NavigationResetsManualMode) { |
+ TestResetOnNavigation(ZoomController::ZOOM_MODE_MANUAL); |
} |
#if !defined(OS_CHROMEOS) |