Chromium Code Reviews| 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 "extensions/browser/process_manager.h" | 5 #include "extensions/browser/process_manager.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/browser_action_test_util.h" | 7 #include "chrome/browser/extensions/browser_action_test_util.h" |
| 8 #include "chrome/browser/extensions/extension_browsertest.h" | 8 #include "chrome/browser/extensions/extension_browsertest.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 150 content::WebContents* extension_web_contents = | 150 content::WebContents* extension_web_contents = |
| 151 content::WebContents::FromRenderFrameHost( | 151 content::WebContents::FromRenderFrameHost( |
| 152 *pm->GetRenderFrameHostsForExtension(extension->id()).begin()); | 152 *pm->GetRenderFrameHostsForExtension(extension->id()).begin()); |
| 153 EXPECT_TRUE(extension_web_contents->GetSiteInstance() != | 153 EXPECT_TRUE(extension_web_contents->GetSiteInstance() != |
| 154 tab_web_contents->GetSiteInstance()); | 154 tab_web_contents->GetSiteInstance()); |
| 155 EXPECT_TRUE(pm->GetSiteInstanceForURL(extension->url()) != | 155 EXPECT_TRUE(pm->GetSiteInstanceForURL(extension->url()) != |
| 156 tab_web_contents->GetSiteInstance()); | 156 tab_web_contents->GetSiteInstance()); |
| 157 EXPECT_TRUE(pm->GetBackgroundHostForExtension(extension->id())); | 157 EXPECT_TRUE(pm->GetBackgroundHostForExtension(extension->id())); |
| 158 } | 158 } |
| 159 | 159 |
| 160 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
| |
| 161 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 162 | |
| 163 ProcessManager* pm = ProcessManager::Get(profile()); | |
| 164 const Extension* extension = | |
| 165 LoadExtension(test_data_dir_.AppendASCII("api_test") | |
| 166 .AppendASCII("messaging") | |
| 167 .AppendASCII("connect_nobackground")); | |
| 168 ASSERT_TRUE(extension); | |
| 169 | |
| 170 // The extension has no background page. | |
| 171 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 172 | |
| 173 // Start in a non-extension process, then navigate to an extension process. | |
| 174 ui_test_utils::NavigateToURL(browser(), | |
| 175 embedded_test_server()->GetURL("/empty.html")); | |
| 176 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 177 | |
| 178 const GURL extension_url = extension->url().Resolve("manifest.json"); | |
| 179 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
| |
| 180 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 181 | |
| 182 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); | |
| 183 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 184 | |
| 185 ui_test_utils::NavigateToURLWithDisposition( | |
| 186 browser(), extension_url, NEW_FOREGROUND_TAB, | |
| 187 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | |
| 188 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | |
| 189 } | |
| 190 | |
| 160 // Verify correct keepalive count behavior on network request events. | 191 // Verify correct keepalive count behavior on network request events. |
| 161 // Regression test for http://crbug.com/535716. | 192 // Regression test for http://crbug.com/535716. |
| 162 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, KeepaliveOnNetworkRequest) { | 193 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, KeepaliveOnNetworkRequest) { |
| 163 // Load an extension with a lazy background page. | 194 // Load an extension with a lazy background page. |
| 164 scoped_refptr<const Extension> extension = | 195 scoped_refptr<const Extension> extension = |
| 165 LoadExtension(test_data_dir_.AppendASCII("api_test") | 196 LoadExtension(test_data_dir_.AppendASCII("api_test") |
| 166 .AppendASCII("lazy_background_page") | 197 .AppendASCII("lazy_background_page") |
| 167 .AppendASCII("broadcast_event")); | 198 .AppendASCII("broadcast_event")); |
| 168 ASSERT_TRUE(extension.get()); | 199 ASSERT_TRUE(extension.get()); |
| 169 | 200 |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 187 pm->OnNetworkRequestDone(frame_host, 1); | 218 pm->OnNetworkRequestDone(frame_host, 1); |
| 188 EXPECT_EQ(baseline_keepalive, pm->GetLazyKeepaliveCount(extension.get())); | 219 EXPECT_EQ(baseline_keepalive, pm->GetLazyKeepaliveCount(extension.get())); |
| 189 | 220 |
| 190 // Simulate only a request completion for this ID and ensure it doesn't result | 221 // Simulate only a request completion for this ID and ensure it doesn't result |
| 191 // in keepalive decrement. | 222 // in keepalive decrement. |
| 192 pm->OnNetworkRequestDone(frame_host, 2); | 223 pm->OnNetworkRequestDone(frame_host, 2); |
| 193 EXPECT_EQ(baseline_keepalive, pm->GetLazyKeepaliveCount(extension.get())); | 224 EXPECT_EQ(baseline_keepalive, pm->GetLazyKeepaliveCount(extension.get())); |
| 194 } | 225 } |
| 195 | 226 |
| 196 } // namespace extensions | 227 } // namespace extensions |
| OLD | NEW |