| Index: content/browser/service_worker/service_worker_context_wrapper.cc
|
| diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
|
| index e5af3faa5fccd6035ed03f0242e693e8ccc7036c..517475b5775ed9f0ec150e426a38f61d02fae569 100644
|
| --- a/content/browser/service_worker/service_worker_context_wrapper.cc
|
| +++ b/content/browser/service_worker/service_worker_context_wrapper.cc
|
| @@ -101,6 +101,8 @@ ServiceWorkerContextWrapper::ServiceWorkerContextWrapper(
|
| }
|
|
|
| ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() {
|
| + DCHECK(!resource_context_);
|
| + DCHECK(!request_context_getter_);
|
| }
|
|
|
| void ServiceWorkerContextWrapper::Init(
|
| @@ -143,7 +145,6 @@ void ServiceWorkerContextWrapper::InitializeResourceContext(
|
|
|
| void ServiceWorkerContextWrapper::OnContextShuttingDown() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - request_context_getter_->RemoveObserver(this);
|
|
|
| // OnContextShuttingDown is called when the ProfileIOData (ResourceContext) is
|
| // shutting down, so call ShutdownOnIO() to clear resource_context_.
|
| @@ -702,6 +703,10 @@ void ServiceWorkerContextWrapper::InitInternal(
|
|
|
| void ServiceWorkerContextWrapper::ShutdownOnIO() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + // Can be null in tests.
|
| + if (request_context_getter_)
|
| + request_context_getter_->RemoveObserver(this);
|
| + request_context_getter_ = nullptr;
|
| resource_context_ = nullptr;
|
| context_core_.reset();
|
| }
|
|
|