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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 void WorkerMessagingProxy::reportException(const String& errorMessage, int lineN
umber, int columnNumber, const String& sourceURL) | 168 void WorkerMessagingProxy::reportException(const String& errorMessage, int lineN
umber, int columnNumber, const String& sourceURL) |
169 { | 169 { |
170 if (!m_workerObject) | 170 if (!m_workerObject) |
171 return; | 171 return; |
172 | 172 |
173 // We don't bother checking the askedToTerminate() flag here, because except
ions should *always* be reported even if the thread is terminated. | 173 // We don't bother checking the askedToTerminate() flag here, because except
ions should *always* be reported even if the thread is terminated. |
174 // 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. | 174 // 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. |
175 | 175 |
176 RefPtrWillBeRawPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sour
ceURL, lineNumber, columnNumber, 0); | 176 RefPtrWillBeRawPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sour
ceURL, lineNumber, columnNumber, 0); |
177 bool errorHandled = !m_workerObject->dispatchEvent(event); | 177 // Pass it on the error if "false" is returned, if "true" don't. |
| 178 bool errorHandled = m_workerObject->dispatchEvent(event); |
178 if (!errorHandled) | 179 if (!errorHandled) |
179 m_executionContext->reportException(event, 0, nullptr, NotSharableCrossO
rigin); | 180 m_executionContext->reportException(event, 0, nullptr, NotSharableCrossO
rigin); |
180 } | 181 } |
181 | 182 |
182 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev
el level, const String& message, int lineNumber, const String& sourceURL) | 183 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev
el level, const String& message, int lineNumber, const String& sourceURL) |
183 { | 184 { |
184 if (m_askedToTerminate) | 185 if (m_askedToTerminate) |
185 return; | 186 return; |
186 // FIXME: In case of nested workers, this should go directly to the root Doc
ument context. | 187 // FIXME: In case of nested workers, this should go directly to the root Doc
ument context. |
187 ASSERT(m_executionContext->isDocument()); | 188 ASSERT(m_executionContext->isDocument()); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 | 288 |
288 // FIXME: This need to be revisited when we support nested worker one day | 289 // FIXME: This need to be revisited when we support nested worker one day |
289 ASSERT(m_executionContext->isDocument()); | 290 ASSERT(m_executionContext->isDocument()); |
290 Document* document = toDocument(m_executionContext.get()); | 291 Document* document = toDocument(m_executionContext.get()); |
291 LocalFrame* frame = document->frame(); | 292 LocalFrame* frame = document->frame(); |
292 if (frame) | 293 if (frame) |
293 frame->console().adoptWorkerMessagesAfterTermination(this); | 294 frame->console().adoptWorkerMessagesAfterTermination(this); |
294 } | 295 } |
295 | 296 |
296 } // namespace blink | 297 } // namespace blink |
OLD | NEW |