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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 virtual void performTask(ScriptExecutionContext* context) | 132 virtual void performTask(ScriptExecutionContext* context) |
133 { | 133 { |
134 Worker* workerObject = m_messagingProxy->workerObject(); | 134 Worker* workerObject = m_messagingProxy->workerObject(); |
135 if (!workerObject) | 135 if (!workerObject) |
136 return; | 136 return; |
137 | 137 |
138 // We don't bother checking the askedToTerminate() flag here, because ex
ceptions should *always* be reported even if the thread is terminated. | 138 // We don't bother checking the askedToTerminate() flag here, because ex
ceptions should *always* be reported even if the thread is terminated. |
139 // This is intentionally different than the behavior in MessageWorkerTas
k, because terminated workers no longer deliver messages (section 4.6 of the Web
Worker spec), but they do report exceptions. | 139 // This is intentionally different than the behavior in MessageWorkerTas
k, because terminated workers no longer deliver messages (section 4.6 of the Web
Worker spec), but they do report exceptions. |
140 | 140 |
141 bool errorHandled = !workerObject->dispatchEvent(ErrorEvent::create(m_er
rorMessage, m_sourceURL, m_lineNumber, m_columnNumber)); | 141 RefPtr<ErrorEvent> event = ErrorEvent::create(m_errorMessage, m_sourceUR
L, m_lineNumber, m_columnNumber); |
| 142 bool errorHandled = !workerObject->dispatchEvent(event); |
142 if (!errorHandled) | 143 if (!errorHandled) |
143 context->reportException(m_errorMessage, m_lineNumber, m_columnNumbe
r, m_sourceURL, 0); | 144 context->reportException(event, 0); |
144 } | 145 } |
145 | 146 |
146 String m_errorMessage; | 147 String m_errorMessage; |
147 int m_lineNumber; | 148 int m_lineNumber; |
148 int m_columnNumber; | 149 int m_columnNumber; |
149 String m_sourceURL; | 150 String m_sourceURL; |
150 WorkerMessagingProxy* m_messagingProxy; | 151 WorkerMessagingProxy* m_messagingProxy; |
151 }; | 152 }; |
152 | 153 |
153 class WorkerGlobalScopeDestroyedTask : public ScriptExecutionContext::Task { | 154 class WorkerGlobalScopeDestroyedTask : public ScriptExecutionContext::Task { |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 | 472 |
472 m_workerThreadHadPendingActivity = hasPendingActivity; | 473 m_workerThreadHadPendingActivity = hasPendingActivity; |
473 } | 474 } |
474 | 475 |
475 bool WorkerMessagingProxy::hasPendingActivity() const | 476 bool WorkerMessagingProxy::hasPendingActivity() const |
476 { | 477 { |
477 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m
_askedToTerminate; | 478 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m
_askedToTerminate; |
478 } | 479 } |
479 | 480 |
480 } // namespace WebCore | 481 } // namespace WebCore |
OLD | NEW |