| 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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 MessageWorkerGlobalScopeTask(PassRefPtr<SerializedScriptValue> message, Pass
OwnPtr<MessagePortChannelArray> channels) | 65 MessageWorkerGlobalScopeTask(PassRefPtr<SerializedScriptValue> message, Pass
OwnPtr<MessagePortChannelArray> channels) |
| 66 : m_message(message) | 66 : m_message(message) |
| 67 , m_channels(channels) | 67 , m_channels(channels) |
| 68 { | 68 { |
| 69 } | 69 } |
| 70 | 70 |
| 71 virtual void performTask(ExecutionContext* scriptContext) | 71 virtual void performTask(ExecutionContext* scriptContext) |
| 72 { | 72 { |
| 73 ASSERT_WITH_SECURITY_IMPLICATION(scriptContext->isWorkerGlobalScope()); | 73 ASSERT_WITH_SECURITY_IMPLICATION(scriptContext->isWorkerGlobalScope()); |
| 74 DedicatedWorkerGlobalScope* context = static_cast<DedicatedWorkerGlobalS
cope*>(scriptContext); | 74 DedicatedWorkerGlobalScope* context = static_cast<DedicatedWorkerGlobalS
cope*>(scriptContext); |
| 75 OwnPtr<MessagePortArray> ports = MessagePort::entanglePorts(*scriptConte
xt, m_channels.release()); | 75 OwnPtrWillBeRawPtr<MessagePortArray> ports = MessagePort::entanglePorts(
*scriptContext, m_channels.release()); |
| 76 context->dispatchEvent(MessageEvent::create(ports.release(), m_message))
; | 76 context->dispatchEvent(MessageEvent::create(ports.release(), m_message))
; |
| 77 context->thread()->workerObjectProxy().confirmMessageFromWorkerObject(co
ntext->hasPendingActivity()); | 77 context->thread()->workerObjectProxy().confirmMessageFromWorkerObject(co
ntext->hasPendingActivity()); |
| 78 } | 78 } |
| 79 | 79 |
| 80 private: | 80 private: |
| 81 RefPtr<SerializedScriptValue> m_message; | 81 RefPtr<SerializedScriptValue> m_message; |
| 82 OwnPtr<MessagePortChannelArray> m_channels; | 82 OwnPtr<MessagePortChannelArray> m_channels; |
| 83 }; | 83 }; |
| 84 | 84 |
| 85 WorkerMessagingProxy::WorkerMessagingProxy(Worker* workerObject, PassOwnPtrWillB
eRawPtr<WorkerClients> workerClients) | 85 WorkerMessagingProxy::WorkerMessagingProxy(Worker* workerObject, PassOwnPtrWillB
eRawPtr<WorkerClients> workerClients) |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 workerThreadCreated(thread); | 118 workerThreadCreated(thread); |
| 119 thread->start(); | 119 thread->start(); |
| 120 InspectorInstrumentation::didStartWorkerGlobalScope(m_executionContext.get()
, this, scriptURL); | 120 InspectorInstrumentation::didStartWorkerGlobalScope(m_executionContext.get()
, this, scriptURL); |
| 121 } | 121 } |
| 122 | 122 |
| 123 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript
Value> message, PassOwnPtr<MessagePortChannelArray> channels) | 123 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript
Value> message, PassOwnPtr<MessagePortChannelArray> channels) |
| 124 { | 124 { |
| 125 if (!m_workerObject || m_askedToTerminate) | 125 if (!m_workerObject || m_askedToTerminate) |
| 126 return; | 126 return; |
| 127 | 127 |
| 128 OwnPtr<MessagePortArray> ports = MessagePort::entanglePorts(*m_executionCont
ext.get(), channels); | 128 OwnPtrWillBeRawPtr<MessagePortArray> ports = MessagePort::entanglePorts(*m_e
xecutionContext.get(), channels); |
| 129 m_workerObject->dispatchEvent(MessageEvent::create(ports.release(), message)
); | 129 m_workerObject->dispatchEvent(MessageEvent::create(ports.release(), message)
); |
| 130 } | 130 } |
| 131 | 131 |
| 132 void WorkerMessagingProxy::postMessageToWorkerGlobalScope(PassRefPtr<SerializedS
criptValue> message, PassOwnPtr<MessagePortChannelArray> channels) | 132 void WorkerMessagingProxy::postMessageToWorkerGlobalScope(PassRefPtr<SerializedS
criptValue> message, PassOwnPtr<MessagePortChannelArray> channels) |
| 133 { | 133 { |
| 134 if (m_askedToTerminate) | 134 if (m_askedToTerminate) |
| 135 return; | 135 return; |
| 136 | 136 |
| 137 if (m_workerThread) { | 137 if (m_workerThread) { |
| 138 ++m_unconfirmedMessageCount; | 138 ++m_unconfirmedMessageCount; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after 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 |