OLD | NEW |
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_storage.h" | 5 #include "content/browser/service_worker/service_worker_storage.h" |
6 | 6 |
7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/sequenced_task_runner.h" | 10 #include "base/sequenced_task_runner.h" |
(...skipping 1412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1423 id, base::Bind(&ServiceWorkerStorage::OnResourcePurged, | 1423 id, base::Bind(&ServiceWorkerStorage::OnResourcePurged, |
1424 weak_factory_.GetWeakPtr(), id)); | 1424 weak_factory_.GetWeakPtr(), id)); |
1425 if (rv != net::ERR_IO_PENDING) | 1425 if (rv != net::ERR_IO_PENDING) |
1426 OnResourcePurged(id, rv); | 1426 OnResourcePurged(id, rv); |
1427 } | 1427 } |
1428 | 1428 |
1429 void ServiceWorkerStorage::OnResourcePurged(int64 id, int rv) { | 1429 void ServiceWorkerStorage::OnResourcePurged(int64 id, int rv) { |
1430 DCHECK(is_purge_pending_); | 1430 DCHECK(is_purge_pending_); |
1431 is_purge_pending_ = false; | 1431 is_purge_pending_ = false; |
1432 | 1432 |
| 1433 ServiceWorkerMetrics::RecordPurgeResourceResult(rv); |
| 1434 |
1433 database_task_manager_->GetTaskRunner()->PostTask( | 1435 database_task_manager_->GetTaskRunner()->PostTask( |
1434 FROM_HERE, | 1436 FROM_HERE, |
1435 base::Bind(base::IgnoreResult( | 1437 base::Bind(base::IgnoreResult( |
1436 &ServiceWorkerDatabase::ClearPurgeableResourceIds), | 1438 &ServiceWorkerDatabase::ClearPurgeableResourceIds), |
1437 base::Unretained(database_.get()), | 1439 base::Unretained(database_.get()), |
1438 std::set<int64>(&id, &id + 1))); | 1440 std::set<int64>(&id, &id + 1))); |
1439 | 1441 |
| 1442 // Continue purging resources regardless of the previous result. |
1440 ContinuePurgingResources(); | 1443 ContinuePurgingResources(); |
1441 } | 1444 } |
1442 | 1445 |
1443 void ServiceWorkerStorage::DeleteStaleResources() { | 1446 void ServiceWorkerStorage::DeleteStaleResources() { |
1444 DCHECK(!has_checked_for_stale_resources_); | 1447 DCHECK(!has_checked_for_stale_resources_); |
1445 has_checked_for_stale_resources_ = true; | 1448 has_checked_for_stale_resources_ = true; |
1446 database_task_manager_->GetTaskRunner()->PostTask( | 1449 database_task_manager_->GetTaskRunner()->PostTask( |
1447 FROM_HERE, | 1450 FROM_HERE, |
1448 base::Bind(&ServiceWorkerStorage::CollectStaleResourcesFromDB, | 1451 base::Bind(&ServiceWorkerStorage::CollectStaleResourcesFromDB, |
1449 database_.get(), | 1452 database_.get(), |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1817 callback.Run(SERVICE_WORKER_ERROR_FAILED); | 1820 callback.Run(SERVICE_WORKER_ERROR_FAILED); |
1818 return; | 1821 return; |
1819 } | 1822 } |
1820 DVLOG(1) << "Deleted ServiceWorkerDiskCache successfully."; | 1823 DVLOG(1) << "Deleted ServiceWorkerDiskCache successfully."; |
1821 ServiceWorkerMetrics::RecordDeleteAndStartOverResult( | 1824 ServiceWorkerMetrics::RecordDeleteAndStartOverResult( |
1822 ServiceWorkerMetrics::DELETE_OK); | 1825 ServiceWorkerMetrics::DELETE_OK); |
1823 callback.Run(SERVICE_WORKER_OK); | 1826 callback.Run(SERVICE_WORKER_OK); |
1824 } | 1827 } |
1825 | 1828 |
1826 } // namespace content | 1829 } // namespace content |
OLD | NEW |