| 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 "core/events/MessageEvent.h" | 5 #include "core/events/MessageEvent.h" |
| 6 #include "core/inspector/ConsoleMessageStorage.h" | 6 #include "core/inspector/ConsoleMessageStorage.h" |
| 7 #include "core/testing/DummyPageHolder.h" | 7 #include "core/testing/DummyPageHolder.h" |
| 8 #include "core/workers/DedicatedWorkerGlobalScope.h" | 8 #include "core/workers/DedicatedWorkerGlobalScope.h" |
| 9 #include "core/workers/DedicatedWorkerThread.h" | 9 #include "core/workers/DedicatedWorkerThread.h" |
| 10 #include "core/workers/InProcessWorkerMessagingProxy.h" | 10 #include "core/workers/InProcessWorkerMessagingProxy.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 const double kDefaultIntervalInSec = 0.01; | 31 const double kDefaultIntervalInSec = 0.01; |
| 32 const double kNextIntervalInSec = 0.01; | 32 const double kNextIntervalInSec = 0.01; |
| 33 const double kMaxIntervalInSec = 0.02; | 33 const double kMaxIntervalInSec = 0.02; |
| 34 | 34 |
| 35 } // namespace | 35 } // namespace |
| 36 | 36 |
| 37 class DedicatedWorkerThreadForTest final : public DedicatedWorkerThread { | 37 class DedicatedWorkerThreadForTest final : public DedicatedWorkerThread { |
| 38 public: | 38 public: |
| 39 DedicatedWorkerThreadForTest( | 39 DedicatedWorkerThreadForTest( |
| 40 WorkerLoaderProxyProvider* workerLoaderProxyProvider, | 40 WorkerLoaderProxyProvider* workerLoaderProxyProvider, |
| 41 InProcessWorkerObjectProxy& workerObjectProxy, | 41 InProcessWorkerObjectProxy& workerObjectProxy) |
| 42 ParentFrameTaskRunners* parentFrameTaskRunners) | |
| 43 : DedicatedWorkerThread( | 42 : DedicatedWorkerThread( |
| 44 WorkerLoaderProxy::create(workerLoaderProxyProvider), | 43 WorkerLoaderProxy::create(workerLoaderProxyProvider), |
| 45 workerObjectProxy, | 44 workerObjectProxy, |
| 46 parentFrameTaskRunners, | |
| 47 monotonicallyIncreasingTime()) { | 45 monotonicallyIncreasingTime()) { |
| 48 m_workerBackingThread = WorkerBackingThread::createForTest("Test thread"); | 46 m_workerBackingThread = WorkerBackingThread::createForTest("Test thread"); |
| 49 } | 47 } |
| 50 | 48 |
| 51 WorkerOrWorkletGlobalScope* createWorkerGlobalScope( | 49 WorkerOrWorkletGlobalScope* createWorkerGlobalScope( |
| 52 std::unique_ptr<WorkerThreadStartupData> startupData) override { | 50 std::unique_ptr<WorkerThreadStartupData> startupData) override { |
| 53 return new DedicatedWorkerGlobalScope( | 51 return new DedicatedWorkerGlobalScope( |
| 54 startupData->m_scriptURL, startupData->m_userAgent, this, m_timeOrigin, | 52 startupData->m_scriptURL, startupData->m_userAgent, this, m_timeOrigin, |
| 55 std::move(startupData->m_starterOriginPrivilegeData), | 53 std::move(startupData->m_starterOriginPrivilegeData), |
| 56 std::move(startupData->m_workerClients)); | 54 std::move(startupData->m_workerClients)); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 : InProcessWorkerMessagingProxy(executionContext, | 87 : InProcessWorkerMessagingProxy(executionContext, |
| 90 nullptr /* workerObject */, | 88 nullptr /* workerObject */, |
| 91 nullptr /* workerClients */) { | 89 nullptr /* workerClients */) { |
| 92 workerObjectProxy().m_defaultIntervalInSec = kDefaultIntervalInSec; | 90 workerObjectProxy().m_defaultIntervalInSec = kDefaultIntervalInSec; |
| 93 workerObjectProxy().m_nextIntervalInSec = kNextIntervalInSec; | 91 workerObjectProxy().m_nextIntervalInSec = kNextIntervalInSec; |
| 94 workerObjectProxy().m_maxIntervalInSec = kMaxIntervalInSec; | 92 workerObjectProxy().m_maxIntervalInSec = kMaxIntervalInSec; |
| 95 | 93 |
| 96 m_mockWorkerLoaderProxyProvider = | 94 m_mockWorkerLoaderProxyProvider = |
| 97 WTF::makeUnique<MockWorkerLoaderProxyProvider>(); | 95 WTF::makeUnique<MockWorkerLoaderProxyProvider>(); |
| 98 m_workerThread = WTF::wrapUnique(new DedicatedWorkerThreadForTest( | 96 m_workerThread = WTF::wrapUnique(new DedicatedWorkerThreadForTest( |
| 99 m_mockWorkerLoaderProxyProvider.get(), workerObjectProxy(), | 97 m_mockWorkerLoaderProxyProvider.get(), workerObjectProxy())); |
| 100 getParentFrameTaskRunners())); | |
| 101 m_mockWorkerThreadLifecycleObserver = new MockWorkerThreadLifecycleObserver( | 98 m_mockWorkerThreadLifecycleObserver = new MockWorkerThreadLifecycleObserver( |
| 102 m_workerThread->getWorkerThreadLifecycleContext()); | 99 m_workerThread->getWorkerThreadLifecycleContext()); |
| 103 EXPECT_CALL(*m_mockWorkerThreadLifecycleObserver, | 100 EXPECT_CALL(*m_mockWorkerThreadLifecycleObserver, |
| 104 contextDestroyed(::testing::_)) | 101 contextDestroyed(::testing::_)) |
| 105 .Times(1); | 102 .Times(1); |
| 106 } | 103 } |
| 107 | 104 |
| 108 ~InProcessWorkerMessagingProxyForTest() override { | 105 ~InProcessWorkerMessagingProxyForTest() override { |
| 109 EXPECT_FALSE(m_blocking); | 106 EXPECT_FALSE(m_blocking); |
| 110 m_workerThread->workerLoaderProxy()->detachProvider( | 107 m_workerThread->workerLoaderProxy()->detachProvider( |
| 111 m_mockWorkerLoaderProxyProvider.get()); | 108 m_mockWorkerLoaderProxyProvider.get()); |
| 112 } | 109 } |
| 113 | 110 |
| 114 void startWithSourceCode(const String& source) { | 111 void startWithSourceCode(const String& source) { |
| 115 KURL scriptURL(ParsedURLString, "http://fake.url/"); | 112 KURL scriptURL(ParsedURLString, "http://fake.url/"); |
| 116 m_securityOrigin = SecurityOrigin::create(scriptURL); | 113 m_securityOrigin = SecurityOrigin::create(scriptURL); |
| 117 std::unique_ptr<Vector<CSPHeaderAndType>> headers = | 114 std::unique_ptr<Vector<CSPHeaderAndType>> headers = |
| 118 WTF::makeUnique<Vector<CSPHeaderAndType>>(); | 115 WTF::makeUnique<Vector<CSPHeaderAndType>>(); |
| 119 CSPHeaderAndType headerAndType("contentSecurityPolicy", | 116 CSPHeaderAndType headerAndType("contentSecurityPolicy", |
| 120 ContentSecurityPolicyHeaderTypeReport); | 117 ContentSecurityPolicyHeaderTypeReport); |
| 121 headers->push_back(headerAndType); | 118 headers->push_back(headerAndType); |
| 122 workerThread()->start(WorkerThreadStartupData::create( | 119 workerThread()->start( |
| 123 scriptURL, "fake user agent", source, nullptr /* cachedMetaData */, | 120 WorkerThreadStartupData::create( |
| 124 DontPauseWorkerGlobalScopeOnStart, headers.get(), | 121 scriptURL, "fake user agent", source, nullptr /* cachedMetaData */, |
| 125 "" /* referrerPolicy */, m_securityOrigin.get(), | 122 DontPauseWorkerGlobalScopeOnStart, headers.get(), |
| 126 nullptr /* workerClients */, WebAddressSpaceLocal, | 123 "" /* referrerPolicy */, m_securityOrigin.get(), |
| 127 nullptr /* originTrialTokens */, nullptr /* workerSettings */, | 124 nullptr /* workerClients */, WebAddressSpaceLocal, |
| 128 WorkerV8Settings::Default())); | 125 nullptr /* originTrialTokens */, nullptr /* workerSettings */, |
| 126 WorkerV8Settings::Default()), |
| 127 getParentFrameTaskRunners()); |
| 129 | 128 |
| 130 workerInspectorProxy()->workerThreadCreated( | 129 workerInspectorProxy()->workerThreadCreated( |
| 131 toDocument(getExecutionContext()), m_workerThread.get(), scriptURL); | 130 toDocument(getExecutionContext()), m_workerThread.get(), scriptURL); |
| 132 workerThreadCreated(); | 131 workerThreadCreated(); |
| 133 } | 132 } |
| 134 | 133 |
| 135 enum class Notification { | 134 enum class Notification { |
| 136 MessageConfirmed, | 135 MessageConfirmed, |
| 137 PendingActivityReported, | 136 PendingActivityReported, |
| 138 ThreadTerminated, | 137 ThreadTerminated, |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 EXPECT_FALSE(UseCounter::isCounted(document(), feature2)); | 399 EXPECT_FALSE(UseCounter::isCounted(document(), feature2)); |
| 401 workerThread()->postTask( | 400 workerThread()->postTask( |
| 402 BLINK_FROM_HERE, | 401 BLINK_FROM_HERE, |
| 403 crossThreadBind(&DedicatedWorkerThreadForTest::countDeprecation, | 402 crossThreadBind(&DedicatedWorkerThreadForTest::countDeprecation, |
| 404 crossThreadUnretained(workerThread()), feature2)); | 403 crossThreadUnretained(workerThread()), feature2)); |
| 405 testing::enterRunLoop(); | 404 testing::enterRunLoop(); |
| 406 EXPECT_TRUE(UseCounter::isCounted(document(), feature2)); | 405 EXPECT_TRUE(UseCounter::isCounted(document(), feature2)); |
| 407 } | 406 } |
| 408 | 407 |
| 409 } // namespace blink | 408 } // namespace blink |
| OLD | NEW |