| 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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 #if defined(OS_WIN) | 198 #if defined(OS_WIN) |
| 199 #pragma warning(disable: 4748) | 199 #pragma warning(disable: 4748) |
| 200 #pragma optimize("", off) | 200 #pragma optimize("", off) |
| 201 #endif | 201 #endif |
| 202 | 202 |
| 203 #if defined(OS_WIN) | 203 #if defined(OS_WIN) |
| 204 #pragma optimize("", on) | 204 #pragma optimize("", on) |
| 205 #pragma warning(default: 4748) | 205 #pragma warning(default: 4748) |
| 206 #endif | 206 #endif |
| 207 | 207 |
| 208 net::RequestPriority DetermineRequestPriority( | |
| 209 const ResourceHostMsg_Request& request_data) { | |
| 210 switch (request_data.priority) { | |
| 211 case WebKit::WebURLRequest::PriorityVeryHigh: | |
| 212 return net::HIGHEST; | |
| 213 | |
| 214 case WebKit::WebURLRequest::PriorityHigh: | |
| 215 return net::MEDIUM; | |
| 216 | |
| 217 case WebKit::WebURLRequest::PriorityMedium: | |
| 218 return net::LOW; | |
| 219 | |
| 220 case WebKit::WebURLRequest::PriorityLow: | |
| 221 return net::LOWEST; | |
| 222 | |
| 223 case WebKit::WebURLRequest::PriorityVeryLow: | |
| 224 return net::IDLE; | |
| 225 | |
| 226 case WebKit::WebURLRequest::PriorityUnresolved: | |
| 227 default: | |
| 228 NOTREACHED(); | |
| 229 return net::LOW; | |
| 230 } | |
| 231 } | |
| 232 | |
| 233 void OnSwapOutACKHelper(int render_process_id, | 208 void OnSwapOutACKHelper(int render_process_id, |
| 234 int render_view_id, | 209 int render_view_id, |
| 235 bool timed_out) { | 210 bool timed_out) { |
| 236 RenderViewHostImpl* rvh = RenderViewHostImpl::FromID(render_process_id, | 211 RenderViewHostImpl* rvh = RenderViewHostImpl::FromID(render_process_id, |
| 237 render_view_id); | 212 render_view_id); |
| 238 if (rvh) | 213 if (rvh) |
| 239 rvh->OnSwapOutACK(timed_out); | 214 rvh->OnSwapOutACK(timed_out); |
| 240 } | 215 } |
| 241 | 216 |
| 242 net::Error CallbackAndReturn( | 217 net::Error CallbackAndReturn( |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 932 referrer.policy); | 907 referrer.policy); |
| 933 net::HttpRequestHeaders headers; | 908 net::HttpRequestHeaders headers; |
| 934 headers.AddHeadersFromString(request_data.headers); | 909 headers.AddHeadersFromString(request_data.headers); |
| 935 request->SetExtraRequestHeaders(headers); | 910 request->SetExtraRequestHeaders(headers); |
| 936 } | 911 } |
| 937 | 912 |
| 938 // TODO(darin): Do we really need all of these URLRequest setters in the | 913 // TODO(darin): Do we really need all of these URLRequest setters in the |
| 939 // transferred navigation case? | 914 // transferred navigation case? |
| 940 | 915 |
| 941 request->set_load_flags(load_flags); | 916 request->set_load_flags(load_flags); |
| 942 | 917 request->set_priority(request_data.priority); |
| 943 request->set_priority(DetermineRequestPriority(request_data)); | |
| 944 | 918 |
| 945 // Resolve elements from request_body and prepare upload data. | 919 // Resolve elements from request_body and prepare upload data. |
| 946 if (request_data.request_body) { | 920 if (request_data.request_body) { |
| 947 request->set_upload(make_scoped_ptr( | 921 request->set_upload(make_scoped_ptr( |
| 948 request_data.request_body->ResolveElementsAndCreateUploadDataStream( | 922 request_data.request_body->ResolveElementsAndCreateUploadDataStream( |
| 949 filter_->blob_storage_context()->controller(), | 923 filter_->blob_storage_context()->controller(), |
| 950 filter_->file_system_context(), | 924 filter_->file_system_context(), |
| 951 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)))); | 925 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)))); |
| 952 } | 926 } |
| 953 | 927 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1042 // Block power save while uploading data. | 1016 // Block power save while uploading data. |
| 1043 throttles.push_back(new PowerSaveBlockResourceThrottle()); | 1017 throttles.push_back(new PowerSaveBlockResourceThrottle()); |
| 1044 } | 1018 } |
| 1045 | 1019 |
| 1046 if (request_data.resource_type == ResourceType::MAIN_FRAME) { | 1020 if (request_data.resource_type == ResourceType::MAIN_FRAME) { |
| 1047 throttles.insert( | 1021 throttles.insert( |
| 1048 throttles.begin(), | 1022 throttles.begin(), |
| 1049 new TransferNavigationResourceThrottle(request)); | 1023 new TransferNavigationResourceThrottle(request)); |
| 1050 } | 1024 } |
| 1051 | 1025 |
| 1052 if (!throttles.empty()) { | 1026 throttles.push_back( |
| 1053 handler.reset( | 1027 scheduler_.ScheduleRequest(child_id, route_id, request).release()); |
| 1054 new ThrottlingResourceHandler(handler.Pass(), child_id, request_id, | 1028 |
| 1055 throttles.Pass())); | 1029 handler.reset( |
| 1056 } | 1030 new ThrottlingResourceHandler(handler.Pass(), child_id, request_id, |
| 1031 throttles.Pass())); |
| 1057 | 1032 |
| 1058 if (deferred_loader.get()) { | 1033 if (deferred_loader.get()) { |
| 1059 pending_loaders_[extra_info->GetGlobalRequestID()] = deferred_loader; | 1034 pending_loaders_[extra_info->GetGlobalRequestID()] = deferred_loader; |
| 1060 deferred_loader->CompleteTransfer(handler.Pass()); | 1035 deferred_loader->CompleteTransfer(handler.Pass()); |
| 1061 } else { | 1036 } else { |
| 1062 BeginRequestInternal(new_request.Pass(), handler.Pass()); | 1037 BeginRequestInternal(new_request.Pass(), handler.Pass()); |
| 1063 } | 1038 } |
| 1064 } | 1039 } |
| 1065 | 1040 |
| 1066 void ResourceDispatcherHostImpl::OnReleaseDownloadedFile(int request_id) { | 1041 void ResourceDispatcherHostImpl::OnReleaseDownloadedFile(int request_id) { |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1714 DelegateMap::iterator it = delegate_map_.find(id); | 1689 DelegateMap::iterator it = delegate_map_.find(id); |
| 1715 DCHECK(it->second->HasObserver(delegate)); | 1690 DCHECK(it->second->HasObserver(delegate)); |
| 1716 it->second->RemoveObserver(delegate); | 1691 it->second->RemoveObserver(delegate); |
| 1717 if (it->second->size() == 0) { | 1692 if (it->second->size() == 0) { |
| 1718 delete it->second; | 1693 delete it->second; |
| 1719 delegate_map_.erase(it); | 1694 delegate_map_.erase(it); |
| 1720 } | 1695 } |
| 1721 } | 1696 } |
| 1722 | 1697 |
| 1723 } // namespace content | 1698 } // namespace content |
| OLD | NEW |