| 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 Google Inc. All Rights Reserved. | 3 * Copyright (C) 2009 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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 } | 159 } |
| 160 | 160 |
| 161 void WorkerMessagingProxy::reportException(const String& errorMessage, int lineN
umber, int columnNumber, const String& sourceURL) | 161 void WorkerMessagingProxy::reportException(const String& errorMessage, int lineN
umber, int columnNumber, const String& sourceURL) |
| 162 { | 162 { |
| 163 if (!m_workerObject) | 163 if (!m_workerObject) |
| 164 return; | 164 return; |
| 165 | 165 |
| 166 // We don't bother checking the askedToTerminate() flag here, because except
ions should *always* be reported even if the thread is terminated. | 166 // We don't bother checking the askedToTerminate() flag here, because except
ions should *always* be reported even if the thread is terminated. |
| 167 // This is intentionally different than the behavior in MessageWorkerTask, b
ecause terminated workers no longer deliver messages (section 4.6 of the WebWork
er spec), but they do report exceptions. | 167 // This is intentionally different than the behavior in MessageWorkerTask, b
ecause terminated workers no longer deliver messages (section 4.6 of the WebWork
er spec), but they do report exceptions. |
| 168 | 168 |
| 169 RefPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sourceURL, lineN
umber, columnNumber, 0); | 169 RefPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sourceURL, lineN
umber, columnNumber, nullptr); |
| 170 bool errorHandled = !m_workerObject->dispatchEvent(event); | 170 bool errorHandled = !m_workerObject->dispatchEvent(event); |
| 171 if (!errorHandled) | 171 if (!errorHandled) |
| 172 m_executionContext->reportException(event, 0, NotSharableCrossOrigin); | 172 m_executionContext->reportException(event, nullptr, NotSharableCrossOrig
in); |
| 173 } | 173 } |
| 174 | 174 |
| 175 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev
el level, const String& message, int lineNumber, const String& sourceURL) | 175 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev
el level, const String& message, int lineNumber, const String& sourceURL) |
| 176 { | 176 { |
| 177 if (m_askedToTerminate) | 177 if (m_askedToTerminate) |
| 178 return; | 178 return; |
| 179 m_executionContext->addConsoleMessage(source, level, message, sourceURL, lin
eNumber); | 179 m_executionContext->addConsoleMessage(source, level, message, sourceURL, lin
eNumber); |
| 180 } | 180 } |
| 181 | 181 |
| 182 void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<DedicatedWorkerThread>
workerThread) | 182 void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<DedicatedWorkerThread>
workerThread) |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 return; | 251 return; |
| 252 m_workerThread->runLoop().postDebuggerTask(createCallbackTask(dispatchOnInsp
ectorBackendTask, String(message))); | 252 m_workerThread->runLoop().postDebuggerTask(createCallbackTask(dispatchOnInsp
ectorBackendTask, String(message))); |
| 253 WorkerDebuggerAgent::interruptAndDispatchInspectorCommands(m_workerThread.ge
t()); | 253 WorkerDebuggerAgent::interruptAndDispatchInspectorCommands(m_workerThread.ge
t()); |
| 254 } | 254 } |
| 255 | 255 |
| 256 void WorkerMessagingProxy::workerGlobalScopeDestroyed() | 256 void WorkerMessagingProxy::workerGlobalScopeDestroyed() |
| 257 { | 257 { |
| 258 // This method is always the last to be performed, so the proxy is not neede
d for communication | 258 // This method is always the last to be performed, so the proxy is not neede
d for communication |
| 259 // in either side any more. However, the Worker object may still exist, and
it assumes that the proxy exists, too. | 259 // in either side any more. However, the Worker object may still exist, and
it assumes that the proxy exists, too. |
| 260 m_askedToTerminate = true; | 260 m_askedToTerminate = true; |
| 261 m_workerThread = 0; | 261 m_workerThread = nullptr; |
| 262 | 262 |
| 263 InspectorInstrumentation::workerGlobalScopeTerminated(m_executionContext.get
(), this); | 263 InspectorInstrumentation::workerGlobalScopeTerminated(m_executionContext.get
(), this); |
| 264 | 264 |
| 265 if (m_mayBeDestroyed) | 265 if (m_mayBeDestroyed) |
| 266 delete this; | 266 delete this; |
| 267 } | 267 } |
| 268 | 268 |
| 269 void WorkerMessagingProxy::terminateWorkerGlobalScope() | 269 void WorkerMessagingProxy::terminateWorkerGlobalScope() |
| 270 { | 270 { |
| 271 if (m_askedToTerminate) | 271 if (m_askedToTerminate) |
| (...skipping 25 matching lines...) Expand all Loading... |
| 297 { | 297 { |
| 298 m_workerThreadHadPendingActivity = hasPendingActivity; | 298 m_workerThreadHadPendingActivity = hasPendingActivity; |
| 299 } | 299 } |
| 300 | 300 |
| 301 bool WorkerMessagingProxy::hasPendingActivity() const | 301 bool WorkerMessagingProxy::hasPendingActivity() const |
| 302 { | 302 { |
| 303 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m
_askedToTerminate; | 303 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m
_askedToTerminate; |
| 304 } | 304 } |
| 305 | 305 |
| 306 } // namespace WebCore | 306 } // namespace WebCore |
| OLD | NEW |