| 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 , m_script(adoptPtr(new WorkerScriptController(*this))) | 85 , m_script(adoptPtr(new WorkerScriptController(*this))) |
| 86 , m_thread(thread) | 86 , m_thread(thread) |
| 87 , m_workerInspectorController(adoptRefWillBeNoop(new WorkerInspectorControll
er(this))) | 87 , m_workerInspectorController(adoptRefWillBeNoop(new WorkerInspectorControll
er(this))) |
| 88 , m_closing(false) | 88 , m_closing(false) |
| 89 , m_eventQueue(WorkerEventQueue::create(this)) | 89 , m_eventQueue(WorkerEventQueue::create(this)) |
| 90 , m_workerClients(workerClients) | 90 , m_workerClients(workerClients) |
| 91 , m_timeOrigin(timeOrigin) | 91 , m_timeOrigin(timeOrigin) |
| 92 , m_terminationObserver(0) | 92 , m_terminationObserver(0) |
| 93 , m_messageStorage(ConsoleMessageStorage::createForWorker(this)) | 93 , m_messageStorage(ConsoleMessageStorage::createForWorker(this)) |
| 94 { | 94 { |
| 95 setClient(this); | |
| 96 setSecurityOrigin(SecurityOrigin::create(url)); | 95 setSecurityOrigin(SecurityOrigin::create(url)); |
| 97 m_workerClients->reattachThread(); | 96 m_workerClients->reattachThread(); |
| 98 m_thread->setWorkerInspectorController(m_workerInspectorController.get()); | 97 m_thread->setWorkerInspectorController(m_workerInspectorController.get()); |
| 99 } | 98 } |
| 100 | 99 |
| 101 WorkerGlobalScope::~WorkerGlobalScope() | 100 WorkerGlobalScope::~WorkerGlobalScope() |
| 102 { | 101 { |
| 103 } | 102 } |
| 104 | 103 |
| 105 void WorkerGlobalScope::applyContentSecurityPolicyFromString(const String& polic
y, ContentSecurityPolicyHeaderType contentSecurityPolicyType) | 104 void WorkerGlobalScope::applyContentSecurityPolicyFromString(const String& polic
y, ContentSecurityPolicyHeaderType contentSecurityPolicyType) |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 m_terminationObserver->wasRequestedToTerminate(); | 208 m_terminationObserver->wasRequestedToTerminate(); |
| 210 } | 209 } |
| 211 | 210 |
| 212 void WorkerGlobalScope::dispose() | 211 void WorkerGlobalScope::dispose() |
| 213 { | 212 { |
| 214 ASSERT(thread()->isCurrentThread()); | 213 ASSERT(thread()->isCurrentThread()); |
| 215 | 214 |
| 216 m_eventQueue->close(); | 215 m_eventQueue->close(); |
| 217 clearScript(); | 216 clearScript(); |
| 218 clearInspector(); | 217 clearInspector(); |
| 219 setClient(0); | |
| 220 | |
| 221 // We do not clear the thread field of the | 218 // We do not clear the thread field of the |
| 222 // WorkerGlobalScope. Other objects keep the worker global scope | 219 // WorkerGlobalScope. Other objects keep the worker global scope |
| 223 // alive because they need its thread field to check that work is | 220 // alive because they need its thread field to check that work is |
| 224 // being carried out on the right thread. We therefore cannot clear | 221 // being carried out on the right thread. We therefore cannot clear |
| 225 // the thread field before all references to the worker global | 222 // the thread field before all references to the worker global |
| 226 // scope are gone. | 223 // scope are gone. |
| 227 } | 224 } |
| 228 | 225 |
| 229 void WorkerGlobalScope::importScripts(const Vector<String>& urls, ExceptionState
& exceptionState) | 226 void WorkerGlobalScope::importScripts(const Vector<String>& urls, ExceptionState
& exceptionState) |
| 230 { | 227 { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 void WorkerGlobalScope::logExceptionToConsole(const String& errorMessage, int, c
onst String& sourceURL, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr
<ScriptCallStack>) | 276 void WorkerGlobalScope::logExceptionToConsole(const String& errorMessage, int, c
onst String& sourceURL, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr
<ScriptCallStack>) |
| 280 { | 277 { |
| 281 thread()->workerReportingProxy().reportException(errorMessage, lineNumber, c
olumnNumber, sourceURL); | 278 thread()->workerReportingProxy().reportException(errorMessage, lineNumber, c
olumnNumber, sourceURL); |
| 282 } | 279 } |
| 283 | 280 |
| 284 void WorkerGlobalScope::reportBlockedScriptExecutionToInspector(const String& di
rectiveText) | 281 void WorkerGlobalScope::reportBlockedScriptExecutionToInspector(const String& di
rectiveText) |
| 285 { | 282 { |
| 286 InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText); | 283 InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText); |
| 287 } | 284 } |
| 288 | 285 |
| 289 void WorkerGlobalScope::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpCon
soleMessage) | 286 void WorkerGlobalScope::addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>
prpConsoleMessage) |
| 290 { | 287 { |
| 291 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage; | 288 RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage; |
| 292 if (!isContextThread()) { | 289 if (!isContextThread()) { |
| 293 postTask(AddConsoleMessageTask::create(consoleMessage->source(), console
Message->level(), consoleMessage->message())); | 290 postTask(AddConsoleMessageTask::create(consoleMessage->source(), console
Message->level(), consoleMessage->message())); |
| 294 return; | 291 return; |
| 295 } | 292 } |
| 296 thread()->workerReportingProxy().reportConsoleMessage(consoleMessage); | 293 thread()->workerReportingProxy().reportConsoleMessage(consoleMessage); |
| 297 addMessageToWorkerConsole(consoleMessage.release()); | 294 addMessageToWorkerConsole(consoleMessage.release()); |
| 298 } | 295 } |
| 299 | 296 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 visitor->trace(m_workerInspectorController); | 343 visitor->trace(m_workerInspectorController); |
| 347 visitor->trace(m_eventQueue); | 344 visitor->trace(m_eventQueue); |
| 348 visitor->trace(m_workerClients); | 345 visitor->trace(m_workerClients); |
| 349 visitor->trace(m_messageStorage); | 346 visitor->trace(m_messageStorage); |
| 350 WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor); | 347 WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor); |
| 351 ExecutionContext::trace(visitor); | 348 ExecutionContext::trace(visitor); |
| 352 EventTargetWithInlineData::trace(visitor); | 349 EventTargetWithInlineData::trace(visitor); |
| 353 } | 350 } |
| 354 | 351 |
| 355 } // namespace blink | 352 } // namespace blink |
| OLD | NEW |