| Index: content/browser/renderer_host/resource_dispatcher_host.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/resource_dispatcher_host.cc (revision 117096)
|
| +++ content/browser/renderer_host/resource_dispatcher_host.cc (working copy)
|
| @@ -95,6 +95,8 @@
|
|
|
| namespace {
|
|
|
| +static ResourceDispatcherHost* g_resource_dispatcher_host;
|
| +
|
| // The interval for calls to ResourceDispatcherHost::UpdateLoadStates
|
| const int kUpdateLoadStatesIntervalMsec = 100;
|
|
|
| @@ -294,9 +296,13 @@
|
|
|
| } // namespace
|
|
|
| -ResourceDispatcherHost::ResourceDispatcherHost(
|
| - const ResourceQueue::DelegateSet& resource_queue_delegates)
|
| - : ALLOW_THIS_IN_INITIALIZER_LIST(
|
| +ResourceDispatcherHost* ResourceDispatcherHost::Get() {
|
| + return g_resource_dispatcher_host;
|
| +}
|
| +
|
| +ResourceDispatcherHost::ResourceDispatcherHost()
|
| + : temporarily_delegate_set_(NULL),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(
|
| download_file_manager_(new DownloadFileManager(this, NULL))),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| save_file_manager_(new SaveFileManager(this))),
|
| @@ -308,14 +314,28 @@
|
| filter_(NULL),
|
| delegate_(NULL),
|
| allow_cross_origin_auth_prompt_(false) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + DCHECK(!g_resource_dispatcher_host);
|
| + g_resource_dispatcher_host = this;
|
| +
|
| + ResourceQueue::DelegateSet resource_queue_delegates;
|
| + temporarily_delegate_set_ = &resource_queue_delegates;
|
| + content::GetContentClient()->browser()->ResourceDispatcherHostCreated();
|
| resource_queue_.Initialize(resource_queue_delegates);
|
| + temporarily_delegate_set_ = NULL;
|
|
|
| ANNOTATE_BENIGN_RACE(
|
| &last_user_gesture_time_,
|
| "We don't care about the precise value, see http://crbug.com/92889");
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&appcache::AppCacheInterceptor::EnsureRegistered));
|
| }
|
|
|
| ResourceDispatcherHost::~ResourceDispatcherHost() {
|
| + DCHECK(g_resource_dispatcher_host);
|
| + g_resource_dispatcher_host = NULL;
|
| AsyncResourceHandler::GlobalCleanup();
|
| for (PendingRequestList::const_iterator i = pending_requests_.begin();
|
| i != pending_requests_.end(); ++i) {
|
| @@ -325,13 +345,6 @@
|
| DCHECK(transferred_navigations_.empty());
|
| }
|
|
|
| -void ResourceDispatcherHost::Initialize() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&appcache::AppCacheInterceptor::EnsureRegistered));
|
| -}
|
| -
|
| void ResourceDispatcherHost::Shutdown() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| BrowserThread::PostTask(BrowserThread::IO,
|
| @@ -340,6 +353,11 @@
|
| base::Unretained(this)));
|
| }
|
|
|
| +void ResourceDispatcherHost::AddResourceQueueDelegate(
|
| + ResourceQueueDelegate* delegate) {
|
| + temporarily_delegate_set_->insert(delegate);
|
| +}
|
| +
|
| void ResourceDispatcherHost::SetRequestInfo(
|
| net::URLRequest* request,
|
| ResourceDispatcherHostRequestInfo* info) {
|
|
|