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

Side by Side Diff: content/browser/loader/resource_dispatcher_host_impl.cc

Issue 11270027: Add a ResourceScheduler to ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use new WebKit signals Created 7 years, 10 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) 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698