OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
3 * Copyright (C) 2009, 2011 Google Inc. All Rights Reserved. | 3 * Copyright (C) 2009, 2011 Google Inc. All Rights Reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
77 WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W orkerThread* thread, double timeOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> wo rkerClients) | 77 WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W orkerThread* thread, double timeOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> wo rkerClients) |
78 : m_url(url) | 78 : m_url(url) |
79 , m_userAgent(userAgent) | 79 , m_userAgent(userAgent) |
80 , m_script(adoptPtr(new WorkerScriptController(*this))) | 80 , m_script(adoptPtr(new WorkerScriptController(*this))) |
81 , m_thread(thread) | 81 , m_thread(thread) |
82 , m_workerInspectorController(adoptPtr(new WorkerInspectorController(this))) | 82 , m_workerInspectorController(adoptPtr(new WorkerInspectorController(this))) |
83 , m_closing(false) | 83 , m_closing(false) |
84 , m_eventQueue(WorkerEventQueue::create(this)) | 84 , m_eventQueue(WorkerEventQueue::create(this)) |
85 , m_workerClients(workerClients) | 85 , m_workerClients(workerClients) |
86 , m_timeOrigin(timeOrigin) | 86 , m_timeOrigin(timeOrigin) |
87 , m_terminationObserver(nullptr) | |
87 { | 88 { |
88 ScriptWrappable::init(this); | 89 ScriptWrappable::init(this); |
89 setClient(this); | 90 setClient(this); |
90 setSecurityOrigin(SecurityOrigin::create(url)); | 91 setSecurityOrigin(SecurityOrigin::create(url)); |
91 m_workerClients->reattachThread(); | 92 m_workerClients->reattachThread(); |
92 } | 93 } |
93 | 94 |
94 WorkerGlobalScope::~WorkerGlobalScope() | 95 WorkerGlobalScope::~WorkerGlobalScope() |
95 { | 96 { |
96 } | 97 } |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
177 void WorkerGlobalScope::postTask(PassOwnPtr<ExecutionContextTask> task) | 178 void WorkerGlobalScope::postTask(PassOwnPtr<ExecutionContextTask> task) |
178 { | 179 { |
179 thread()->runLoop().postTask(task); | 180 thread()->runLoop().postTask(task); |
180 } | 181 } |
181 | 182 |
182 void WorkerGlobalScope::clearInspector() | 183 void WorkerGlobalScope::clearInspector() |
183 { | 184 { |
184 m_workerInspectorController.clear(); | 185 m_workerInspectorController.clear(); |
185 } | 186 } |
186 | 187 |
187 void WorkerGlobalScope::willStopActiveDOMObjects() | 188 void WorkerGlobalScope::registerTerminationObserver(TerminationObserver* observe r) |
188 { | 189 { |
189 lifecycleNotifier().notifyWillStopActiveDOMObjects(); | 190 ASSERT(!m_terminationObserver); |
191 ASSERT(observer); | |
192 m_terminationObserver = observer; | |
193 } | |
194 | |
195 void WorkerGlobalScope::unregisterTerminationObserver(TerminationObserver* obser ver) | |
196 { | |
197 ASSERT(observer); | |
198 ASSERT(m_terminationObserver == observer); | |
199 m_terminationObserver = nullptr; | |
200 } | |
201 | |
202 void WorkerGlobalScope::wasRequestedToTerminate() | |
203 { | |
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
| |
204 if (m_terminationObserver) | |
205 m_terminationObserver->wasRequestedToTerminate(); | |
190 } | 206 } |
191 | 207 |
192 void WorkerGlobalScope::dispose() | 208 void WorkerGlobalScope::dispose() |
193 { | 209 { |
194 ASSERT(thread()->isCurrentThread()); | 210 ASSERT(thread()->isCurrentThread()); |
195 | 211 |
196 clearScript(); | 212 clearScript(); |
197 clearInspector(); | 213 clearInspector(); |
198 setClient(0); | 214 setClient(0); |
199 | 215 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
307 void WorkerGlobalScope::trace(Visitor* visitor) | 323 void WorkerGlobalScope::trace(Visitor* visitor) |
308 { | 324 { |
309 visitor->trace(m_console); | 325 visitor->trace(m_console); |
310 visitor->trace(m_location); | 326 visitor->trace(m_location); |
311 visitor->trace(m_navigator); | 327 visitor->trace(m_navigator); |
312 visitor->trace(m_workerClients); | 328 visitor->trace(m_workerClients); |
313 WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor); | 329 WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor); |
314 } | 330 } |
315 | 331 |
316 } // namespace WebCore | 332 } // namespace WebCore |
OLD | NEW |