Index: content/browser/frame_host/render_frame_host_manager_browsertest.cc |
diff --git a/content/browser/frame_host/render_frame_host_manager_browsertest.cc b/content/browser/frame_host/render_frame_host_manager_browsertest.cc |
index 18b5a68784c3e95a39efbed16264505a175c9dec..b2d649399dcb1139b03fdf71038a1ab0bc090456 100644 |
--- a/content/browser/frame_host/render_frame_host_manager_browsertest.cc |
+++ b/content/browser/frame_host/render_frame_host_manager_browsertest.cc |
@@ -1473,4 +1473,27 @@ IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, WebUIGetsBindings) { |
new_web_contents->GetRenderViewHost()->GetEnabledBindings()); |
} |
+// crbug.com/424526 |
+// The test loads a WebUI page in rocess-per-tab mode, then navigates to a blank |
+// page and then to a regular page. The bug reproduces if blank page is visited |
+// in between WebUI and regular page. |
+IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, |
+ ForceSwapAfterWebUIBindings) { |
+ CommandLine::ForCurrentProcess()->AppendSwitch(switches::kProcessPerTab); |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ const GURL web_ui_url(std::string(kChromeUIScheme) + "://" + |
+ std::string(kChromeUIGpuHost)); |
+ NavigateToURL(shell(), web_ui_url); |
+ EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( |
+ shell()->web_contents()->GetRenderProcessHost()->GetID())); |
+ |
+ NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
+ |
+ GURL regular_page_url(test_server()->GetURL("files/title2.html")); |
+ NavigateToURL(shell(), regular_page_url); |
+ EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( |
+ shell()->web_contents()->GetRenderProcessHost()->GetID())); |
+} |
+ |
} // namespace content |