Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 3c1526682498c7356cdf5601f31cba94d9534be8..8f5089c793b20406e58a68631f57030e2e926d65 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1118,6 +1118,17 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) { |
// In case LoadRequest failed before DidCreateDataSource was called. |
pending_navigation_params_.reset(); |
+ |
+ // Check if all RenderViewImpls are displaying a page from the same host, and |
+ // update RenderThreadImpl's view on that. If this is the only RenderViewImpl, |
+ // the common host is this view's host. If there are many, check if this one |
+ // shares the common host of the other RenderViewImpls. It's ok to not detect |
+ // some cases where the RenderViewImpls share a common host. |
Charlie Reis
2012/08/16 16:22:56
This isn't safe. You'll miss renderer-initiated n
marja
2012/08/21 15:21:15
Changed this to do the work in RenderViewImpl::did
|
+ RenderThreadImpl* render_thread_impl = RenderThreadImpl::current(); |
+ if (g_view_map.Get().size() == 1) |
+ render_thread_impl->SetCommonHost(params.url.host()); |
+ else if (params.url.host() != render_thread_impl->CommonHost()) |
+ render_thread_impl->SetCommonHost(std::string()); |
} |
bool RenderViewImpl::IsBackForwardToStaleEntry( |