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

Unified Diff: content/browser/service_worker/service_worker_process_manager.cc

Issue 292973003: Reparent SWProcessManager onto SWContextWrapper. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on fixed embedded_worker_instance test, and clean up embedded_worker_instance. Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_process_manager.cc
diff --git a/content/browser/service_worker/service_worker_process_manager.cc b/content/browser/service_worker/service_worker_process_manager.cc
index 0d7b70d4b2e0c3658728daa6058c94ef0231117b..03c156be4dc064b148ae2077e530768b81d8418d 100644
--- a/content/browser/service_worker/service_worker_process_manager.cc
+++ b/content/browser/service_worker/service_worker_process_manager.cc
@@ -35,8 +35,8 @@ ServiceWorkerProcessManager::ProcessInfo::~ProcessInfo() {
}
ServiceWorkerProcessManager::ServiceWorkerProcessManager(
- ServiceWorkerContextWrapper* context_wrapper)
- : context_wrapper_(context_wrapper),
+ BrowserContext* browser_context)
+ : browser_context_(browser_context),
process_id_for_test_(-1),
weak_this_factory_(this),
weak_this_(weak_this_factory_.GetWeakPtr()) {
@@ -44,6 +44,13 @@ ServiceWorkerProcessManager::ServiceWorkerProcessManager(
ServiceWorkerProcessManager::~ServiceWorkerProcessManager() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(browser_context_ == NULL)
+ << "Call Shutdown() before destroying |this|, so that racing method "
+ << "invocations don't use a destroyed BrowserContext.";
+}
+
+void ServiceWorkerProcessManager::Shutdown() {
+ browser_context_ = NULL;
}
void ServiceWorkerProcessManager::AllocateWorkerProcess(
@@ -91,7 +98,7 @@ void ServiceWorkerProcessManager::AllocateWorkerProcess(
}
}
- if (!context_wrapper_->browser_context_) {
+ if (!browser_context_) {
// Shutdown has started.
BrowserThread::PostTask(
BrowserThread::IO,
@@ -100,8 +107,8 @@ void ServiceWorkerProcessManager::AllocateWorkerProcess(
return;
}
// No existing processes available; start a new one.
- scoped_refptr<SiteInstance> site_instance = SiteInstance::CreateForURL(
- context_wrapper_->browser_context_, script_url);
+ scoped_refptr<SiteInstance> site_instance =
+ SiteInstance::CreateForURL(browser_context_, script_url);
RenderProcessHost* rph = site_instance->GetProcess();
// This Init() call posts a task to the IO thread that adds the RPH's
// ServiceWorkerDispatcherHost to the

Powered by Google App Engine
This is Rietveld 408576698