| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <queue> | 5 #include <queue> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 content::WebContents* embedder_web_contents_; | 721 content::WebContents* embedder_web_contents_; |
| 722 }; | 722 }; |
| 723 | 723 |
| 724 // The following test suits are created to group tests based on specific | 724 // The following test suits are created to group tests based on specific |
| 725 // features of <webview>. | 725 // features of <webview>. |
| 726 // These features current would not work with --site-per-process and is | 726 // These features current would not work with --site-per-process and is |
| 727 // disabled on site isolation FYI bots. | 727 // disabled on site isolation FYI bots. |
| 728 class WebViewNewWindowTest : public WebViewTest {}; | 728 class WebViewNewWindowTest : public WebViewTest {}; |
| 729 class WebViewSizeTest : public WebViewTest {}; | 729 class WebViewSizeTest : public WebViewTest {}; |
| 730 class WebViewSpeechAPITest : public WebViewTest {}; | 730 class WebViewSpeechAPITest : public WebViewTest {}; |
| 731 class WebViewVisibilityTest : public WebViewTest {}; | 731 class WebViewVisibilityTest : public WebViewTest, |
| 732 public ::testing::WithParamInterface<bool> { |
| 733 protected: |
| 734 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 735 if (GetParam()) |
| 736 command_line->AppendSwitchASCII( |
| 737 switches::kSitePerProcess, switches::kUseCrossProcessFramesForGuests); |
| 738 |
| 739 WebViewTest::SetUpCommandLine(command_line); |
| 740 } |
| 741 }; |
| 732 | 742 |
| 733 // Test suite that containts tests that are meant to run with and without | 743 // Test suite that containts tests that are meant to run with and without |
| 734 // --site-per-process. | 744 // --site-per-process. |
| 735 class WebViewCommonTest : public extensions::PlatformAppBrowserTest {}; | 745 class WebViewCommonTest : public extensions::PlatformAppBrowserTest {}; |
| 736 | 746 |
| 737 class WebViewDPITest : public WebViewTest { | 747 class WebViewDPITest : public WebViewTest { |
| 738 protected: | 748 protected: |
| 739 void SetUpCommandLine(base::CommandLine* command_line) override { | 749 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 740 WebViewTest::SetUpCommandLine(command_line); | 750 WebViewTest::SetUpCommandLine(command_line); |
| 741 command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor, | 751 command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor, |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 | 812 |
| 803 EXPECT_TRUE(embedder->IsAudioMuted()); | 813 EXPECT_TRUE(embedder->IsAudioMuted()); |
| 804 WebContentsAudioMutedObserver observer(guest); | 814 WebContentsAudioMutedObserver observer(guest); |
| 805 // If the guest hasn't attached yet, it may not have received the muting | 815 // If the guest hasn't attached yet, it may not have received the muting |
| 806 // update, in which case we should wait until it does. | 816 // update, in which case we should wait until it does. |
| 807 if (!guest->IsAudioMuted()) | 817 if (!guest->IsAudioMuted()) |
| 808 observer.WaitForUpdate(); | 818 observer.WaitForUpdate(); |
| 809 EXPECT_TRUE(guest->IsAudioMuted()); | 819 EXPECT_TRUE(guest->IsAudioMuted()); |
| 810 } | 820 } |
| 811 | 821 |
| 822 // TODO(ekaramad): Remove this and revert the TEST_P to TEST_F once |
| 823 // crbug.com/578884 is resolved. |
| 824 INSTANTIATE_TEST_CASE_P(ForOOPIFAndNonOOPIFWebView, |
| 825 WebViewVisibilityTest, |
| 826 ::testing::Bool()); |
| 827 |
| 812 // This test verifies that hiding the guest triggers WebContents::WasHidden(). | 828 // This test verifies that hiding the guest triggers WebContents::WasHidden(). |
| 813 IN_PROC_BROWSER_TEST_F(WebViewVisibilityTest, GuestVisibilityChanged) { | 829 IN_PROC_BROWSER_TEST_P(WebViewVisibilityTest, GuestVisibilityChanged) { |
| 814 LoadAppWithGuest("web_view/visibility_changed"); | 830 LoadAppWithGuest("web_view/visibility_changed"); |
| 815 | 831 |
| 816 scoped_refptr<content::MessageLoopRunner> loop_runner( | 832 scoped_refptr<content::MessageLoopRunner> loop_runner( |
| 817 new content::MessageLoopRunner); | 833 new content::MessageLoopRunner); |
| 818 WebContentsHiddenObserver observer(GetGuestWebContents(), | 834 WebContentsHiddenObserver observer(GetGuestWebContents(), |
| 819 loop_runner->QuitClosure()); | 835 loop_runner->QuitClosure()); |
| 820 | 836 |
| 821 // Handled in platform_apps/web_view/visibility_changed/main.js | 837 // Handled in platform_apps/web_view/visibility_changed/main.js |
| 822 SendMessageToEmbedder("hide-guest"); | 838 SendMessageToEmbedder("hide-guest"); |
| 823 if (!observer.hidden_observed()) | 839 if (!observer.hidden_observed()) |
| 824 loop_runner->Run(); | 840 loop_runner->Run(); |
| 825 } | 841 } |
| 826 | 842 |
| 827 // This test verifies that hiding the embedder also hides the guest. | 843 // This test verifies that hiding the embedder also hides the guest. |
| 828 IN_PROC_BROWSER_TEST_F(WebViewVisibilityTest, EmbedderVisibilityChanged) { | 844 IN_PROC_BROWSER_TEST_P(WebViewVisibilityTest, EmbedderVisibilityChanged) { |
| 829 LoadAppWithGuest("web_view/visibility_changed"); | 845 LoadAppWithGuest("web_view/visibility_changed"); |
| 830 | 846 |
| 831 scoped_refptr<content::MessageLoopRunner> loop_runner( | 847 scoped_refptr<content::MessageLoopRunner> loop_runner( |
| 832 new content::MessageLoopRunner); | 848 new content::MessageLoopRunner); |
| 833 WebContentsHiddenObserver observer(GetGuestWebContents(), | 849 WebContentsHiddenObserver observer(GetGuestWebContents(), |
| 834 loop_runner->QuitClosure()); | 850 loop_runner->QuitClosure()); |
| 835 | 851 |
| 836 // Handled in platform_apps/web_view/visibility_changed/main.js | 852 // Handled in platform_apps/web_view/visibility_changed/main.js |
| 837 SendMessageToEmbedder("hide-embedder"); | 853 SendMessageToEmbedder("hide-embedder"); |
| 838 if (!observer.hidden_observed()) | 854 if (!observer.hidden_observed()) |
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 } | 1323 } |
| 1308 | 1324 |
| 1309 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestReloadAfterTerminate) { | 1325 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestReloadAfterTerminate) { |
| 1310 TestHelper("testReloadAfterTerminate", "web_view/shim", NO_TEST_SERVER); | 1326 TestHelper("testReloadAfterTerminate", "web_view/shim", NO_TEST_SERVER); |
| 1311 } | 1327 } |
| 1312 | 1328 |
| 1313 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestGetProcessId) { | 1329 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestGetProcessId) { |
| 1314 TestHelper("testGetProcessId", "web_view/shim", NO_TEST_SERVER); | 1330 TestHelper("testGetProcessId", "web_view/shim", NO_TEST_SERVER); |
| 1315 } | 1331 } |
| 1316 | 1332 |
| 1317 IN_PROC_BROWSER_TEST_F(WebViewVisibilityTest, Shim_TestHiddenBeforeNavigation) { | 1333 IN_PROC_BROWSER_TEST_P(WebViewVisibilityTest, Shim_TestHiddenBeforeNavigation) { |
| 1318 TestHelper("testHiddenBeforeNavigation", "web_view/shim", NO_TEST_SERVER); | 1334 TestHelper("testHiddenBeforeNavigation", "web_view/shim", NO_TEST_SERVER); |
| 1319 } | 1335 } |
| 1320 | 1336 |
| 1321 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestRemoveWebviewOnExit) { | 1337 IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestRemoveWebviewOnExit) { |
| 1322 ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages. | 1338 ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages. |
| 1323 | 1339 |
| 1324 // Launch the app and wait until it's ready to load a test. | 1340 // Launch the app and wait until it's ready to load a test. |
| 1325 LoadAndLaunchPlatformApp("web_view/shim", "Launched"); | 1341 LoadAndLaunchPlatformApp("web_view/shim", "Launched"); |
| 1326 | 1342 |
| 1327 content::WebContents* embedder_web_contents = GetFirstAppWindowWebContents(); | 1343 content::WebContents* embedder_web_contents = GetFirstAppWindowWebContents(); |
| (...skipping 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3020 // 4 tasks expected. The order is arbitrary. | 3036 // 4 tasks expected. The order is arbitrary. |
| 3021 // Tab: about:blank, | 3037 // Tab: about:blank, |
| 3022 // Background Page: <webview> task manager test, | 3038 // Background Page: <webview> task manager test, |
| 3023 // App: <webview> task manager test, | 3039 // App: <webview> task manager test, |
| 3024 // Webview: WebViewed test content. | 3040 // Webview: WebViewed test content. |
| 3025 EXPECT_EQ(4U, task_manager.tasks().size()); | 3041 EXPECT_EQ(4U, task_manager.tasks().size()); |
| 3026 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); | 3042 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); |
| 3027 } | 3043 } |
| 3028 | 3044 |
| 3029 #endif // defined(ENABLE_TASK_MANAGER) | 3045 #endif // defined(ENABLE_TASK_MANAGER) |
| OLD | NEW |