Index: chrome/browser/task_manager/task_manager_browsertest.cc |
diff --git a/chrome/browser/task_manager/task_manager_browsertest.cc b/chrome/browser/task_manager/task_manager_browsertest.cc |
index 822c5ff575c22f938d280be3cc9e8554c818a00e..685c81d4e9c7585e7677da6f285983f623f6eca6 100644 |
--- a/chrome/browser/task_manager/task_manager_browsertest.cc |
+++ b/chrome/browser/task_manager/task_manager_browsertest.cc |
@@ -62,6 +62,7 @@ using task_manager::browsertest_util::MatchExtension; |
using task_manager::browsertest_util::MatchSubframe; |
using task_manager::browsertest_util::MatchTab; |
using task_manager::browsertest_util::MatchUtility; |
+using task_manager::browsertest_util::TaskManagerTesterInterface; |
using task_manager::browsertest_util::WaitForTaskManagerRows; |
using task_manager::browsertest_util::WaitForTaskManagerStatToExceed; |
@@ -76,31 +77,28 @@ class TaskManagerBrowserTest : public ExtensionBrowserTest { |
TaskManagerBrowserTest() {} |
~TaskManagerBrowserTest() override {} |
- TaskManagerModel* model() const { |
- return TaskManager::GetInstance()->model(); |
- } |
+ TaskManagerTesterInterface* model() { return model_.get(); } |
void ShowTaskManager() { |
- EXPECT_EQ(0, model()->ResourceCount()); |
- |
// Show the task manager. This populates the model, and helps with debugging |
// (you see the task manager). |
chrome::ShowTaskManager(browser()); |
+ model_ = task_manager::browsertest_util::GetTaskManagerTester(); |
} |
void HideTaskManager() { |
- // Hide the task manager, and wait for the model to be depopulated. |
+ model_.reset(); |
+ |
+ // Hide the task manager, and wait for it to go. |
chrome::HideTaskManager(); |
base::RunLoop().RunUntilIdle(); // OnWindowClosed happens asynchronously. |
- EXPECT_EQ(0, model()->ResourceCount()); |
} |
void Refresh() { |
- model()->Refresh(); |
- } |
- |
- int GetUpdateTimeMs() { |
- return TaskManagerModel::kUpdateTimeMs; |
+ // Refresh() isn't ever needed on the new task manager. |
+ if (switches::NewTaskManagerEnabled()) |
+ return; |
+ TaskManager::GetInstance()->model()->Refresh(); |
} |
GURL GetTestURL() { |
@@ -110,8 +108,8 @@ class TaskManagerBrowserTest : public ExtensionBrowserTest { |
} |
int FindResourceIndex(const base::string16& title) { |
- for (int i = 0; i < model()->ResourceCount(); ++i) { |
- if (title == model()->GetResourceTitle(i)) |
+ for (int i = 0; i < model_->GetRowCount(); ++i) { |
+ if (title == model_->GetRowTitle(i)) |
return i; |
} |
return -1; |
@@ -121,15 +119,12 @@ class TaskManagerBrowserTest : public ExtensionBrowserTest { |
void SetUpCommandLine(base::CommandLine* command_line) override { |
ExtensionBrowserTest::SetUpCommandLine(command_line); |
- // These tests are for the old implementation of the task manager. We must |
- // explicitly disable the new one. |
- task_manager::browsertest_util::EnableOldTaskManager(); |
- |
// Do not launch device discovery process. |
command_line->AppendSwitch(switches::kDisableDeviceDiscoveryNotifications); |
} |
private: |
+ std::unique_ptr<TaskManagerTesterInterface> model_; |
DISALLOW_COPY_AND_ASSIGN(TaskManagerBrowserTest); |
}; |
@@ -222,9 +217,8 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillTab) { |
// Killing the tab via task manager should remove the row. |
int tab = FindResourceIndex(MatchTab("title1.html")); |
ASSERT_NE(-1, tab); |
- ASSERT_TRUE(model()->GetResourceWebContents(tab) != NULL); |
- ASSERT_TRUE(model()->CanActivate(tab)); |
- TaskManager::GetInstance()->KillProcess(tab); |
+ ASSERT_NE(-1, model()->GetTabId(tab)); |
+ model()->Kill(tab); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchTab("title1.html"))); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
@@ -423,9 +417,8 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillPanelViaExtensionResource) { |
// the background page and the panel go away from the task manager. |
int background_page = FindResourceIndex(MatchExtension("My extension 1")); |
ASSERT_NE(-1, background_page); |
- ASSERT_TRUE(model()->GetResourceWebContents(background_page) == NULL); |
- ASSERT_FALSE(model()->CanActivate(background_page)); |
- TaskManager::GetInstance()->KillProcess(background_page); |
+ ASSERT_EQ(-1, model()->GetTabId(background_page)); |
+ model()->Kill(background_page); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnyExtension())); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
} |
@@ -466,8 +459,7 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillPanelViaPanelResource) { |
int background_page = FindResourceIndex(MatchExtension("My extension 1")); |
ASSERT_NE(-1, background_page); |
- ASSERT_TRUE(model()->GetResourceWebContents(background_page) == NULL); |
- ASSERT_FALSE(model()->CanActivate(background_page)); |
+ ASSERT_EQ(-1, model()->GetTabId(background_page)); |
// Kill the process via the PANEL RESOURCE (not the background page). Verify |
// that both the background page and the panel go away from the task manager. |
@@ -475,9 +467,8 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillPanelViaPanelResource) { |
"chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/" |
"french_sentence.html")); |
ASSERT_NE(-1, panel); |
- ASSERT_TRUE(model()->GetResourceWebContents(panel) != NULL); |
- ASSERT_TRUE(model()->CanActivate(panel)); |
- TaskManager::GetInstance()->KillProcess(panel); |
+ ASSERT_NE(-1, model()->GetTabId(panel)); |
+ model()->Kill(panel); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnyExtension())); |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
} |
@@ -513,13 +504,11 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTabChanges) { |
int extension_tab = FindResourceIndex(MatchExtension("Foobar")); |
ASSERT_NE(-1, extension_tab); |
- ASSERT_TRUE(model()->GetResourceWebContents(extension_tab) != NULL); |
- ASSERT_TRUE(model()->CanActivate(extension_tab)); |
+ ASSERT_NE(-1, model()->GetTabId(extension_tab)); |
int background_page = FindResourceIndex(MatchExtension("My extension 1")); |
ASSERT_NE(-1, background_page); |
- ASSERT_TRUE(model()->GetResourceWebContents(background_page) == NULL); |
- ASSERT_FALSE(model()->CanActivate(background_page)); |
+ ASSERT_EQ(-1, model()->GetTabId(background_page)); |
} |
IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTab) { |
@@ -545,13 +534,11 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTab) { |
int extension_tab = FindResourceIndex(MatchExtension("Foobar")); |
ASSERT_NE(-1, extension_tab); |
- ASSERT_TRUE(model()->GetResourceWebContents(extension_tab) != NULL); |
- ASSERT_TRUE(model()->CanActivate(extension_tab)); |
+ ASSERT_NE(-1, model()->GetTabId(extension_tab)); |
int background_page = FindResourceIndex(MatchExtension("My extension 1")); |
ASSERT_NE(-1, background_page); |
- ASSERT_TRUE(model()->GetResourceWebContents(background_page) == NULL); |
- ASSERT_FALSE(model()->CanActivate(background_page)); |
+ ASSERT_EQ(-1, model()->GetTabId(background_page)); |
} |
IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeAppTabChanges) { |
@@ -584,10 +571,7 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeAppTabChanges) { |
// a tab contents and an extension. |
int app_tab = FindResourceIndex(MatchApp("Packaged App Test")); |
ASSERT_NE(-1, app_tab); |
- ASSERT_TRUE(model()->GetResourceWebContents(app_tab) != NULL); |
- ASSERT_TRUE(model()->CanActivate(app_tab)); |
- ASSERT_EQ(task_manager::Resource::EXTENSION, |
- model()->GetResourceType(app_tab)); |
+ ASSERT_NE(-1, model()->GetTabId(app_tab)); |
ASSERT_EQ(2, browser()->tab_strip_model()->count()); |
// Unload extension to make sure the tab goes away. |
@@ -624,10 +608,7 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeAppTab) { |
// a tab contents and an extension. |
int app_tab = FindResourceIndex(MatchApp("Packaged App Test")); |
ASSERT_NE(-1, app_tab); |
- ASSERT_TRUE(model()->GetResourceWebContents(app_tab) != NULL); |
- ASSERT_TRUE(model()->CanActivate(app_tab)); |
- ASSERT_EQ(task_manager::Resource::EXTENSION, |
- model()->GetResourceType(app_tab)); |
+ ASSERT_NE(-1, model()->GetTabId(app_tab)); |
} |
IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeHostedAppTabChanges) { |
@@ -787,27 +768,6 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, ReloadExtension) { |
} |
} |
-// Crashy, http://crbug.com/42301. |
-IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, |
- DISABLED_PopulateWebCacheFields) { |
- ShowTaskManager(); |
- ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
- |
- int resource_count = TaskManager::GetInstance()->model()->ResourceCount(); |
- |
- // Open a new tab and make sure we notice that. |
- AddTabAtIndex(0, GetTestURL(), ui::PAGE_TRANSITION_TYPED); |
- ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
- |
- // Check that we get some value for the cache columns. |
- DCHECK_NE(model()->GetResourceWebCoreImageCacheSize(resource_count), |
- l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); |
- DCHECK_NE(model()->GetResourceWebCoreScriptsCacheSize(resource_count), |
- l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); |
- DCHECK_NE(model()->GetResourceWebCoreCSSCacheSize(resource_count), |
- l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); |
-} |
- |
// Checks that task manager counts a worker thread JS heap size. |
// http://crbug.com/241066 |
IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, WebWorkerJSHeapMemory) { |
@@ -961,10 +921,9 @@ IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe())); |
int subframe_b = FindResourceIndex(MatchSubframe("http://b.com/")); |
ASSERT_NE(-1, subframe_b); |
- ASSERT_TRUE(model()->GetResourceWebContents(subframe_b) != NULL); |
- ASSERT_TRUE(model()->CanActivate(subframe_b)); |
+ ASSERT_NE(-1, model()->GetTabId(subframe_b)); |
- TaskManager::GetInstance()->KillProcess(subframe_b); |
+ model()->Kill(subframe_b); |
ASSERT_NO_FATAL_FAILURE( |
WaitForTaskManagerRows(0, MatchSubframe("http://b.com/"))); |
@@ -993,12 +952,7 @@ IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { |
// Tests what happens when a tab navigates to a site (a.com) that it previously |
// has a cross-process subframe into (b.com). |
-// |
-// TODO(nick): http://crbug.com/442532. Disabled because the second navigation |
-// hits an ASSERT(frame()) in WebLocalFrameImpl::loadRequest under --site-per- |
-// process. |
-IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
- DISABLED_NavigateToSubframeProcess) { |
+IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, NavigateToSubframeProcess) { |
ShowTaskManager(); |
host_resolver()->AddRule("*", "127.0.0.1"); |
@@ -1046,10 +1000,8 @@ IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
} |
-// TODO(nick): Fails flakily under OOPIF due to a ASSERT_NOT_REACHED in |
-// WebRemoteFrame, at least under debug OSX. http://crbug.com/437956 |
IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
- DISABLED_NavigateToSiteWithSubframeToOriginalSite) { |
+ NavigateToSiteWithSubframeToOriginalSite) { |
ShowTaskManager(); |
host_resolver()->AddRule("*", "127.0.0.1"); |
@@ -1172,16 +1124,8 @@ IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
} |
-// Tests what happens when a tab does a same-site navigation away from a page |
-// with cross-site iframes. |
-// Flaky on Windows. http://crbug.com/528282. |
-#if defined(OS_WIN) |
-#define MAYBE_LeavePageWithCrossSiteIframes DISABLED_LeavePageWithCrossSiteIframes |
-#else |
-#define MAYBE_LeavePageWithCrossSiteIframes LeavePageWithCrossSiteIframes |
-#endif |
IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
- MAYBE_LeavePageWithCrossSiteIframes) { |
+ LeavePageWithCrossSiteIframes) { |
ShowTaskManager(); |
host_resolver()->AddRule("*", "127.0.0.1"); |