OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |