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

Side by Side Diff: content/browser/renderer_host/resource_dispatcher_host.cc

Issue 6319001: Support window.opener after a process swap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unload; chrome dependency in RenderWidget. Created 9 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "content/browser/renderer_host/resource_dispatcher_host.h" 7 #include "content/browser/renderer_host/resource_dispatcher_host.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 IPC_BEGIN_MESSAGE_MAP_EX(ResourceDispatcherHost, message, *message_was_ok) 330 IPC_BEGIN_MESSAGE_MAP_EX(ResourceDispatcherHost, message, *message_was_ok)
331 IPC_MESSAGE_HANDLER(ResourceHostMsg_RequestResource, OnRequestResource) 331 IPC_MESSAGE_HANDLER(ResourceHostMsg_RequestResource, OnRequestResource)
332 IPC_MESSAGE_HANDLER_DELAY_REPLY(ResourceHostMsg_SyncLoad, OnSyncLoad) 332 IPC_MESSAGE_HANDLER_DELAY_REPLY(ResourceHostMsg_SyncLoad, OnSyncLoad)
333 IPC_MESSAGE_HANDLER(ResourceHostMsg_ReleaseDownloadedFile, 333 IPC_MESSAGE_HANDLER(ResourceHostMsg_ReleaseDownloadedFile,
334 OnReleaseDownloadedFile) 334 OnReleaseDownloadedFile)
335 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataReceived_ACK, OnDataReceivedACK) 335 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataReceived_ACK, OnDataReceivedACK)
336 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataDownloaded_ACK, OnDataDownloadedACK) 336 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataDownloaded_ACK, OnDataDownloadedACK)
337 IPC_MESSAGE_HANDLER(ResourceHostMsg_UploadProgress_ACK, OnUploadProgressACK) 337 IPC_MESSAGE_HANDLER(ResourceHostMsg_UploadProgress_ACK, OnUploadProgressACK)
338 IPC_MESSAGE_HANDLER(ResourceHostMsg_CancelRequest, OnCancelRequest) 338 IPC_MESSAGE_HANDLER(ResourceHostMsg_CancelRequest, OnCancelRequest)
339 IPC_MESSAGE_HANDLER(ResourceHostMsg_FollowRedirect, OnFollowRedirect) 339 IPC_MESSAGE_HANDLER(ResourceHostMsg_FollowRedirect, OnFollowRedirect)
340 IPC_MESSAGE_HANDLER(ViewHostMsg_ClosePage_ACK, OnClosePageACK) 340 IPC_MESSAGE_HANDLER(ViewHostMsg_SwapOut_ACK, OnSwapOutACK)
341 IPC_MESSAGE_UNHANDLED(handled = false) 341 IPC_MESSAGE_UNHANDLED(handled = false)
342 IPC_END_MESSAGE_MAP_EX() 342 IPC_END_MESSAGE_MAP_EX()
343 343
344 filter_ = NULL; 344 filter_ = NULL;
345 return handled; 345 return handled;
346 } 346 }
347 347
348 void ResourceDispatcherHost::OnRequestResource( 348 void ResourceDispatcherHost::OnRequestResource(
349 const IPC::Message& message, 349 const IPC::Message& message,
350 int request_id, 350 int request_id,
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 child_id, 683 child_id,
684 route_id, 684 route_id,
685 request_id_, 685 request_id_,
686 ResourceType::SUB_RESOURCE, 686 ResourceType::SUB_RESOURCE,
687 0, // upload_size 687 0, // upload_size
688 download, // is_download 688 download, // is_download
689 download, // allow_download 689 download, // allow_download
690 false); // has_user_gesture 690 false); // has_user_gesture
691 } 691 }
692 692
693 void ResourceDispatcherHost::OnClosePageACK( 693 void ResourceDispatcherHost::OnSwapOutACK(
694 const ViewMsg_ClosePage_Params& params) { 694 const ViewMsg_SwapOut_Params& params) {
695 if (params.for_cross_site_transition) { 695 // Closes for cross-site transitions are handled such that the cross-site
696 // Closes for cross-site transitions are handled such that the cross-site 696 // transition continues.
697 // transition continues. 697 GlobalRequestID global_id(params.new_render_process_host_id,
698 GlobalRequestID global_id(params.new_render_process_host_id, 698 params.new_request_id);
699 params.new_request_id); 699 PendingRequestList::iterator i = pending_requests_.find(global_id);
700 PendingRequestList::iterator i = pending_requests_.find(global_id); 700 if (i != pending_requests_.end()) {
701 if (i != pending_requests_.end()) { 701 // The response we were meant to resume could have already been canceled.
702 // The response we were meant to resume could have already been canceled. 702 ResourceDispatcherHostRequestInfo* info = InfoForRequest(i->second);
703 ResourceDispatcherHostRequestInfo* info = InfoForRequest(i->second); 703 if (info->cross_site_handler())
704 if (info->cross_site_handler()) 704 info->cross_site_handler()->ResumeResponse();
705 info->cross_site_handler()->ResumeResponse();
706 }
707 } else {
708 // This is a tab close, so we will close the tab in OnClosePageACK.
709 DCHECK(params.new_render_process_host_id == -1);
710 DCHECK(params.new_request_id == -1);
711 } 705 }
712 // Update the RenderViewHost's internal state after the ACK. 706 // Update the RenderViewHost's internal state after the ACK.
713 CallRenderViewHost(params.closing_process_id, 707 CallRenderViewHost(params.closing_process_id,
714 params.closing_route_id, 708 params.closing_route_id,
715 &RenderViewHost::OnClosePageACK, 709 &RenderViewHost::OnSwapOutACK);
716 params.for_cross_site_transition);
717 } 710 }
718 711
719 // We are explicitly forcing the download of 'url'. 712 // We are explicitly forcing the download of 'url'.
720 void ResourceDispatcherHost::BeginDownload( 713 void ResourceDispatcherHost::BeginDownload(
721 const GURL& url, 714 const GURL& url,
722 const GURL& referrer, 715 const GURL& referrer,
723 const DownloadSaveInfo& save_info, 716 const DownloadSaveInfo& save_info,
724 bool prompt_for_save_location, 717 bool prompt_for_save_location,
725 int child_id, 718 int child_id,
726 int route_id, 719 int route_id,
(...skipping 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 return is_prefetch_enabled_; 1997 return is_prefetch_enabled_;
2005 } 1998 }
2006 1999
2007 // static 2000 // static
2008 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { 2001 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) {
2009 is_prefetch_enabled_ = value; 2002 is_prefetch_enabled_ = value;
2010 } 2003 }
2011 2004
2012 // static 2005 // static
2013 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; 2006 bool ResourceDispatcherHost::is_prefetch_enabled_ = false;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698