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

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: Totally change approach; just let Tasks modify their PIDs. 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 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 ui_test_utils::NavigateToURL(
831 browser(), embedded_test_server()->GetURL(
832 "a.com", "/cross_site_iframe_factory.html?a(b(b(c)))"));
afakhry 2017/07/10 17:27:54 I have no idea what that URL means.
ncarter (slow) 2017/07/31 22:30:29 Done.
afakhry 2017/08/01 17:25:35 Thanks! Much clearer now! :)
833
834 ASSERT_NO_FATAL_FAILURE(
835 WaitForTaskManagerRows(1, MatchTab("Cross-site iframe factory")));
836 ASSERT_NO_FATAL_FAILURE(
837 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
838 ASSERT_NO_FATAL_FAILURE(
839 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
840 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
841
842 GURL d_url = embedded_test_server()->GetURL(
843 "d.com", "/cross_site_iframe_factory.html?d(e)");
844 ASSERT_TRUE(content::ExecuteScript(
845 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
846 "frames[0][0].location.href = '" + d_url.spec() + "';"));
847
848 ASSERT_NO_FATAL_FAILURE(
849 WaitForTaskManagerRows(0, MatchSubframe("http://c.com/")));
850 ASSERT_NO_FATAL_FAILURE(
851 WaitForTaskManagerRows(1, MatchSubframe("http://d.com/")));
852 ASSERT_NO_FATAL_FAILURE(
853 WaitForTaskManagerRows(1, MatchSubframe("http://e.com/")));
854 ASSERT_NO_FATAL_FAILURE(
855 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
856 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnySubframe()));
857
858 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
859
860 ASSERT_NO_FATAL_FAILURE(
861 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
862 ASSERT_NO_FATAL_FAILURE(
863 WaitForTaskManagerRows(0, MatchSubframe("http://d.com/")));
864 ASSERT_NO_FATAL_FAILURE(
865 WaitForTaskManagerRows(0, MatchSubframe("http://e.com/")));
866 ASSERT_NO_FATAL_FAILURE(
867 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/")));
868 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe()));
869
870 chrome::GoForward(browser(), WindowOpenDisposition::NEW_BACKGROUND_TAB);
871
872 // When the subframe appears in the cloned process, it must have a valid
873 // process ID.
874 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
875 MatchSubframe("http://d.com/"), ColumnSpecifier::PROCESS_ID,
876 base::kNullProcessId));
877 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
878 MatchSubframe("http://e.com/"), ColumnSpecifier::PROCESS_ID,
879 base::kNullProcessId));
880 ASSERT_NO_FATAL_FAILURE(
881 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
882 ASSERT_NO_FATAL_FAILURE(
883 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/")));
884 ASSERT_NO_FATAL_FAILURE(
885 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/")));
886 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(5, MatchAnySubframe()));
887 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab()));
888
889 // Subframe processes should report some amount of physical memory usage.
890 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
891 MatchSubframe("http://d.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
892 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
893 MatchSubframe("http://e.com/"), ColumnSpecifier::PHYSICAL_MEMORY, 1000));
894 }
895
796 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { 896 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) {
797 ShowTaskManager(); 897 ShowTaskManager();
798 898
799 content::TestNavigationObserver navigation_observer( 899 content::TestNavigationObserver navigation_observer(
800 browser()->tab_strip_model()->GetActiveWebContents()); 900 browser()->tab_strip_model()->GetActiveWebContents());
801 GURL main_url(embedded_test_server()->GetURL( 901 GURL main_url(embedded_test_server()->GetURL(
802 "/cross-site/a.com/iframe_cross_site.html")); 902 "/cross-site/a.com/iframe_cross_site.html"));
803 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(), 903 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(),
804 WindowOpenDisposition::CURRENT_TAB, 904 WindowOpenDisposition::CURRENT_TAB,
805 ui::PAGE_TRANSITION_TYPED, false)); 905 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())); 1175 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1076 1176
1077 HideTaskManager(); 1177 HideTaskManager();
1078 ShowTaskManager(); 1178 ShowTaskManager();
1079 1179
1080 ASSERT_NO_FATAL_FAILURE( 1180 ASSERT_NO_FATAL_FAILURE(
1081 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); 1181 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness")));
1082 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); 1182 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1083 } 1183 }
1084 1184
1085 // Flaky on Linux http://crbug.com/700684 1185 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(); 1186 ShowTaskManager();
1094 1187
1095 GURL a_with_frames(embedded_test_server()->GetURL( 1188 GURL a_with_frames(embedded_test_server()->GetURL(
1096 "a.com", "/cross_site_iframe_factory.html?a(b,b,c(d,a,b,c))")); 1189 "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(), 1190 browser()->OpenURL(content::OpenURLParams(a_with_frames, content::Referrer(),
1098 WindowOpenDisposition::CURRENT_TAB, 1191 WindowOpenDisposition::CURRENT_TAB,
1099 ui::PAGE_TRANSITION_TYPED, false)); 1192 ui::PAGE_TRANSITION_TYPED, false));
1100 1193
1101 if (ShouldExpectSubframes()) { 1194 if (ShouldExpectSubframes()) {
1102 ASSERT_NO_FATAL_FAILURE( 1195 ASSERT_NO_FATAL_FAILURE(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 1261
1169 // Because the subframes for tab 2 are nested, their order is deterministic. 1262 // Because the subframes for tab 2 are nested, their order is deterministic.
1170 EXPECT_EQ("Subframe: http://a.com/", 1263 EXPECT_EQ("Subframe: http://a.com/",
1171 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1))); 1264 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1)));
1172 EXPECT_EQ("Subframe: http://c.com/", 1265 EXPECT_EQ("Subframe: http://c.com/",
1173 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2))); 1266 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2)));
1174 EXPECT_EQ("Subframe: http://b.com/", 1267 EXPECT_EQ("Subframe: http://b.com/",
1175 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3))); 1268 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3)));
1176 } 1269 }
1177 } 1270 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698