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 <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 2457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2468 | 2468 |
2469 // Cancel the prerender. | 2469 // Cancel the prerender. |
2470 GetPrerenderManager()->CancelAllPrerenders(); | 2470 GetPrerenderManager()->CancelAllPrerenders(); |
2471 prerender->WaitForStop(); | 2471 prerender->WaitForStop(); |
2472 | 2472 |
2473 // All prerenders are now gone. | 2473 // All prerenders are now gone. |
2474 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | 2474 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
2475 } | 2475 } |
2476 | 2476 |
2477 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) { | 2477 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) { |
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("*"); | 2478 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); |
2483 const base::string16 any_tab = MatchTaskManagerTab("*"); | 2479 const base::string16 any_tab = MatchTaskManagerTab("*"); |
2484 const base::string16 original = MatchTaskManagerTab("Preloader"); | 2480 const base::string16 original = MatchTaskManagerTab("Preloader"); |
2485 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); | 2481 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); |
2486 const base::string16 final = MatchTaskManagerTab("Prerender Page"); | 2482 const base::string16 final = MatchTaskManagerTab("Prerender Page"); |
2487 | 2483 |
2488 // Show the task manager. This populates the model. | 2484 // Show the task manager. This populates the model. |
2489 chrome::OpenTaskManager(current_browser()); | 2485 chrome::OpenTaskManager(current_browser()); |
2490 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); | 2486 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); |
2491 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); | 2487 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); |
(...skipping 15 matching lines...) Expand all Loading... | |
2507 // The "Prerender: " TaskManager entry should disappear, being replaced by a | 2503 // The "Prerender: " TaskManager entry should disappear, being replaced by a |
2508 // "Tab: Prerender Page" entry, and nothing else. | 2504 // "Tab: Prerender Page" entry, and nothing else. |
2509 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); | 2505 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); |
2510 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); | 2506 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); |
2511 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); | 2507 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); |
2512 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); | 2508 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); |
2513 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); | 2509 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); |
2514 } | 2510 } |
2515 | 2511 |
2516 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) { | 2512 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("*"); | 2513 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); |
2522 const base::string16 any_tab = MatchTaskManagerTab("*"); | 2514 const base::string16 any_tab = MatchTaskManagerTab("*"); |
2523 const base::string16 original = MatchTaskManagerTab("Preloader"); | 2515 const base::string16 original = MatchTaskManagerTab("Preloader"); |
2524 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); | 2516 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); |
2525 const base::string16 final = MatchTaskManagerTab("Prerender Page"); | 2517 const base::string16 final = MatchTaskManagerTab("Prerender Page"); |
2526 | 2518 |
2527 // Start with two resources. | 2519 // Start with two resources. |
2528 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 2520 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
2529 | 2521 |
2530 // Show the task manager. This populates the model. Importantly, we're doing | 2522 // Show the task manager. This populates the model. Importantly, we're doing |
(...skipping 14 matching lines...) Expand all Loading... | |
2545 // The "Prerender: Prerender Page" TaskManager row should disappear, being | 2537 // The "Prerender: Prerender Page" TaskManager row should disappear, being |
2546 // replaced by "Tab: Prerender Page" | 2538 // replaced by "Tab: Prerender Page" |
2547 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); | 2539 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); |
2548 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); | 2540 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); |
2549 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); | 2541 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); |
2550 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); | 2542 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); |
2551 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); | 2543 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); |
2552 } | 2544 } |
2553 | 2545 |
2554 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterSwapIn) { | 2546 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("*"); | 2547 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); |
2560 const base::string16 any_tab = MatchTaskManagerTab("*"); | 2548 const base::string16 any_tab = MatchTaskManagerTab("*"); |
2561 const base::string16 final = MatchTaskManagerTab("Prerender Page"); | 2549 const base::string16 final = MatchTaskManagerTab("Prerender Page"); |
2562 | 2550 |
2563 // Prerender, and swap it in. | 2551 // Prerender, and swap it in. |
2564 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 2552 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
2565 NavigateToDestURL(); | 2553 NavigateToDestURL(); |
2566 | 2554 |
2567 // Show the task manager. This populates the model. Importantly, we're doing | 2555 // Show the task manager. This populates the model. Importantly, we're doing |
2568 // this after the prerender has been swapped in. | 2556 // this after the prerender has been swapped in. |
(...skipping 1429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3998 WebContents* web_contents = | 3986 WebContents* web_contents = |
3999 browser()->tab_strip_model()->GetActiveWebContents(); | 3987 browser()->tab_strip_model()->GetActiveWebContents(); |
4000 bool display_test_result = false; | 3988 bool display_test_result = false; |
4001 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3989 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
4002 "DidDisplayReallyPass()", | 3990 "DidDisplayReallyPass()", |
4003 &display_test_result)); | 3991 &display_test_result)); |
4004 ASSERT_TRUE(display_test_result); | 3992 ASSERT_TRUE(display_test_result); |
4005 } | 3993 } |
4006 #endif // !defined(DISABLE_NACL) | 3994 #endif // !defined(DISABLE_NACL) |
4007 | 3995 |
4008 #if defined(ENABLE_TASK_MANAGER) | |
afakhry
2016/04/28 00:03:13
Why did we need an ifdef here while we didn't need
ncarter (slow)
2016/05/02 18:33:27
Good question, I can't figure this out. I gather t
| |
4009 | |
4010 namespace { | |
4011 | |
4012 base::string16 GetPrerenderTitlePrefix() { | |
4013 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX, | |
4014 base::string16()); | |
4015 } | |
4016 | |
4017 const std::vector<task_management::WebContentsTag*>& GetTrackedTags() { | |
4018 return task_management::WebContentsTagsManager::GetInstance()-> | |
4019 tracked_tags(); | |
4020 } | |
4021 | |
4022 // Tests the correct recording of tags for the prerender WebContents. | |
4023 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, TaskManagementTagsBasic) { | |
4024 // Browser tests start with a single tab. | |
4025 EXPECT_EQ(1U, GetTrackedTags().size()); | |
4026 | |
4027 // Start prerendering a page and make sure it's correctly tagged. | |
4028 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | |
4029 EXPECT_EQ(2U, GetTrackedTags().size()); | |
4030 | |
4031 // Swap in the prerendered content and make sure its tag is removed. | |
4032 NavigateToDestURL(); | |
4033 EXPECT_EQ(1U, GetTrackedTags().size()); | |
4034 } | |
4035 | |
4036 // Tests that the task manager will be provided by tasks that correspond to | |
4037 // prerendered WebContents. | |
4038 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, TaskManagementTasksProvided) { | |
4039 task_management::MockWebContentsTaskManager task_manager; | |
4040 // Browser tests start with a single tab. | |
4041 EXPECT_EQ(1U, GetTrackedTags().size()); | |
4042 | |
4043 task_manager.StartObserving(); | |
4044 | |
4045 // The pre-existing tab is provided. | |
4046 EXPECT_EQ(1U, task_manager.tasks().size()); | |
4047 | |
4048 // Start prerendering a page. | |
4049 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | |
4050 | |
4051 EXPECT_EQ(2U, GetTrackedTags().size()); | |
4052 ASSERT_EQ(2U, task_manager.tasks().size()); | |
4053 | |
4054 const task_management::Task* task = task_manager.tasks().back(); | |
4055 EXPECT_EQ(task_management::Task::RENDERER, task->GetType()); | |
4056 const base::string16 title = task->title(); | |
4057 const base::string16 expected_prefix = GetPrerenderTitlePrefix(); | |
4058 EXPECT_TRUE(base::StartsWith(title, | |
4059 expected_prefix, | |
4060 base::CompareCase::INSENSITIVE_ASCII)); | |
4061 | |
4062 NavigateToDestURL(); | |
4063 EXPECT_EQ(1U, task_manager.tasks().size()); | |
4064 } | |
4065 | |
4066 } // namespace | |
4067 | |
4068 #endif // defined(ENABLE_TASK_MANAGER) | |
4069 | |
4070 } // namespace prerender | 3996 } // namespace prerender |
OLD | NEW |