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

Side by Side Diff: chrome/browser/ui/fullscreen_controller_interactive_browsertest.cc

Issue 10559071: Exit mouse lock or fullscreen on navigation and reload. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: feedback addressed. Created 8 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 #include "chrome/browser/ui/fullscreen_controller_test.h" 6 #include "chrome/browser/ui/fullscreen_controller_test.h"
7 #include "content/public/browser/render_view_host.h" 7 #include "content/public/browser/render_view_host.h"
8 #include "content/public/browser/render_widget_host_view.h" 8 #include "content/public/browser/render_widget_host_view.h"
9 #include "content/public/browser/web_contents.h" 9 #include "content/public/browser/web_contents.h"
10 10
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 311
312 // Lock the mouse with a user gesture, make sure we see bubble again 312 // Lock the mouse with a user gesture, make sure we see bubble again
313 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 313 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
314 browser(), ui::VKEY_1, false, false, false, false, 314 browser(), ui::VKEY_1, false, false, false, false,
315 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, 315 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
316 content::NotificationService::AllSources())); 316 content::NotificationService::AllSources()));
317 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); 317 ASSERT_TRUE(IsFullscreenBubbleDisplayed());
318 ASSERT_TRUE(IsMouseLocked()); 318 ASSERT_TRUE(IsMouseLocked());
319 } 319 }
320 320
321 // Tests mouse lock is exited on page navigation.
322 // (Similar to fullscreen version in FullscreenControllerTest)
323 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest,
324 TestTabExitsMouseLockOnNavigation) {
325 ASSERT_TRUE(test_server()->Start());
326 ui_test_utils::NavigateToURL(browser(),
327 test_server()->GetURL(kFullscreenMouseLockHTML));
328
329 // Lock the mouse with a user gesture.
330 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
331 browser(), ui::VKEY_1, false, false, false, false,
332 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
333 content::NotificationService::AllSources()));
334 ASSERT_TRUE(IsFullscreenBubbleDisplayed());
335 ASSERT_TRUE(IsMouseLockPermissionRequested());
336 ASSERT_FALSE(IsMouseLocked());
337
338 // Accept mouse lock.
339 AcceptCurrentFullscreenOrMouseLockRequest();
340 ASSERT_TRUE(IsMouseLocked());
341
342 ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab"));
343
344 ASSERT_FALSE(IsMouseLocked());
345 }
346
347 // Tests mouse lock is exited when navigating back.
348 // (Similar to fullscreen version in FullscreenControllerTest)
349 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest,
350 TestTabExitsMouseLockOnGoBack) {
351 ASSERT_TRUE(test_server()->Start());
352
353 // Navigate twice to provide a place to go back to.
354 ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
355 ui_test_utils::NavigateToURL(browser(),
356 test_server()->GetURL(kFullscreenMouseLockHTML));
357
358 // Lock the mouse with a user gesture.
359 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
360 browser(), ui::VKEY_1, false, false, false, false,
361 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
362 content::NotificationService::AllSources()));
363 ASSERT_TRUE(IsFullscreenBubbleDisplayed());
364 ASSERT_TRUE(IsMouseLockPermissionRequested());
365 ASSERT_FALSE(IsMouseLocked());
366
367 // Accept mouse lock.
368 AcceptCurrentFullscreenOrMouseLockRequest();
369 ASSERT_TRUE(IsMouseLocked());
370
371 GoBack();
372
373 ASSERT_FALSE(IsMouseLocked());
374 }
375
376 // Tests mouse lock is not exited on sub frame navigation.
377 // (Similar to fullscreen version in FullscreenControllerTest)
378 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest,
379 TestTabDoesntExitMouseLockOnSubFrameNavigation) {
380 ASSERT_TRUE(test_server()->Start());
381
382 // Create URLs for test page and test page with #fragment.
383 GURL url(test_server()->GetURL(kFullscreenMouseLockHTML));
384 GURL url_with_fragment(url.spec() + "#fragment");
385
386 // Navigate to test page.
387 ui_test_utils::NavigateToURL(browser(), url);
388
389 // Lock the mouse with a user gesture.
390 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
391 browser(), ui::VKEY_1, false, false, false, false,
392 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
393 content::NotificationService::AllSources()));
394 ASSERT_TRUE(IsFullscreenBubbleDisplayed());
395 ASSERT_TRUE(IsMouseLockPermissionRequested());
396 ASSERT_FALSE(IsMouseLocked());
397
398 // Accept mouse lock.
399 AcceptCurrentFullscreenOrMouseLockRequest();
400 ASSERT_TRUE(IsMouseLocked());
401
402 // Navigate to url with fragment. Mouse lock should persist.
403 ui_test_utils::NavigateToURL(browser(), url_with_fragment);
404 ASSERT_TRUE(IsMouseLocked());
405 }
406
407 // Tests Mouse Lock and Fullscreen are exited upon reload.
408 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest,
409 ReloadExitsMouseLockAndFullscreen) {
410 ASSERT_TRUE(test_server()->Start());
411 ui_test_utils::NavigateToURL(browser(),
412 test_server()->GetURL(kFullscreenMouseLockHTML));
413
414 ASSERT_FALSE(IsMouseLockPermissionRequested());
415
416 // Request mouse lock.
417 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
418 browser(), ui::VKEY_1, false, false, false, false,
419 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
420 content::NotificationService::AllSources()));
421 ASSERT_TRUE(IsMouseLockPermissionRequested());
422
423 // Reload. Mouse lock request should be cleared.
424 {
425 MouseLockNotificationObserver mouselock_observer;
426 Reload();
427 mouselock_observer.Wait();
428 ASSERT_FALSE(IsMouseLockPermissionRequested());
429 }
430
431 // Request mouse lock.
432 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
433 browser(), ui::VKEY_1, false, false, false, false,
434 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
435 content::NotificationService::AllSources()));
436 ASSERT_TRUE(IsMouseLockPermissionRequested());
437
438 // Accept mouse lock.
439 AcceptCurrentFullscreenOrMouseLockRequest();
440 ASSERT_TRUE(IsMouseLocked());
441 ASSERT_TRUE(IsFullscreenBubbleDisplayed());
442
443 // Reload. Mouse should be unlocked.
444 {
445 MouseLockNotificationObserver mouselock_observer;
446 Reload();
447 mouselock_observer.Wait();
448 ASSERT_FALSE(IsMouseLocked());
449 }
450
451 // Request to lock the mouse and enter fullscreen.
452 {
453 FullscreenNotificationObserver fullscreen_observer;
454 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
455 browser(), ui::VKEY_B, false, true, false, false,
456 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED,
457 content::NotificationService::AllSources()));
458 fullscreen_observer.Wait();
459 }
460
461 // We are fullscreen.
462 ASSERT_TRUE(IsFullscreenForTabOrPending());
463
464 // Reload. Mouse should be unlocked and fullscreen exited.
465 {
466 FullscreenNotificationObserver fullscreen_observer;
467 Reload();
468 fullscreen_observer.Wait();
469 ASSERT_FALSE(IsMouseLocked());
470 ASSERT_FALSE(IsFullscreenForTabOrPending());
471 }
472 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698