OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 forwards the messages from the | 7 // dispatches them to URLRequests. It then forwards 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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 void UnregisterDownloadedTempFile(int child_id, int request_id); | 237 void UnregisterDownloadedTempFile(int child_id, int request_id); |
238 | 238 |
239 // Needed for the sync IPC message dispatcher macros. | 239 // Needed for the sync IPC message dispatcher macros. |
240 bool Send(IPC::Message* message); | 240 bool Send(IPC::Message* message); |
241 | 241 |
242 // Controls if we launch or squash prefetch requests as they arrive | 242 // Controls if we launch or squash prefetch requests as they arrive |
243 // from renderers. | 243 // from renderers. |
244 static bool is_prefetch_enabled(); | 244 static bool is_prefetch_enabled(); |
245 static void set_is_prefetch_enabled(bool value); | 245 static void set_is_prefetch_enabled(bool value); |
246 | 246 |
247 void AddPrerenderChildRoutePair(int child_id, int route_id); | |
248 void RemovePrerenderChildRoutePair(int child_id, int route_id); | |
249 | |
250 typedef std::set<std::pair<int, int> > PrerenderChildRouteIdPairs; | |
251 const PrerenderChildRouteIdPairs& prerender_child_route_id_pairs() const { | |
252 return prerender_child_route_pairs_; | |
253 } | |
254 | |
255 private: | 247 private: |
256 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, | 248 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, |
257 TestBlockedRequestsProcessDies); | 249 TestBlockedRequestsProcessDies); |
258 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, | 250 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, |
259 IncrementOutstandingRequestsMemoryCost); | 251 IncrementOutstandingRequestsMemoryCost); |
260 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, | 252 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, |
261 CalculateApproximateMemoryCost); | 253 CalculateApproximateMemoryCost); |
262 | 254 |
263 class ShutdownTask; | 255 class ShutdownTask; |
264 | 256 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 int route_id); // only valid for async | 369 int route_id); // only valid for async |
378 void OnDataReceivedACK(int request_id); | 370 void OnDataReceivedACK(int request_id); |
379 void OnDataDownloadedACK(int request_id); | 371 void OnDataDownloadedACK(int request_id); |
380 void OnUploadProgressACK(int request_id); | 372 void OnUploadProgressACK(int request_id); |
381 void OnCancelRequest(int request_id); | 373 void OnCancelRequest(int request_id); |
382 void OnFollowRedirect(int request_id, | 374 void OnFollowRedirect(int request_id, |
383 bool has_new_first_party_for_cookies, | 375 bool has_new_first_party_for_cookies, |
384 const GURL& new_first_party_for_cookies); | 376 const GURL& new_first_party_for_cookies); |
385 void OnReleaseDownloadedFile(int request_id); | 377 void OnReleaseDownloadedFile(int request_id); |
386 | 378 |
387 bool IsPrerenderingChildRoutePair(int child_id, int route_id) const; | |
388 | |
389 ResourceHandler* CreateSafeBrowsingResourceHandler( | 379 ResourceHandler* CreateSafeBrowsingResourceHandler( |
390 ResourceHandler* handler, int child_id, int route_id, | 380 ResourceHandler* handler, int child_id, int route_id, |
391 ResourceType::Type resource_type); | 381 ResourceType::Type resource_type); |
392 | 382 |
393 // Creates ResourceDispatcherHostRequestInfo for a browser-initiated request | 383 // Creates ResourceDispatcherHostRequestInfo for a browser-initiated request |
394 // (a download or a page save). |download| should be true if the request | 384 // (a download or a page save). |download| should be true if the request |
395 // is a file download. | 385 // is a file download. |
396 ResourceDispatcherHostRequestInfo* CreateRequestInfoForBrowserRequest( | 386 ResourceDispatcherHostRequestInfo* CreateRequestInfoForBrowserRequest( |
397 ResourceHandler* handler, | 387 ResourceHandler* handler, |
398 int child_id, | 388 int child_id, |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 // The total number of outstanding requests is roughly: | 470 // The total number of outstanding requests is roughly: |
481 // (max_outstanding_requests_cost_per_process_ / | 471 // (max_outstanding_requests_cost_per_process_ / |
482 // kAvgBytesPerOutstandingRequest) | 472 // kAvgBytesPerOutstandingRequest) |
483 int max_outstanding_requests_cost_per_process_; | 473 int max_outstanding_requests_cost_per_process_; |
484 | 474 |
485 // Used during IPC message dispatching so that the handlers can get a pointer | 475 // Used during IPC message dispatching so that the handlers can get a pointer |
486 // to the source of the message. | 476 // to the source of the message. |
487 ResourceMessageFilter* filter_; | 477 ResourceMessageFilter* filter_; |
488 | 478 |
489 static bool is_prefetch_enabled_; | 479 static bool is_prefetch_enabled_; |
490 PrerenderChildRouteIdPairs prerender_child_route_pairs_; | |
491 | 480 |
492 | 481 |
493 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); | 482 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); |
494 }; | 483 }; |
495 | 484 |
496 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ | 485 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ |
OLD | NEW |