Index: content/browser/loader/resource_scheduler.h |
diff --git a/content/browser/loader/resource_scheduler.h b/content/browser/loader/resource_scheduler.h |
index 60cf0cd69f8c10360b3c3f43babb2a61744e7443..1ce402f2020a66486e3fe01517054733395af5ef 100644 |
--- a/content/browser/loader/resource_scheduler.h |
+++ b/content/browser/loader/resource_scheduler.h |
@@ -44,9 +44,9 @@ class ResourceThrottle; |
// Each Client may have many Requests in flight. Requests are uniquely |
// identified within a Client by its ScheduledResourceRequest. |
// |
-// Users should call ScheduleRequest() to notify this ResourceScheduler of a |
-// new request. The returned ResourceThrottle should be destroyed when the load |
-// finishes or is canceled. |
+// Users should call ScheduleRequest() to notify this ResourceScheduler of a new |
+// request. The returned ResourceThrottle should be destroyed when the load |
+// finishes or is canceled, before the net::URLRequest. |
// |
// The scheduler may defer issuing the request via the ResourceThrottle |
// interface or it may alter the request's priority by calling set_priority() on |
@@ -104,9 +104,11 @@ class CONTENT_EXPORT ResourceScheduler : public base::NonThreadSafe { |
// Requests that this ResourceScheduler schedule, and eventually loads, the |
// specified |url_request|. Caller should delete the returned ResourceThrottle |
- // when the load completes or is canceled. |
- scoped_ptr<ResourceThrottle> ScheduleRequest( |
- int child_id, int route_id, net::URLRequest* url_request); |
+ // when the load completes or is canceled, before |url_request| is deleted. |
+ scoped_ptr<ResourceThrottle> ScheduleRequest(int child_id, |
+ int route_id, |
+ bool is_async, |
+ net::URLRequest* url_request); |
// Signals from the UI thread, posted as tasks on the IO thread: |
@@ -153,6 +155,12 @@ class CONTENT_EXPORT ResourceScheduler : public base::NonThreadSafe { |
// Returns true if at least one client is currently loading. |
bool HasLoadingClients() const; |
+ // Update the priority for |request|. Modifies request->priority(), and may |
+ // start the request loading if it wasn't already started. |
+ void ReprioritizeRequest(net::URLRequest* request, |
+ net::RequestPriority new_priority, |
+ int intra_priority_value); |
+ |
private: |
// Returns true if limiting of outstanding requests is enabled. |
bool limit_outstanding_requests() const { |
@@ -215,16 +223,6 @@ class CONTENT_EXPORT ResourceScheduler : public base::NonThreadSafe { |
// whether the client is ACTIVE (user-observable) or BACKGROUND. |
ClientState GetClientState(ClientId client_id) const; |
- // Update the queue position for |request|, possibly causing it to start |
- // loading. |
- // |
- // Queues are maintained for each priority level. When |request| is |
- // reprioritized, it will move to the end of the queue for that priority |
- // level. |
- void ReprioritizeRequest(ScheduledResourceRequest* request, |
- net::RequestPriority new_priority, |
- int intra_priority_value); |
- |
// Returns the client ID for the given |child_id| and |route_id| combo. |
ClientId MakeClientId(int child_id, int route_id); |
@@ -241,6 +239,8 @@ class CONTENT_EXPORT ResourceScheduler : public base::NonThreadSafe { |
// This is a repeating timer to initiate requests on COALESCED Clients. |
scoped_ptr<base::Timer> coalescing_timer_; |
RequestSet unowned_requests_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ResourceScheduler); |
}; |
} // namespace content |