Index: chrome/browser/extensions/process_manager_browsertest.cc |
diff --git a/chrome/browser/extensions/process_manager_browsertest.cc b/chrome/browser/extensions/process_manager_browsertest.cc |
index 980318c77b803ca623a644153d87d3799c12e521..d42af16dc59fb01318efcfcce28ba98fc5cf30e2 100644 |
--- a/chrome/browser/extensions/process_manager_browsertest.cc |
+++ b/chrome/browser/extensions/process_manager_browsertest.cc |
@@ -157,6 +157,37 @@ IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, HttpHostMatchingExtensionId) { |
EXPECT_TRUE(pm->GetBackgroundHostForExtension(extension->id())); |
} |
+IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, NoBackgroundPage) { |
ncarter (slow)
2015/11/05 20:03:23
I uploaded a test that works through some of the s
|
+ ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
+ |
+ ProcessManager* pm = ProcessManager::Get(profile()); |
+ const Extension* extension = |
+ LoadExtension(test_data_dir_.AppendASCII("api_test") |
+ .AppendASCII("messaging") |
+ .AppendASCII("connect_nobackground")); |
+ ASSERT_TRUE(extension); |
+ |
+ // The extension has no background page. |
+ EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
+ |
+ // Start in a non-extension process, then navigate to an extension process. |
+ ui_test_utils::NavigateToURL(browser(), |
+ embedded_test_server()->GetURL("/empty.html")); |
+ EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
+ |
+ const GURL extension_url = extension->url().Resolve("manifest.json"); |
+ ui_test_utils::NavigateToURL(browser(), extension_url); |
ncarter (slow)
2015/11/05 20:03:23
Your current patch depends on RenderFrameHostChang
robwu
2015/11/12 00:33:58
I have replaced RenderFrameHostChanged with DidNav
|
+ EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
+ |
+ ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
+ EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
+ |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), extension_url, NEW_FOREGROUND_TAB, |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
+} |
+ |
// Verify correct keepalive count behavior on network request events. |
// Regression test for http://crbug.com/535716. |
IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, KeepaliveOnNetworkRequest) { |