| Index: content/browser/renderer_host/render_process_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
| index a46af2af4ebfff4cbbf1e96d196e2a6108ce963e..9362d041514d3d20ff6ce5fb5fd0c43c94cb8062 100644
|
| --- a/content/browser/renderer_host/render_process_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_process_host_impl.cc
|
| @@ -1454,6 +1454,17 @@ mojom::Renderer* RenderProcessHostImpl::GetRendererInterface() {
|
| return renderer_interface_.get();
|
| }
|
|
|
| +void RenderProcessHostImpl::SetIsNeverSuitableForReuse() {
|
| + is_never_suitable_for_reuse_ = true;
|
| +}
|
| +
|
| +bool RenderProcessHostImpl::MayReuseHost() {
|
| + if (is_never_suitable_for_reuse_)
|
| + return false;
|
| +
|
| + return GetContentClient()->browser()->MayReuseHost(this);
|
| +}
|
| +
|
| mojom::RouteProvider* RenderProcessHostImpl::GetRemoteRouteProvider() {
|
| return remote_route_provider_.get();
|
| }
|
| @@ -2516,7 +2527,7 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost(
|
|
|
| iterator iter(AllHostsIterator());
|
| while (!iter.IsAtEnd()) {
|
| - if (GetContentClient()->browser()->MayReuseHost(iter.GetCurrentValue()) &&
|
| + if (iter.GetCurrentValue()->MayReuseHost() &&
|
| RenderProcessHostImpl::IsSuitableHost(iter.GetCurrentValue(),
|
| browser_context, site_url)) {
|
| suitable_renderers.push_back(iter.GetCurrentValue());
|
| @@ -2572,7 +2583,7 @@ RenderProcessHost* RenderProcessHostImpl::GetProcessHostForSite(
|
| std::string site =
|
| SiteInstance::GetSiteForURL(browser_context, url).possibly_invalid_spec();
|
| RenderProcessHost* host = map->FindProcess(site);
|
| - if (host && (!GetContentClient()->browser()->MayReuseHost(host) ||
|
| + if (host && (!host->MayReuseHost() ||
|
| !IsSuitableHost(host, browser_context, url))) {
|
| // The registered process does not have an appropriate set of bindings for
|
| // the url. Remove it from the map so we can register a better one.
|
|
|