| 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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 118         // Worker.terminate() could be called from JS before the thread was crea
     ted. | 118         // Worker.terminate() could be called from JS before the thread was crea
     ted. | 
| 119         return; | 119         return; | 
| 120     } | 120     } | 
| 121     Document* document = toDocument(m_executionContext.get()); | 121     Document* document = toDocument(m_executionContext.get()); | 
| 122     SecurityOrigin* starterOrigin = document->securityOrigin(); | 122     SecurityOrigin* starterOrigin = document->securityOrigin(); | 
| 123 | 123 | 
| 124     OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartu
     pData::create(scriptURL, userAgent, sourceCode, nullptr, startMode, document->co
     ntentSecurityPolicy()->deprecatedHeader(), document->contentSecurityPolicy()->de
     precatedHeaderType(), starterOrigin, m_workerClients.release()); | 124     OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartu
     pData::create(scriptURL, userAgent, sourceCode, nullptr, startMode, document->co
     ntentSecurityPolicy()->deprecatedHeader(), document->contentSecurityPolicy()->de
     precatedHeaderType(), starterOrigin, m_workerClients.release()); | 
| 125     double originTime = document->loader() ? document->loader()->timing().refere
     nceMonotonicTime() : monotonicallyIncreasingTime(); | 125     double originTime = document->loader() ? document->loader()->timing().refere
     nceMonotonicTime() : monotonicallyIncreasingTime(); | 
| 126 | 126 | 
| 127     m_loaderProxy = WorkerLoaderProxy::create(this); | 127     m_loaderProxy = WorkerLoaderProxy::create(this); | 
| 128     RefPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::create(m_loade
     rProxy, *m_workerObjectProxy.get(), originTime, startupData.release()); | 128     RefPtr<WorkerThread> thread = createWorkerThread(originTime, startupData.rel
     ease()); | 
| 129     thread->start(); | 129     thread->start(); | 
| 130     workerThreadCreated(thread); | 130     workerThreadCreated(thread); | 
| 131     m_workerInspectorProxy->workerThreadCreated(m_executionContext.get(), m_work
     erThread.get(), scriptURL); | 131     m_workerInspectorProxy->workerThreadCreated(m_executionContext.get(), m_work
     erThread.get(), scriptURL); | 
| 132 } | 132 } | 
| 133 | 133 | 
| 134 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript
     Value> message, PassOwnPtr<MessagePortChannelArray> channels) | 134 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript
     Value> message, PassOwnPtr<MessagePortChannelArray> channels) | 
| 135 { | 135 { | 
| 136     if (!m_workerObject || m_askedToTerminate) | 136     if (!m_workerObject || m_askedToTerminate) | 
| 137         return; | 137         return; | 
| 138 | 138 | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 192     Document* document = toDocument(m_executionContext.get()); | 192     Document* document = toDocument(m_executionContext.get()); | 
| 193     LocalFrame* frame = document->frame(); | 193     LocalFrame* frame = document->frame(); | 
| 194     if (!frame) | 194     if (!frame) | 
| 195         return; | 195         return; | 
| 196 | 196 | 
| 197     RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(s
     ource, level, message, sourceURL, lineNumber); | 197     RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(s
     ource, level, message, sourceURL, lineNumber); | 
| 198     consoleMessage->setWorkerGlobalScopeProxy(this); | 198     consoleMessage->setWorkerGlobalScopeProxy(this); | 
| 199     frame->console().addMessage(consoleMessage.release()); | 199     frame->console().addMessage(consoleMessage.release()); | 
| 200 } | 200 } | 
| 201 | 201 | 
| 202 void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<DedicatedWorkerThread>
      workerThread) | 202 void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<WorkerThread> workerTh
     read) | 
| 203 { | 203 { | 
| 204     ASSERT(!m_askedToTerminate); | 204     ASSERT(!m_askedToTerminate); | 
| 205     m_workerThread = workerThread; | 205     m_workerThread = workerThread; | 
| 206 | 206 | 
| 207     ASSERT(!m_unconfirmedMessageCount); | 207     ASSERT(!m_unconfirmedMessageCount); | 
| 208     m_unconfirmedMessageCount = m_queuedEarlyTasks.size(); | 208     m_unconfirmedMessageCount = m_queuedEarlyTasks.size(); | 
| 209     m_workerThreadHadPendingActivity = true; // Worker initialization means a pe
     nding activity. | 209     m_workerThreadHadPendingActivity = true; // Worker initialization means a pe
     nding activity. | 
| 210 | 210 | 
| 211     for (auto& earlyTasks : m_queuedEarlyTasks) | 211     for (auto& earlyTasks : m_queuedEarlyTasks) | 
| 212         m_workerThread->postTask(FROM_HERE, earlyTasks.release()); | 212         m_workerThread->postTask(FROM_HERE, earlyTasks.release()); | 
| 213     m_queuedEarlyTasks.clear(); | 213     m_queuedEarlyTasks.clear(); | 
| 214 } | 214 } | 
| 215 | 215 | 
|  | 216 PassRefPtr<WorkerThread> WorkerMessagingProxy::createWorkerThread(double originT
     ime, PassOwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData) | 
|  | 217 { | 
|  | 218     return DedicatedWorkerThread::create(loaderProxy(), workerObjectProxy(), ori
     ginTime, startupData); | 
|  | 219 } | 
|  | 220 | 
| 216 void WorkerMessagingProxy::workerObjectDestroyed() | 221 void WorkerMessagingProxy::workerObjectDestroyed() | 
| 217 { | 222 { | 
| 218     m_workerObject = nullptr; | 223     m_workerObject = nullptr; | 
| 219     m_executionContext->postTask(FROM_HERE, createCrossThreadTask(&workerObjectD
     estroyedInternal, AllowCrossThreadAccess(this))); | 224     m_executionContext->postTask(FROM_HERE, createCrossThreadTask(&workerObjectD
     estroyedInternal, AllowCrossThreadAccess(this))); | 
| 220 } | 225 } | 
| 221 | 226 | 
| 222 void WorkerMessagingProxy::workerObjectDestroyedInternal(ExecutionContext*, Work
     erMessagingProxy* proxy) | 227 void WorkerMessagingProxy::workerObjectDestroyedInternal(ExecutionContext*, Work
     erMessagingProxy* proxy) | 
| 223 { | 228 { | 
| 224     proxy->m_mayBeDestroyed = true; | 229     proxy->m_mayBeDestroyed = true; | 
| 225     if (proxy->m_workerThread) | 230     if (proxy->m_workerThread) | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 299 | 304 | 
| 300     // FIXME: This need to be revisited when we support nested worker one day | 305     // FIXME: This need to be revisited when we support nested worker one day | 
| 301     ASSERT(m_executionContext->isDocument()); | 306     ASSERT(m_executionContext->isDocument()); | 
| 302     Document* document = toDocument(m_executionContext.get()); | 307     Document* document = toDocument(m_executionContext.get()); | 
| 303     LocalFrame* frame = document->frame(); | 308     LocalFrame* frame = document->frame(); | 
| 304     if (frame) | 309     if (frame) | 
| 305         frame->console().adoptWorkerMessagesAfterTermination(this); | 310         frame->console().adoptWorkerMessagesAfterTermination(this); | 
| 306 } | 311 } | 
| 307 | 312 | 
| 308 } // namespace blink | 313 } // namespace blink | 
| OLD | NEW | 
|---|