OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
8 #include "chrome/browser/extensions/extension_apitest.h" | 8 #include "chrome/browser/extensions/extension_apitest.h" |
9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 const Extension* app = | 616 const Extension* app = |
617 LoadExtension(test_data_dir_.AppendASCII("app_process")); | 617 LoadExtension(test_data_dir_.AppendASCII("app_process")); |
618 ASSERT_TRUE(app); | 618 ASSERT_TRUE(app); |
619 | 619 |
620 ui_test_utils::NavigateToURL(browser(), | 620 ui_test_utils::NavigateToURL(browser(), |
621 base_url.Resolve("path3/container.html")); | 621 base_url.Resolve("path3/container.html")); |
622 EXPECT_FALSE(process_map->Contains( | 622 EXPECT_FALSE(process_map->Contains( |
623 browser()->tab_strip_model()->GetWebContentsAt(0)-> | 623 browser()->tab_strip_model()->GetWebContentsAt(0)-> |
624 GetRenderProcessHost()->GetID())); | 624 GetRenderProcessHost()->GetID())); |
625 | 625 |
626 const BrowserList* active_browser_list = | 626 const BrowserList* active_browser_list = BrowserList::GetInstance(); |
627 BrowserList::GetInstance(chrome::GetActiveDesktop()); | |
628 EXPECT_EQ(2U, active_browser_list->size()); | 627 EXPECT_EQ(2U, active_browser_list->size()); |
629 content::WebContents* popup_contents = | 628 content::WebContents* popup_contents = |
630 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); | 629 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); |
631 content::WaitForLoadStop(popup_contents); | 630 content::WaitForLoadStop(popup_contents); |
632 | 631 |
633 // Popup window should be in the app's process. | 632 // Popup window should be in the app's process. |
634 RenderViewHost* popup_host = popup_contents->GetRenderViewHost(); | 633 RenderViewHost* popup_host = popup_contents->GetRenderViewHost(); |
635 EXPECT_TRUE(process_map->Contains(popup_host->GetProcess()->GetID())); | 634 EXPECT_TRUE(process_map->Contains(popup_host->GetProcess()->GetID())); |
636 } | 635 } |
637 | 636 |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 ASSERT_TRUE(app); | 761 ASSERT_TRUE(app); |
763 | 762 |
764 ui_test_utils::NavigateToURL(browser(), | 763 ui_test_utils::NavigateToURL(browser(), |
765 base_url.Resolve("path1/container.html")); | 764 base_url.Resolve("path1/container.html")); |
766 content::RenderProcessHost* process = | 765 content::RenderProcessHost* process = |
767 browser()->tab_strip_model()->GetWebContentsAt(0)->GetRenderProcessHost(); | 766 browser()->tab_strip_model()->GetWebContentsAt(0)->GetRenderProcessHost(); |
768 EXPECT_TRUE(process_map->Contains(process->GetID())); | 767 EXPECT_TRUE(process_map->Contains(process->GetID())); |
769 | 768 |
770 // Popup window should be in the app's process if site isolation is off; | 769 // Popup window should be in the app's process if site isolation is off; |
771 // otherwise they should be in different processes. | 770 // otherwise they should be in different processes. |
772 const BrowserList* active_browser_list = | 771 const BrowserList* active_browser_list = BrowserList::GetInstance(); |
773 BrowserList::GetInstance(chrome::GetActiveDesktop()); | |
774 EXPECT_EQ(2U, active_browser_list->size()); | 772 EXPECT_EQ(2U, active_browser_list->size()); |
775 content::WebContents* popup_contents = | 773 content::WebContents* popup_contents = |
776 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); | 774 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); |
777 content::WaitForLoadStop(popup_contents); | 775 content::WaitForLoadStop(popup_contents); |
778 | 776 |
779 bool should_be_in_same_process = !content::AreAllSitesIsolatedForTesting(); | 777 bool should_be_in_same_process = !content::AreAllSitesIsolatedForTesting(); |
780 content::RenderProcessHost* popup_process = | 778 content::RenderProcessHost* popup_process = |
781 popup_contents->GetRenderProcessHost(); | 779 popup_contents->GetRenderProcessHost(); |
782 EXPECT_EQ(should_be_in_same_process, process == popup_process); | 780 EXPECT_EQ(should_be_in_same_process, process == popup_process); |
783 EXPECT_EQ(should_be_in_same_process, | 781 EXPECT_EQ(should_be_in_same_process, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 LoadExtension(test_data_dir_.AppendASCII("app_process")); | 844 LoadExtension(test_data_dir_.AppendASCII("app_process")); |
847 ASSERT_TRUE(app); | 845 ASSERT_TRUE(app); |
848 | 846 |
849 ui_test_utils::NavigateToURL(browser(), | 847 ui_test_utils::NavigateToURL(browser(), |
850 base_url.Resolve("path1/iframe.html")); | 848 base_url.Resolve("path1/iframe.html")); |
851 content::SiteInstance* app_instance = | 849 content::SiteInstance* app_instance = |
852 browser()->tab_strip_model()->GetWebContentsAt(0)->GetSiteInstance(); | 850 browser()->tab_strip_model()->GetWebContentsAt(0)->GetSiteInstance(); |
853 EXPECT_TRUE(process_map->Contains(app_instance->GetProcess()->GetID())); | 851 EXPECT_TRUE(process_map->Contains(app_instance->GetProcess()->GetID())); |
854 | 852 |
855 // Popup window should be in the app's process. | 853 // Popup window should be in the app's process. |
856 const BrowserList* active_browser_list = | 854 const BrowserList* active_browser_list = BrowserList::GetInstance(); |
857 BrowserList::GetInstance(chrome::GetActiveDesktop()); | |
858 EXPECT_EQ(2U, active_browser_list->size()); | 855 EXPECT_EQ(2U, active_browser_list->size()); |
859 content::WebContents* popup_contents = | 856 content::WebContents* popup_contents = |
860 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); | 857 active_browser_list->get(1)->tab_strip_model()->GetActiveWebContents(); |
861 content::WaitForLoadStop(popup_contents); | 858 content::WaitForLoadStop(popup_contents); |
862 | 859 |
863 SiteInstance* popup_instance = popup_contents->GetSiteInstance(); | 860 SiteInstance* popup_instance = popup_contents->GetSiteInstance(); |
864 EXPECT_EQ(app_instance, popup_instance); | 861 EXPECT_EQ(app_instance, popup_instance); |
865 | 862 |
866 // Navigate the popup to another process outside the app. | 863 // Navigate the popup to another process outside the app. |
867 GURL non_app_url(base_url.Resolve("path3/empty.html")); | 864 GURL non_app_url(base_url.Resolve("path3/empty.html")); |
868 ui_test_utils::NavigateToURL(active_browser_list->get(1), non_app_url); | 865 ui_test_utils::NavigateToURL(active_browser_list->get(1), non_app_url); |
869 SiteInstance* new_instance = popup_contents->GetSiteInstance(); | 866 SiteInstance* new_instance = popup_contents->GetSiteInstance(); |
870 EXPECT_NE(app_instance, new_instance); | 867 EXPECT_NE(app_instance, new_instance); |
871 | 868 |
872 // It should still be in the same BrowsingInstance, allowing postMessage to | 869 // It should still be in the same BrowsingInstance, allowing postMessage to |
873 // work. | 870 // work. |
874 EXPECT_TRUE(app_instance->IsRelatedSiteInstance(new_instance)); | 871 EXPECT_TRUE(app_instance->IsRelatedSiteInstance(new_instance)); |
875 } | 872 } |
OLD | NEW |