| 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");
|
|
|