Index: Source/modules/webdatabase/DatabaseContext.cpp |
diff --git a/Source/modules/webdatabase/DatabaseContext.cpp b/Source/modules/webdatabase/DatabaseContext.cpp |
index 5ff09d800b9396717989dfd74c75865ea4cf1a84..a9828bc84b95f4576ccf98e5b70b6a7a4e2f30bc 100644 |
--- a/Source/modules/webdatabase/DatabaseContext.cpp |
+++ b/Source/modules/webdatabase/DatabaseContext.cpp |
@@ -105,6 +105,8 @@ DatabaseContext::DatabaseContext(ExecutionContext* context) |
// For debug accounting only. We must do this before we register the |
// instance. The assertions assume this. |
DatabaseManager::manager().didConstructDatabaseContext(); |
+ if (context->isWorkerGlobalScope()) |
+ toWorkerGlobalScope(context)->registerTerminationObserver(this); |
} |
DatabaseContext::~DatabaseContext() |
@@ -129,11 +131,13 @@ void DatabaseContext::contextDestroyed() |
{ |
RefPtrWillBeRawPtr<DatabaseContext> protector(this); |
stopDatabases(); |
+ if (executionContext()->isWorkerGlobalScope()) |
+ toWorkerGlobalScope(executionContext())->unregisterTerminationObserver(this); |
DatabaseManager::manager().unregisterDatabaseContext(this); |
ActiveDOMObject::contextDestroyed(); |
} |
-void DatabaseContext::willStop() |
+void DatabaseContext::wasRequestedToTerminate() |
{ |
DatabaseManager::manager().interruptAllDatabasesForContext(this); |
} |