OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/strings/utf_string_conversions.h" | 5 #include "base/strings/utf_string_conversions.h" |
6 #include "chrome/browser/extensions/extension_apitest.h" | 6 #include "chrome/browser/extensions/extension_apitest.h" |
7 #include "chrome/browser/extensions/extension_host.h" | 7 #include "chrome/browser/extensions/extension_host.h" |
8 #include "chrome/browser/extensions/extension_process_manager.h" | |
9 #include "chrome/browser/extensions/extension_service.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
10 #include "chrome/browser/extensions/extension_system.h" | 9 #include "chrome/browser/extensions/extension_system.h" |
11 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/profiles/profile_manager.h" | 11 #include "chrome/browser/profiles/profile_manager.h" |
13 #include "chrome/browser/ui/browser.h" | 12 #include "chrome/browser/ui/browser.h" |
14 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 13 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
15 #include "chrome/common/url_constants.h" | 14 #include "chrome/common/url_constants.h" |
16 #include "chrome/test/base/ui_test_utils.h" | 15 #include "chrome/test/base/ui_test_utils.h" |
17 #include "content/public/browser/render_process_host.h" | 16 #include "content/public/browser/render_process_host.h" |
18 #include "content/public/browser/render_view_host.h" | 17 #include "content/public/browser/render_view_host.h" |
19 #include "content/public/browser/site_instance.h" | 18 #include "content/public/browser/site_instance.h" |
20 #include "content/public/browser/web_contents.h" | 19 #include "content/public/browser/web_contents.h" |
| 20 #include "extensions/browser/process_manager.h" |
21 #include "extensions/common/switches.h" | 21 #include "extensions/common/switches.h" |
22 #include "net/dns/mock_host_resolver.h" | 22 #include "net/dns/mock_host_resolver.h" |
23 #include "net/test/embedded_test_server/embedded_test_server.h" | 23 #include "net/test/embedded_test_server/embedded_test_server.h" |
24 | 24 |
25 using content::NavigationController; | 25 using content::NavigationController; |
26 using content::WebContents; | 26 using content::WebContents; |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
30 class ProcessManagementTest : public ExtensionBrowserTest { | 30 class ProcessManagementTest : public ExtensionBrowserTest { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 browser()->tab_strip_model()->GetWebContentsAt(5)->GetRenderProcessHost(); | 133 browser()->tab_strip_model()->GetWebContentsAt(5)->GetRenderProcessHost(); |
134 content::RenderProcessHost* hosted2_host = | 134 content::RenderProcessHost* hosted2_host = |
135 browser()->tab_strip_model()->GetWebContentsAt(6)->GetRenderProcessHost(); | 135 browser()->tab_strip_model()->GetWebContentsAt(6)->GetRenderProcessHost(); |
136 content::RenderProcessHost* web2_host = | 136 content::RenderProcessHost* web2_host = |
137 browser()->tab_strip_model()->GetWebContentsAt(7)->GetRenderProcessHost(); | 137 browser()->tab_strip_model()->GetWebContentsAt(7)->GetRenderProcessHost(); |
138 | 138 |
139 content::RenderProcessHost* second_isolated1_host = | 139 content::RenderProcessHost* second_isolated1_host = |
140 browser()->tab_strip_model()->GetWebContentsAt(8)->GetRenderProcessHost(); | 140 browser()->tab_strip_model()->GetWebContentsAt(8)->GetRenderProcessHost(); |
141 | 141 |
142 // Get extension processes. | 142 // Get extension processes. |
143 ExtensionProcessManager* process_manager = | 143 extensions::ProcessManager* process_manager = |
144 extensions::ExtensionSystem::Get(browser()->profile())-> | 144 extensions::ExtensionSystem::Get(browser()->profile())-> |
145 process_manager(); | 145 process_manager(); |
146 content::RenderProcessHost* extension1_host = | 146 content::RenderProcessHost* extension1_host = |
147 process_manager->GetSiteInstanceForURL(extension1_url)->GetProcess(); | 147 process_manager->GetSiteInstanceForURL(extension1_url)->GetProcess(); |
148 content::RenderProcessHost* extension2_host = | 148 content::RenderProcessHost* extension2_host = |
149 process_manager->GetSiteInstanceForURL(extension2_url)->GetProcess(); | 149 process_manager->GetSiteInstanceForURL(extension2_url)->GetProcess(); |
150 | 150 |
151 // An isolated app only shares with other instances of itself, not other | 151 // An isolated app only shares with other instances of itself, not other |
152 // isolated apps or anything else. | 152 // isolated apps or anything else. |
153 EXPECT_EQ(isolated1_host, second_isolated1_host); | 153 EXPECT_EQ(isolated1_host, second_isolated1_host); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 ui_test_utils::NavigateToURLWithDisposition( | 225 ui_test_utils::NavigateToURLWithDisposition( |
226 browser(), base_url.Resolve("isolated_apps/app1/main.html"), | 226 browser(), base_url.Resolve("isolated_apps/app1/main.html"), |
227 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 227 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
228 | 228 |
229 ui_test_utils::NavigateToURLWithDisposition( | 229 ui_test_utils::NavigateToURLWithDisposition( |
230 browser(), base_url.Resolve("api_test/management/test/basics.html"), | 230 browser(), base_url.Resolve("api_test/management/test/basics.html"), |
231 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 231 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
232 | 232 |
233 std::set<int> process_ids; | 233 std::set<int> process_ids; |
234 Profile* profile = browser()->profile(); | 234 Profile* profile = browser()->profile(); |
235 ExtensionProcessManager* epm = extensions::ExtensionSystem::Get(profile)-> | 235 extensions::ProcessManager* epm = extensions::ExtensionSystem::Get(profile)-> |
236 process_manager(); | 236 process_manager(); |
237 for (ExtensionProcessManager::const_iterator iter = | 237 for (extensions::ProcessManager::const_iterator iter = |
238 epm->background_hosts().begin(); | 238 epm->background_hosts().begin(); |
239 iter != epm->background_hosts().end(); ++iter) { | 239 iter != epm->background_hosts().end(); ++iter) { |
240 process_ids.insert((*iter)->render_process_host()->GetID()); | 240 process_ids.insert((*iter)->render_process_host()->GetID()); |
241 } | 241 } |
242 | 242 |
243 // We've loaded 5 extensions with background pages, 1 extension without | 243 // We've loaded 5 extensions with background pages, 1 extension without |
244 // background page, and one isolated app. We expect only 2 unique processes | 244 // background page, and one isolated app. We expect only 2 unique processes |
245 // hosting those extensions. | 245 // hosting those extensions. |
246 ExtensionService* service = | 246 ExtensionService* service = |
247 extensions::ExtensionSystem::Get(profile)->extension_service(); | 247 extensions::ExtensionSystem::Get(profile)->extension_service(); |
248 | 248 |
249 EXPECT_GE((size_t) 6, service->process_map()->size()); | 249 EXPECT_GE((size_t) 6, service->process_map()->size()); |
250 EXPECT_EQ((size_t) 2, process_ids.size()); | 250 EXPECT_EQ((size_t) 2, process_ids.size()); |
251 } | 251 } |
OLD | NEW |