TaskManagerTester: add GetWebContentsTaskTitles
Add a helper function to return a list of tasks. It only
includes task associated with WebContents, which is tabs and
their subpages.
Change-Id: I084485eeab0503e24e3da93afdd6b167ef831611
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3037773
Reviewed-by: Ahmed Fakhry <[email protected]>
Reviewed-by: Alexander Timin <[email protected]>
Reviewed-by: Jeremy Roman <[email protected]>
Commit-Queue: Jeremy Roman <[email protected]>
Auto-Submit: Johann Koenig <[email protected]>
Cr-Commit-Position: refs/heads/master@{#904514}
diff --git a/chrome/browser/chrome_back_forward_cache_browsertest.cc b/chrome/browser/chrome_back_forward_cache_browsertest.cc
index ff292a58..bb5e170 100644
--- a/chrome/browser/chrome_back_forward_cache_browsertest.cc
+++ b/chrome/browser/chrome_back_forward_cache_browsertest.cc
@@ -501,23 +501,6 @@
MetricsChromeBackForwardCacheBrowserTest,
testing::ValuesIn(MetricsChromeBackForwardCacheBrowserTestValues()));
-namespace {
-
-// TODO(johannkoenig): Deduplicate this with
-// chrome/browser/portal/portal_browsertest.cc.
-std::vector<std::u16string> GetRendererTaskTitles(
- task_manager::TaskManagerTester* tester) {
- std::vector<std::u16string> renderer_titles;
- renderer_titles.reserve(tester->GetRowCount());
- for (int row = 0; row < tester->GetRowCount(); row++) {
- if (tester->GetTabId(row) != SessionID::InvalidValue())
- renderer_titles.push_back(tester->GetRowTitle(row));
- }
- return renderer_titles;
-}
-
-} // namespace
-
// Ensure that BackForwardCache RenderFrameHosts are shown in the Task Manager.
IN_PROC_BROWSER_TEST_F(ChromeBackForwardCacheBrowserTest,
ShowMainFrameInTaskManager) {
@@ -555,7 +538,7 @@
1, expected_url_b_active_title);
task_manager::browsertest_util::WaitForTaskManagerRows(
1, expected_url_a_cached_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_url_b_active_title,
expected_url_a_cached_title));
@@ -572,7 +555,7 @@
1, expected_url_a_active_title);
task_manager::browsertest_util::WaitForTaskManagerRows(
1, expected_url_b_cached_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_url_a_active_title,
expected_url_b_cached_title));
}
@@ -624,7 +607,7 @@
1, expected_url_a_cached_subframe_b_title);
task_manager::browsertest_util::WaitForTaskManagerRows(
1, expected_url_a_cached_subframe_c_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_url_b_active_title,
expected_url_a_cached_title,
expected_url_a_cached_subframe_b_title,
@@ -665,7 +648,7 @@
1, expected_url_b_active_title);
task_manager::browsertest_util::WaitForTaskManagerRows(
1, expected_url_a_cached_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_url_b_active_title,
expected_url_a_cached_title));
}
diff --git a/chrome/browser/portal/portal_browsertest.cc b/chrome/browser/portal/portal_browsertest.cc
index 2ed97ce..2b71ef48 100644
--- a/chrome/browser/portal/portal_browsertest.cc
+++ b/chrome/browser/portal/portal_browsertest.cc
@@ -180,21 +180,6 @@
EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
-namespace {
-
-std::vector<std::u16string> GetRendererTaskTitles(
- task_manager::TaskManagerTester* tester) {
- std::vector<std::u16string> renderer_titles;
- renderer_titles.reserve(tester->GetRowCount());
- for (int row = 0; row < tester->GetRowCount(); row++) {
- if (tester->GetTabId(row) != SessionID::InvalidValue())
- renderer_titles.push_back(tester->GetRowTitle(row));
- }
- return renderer_titles;
-}
-
-} // namespace
-
// The task manager should show the portal tasks, and update the tasks after
// activation as tab contents become portals and vice versa.
IN_PROC_BROWSER_TEST_F(PortalBrowserTest, TaskManagerUpdatesAfterActivation) {
@@ -221,7 +206,7 @@
1, expected_tab_title_before_activation);
task_manager::browsertest_util::WaitForTaskManagerRows(1,
expected_portal_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_tab_title_before_activation,
expected_portal_title));
@@ -231,7 +216,7 @@
1, expected_tab_title_after_activation);
task_manager::browsertest_util::WaitForTaskManagerRows(1,
expected_portal_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()),
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(),
::testing::ElementsAre(expected_tab_title_after_activation,
expected_portal_title));
}
@@ -295,7 +280,7 @@
expected_tab_title);
task_manager::browsertest_util::WaitForTaskManagerRows(
kNumTabs * kPortalsPerTab, expected_portal_title);
- EXPECT_THAT(GetRendererTaskTitles(tester.get()), expected_titles);
+ EXPECT_THAT(tester->GetWebContentsTaskTitles(), expected_titles);
}
IN_PROC_BROWSER_TEST_F(PortalBrowserTest, PdfViewerLoadsInPortal) {
diff --git a/chrome/browser/task_manager/task_manager_tester.cc b/chrome/browser/task_manager/task_manager_tester.cc
index 9807bf7..60621f45 100644
--- a/chrome/browser/task_manager/task_manager_tester.cc
+++ b/chrome/browser/task_manager/task_manager_tester.cc
@@ -185,6 +185,17 @@
return model_->GetRowsGroupRange(row, out_start, out_length);
}
+std::vector<std::u16string> TaskManagerTester::GetWebContentsTaskTitles() {
+ std::vector<std::u16string> titles;
+ titles.reserve(GetRowCount());
+ for (int row = 0; row < GetRowCount(); row++) {
+ // Exclude tasks which are not associated with a WebContents.
+ if (GetTabId(row) != SessionID::InvalidValue())
+ titles.push_back(GetRowTitle(row));
+ }
+ return titles;
+}
+
TaskManagerInterface* TaskManagerTester::task_manager() {
return model_->observed_task_manager();
}
diff --git a/chrome/browser/task_manager/task_manager_tester.h b/chrome/browser/task_manager/task_manager_tester.h
index 847dad9..51aa0808 100644
--- a/chrome/browser/task_manager/task_manager_tester.h
+++ b/chrome/browser/task_manager/task_manager_tester.h
@@ -58,6 +58,10 @@
// |row_index| belongs.
void GetRowsGroupRange(int row, int* out_start, int* out_length);
+ // Get all task titles associated with a WebContents and return them in a
+ // vector.
+ std::vector<std::u16string> GetWebContentsTaskTitles();
+
private:
explicit TaskManagerTester(const base::RepeatingClosure& on_resource_change);