| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // This is the browser side of the resource dispatcher, it receives requests | 5 // This is the browser side of the resource dispatcher, it receives requests |
| 6 // from the RenderProcessHosts, and dispatches them to URLRequests. It then | 6 // from the RenderProcessHosts, and dispatches them to URLRequests. It then |
| 7 // fowards the messages from the URLRequests back to the correct process for | 7 // fowards the messages from the URLRequests back to the correct process for |
| 8 // handling. | 8 // handling. |
| 9 // | 9 // |
| 10 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc
e-loading | 10 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc
e-loading |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 bool has_started_reading; | 146 bool has_started_reading; |
| 147 | 147 |
| 148 // How many bytes have been read while this request has been paused. | 148 // How many bytes have been read while this request has been paused. |
| 149 int paused_read_bytes; | 149 int paused_read_bytes; |
| 150 }; | 150 }; |
| 151 | 151 |
| 152 class Observer { | 152 class Observer { |
| 153 public: | 153 public: |
| 154 virtual void OnRequestStarted(ResourceDispatcherHost* resource_dispatcher, | 154 virtual void OnRequestStarted(ResourceDispatcherHost* resource_dispatcher, |
| 155 URLRequest* request) = 0; | 155 URLRequest* request) = 0; |
| 156 virtual void OnResponseCompleted(ResourceDispatcherHost* resource_dispatcher
, | 156 virtual void OnResponseCompleted( |
| 157 URLRequest* request) = 0; | 157 ResourceDispatcherHost* resource_dispatcher, |
| 158 URLRequest* request) = 0; |
| 158 virtual void OnReceivedRedirect(ResourceDispatcherHost* resource_dispatcher, | 159 virtual void OnReceivedRedirect(ResourceDispatcherHost* resource_dispatcher, |
| 159 URLRequest* request, | 160 URLRequest* request, |
| 160 const GURL& new_url) = 0; | 161 const GURL& new_url) = 0; |
| 161 }; | 162 }; |
| 162 | 163 |
| 163 // Uniquely identifies a URLRequest. | 164 // Uniquely identifies a URLRequest. |
| 164 struct GlobalRequestID { | 165 struct GlobalRequestID { |
| 165 GlobalRequestID() : render_process_host_id(-1), request_id(-1) { | 166 GlobalRequestID() : render_process_host_id(-1), request_id(-1) { |
| 166 } | 167 } |
| 167 GlobalRequestID(int render_process_host_id, int request_id) | 168 GlobalRequestID(int render_process_host_id, int request_id) |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 void OnResponseCompleted(URLRequest* request); | 304 void OnResponseCompleted(URLRequest* request); |
| 304 | 305 |
| 305 // Helper function to get our extra data out of a request. The given request | 306 // Helper function to get our extra data out of a request. The given request |
| 306 // must have been one we created so that it has the proper extra data pointer. | 307 // must have been one we created so that it has the proper extra data pointer. |
| 307 static ExtraRequestInfo* ExtraInfoForRequest(URLRequest* request) { | 308 static ExtraRequestInfo* ExtraInfoForRequest(URLRequest* request) { |
| 308 ExtraRequestInfo* r = static_cast<ExtraRequestInfo*>(request->user_data()); | 309 ExtraRequestInfo* r = static_cast<ExtraRequestInfo*>(request->user_data()); |
| 309 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; | 310 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; |
| 310 return r; | 311 return r; |
| 311 } | 312 } |
| 312 | 313 |
| 313 static const ExtraRequestInfo* ExtraInfoForRequest(const URLRequest* request)
{ | 314 static const ExtraRequestInfo* ExtraInfoForRequest( |
| 315 const URLRequest* request) { |
| 314 const ExtraRequestInfo* r = | 316 const ExtraRequestInfo* r = |
| 315 static_cast<const ExtraRequestInfo*>(request->user_data()); | 317 static_cast<const ExtraRequestInfo*>(request->user_data()); |
| 316 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; | 318 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; |
| 317 return r; | 319 return r; |
| 318 } | 320 } |
| 319 | 321 |
| 320 // Adds an observer. The observer will be called on the IO thread. To | 322 // Adds an observer. The observer will be called on the IO thread. To |
| 321 // observe resource events on the UI thread, subscribe to the | 323 // observe resource events on the UI thread, subscribe to the |
| 322 // NOTIFY_RESOURCE_* notifications of the notification service. | 324 // NOTIFY_RESOURCE_* notifications of the notification service. |
| 323 void AddObserver(Observer* obs); | 325 void AddObserver(Observer* obs); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 // individual requests is given by CalculateApproximateMemoryCost). | 521 // individual requests is given by CalculateApproximateMemoryCost). |
| 520 // The total number of outstanding requests is roughly: | 522 // The total number of outstanding requests is roughly: |
| 521 // (max_outstanding_requests_cost_per_process_ / | 523 // (max_outstanding_requests_cost_per_process_ / |
| 522 // kAvgBytesPerOutstandingRequest) | 524 // kAvgBytesPerOutstandingRequest) |
| 523 int max_outstanding_requests_cost_per_process_; | 525 int max_outstanding_requests_cost_per_process_; |
| 524 | 526 |
| 525 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); | 527 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); |
| 526 }; | 528 }; |
| 527 | 529 |
| 528 #endif // CHROME_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ | 530 #endif // CHROME_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ |
| OLD | NEW |