| Index: content/browser/service_worker/service_worker_context_core.cc
|
| diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc
|
| index 7a8e3860eb70646f783ac7050d15d39f5842d4cd..3e6e0538e75f68a0463aece2898603cee7a68451 100644
|
| --- a/content/browser/service_worker/service_worker_context_core.cc
|
| +++ b/content/browser/service_worker/service_worker_context_core.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/browser/service_worker/service_worker_context_core.h"
|
|
|
| #include "base/files/file_path.h"
|
| +#include "base/message_loop/message_loop_proxy.h"
|
| #include "base/strings/string_util.h"
|
| #include "content/browser/service_worker/embedded_worker_registry.h"
|
| #include "content/browser/service_worker/service_worker_context_observer.h"
|
| @@ -78,11 +79,14 @@ void ServiceWorkerContextCore::ProviderHostIterator::Initialize() {
|
| ServiceWorkerContextCore::ServiceWorkerContextCore(
|
| const base::FilePath& path,
|
| base::SequencedTaskRunner* database_task_runner,
|
| + base::MessageLoopProxy* disk_cache_thread,
|
| quota::QuotaManagerProxy* quota_manager_proxy,
|
| ObserverListThreadSafe<ServiceWorkerContextObserver>* observer_list,
|
| scoped_ptr<ServiceWorkerProcessManager> process_manager)
|
| - : storage_(new ServiceWorkerStorage(
|
| - path, AsWeakPtr(), database_task_runner, quota_manager_proxy)),
|
| + : weak_factory_(this),
|
| + storage_(new ServiceWorkerStorage(
|
| + path, AsWeakPtr(), database_task_runner, disk_cache_thread,
|
| + quota_manager_proxy)),
|
| embedded_worker_registry_(new EmbeddedWorkerRegistry(AsWeakPtr())),
|
| job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())),
|
| process_manager_(process_manager.Pass()),
|
| @@ -96,10 +100,7 @@ ServiceWorkerContextCore::~ServiceWorkerContextCore() {
|
| ++it) {
|
| it->second->RemoveListener(this);
|
| }
|
| - providers_.Clear();
|
| - storage_.reset();
|
| - job_coordinator_.reset();
|
| - embedded_worker_registry_ = NULL;
|
| + weak_factory_.InvalidateWeakPtrs();
|
| }
|
|
|
| ServiceWorkerProviderHost* ServiceWorkerContextCore::GetProviderHost(
|
|
|