Chromium Code Reviews| Index: Source/core/workers/WorkerGlobalScope.cpp |
| diff --git a/Source/core/workers/WorkerGlobalScope.cpp b/Source/core/workers/WorkerGlobalScope.cpp |
| index e69300be4d291c266a3e3a9daa6ea007a085a5d4..5e4a46d971805c501fd627fa7dbf640b062f9f6e 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(nullptr) |
| { |
| 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 = nullptr; |
| +} |
| + |
| +void WorkerGlobalScope::wasRequestedToTerminate() |
| +{ |
|
haraken
2014/04/23 08:53:55
Shall we add ASSERT(isMainThread()) ?
tkent
2014/04/23 09:13:35
I'm not 100% sure this is always in the main threa
|
| + if (m_terminationObserver) |
| + m_terminationObserver->wasRequestedToTerminate(); |
| } |
| void WorkerGlobalScope::dispose() |