Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(728)

Side by Side Diff: third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp

Issue 2718643002: Worker: Pass ParentFrameTaskRunners via WorkerThread::start() instead of the ctor (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698