Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: chrome/browser/extensions/process_manager_browsertest.cc

Issue 2830893002: Refactor of ExtensionNavigationThrottle (Closed)
Patch Set: \ Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 821 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 EXPECT_NE(nested_urls[i], popup->GetLastCommittedURL()); 832 EXPECT_NE(nested_urls[i], popup->GetLastCommittedURL());
833 EXPECT_FALSE(extension_origin.IsSameOriginWith( 833 EXPECT_FALSE(extension_origin.IsSameOriginWith(
834 popup->GetMainFrame()->GetLastCommittedOrigin())); 834 popup->GetMainFrame()->GetLastCommittedOrigin()));
835 EXPECT_NE("foo", GetTextContent(popup->GetMainFrame())); 835 EXPECT_NE("foo", GetTextContent(popup->GetMainFrame()));
836 836
837 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); 837 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size());
838 EXPECT_EQ(1u, pm->GetAllFrames().size()); 838 EXPECT_EQ(1u, pm->GetAllFrames().size());
839 } 839 }
840 840
841 // Navigate second subframe to each nested URL from the main frame (i.e., 841 // Navigate second subframe to each nested URL from the main frame (i.e.,
842 // from non-extension process). This should be blocked. 842 // from non-extension process). These should be canceled.
843 //
844 // TODO(alexmos): This is also temporarily allowed under PlzNavigate, because
845 // currently this particular blocking happens in
846 // ChromeContentBrowserClientExtensionsPart::ShouldAllowOpenURL, which isn't
847 // triggered below under PlzNavigate (since there'll be no transfer). Once
848 // the blob/filesystem URL checks in ExtensionNavigationThrottle are updated
849 // to apply to all frames and not just main frames, the PlzNavigate exception
850 // below can be removed. See https://crbug.com/661324.
851 for (size_t i = 0; i < arraysize(nested_urls); i++) { 843 for (size_t i = 0; i < arraysize(nested_urls); i++) {
852 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame2", nested_urls[i])); 844 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame2", nested_urls[i]));
853 content::RenderFrameHost* second_frame = ChildFrameAt(main_frame, 1); 845 content::RenderFrameHost* second_frame = ChildFrameAt(main_frame, 1);
854 if (!content::IsBrowserSideNavigationEnabled()) { 846
855 EXPECT_NE(nested_urls[i], second_frame->GetLastCommittedURL()); 847 EXPECT_NE(nested_urls[i], second_frame->GetLastCommittedURL());
856 EXPECT_FALSE(extension_origin.IsSameOriginWith( 848 EXPECT_FALSE(extension_origin.IsSameOriginWith(
857 second_frame->GetLastCommittedOrigin())); 849 second_frame->GetLastCommittedOrigin()));
858 EXPECT_NE("foo", GetTextContent(second_frame)); 850 EXPECT_NE("foo", GetTextContent(second_frame));
859 EXPECT_EQ(1u, 851 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size());
860 pm->GetRenderFrameHostsForExtension(extension->id()).size()); 852 EXPECT_EQ(1u, pm->GetAllFrames().size());
861 EXPECT_EQ(1u, pm->GetAllFrames().size()); 853
862 } else {
863 EXPECT_EQ(nested_urls[i], second_frame->GetLastCommittedURL());
864 EXPECT_EQ(extension_origin, second_frame->GetLastCommittedOrigin());
865 EXPECT_EQ("foo", GetTextContent(second_frame));
866 EXPECT_EQ(2u,
867 pm->GetRenderFrameHostsForExtension(extension->id()).size());
868 EXPECT_EQ(2u, pm->GetAllFrames().size());
869 }
870 EXPECT_TRUE( 854 EXPECT_TRUE(
871 content::NavigateIframeToURL(tab, "frame2", GURL(url::kAboutBlankURL))); 855 content::NavigateIframeToURL(tab, "frame2", GURL(url::kAboutBlankURL)));
872 } 856 }
873 } 857 }
874 858
875 // Test that navigations to blob: and filesystem: URLs with extension origins 859 // Test that navigations to blob: and filesystem: URLs with extension origins
876 // are allowed when initiated from extension processes. See 860 // are allowed when initiated from extension processes. See
877 // https://crbug.com/645028 and https://crbug.com/644426. 861 // https://crbug.com/645028 and https://crbug.com/644426.
878 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, 862 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest,
879 NestedURLNavigationsToExtensionAllowed) { 863 NestedURLNavigationsToExtensionAllowed) {
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 GURL b_url(embedded_test_server()->GetURL("b.com", "/empty.html")); 1227 GURL b_url(embedded_test_server()->GetURL("b.com", "/empty.html"));
1244 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame0", b_url)); 1228 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame0", b_url));
1245 { 1229 {
1246 content::RenderFrameHost* subframe = ChildFrameAt(main_frame, 0); 1230 content::RenderFrameHost* subframe = ChildFrameAt(main_frame, 0);
1247 EXPECT_EQ(subframe->GetProcess(), main_frame->GetProcess()); 1231 EXPECT_EQ(subframe->GetProcess(), main_frame->GetProcess());
1248 EXPECT_EQ(subframe->GetSiteInstance(), main_frame->GetSiteInstance()); 1232 EXPECT_EQ(subframe->GetSiteInstance(), main_frame->GetSiteInstance());
1249 } 1233 }
1250 } 1234 }
1251 1235
1252 } // namespace extensions 1236 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_navigation_throttle_unittest.cc ('k') | chrome/browser/extensions/window_open_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698