| OLD | NEW |
| 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 6 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 7 #include "chrome/browser/fullscreen.h" | 7 #include "chrome/browser/fullscreen.h" |
| 8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
| 9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
| 10 #include "chrome/browser/ui/browser_commands.h" | 10 #include "chrome/browser/ui/browser_commands.h" |
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 ASSERT_FALSE(IsFullscreenBubbleDisplayed()); | 413 ASSERT_FALSE(IsFullscreenBubbleDisplayed()); |
| 414 | 414 |
| 415 // Request to lock the mouse. | 415 // Request to lock the mouse. |
| 416 { | 416 { |
| 417 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 417 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
| 418 browser(), ui::VKEY_1, false, false, false, false, | 418 browser(), ui::VKEY_1, false, false, false, false, |
| 419 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, | 419 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, |
| 420 content::NotificationService::AllSources())); | 420 content::NotificationService::AllSources())); |
| 421 } | 421 } |
| 422 ASSERT_FALSE(IsFullscreenPermissionRequested()); | 422 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| 423 ASSERT_TRUE(IsMouseLockPermissionRequested()); | |
| 424 | 423 |
| 425 // Escape, no prompts should remain. | 424 // In simplified mode, the mouse will automatically lock, so we can skip |
| 426 SendEscapeToFullscreenController(); | 425 // testing the permission requested and manually accepting. |
| 427 ASSERT_FALSE(IsFullscreenPermissionRequested()); | 426 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { |
| 428 ASSERT_FALSE(IsMouseLockPermissionRequested()); | 427 ASSERT_TRUE(IsMouseLockPermissionRequested()); |
| 429 | 428 |
| 430 // Request to lock the mouse. | 429 // Escape, no prompts should remain. |
| 431 { | 430 SendEscapeToFullscreenController(); |
| 432 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 431 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| 433 browser(), ui::VKEY_1, false, false, false, false, | 432 ASSERT_FALSE(IsMouseLockPermissionRequested()); |
| 434 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, | 433 |
| 435 content::NotificationService::AllSources())); | 434 // Request to lock the mouse. |
| 435 { |
| 436 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
| 437 browser(), ui::VKEY_1, false, false, false, false, |
| 438 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, |
| 439 content::NotificationService::AllSources())); |
| 440 } |
| 441 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| 442 ASSERT_TRUE(IsMouseLockPermissionRequested()); |
| 443 |
| 444 // Accept mouse lock, confirm it and that there is no prompt. |
| 445 AcceptCurrentFullscreenOrMouseLockRequest(); |
| 436 } | 446 } |
| 437 ASSERT_FALSE(IsFullscreenPermissionRequested()); | |
| 438 ASSERT_TRUE(IsMouseLockPermissionRequested()); | |
| 439 | 447 |
| 440 // Accept mouse lock, confirm it and that there is no prompt. | |
| 441 AcceptCurrentFullscreenOrMouseLockRequest(); | |
| 442 ASSERT_TRUE(IsMouseLocked()); | 448 ASSERT_TRUE(IsMouseLocked()); |
| 443 ASSERT_FALSE(IsWindowFullscreenForTabOrPending()); | 449 ASSERT_FALSE(IsWindowFullscreenForTabOrPending()); |
| 444 ASSERT_FALSE(IsFullscreenPermissionRequested()); | 450 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| 445 ASSERT_FALSE(IsMouseLockPermissionRequested()); | 451 ASSERT_FALSE(IsMouseLockPermissionRequested()); |
| 446 | 452 |
| 447 // Escape, confirm we are out of mouse lock with no prompts. | 453 // Escape, confirm we are out of mouse lock with no prompts. |
| 448 SendEscapeToFullscreenController(); | 454 SendEscapeToFullscreenController(); |
| 449 ASSERT_FALSE(IsMouseLocked()); | 455 ASSERT_FALSE(IsMouseLocked()); |
| 450 ASSERT_FALSE(IsWindowFullscreenForTabOrPending()); | 456 ASSERT_FALSE(IsWindowFullscreenForTabOrPending()); |
| 451 ASSERT_FALSE(IsFullscreenPermissionRequested()); | 457 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 760 ASSERT_TRUE(embedded_test_server()->Start()); | 766 ASSERT_TRUE(embedded_test_server()->Start()); |
| 761 ui_test_utils::NavigateToURL( | 767 ui_test_utils::NavigateToURL( |
| 762 browser(), embedded_test_server()->GetURL(kFullscreenMouseLockHTML)); | 768 browser(), embedded_test_server()->GetURL(kFullscreenMouseLockHTML)); |
| 763 | 769 |
| 764 // Lock the mouse with a user gesture. | 770 // Lock the mouse with a user gesture. |
| 765 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 771 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
| 766 browser(), ui::VKEY_1, false, false, false, false, | 772 browser(), ui::VKEY_1, false, false, false, false, |
| 767 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, | 773 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, |
| 768 content::NotificationService::AllSources())); | 774 content::NotificationService::AllSources())); |
| 769 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); | 775 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); |
| 770 ASSERT_TRUE(IsMouseLockPermissionRequested()); | |
| 771 ASSERT_FALSE(IsMouseLocked()); | |
| 772 | 776 |
| 773 // Accept mouse lock. | 777 // In simplified mode, the mouse will automatically lock, so we can skip |
| 774 AcceptCurrentFullscreenOrMouseLockRequest(); | 778 // testing the permission requested and manually accepting. |
| 779 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { |
| 780 ASSERT_TRUE(IsMouseLockPermissionRequested()); |
| 781 ASSERT_FALSE(IsMouseLocked()); |
| 782 |
| 783 // Accept mouse lock. |
| 784 AcceptCurrentFullscreenOrMouseLockRequest(); |
| 785 } |
| 786 |
| 775 ASSERT_TRUE(IsMouseLocked()); | 787 ASSERT_TRUE(IsMouseLocked()); |
| 776 | 788 |
| 777 ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); | 789 ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); |
| 778 | 790 |
| 779 ASSERT_FALSE(IsMouseLocked()); | 791 ASSERT_FALSE(IsMouseLocked()); |
| 780 } | 792 } |
| 781 | 793 |
| 782 // Tests mouse lock is exited when navigating back. | 794 // Tests mouse lock is exited when navigating back. |
| 783 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, | 795 IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, |
| 784 MAYBE_TestTabExitsMouseLockOnGoBack) { | 796 MAYBE_TestTabExitsMouseLockOnGoBack) { |
| 785 ASSERT_TRUE(embedded_test_server()->Start()); | 797 ASSERT_TRUE(embedded_test_server()->Start()); |
| 786 | 798 |
| 787 // Navigate twice to provide a place to go back to. | 799 // Navigate twice to provide a place to go back to. |
| 788 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); | 800 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
| 789 ui_test_utils::NavigateToURL( | 801 ui_test_utils::NavigateToURL( |
| 790 browser(), embedded_test_server()->GetURL(kFullscreenMouseLockHTML)); | 802 browser(), embedded_test_server()->GetURL(kFullscreenMouseLockHTML)); |
| 791 | 803 |
| 792 // Lock the mouse with a user gesture. | 804 // Lock the mouse with a user gesture. |
| 793 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 805 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
| 794 browser(), ui::VKEY_1, false, false, false, false, | 806 browser(), ui::VKEY_1, false, false, false, false, |
| 795 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, | 807 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, |
| 796 content::NotificationService::AllSources())); | 808 content::NotificationService::AllSources())); |
| 797 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); | 809 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); |
| 798 ASSERT_TRUE(IsMouseLockPermissionRequested()); | |
| 799 ASSERT_FALSE(IsMouseLocked()); | |
| 800 | 810 |
| 801 // Accept mouse lock. | 811 // In simplified mode, the mouse will automatically lock, so we can skip |
| 802 AcceptCurrentFullscreenOrMouseLockRequest(); | 812 // testing the permission requested and manually accepting. |
| 813 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { |
| 814 ASSERT_TRUE(IsMouseLockPermissionRequested()); |
| 815 ASSERT_FALSE(IsMouseLocked()); |
| 816 |
| 817 // Accept mouse lock. |
| 818 AcceptCurrentFullscreenOrMouseLockRequest(); |
| 819 } |
| 820 |
| 803 ASSERT_TRUE(IsMouseLocked()); | 821 ASSERT_TRUE(IsMouseLocked()); |
| 804 | 822 |
| 805 GoBack(); | 823 GoBack(); |
| 806 | 824 |
| 807 ASSERT_FALSE(IsMouseLocked()); | 825 ASSERT_FALSE(IsMouseLocked()); |
| 808 } | 826 } |
| 809 | 827 |
| 810 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA) | 828 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA) |
| 811 // TODO(erg): linux_aura bringup: http://crbug.com/163931 | 829 // TODO(erg): linux_aura bringup: http://crbug.com/163931 |
| 812 #define MAYBE_TestTabDoesntExitMouseLockOnSubFrameNavigation DISABLED_TestTabDoe
sntExitMouseLockOnSubFrameNavigation | 830 #define MAYBE_TestTabDoesntExitMouseLockOnSubFrameNavigation DISABLED_TestTabDoe
sntExitMouseLockOnSubFrameNavigation |
| (...skipping 12 matching lines...) Expand all Loading... |
| 825 | 843 |
| 826 // Navigate to test page. | 844 // Navigate to test page. |
| 827 ui_test_utils::NavigateToURL(browser(), url); | 845 ui_test_utils::NavigateToURL(browser(), url); |
| 828 | 846 |
| 829 // Lock the mouse with a user gesture. | 847 // Lock the mouse with a user gesture. |
| 830 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 848 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
| 831 browser(), ui::VKEY_1, false, false, false, false, | 849 browser(), ui::VKEY_1, false, false, false, false, |
| 832 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, | 850 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, |
| 833 content::NotificationService::AllSources())); | 851 content::NotificationService::AllSources())); |
| 834 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); | 852 ASSERT_TRUE(IsFullscreenBubbleDisplayed()); |
| 835 ASSERT_TRUE(IsMouseLockPermissionRequested()); | |
| 836 ASSERT_FALSE(IsMouseLocked()); | |
| 837 | 853 |
| 838 // Accept mouse lock. | 854 // In simplified mode, the mouse will automatically lock, so we can skip |
| 839 AcceptCurrentFullscreenOrMouseLockRequest(); | 855 // testing the permission requested and manually accepting. |
| 856 if (!ExclusiveAccessManager::IsSimplifiedFullscreenUIEnabled()) { |
| 857 ASSERT_TRUE(IsMouseLockPermissionRequested()); |
| 858 ASSERT_FALSE(IsMouseLocked()); |
| 859 |
| 860 // Accept mouse lock. |
| 861 AcceptCurrentFullscreenOrMouseLockRequest(); |
| 862 } |
| 863 |
| 840 ASSERT_TRUE(IsMouseLocked()); | 864 ASSERT_TRUE(IsMouseLocked()); |
| 841 | 865 |
| 842 // Navigate to url with fragment. Mouse lock should persist. | 866 // Navigate to url with fragment. Mouse lock should persist. |
| 843 ui_test_utils::NavigateToURL(browser(), url_with_fragment); | 867 ui_test_utils::NavigateToURL(browser(), url_with_fragment); |
| 844 ASSERT_TRUE(IsMouseLocked()); | 868 ASSERT_TRUE(IsMouseLocked()); |
| 845 } | 869 } |
| 846 | 870 |
| 847 // Tests Mouse Lock and Fullscreen are exited upon reload. | 871 // Tests Mouse Lock and Fullscreen are exited upon reload. |
| 848 // http://crbug.com/137486 | 872 // http://crbug.com/137486 |
| 849 // mac: http://crbug.com/103912 | 873 // mac: http://crbug.com/103912 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 927 | 951 |
| 928 GURL url = embedded_test_server()->GetURL("/simple.html"); | 952 GURL url = embedded_test_server()->GetURL("/simple.html"); |
| 929 AddTabAtIndex(0, url, PAGE_TRANSITION_TYPED); | 953 AddTabAtIndex(0, url, PAGE_TRANSITION_TYPED); |
| 930 | 954 |
| 931 // Validate that going fullscreen for a URL defaults to asking permision. | 955 // Validate that going fullscreen for a URL defaults to asking permision. |
| 932 ASSERT_FALSE(IsFullscreenPermissionRequested()); | 956 ASSERT_FALSE(IsFullscreenPermissionRequested()); |
| 933 ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreenNoRetries(true)); | 957 ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreenNoRetries(true)); |
| 934 ASSERT_TRUE(IsFullscreenPermissionRequested()); | 958 ASSERT_TRUE(IsFullscreenPermissionRequested()); |
| 935 ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreenNoRetries(false)); | 959 ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreenNoRetries(false)); |
| 936 } | 960 } |
| OLD | NEW |