| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/ui/zoom/zoom_controller.h" | 5 #include "components/ui/zoom/zoom_controller.h" |
| 6 | 6 |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "base/process/kill.h" | 8 #include "base/process/kill.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 } | 57 } |
| 58 | 58 |
| 59 private: | 59 private: |
| 60 content::WebContents* web_contents_; | 60 content::WebContents* web_contents_; |
| 61 ZoomController::ZoomChangedEventData expected_event_data_; | 61 ZoomController::ZoomChangedEventData expected_event_data_; |
| 62 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; | 62 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
| 63 | 63 |
| 64 DISALLOW_COPY_AND_ASSIGN(ZoomChangedWatcher); | 64 DISALLOW_COPY_AND_ASSIGN(ZoomChangedWatcher); |
| 65 }; | 65 }; |
| 66 | 66 |
| 67 typedef InProcessBrowserTest ZoomControllerBrowserTest; | 67 class ZoomControllerBrowserTest : public InProcessBrowserTest { |
| 68 public: |
| 69 ZoomControllerBrowserTest() {} |
| 70 ~ZoomControllerBrowserTest() override {} |
| 71 |
| 72 void TestResetOnNavigation(ZoomController::ZoomMode zoom_mode) { |
| 73 DCHECK(zoom_mode == ZoomController::ZOOM_MODE_ISOLATED || |
| 74 zoom_mode == ZoomController::ZOOM_MODE_MANUAL); |
| 75 content::WebContents* web_contents = |
| 76 browser()->tab_strip_model()->GetActiveWebContents(); |
| 77 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 78 browser(), GURL("about:blank"), 1); |
| 79 ZoomController* zoom_controller = |
| 80 ZoomController::FromWebContents(web_contents); |
| 81 double zoom_level = zoom_controller->GetDefaultZoomLevel(); |
| 82 zoom_controller->SetZoomMode(zoom_mode); |
| 83 |
| 84 // When the navigation occurs, the zoom_mode will be reset to |
| 85 // ZOOM_MODE_DEFAULT, and this will be reflected in the event that |
| 86 // is generated. |
| 87 ZoomController::ZoomChangedEventData zoom_change_data( |
| 88 web_contents, zoom_level, zoom_level, ZoomController::ZOOM_MODE_DEFAULT, |
| 89 false); |
| 90 ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); |
| 91 |
| 92 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)); |
| 93 zoom_change_watcher.Wait(); |
| 94 } |
| 95 }; // ZoomControllerBrowserTest |
| 68 | 96 |
| 69 #if defined(OS_ANDROID) | 97 #if defined(OS_ANDROID) |
| 70 #define MAYBE_CrashedTabsDoNotChangeZoom DISABLED_CrashedTabsDoNotChangeZoom | 98 #define MAYBE_CrashedTabsDoNotChangeZoom DISABLED_CrashedTabsDoNotChangeZoom |
| 71 #else | 99 #else |
| 72 #define MAYBE_CrashedTabsDoNotChangeZoom CrashedTabsDoNotChangeZoom | 100 #define MAYBE_CrashedTabsDoNotChangeZoom CrashedTabsDoNotChangeZoom |
| 73 #endif | 101 #endif |
| 74 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, | 102 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, |
| 75 MAYBE_CrashedTabsDoNotChangeZoom) { | 103 MAYBE_CrashedTabsDoNotChangeZoom) { |
| 76 // At the start of the test we are at a tab displaying about:blank. | 104 // At the start of the test we are at a tab displaying about:blank. |
| 77 content::WebContents* web_contents = | 105 content::WebContents* web_contents = |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 | 185 |
| 158 content::HostZoomMap* host_zoom_map = | 186 content::HostZoomMap* host_zoom_map = |
| 159 content::HostZoomMap::GetDefaultForBrowserContext( | 187 content::HostZoomMap::GetDefaultForBrowserContext( |
| 160 web_contents->GetBrowserContext()); | 188 web_contents->GetBrowserContext()); |
| 161 | 189 |
| 162 host_zoom_map->SetZoomLevelForHost("about:blank", new_zoom_level); | 190 host_zoom_map->SetZoomLevelForHost("about:blank", new_zoom_level); |
| 163 zoom_change_watcher.Wait(); | 191 zoom_change_watcher.Wait(); |
| 164 } | 192 } |
| 165 | 193 |
| 166 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, PerTabModeResetSendsEvent) { | 194 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, PerTabModeResetSendsEvent) { |
| 167 content::WebContents* web_contents = | 195 TestResetOnNavigation(ZoomController::ZOOM_MODE_ISOLATED); |
| 168 browser()->tab_strip_model()->GetActiveWebContents(); | 196 } |
| 169 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | |
| 170 browser(), GURL("about:blank"), 1); | |
| 171 ZoomController* zoom_controller = | |
| 172 ZoomController::FromWebContents(web_contents); | |
| 173 double zoom_level = zoom_controller->GetDefaultZoomLevel(); | |
| 174 zoom_controller->SetZoomMode(ZoomController::ZOOM_MODE_ISOLATED); | |
| 175 | 197 |
| 176 // When the navigation occurs, the ZOOM_MODE_ISOLATED will be reset to | 198 // Regression test: crbug.com/450909. |
| 177 // ZOOM_MODE_DEFAULT, and this will be reflected in the event that | 199 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, NavigationResetsManualMode) { |
| 178 // is generated. | 200 TestResetOnNavigation(ZoomController::ZOOM_MODE_MANUAL); |
| 179 ZoomController::ZoomChangedEventData zoom_change_data( | |
| 180 web_contents, zoom_level, zoom_level, ZoomController::ZOOM_MODE_DEFAULT, | |
| 181 false); | |
| 182 ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); | |
| 183 | |
| 184 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)); | |
| 185 zoom_change_watcher.Wait(); | |
| 186 } | 201 } |
| 187 | 202 |
| 188 #if !defined(OS_CHROMEOS) | 203 #if !defined(OS_CHROMEOS) |
| 189 // Regression test: crbug.com/438979. | 204 // Regression test: crbug.com/438979. |
| 190 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, | 205 IN_PROC_BROWSER_TEST_F(ZoomControllerBrowserTest, |
| 191 SettingsZoomAfterSigninWorks) { | 206 SettingsZoomAfterSigninWorks) { |
| 192 GURL signin_url( | 207 GURL signin_url( |
| 193 std::string(chrome::kChromeUIChromeSigninURL).append("?source=0")); | 208 std::string(chrome::kChromeUIChromeSigninURL).append("?source=0")); |
| 194 // We open the signin page in a new tab so that the ZoomController is | 209 // We open the signin page in a new tab so that the ZoomController is |
| 195 // created against the HostZoomMap of the special StoragePartition that | 210 // created against the HostZoomMap of the special StoragePartition that |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 web_contents, | 262 web_contents, |
| 248 old_zoom_level, | 263 old_zoom_level, |
| 249 new_zoom_level, | 264 new_zoom_level, |
| 250 ZoomController::ZOOM_MODE_DEFAULT, | 265 ZoomController::ZOOM_MODE_DEFAULT, |
| 251 true); // We have a non-empty host, so this will be 'true'. | 266 true); // We have a non-empty host, so this will be 'true'. |
| 252 ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); | 267 ZoomChangedWatcher zoom_change_watcher(web_contents, zoom_change_data); |
| 253 zoom_controller->SetZoomLevel(new_zoom_level); | 268 zoom_controller->SetZoomLevel(new_zoom_level); |
| 254 zoom_change_watcher.Wait(); | 269 zoom_change_watcher.Wait(); |
| 255 } | 270 } |
| 256 #endif // !defined(OS_CHROMEOS) | 271 #endif // !defined(OS_CHROMEOS) |
| OLD | NEW |