Index: content/browser/service_worker/service_worker_disk_cache_migrator.h |
diff --git a/content/browser/service_worker/service_worker_disk_cache_migrator.h b/content/browser/service_worker/service_worker_disk_cache_migrator.h |
index 283db71a4abfde10662b44ed6874650eb704b2b3..20d0981f97c95e6fcd0a167d4bed56615d17d16d 100644 |
--- a/content/browser/service_worker/service_worker_disk_cache_migrator.h |
+++ b/content/browser/service_worker/service_worker_disk_cache_migrator.h |
@@ -2,6 +2,9 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DISK_CACHE_MIGRATOR_H_ |
+#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DISK_CACHE_MIGRATOR_H_ |
+ |
#include "content/browser/service_worker/service_worker_disk_cache.h" |
#include "base/id_map.h" |
@@ -22,8 +25,11 @@ class CONTENT_EXPORT ServiceWorkerDiskCacheMigrator { |
public: |
using StatusCallback = base::Callback<void(ServiceWorkerStatusCode)>; |
- ServiceWorkerDiskCacheMigrator(ServiceWorkerDiskCache* src, |
- ServiceWorkerDiskCache* dest); |
+ ServiceWorkerDiskCacheMigrator( |
+ const base::FilePath& src_path, |
+ const base::FilePath& dest_path, |
+ int max_disk_cache_size, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& disk_cache_thread); |
~ServiceWorkerDiskCacheMigrator(); |
// Returns SERVICE_WORKER_OK if all resources are successfully migrated. The |
@@ -31,12 +37,20 @@ class CONTENT_EXPORT ServiceWorkerDiskCacheMigrator { |
void Start(const StatusCallback& callback); |
private: |
- friend class ServiceWorkerDiskCacheMigratorTest; |
+ FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDiskCacheMigratorTest, |
+ ThrottleInflightTasks); |
+ |
class Task; |
class WrappedEntry; |
using InflightTaskMap = IDMap<Task, IDMapOwnPointer>; |
+ void DidDeleteDestDirectory(bool deleted); |
+ void DidInitializeDiskCache(bool* is_failed, |
+ const base::Closure& barrier_closure, |
+ int result); |
+ void DidInitializeAllDiskCaches(bool* is_failed); |
+ |
void OpenNextEntry(); |
void OnNextEntryOpened(scoped_ptr<WrappedEntry> entry, int result); |
void RunPendingTask(); |
@@ -51,14 +65,21 @@ class CONTENT_EXPORT ServiceWorkerDiskCacheMigrator { |
scoped_ptr<disk_cache::Backend::Iterator> iterator_; |
bool is_iterating_ = false; |
- ServiceWorkerDiskCache* src_; |
- ServiceWorkerDiskCache* dest_; |
+ base::FilePath src_path_; |
+ base::FilePath dest_path_; |
+ scoped_ptr<ServiceWorkerDiskCache> src_; |
+ scoped_ptr<ServiceWorkerDiskCache> dest_; |
+ const int max_disk_cache_size_; |
+ scoped_refptr<base::SingleThreadTaskRunner> disk_cache_thread_; |
InflightTaskMap::KeyType next_task_id_ = 0; |
InflightTaskMap inflight_tasks_; |
scoped_ptr<Task> pending_task_; |
size_t max_number_of_inflight_tasks_ = 10; |
+ base::TimeTicks start_time_; |
+ size_t number_of_migrated_resources_ = 0; |
+ |
StatusCallback callback_; |
base::WeakPtrFactory<ServiceWorkerDiskCacheMigrator> weak_factory_; |
@@ -67,3 +88,5 @@ class CONTENT_EXPORT ServiceWorkerDiskCacheMigrator { |
}; |
} // namespace content |
+ |
+#endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DISK_CACHE_MIGRATOR_H_ |