OLD | NEW |
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 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 IPC_BEGIN_MESSAGE_MAP_EX(ResourceDispatcherHost, message, *message_was_ok) | 338 IPC_BEGIN_MESSAGE_MAP_EX(ResourceDispatcherHost, message, *message_was_ok) |
339 IPC_MESSAGE_HANDLER(ResourceHostMsg_RequestResource, OnRequestResource) | 339 IPC_MESSAGE_HANDLER(ResourceHostMsg_RequestResource, OnRequestResource) |
340 IPC_MESSAGE_HANDLER_DELAY_REPLY(ResourceHostMsg_SyncLoad, OnSyncLoad) | 340 IPC_MESSAGE_HANDLER_DELAY_REPLY(ResourceHostMsg_SyncLoad, OnSyncLoad) |
341 IPC_MESSAGE_HANDLER(ResourceHostMsg_ReleaseDownloadedFile, | 341 IPC_MESSAGE_HANDLER(ResourceHostMsg_ReleaseDownloadedFile, |
342 OnReleaseDownloadedFile) | 342 OnReleaseDownloadedFile) |
343 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataReceived_ACK, OnDataReceivedACK) | 343 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataReceived_ACK, OnDataReceivedACK) |
344 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataDownloaded_ACK, OnDataDownloadedACK) | 344 IPC_MESSAGE_HANDLER(ResourceHostMsg_DataDownloaded_ACK, OnDataDownloadedACK) |
345 IPC_MESSAGE_HANDLER(ResourceHostMsg_UploadProgress_ACK, OnUploadProgressACK) | 345 IPC_MESSAGE_HANDLER(ResourceHostMsg_UploadProgress_ACK, OnUploadProgressACK) |
346 IPC_MESSAGE_HANDLER(ResourceHostMsg_CancelRequest, OnCancelRequest) | 346 IPC_MESSAGE_HANDLER(ResourceHostMsg_CancelRequest, OnCancelRequest) |
347 IPC_MESSAGE_HANDLER(ResourceHostMsg_FollowRedirect, OnFollowRedirect) | 347 IPC_MESSAGE_HANDLER(ResourceHostMsg_FollowRedirect, OnFollowRedirect) |
348 IPC_MESSAGE_HANDLER(ViewHostMsg_ClosePage_ACK, OnClosePageACK) | 348 IPC_MESSAGE_HANDLER(ViewHostMsg_SwapOut_ACK, OnSwapOutACK) |
349 IPC_MESSAGE_UNHANDLED(handled = false) | 349 IPC_MESSAGE_UNHANDLED(handled = false) |
350 IPC_END_MESSAGE_MAP_EX() | 350 IPC_END_MESSAGE_MAP_EX() |
351 | 351 |
352 filter_ = NULL; | 352 filter_ = NULL; |
353 return handled; | 353 return handled; |
354 } | 354 } |
355 | 355 |
356 void ResourceDispatcherHost::OnRequestResource( | 356 void ResourceDispatcherHost::OnRequestResource( |
357 const IPC::Message& message, | 357 const IPC::Message& message, |
358 int request_id, | 358 int request_id, |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 route_id, | 710 route_id, |
711 request_id_, | 711 request_id_, |
712 ResourceType::SUB_RESOURCE, | 712 ResourceType::SUB_RESOURCE, |
713 0, // upload_size | 713 0, // upload_size |
714 download, // is_download | 714 download, // is_download |
715 download, // allow_download | 715 download, // allow_download |
716 false, // has_user_gesture | 716 false, // has_user_gesture |
717 &context); | 717 &context); |
718 } | 718 } |
719 | 719 |
720 void ResourceDispatcherHost::OnClosePageACK( | 720 void ResourceDispatcherHost::OnSwapOutACK( |
721 const ViewMsg_ClosePage_Params& params) { | 721 const ViewMsg_SwapOut_Params& params) { |
722 if (params.for_cross_site_transition) { | 722 // Closes for cross-site transitions are handled such that the cross-site |
723 // Closes for cross-site transitions are handled such that the cross-site | 723 // transition continues. |
724 // transition continues. | 724 GlobalRequestID global_id(params.new_render_process_host_id, |
725 GlobalRequestID global_id(params.new_render_process_host_id, | 725 params.new_request_id); |
726 params.new_request_id); | 726 PendingRequestList::iterator i = pending_requests_.find(global_id); |
727 PendingRequestList::iterator i = pending_requests_.find(global_id); | 727 if (i != pending_requests_.end()) { |
728 if (i != pending_requests_.end()) { | 728 // The response we were meant to resume could have already been canceled. |
729 // The response we were meant to resume could have already been canceled. | 729 ResourceDispatcherHostRequestInfo* info = InfoForRequest(i->second); |
730 ResourceDispatcherHostRequestInfo* info = InfoForRequest(i->second); | 730 if (info->cross_site_handler()) |
731 if (info->cross_site_handler()) | 731 info->cross_site_handler()->ResumeResponse(); |
732 info->cross_site_handler()->ResumeResponse(); | |
733 } | |
734 } else { | |
735 // This is a tab close, so we will close the tab in OnClosePageACK. | |
736 DCHECK(params.new_render_process_host_id == -1); | |
737 DCHECK(params.new_request_id == -1); | |
738 } | 732 } |
739 // Update the RenderViewHost's internal state after the ACK. | 733 // Update the RenderViewHost's internal state after the ACK. |
740 CallRenderViewHost(params.closing_process_id, | 734 CallRenderViewHost(params.closing_process_id, |
741 params.closing_route_id, | 735 params.closing_route_id, |
742 &RenderViewHost::OnClosePageACK, | 736 &RenderViewHost::OnSwapOutACK); |
743 params.for_cross_site_transition); | |
744 } | 737 } |
745 | 738 |
746 // We are explicitly forcing the download of 'url'. | 739 // We are explicitly forcing the download of 'url'. |
747 void ResourceDispatcherHost::BeginDownload( | 740 void ResourceDispatcherHost::BeginDownload( |
748 const GURL& url, | 741 const GURL& url, |
749 const GURL& referrer, | 742 const GURL& referrer, |
750 const DownloadSaveInfo& save_info, | 743 const DownloadSaveInfo& save_info, |
751 bool prompt_for_save_location, | 744 bool prompt_for_save_location, |
752 int child_id, | 745 int child_id, |
753 int route_id, | 746 int route_id, |
(...skipping 1253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2007 return is_prefetch_enabled_; | 2000 return is_prefetch_enabled_; |
2008 } | 2001 } |
2009 | 2002 |
2010 // static | 2003 // static |
2011 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { | 2004 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { |
2012 is_prefetch_enabled_ = value; | 2005 is_prefetch_enabled_ = value; |
2013 } | 2006 } |
2014 | 2007 |
2015 // static | 2008 // static |
2016 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; | 2009 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; |
OLD | NEW |