Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: content/browser/renderer_host/resource_dispatcher_host.h

Issue 6966017: Remove a chrome dependency by removing Prerender from ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: abort all prerender requests Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 namespace net { 52 namespace net {
53 class URLRequestJobFactory; 53 class URLRequestJobFactory;
54 } // namespace net 54 } // namespace net
55 55
56 namespace webkit_blob { 56 namespace webkit_blob {
57 class DeletableFileReference; 57 class DeletableFileReference;
58 } 58 }
59 59
60 class ResourceDispatcherHost : public net::URLRequest::Delegate { 60 class ResourceDispatcherHost : public net::URLRequest::Delegate {
61 public: 61 public:
62 class Observer {
63 public:
64 // Called when a request begins. Return false to abort the request.
65 virtual bool ShouldBeginRequest(int child_id, int route_id,
mmenke 2011/05/25 00:56:24 nit: Move first two parameters to next line.
dominich 2011/05/25 16:42:28 Done.
66 const ResourceHostMsg_Request& request_data,
67 const content::ResourceContext& resource_context,
68 const GURL& referrer) = 0;
69
70 // Called after the load flags have been set when a request begins. Use it
71 // to add or remove load flags.
72 virtual void MutateLoadFlags(int child_id, int route_id,
73 int* load_flags) = 0;
74 protected:
75 Observer() {}
76 virtual ~Observer() {}
77 };
78
62 explicit ResourceDispatcherHost( 79 explicit ResourceDispatcherHost(
63 const ResourceQueue::DelegateSet& resource_queue_delegates); 80 const ResourceQueue::DelegateSet& resource_queue_delegates);
64 ~ResourceDispatcherHost(); 81 ~ResourceDispatcherHost();
65 82
66 void Initialize(); 83 void Initialize();
67 84
68 // Puts the resource dispatcher host in an inactive state (unable to begin 85 // Puts the resource dispatcher host in an inactive state (unable to begin
69 // new requests). Cancels all pending requests. 86 // new requests). Cancels all pending requests.
70 void Shutdown(); 87 void Shutdown();
71 88
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 void UnregisterDownloadedTempFile(int child_id, int request_id); 254 void UnregisterDownloadedTempFile(int child_id, int request_id);
238 255
239 // Needed for the sync IPC message dispatcher macros. 256 // Needed for the sync IPC message dispatcher macros.
240 bool Send(IPC::Message* message); 257 bool Send(IPC::Message* message);
241 258
242 // Controls if we launch or squash prefetch requests as they arrive 259 // Controls if we launch or squash prefetch requests as they arrive
243 // from renderers. 260 // from renderers.
244 static bool is_prefetch_enabled(); 261 static bool is_prefetch_enabled();
245 static void set_is_prefetch_enabled(bool value); 262 static void set_is_prefetch_enabled(bool value);
246 263
264 // This does not take ownership of the observer. It is expected that the
265 // observer have a longer lifetime than the ResourceDispatcherHost.
266 void set_observer(Observer* observer) { observer_ = observer; }
267
247 private: 268 private:
248 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, 269 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest,
249 TestBlockedRequestsProcessDies); 270 TestBlockedRequestsProcessDies);
250 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, 271 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest,
251 IncrementOutstandingRequestsMemoryCost); 272 IncrementOutstandingRequestsMemoryCost);
252 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest, 273 FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest,
253 CalculateApproximateMemoryCost); 274 CalculateApproximateMemoryCost);
254 275
255 class ShutdownTask; 276 class ShutdownTask;
256 277
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 // individual requests is given by CalculateApproximateMemoryCost). 490 // individual requests is given by CalculateApproximateMemoryCost).
470 // The total number of outstanding requests is roughly: 491 // The total number of outstanding requests is roughly:
471 // (max_outstanding_requests_cost_per_process_ / 492 // (max_outstanding_requests_cost_per_process_ /
472 // kAvgBytesPerOutstandingRequest) 493 // kAvgBytesPerOutstandingRequest)
473 int max_outstanding_requests_cost_per_process_; 494 int max_outstanding_requests_cost_per_process_;
474 495
475 // Used during IPC message dispatching so that the handlers can get a pointer 496 // Used during IPC message dispatching so that the handlers can get a pointer
476 // to the source of the message. 497 // to the source of the message.
477 ResourceMessageFilter* filter_; 498 ResourceMessageFilter* filter_;
478 499
500 Observer* observer_;
501
479 static bool is_prefetch_enabled_; 502 static bool is_prefetch_enabled_;
480 503
481
482 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); 504 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost);
483 }; 505 };
484 506
485 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ 507 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698