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

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

Issue 459003002: Plumbs URLRequestContext and CacheBlobStorageContext down to cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cache1
Patch Set: Rebase Created 6 years, 4 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
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/logging.h" 8 #include "base/logging.h"
9 #include "base/threading/sequenced_worker_pool.h" 9 #include "base/threading/sequenced_worker_pool.h"
10 #include "content/browser/fileapi/chrome_blob_storage_context.h"
10 #include "content/browser/service_worker/service_worker_context_core.h" 11 #include "content/browser/service_worker/service_worker_context_core.h"
11 #include "content/browser/service_worker/service_worker_context_observer.h" 12 #include "content/browser/service_worker/service_worker_context_observer.h"
12 #include "content/browser/service_worker/service_worker_process_manager.h" 13 #include "content/browser/service_worker/service_worker_process_manager.h"
14 #include "content/public/browser/browser_context.h"
13 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
16 #include "net/url_request/url_request_context_getter.h"
14 #include "webkit/browser/quota/quota_manager_proxy.h" 17 #include "webkit/browser/quota/quota_manager_proxy.h"
15 18
16 namespace content { 19 namespace content {
17 20
18 ServiceWorkerContextWrapper::ServiceWorkerContextWrapper( 21 ServiceWorkerContextWrapper::ServiceWorkerContextWrapper(
19 BrowserContext* browser_context) 22 BrowserContext* browser_context)
20 : observer_list_( 23 : observer_list_(
21 new ObserverListThreadSafe<ServiceWorkerContextObserver>()), 24 new ObserverListThreadSafe<ServiceWorkerContextObserver>()),
22 process_manager_(new ServiceWorkerProcessManager(browser_context)), 25 process_manager_(new ServiceWorkerProcessManager(browser_context)),
23 is_incognito_(false) { 26 is_incognito_(false) {
24 } 27 }
25 28
26 ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() { 29 ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() {
27 } 30 }
28 31
29 void ServiceWorkerContextWrapper::Init( 32 void ServiceWorkerContextWrapper::Init(
30 const base::FilePath& user_data_directory, 33 const base::FilePath& user_data_directory,
31 quota::QuotaManagerProxy* quota_manager_proxy) { 34 quota::QuotaManagerProxy* quota_manager_proxy) {
32 is_incognito_ = user_data_directory.empty(); 35 is_incognito_ = user_data_directory.empty();
33 scoped_refptr<base::SequencedTaskRunner> database_task_runner = 36 scoped_refptr<base::SequencedTaskRunner> database_task_runner =
34 BrowserThread::GetBlockingPool()-> 37 BrowserThread::GetBlockingPool()->
35 GetSequencedTaskRunnerWithShutdownBehavior( 38 GetSequencedTaskRunnerWithShutdownBehavior(
36 BrowserThread::GetBlockingPool()->GetSequenceToken(), 39 BrowserThread::GetBlockingPool()->GetSequenceToken(),
37 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); 40 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
38 scoped_refptr<base::MessageLoopProxy> disk_cache_thread = 41 scoped_refptr<base::MessageLoopProxy> disk_cache_thread =
39 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE); 42 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE);
40 scoped_refptr<base::SequencedTaskRunner> stores_task_runner = 43 scoped_refptr<base::SequencedTaskRunner> cache_task_runner =
41 BrowserThread::GetBlockingPool() 44 BrowserThread::GetBlockingPool()
42 ->GetSequencedTaskRunnerWithShutdownBehavior( 45 ->GetSequencedTaskRunnerWithShutdownBehavior(
43 BrowserThread::GetBlockingPool()->GetSequenceToken(), 46 BrowserThread::GetBlockingPool()->GetSequenceToken(),
44 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); 47 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
45 InitInternal(user_data_directory, 48 InitInternal(user_data_directory,
46 stores_task_runner, 49 cache_task_runner,
47 database_task_runner, 50 database_task_runner,
48 disk_cache_thread, 51 disk_cache_thread,
49 quota_manager_proxy); 52 quota_manager_proxy);
50 } 53 }
51 54
52 void ServiceWorkerContextWrapper::Shutdown() { 55 void ServiceWorkerContextWrapper::Shutdown() {
53 DCHECK_CURRENTLY_ON(BrowserThread::UI); 56 DCHECK_CURRENTLY_ON(BrowserThread::UI);
54 process_manager_->Shutdown(); 57 process_manager_->Shutdown();
55 BrowserThread::PostTask( 58 BrowserThread::PostTask(
56 BrowserThread::IO, 59 BrowserThread::IO,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 void ServiceWorkerContextWrapper::AddObserver( 145 void ServiceWorkerContextWrapper::AddObserver(
143 ServiceWorkerContextObserver* observer) { 146 ServiceWorkerContextObserver* observer) {
144 observer_list_->AddObserver(observer); 147 observer_list_->AddObserver(observer);
145 } 148 }
146 149
147 void ServiceWorkerContextWrapper::RemoveObserver( 150 void ServiceWorkerContextWrapper::RemoveObserver(
148 ServiceWorkerContextObserver* observer) { 151 ServiceWorkerContextObserver* observer) {
149 observer_list_->RemoveObserver(observer); 152 observer_list_->RemoveObserver(observer);
150 } 153 }
151 154
155 void ServiceWorkerContextWrapper::SetBlobParametersForCache(
156 net::URLRequestContext* request_context,
157 base::WeakPtr<webkit_blob::BlobStorageContext> blob_storage_context) {
158 DCHECK_CURRENTLY_ON(BrowserThread::IO);
159 if (context_core_)
160 context_core_->SetBlobParametersForCache(request_context,
161 blob_storage_context);
162 }
163
152 void ServiceWorkerContextWrapper::InitInternal( 164 void ServiceWorkerContextWrapper::InitInternal(
153 const base::FilePath& user_data_directory, 165 const base::FilePath& user_data_directory,
154 base::SequencedTaskRunner* stores_task_runner, 166 base::SequencedTaskRunner* stores_task_runner,
155 base::SequencedTaskRunner* database_task_runner, 167 base::SequencedTaskRunner* database_task_runner,
156 base::MessageLoopProxy* disk_cache_thread, 168 base::MessageLoopProxy* disk_cache_thread,
157 quota::QuotaManagerProxy* quota_manager_proxy) { 169 quota::QuotaManagerProxy* quota_manager_proxy) {
158 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 170 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
159 BrowserThread::PostTask( 171 BrowserThread::PostTask(
160 BrowserThread::IO, 172 BrowserThread::IO,
161 FROM_HERE, 173 FROM_HERE,
(...skipping 26 matching lines...) Expand all
188 DCHECK_CURRENTLY_ON(BrowserThread::IO); 200 DCHECK_CURRENTLY_ON(BrowserThread::IO);
189 if (status != SERVICE_WORKER_OK) { 201 if (status != SERVICE_WORKER_OK) {
190 context_core_.reset(); 202 context_core_.reset();
191 return; 203 return;
192 } 204 }
193 context_core_.reset(new ServiceWorkerContextCore(context_core_.get(), this)); 205 context_core_.reset(new ServiceWorkerContextCore(context_core_.get(), this));
194 DVLOG(1) << "Restarted ServiceWorkerContextCore successfully."; 206 DVLOG(1) << "Restarted ServiceWorkerContextCore successfully.";
195 } 207 }
196 208
197 } // namespace content 209 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698