Index: content/browser/service_worker/service_worker_context_wrapper.cc |
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc |
index 5298a24f7a823fa3f444f8e0969e074d601158d5..ec33d565410d429dd706f4f7339a31dc7a81ef30 100644 |
--- a/content/browser/service_worker/service_worker_context_wrapper.cc |
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc |
@@ -18,6 +18,7 @@ |
#include "net/url_request/url_request_context_getter.h" |
#include "storage/browser/blob/blob_storage_context.h" |
#include "storage/browser/quota/quota_manager_proxy.h" |
+#include "storage/browser/quota/special_storage_policy.h" |
namespace content { |
@@ -34,25 +35,24 @@ ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() { |
void ServiceWorkerContextWrapper::Init( |
const base::FilePath& user_data_directory, |
- storage::QuotaManagerProxy* quota_manager_proxy) { |
+ storage::QuotaManagerProxy* quota_manager_proxy, |
+ storage::SpecialStoragePolicy* special_storage_policy) { |
is_incognito_ = user_data_directory.empty(); |
- scoped_refptr<base::SequencedTaskRunner> database_task_runner = |
- BrowserThread::GetBlockingPool()-> |
- GetSequencedTaskRunnerWithShutdownBehavior( |
- BrowserThread::GetBlockingPool()->GetSequenceToken(), |
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
+ base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool(); |
+ scoped_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager( |
+ new ServiceWorkerDatabaseTaskManagerImpl(pool)); |
scoped_refptr<base::SingleThreadTaskRunner> disk_cache_thread = |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE); |
scoped_refptr<base::SequencedTaskRunner> cache_task_runner = |
- BrowserThread::GetBlockingPool() |
- ->GetSequencedTaskRunnerWithShutdownBehavior( |
- BrowserThread::GetBlockingPool()->GetSequenceToken(), |
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
+ pool->GetSequencedTaskRunnerWithShutdownBehavior( |
+ BrowserThread::GetBlockingPool()->GetSequenceToken(), |
+ base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
InitInternal(user_data_directory, |
cache_task_runner, |
- database_task_runner, |
+ database_task_manager.Pass(), |
disk_cache_thread, |
- quota_manager_proxy); |
+ quota_manager_proxy, |
+ special_storage_policy); |
} |
void ServiceWorkerContextWrapper::Shutdown() { |
@@ -239,9 +239,10 @@ void ServiceWorkerContextWrapper::SetBlobParametersForCache( |
void ServiceWorkerContextWrapper::InitInternal( |
const base::FilePath& user_data_directory, |
const scoped_refptr<base::SequencedTaskRunner>& stores_task_runner, |
- const scoped_refptr<base::SequencedTaskRunner>& database_task_runner, |
+ scoped_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager, |
const scoped_refptr<base::SingleThreadTaskRunner>& disk_cache_thread, |
- storage::QuotaManagerProxy* quota_manager_proxy) { |
+ storage::QuotaManagerProxy* quota_manager_proxy, |
+ storage::SpecialStoragePolicy* special_storage_policy) { |
if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
BrowserThread::PostTask( |
BrowserThread::IO, |
@@ -250,17 +251,19 @@ void ServiceWorkerContextWrapper::InitInternal( |
this, |
user_data_directory, |
stores_task_runner, |
- database_task_runner, |
+ base::Passed(&database_task_manager), |
disk_cache_thread, |
- make_scoped_refptr(quota_manager_proxy))); |
+ make_scoped_refptr(quota_manager_proxy), |
+ make_scoped_refptr(special_storage_policy))); |
return; |
} |
DCHECK(!context_core_); |
context_core_.reset(new ServiceWorkerContextCore(user_data_directory, |
stores_task_runner, |
- database_task_runner, |
+ database_task_manager.Pass(), |
disk_cache_thread, |
quota_manager_proxy, |
+ special_storage_policy, |
observer_list_.get(), |
this)); |
} |