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

Side by Side Diff: content/browser/service_worker/service_worker_context_wrapper.cc

Issue 279683002: Initialize ServiceWorkerContextCore with a message loop for the disk cache to use. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "content/browser/service_worker/service_worker_context_wrapper.h" 5 #include "content/browser/service_worker/service_worker_context_wrapper.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/threading/sequenced_worker_pool.h" 8 #include "base/threading/sequenced_worker_pool.h"
9 #include "content/browser/service_worker/service_worker_context_core.h" 9 #include "content/browser/service_worker/service_worker_context_core.h"
10 #include "content/browser/service_worker/service_worker_context_observer.h" 10 #include "content/browser/service_worker/service_worker_context_observer.h"
(...skipping 14 matching lines...) Expand all
25 } 25 }
26 26
27 void ServiceWorkerContextWrapper::Init( 27 void ServiceWorkerContextWrapper::Init(
28 const base::FilePath& user_data_directory, 28 const base::FilePath& user_data_directory,
29 quota::QuotaManagerProxy* quota_manager_proxy) { 29 quota::QuotaManagerProxy* quota_manager_proxy) {
30 scoped_refptr<base::SequencedTaskRunner> database_task_runner = 30 scoped_refptr<base::SequencedTaskRunner> database_task_runner =
31 BrowserThread::GetBlockingPool()-> 31 BrowserThread::GetBlockingPool()->
32 GetSequencedTaskRunnerWithShutdownBehavior( 32 GetSequencedTaskRunnerWithShutdownBehavior(
33 BrowserThread::GetBlockingPool()->GetSequenceToken(), 33 BrowserThread::GetBlockingPool()->GetSequenceToken(),
34 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); 34 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
35 InitInternal(user_data_directory, database_task_runner, quota_manager_proxy); 35 scoped_refptr<base::MessageLoopProxy> disk_cache_thread =
36 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE);
37 InitInternal(user_data_directory, database_task_runner,
38 disk_cache_thread, quota_manager_proxy);
36 } 39 }
37 40
38 void ServiceWorkerContextWrapper::Shutdown() { 41 void ServiceWorkerContextWrapper::Shutdown() {
39 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 42 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
40 DCHECK_CURRENTLY_ON(BrowserThread::UI); 43 DCHECK_CURRENTLY_ON(BrowserThread::UI);
41 browser_context_ = NULL; 44 browser_context_ = NULL;
42 BrowserThread::PostTask( 45 BrowserThread::PostTask(
43 BrowserThread::IO, FROM_HERE, 46 BrowserThread::IO, FROM_HERE,
44 base::Bind(&ServiceWorkerContextWrapper::Shutdown, this)); 47 base::Bind(&ServiceWorkerContextWrapper::Shutdown, this));
45 return; 48 return;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 void ServiceWorkerContextWrapper::AddObserver( 124 void ServiceWorkerContextWrapper::AddObserver(
122 ServiceWorkerContextObserver* observer) { 125 ServiceWorkerContextObserver* observer) {
123 observer_list_->AddObserver(observer); 126 observer_list_->AddObserver(observer);
124 } 127 }
125 128
126 void ServiceWorkerContextWrapper::RemoveObserver( 129 void ServiceWorkerContextWrapper::RemoveObserver(
127 ServiceWorkerContextObserver* observer) { 130 ServiceWorkerContextObserver* observer) {
128 observer_list_->RemoveObserver(observer); 131 observer_list_->RemoveObserver(observer);
129 } 132 }
130 133
131 void ServiceWorkerContextWrapper::InitForTesting(
132 const base::FilePath& user_data_directory,
133 base::SequencedTaskRunner* database_task_runner,
134 quota::QuotaManagerProxy* quota_manager_proxy) {
135 InitInternal(user_data_directory, database_task_runner, quota_manager_proxy);
136 }
137
138 void ServiceWorkerContextWrapper::InitInternal( 134 void ServiceWorkerContextWrapper::InitInternal(
139 const base::FilePath& user_data_directory, 135 const base::FilePath& user_data_directory,
140 base::SequencedTaskRunner* database_task_runner, 136 base::SequencedTaskRunner* database_task_runner,
137 base::MessageLoopProxy* disk_cache_thread,
141 quota::QuotaManagerProxy* quota_manager_proxy) { 138 quota::QuotaManagerProxy* quota_manager_proxy) {
142 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 139 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
143 BrowserThread::PostTask( 140 BrowserThread::PostTask(
144 BrowserThread::IO, 141 BrowserThread::IO,
145 FROM_HERE, 142 FROM_HERE,
146 base::Bind(&ServiceWorkerContextWrapper::InitInternal, 143 base::Bind(&ServiceWorkerContextWrapper::InitInternal,
147 this, 144 this,
148 user_data_directory, 145 user_data_directory,
149 make_scoped_refptr(database_task_runner), 146 make_scoped_refptr(database_task_runner),
147 make_scoped_refptr(disk_cache_thread),
150 make_scoped_refptr(quota_manager_proxy))); 148 make_scoped_refptr(quota_manager_proxy)));
151 return; 149 return;
152 } 150 }
153 DCHECK(!context_core_); 151 DCHECK(!context_core_);
154 context_core_.reset(new ServiceWorkerContextCore( 152 context_core_.reset(new ServiceWorkerContextCore(
155 user_data_directory, 153 user_data_directory,
156 database_task_runner, 154 database_task_runner,
155 disk_cache_thread,
157 quota_manager_proxy, 156 quota_manager_proxy,
158 observer_list_, 157 observer_list_,
159 make_scoped_ptr(new ServiceWorkerProcessManager(this)))); 158 make_scoped_ptr(new ServiceWorkerProcessManager(this))));
160 } 159 }
161 160
162 } // namespace content 161 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698