Index: content/child/resource_dispatcher.cc |
diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc |
index 684f3eecf22cc3c0cf30ac6e96fbc3918d9da0ec..0c9907215c61c63f909bcfedd3c2ad5a1788b634 100644 |
--- a/content/child/resource_dispatcher.cc |
+++ b/content/child/resource_dispatcher.cc |
@@ -18,6 +18,7 @@ |
#include "base/strings/string_util.h" |
#include "content/child/request_extra_data.h" |
#include "content/child/request_info.h" |
+#include "content/child/resource_scheduling_filter.h" |
#include "content/child/shared_memory_received_data_factory.h" |
#include "content/child/site_isolation_stats_gatherer.h" |
#include "content/child/sync_load_response.h" |
@@ -414,6 +415,9 @@ bool ResourceDispatcher::RemovePendingRequest(int request_id) { |
new ResourceHostMsg_ReleaseDownloadedFile(request_id)); |
} |
+ if (resource_scheduling_filter_.get()) |
+ resource_scheduling_filter_->ClearRequestIdTaskRunner(request_id); |
+ |
return true; |
} |
@@ -599,6 +603,13 @@ int ResourceDispatcher::StartAsync(const RequestInfo& request_info, |
request->url, |
request_info.download_to_file); |
+ if (resource_scheduling_filter_.get() && |
+ request_info.loading_web_task_runner) { |
+ resource_scheduling_filter_->SetRequestIdTaskRunner( |
+ request_id, |
+ make_scoped_ptr(request_info.loading_web_task_runner->clone())); |
+ } |
+ |
message_sender_->Send(new ResourceHostMsg_RequestResource( |
request_info.routing_id, request_id, *request)); |
@@ -805,4 +816,9 @@ scoped_ptr<ResourceHostMsg_Request> ResourceDispatcher::CreateRequest( |
return request.Pass(); |
} |
+void ResourceDispatcher::SetResourceSchedulingFilter( |
+ scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { |
+ resource_scheduling_filter_ = resource_scheduling_filter; |
+} |
+ |
} // namespace content |