Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: chrome/browser/ui/views/frame/immersive_mode_controller_ash_browsertest.cc

Issue 27458002: Allow setting different hit test bounds overrides for mouse and touch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h" 5 #include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/root_window_controller.h" 8 #include "ash/root_window_controller.h"
9 #include "ash/shelf/shelf_layout_manager.h" 9 #include "ash/shelf/shelf_layout_manager.h"
10 #include "ash/shelf/shelf_types.h" 10 #include "ash/shelf/shelf_types.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 EXPECT_EQ(ash::SHELF_AUTO_HIDE, shelf->visibility_state()); 231 EXPECT_EQ(ash::SHELF_AUTO_HIDE, shelf->visibility_state());
232 } 232 }
233 233
234 // Test how being simultaneously in tab fullscreen and immersive fullscreen 234 // Test how being simultaneously in tab fullscreen and immersive fullscreen
235 // affects the shelf visibility and whether the tab indicators are hidden. 235 // affects the shelf visibility and whether the tab indicators are hidden.
236 IN_PROC_BROWSER_TEST_F(ImmersiveModeControllerAshTest, 236 IN_PROC_BROWSER_TEST_F(ImmersiveModeControllerAshTest,
237 TabAndBrowserFullscreen) { 237 TabAndBrowserFullscreen) {
238 ash::internal::ShelfLayoutManager* shelf = 238 ash::internal::ShelfLayoutManager* shelf =
239 ash::Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager(); 239 ash::Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager();
240 240
241 controller()->SetForceHideTabIndicatorsForTest(false);
242
243 // The shelf should start out as visible. 241 // The shelf should start out as visible.
244 ASSERT_EQ(ash::SHELF_VISIBLE, shelf->visibility_state()); 242 ASSERT_EQ(ash::SHELF_VISIBLE, shelf->visibility_state());
245 243
246 // 1) Test that entering tab fullscreen from immersive mode hides the tab 244 // 1) Test that entering tab fullscreen from immersive mode hides the tab
247 // indicators and the shelf. 245 // indicators and the shelf.
248 chrome::ToggleFullscreenMode(browser()); 246 chrome::ToggleFullscreenMode(browser());
249 ASSERT_TRUE(controller()->IsEnabled()); 247 ASSERT_TRUE(controller()->IsEnabled());
250 EXPECT_EQ(ash::SHELF_AUTO_HIDE, shelf->visibility_state()); 248 EXPECT_EQ(ash::SHELF_AUTO_HIDE, shelf->visibility_state());
251 EXPECT_FALSE(controller()->ShouldHideTabIndicators()); 249 EXPECT_FALSE(controller()->ShouldHideTabIndicators());
252 250
(...skipping 29 matching lines...) Expand all
282 waiter->Wait(); 280 waiter->Wait();
283 waiter.reset(new FullscreenNotificationObserver()); 281 waiter.reset(new FullscreenNotificationObserver());
284 chrome::ToggleFullscreenMode(browser()); 282 chrome::ToggleFullscreenMode(browser());
285 waiter->Wait(); 283 waiter->Wait();
286 284
287 ASSERT_FALSE(controller()->IsEnabled()); 285 ASSERT_FALSE(controller()->IsEnabled());
288 EXPECT_EQ(ash::SHELF_VISIBLE, shelf->visibility_state()); 286 EXPECT_EQ(ash::SHELF_VISIBLE, shelf->visibility_state());
289 EXPECT_TRUE(controller()->ShouldHideTabIndicators()); 287 EXPECT_TRUE(controller()->ShouldHideTabIndicators());
290 } 288 }
291 289
292 // Validate top container touch insets are being updated at the correct time in
293 // immersive mode.
294 IN_PROC_BROWSER_TEST_F(ImmersiveModeControllerAshTest,
295 ImmersiveTopContainerInsets) {
296 content::WebContents* contents = browser_view()->GetActiveWebContents();
297 aura::Window* window = contents->GetView()->GetContentNativeView();
298
299 // Turning immersive mode on sets positive top touch insets on the render view
300 // window.
301 chrome::ToggleFullscreenMode(browser());
302 ASSERT_TRUE(browser_view()->IsFullscreen());
303 ASSERT_TRUE(controller()->IsEnabled());
304 EXPECT_TRUE(window->hit_test_bounds_override_outer_touch().top() > 0);
305
306 // Trigger a reveal resets insets as now the touch target for the top
307 // container is large enough.
308 controller()->StartRevealForTest(true);
309 EXPECT_TRUE(window->hit_test_bounds_override_outer_touch().top() == 0);
310
311 // End reveal by moving the mouse off the top-of-window views. We
312 // should see the top insets being positive again to allow a bigger touch
313 // target.
314 controller()->SetMouseHoveredForTest(false);
315 EXPECT_TRUE(window->hit_test_bounds_override_outer_touch().top() > 0);
316
317 // Disabling immersive mode resets the top touch insets to 0.
318 chrome::ToggleFullscreenMode(browser());
319 ASSERT_FALSE(browser_view()->IsFullscreen());
320 ASSERT_FALSE(controller()->IsEnabled());
321 EXPECT_TRUE(window->hit_test_bounds_override_outer_touch().top() == 0);
322 }
323
324 #endif // defined(OS_CHROMEOS) 290 #endif // defined(OS_CHROMEOS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698