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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 1912773002: Remove the old task manager view (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tapted's comments Created 4 years, 7 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
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 <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 #include "chrome/browser/prerender/prerender_link_manager_factory.h" 46 #include "chrome/browser/prerender/prerender_link_manager_factory.h"
47 #include "chrome/browser/prerender/prerender_manager.h" 47 #include "chrome/browser/prerender/prerender_manager.h"
48 #include "chrome/browser/prerender/prerender_manager_factory.h" 48 #include "chrome/browser/prerender/prerender_manager_factory.h"
49 #include "chrome/browser/profiles/profile.h" 49 #include "chrome/browser/profiles/profile.h"
50 #include "chrome/browser/profiles/profile_io_data.h" 50 #include "chrome/browser/profiles/profile_io_data.h"
51 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h" 51 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h"
52 #include "chrome/browser/safe_browsing/local_database_manager.h" 52 #include "chrome/browser/safe_browsing/local_database_manager.h"
53 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 53 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
54 #include "chrome/browser/task_management/providers/web_contents/web_contents_tag s_manager.h" 54 #include "chrome/browser/task_management/providers/web_contents/web_contents_tag s_manager.h"
55 #include "chrome/browser/task_management/task_management_browsertest_util.h" 55 #include "chrome/browser/task_management/task_management_browsertest_util.h"
56 #include "chrome/browser/task_manager/task_manager.h"
57 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
58 #include "chrome/browser/ui/browser.h" 56 #include "chrome/browser/ui/browser.h"
59 #include "chrome/browser/ui/browser_commands.h" 57 #include "chrome/browser/ui/browser_commands.h"
60 #include "chrome/browser/ui/browser_finder.h" 58 #include "chrome/browser/ui/browser_finder.h"
61 #include "chrome/browser/ui/browser_window.h" 59 #include "chrome/browser/ui/browser_window.h"
62 #include "chrome/browser/ui/location_bar/location_bar.h" 60 #include "chrome/browser/ui/location_bar/location_bar.h"
63 #include "chrome/browser/ui/tabs/tab_strip_model.h" 61 #include "chrome/browser/ui/tabs/tab_strip_model.h"
64 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" 62 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
65 #include "chrome/common/chrome_paths.h" 63 #include "chrome/common/chrome_paths.h"
66 #include "chrome/common/chrome_switches.h" 64 #include "chrome/common/chrome_switches.h"
67 #include "chrome/common/pref_names.h" 65 #include "chrome/common/pref_names.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 #include "net/test/url_request/url_request_mock_http_job.h" 112 #include "net/test/url_request/url_request_mock_http_job.h"
115 #include "net/url_request/url_request_context.h" 113 #include "net/url_request/url_request_context.h"
116 #include "net/url_request/url_request_context_getter.h" 114 #include "net/url_request/url_request_context_getter.h"
117 #include "net/url_request/url_request_filter.h" 115 #include "net/url_request/url_request_filter.h"
118 #include "net/url_request/url_request_interceptor.h" 116 #include "net/url_request/url_request_interceptor.h"
119 #include "net/url_request/url_request_job.h" 117 #include "net/url_request/url_request_job.h"
120 #include "ppapi/shared_impl/ppapi_switches.h" 118 #include "ppapi/shared_impl/ppapi_switches.h"
121 #include "ui/base/l10n/l10n_util.h" 119 #include "ui/base/l10n/l10n_util.h"
122 #include "url/gurl.h" 120 #include "url/gurl.h"
123 121
122 #if defined(OS_MACOSX)
123 #include "chrome/browser/task_manager/task_manager.h"
124 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
125 #endif // defined(OS_MACOSX)
126
124 using chrome_browser_net::NetworkPredictionOptions; 127 using chrome_browser_net::NetworkPredictionOptions;
125 using content::BrowserThread; 128 using content::BrowserThread;
126 using content::DevToolsAgentHost; 129 using content::DevToolsAgentHost;
127 using content::NavigationController; 130 using content::NavigationController;
128 using content::OpenURLParams; 131 using content::OpenURLParams;
129 using content::Referrer; 132 using content::Referrer;
130 using content::RenderFrameHost; 133 using content::RenderFrameHost;
131 using content::RenderViewHost; 134 using content::RenderViewHost;
132 using content::RenderWidgetHost; 135 using content::RenderWidgetHost;
133 using content::TestNavigationObserver; 136 using content::TestNavigationObserver;
134 using content::WebContents; 137 using content::WebContents;
135 using content::WebContentsObserver; 138 using content::WebContentsObserver;
136 using net::NetworkChangeNotifier; 139 using net::NetworkChangeNotifier;
137 using safe_browsing::LocalSafeBrowsingDatabaseManager; 140 using safe_browsing::LocalSafeBrowsingDatabaseManager;
138 using safe_browsing::SafeBrowsingService; 141 using safe_browsing::SafeBrowsingService;
139 using safe_browsing::SBThreatType; 142 using safe_browsing::SBThreatType;
143
144 #if defined(OS_MACOSX)
140 using task_manager::browsertest_util::WaitForTaskManagerRows; 145 using task_manager::browsertest_util::WaitForTaskManagerRows;
146 #endif // defined(OS_MACOSX)
141 147
142 // Prerender tests work as follows: 148 // Prerender tests work as follows:
143 // 149 //
144 // A page with a prefetch link to the test page is loaded. Once prerendered, 150 // A page with a prefetch link to the test page is loaded. Once prerendered,
145 // its Javascript function DidPrerenderPass() is called, which returns true if 151 // its Javascript function DidPrerenderPass() is called, which returns true if
146 // the page behaves as expected when prerendered. 152 // the page behaves as expected when prerendered.
147 // 153 //
148 // The prerendered page is then displayed on a tab. The Javascript function 154 // The prerendered page is then displayed on a tab. The Javascript function
149 // DidDisplayPass() is called, and returns true if the page behaved as it 155 // DidDisplayPass() is called, and returns true if the page behaved as it
150 // should while being displayed. 156 // should while being displayed.
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 } 1359 }
1354 1360
1355 void DisableJavascriptCalls() { 1361 void DisableJavascriptCalls() {
1356 call_javascript_ = false; 1362 call_javascript_ = false;
1357 } 1363 }
1358 1364
1359 void DisableLoadEventCheck() { 1365 void DisableLoadEventCheck() {
1360 check_load_events_ = false; 1366 check_load_events_ = false;
1361 } 1367 }
1362 1368
1369 #if defined(OS_MACOSX)
1363 TaskManagerModel* GetModel() const { 1370 TaskManagerModel* GetModel() const {
1364 return TaskManager::GetInstance()->model(); 1371 return TaskManager::GetInstance()->model();
1365 } 1372 }
1373 #endif // defined(OS_MACOSX)
1366 1374
1367 PrerenderManager* GetPrerenderManager() const { 1375 PrerenderManager* GetPrerenderManager() const {
1368 PrerenderManager* prerender_manager = 1376 PrerenderManager* prerender_manager =
1369 PrerenderManagerFactory::GetForProfile(current_browser()->profile()); 1377 PrerenderManagerFactory::GetForProfile(current_browser()->profile());
1370 return prerender_manager; 1378 return prerender_manager;
1371 } 1379 }
1372 1380
1373 const PrerenderLinkManager* GetPrerenderLinkManager() const { 1381 const PrerenderLinkManager* GetPrerenderLinkManager() const {
1374 PrerenderLinkManager* prerender_link_manager = 1382 PrerenderLinkManager* prerender_link_manager =
1375 PrerenderLinkManagerFactory::GetForProfile( 1383 PrerenderLinkManagerFactory::GetForProfile(
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
2467 EXPECT_FALSE(UrlIsInPrerenderManager(kHtmlFileB)); 2475 EXPECT_FALSE(UrlIsInPrerenderManager(kHtmlFileB));
2468 2476
2469 // Cancel the prerender. 2477 // Cancel the prerender.
2470 GetPrerenderManager()->CancelAllPrerenders(); 2478 GetPrerenderManager()->CancelAllPrerenders();
2471 prerender->WaitForStop(); 2479 prerender->WaitForStop();
2472 2480
2473 // All prerenders are now gone. 2481 // All prerenders are now gone.
2474 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 2482 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
2475 } 2483 }
2476 2484
2485 // Old task manager browser tests should only run on Mac.
2486 #if defined(OS_MACOSX)
2477 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) { 2487 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) {
tapted 2016/04/27 13:01:45 same here - these need to go to a separate file or
2478 // This test is for the old implementation of the task manager. We must
2479 // explicitly disable the new one.
2480 task_manager::browsertest_util::EnableOldTaskManager();
2481
2482 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2488 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2483 const base::string16 any_tab = MatchTaskManagerTab("*"); 2489 const base::string16 any_tab = MatchTaskManagerTab("*");
2484 const base::string16 original = MatchTaskManagerTab("Preloader"); 2490 const base::string16 original = MatchTaskManagerTab("Preloader");
2485 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); 2491 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
2486 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2492 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2487 2493
2488 // Show the task manager. This populates the model. 2494 // Show the task manager. This populates the model.
2489 chrome::OpenTaskManager(current_browser()); 2495 chrome::OpenTaskManager(current_browser());
2490 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2496 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2491 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2497 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
(...skipping 15 matching lines...) Expand all
2507 // The "Prerender: " TaskManager entry should disappear, being replaced by a 2513 // The "Prerender: " TaskManager entry should disappear, being replaced by a
2508 // "Tab: Prerender Page" entry, and nothing else. 2514 // "Tab: Prerender Page" entry, and nothing else.
2509 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); 2515 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
2510 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); 2516 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
2511 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2517 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2512 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2518 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2513 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2519 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2514 } 2520 }
2515 2521
2516 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) { 2522 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) {
2517 // This test is for the old implementation of the task manager. We must
2518 // explicitly disable the new one.
2519 task_manager::browsertest_util::EnableOldTaskManager();
2520
2521 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2523 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2522 const base::string16 any_tab = MatchTaskManagerTab("*"); 2524 const base::string16 any_tab = MatchTaskManagerTab("*");
2523 const base::string16 original = MatchTaskManagerTab("Preloader"); 2525 const base::string16 original = MatchTaskManagerTab("Preloader");
2524 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); 2526 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
2525 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2527 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2526 2528
2527 // Start with two resources. 2529 // Start with two resources.
2528 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 2530 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
2529 2531
2530 // Show the task manager. This populates the model. Importantly, we're doing 2532 // Show the task manager. This populates the model. Importantly, we're doing
(...skipping 14 matching lines...) Expand all
2545 // The "Prerender: Prerender Page" TaskManager row should disappear, being 2547 // The "Prerender: Prerender Page" TaskManager row should disappear, being
2546 // replaced by "Tab: Prerender Page" 2548 // replaced by "Tab: Prerender Page"
2547 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); 2549 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
2548 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); 2550 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
2549 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2551 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2550 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2552 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2551 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2553 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2552 } 2554 }
2553 2555
2554 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterSwapIn) { 2556 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterSwapIn) {
2555 // This test is for the old implementation of the task manager. We must
2556 // explicitly disable the new one.
2557 task_manager::browsertest_util::EnableOldTaskManager();
2558
2559 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2557 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2560 const base::string16 any_tab = MatchTaskManagerTab("*"); 2558 const base::string16 any_tab = MatchTaskManagerTab("*");
2561 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2559 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2562 2560
2563 // Prerender, and swap it in. 2561 // Prerender, and swap it in.
2564 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 2562 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
2565 NavigateToDestURL(); 2563 NavigateToDestURL();
2566 2564
2567 // Show the task manager. This populates the model. Importantly, we're doing 2565 // Show the task manager. This populates the model. Importantly, we're doing
2568 // this after the prerender has been swapped in. 2566 // this after the prerender has been swapped in.
2569 chrome::OpenTaskManager(current_browser()); 2567 chrome::OpenTaskManager(current_browser());
2570 2568
2571 // We should not see a prerender resource in the task manager, just a normal 2569 // We should not see a prerender resource in the task manager, just a normal
2572 // page. 2570 // page.
2573 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2571 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2574 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2572 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2575 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2573 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2576 } 2574 }
2575 #endif // defined(OS_MACOSX)
2577 2576
2578 // Checks that audio loads are deferred on prerendering. 2577 // Checks that audio loads are deferred on prerendering.
2579 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { 2578 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) {
2580 PrerenderTestURL("/prerender/prerender_html5_audio.html", FINAL_STATUS_USED, 2579 PrerenderTestURL("/prerender/prerender_html5_audio.html", FINAL_STATUS_USED,
2581 1); 2580 1);
2582 NavigateToDestURL(); 2581 NavigateToDestURL();
2583 WaitForASCIITitle(GetActiveWebContents(), kPassTitle); 2582 WaitForASCIITitle(GetActiveWebContents(), kPassTitle);
2584 } 2583 }
2585 2584
2586 // Checks that audio loads are deferred on prerendering and played back when 2585 // Checks that audio loads are deferred on prerendering and played back when
(...skipping 1474 matching lines...) Expand 10 before | Expand all | Expand 10 after
4061 4060
4062 NavigateToDestURL(); 4061 NavigateToDestURL();
4063 EXPECT_EQ(1U, task_manager.tasks().size()); 4062 EXPECT_EQ(1U, task_manager.tasks().size());
4064 } 4063 }
4065 4064
4066 } // namespace 4065 } // namespace
4067 4066
4068 #endif // defined(ENABLE_TASK_MANAGER) 4067 #endif // defined(ENABLE_TASK_MANAGER)
4069 4068
4070 } // namespace prerender 4069 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698