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" |
11 #include "base/process/process.h" | 11 #include "base/process/process.h" |
12 #include "base/single_thread_task_runner.h" | 12 #include "base/single_thread_task_runner.h" |
13 #include "base/strings/stringprintf.h" | 13 #include "base/strings/stringprintf.h" |
14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
15 #include "base/thread_task_runner_handle.h" | 15 #include "base/thread_task_runner_handle.h" |
16 #include "build/build_config.h" | 16 #include "build/build_config.h" |
17 #include "chrome/app/chrome_command_ids.h" | 17 #include "chrome/app/chrome_command_ids.h" |
18 #include "chrome/browser/apps/app_browsertest_util.h" | 18 #include "chrome/browser/apps/app_browsertest_util.h" |
19 #include "chrome/browser/chrome_content_browser_client.h" | 19 #include "chrome/browser/chrome_content_browser_client.h" |
20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
21 #include "chrome/browser/lifetime/application_lifetime.h" | 21 #include "chrome/browser/lifetime/application_lifetime.h" |
22 #include "chrome/browser/pdf/pdf_extension_test_util.h" | 22 #include "chrome/browser/pdf/pdf_extension_test_util.h" |
23 #include "chrome/browser/prerender/prerender_link_manager.h" | 23 #include "chrome/browser/prerender/prerender_link_manager.h" |
24 #include "chrome/browser/prerender/prerender_link_manager_factory.h" | 24 #include "chrome/browser/prerender/prerender_link_manager_factory.h" |
25 #include "chrome/browser/profiles/profile.h" | 25 #include "chrome/browser/profiles/profile.h" |
26 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" | 26 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" |
27 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti
l.h" | 27 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti
l.h" |
28 #include "chrome/browser/task_management/task_management_browsertest_util.h" | 28 #include "chrome/browser/task_management/task_management_browsertest_util.h" |
29 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" | |
30 #include "chrome/browser/ui/browser.h" | 29 #include "chrome/browser/ui/browser.h" |
31 #include "chrome/browser/ui/browser_dialogs.h" | 30 #include "chrome/browser/ui/browser_dialogs.h" |
32 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 31 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
33 #include "chrome/test/base/ui_test_utils.h" | 32 #include "chrome/test/base/ui_test_utils.h" |
34 #include "components/content_settings/core/browser/host_content_settings_map.h" | 33 #include "components/content_settings/core/browser/host_content_settings_map.h" |
35 #include "components/guest_view/browser/guest_view_manager.h" | 34 #include "components/guest_view/browser/guest_view_manager.h" |
36 #include "components/guest_view/browser/guest_view_manager_delegate.h" | 35 #include "components/guest_view/browser/guest_view_manager_delegate.h" |
37 #include "components/guest_view/browser/guest_view_manager_factory.h" | 36 #include "components/guest_view/browser/guest_view_manager_factory.h" |
38 #include "components/guest_view/browser/test_guest_view_manager.h" | 37 #include "components/guest_view/browser/test_guest_view_manager.h" |
39 #include "content/public/browser/gpu_data_manager.h" | 38 #include "content/public/browser/gpu_data_manager.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 #include "content/public/browser/plugin_service.h" | 78 #include "content/public/browser/plugin_service.h" |
80 #include "content/public/common/webplugininfo.h" | 79 #include "content/public/common/webplugininfo.h" |
81 #include "content/public/test/ppapi_test_utils.h" | 80 #include "content/public/test/ppapi_test_utils.h" |
82 #endif | 81 #endif |
83 | 82 |
84 #if defined(OS_CHROMEOS) | 83 #if defined(OS_CHROMEOS) |
85 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 84 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
86 #include "chrome/browser/chromeos/accessibility/speech_monitor.h" | 85 #include "chrome/browser/chromeos/accessibility/speech_monitor.h" |
87 #endif | 86 #endif |
88 | 87 |
| 88 #if defined(OS_MACOSX) |
| 89 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" |
| 90 #endif // defined(OS_MACOSX) |
| 91 |
89 using extensions::ContextMenuMatcher; | 92 using extensions::ContextMenuMatcher; |
90 using extensions::ExtensionsAPIClient; | 93 using extensions::ExtensionsAPIClient; |
91 using extensions::MenuItem; | 94 using extensions::MenuItem; |
92 using guest_view::GuestViewManager; | 95 using guest_view::GuestViewManager; |
93 using guest_view::TestGuestViewManager; | 96 using guest_view::TestGuestViewManager; |
94 using guest_view::TestGuestViewManagerFactory; | 97 using guest_view::TestGuestViewManagerFactory; |
95 using prerender::PrerenderLinkManager; | 98 using prerender::PrerenderLinkManager; |
96 using prerender::PrerenderLinkManagerFactory; | 99 using prerender::PrerenderLinkManagerFactory; |
| 100 using ui::MenuModel; |
| 101 |
| 102 #if defined(OS_MACOSX) |
97 using task_manager::browsertest_util::MatchAboutBlankTab; | 103 using task_manager::browsertest_util::MatchAboutBlankTab; |
98 using task_manager::browsertest_util::MatchAnyApp; | 104 using task_manager::browsertest_util::MatchAnyApp; |
99 using task_manager::browsertest_util::MatchAnyBackground; | 105 using task_manager::browsertest_util::MatchAnyBackground; |
100 using task_manager::browsertest_util::MatchAnyTab; | 106 using task_manager::browsertest_util::MatchAnyTab; |
101 using task_manager::browsertest_util::MatchAnyWebView; | 107 using task_manager::browsertest_util::MatchAnyWebView; |
102 using task_manager::browsertest_util::MatchApp; | 108 using task_manager::browsertest_util::MatchApp; |
103 using task_manager::browsertest_util::MatchBackground; | 109 using task_manager::browsertest_util::MatchBackground; |
104 using task_manager::browsertest_util::MatchWebView; | 110 using task_manager::browsertest_util::MatchWebView; |
105 using task_manager::browsertest_util::WaitForTaskManagerRows; | 111 using task_manager::browsertest_util::WaitForTaskManagerRows; |
106 using ui::MenuModel; | 112 #endif // defined(OS_MACOSX) |
107 | 113 |
108 namespace { | 114 namespace { |
109 const char kEmptyResponsePath[] = "/close-socket"; | 115 const char kEmptyResponsePath[] = "/close-socket"; |
110 const char kRedirectResponsePath[] = "/server-redirect"; | 116 const char kRedirectResponsePath[] = "/server-redirect"; |
111 const char kUserAgentRedirectResponsePath[] = "/detect-user-agent"; | 117 const char kUserAgentRedirectResponsePath[] = "/detect-user-agent"; |
112 const char kCacheResponsePath[] = "/cache-control-response"; | 118 const char kCacheResponsePath[] = "/cache-control-response"; |
113 const char kRedirectResponseFullPath[] = | 119 const char kRedirectResponseFullPath[] = |
114 "/extensions/platform_apps/web_view/shim/guest_redirect.html"; | 120 "/extensions/platform_apps/web_view/shim/guest_redirect.html"; |
115 | 121 |
116 class TestInterstitialPageDelegate : public content::InterstitialPageDelegate { | 122 class TestInterstitialPageDelegate : public content::InterstitialPageDelegate { |
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1473 "web_view/noprerenderer"); | 1479 "web_view/noprerenderer"); |
1474 ASSERT_TRUE(guest_web_contents != NULL); | 1480 ASSERT_TRUE(guest_web_contents != NULL); |
1475 | 1481 |
1476 PrerenderLinkManager* prerender_link_manager = | 1482 PrerenderLinkManager* prerender_link_manager = |
1477 PrerenderLinkManagerFactory::GetForProfile( | 1483 PrerenderLinkManagerFactory::GetForProfile( |
1478 Profile::FromBrowserContext(guest_web_contents->GetBrowserContext())); | 1484 Profile::FromBrowserContext(guest_web_contents->GetBrowserContext())); |
1479 ASSERT_TRUE(prerender_link_manager != NULL); | 1485 ASSERT_TRUE(prerender_link_manager != NULL); |
1480 EXPECT_TRUE(prerender_link_manager->IsEmpty()); | 1486 EXPECT_TRUE(prerender_link_manager->IsEmpty()); |
1481 } | 1487 } |
1482 | 1488 |
| 1489 // Old Task manager browser tests should only run on mac. |
| 1490 #if defined(OS_MACOSX) |
1483 // Verify that existing <webview>'s are detected when the task manager starts | 1491 // Verify that existing <webview>'s are detected when the task manager starts |
1484 // up. | 1492 // up. |
1485 IN_PROC_BROWSER_TEST_P(WebViewTest, TaskManagerExistingWebView) { | 1493 IN_PROC_BROWSER_TEST_P(WebViewTest, TaskManagerExistingWebView) { |
1486 // This test is for the old implementation of the task manager. We must | |
1487 // explicitly disable the new one. | |
1488 task_manager::browsertest_util::EnableOldTaskManager(); | |
1489 | |
1490 ASSERT_TRUE(StartEmbeddedTestServer()); | 1494 ASSERT_TRUE(StartEmbeddedTestServer()); |
1491 | 1495 |
1492 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", | 1496 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", |
1493 "web_view/task_manager"); | 1497 "web_view/task_manager"); |
1494 | 1498 |
1495 chrome::ShowTaskManager(browser()); // Show task manager AFTER guest loads. | 1499 chrome::ShowTaskManager(browser()); // Show task manager AFTER guest loads. |
1496 | 1500 |
1497 const char* guest_title = "WebViewed test content"; | 1501 const char* guest_title = "WebViewed test content"; |
1498 const char* app_name = "<webview> task manager test"; | 1502 const char* app_name = "<webview> task manager test"; |
1499 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchWebView(guest_title))); | 1503 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchWebView(guest_title))); |
1500 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); | 1504 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); |
1501 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchApp(app_name))); | 1505 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchApp(app_name))); |
1502 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchBackground(app_name))); | 1506 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchBackground(app_name))); |
1503 | 1507 |
1504 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyWebView())); | 1508 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyWebView())); |
1505 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 1509 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
1506 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyApp())); | 1510 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyApp())); |
1507 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyBackground())); | 1511 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyBackground())); |
1508 } | 1512 } |
1509 | 1513 |
1510 // Verify that the task manager notices the creation of new <webview>'s. | 1514 // Verify that the task manager notices the creation of new <webview>'s. |
1511 IN_PROC_BROWSER_TEST_P(WebViewTest, TaskManagerNewWebView) { | 1515 IN_PROC_BROWSER_TEST_P(WebViewTest, TaskManagerNewWebView) { |
1512 // This test is for the old implementation of the task manager. We must | |
1513 // explicitly disable the new one. | |
1514 task_manager::browsertest_util::EnableOldTaskManager(); | |
1515 | |
1516 ASSERT_TRUE(StartEmbeddedTestServer()); | 1516 ASSERT_TRUE(StartEmbeddedTestServer()); |
1517 | 1517 |
1518 chrome::ShowTaskManager(browser()); // Show task manager BEFORE guest loads. | 1518 chrome::ShowTaskManager(browser()); // Show task manager BEFORE guest loads. |
1519 | 1519 |
1520 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", | 1520 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", |
1521 "web_view/task_manager"); | 1521 "web_view/task_manager"); |
1522 | 1522 |
1523 const char* guest_title = "WebViewed test content"; | 1523 const char* guest_title = "WebViewed test content"; |
1524 const char* app_name = "<webview> task manager test"; | 1524 const char* app_name = "<webview> task manager test"; |
1525 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchWebView(guest_title))); | 1525 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchWebView(guest_title))); |
1526 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); | 1526 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); |
1527 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchApp(app_name))); | 1527 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchApp(app_name))); |
1528 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchBackground(app_name))); | 1528 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchBackground(app_name))); |
1529 | 1529 |
1530 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyWebView())); | 1530 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyWebView())); |
1531 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 1531 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
1532 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyApp())); | 1532 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyApp())); |
1533 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyBackground())); | 1533 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyBackground())); |
1534 } | 1534 } |
| 1535 #endif // defined(OS_MACOSX) |
1535 | 1536 |
1536 // This tests cookie isolation for packaged apps with webview tags. It navigates | 1537 // This tests cookie isolation for packaged apps with webview tags. It navigates |
1537 // the main browser window to a page that sets a cookie and loads an app with | 1538 // the main browser window to a page that sets a cookie and loads an app with |
1538 // multiple webview tags. Each tag sets a cookie and the test checks the proper | 1539 // multiple webview tags. Each tag sets a cookie and the test checks the proper |
1539 // storage isolation is enforced. | 1540 // storage isolation is enforced. |
1540 IN_PROC_BROWSER_TEST_P(WebViewTest, CookieIsolation) { | 1541 IN_PROC_BROWSER_TEST_P(WebViewTest, CookieIsolation) { |
1541 ASSERT_TRUE(StartEmbeddedTestServer()); | 1542 ASSERT_TRUE(StartEmbeddedTestServer()); |
1542 // Navigate the browser to a page which writes a sample cookie | 1543 // Navigate the browser to a page which writes a sample cookie |
1543 // The cookie is "testCookie=1" | 1544 // The cookie is "testCookie=1" |
1544 GURL set_cookie_url = embedded_test_server()->GetURL( | 1545 GURL set_cookie_url = embedded_test_server()->GetURL( |
(...skipping 1546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3091 // 4 tasks expected. The order is arbitrary. | 3092 // 4 tasks expected. The order is arbitrary. |
3092 // Tab: about:blank, | 3093 // Tab: about:blank, |
3093 // Background Page: <webview> task manager test, | 3094 // Background Page: <webview> task manager test, |
3094 // App: <webview> task manager test, | 3095 // App: <webview> task manager test, |
3095 // Webview: WebViewed test content. | 3096 // Webview: WebViewed test content. |
3096 EXPECT_EQ(4U, task_manager.tasks().size()); | 3097 EXPECT_EQ(4U, task_manager.tasks().size()); |
3097 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); | 3098 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); |
3098 } | 3099 } |
3099 | 3100 |
3100 #endif // defined(ENABLE_TASK_MANAGER) | 3101 #endif // defined(ENABLE_TASK_MANAGER) |
OLD | NEW |