Index: Source/core/workers/WorkerGlobalScope.cpp |
diff --git a/Source/core/workers/WorkerGlobalScope.cpp b/Source/core/workers/WorkerGlobalScope.cpp |
index e69300be4d291c266a3e3a9daa6ea007a085a5d4..b6175d3d134cac3be2ab168f9771736ec816cc20 100644 |
--- a/Source/core/workers/WorkerGlobalScope.cpp |
+++ b/Source/core/workers/WorkerGlobalScope.cpp |
@@ -84,6 +84,7 @@ WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W |
, m_eventQueue(WorkerEventQueue::create(this)) |
, m_workerClients(workerClients) |
, m_timeOrigin(timeOrigin) |
+ , m_terminationObserver(0) |
{ |
ScriptWrappable::init(this); |
setClient(this); |
@@ -184,9 +185,24 @@ void WorkerGlobalScope::clearInspector() |
m_workerInspectorController.clear(); |
} |
-void WorkerGlobalScope::willStopActiveDOMObjects() |
+void WorkerGlobalScope::registerTerminationObserver(TerminationObserver* observer) |
{ |
- lifecycleNotifier().notifyWillStopActiveDOMObjects(); |
+ ASSERT(!m_terminationObserver); |
+ ASSERT(observer); |
+ m_terminationObserver = observer; |
+} |
+ |
+void WorkerGlobalScope::unregisterTerminationObserver(TerminationObserver* observer) |
+{ |
+ ASSERT(observer); |
+ ASSERT(m_terminationObserver == observer); |
+ m_terminationObserver = 0; |
+} |
+ |
+void WorkerGlobalScope::wasRequestedToTerminate() |
+{ |
+ if (m_terminationObserver) |
+ m_terminationObserver->wasRequestedToTerminate(); |
} |
void WorkerGlobalScope::dispose() |