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

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

Issue 9150016: Move creation and ownership of ResourceDispatcherHost and PluginService to content. This gives a ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 class CookieList; 52 class CookieList;
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 CONTENT_EXPORT ResourceDispatcherHost : public net::URLRequest::Delegate { 60 class CONTENT_EXPORT ResourceDispatcherHost : public net::URLRequest::Delegate {
61 public: 61 public:
62 explicit ResourceDispatcherHost( 62 ResourceDispatcherHost();
63 const ResourceQueue::DelegateSet& resource_queue_delegates);
64 virtual ~ResourceDispatcherHost(); 63 virtual ~ResourceDispatcherHost();
65 64
66 void Initialize(); 65 // Returns the current ResourceDispatcherHost, creating it if necessary. The
66 // first time this is called must be on the UI thread, but after that it can
67 // be called from the IO thread as well.
68 static ResourceDispatcherHost* Get();
69
70 // Returns true if the ResourceDispatcherHost has been created (i.e. Get() has
71 // been called).
72 static bool IsCreated();
67 73
68 // Puts the resource dispatcher host in an inactive state (unable to begin 74 // Puts the resource dispatcher host in an inactive state (unable to begin
69 // new requests). Cancels all pending requests. 75 // new requests). Cancels all pending requests.
70 void Shutdown(); 76 void Shutdown();
71 77
78 // Destructs the current ResourceDispatcherHost.
79 void Destruct();
80
81 // Adds a delegate that can delay requests. This should be called early, i.e.
82 // in the ContentBrowserClient::ResourceDispatcherHostCreated callback.
83 void AddResourceQueueDelegate(ResourceQueueDelegate* delegate);
84
72 // Returns true if the message was a resource message that was processed. 85 // Returns true if the message was a resource message that was processed.
73 // If it was, message_was_ok will be false iff the message was corrupt. 86 // If it was, message_was_ok will be false iff the message was corrupt.
74 bool OnMessageReceived(const IPC::Message& message, 87 bool OnMessageReceived(const IPC::Message& message,
75 ResourceMessageFilter* filter, 88 ResourceMessageFilter* filter,
76 bool* message_was_ok); 89 bool* message_was_ok);
77 90
78 // Initiates a download by explicit request of the renderer, e.g. due to 91 // Initiates a download by explicit request of the renderer, e.g. due to
79 // alt-clicking a link. If |request| is malformed or not permitted or the RDH 92 // alt-clicking a link. If |request| is malformed or not permitted or the RDH
80 // is shutting down, then |started_cb| will be called immediately. There is no 93 // is shutting down, then |started_cb| will be called immediately. There is no
81 // situation in which |started_cb| will never be called. 94 // situation in which |started_cb| will never be called.
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 RegisteredTempFiles; // key is child process id 468 RegisteredTempFiles; // key is child process id
456 RegisteredTempFiles registered_temp_files_; 469 RegisteredTempFiles registered_temp_files_;
457 470
458 // A timer that periodically calls UpdateLoadStates while pending_requests_ 471 // A timer that periodically calls UpdateLoadStates while pending_requests_
459 // is not empty. 472 // is not empty.
460 base::RepeatingTimer<ResourceDispatcherHost> update_load_states_timer_; 473 base::RepeatingTimer<ResourceDispatcherHost> update_load_states_timer_;
461 474
462 // Handles the resource requests from the moment we want to start them. 475 // Handles the resource requests from the moment we want to start them.
463 ResourceQueue resource_queue_; 476 ResourceQueue resource_queue_;
464 477
478 // Used temporarily during construction.
479 ResourceQueue::DelegateSet* temporarily_delegate_set_;
480
465 // We own the download file writing thread and manager 481 // We own the download file writing thread and manager
466 scoped_refptr<DownloadFileManager> download_file_manager_; 482 scoped_refptr<DownloadFileManager> download_file_manager_;
467 483
468 // We own the save file manager. 484 // We own the save file manager.
469 scoped_refptr<SaveFileManager> save_file_manager_; 485 scoped_refptr<SaveFileManager> save_file_manager_;
470 486
471 // Request ID for browser initiated requests. request_ids generated by 487 // Request ID for browser initiated requests. request_ids generated by
472 // child processes are counted up from 0, while browser created requests 488 // child processes are counted up from 0, while browser created requests
473 // start at -2 and go down from there. (We need to start at -2 because -1 is 489 // start at -2 and go down from there. (We need to start at -2 because -1 is
474 // used as a special value all over the resource_dispatcher_host for 490 // used as a special value all over the resource_dispatcher_host for
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 // Maps the request ID of request that is being transferred to a new RVH 535 // Maps the request ID of request that is being transferred to a new RVH
520 // to the respective request. 536 // to the respective request.
521 typedef std::map<content::GlobalRequestID, net::URLRequest*> 537 typedef std::map<content::GlobalRequestID, net::URLRequest*>
522 TransferredNavigations; 538 TransferredNavigations;
523 TransferredNavigations transferred_navigations_; 539 TransferredNavigations transferred_navigations_;
524 540
525 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost); 541 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHost);
526 }; 542 };
527 543
528 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_ 544 #endif // CONTENT_BROWSER_RENDERER_HOST_RESOURCE_DISPATCHER_HOST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698