| 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 child process (i.e. [Renderer, Plugin, Worker]ProcessHost), and | 6 // from the child process (i.e. [Renderer, Plugin, Worker]ProcessHost), and |
| 7 // dispatches them to URLRequests. It then fowards the messages from the | 7 // dispatches them to URLRequests. It then fowards the messages from the |
| 8 // URLRequests back to the correct process for handling. | 8 // URLRequests back to the correct process for 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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 const GURL& new_url); | 302 const GURL& new_url); |
| 303 virtual void OnAuthRequired(URLRequest* request, | 303 virtual void OnAuthRequired(URLRequest* request, |
| 304 net::AuthChallengeInfo* auth_info); | 304 net::AuthChallengeInfo* auth_info); |
| 305 virtual void OnSSLCertificateError(URLRequest* request, | 305 virtual void OnSSLCertificateError(URLRequest* request, |
| 306 int cert_error, | 306 int cert_error, |
| 307 net::X509Certificate* cert); | 307 net::X509Certificate* cert); |
| 308 virtual void OnResponseStarted(URLRequest* request); | 308 virtual void OnResponseStarted(URLRequest* request); |
| 309 virtual void OnReadCompleted(URLRequest* request, int bytes_read); | 309 virtual void OnReadCompleted(URLRequest* request, int bytes_read); |
| 310 void OnResponseCompleted(URLRequest* request); | 310 void OnResponseCompleted(URLRequest* request); |
| 311 | 311 |
| 312 // Helper function to get our extra data out of a request. The given request | 312 // Helper functions to get our extra data out of a request. The given request |
| 313 // must have been one we created so that it has the proper extra data pointer. | 313 // must have been one we created so that it has the proper extra data pointer. |
| 314 static ExtraRequestInfo* ExtraInfoForRequest(URLRequest* request) { | 314 static ExtraRequestInfo* ExtraInfoForRequest(URLRequest* request) { |
| 315 ExtraRequestInfo* r = static_cast<ExtraRequestInfo*>(request->user_data()); | 315 ExtraRequestInfo* info |
| 316 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; | 316 = static_cast<ExtraRequestInfo*>(request->GetUserData(NULL)); |
| 317 return r; | 317 DLOG_IF(WARNING, !info) << "Request doesn't seem to have our data"; |
| 318 return info; |
| 318 } | 319 } |
| 319 | 320 |
| 320 static const ExtraRequestInfo* ExtraInfoForRequest( | 321 static const ExtraRequestInfo* ExtraInfoForRequest( |
| 321 const URLRequest* request) { | 322 const URLRequest* request) { |
| 322 const ExtraRequestInfo* r = | 323 const ExtraRequestInfo* info = |
| 323 static_cast<const ExtraRequestInfo*>(request->user_data()); | 324 static_cast<const ExtraRequestInfo*>(request->GetUserData(NULL)); |
| 324 DLOG_IF(WARNING, !r) << "Request doesn't seem to have our data"; | 325 DLOG_IF(WARNING, !info) << "Request doesn't seem to have our data"; |
| 325 return r; | 326 return info; |
| 326 } | 327 } |
| 327 | 328 |
| 328 // Adds an observer. The observer will be called on the IO thread. To | 329 // Adds an observer. The observer will be called on the IO thread. To |
| 329 // observe resource events on the UI thread, subscribe to the | 330 // observe resource events on the UI thread, subscribe to the |
| 330 // NOTIFY_RESOURCE_* notifications of the notification service. | 331 // NOTIFY_RESOURCE_* notifications of the notification service. |
| 331 void AddObserver(Observer* obs); | 332 void AddObserver(Observer* obs); |
| 332 | 333 |
| 333 // Removes an observer. | 334 // Removes an observer. |
| 334 void RemoveObserver(Observer* obs); | 335 void RemoveObserver(Observer* obs); |
| 335 | 336 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 FRIEND_TEST(ResourceDispatcherHostTest, TestBlockedRequestsProcessDies); | 374 FRIEND_TEST(ResourceDispatcherHostTest, TestBlockedRequestsProcessDies); |
| 374 FRIEND_TEST(ResourceDispatcherHostTest, | 375 FRIEND_TEST(ResourceDispatcherHostTest, |
| 375 IncrementOutstandingRequestsMemoryCost); | 376 IncrementOutstandingRequestsMemoryCost); |
| 376 FRIEND_TEST(ResourceDispatcherHostTest, | 377 FRIEND_TEST(ResourceDispatcherHostTest, |
| 377 CalculateApproximateMemoryCost); | 378 CalculateApproximateMemoryCost); |
| 378 | 379 |
| 379 class ShutdownTask; | 380 class ShutdownTask; |
| 380 | 381 |
| 381 friend class ShutdownTask; | 382 friend class ShutdownTask; |
| 382 | 383 |
| 384 void SetExtraInfoForRequest(URLRequest* request, ExtraRequestInfo* info) { |
| 385 request->SetUserData(NULL, info); |
| 386 } |
| 387 |
| 383 // A shutdown helper that runs on the IO thread. | 388 // A shutdown helper that runs on the IO thread. |
| 384 void OnShutdown(); | 389 void OnShutdown(); |
| 385 | 390 |
| 386 // Returns true if the request is paused. | 391 // Returns true if the request is paused. |
| 387 bool PauseRequestIfNeeded(ExtraRequestInfo* info); | 392 bool PauseRequestIfNeeded(ExtraRequestInfo* info); |
| 388 | 393 |
| 389 // Resumes the given request by calling OnResponseStarted or OnReadCompleted. | 394 // Resumes the given request by calling OnResponseStarted or OnReadCompleted. |
| 390 void ResumeRequest(const GlobalRequestID& request_id); | 395 void ResumeRequest(const GlobalRequestID& request_id); |
| 391 | 396 |
| 392 // Reads data from the response using our internal buffer as async IO. | 397 // Reads data from the response using our internal buffer as async IO. |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 int max_outstanding_requests_cost_per_process_; | 553 int max_outstanding_requests_cost_per_process_; |
| 549 | 554 |
| 550 // Used during IPC message dispatching so that the handlers can get a pointer | 555 // Used during IPC message dispatching so that the handlers can get a pointer |
| 551 // to the source of the message. | 556 // to the source of the message. |
| 552 Receiver* receiver_; | 557 Receiver* receiver_; |
| 553 | 558 |
| 554 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); | 559 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); |
| 555 }; | 560 }; |
| 556 | 561 |
| 557 #endif // CHROME_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ | 562 #endif // CHROME_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ |
| OLD | NEW |