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

Side by Side 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, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <vector> 6 #include <vector>
7 7
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 786
787 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsOldUndockedWindow) { 787 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsOldUndockedWindow) {
788 DevToolsWindow* devtools = 788 DevToolsWindow* devtools =
789 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false); 789 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false);
790 ShowTaskManager(); // Task manager shown AFTER dev tools window. 790 ShowTaskManager(); // Task manager shown AFTER dev tools window.
791 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab())); 791 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab()));
792 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab())); 792 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab()));
793 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); 793 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools);
794 } 794 }
795 795
796 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, HistoryNavigationInNewTab) {
797 ShowTaskManager();
798
799 ui_test_utils::NavigateToURL(browser(), GetTestURL());
800 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
801 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
802
803 ui_test_utils::NavigateToURL(browser(), GURL("about:version"));
804 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("About Version")));
805 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
806
807 chrome::GoBack(browser(), WindowOpenDisposition::NEW_BACKGROUND_TAB);
808 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("About Version")));
809 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
810 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab()));
811
812 // In http://crbug.com/738169, the task_manager::Task for the background tab
813 // was created with process id 0, resulting in zero values for all process
814 // metrics. Ensure that this is not the case.
815 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
816 MatchTab("title1.html"), ColumnSpecifier::PROCESS_ID,
817 base::kNullProcessId));
818 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
819 MatchTab("title1.html"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
820 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
821 MatchTab("About Version"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
822 }
823
824 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, SubframeHistoryNavigation) {
825 if (!ShouldExpectSubframes())
826 return; // This test is lame without OOPIFs.
827
828 ShowTaskManager();
829
830 // This URL will have two out-of-process iframe processes (for b.com and
831 // c.com) under --site-per-process: it's an a.com page containing a b.com
832 // <iframe> containing a b.com <iframe> containing a c.com <iframe>.
833 ui_test_utils::NavigateToURL(
834 browser(), embedded_test_server()->GetURL(
835 "a.com", "/cross_site_iframe_factory.html?a(b(b(c)))"));
836
837 ASSERT_NO_FATAL_FAILURE(
838 WaitForTaskManagerRows(1, MatchTab("Cross-site iframe factory")));
839 ASSERT_NO_FATAL_FAILURE(
840 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
841 ASSERT_NO_FATAL_FAILURE(
842 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
843 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
844
845 GURL d_url = embedded_test_server()->GetURL(
846 "d.com", "/cross_site_iframe_factory.html?d(e)");
847 ASSERT_TRUE(content::ExecuteScript(
848 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
849 "frames[0][0].location.href = '" + d_url.spec() + "';"));
850
851 ASSERT_NO_FATAL_FAILURE(
852 WaitForTaskManagerRows(0, MatchSubframe("http://c.com/")));
853 ASSERT_NO_FATAL_FAILURE(
854 WaitForTaskManagerRows(1, MatchSubframe("http://d.com/")));
855 ASSERT_NO_FATAL_FAILURE(
856 WaitForTaskManagerRows(1, MatchSubframe("http://e.com/")));
857 ASSERT_NO_FATAL_FAILURE(
858 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
859 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnySubframe()));
860
861 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
862
863 ASSERT_NO_FATAL_FAILURE(
864 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
865 ASSERT_NO_FATAL_FAILURE(
866 WaitForTaskManagerRows(0, MatchSubframe("http://d.com/")));
867 ASSERT_NO_FATAL_FAILURE(
868 WaitForTaskManagerRows(0, MatchSubframe("http://e.com/")));
869 ASSERT_NO_FATAL_FAILURE(
870 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
871 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
872
873 chrome::GoForward(browser(), WindowOpenDisposition::NEW_BACKGROUND_TAB);
874
875 // When the subframe appears in the cloned process, it must have a valid
876 // process ID.
877 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
878 MatchSubframe("http://d.com/"), ColumnSpecifier::PROCESS_ID,
879 base::kNullProcessId));
880 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
881 MatchSubframe("http://e.com/"), ColumnSpecifier::PROCESS_ID,
882 base::kNullProcessId));
883 ASSERT_NO_FATAL_FAILURE(
884 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
885 ASSERT_NO_FATAL_FAILURE(
886 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
887 ASSERT_NO_FATAL_FAILURE(
888 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
889 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(5, MatchAnySubframe()));
890 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab()));
891
892 // Subframe processes should report some amount of physical memory usage.
893 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
894 MatchSubframe("http://d.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
895 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
896 MatchSubframe("http://e.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
897 }
898
796 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { 899 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) {
797 ShowTaskManager(); 900 ShowTaskManager();
798 901
799 content::TestNavigationObserver navigation_observer( 902 content::TestNavigationObserver navigation_observer(
800 browser()->tab_strip_model()->GetActiveWebContents()); 903 browser()->tab_strip_model()->GetActiveWebContents());
801 GURL main_url(embedded_test_server()->GetURL( 904 GURL main_url(embedded_test_server()->GetURL(
802 "/cross-site/a.com/iframe_cross_site.html")); 905 "/cross-site/a.com/iframe_cross_site.html"));
803 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(), 906 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(),
804 WindowOpenDisposition::CURRENT_TAB, 907 WindowOpenDisposition::CURRENT_TAB,
805 ui::PAGE_TRANSITION_TYPED, false)); 908 ui::PAGE_TRANSITION_TYPED, false));
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); 1178 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1076 1179
1077 HideTaskManager(); 1180 HideTaskManager();
1078 ShowTaskManager(); 1181 ShowTaskManager();
1079 1182
1080 ASSERT_NO_FATAL_FAILURE( 1183 ASSERT_NO_FATAL_FAILURE(
1081 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); 1184 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness")));
1082 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); 1185 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1083 } 1186 }
1084 1187
1085 // Flaky on Linux http://crbug.com/700684 1188 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, OrderingOfDependentRows) {
1086 #if defined(OS_LINUX)
1087 #define MAYBE_OrderingOfDependentRows DISABLED_OrderingOfDependentRows
1088 #else
1089 #define MAYBE_OrderingOfDependentRows OrderingOfDependentRows
1090 #endif
1091 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest,
1092 MAYBE_OrderingOfDependentRows) {
1093 ShowTaskManager(); 1189 ShowTaskManager();
1094 1190
1095 GURL a_with_frames(embedded_test_server()->GetURL( 1191 GURL a_with_frames(embedded_test_server()->GetURL(
1096 "a.com", "/cross_site_iframe_factory.html?a(b,b,c(d,a,b,c))")); 1192 "a.com", "/cross_site_iframe_factory.html?a(b,b,c(d,a,b,c))"));
1097 browser()->OpenURL(content::OpenURLParams(a_with_frames, content::Referrer(), 1193 browser()->OpenURL(content::OpenURLParams(a_with_frames, content::Referrer(),
1098 WindowOpenDisposition::CURRENT_TAB, 1194 WindowOpenDisposition::CURRENT_TAB,
1099 ui::PAGE_TRANSITION_TYPED, false)); 1195 ui::PAGE_TRANSITION_TYPED, false));
1100 1196
1101 if (ShouldExpectSubframes()) { 1197 if (ShouldExpectSubframes()) {
1102 ASSERT_NO_FATAL_FAILURE( 1198 ASSERT_NO_FATAL_FAILURE(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 1264
1169 // Because the subframes for tab 2 are nested, their order is deterministic. 1265 // Because the subframes for tab 2 are nested, their order is deterministic.
1170 EXPECT_EQ("Subframe: http://a.com/", 1266 EXPECT_EQ("Subframe: http://a.com/",
1171 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1))); 1267 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1)));
1172 EXPECT_EQ("Subframe: http://c.com/", 1268 EXPECT_EQ("Subframe: http://c.com/",
1173 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2))); 1269 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2)));
1174 EXPECT_EQ("Subframe: http://b.com/", 1270 EXPECT_EQ("Subframe: http://b.com/",
1175 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3))); 1271 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3)));
1176 } 1272 }
1177 } 1273 }
OLDNEW
« 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