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

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

Issue 118443008: Support cross-process navigations in a single subframe RenderFrameHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor cleanup Created 7 years 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
Index: content/browser/renderer_host/render_view_host_impl.cc
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 7577b59faa4e3ac31484e737f3c78d517c6b0634..f73d8c30bb1fc3f8adc211454c594ffeaf2dfdac 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -702,13 +702,19 @@ void RenderViewHostImpl::OnCrossSiteResponse(
PageTransition page_transition,
int64 frame_id,
bool should_replace_current_entry) {
- RenderViewHostDelegate::RendererManagement* manager =
- delegate_->GetRendererManagementDelegate();
- if (manager) {
- manager->OnCrossSiteResponse(this, global_request_id, is_transfer,
- transfer_url_chain, referrer, page_transition,
- frame_id, should_replace_current_entry);
+ FrameTreeNode* node = NULL;
+ if (frame_id != -1 &&
+ CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess)) {
+ node = delegate_->GetFrameTree()->FindByFrameID(frame_id);
}
+
+ // TODO(creis): We should always be able to get the RFHM for a frame_id,
+ // but today the frame_id is -1 for the main frame.
+ RenderViewHostDelegate::RendererManagement* manager = node ?
+ node->render_manager() : delegate_->GetRendererManagementDelegate();
+ manager->OnCrossSiteResponse(this, global_request_id, is_transfer,
+ transfer_url_chain, referrer, page_transition,
+ frame_id, should_replace_current_entry);
}
void RenderViewHostImpl::SuppressDialogsUntilSwapOut() {

Powered by Google App Engine
This is Rietveld 408576698