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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 OriginTrialContext::getTokens(document).get(), | 112 OriginTrialContext::getTokens(document).get(), |
113 std::move(workerSettings), workerV8Settings); | 113 std::move(workerSettings), workerV8Settings); |
114 | 114 |
115 initializeWorkerThread(std::move(startupData)); | 115 initializeWorkerThread(std::move(startupData)); |
116 workerInspectorProxy()->workerThreadCreated(document, workerThread(), | 116 workerInspectorProxy()->workerThreadCreated(document, workerThread(), |
117 scriptURL); | 117 scriptURL); |
118 } | 118 } |
119 | 119 |
120 void InProcessWorkerMessagingProxy::postMessageToWorkerObject( | 120 void InProcessWorkerMessagingProxy::postMessageToWorkerObject( |
121 PassRefPtr<SerializedScriptValue> message, | 121 PassRefPtr<SerializedScriptValue> message, |
122 std::unique_ptr<MessagePortChannelArray> channels) { | 122 MessagePortChannelArray channels) { |
123 DCHECK(isParentContextThread()); | 123 DCHECK(isParentContextThread()); |
124 if (!m_workerObject || askedToTerminate()) | 124 if (!m_workerObject || askedToTerminate()) |
125 return; | 125 return; |
126 | 126 |
127 MessagePortArray* ports = | 127 MessagePortArray* ports = |
128 MessagePort::entanglePorts(*getExecutionContext(), std::move(channels)); | 128 MessagePort::entanglePorts(*getExecutionContext(), std::move(channels)); |
129 m_workerObject->dispatchEvent( | 129 m_workerObject->dispatchEvent( |
130 MessageEvent::create(ports, std::move(message))); | 130 MessageEvent::create(ports, std::move(message))); |
131 } | 131 } |
132 | 132 |
133 void InProcessWorkerMessagingProxy::postMessageToWorkerGlobalScope( | 133 void InProcessWorkerMessagingProxy::postMessageToWorkerGlobalScope( |
134 PassRefPtr<SerializedScriptValue> message, | 134 PassRefPtr<SerializedScriptValue> message, |
135 std::unique_ptr<MessagePortChannelArray> channels) { | 135 MessagePortChannelArray channels) { |
136 DCHECK(isParentContextThread()); | 136 DCHECK(isParentContextThread()); |
137 if (askedToTerminate()) | 137 if (askedToTerminate()) |
138 return; | 138 return; |
139 | 139 |
140 if (workerThread()) { | 140 if (workerThread()) { |
141 // A message event is an activity and may initiate another activity. | 141 // A message event is an activity and may initiate another activity. |
142 m_workerGlobalScopeHasPendingActivity = true; | 142 m_workerGlobalScopeHasPendingActivity = true; |
143 ++m_unconfirmedMessageCount; | 143 ++m_unconfirmedMessageCount; |
144 std::unique_ptr<WTF::CrossThreadClosure> task = crossThreadBind( | 144 std::unique_ptr<WTF::CrossThreadClosure> task = crossThreadBind( |
145 &InProcessWorkerObjectProxy::processMessageFromWorkerObject, | 145 &InProcessWorkerObjectProxy::processMessageFromWorkerObject, |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 | 233 |
234 bool InProcessWorkerMessagingProxy::hasPendingActivity() const { | 234 bool InProcessWorkerMessagingProxy::hasPendingActivity() const { |
235 DCHECK(isParentContextThread()); | 235 DCHECK(isParentContextThread()); |
236 if (askedToTerminate()) | 236 if (askedToTerminate()) |
237 return false; | 237 return false; |
238 return m_workerGlobalScopeHasPendingActivity; | 238 return m_workerGlobalScopeHasPendingActivity; |
239 } | 239 } |
240 | 240 |
241 InProcessWorkerMessagingProxy::QueuedTask::QueuedTask( | 241 InProcessWorkerMessagingProxy::QueuedTask::QueuedTask( |
242 RefPtr<SerializedScriptValue> message, | 242 RefPtr<SerializedScriptValue> message, |
243 std::unique_ptr<MessagePortChannelArray> channels) | 243 MessagePortChannelArray channels) |
244 : message(std::move(message)), channels(std::move(channels)) {} | 244 : message(std::move(message)), channels(std::move(channels)) {} |
245 | 245 |
246 InProcessWorkerMessagingProxy::QueuedTask::~QueuedTask() = default; | 246 InProcessWorkerMessagingProxy::QueuedTask::~QueuedTask() = default; |
247 | 247 |
248 } // namespace blink | 248 } // namespace blink |
OLD | NEW |