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

Unified Diff: content/browser/renderer_host/render_process_host.cc

Issue 8033001: Delegate decision what site instances can be rendered in what process to chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_process_host.h ('k') | content/browser/site_instance.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_process_host.cc
diff --git a/content/browser/renderer_host/render_process_host.cc b/content/browser/renderer_host/render_process_host.cc
index 958a30dac1a8ade2fc7dc2ac4609b5bb52e24748..8fc7764e68448afcf665e291356d21491bd7a62e 100644
--- a/content/browser/renderer_host/render_process_host.cc
+++ b/content/browser/renderer_host/render_process_host.cc
@@ -9,7 +9,10 @@
#include "base/sys_info.h"
#include "content/browser/browser_thread.h"
#include "content/browser/child_process_security_policy.h"
+#include "content/browser/content_browser_client.h"
+#include "content/browser/webui/web_ui_factory.h"
#include "content/common/child_process_info.h"
+#include "content/common/content_client.h"
#include "content/common/content_constants.h"
#include "content/common/content_switches.h"
#include "content/common/notification_service.h"
@@ -64,19 +67,15 @@ size_t GetMaxRendererProcessCount() {
// associated with the given browser context.
static bool IsSuitableHost(RenderProcessHost* host,
content::BrowserContext* browser_context,
- RenderProcessHost::Type type) {
+ const GURL& site_url) {
if (host->browser_context() != browser_context)
return false;
- RenderProcessHost::Type host_type = RenderProcessHost::TYPE_NORMAL;
- if (ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings(host->id()))
- host_type = RenderProcessHost::TYPE_WEBUI;
- if (ChildProcessSecurityPolicy::GetInstance()->
- HasExtensionBindings(host->id()) ||
- host->is_extension_process())
- host_type = RenderProcessHost::TYPE_EXTENSION;
+ if (ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings(host->id()) !=
+ content::WebUIFactory::Get()->HasWebUIScheme(site_url))
+ return false;
- return host_type == type;
+ return content::GetContentClient()->browser()->IsSuitableHost(host, site_url);
}
// the global list of all renderer processes
@@ -219,7 +218,8 @@ bool RenderProcessHost::ShouldTryToUseExistingProcessHost() {
// static
RenderProcessHost* RenderProcessHost::GetExistingProcessHost(
- content::BrowserContext* browser_context, Type type) {
+ content::BrowserContext* browser_context,
+ const GURL& site_url) {
// First figure out which existing renderers we can use.
std::vector<RenderProcessHost*> suitable_renderers;
suitable_renderers.reserve(all_hosts.size());
@@ -227,7 +227,7 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost(
iterator iter(AllHostsIterator());
while (!iter.IsAtEnd()) {
if (run_renderer_in_process() ||
- IsSuitableHost(iter.GetCurrentValue(), browser_context, type))
+ IsSuitableHost(iter.GetCurrentValue(), browser_context, site_url))
suitable_renderers.push_back(iter.GetCurrentValue());
iter.Advance();
« no previous file with comments | « content/browser/renderer_host/render_process_host.h ('k') | content/browser/site_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698