Index: content/child/resource_scheduling_filter.h |
diff --git a/content/child/resource_scheduling_filter.h b/content/child/resource_scheduling_filter.h |
index 7ea73c90724d57e238e1950a225f3a90d1a207f4..fd24559229a0f2ea5933bc7c7083aefe39692bdb 100644 |
--- a/content/child/resource_scheduling_filter.h |
+++ b/content/child/resource_scheduling_filter.h |
@@ -5,12 +5,19 @@ |
#ifndef CONTENT_CHILD_RESOURCE_SCHEDULING_FILTER_H_ |
#define CONTENT_CHILD_RESOURCE_SCHEDULING_FILTER_H_ |
+#include <map> |
+ |
#include "base/containers/hash_tables.h" |
+#include "base/containers/scoped_ptr_map.h" |
#include "base/memory/weak_ptr.h" |
#include "base/single_thread_task_runner.h" |
#include "content/common/content_export.h" |
#include "ipc/message_filter.h" |
+namespace blink { |
+class WebTaskRunner; |
+} |
+ |
namespace content { |
class ResourceDispatcher; |
@@ -28,11 +35,25 @@ class CONTENT_EXPORT ResourceSchedulingFilter : public IPC::MessageFilter { |
bool GetSupportedMessageClasses( |
std::vector<uint32>* supported_message_classes) const override; |
- protected: |
- ~ResourceSchedulingFilter() override; |
+ // Sets the task runner associated with request messages with |id|. |
+ void SetRequestIdTaskRunner( |
+ int id, scoped_ptr<blink::WebTaskRunner> web_task_runner); |
+ |
+ // Removes the task runner associated with |id|. |
+ void ClearRequestIdTaskRunner(int id); |
void DispatchMessage(const IPC::Message& message); |
+ private: |
+ ~ResourceSchedulingFilter() override; |
+ |
+ typedef base::ScopedPtrMap<int, scoped_ptr<blink::WebTaskRunner>> |
+ RequestIdToTaskRunnerMap; |
+ |
+ // This lock guards |request_id_to_task_runner_map_| |
+ base::Lock request_id_to_task_runner_map_lock_; |
+ RequestIdToTaskRunnerMap request_id_to_task_runner_map_; |
+ |
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; |
ResourceDispatcher* resource_dispatcher_; // NOT OWNED |
base::WeakPtrFactory<ResourceSchedulingFilter> weak_ptr_factory_; |