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

Unified Diff: chrome/browser/task_manager/task_manager_browsertest.cc

Issue 2961423002: [TaskManager] Allow a Task to mutate its PID after creation (Closed)
Patch Set: Rework comment. Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
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 51e133c5d75743e3fe9bdca0bb700e10838b202d..b5b4e330ef81ff916de226fafe7338b7396aeb28 100644
--- a/chrome/browser/task_manager/task_manager_browsertest.cc
+++ b/chrome/browser/task_manager/task_manager_browsertest.cc
@@ -793,6 +793,109 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsOldUndockedWindow) {
DevToolsWindowTesting::CloseDevToolsWindowSync(devtools);
}
+IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, HistoryNavigationInNewTab) {
+ ShowTaskManager();
+
+ ui_test_utils::NavigateToURL(browser(), GetTestURL());
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
+
+ ui_test_utils::NavigateToURL(browser(), GURL("about:version"));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("About Version")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
+
+ chrome::GoBack(browser(), WindowOpenDisposition::NEW_BACKGROUND_TAB);
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("About Version")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab()));
+
+ // In http://crbug.com/738169, the task_manager::Task for the background tab
+ // was created with process id 0, resulting in zero values for all process
+ // metrics. Ensure that this is not the case.
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchTab("title1.html"), ColumnSpecifier::PROCESS_ID,
+ base::kNullProcessId));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchTab("title1.html"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchTab("About Version"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
+}
+
+IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, SubframeHistoryNavigation) {
+ if (!ShouldExpectSubframes())
+ return; // This test is lame without OOPIFs.
+
+ ShowTaskManager();
+
+ // This URL will have two out-of-process iframe processes (for b.com and
+ // c.com) under --site-per-process: it's an a.com page containing a b.com
+ // <iframe> containing a b.com <iframe> containing a c.com <iframe>.
+ ui_test_utils::NavigateToURL(
+ browser(), embedded_test_server()->GetURL(
+ "a.com", "/cross_site_iframe_factory.html?a(b(b(c)))"));
+
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchTab("Cross-site iframe factory")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
+
+ GURL d_url = embedded_test_server()->GetURL(
+ "d.com", "/cross_site_iframe_factory.html?d(e)");
+ ASSERT_TRUE(content::ExecuteScript(
+ browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
+ "frames[0][0].location.href = '" + d_url.spec() + "';"));
+
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(0, MatchSubframe("http://c.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://d.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://e.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnySubframe()));
+
+ chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
+
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(0, MatchSubframe("http://d.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(0, MatchSubframe("http://e.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
+
+ chrome::GoForward(browser(), WindowOpenDisposition::NEW_BACKGROUND_TAB);
+
+ // When the subframe appears in the cloned process, it must have a valid
+ // process ID.
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchSubframe("http://d.com/"), ColumnSpecifier::PROCESS_ID,
+ base::kNullProcessId));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchSubframe("http://e.com/"), ColumnSpecifier::PROCESS_ID,
+ base::kNullProcessId));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
+ ASSERT_NO_FATAL_FAILURE(
+ WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(5, MatchAnySubframe()));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab()));
+
+ // Subframe processes should report some amount of physical memory usage.
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchSubframe("http://d.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
+ ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
+ MatchSubframe("http://e.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
+}
+
IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) {
ShowTaskManager();
@@ -1082,14 +1185,7 @@ IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest,
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
}
-// Flaky on Linux http://crbug.com/700684
-#if defined(OS_LINUX)
-#define MAYBE_OrderingOfDependentRows DISABLED_OrderingOfDependentRows
-#else
-#define MAYBE_OrderingOfDependentRows OrderingOfDependentRows
-#endif
-IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest,
- MAYBE_OrderingOfDependentRows) {
+IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, OrderingOfDependentRows) {
ShowTaskManager();
GURL a_with_frames(embedded_test_server()->GetURL(
« no previous file with comments | « chrome/browser/task_manager/sampling/task_group.cc ('k') | chrome/browser/task_manager/task_manager_browsertest_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698