Chromium Code Reviews| 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 |