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

Side by Side Diff: content/browser/cache_storage/cache_storage_manager.cc

Issue 2947753002: CacheStorage: Migrate to BindOnce/OnceCallback/OnceClosure (Closed)
Patch Set: Created 3 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/cache_storage/cache_storage_manager.h" 5 #include "content/browser/cache_storage/cache_storage_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 30 matching lines...) Expand all
41 bool DeleteDir(const base::FilePath& path) { 41 bool DeleteDir(const base::FilePath& path) {
42 return base::DeleteFile(path, true /* recursive */); 42 return base::DeleteFile(path, true /* recursive */);
43 } 43 }
44 44
45 void DeleteOriginDidDeleteDir( 45 void DeleteOriginDidDeleteDir(
46 const storage::QuotaClient::DeletionCallback& callback, 46 const storage::QuotaClient::DeletionCallback& callback,
47 bool rv) { 47 bool rv) {
48 DCHECK_CURRENTLY_ON(BrowserThread::IO); 48 DCHECK_CURRENTLY_ON(BrowserThread::IO);
49 49
50 base::ThreadTaskRunnerHandle::Get()->PostTask( 50 base::ThreadTaskRunnerHandle::Get()->PostTask(
51 FROM_HERE, base::Bind(callback, rv ? storage::kQuotaStatusOk 51 FROM_HERE, base::BindOnce(callback, rv ? storage::kQuotaStatusOk
52 : storage::kQuotaErrorAbort)); 52 : storage::kQuotaErrorAbort));
53 } 53 }
54 54
55 // Calculate the sum of all cache sizes in this store, but only if all sizes are 55 // Calculate the sum of all cache sizes in this store, but only if all sizes are
56 // known. If one or more sizes are not known then return kSizeUnknown. 56 // known. If one or more sizes are not known then return kSizeUnknown.
57 int64_t GetCacheStorageSize(const proto::CacheStorageIndex& index) { 57 int64_t GetCacheStorageSize(const proto::CacheStorageIndex& index) {
58 int64_t storage_size = 0; 58 int64_t storage_size = 0;
59 for (int i = 0, max = index.cache_size(); i < max; ++i) { 59 for (int i = 0, max = index.cache_size(); i < max; ++i) {
60 const proto::CacheStorageIndex::Cache& cache = index.cache(i); 60 const proto::CacheStorageIndex::Cache& cache = index.cache(i);
61 if (!cache.has_size() || cache.size() == CacheStorage::kSizeUnknown) 61 if (!cache.has_size() || cache.size() == CacheStorage::kSizeUnknown)
62 return CacheStorage::kSizeUnknown; 62 return CacheStorage::kSizeUnknown;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 void GetOriginsForHostDidListOrigins( 112 void GetOriginsForHostDidListOrigins(
113 const std::string& host, 113 const std::string& host,
114 const storage::QuotaClient::GetOriginsCallback& callback, 114 const storage::QuotaClient::GetOriginsCallback& callback,
115 const std::set<GURL>& origins) { 115 const std::set<GURL>& origins) {
116 std::set<GURL> out_origins; 116 std::set<GURL> out_origins;
117 for (const GURL& origin : origins) { 117 for (const GURL& origin : origins) {
118 if (host == net::GetHostOrSpecFromURL(origin)) 118 if (host == net::GetHostOrSpecFromURL(origin))
119 out_origins.insert(origin); 119 out_origins.insert(origin);
120 } 120 }
121 base::ThreadTaskRunnerHandle::Get()->PostTask( 121 base::ThreadTaskRunnerHandle::Get()->PostTask(
122 FROM_HERE, base::Bind(callback, out_origins)); 122 FROM_HERE, base::BindOnce(callback, out_origins));
123 } 123 }
124 124
125 void EmptyQuotaStatusCallback(storage::QuotaStatusCode code) {} 125 void EmptyQuotaStatusCallback(storage::QuotaStatusCode code) {}
126 126
127 void AllOriginSizesReported( 127 void AllOriginSizesReported(
128 std::unique_ptr<std::vector<CacheStorageUsageInfo>> usages, 128 std::unique_ptr<std::vector<CacheStorageUsageInfo>> usages,
129 const CacheStorageContext::GetUsageInfoCallback& callback) { 129 const CacheStorageContext::GetUsageInfoCallback& callback) {
130 DCHECK_CURRENTLY_ON(BrowserThread::IO); 130 DCHECK_CURRENTLY_ON(BrowserThread::IO);
131 131
132 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 132 base::ThreadTaskRunnerHandle::Get()->PostTask(
133 base::Bind(callback, *usages)); 133 FROM_HERE, base::BindOnce(callback, *usages));
134 } 134 }
135 135
136 void OneOriginSizeReported(const base::Closure& callback, 136 void OneOriginSizeReported(base::OnceClosure callback,
137 CacheStorageUsageInfo* usage, 137 CacheStorageUsageInfo* usage,
138 int64_t size) { 138 int64_t size) {
139 DCHECK_CURRENTLY_ON(BrowserThread::IO); 139 DCHECK_CURRENTLY_ON(BrowserThread::IO);
140 140
141 DCHECK_NE(size, CacheStorage::kSizeUnknown); 141 DCHECK_NE(size, CacheStorage::kSizeUnknown);
142 usage->total_size_bytes = size; 142 usage->total_size_bytes = size;
143 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback); 143 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
144 } 144 }
145 145
146 } // namespace 146 } // namespace
147 147
148 // static 148 // static
149 std::unique_ptr<CacheStorageManager> CacheStorageManager::Create( 149 std::unique_ptr<CacheStorageManager> CacheStorageManager::Create(
150 const base::FilePath& path, 150 const base::FilePath& path,
151 scoped_refptr<base::SequencedTaskRunner> cache_task_runner, 151 scoped_refptr<base::SequencedTaskRunner> cache_task_runner,
152 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy) { 152 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy) {
153 base::FilePath root_path = path; 153 base::FilePath root_path = path;
(...skipping 17 matching lines...) Expand all
171 manager->SetBlobParametersForCache(old_manager->url_request_context_getter(), 171 manager->SetBlobParametersForCache(old_manager->url_request_context_getter(),
172 old_manager->blob_storage_context()); 172 old_manager->blob_storage_context());
173 return manager; 173 return manager;
174 } 174 }
175 175
176 CacheStorageManager::~CacheStorageManager() = default; 176 CacheStorageManager::~CacheStorageManager() = default;
177 177
178 void CacheStorageManager::OpenCache( 178 void CacheStorageManager::OpenCache(
179 const GURL& origin, 179 const GURL& origin,
180 const std::string& cache_name, 180 const std::string& cache_name,
181 const CacheStorage::CacheAndErrorCallback& callback) { 181 CacheStorage::CacheAndErrorCallback callback) {
182 DCHECK_CURRENTLY_ON(BrowserThread::IO); 182 DCHECK_CURRENTLY_ON(BrowserThread::IO);
183 183
184 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 184 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
185 185
186 cache_storage->OpenCache(cache_name, callback); 186 cache_storage->OpenCache(cache_name, std::move(callback));
187 } 187 }
188 188
189 void CacheStorageManager::HasCache( 189 void CacheStorageManager::HasCache(
190 const GURL& origin, 190 const GURL& origin,
191 const std::string& cache_name, 191 const std::string& cache_name,
192 const CacheStorage::BoolAndErrorCallback& callback) { 192 CacheStorage::BoolAndErrorCallback callback) {
193 DCHECK_CURRENTLY_ON(BrowserThread::IO); 193 DCHECK_CURRENTLY_ON(BrowserThread::IO);
194 194
195 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 195 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
196 cache_storage->HasCache(cache_name, callback); 196 cache_storage->HasCache(cache_name, std::move(callback));
197 } 197 }
198 198
199 void CacheStorageManager::DeleteCache( 199 void CacheStorageManager::DeleteCache(
200 const GURL& origin, 200 const GURL& origin,
201 const std::string& cache_name, 201 const std::string& cache_name,
202 const CacheStorage::BoolAndErrorCallback& callback) { 202 CacheStorage::BoolAndErrorCallback callback) {
203 DCHECK_CURRENTLY_ON(BrowserThread::IO); 203 DCHECK_CURRENTLY_ON(BrowserThread::IO);
204 204
205 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 205 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
206 cache_storage->DeleteCache(cache_name, callback); 206 cache_storage->DeleteCache(cache_name, std::move(callback));
207 } 207 }
208 208
209 void CacheStorageManager::EnumerateCaches( 209 void CacheStorageManager::EnumerateCaches(
210 const GURL& origin, 210 const GURL& origin,
211 const CacheStorage::IndexCallback& callback) { 211 CacheStorage::IndexCallback callback) {
212 DCHECK_CURRENTLY_ON(BrowserThread::IO); 212 DCHECK_CURRENTLY_ON(BrowserThread::IO);
213 213
214 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 214 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
215 215
216 cache_storage->EnumerateCaches(callback); 216 cache_storage->EnumerateCaches(std::move(callback));
217 } 217 }
218 218
219 void CacheStorageManager::MatchCache( 219 void CacheStorageManager::MatchCache(
220 const GURL& origin, 220 const GURL& origin,
221 const std::string& cache_name, 221 const std::string& cache_name,
222 std::unique_ptr<ServiceWorkerFetchRequest> request, 222 std::unique_ptr<ServiceWorkerFetchRequest> request,
223 const CacheStorageCacheQueryParams& match_params, 223 const CacheStorageCacheQueryParams& match_params,
224 const CacheStorageCache::ResponseCallback& callback) { 224 CacheStorageCache::ResponseCallback callback) {
225 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 225 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
226 226
227 cache_storage->MatchCache(cache_name, std::move(request), match_params, 227 cache_storage->MatchCache(cache_name, std::move(request), match_params,
228 callback); 228 std::move(callback));
229 } 229 }
230 230
231 void CacheStorageManager::MatchAllCaches( 231 void CacheStorageManager::MatchAllCaches(
232 const GURL& origin, 232 const GURL& origin,
233 std::unique_ptr<ServiceWorkerFetchRequest> request, 233 std::unique_ptr<ServiceWorkerFetchRequest> request,
234 const CacheStorageCacheQueryParams& match_params, 234 const CacheStorageCacheQueryParams& match_params,
235 const CacheStorageCache::ResponseCallback& callback) { 235 CacheStorageCache::ResponseCallback callback) {
236 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); 236 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin);
237 237
238 cache_storage->MatchAllCaches(std::move(request), match_params, callback); 238 cache_storage->MatchAllCaches(std::move(request), match_params,
239 std::move(callback));
239 } 240 }
240 241
241 void CacheStorageManager::SetBlobParametersForCache( 242 void CacheStorageManager::SetBlobParametersForCache(
242 scoped_refptr<net::URLRequestContextGetter> request_context_getter, 243 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
243 base::WeakPtr<storage::BlobStorageContext> blob_storage_context) { 244 base::WeakPtr<storage::BlobStorageContext> blob_storage_context) {
244 DCHECK_CURRENTLY_ON(BrowserThread::IO); 245 DCHECK_CURRENTLY_ON(BrowserThread::IO);
245 DCHECK(cache_storage_map_.empty()); 246 DCHECK(cache_storage_map_.empty());
246 DCHECK(!request_context_getter_ || 247 DCHECK(!request_context_getter_ ||
247 request_context_getter_.get() == request_context_getter.get()); 248 request_context_getter_.get() == request_context_getter.get());
248 DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get()); 249 DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get());
(...skipping 13 matching lines...) Expand all
262 usages->push_back( 263 usages->push_back(
263 CacheStorageUsageInfo(origin_details.first, 0 /* size */, 264 CacheStorageUsageInfo(origin_details.first, 0 /* size */,
264 base::Time() /* last modified */)); 265 base::Time() /* last modified */));
265 } 266 }
266 GetAllOriginsUsageGetSizes(std::move(usages), callback); 267 GetAllOriginsUsageGetSizes(std::move(usages), callback);
267 return; 268 return;
268 } 269 }
269 270
270 std::vector<CacheStorageUsageInfo>* usages_ptr = usages.get(); 271 std::vector<CacheStorageUsageInfo>* usages_ptr = usages.get();
271 cache_task_runner_->PostTaskAndReply( 272 cache_task_runner_->PostTaskAndReply(
272 FROM_HERE, base::Bind(&ListOriginsAndLastModifiedOnTaskRunner, usages_ptr, 273 FROM_HERE,
273 root_path_), 274 base::BindOnce(&ListOriginsAndLastModifiedOnTaskRunner, usages_ptr,
274 base::Bind(&CacheStorageManager::GetAllOriginsUsageGetSizes, 275 root_path_),
275 weak_ptr_factory_.GetWeakPtr(), 276 base::BindOnce(&CacheStorageManager::GetAllOriginsUsageGetSizes,
276 base::Passed(std::move(usages)), callback)); 277 weak_ptr_factory_.GetWeakPtr(),
278 base::Passed(std::move(usages)), callback));
277 } 279 }
278 280
279 void CacheStorageManager::GetAllOriginsUsageGetSizes( 281 void CacheStorageManager::GetAllOriginsUsageGetSizes(
280 std::unique_ptr<std::vector<CacheStorageUsageInfo>> usages, 282 std::unique_ptr<std::vector<CacheStorageUsageInfo>> usages,
281 const CacheStorageContext::GetUsageInfoCallback& callback) { 283 const CacheStorageContext::GetUsageInfoCallback& callback) {
282 DCHECK_CURRENTLY_ON(BrowserThread::IO); 284 DCHECK_CURRENTLY_ON(BrowserThread::IO);
283 DCHECK(usages); 285 DCHECK(usages);
284 286
285 // The origin GURL and last modified times are set in |usages| but not the 287 // The origin GURL and last modified times are set in |usages| but not the
286 // size in bytes. Call each CacheStorage's Size() function to fill that out. 288 // size in bytes. Call each CacheStorage's Size() function to fill that out.
287 std::vector<CacheStorageUsageInfo>* usages_ptr = usages.get(); 289 std::vector<CacheStorageUsageInfo>* usages_ptr = usages.get();
288 290
289 if (usages->empty()) { 291 if (usages->empty()) {
290 base::ThreadTaskRunnerHandle::Get()->PostTask( 292 base::ThreadTaskRunnerHandle::Get()->PostTask(
291 FROM_HERE, base::Bind(callback, *usages)); 293 FROM_HERE, base::BindOnce(callback, *usages));
292 return; 294 return;
293 } 295 }
294 296
295 base::Closure barrier_closure = base::BarrierClosure( 297 base::RepeatingClosure barrier_closure = base::BarrierClosure(
296 usages_ptr->size(), 298 usages_ptr->size(),
297 base::Bind(&AllOriginSizesReported, base::Passed(std::move(usages)), 299 base::BindOnce(&AllOriginSizesReported, base::Passed(std::move(usages)),
298 callback)); 300 callback));
299 301
300 for (CacheStorageUsageInfo& usage : *usages_ptr) { 302 for (CacheStorageUsageInfo& usage : *usages_ptr) {
301 if (usage.total_size_bytes != CacheStorage::kSizeUnknown) { 303 if (usage.total_size_bytes != CacheStorage::kSizeUnknown) {
302 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, barrier_closure); 304 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, barrier_closure);
303 continue; 305 continue;
304 } 306 }
305 CacheStorage* cache_storage = FindOrCreateCacheStorage(usage.origin); 307 CacheStorage* cache_storage = FindOrCreateCacheStorage(usage.origin);
306 cache_storage->Size( 308 cache_storage->Size(
307 base::Bind(&OneOriginSizeReported, barrier_closure, &usage)); 309 base::BindOnce(&OneOriginSizeReported, barrier_closure, &usage));
308 } 310 }
309 } 311 }
310 312
311 void CacheStorageManager::GetOriginUsage( 313 void CacheStorageManager::GetOriginUsage(
312 const GURL& origin_url, 314 const GURL& origin_url,
313 const storage::QuotaClient::GetUsageCallback& callback) { 315 const storage::QuotaClient::GetUsageCallback& callback) {
314 DCHECK_CURRENTLY_ON(BrowserThread::IO); 316 DCHECK_CURRENTLY_ON(BrowserThread::IO);
315 317
316 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin_url); 318 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin_url);
317 319
318 cache_storage->Size(callback); 320 cache_storage->Size(callback);
319 } 321 }
320 322
321 void CacheStorageManager::GetOrigins( 323 void CacheStorageManager::GetOrigins(
322 const storage::QuotaClient::GetOriginsCallback& callback) { 324 const storage::QuotaClient::GetOriginsCallback& callback) {
323 DCHECK_CURRENTLY_ON(BrowserThread::IO); 325 DCHECK_CURRENTLY_ON(BrowserThread::IO);
324 326
325 if (IsMemoryBacked()) { 327 if (IsMemoryBacked()) {
326 std::set<GURL> origins; 328 std::set<GURL> origins;
327 for (const auto& key_value : cache_storage_map_) 329 for (const auto& key_value : cache_storage_map_)
328 origins.insert(key_value.first); 330 origins.insert(key_value.first);
329 331
330 base::ThreadTaskRunnerHandle::Get()->PostTask( 332 base::ThreadTaskRunnerHandle::Get()->PostTask(
331 FROM_HERE, base::Bind(callback, origins)); 333 FROM_HERE, base::BindOnce(callback, origins));
332 return; 334 return;
333 } 335 }
334 336
335 PostTaskAndReplyWithResult(cache_task_runner_.get(), FROM_HERE, 337 PostTaskAndReplyWithResult(cache_task_runner_.get(), FROM_HERE,
336 base::Bind(&ListOriginsOnTaskRunner, root_path_), 338 base::Bind(&ListOriginsOnTaskRunner, root_path_),
jsbell 2017/06/19 23:51:16 If you convert this to base::BindOnce() it fails t
337 callback); 339 callback);
338 } 340 }
339 341
340 void CacheStorageManager::GetOriginsForHost( 342 void CacheStorageManager::GetOriginsForHost(
341 const std::string& host, 343 const std::string& host,
342 const storage::QuotaClient::GetOriginsCallback& callback) { 344 const storage::QuotaClient::GetOriginsCallback& callback) {
343 DCHECK_CURRENTLY_ON(BrowserThread::IO); 345 DCHECK_CURRENTLY_ON(BrowserThread::IO);
344 346
345 if (IsMemoryBacked()) { 347 if (IsMemoryBacked()) {
346 std::set<GURL> origins; 348 std::set<GURL> origins;
347 for (const auto& key_value : cache_storage_map_) { 349 for (const auto& key_value : cache_storage_map_) {
348 if (host == net::GetHostOrSpecFromURL(key_value.first)) 350 if (host == net::GetHostOrSpecFromURL(key_value.first))
349 origins.insert(key_value.first); 351 origins.insert(key_value.first);
350 } 352 }
351 base::ThreadTaskRunnerHandle::Get()->PostTask( 353 base::ThreadTaskRunnerHandle::Get()->PostTask(
352 FROM_HERE, base::Bind(callback, origins)); 354 FROM_HERE, base::BindOnce(callback, origins));
353 return; 355 return;
354 } 356 }
355 357
356 PostTaskAndReplyWithResult( 358 PostTaskAndReplyWithResult(
357 cache_task_runner_.get(), FROM_HERE, 359 cache_task_runner_.get(), FROM_HERE,
358 base::Bind(&ListOriginsOnTaskRunner, root_path_), 360 base::BindOnce(&ListOriginsOnTaskRunner, root_path_),
359 base::Bind(&GetOriginsForHostDidListOrigins, host, callback)); 361 base::BindOnce(&GetOriginsForHostDidListOrigins, host, callback));
360 } 362 }
361 363
362 void CacheStorageManager::DeleteOriginData( 364 void CacheStorageManager::DeleteOriginData(
363 const GURL& origin, 365 const GURL& origin,
364 const storage::QuotaClient::DeletionCallback& callback) { 366 const storage::QuotaClient::DeletionCallback& callback) {
365 DCHECK_CURRENTLY_ON(BrowserThread::IO); 367 DCHECK_CURRENTLY_ON(BrowserThread::IO);
366 368
367 // Create the CacheStorage for the origin if it hasn't been loaded yet. 369 // Create the CacheStorage for the origin if it hasn't been loaded yet.
368 FindOrCreateCacheStorage(origin); 370 FindOrCreateCacheStorage(origin);
369 371
370 CacheStorageMap::iterator it = cache_storage_map_.find(origin); 372 CacheStorageMap::iterator it = cache_storage_map_.find(origin);
371 DCHECK(it != cache_storage_map_.end()); 373 DCHECK(it != cache_storage_map_.end());
372 374
373 CacheStorage* cache_storage = it->second.release(); 375 CacheStorage* cache_storage = it->second.release();
374 cache_storage_map_.erase(origin); 376 cache_storage_map_.erase(origin);
375 cache_storage->GetSizeThenCloseAllCaches( 377 cache_storage->GetSizeThenCloseAllCaches(
376 base::Bind(&CacheStorageManager::DeleteOriginDidClose, 378 base::BindOnce(&CacheStorageManager::DeleteOriginDidClose,
377 weak_ptr_factory_.GetWeakPtr(), origin, callback, 379 weak_ptr_factory_.GetWeakPtr(), origin, callback,
378 base::Passed(base::WrapUnique(cache_storage)))); 380 base::Passed(base::WrapUnique(cache_storage))));
379 } 381 }
380 382
381 void CacheStorageManager::DeleteOriginData(const GURL& origin) { 383 void CacheStorageManager::DeleteOriginData(const GURL& origin) {
382 DCHECK_CURRENTLY_ON(BrowserThread::IO); 384 DCHECK_CURRENTLY_ON(BrowserThread::IO);
383 DeleteOriginData(origin, base::Bind(&EmptyQuotaStatusCallback)); 385 DeleteOriginData(origin, base::Bind(&EmptyQuotaStatusCallback));
384 } 386 }
385 387
386 void CacheStorageManager::DeleteOriginDidClose( 388 void CacheStorageManager::DeleteOriginDidClose(
387 const GURL& origin, 389 const GURL& origin,
388 const storage::QuotaClient::DeletionCallback& callback, 390 const storage::QuotaClient::DeletionCallback& callback,
389 std::unique_ptr<CacheStorage> cache_storage, 391 std::unique_ptr<CacheStorage> cache_storage,
390 int64_t origin_size) { 392 int64_t origin_size) {
391 // TODO(jkarlin): Deleting the storage leaves any unfinished operations 393 // TODO(jkarlin): Deleting the storage leaves any unfinished operations
392 // hanging, resulting in unresolved promises. Fix this by returning early from 394 // hanging, resulting in unresolved promises. Fix this by returning early from
393 // CacheStorage operations posted after GetSizeThenCloseAllCaches is called. 395 // CacheStorage operations posted after GetSizeThenCloseAllCaches is called.
394 cache_storage.reset(); 396 cache_storage.reset();
395 397
396 quota_manager_proxy_->NotifyStorageModified( 398 quota_manager_proxy_->NotifyStorageModified(
397 storage::QuotaClient::kServiceWorkerCache, origin, 399 storage::QuotaClient::kServiceWorkerCache, origin,
398 storage::kStorageTypeTemporary, -1 * origin_size); 400 storage::kStorageTypeTemporary, -1 * origin_size);
399 401
400 if (IsMemoryBacked()) { 402 if (IsMemoryBacked()) {
401 base::ThreadTaskRunnerHandle::Get()->PostTask( 403 base::ThreadTaskRunnerHandle::Get()->PostTask(
402 FROM_HERE, base::Bind(callback, storage::kQuotaStatusOk)); 404 FROM_HERE, base::BindOnce(callback, storage::kQuotaStatusOk));
403 return; 405 return;
404 } 406 }
405 407
406 PostTaskAndReplyWithResult( 408 PostTaskAndReplyWithResult(
407 cache_task_runner_.get(), FROM_HERE, 409 cache_task_runner_.get(), FROM_HERE,
408 base::Bind(&DeleteDir, ConstructOriginPath(root_path_, origin)), 410 base::BindOnce(&DeleteDir, ConstructOriginPath(root_path_, origin)),
409 base::Bind(&DeleteOriginDidDeleteDir, callback)); 411 base::BindOnce(&DeleteOriginDidDeleteDir, callback));
410 } 412 }
411 413
412 CacheStorageManager::CacheStorageManager( 414 CacheStorageManager::CacheStorageManager(
413 const base::FilePath& path, 415 const base::FilePath& path,
414 scoped_refptr<base::SequencedTaskRunner> cache_task_runner, 416 scoped_refptr<base::SequencedTaskRunner> cache_task_runner,
415 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy) 417 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy)
416 : root_path_(path), 418 : root_path_(path),
417 cache_task_runner_(std::move(cache_task_runner)), 419 cache_task_runner_(std::move(cache_task_runner)),
418 quota_manager_proxy_(std::move(quota_manager_proxy)), 420 quota_manager_proxy_(std::move(quota_manager_proxy)),
419 weak_ptr_factory_(this) { 421 weak_ptr_factory_(this) {
(...skipping 25 matching lines...) Expand all
445 const base::FilePath& root_path, 447 const base::FilePath& root_path,
446 const GURL& origin) { 448 const GURL& origin) {
447 const std::string identifier = storage::GetIdentifierFromOrigin(origin); 449 const std::string identifier = storage::GetIdentifierFromOrigin(origin);
448 const std::string origin_hash = base::SHA1HashString(identifier); 450 const std::string origin_hash = base::SHA1HashString(identifier);
449 const std::string origin_hash_hex = base::ToLowerASCII( 451 const std::string origin_hash_hex = base::ToLowerASCII(
450 base::HexEncode(origin_hash.c_str(), origin_hash.length())); 452 base::HexEncode(origin_hash.c_str(), origin_hash.length()));
451 return root_path.AppendASCII(origin_hash_hex); 453 return root_path.AppendASCII(origin_hash_hex);
452 } 454 }
453 455
454 } // namespace content 456 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698