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