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

Side by Side Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 1777903003: Ensure the NavigationHandle's nav entry ID is updated during transfers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move fix to another CL (now cleanup only) Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/frame_host/render_frame_host_manager.h" 5 #include "content/browser/frame_host/render_frame_host_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 } 286 }
287 287
288 // If entry includes the request ID of a request that is being transferred, 288 // If entry includes the request ID of a request that is being transferred,
289 // the destination render frame will take ownership, so release ownership of 289 // the destination render frame will take ownership, so release ownership of
290 // the request. 290 // the request.
291 if (cross_site_transferring_request_.get() && 291 if (cross_site_transferring_request_.get() &&
292 cross_site_transferring_request_->request_id() == 292 cross_site_transferring_request_->request_id() ==
293 entry.transferred_global_request_id()) { 293 entry.transferred_global_request_id()) {
294 cross_site_transferring_request_->ReleaseRequest(); 294 cross_site_transferring_request_->ReleaseRequest();
295 295
296 DCHECK(transfer_navigation_handle_);
297
298 // Update the pending NavigationEntry ID on the transferring handle.
299 // TODO(creis): Make this line unnecessary by avoiding having a pending
300 // entry for transfer navigations. See https://crbug.com/495161.
301 transfer_navigation_handle_->update_entry_id_for_transfer(
302 entry.GetUniqueID());
303
296 // The navigating RenderFrameHost should take ownership of the 304 // The navigating RenderFrameHost should take ownership of the
297 // NavigationHandle that came from the transferring RenderFrameHost. 305 // NavigationHandle that came from the transferring RenderFrameHost.
298 DCHECK(transfer_navigation_handle_);
299 dest_render_frame_host->SetNavigationHandle( 306 dest_render_frame_host->SetNavigationHandle(
300 std::move(transfer_navigation_handle_)); 307 std::move(transfer_navigation_handle_));
301 } 308 }
302 DCHECK(!transfer_navigation_handle_); 309 DCHECK(!transfer_navigation_handle_);
303 310
304 return dest_render_frame_host; 311 return dest_render_frame_host;
305 } 312 }
306 313
307 void RenderFrameHostManager::Stop() { 314 void RenderFrameHostManager::Stop() {
308 render_frame_host_->Stop(); 315 render_frame_host_->Stop();
(...skipping 2231 matching lines...) Expand 10 before | Expand all | Expand 10 after
2540 } else if (pending_render_frame_host_) { 2547 } else if (pending_render_frame_host_) {
2541 send_msg(pending_render_frame_host_.get(), 2548 send_msg(pending_render_frame_host_.get(),
2542 pending_render_frame_host_->GetRoutingID(), msg); 2549 pending_render_frame_host_->GetRoutingID(), msg);
2543 } 2550 }
2544 2551
2545 msg->set_routing_id(render_frame_host_->GetRoutingID()); 2552 msg->set_routing_id(render_frame_host_->GetRoutingID());
2546 render_frame_host_->Send(msg); 2553 render_frame_host_->Send(msg);
2547 } 2554 }
2548 2555
2549 } // namespace content 2556 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698