OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/loader/resource_dispatcher_host_impl.h" | 7 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 ResourceMessageDelegate* delegate; | 931 ResourceMessageDelegate* delegate; |
932 while ((delegate = del_it.GetNext()) != NULL) { | 932 while ((delegate = del_it.GetNext()) != NULL) { |
933 delegate->set_request_id(new_request_id); | 933 delegate->set_request_id(new_request_id); |
934 } | 934 } |
935 // Now store the observer list under the new request ID. | 935 // Now store the observer list under the new request ID. |
936 delegate_map_[new_request_id] = delegate_map_[old_request_id]; | 936 delegate_map_[new_request_id] = delegate_map_[old_request_id]; |
937 delegate_map_.erase(old_request_id); | 937 delegate_map_.erase(old_request_id); |
938 } | 938 } |
939 } | 939 } |
940 | 940 |
941 // Notify the delegate to allow it to update state as well. | |
942 if (delegate_) { | |
943 delegate_->WillTransferRequestToNewProcess(old_routing_id.child_id, | |
944 old_routing_id.route_id, | |
945 old_request_id.request_id, | |
946 child_id, | |
947 route_id, | |
948 request_id); | |
949 } | |
950 | |
951 // We should have a CrossSiteResourceHandler to finish the transfer. | 941 // We should have a CrossSiteResourceHandler to finish the transfer. |
952 DCHECK(info->cross_site_handler()); | 942 DCHECK(info->cross_site_handler()); |
953 } | 943 } |
954 | 944 |
955 void ResourceDispatcherHostImpl::BeginRequest( | 945 void ResourceDispatcherHostImpl::BeginRequest( |
956 int request_id, | 946 int request_id, |
957 const ResourceHostMsg_Request& request_data, | 947 const ResourceHostMsg_Request& request_data, |
958 IPC::Message* sync_result, // only valid for sync | 948 IPC::Message* sync_result, // only valid for sync |
959 int route_id) { | 949 int route_id) { |
960 int process_type = filter_->process_type(); | 950 int process_type = filter_->process_type(); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1090 request_data.parent_is_main_frame, | 1080 request_data.parent_is_main_frame, |
1091 request_data.parent_frame_id, | 1081 request_data.parent_frame_id, |
1092 request_data.resource_type, | 1082 request_data.resource_type, |
1093 request_data.transition_type, | 1083 request_data.transition_type, |
1094 request_data.should_replace_current_entry, | 1084 request_data.should_replace_current_entry, |
1095 false, // is download | 1085 false, // is download |
1096 false, // is stream | 1086 false, // is stream |
1097 allow_download, | 1087 allow_download, |
1098 request_data.has_user_gesture, | 1088 request_data.has_user_gesture, |
1099 request_data.referrer_policy, | 1089 request_data.referrer_policy, |
| 1090 request_data.visiblity_state, |
1100 resource_context, | 1091 resource_context, |
1101 filter_->GetWeakPtr(), | 1092 filter_->GetWeakPtr(), |
1102 !is_sync_load); | 1093 !is_sync_load); |
1103 extra_info->AssociateWithRequest(request); // Request takes ownership. | 1094 extra_info->AssociateWithRequest(request); // Request takes ownership. |
1104 | 1095 |
1105 if (request->url().SchemeIs(chrome::kBlobScheme)) { | 1096 if (request->url().SchemeIs(chrome::kBlobScheme)) { |
1106 // Hang on to a reference to ensure the blob is not released prior | 1097 // Hang on to a reference to ensure the blob is not released prior |
1107 // to the job being started. | 1098 // to the job being started. |
1108 webkit_blob::BlobProtocolHandler::SetRequestedBlobDataHandle( | 1099 webkit_blob::BlobProtocolHandler::SetRequestedBlobDataHandle( |
1109 request, | 1100 request, |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1286 false, // parent_is_main_frame | 1277 false, // parent_is_main_frame |
1287 -1, // parent_frame_id | 1278 -1, // parent_frame_id |
1288 ResourceType::SUB_RESOURCE, | 1279 ResourceType::SUB_RESOURCE, |
1289 PAGE_TRANSITION_LINK, | 1280 PAGE_TRANSITION_LINK, |
1290 false, // should_replace_current_entry | 1281 false, // should_replace_current_entry |
1291 download, // is_download | 1282 download, // is_download |
1292 false, // is_stream | 1283 false, // is_stream |
1293 download, // allow_download | 1284 download, // allow_download |
1294 false, // has_user_gesture | 1285 false, // has_user_gesture |
1295 blink::WebReferrerPolicyDefault, | 1286 blink::WebReferrerPolicyDefault, |
| 1287 blink::WebPageVisibilityStateVisible, |
1296 context, | 1288 context, |
1297 base::WeakPtr<ResourceMessageFilter>(), // filter | 1289 base::WeakPtr<ResourceMessageFilter>(), // filter |
1298 true); // is_async | 1290 true); // is_async |
1299 } | 1291 } |
1300 | 1292 |
1301 void ResourceDispatcherHostImpl::OnRenderViewHostCreated( | 1293 void ResourceDispatcherHostImpl::OnRenderViewHostCreated( |
1302 int child_id, | 1294 int child_id, |
1303 int route_id) { | 1295 int route_id) { |
1304 scheduler_->OnClientCreated(child_id, route_id); | 1296 scheduler_->OnClientCreated(child_id, route_id); |
1305 } | 1297 } |
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1976 if ((load_flags & net::LOAD_REPORT_RAW_HEADERS) | 1968 if ((load_flags & net::LOAD_REPORT_RAW_HEADERS) |
1977 && !policy->CanReadRawCookies(child_id)) { | 1969 && !policy->CanReadRawCookies(child_id)) { |
1978 VLOG(1) << "Denied unauthorized request for raw headers"; | 1970 VLOG(1) << "Denied unauthorized request for raw headers"; |
1979 load_flags &= ~net::LOAD_REPORT_RAW_HEADERS; | 1971 load_flags &= ~net::LOAD_REPORT_RAW_HEADERS; |
1980 } | 1972 } |
1981 | 1973 |
1982 return load_flags; | 1974 return load_flags; |
1983 } | 1975 } |
1984 | 1976 |
1985 } // namespace content | 1977 } // namespace content |
OLD | NEW |