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 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 239 |
240 // Killing the tab via task manager should remove the row. | 240 // Killing the tab via task manager should remove the row. |
241 int tab = FindResourceIndex(MatchTab("title1.html")); | 241 int tab = FindResourceIndex(MatchTab("title1.html")); |
242 ASSERT_NE(-1, tab); | 242 ASSERT_NE(-1, tab); |
243 ASSERT_NE(-1, model()->GetTabId(tab)); | 243 ASSERT_NE(-1, model()->GetTabId(tab)); |
244 model()->Kill(tab); | 244 model()->Kill(tab); |
245 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchTab("title1.html"))); | 245 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchTab("title1.html"))); |
246 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 246 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
247 | 247 |
248 // Tab should reappear in task manager upon reload. | 248 // Tab should reappear in task manager upon reload. |
249 chrome::Reload(browser(), CURRENT_TAB); | 249 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB); |
250 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); | 250 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); |
251 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); | 251 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
252 } | 252 } |
253 | 253 |
254 // Regression test for http://crbug.com/444945. | 254 // Regression test for http://crbug.com/444945. |
255 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NavigateAwayFromHungRenderer) { | 255 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NavigateAwayFromHungRenderer) { |
256 ShowTaskManager(); | 256 ShowTaskManager(); |
257 | 257 |
258 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); | 258 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); |
259 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 259 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 << "New WebContents must be in the same process as the old WebContents, " | 292 << "New WebContents must be in the same process as the old WebContents, " |
293 << "so that the new tab doesn't finish loading (what this test is all " | 293 << "so that the new tab doesn't finish loading (what this test is all " |
294 << "about)"; | 294 << "about)"; |
295 ASSERT_EQ(tab1->GetSiteInstance(), tab2->GetSiteInstance()) | 295 ASSERT_EQ(tab1->GetSiteInstance(), tab2->GetSiteInstance()) |
296 << "New WebContents must initially be in the same site instance as the " | 296 << "New WebContents must initially be in the same site instance as the " |
297 << "old WebContents"; | 297 << "old WebContents"; |
298 | 298 |
299 // Now navigate this tab to a different site. This should wind up in a | 299 // Now navigate this tab to a different site. This should wind up in a |
300 // different renderer process, so it should complete and show up in the task | 300 // different renderer process, so it should complete and show up in the task |
301 // manager. | 301 // manager. |
302 tab2->OpenURL(content::OpenURLParams(url3, content::Referrer(), CURRENT_TAB, | 302 tab2->OpenURL(content::OpenURLParams(url3, content::Referrer(), |
| 303 WindowOpenDisposition::CURRENT_TAB, |
303 ui::PAGE_TRANSITION_TYPED, false)); | 304 ui::PAGE_TRANSITION_TYPED, false)); |
304 | 305 |
305 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); | 306 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); |
306 } | 307 } |
307 | 308 |
308 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTabChanges) { | 309 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTabChanges) { |
309 ShowTaskManager(); | 310 ShowTaskManager(); |
310 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); | 311 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); |
311 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 312 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
312 | 313 |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab())); | 742 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyTab())); |
742 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); | 743 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); |
743 } | 744 } |
744 | 745 |
745 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { | 746 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, KillSubframe) { |
746 ShowTaskManager(); | 747 ShowTaskManager(); |
747 | 748 |
748 GURL main_url(embedded_test_server()->GetURL( | 749 GURL main_url(embedded_test_server()->GetURL( |
749 "/cross-site/a.com/iframe_cross_site.html")); | 750 "/cross-site/a.com/iframe_cross_site.html")); |
750 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(), | 751 browser()->OpenURL(content::OpenURLParams(main_url, content::Referrer(), |
751 CURRENT_TAB, | 752 WindowOpenDisposition::CURRENT_TAB, |
752 ui::PAGE_TRANSITION_TYPED, false)); | 753 ui::PAGE_TRANSITION_TYPED, false)); |
753 | 754 |
754 ASSERT_NO_FATAL_FAILURE( | 755 ASSERT_NO_FATAL_FAILURE( |
755 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); | 756 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); |
756 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 757 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
757 | 758 |
758 if (!ShouldExpectSubframes()) { | 759 if (!ShouldExpectSubframes()) { |
759 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 760 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
760 } else { | 761 } else { |
761 ASSERT_NO_FATAL_FAILURE( | 762 ASSERT_NO_FATAL_FAILURE( |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
797 // Tests what happens when a tab navigates to a site (a.com) that it previously | 798 // Tests what happens when a tab navigates to a site (a.com) that it previously |
798 // has a cross-process subframe into (b.com). | 799 // has a cross-process subframe into (b.com). |
799 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, NavigateToSubframeProcess) { | 800 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, NavigateToSubframeProcess) { |
800 ShowTaskManager(); | 801 ShowTaskManager(); |
801 | 802 |
802 // Navigate the tab to a page on a.com with cross-process subframes to | 803 // Navigate the tab to a page on a.com with cross-process subframes to |
803 // b.com and c.com. | 804 // b.com and c.com. |
804 GURL a_dotcom(embedded_test_server()->GetURL( | 805 GURL a_dotcom(embedded_test_server()->GetURL( |
805 "/cross-site/a.com/iframe_cross_site.html")); | 806 "/cross-site/a.com/iframe_cross_site.html")); |
806 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), | 807 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), |
807 CURRENT_TAB, | 808 WindowOpenDisposition::CURRENT_TAB, |
808 ui::PAGE_TRANSITION_TYPED, false)); | 809 ui::PAGE_TRANSITION_TYPED, false)); |
809 | 810 |
810 ASSERT_NO_FATAL_FAILURE( | 811 ASSERT_NO_FATAL_FAILURE( |
811 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); | 812 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); |
812 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 813 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
813 | 814 |
814 if (!ShouldExpectSubframes()) { | 815 if (!ShouldExpectSubframes()) { |
815 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 816 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
816 } else { | 817 } else { |
817 ASSERT_NO_FATAL_FAILURE( | 818 ASSERT_NO_FATAL_FAILURE( |
818 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); | 819 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); |
819 ASSERT_NO_FATAL_FAILURE( | 820 ASSERT_NO_FATAL_FAILURE( |
820 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); | 821 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); |
821 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe())); | 822 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe())); |
822 } | 823 } |
823 | 824 |
824 // Now navigate to a page on b.com with a simple (same-site) iframe. | 825 // Now navigate to a page on b.com with a simple (same-site) iframe. |
825 // This should not show any subframe resources in the task manager. | 826 // This should not show any subframe resources in the task manager. |
826 GURL b_dotcom( | 827 GURL b_dotcom( |
827 embedded_test_server()->GetURL("/cross-site/b.com/iframe.html")); | 828 embedded_test_server()->GetURL("/cross-site/b.com/iframe.html")); |
828 | 829 |
829 browser()->OpenURL(content::OpenURLParams(b_dotcom, content::Referrer(), | 830 browser()->OpenURL(content::OpenURLParams(b_dotcom, content::Referrer(), |
830 CURRENT_TAB, | 831 WindowOpenDisposition::CURRENT_TAB, |
831 ui::PAGE_TRANSITION_TYPED, false)); | 832 ui::PAGE_TRANSITION_TYPED, false)); |
832 | 833 |
833 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); | 834 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); |
834 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 835 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
835 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 836 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
836 HideTaskManager(); | 837 HideTaskManager(); |
837 ShowTaskManager(); | 838 ShowTaskManager(); |
838 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); | 839 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); |
839 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 840 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
840 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 841 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
841 } | 842 } |
842 | 843 |
843 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, | 844 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
844 NavigateToSiteWithSubframeToOriginalSite) { | 845 NavigateToSiteWithSubframeToOriginalSite) { |
845 ShowTaskManager(); | 846 ShowTaskManager(); |
846 | 847 |
847 // Navigate to a page on b.com with a simple (same-site) iframe. | 848 // Navigate to a page on b.com with a simple (same-site) iframe. |
848 // This should not show any subframe resources in the task manager. | 849 // This should not show any subframe resources in the task manager. |
849 GURL b_dotcom( | 850 GURL b_dotcom( |
850 embedded_test_server()->GetURL("/cross-site/b.com/iframe.html")); | 851 embedded_test_server()->GetURL("/cross-site/b.com/iframe.html")); |
851 | 852 |
852 browser()->OpenURL(content::OpenURLParams(b_dotcom, content::Referrer(), | 853 browser()->OpenURL(content::OpenURLParams(b_dotcom, content::Referrer(), |
853 CURRENT_TAB, | 854 WindowOpenDisposition::CURRENT_TAB, |
854 ui::PAGE_TRANSITION_TYPED, false)); | 855 ui::PAGE_TRANSITION_TYPED, false)); |
855 | 856 |
856 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); | 857 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); |
857 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 858 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
858 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 859 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
859 | 860 |
860 // Now navigate the tab to a page on a.com with cross-process subframes to | 861 // Now navigate the tab to a page on a.com with cross-process subframes to |
861 // b.com and c.com. | 862 // b.com and c.com. |
862 GURL a_dotcom(embedded_test_server()->GetURL( | 863 GURL a_dotcom(embedded_test_server()->GetURL( |
863 "/cross-site/a.com/iframe_cross_site.html")); | 864 "/cross-site/a.com/iframe_cross_site.html")); |
864 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), | 865 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), |
865 CURRENT_TAB, | 866 WindowOpenDisposition::CURRENT_TAB, |
866 ui::PAGE_TRANSITION_TYPED, false)); | 867 ui::PAGE_TRANSITION_TYPED, false)); |
867 | 868 |
868 ASSERT_NO_FATAL_FAILURE( | 869 ASSERT_NO_FATAL_FAILURE( |
869 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); | 870 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); |
870 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 871 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
871 | 872 |
872 if (!ShouldExpectSubframes()) { | 873 if (!ShouldExpectSubframes()) { |
873 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 874 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
874 } else { | 875 } else { |
875 ASSERT_NO_FATAL_FAILURE( | 876 ASSERT_NO_FATAL_FAILURE( |
(...skipping 21 matching lines...) Expand all Loading... |
897 // back to the site of the parent document (a.com). | 898 // back to the site of the parent document (a.com). |
898 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, | 899 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
899 CrossSiteIframeBecomesSameSite) { | 900 CrossSiteIframeBecomesSameSite) { |
900 ShowTaskManager(); | 901 ShowTaskManager(); |
901 | 902 |
902 // Navigate the tab to a page on a.com with cross-process subframes to | 903 // Navigate the tab to a page on a.com with cross-process subframes to |
903 // b.com and c.com. | 904 // b.com and c.com. |
904 GURL a_dotcom(embedded_test_server()->GetURL( | 905 GURL a_dotcom(embedded_test_server()->GetURL( |
905 "/cross-site/a.com/iframe_cross_site.html")); | 906 "/cross-site/a.com/iframe_cross_site.html")); |
906 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), | 907 browser()->OpenURL(content::OpenURLParams(a_dotcom, content::Referrer(), |
907 CURRENT_TAB, | 908 WindowOpenDisposition::CURRENT_TAB, |
908 ui::PAGE_TRANSITION_TYPED, false)); | 909 ui::PAGE_TRANSITION_TYPED, false)); |
909 | 910 |
910 ASSERT_NO_FATAL_FAILURE( | 911 ASSERT_NO_FATAL_FAILURE( |
911 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); | 912 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); |
912 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 913 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
913 | 914 |
914 if (!ShouldExpectSubframes()) { | 915 if (!ShouldExpectSubframes()) { |
915 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 916 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
916 } else { | 917 } else { |
917 ASSERT_NO_FATAL_FAILURE( | 918 ASSERT_NO_FATAL_FAILURE( |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
956 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 957 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
957 } | 958 } |
958 | 959 |
959 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, | 960 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, |
960 LeavePageWithCrossSiteIframes) { | 961 LeavePageWithCrossSiteIframes) { |
961 ShowTaskManager(); | 962 ShowTaskManager(); |
962 | 963 |
963 // Navigate the tab to a page on a.com with cross-process subframes. | 964 // Navigate the tab to a page on a.com with cross-process subframes. |
964 GURL a_dotcom_with_iframes(embedded_test_server()->GetURL( | 965 GURL a_dotcom_with_iframes(embedded_test_server()->GetURL( |
965 "/cross-site/a.com/iframe_cross_site.html")); | 966 "/cross-site/a.com/iframe_cross_site.html")); |
966 browser()->OpenURL(content::OpenURLParams(a_dotcom_with_iframes, | 967 browser()->OpenURL(content::OpenURLParams( |
967 content::Referrer(), CURRENT_TAB, | 968 a_dotcom_with_iframes, content::Referrer(), |
968 ui::PAGE_TRANSITION_TYPED, false)); | 969 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
969 | 970 |
970 ASSERT_NO_FATAL_FAILURE( | 971 ASSERT_NO_FATAL_FAILURE( |
971 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); | 972 WaitForTaskManagerRows(1, MatchTab("cross-site iframe test"))); |
972 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 973 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
973 | 974 |
974 if (!ShouldExpectSubframes()) { | 975 if (!ShouldExpectSubframes()) { |
975 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 976 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
976 } else { | 977 } else { |
977 ASSERT_NO_FATAL_FAILURE( | 978 ASSERT_NO_FATAL_FAILURE( |
978 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); | 979 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); |
979 ASSERT_NO_FATAL_FAILURE( | 980 ASSERT_NO_FATAL_FAILURE( |
980 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); | 981 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); |
981 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe())); | 982 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnySubframe())); |
982 } | 983 } |
983 | 984 |
984 // Navigate the tab to a page on a.com without cross-process subframes, and | 985 // Navigate the tab to a page on a.com without cross-process subframes, and |
985 // the subframe processes should disappear. | 986 // the subframe processes should disappear. |
986 GURL a_dotcom_simple( | 987 GURL a_dotcom_simple( |
987 embedded_test_server()->GetURL("/cross-site/a.com/title2.html")); | 988 embedded_test_server()->GetURL("/cross-site/a.com/title2.html")); |
988 browser()->OpenURL(content::OpenURLParams(a_dotcom_simple, | 989 browser()->OpenURL(content::OpenURLParams( |
989 content::Referrer(), CURRENT_TAB, | 990 a_dotcom_simple, content::Referrer(), WindowOpenDisposition::CURRENT_TAB, |
990 ui::PAGE_TRANSITION_TYPED, false)); | 991 ui::PAGE_TRANSITION_TYPED, false)); |
991 ASSERT_NO_FATAL_FAILURE( | 992 ASSERT_NO_FATAL_FAILURE( |
992 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 993 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
993 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 994 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
994 | 995 |
995 HideTaskManager(); | 996 HideTaskManager(); |
996 ShowTaskManager(); | 997 ShowTaskManager(); |
997 | 998 |
998 ASSERT_NO_FATAL_FAILURE( | 999 ASSERT_NO_FATAL_FAILURE( |
999 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 1000 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
1000 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 1001 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
1001 } | 1002 } |
1002 | 1003 |
1003 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, OrderingOfDependentRows) { | 1004 IN_PROC_BROWSER_TEST_P(TaskManagerOOPIFBrowserTest, OrderingOfDependentRows) { |
1004 ShowTaskManager(); | 1005 ShowTaskManager(); |
1005 | 1006 |
1006 GURL a_with_frames(embedded_test_server()->GetURL( | 1007 GURL a_with_frames(embedded_test_server()->GetURL( |
1007 "a.com", "/cross_site_iframe_factory.html?a(b,b,c(d,a,b,c))")); | 1008 "a.com", "/cross_site_iframe_factory.html?a(b,b,c(d,a,b,c))")); |
1008 browser()->OpenURL(content::OpenURLParams(a_with_frames, content::Referrer(), | 1009 browser()->OpenURL(content::OpenURLParams(a_with_frames, content::Referrer(), |
1009 CURRENT_TAB, | 1010 WindowOpenDisposition::CURRENT_TAB, |
1010 ui::PAGE_TRANSITION_TYPED, false)); | 1011 ui::PAGE_TRANSITION_TYPED, false)); |
1011 | 1012 |
1012 if (ShouldExpectSubframes()) { | 1013 if (ShouldExpectSubframes()) { |
1013 ASSERT_NO_FATAL_FAILURE( | 1014 ASSERT_NO_FATAL_FAILURE( |
1014 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); | 1015 WaitForTaskManagerRows(1, MatchSubframe("http://b.com/"))); |
1015 ASSERT_NO_FATAL_FAILURE( | 1016 ASSERT_NO_FATAL_FAILURE( |
1016 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); | 1017 WaitForTaskManagerRows(1, MatchSubframe("http://c.com/"))); |
1017 ASSERT_NO_FATAL_FAILURE( | 1018 ASSERT_NO_FATAL_FAILURE( |
1018 WaitForTaskManagerRows(1, MatchSubframe("http://d.com/"))); | 1019 WaitForTaskManagerRows(1, MatchSubframe("http://d.com/"))); |
1019 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnySubframe())); | 1020 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnySubframe())); |
1020 } | 1021 } |
1021 ASSERT_NO_FATAL_FAILURE( | 1022 ASSERT_NO_FATAL_FAILURE( |
1022 WaitForTaskManagerRows(1, MatchTab("Cross-site iframe factory"))); | 1023 WaitForTaskManagerRows(1, MatchTab("Cross-site iframe factory"))); |
1023 | 1024 |
1024 int index = FindResourceIndex(MatchTab("Cross-site iframe factory")); | 1025 int index = FindResourceIndex(MatchTab("Cross-site iframe factory")); |
1025 std::vector<int> subframe_offsets; | 1026 std::vector<int> subframe_offsets; |
1026 if (ShouldExpectSubframes()) { | 1027 if (ShouldExpectSubframes()) { |
1027 subframe_offsets = { | 1028 subframe_offsets = { |
1028 FindResourceIndex(MatchSubframe("http://b.com/")) - index, | 1029 FindResourceIndex(MatchSubframe("http://b.com/")) - index, |
1029 FindResourceIndex(MatchSubframe("http://c.com/")) - index, | 1030 FindResourceIndex(MatchSubframe("http://c.com/")) - index, |
1030 FindResourceIndex(MatchSubframe("http://d.com/")) - index}; | 1031 FindResourceIndex(MatchSubframe("http://d.com/")) - index}; |
1031 EXPECT_THAT(subframe_offsets, testing::UnorderedElementsAre(1, 2, 3)); | 1032 EXPECT_THAT(subframe_offsets, testing::UnorderedElementsAre(1, 2, 3)); |
1032 } | 1033 } |
1033 | 1034 |
1034 // Opening a new tab should appear below the existing tab. | 1035 // Opening a new tab should appear below the existing tab. |
1035 GURL other_tab_url(embedded_test_server()->GetURL( | 1036 GURL other_tab_url(embedded_test_server()->GetURL( |
1036 "d.com", "/cross_site_iframe_factory.html?d(a(c(b)))")); | 1037 "d.com", "/cross_site_iframe_factory.html?d(a(c(b)))")); |
1037 browser()->OpenURL(content::OpenURLParams(other_tab_url, content::Referrer(), | 1038 browser()->OpenURL( |
1038 NEW_FOREGROUND_TAB, | 1039 content::OpenURLParams(other_tab_url, content::Referrer(), |
1039 ui::PAGE_TRANSITION_TYPED, false)); | 1040 WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 1041 ui::PAGE_TRANSITION_TYPED, false)); |
1040 | 1042 |
1041 ASSERT_NO_FATAL_FAILURE( | 1043 ASSERT_NO_FATAL_FAILURE( |
1042 WaitForTaskManagerRows(2, MatchTab("Cross-site iframe factory"))); | 1044 WaitForTaskManagerRows(2, MatchTab("Cross-site iframe factory"))); |
1043 if (ShouldExpectSubframes()) { | 1045 if (ShouldExpectSubframes()) { |
1044 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(6, MatchAnySubframe())); | 1046 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(6, MatchAnySubframe())); |
1045 ASSERT_NO_FATAL_FAILURE( | 1047 ASSERT_NO_FATAL_FAILURE( |
1046 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/"))); | 1048 WaitForTaskManagerRows(2, MatchSubframe("http://b.com/"))); |
1047 ASSERT_NO_FATAL_FAILURE( | 1049 ASSERT_NO_FATAL_FAILURE( |
1048 WaitForTaskManagerRows(2, MatchSubframe("http://c.com/"))); | 1050 WaitForTaskManagerRows(2, MatchSubframe("http://c.com/"))); |
1049 ASSERT_NO_FATAL_FAILURE( | 1051 ASSERT_NO_FATAL_FAILURE( |
(...skipping 28 matching lines...) Expand all Loading... |
1078 | 1080 |
1079 // Because the subframes for tab 2 are nested, their order is deterministic. | 1081 // Because the subframes for tab 2 are nested, their order is deterministic. |
1080 EXPECT_EQ("Subframe: http://a.com/", | 1082 EXPECT_EQ("Subframe: http://a.com/", |
1081 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1))); | 1083 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1))); |
1082 EXPECT_EQ("Subframe: http://c.com/", | 1084 EXPECT_EQ("Subframe: http://c.com/", |
1083 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2))); | 1085 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2))); |
1084 EXPECT_EQ("Subframe: http://b.com/", | 1086 EXPECT_EQ("Subframe: http://b.com/", |
1085 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3))); | 1087 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3))); |
1086 } | 1088 } |
1087 } | 1089 } |
OLD | NEW |