| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 882 browser()->tab_strip_model()->GetActiveWebContents(); | 882 browser()->tab_strip_model()->GetActiveWebContents(); |
| 883 | 883 |
| 884 content::RenderFrameHost* main_frame = tab->GetMainFrame(); | 884 content::RenderFrameHost* main_frame = tab->GetMainFrame(); |
| 885 | 885 |
| 886 // Open a new web popup from the extension tab. The popup should go into a | 886 // Open a new web popup from the extension tab. The popup should go into a |
| 887 // new process. | 887 // new process. |
| 888 GURL popup_url(embedded_test_server()->GetURL("/empty.html")); | 888 GURL popup_url(embedded_test_server()->GetURL("/empty.html")); |
| 889 content::WebContents* popup = OpenPopup(main_frame, popup_url); | 889 content::WebContents* popup = OpenPopup(main_frame, popup_url); |
| 890 EXPECT_NE(popup, tab); | 890 EXPECT_NE(popup, tab); |
| 891 ASSERT_EQ(2, browser()->tab_strip_model()->count()); | 891 ASSERT_EQ(2, browser()->tab_strip_model()->count()); |
| 892 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 893 EXPECT_EQ(1u, pm->GetAllFrames().size()); | |
| 894 EXPECT_NE(popup->GetRenderProcessHost(), main_frame->GetProcess()); | 892 EXPECT_NE(popup->GetRenderProcessHost(), main_frame->GetProcess()); |
| 895 | 893 |
| 896 // Ensure the popup's window.opener is defined. | 894 // Ensure the popup's window.opener is defined. |
| 897 bool is_opener_defined = false; | 895 bool is_opener_defined = false; |
| 898 EXPECT_TRUE(ExecuteScriptAndExtractBool( | 896 EXPECT_TRUE(ExecuteScriptAndExtractBool( |
| 899 popup, "window.domAutomationController.send(!!window.opener)", | 897 popup, "window.domAutomationController.send(!!window.opener)", |
| 900 &is_opener_defined)); | 898 &is_opener_defined)); |
| 901 EXPECT_TRUE(is_opener_defined); | 899 EXPECT_TRUE(is_opener_defined); |
| 902 | 900 |
| 903 // Verify that postMessage to window.opener works. | 901 // Verify that postMessage to window.opener works. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 | 934 |
| 937 content::RenderFrameHost* main_frame = tab->GetMainFrame(); | 935 content::RenderFrameHost* main_frame = tab->GetMainFrame(); |
| 938 content::RenderFrameHost* extension_frame = ChildFrameAt(main_frame, 0); | 936 content::RenderFrameHost* extension_frame = ChildFrameAt(main_frame, 0); |
| 939 | 937 |
| 940 // Open a new web popup from extension frame. The popup should go into main | 938 // Open a new web popup from extension frame. The popup should go into main |
| 941 // frame's web process. | 939 // frame's web process. |
| 942 GURL popup_url(embedded_test_server()->GetURL("/empty.html")); | 940 GURL popup_url(embedded_test_server()->GetURL("/empty.html")); |
| 943 content::WebContents* popup = OpenPopup(extension_frame, popup_url); | 941 content::WebContents* popup = OpenPopup(extension_frame, popup_url); |
| 944 EXPECT_NE(popup, tab); | 942 EXPECT_NE(popup, tab); |
| 945 ASSERT_EQ(2, browser()->tab_strip_model()->count()); | 943 ASSERT_EQ(2, browser()->tab_strip_model()->count()); |
| 946 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 947 EXPECT_EQ(1u, pm->GetAllFrames().size()); | |
| 948 EXPECT_NE(popup->GetRenderProcessHost(), extension_frame->GetProcess()); | 944 EXPECT_NE(popup->GetRenderProcessHost(), extension_frame->GetProcess()); |
| 949 EXPECT_EQ(popup->GetRenderProcessHost(), main_frame->GetProcess()); | 945 EXPECT_EQ(popup->GetRenderProcessHost(), main_frame->GetProcess()); |
| 950 | 946 |
| 951 // Ensure the popup's window.opener is defined. | 947 // Ensure the popup's window.opener is defined. |
| 952 bool is_opener_defined = false; | 948 bool is_opener_defined = false; |
| 953 EXPECT_TRUE(ExecuteScriptAndExtractBool( | 949 EXPECT_TRUE(ExecuteScriptAndExtractBool( |
| 954 popup, "window.domAutomationController.send(!!window.opener)", | 950 popup, "window.domAutomationController.send(!!window.opener)", |
| 955 &is_opener_defined)); | 951 &is_opener_defined)); |
| 956 EXPECT_TRUE(is_opener_defined); | 952 EXPECT_TRUE(is_opener_defined); |
| 957 | 953 |
| 958 // Verify that postMessage to window.opener works. | 954 // Verify that postMessage to window.opener works. |
| 959 VerifyPostMessageToOpener(popup->GetMainFrame(), extension_frame); | 955 VerifyPostMessageToOpener(popup->GetMainFrame(), extension_frame); |
| 960 } | 956 } |
| 961 | 957 |
| 962 } // namespace extensions | 958 } // namespace extensions |
| OLD | NEW |