| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "bindings/core/v8/SourceLocation.h" | 5 #include "bindings/core/v8/SourceLocation.h" |
| 6 #include "bindings/core/v8/V8CacheOptions.h" | 6 #include "bindings/core/v8/V8CacheOptions.h" |
| 7 #include "bindings/core/v8/V8GCController.h" | 7 #include "bindings/core/v8/V8GCController.h" |
| 8 #include "core/frame/csp/ContentSecurityPolicy.h" | 8 #include "core/frame/csp/ContentSecurityPolicy.h" |
| 9 #include "core/inspector/ConsoleMessage.h" | 9 #include "core/inspector/ConsoleMessage.h" |
| 10 #include "core/workers/WorkerBackingThread.h" | 10 #include "core/workers/WorkerBackingThread.h" |
| 11 #include "core/workers/WorkerClients.h" | 11 #include "core/workers/WorkerClients.h" |
| 12 #include "core/workers/WorkerGlobalScope.h" |
| 12 #include "core/workers/WorkerLoaderProxy.h" | 13 #include "core/workers/WorkerLoaderProxy.h" |
| 13 #include "core/workers/WorkerReportingProxy.h" | 14 #include "core/workers/WorkerReportingProxy.h" |
| 14 #include "core/workers/WorkerThread.h" | 15 #include "core/workers/WorkerThread.h" |
| 15 #include "core/workers/WorkerThreadLifecycleObserver.h" | 16 #include "core/workers/WorkerThreadLifecycleObserver.h" |
| 16 #include "core/workers/WorkerThreadStartupData.h" | 17 #include "core/workers/WorkerThreadStartupData.h" |
| 17 #include "platform/CrossThreadFunctional.h" | 18 #include "platform/CrossThreadFunctional.h" |
| 18 #include "platform/WaitableEvent.h" | 19 #include "platform/WaitableEvent.h" |
| 19 #include "platform/WebThreadSupportingGC.h" | 20 #include "platform/WebThreadSupportingGC.h" |
| 20 #include "platform/heap/Handle.h" | 21 #include "platform/heap/Handle.h" |
| 21 #include "platform/network/ContentSecurityPolicyParsers.h" | 22 #include "platform/network/ContentSecurityPolicyParsers.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 ~MockWorkerReportingProxy() override { } | 56 ~MockWorkerReportingProxy() override { } |
| 56 | 57 |
| 57 MOCK_METHOD2(reportExceptionMock, void(const String& errorMessage, SourceLoc
ation*)); | 58 MOCK_METHOD2(reportExceptionMock, void(const String& errorMessage, SourceLoc
ation*)); |
| 58 void reportException(const String& errorMessage, std::unique_ptr<SourceLocat
ion> location) | 59 void reportException(const String& errorMessage, std::unique_ptr<SourceLocat
ion> location) |
| 59 { | 60 { |
| 60 reportExceptionMock(errorMessage, location.get()); | 61 reportExceptionMock(errorMessage, location.get()); |
| 61 } | 62 } |
| 62 MOCK_METHOD1(reportConsoleMessage, void(ConsoleMessage*)); | 63 MOCK_METHOD1(reportConsoleMessage, void(ConsoleMessage*)); |
| 63 MOCK_METHOD1(postMessageToPageInspector, void(const String&)); | 64 MOCK_METHOD1(postMessageToPageInspector, void(const String&)); |
| 64 MOCK_METHOD1(didEvaluateWorkerScript, void(bool success)); | 65 MOCK_METHOD1(didEvaluateWorkerScript, void(bool success)); |
| 65 MOCK_METHOD1(workerGlobalScopeStarted, void(WorkerGlobalScope*)); | 66 MOCK_METHOD1(workerGlobalScopeStarted, void(WorkerOrWorkletGlobalScope*)); |
| 66 MOCK_METHOD0(workerGlobalScopeClosed, void()); | 67 MOCK_METHOD0(workerGlobalScopeClosed, void()); |
| 67 MOCK_METHOD0(workerThreadTerminated, void()); | 68 MOCK_METHOD0(workerThreadTerminated, void()); |
| 68 MOCK_METHOD0(willDestroyWorkerGlobalScope, void()); | 69 MOCK_METHOD0(willDestroyWorkerGlobalScope, void()); |
| 69 }; | 70 }; |
| 70 | 71 |
| 71 class MockWorkerThreadLifecycleObserver final : public GarbageCollectedFinalized
<MockWorkerThreadLifecycleObserver>, public WorkerThreadLifecycleObserver { | 72 class MockWorkerThreadLifecycleObserver final : public GarbageCollectedFinalized
<MockWorkerThreadLifecycleObserver>, public WorkerThreadLifecycleObserver { |
| 72 USING_GARBAGE_COLLECTED_MIXIN(MockWorkerThreadLifecycleObserver); | 73 USING_GARBAGE_COLLECTED_MIXIN(MockWorkerThreadLifecycleObserver); |
| 73 WTF_MAKE_NONCOPYABLE(MockWorkerThreadLifecycleObserver); | 74 WTF_MAKE_NONCOPYABLE(MockWorkerThreadLifecycleObserver); |
| 74 public: | 75 public: |
| 75 explicit MockWorkerThreadLifecycleObserver(WorkerThreadLifecycleContext* con
text) | 76 explicit MockWorkerThreadLifecycleObserver(WorkerThreadLifecycleContext* con
text) |
| 76 : WorkerThreadLifecycleObserver(context) { } | 77 : WorkerThreadLifecycleObserver(context) { } |
| 77 | 78 |
| 78 MOCK_METHOD0(contextDestroyed, void()); | 79 MOCK_METHOD0(contextDestroyed, void()); |
| 79 }; | 80 }; |
| 80 | 81 |
| 81 class WorkerThreadForTest : public WorkerThread { | 82 class WorkerThreadForTest : public WorkerThread { |
| 82 public: | 83 public: |
| 83 WorkerThreadForTest( | 84 WorkerThreadForTest( |
| 84 WorkerLoaderProxyProvider* mockWorkerLoaderProxyProvider, | 85 WorkerLoaderProxyProvider* mockWorkerLoaderProxyProvider, |
| 85 WorkerReportingProxy& mockWorkerReportingProxy) | 86 WorkerReportingProxy& mockWorkerReportingProxy) |
| 86 : WorkerThread(WorkerLoaderProxy::create(mockWorkerLoaderProxyProvider),
mockWorkerReportingProxy) | 87 : WorkerThread(WorkerLoaderProxy::create(mockWorkerLoaderProxyProvider),
mockWorkerReportingProxy) |
| 87 , m_workerBackingThread(WorkerBackingThread::createForTest("Test thread"
)) | 88 , m_workerBackingThread(WorkerBackingThread::createForTest("Test thread"
)) |
| 88 , m_scriptLoadedEvent(wrapUnique(new WaitableEvent())) | 89 , m_scriptLoadedEvent(wrapUnique(new WaitableEvent())) |
| 89 { | 90 { |
| 90 } | 91 } |
| 91 | 92 |
| 92 ~WorkerThreadForTest() override { } | 93 ~WorkerThreadForTest() override { } |
| 93 | 94 |
| 94 WorkerBackingThread& workerBackingThread() override { return *m_workerBackin
gThread; } | 95 WorkerBackingThread& workerBackingThread() override { return *m_workerBackin
gThread; } |
| 96 ConsoleMessageStorage* consoleMessageStorage() final { return toWorkerGlobal
Scope(globalScope())->consoleMessageStorage(); } |
| 95 | 97 |
| 96 WorkerGlobalScope* createWorkerGlobalScope(std::unique_ptr<WorkerThreadStart
upData>) override; | 98 WorkerOrWorkletGlobalScope* createWorkerGlobalScope(std::unique_ptr<WorkerTh
readStartupData>) override; |
| 97 | 99 |
| 98 void waitUntilScriptLoaded() | 100 void waitUntilScriptLoaded() |
| 99 { | 101 { |
| 100 m_scriptLoadedEvent->wait(); | 102 m_scriptLoadedEvent->wait(); |
| 101 } | 103 } |
| 102 | 104 |
| 103 void scriptLoaded() | 105 void scriptLoaded() |
| 104 { | 106 { |
| 105 m_scriptLoadedEvent->signal(); | 107 m_scriptLoadedEvent->signal(); |
| 106 } | 108 } |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 } | 167 } |
| 166 | 168 |
| 167 void exceptionThrown(const String&, std::unique_ptr<SourceLocation>) overrid
e | 169 void exceptionThrown(const String&, std::unique_ptr<SourceLocation>) overrid
e |
| 168 { | 170 { |
| 169 } | 171 } |
| 170 | 172 |
| 171 private: | 173 private: |
| 172 WorkerThreadForTest* m_thread; | 174 WorkerThreadForTest* m_thread; |
| 173 }; | 175 }; |
| 174 | 176 |
| 175 inline WorkerGlobalScope* WorkerThreadForTest::createWorkerGlobalScope(std::uniq
ue_ptr<WorkerThreadStartupData> startupData) | 177 inline WorkerOrWorkletGlobalScope* WorkerThreadForTest::createWorkerGlobalScope(
std::unique_ptr<WorkerThreadStartupData> startupData) |
| 176 { | 178 { |
| 177 return new FakeWorkerGlobalScope(startupData->m_scriptURL, startupData->m_us
erAgent, this, std::move(startupData->m_starterOriginPrivilegeData), std::move(s
tartupData->m_workerClients)); | 179 return new FakeWorkerGlobalScope(startupData->m_scriptURL, startupData->m_us
erAgent, this, std::move(startupData->m_starterOriginPrivilegeData), std::move(s
tartupData->m_workerClients)); |
| 178 } | 180 } |
| 179 | 181 |
| 180 } // namespace blink | 182 } // namespace blink |
| OLD | NEW |