-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement nested Dedicated Workers #4349
Implement nested Dedicated Workers #4349
Conversation
EWS run on previous version of this PR (hash 60a9a12) |
60a9a12
to
8d23da1
Compare
EWS run on previous version of this PR (hash 8d23da1) |
8d23da1
to
d0f9673
Compare
EWS run on previous version of this PR (hash d0f9673) |
d0f9673
to
bd6c90f
Compare
EWS run on previous version of this PR (hash bd6c90f) |
bd6c90f
to
0aeb36b
Compare
EWS run on previous version of this PR (hash 0aeb36b) |
0aeb36b
to
57882f4
Compare
EWS run on previous version of this PR (hash 57882f4) |
a7a53b2
to
581582d
Compare
EWS run on previous version of this PR (hash 581582d) |
581582d
to
278f75c
Compare
EWS run on previous version of this PR (hash 278f75c) |
278f75c
to
7acc4b6
Compare
EWS run on previous version of this PR (hash 7acc4b6) |
7acc4b6
to
feb5352
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We want a quick obvious failure if someone forgets to do addToContexMap
or removeFromContexMap
in a derived class. Might be worth thinking about how to accomplish that. For removeFromContextMap
we could change things so itβs done by the deref functionβs destroy code rather than by the destructor, and then implementers of derived classes canβt forget.
The good news is that if we forget to call I agree with you that the deref() function should call |
https://bugs.webkit.org/show_bug.cgi?id=22723 <rdar://6425810> Reviewed by Darin Adler. Add support for nested dedicated workers. Blink and Gecko already support this. Also fix an issue where ScriptExecutionContext were added too early to the ScriptExecutionContextMap. This was marking calls to postTaskTo() unsafe since it would call the virtual postTask() function on a ScriptExecutionContext that had potentially not finished construction. This was causing flaky test crashes. * LayoutTests/TestExpectations: * LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-classic.http-rp/opt-in/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-classic.http-rp/opt-in/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-classic.http-rp/unset/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-classic.http-rp/unset/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-module.http-rp/opt-in/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-module.http-rp/opt-in/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-module.http-rp/unset/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/mixed-content/gen/worker-module.http-rp/unset/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-classic.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-module.https-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/nested-worker-success.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/web-locks/query.tentative.https.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webmessaging/MessageEvent-trusted.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/worker-post-after-close.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/worker.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/worker-in-worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/constructors/Worker/expected-self-properties.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/dedicated-worker-in-data-url-context.window-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/nested_worker_close_from_parent_worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/nested_worker_close_self.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/nested_worker_importScripts.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/nested_worker_sync_xhr.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/nested_worker_terminate_from_document-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/workers/semantics/multiple-workers/exposure.any.worker-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker-expected.txt: Added. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker-expected.txt: Added. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import.any.worker-expected.txt: Added. * LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: * Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.cpp: (WebCore::AudioWorkletMessagingProxy::loaderContextIdentifier const): * Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.h: * Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::~DedicatedWorkerGlobalScope): * Source/WebCore/workers/Worker.cpp: (WebCore::Worker::networkStateChanged): (WebCore::Worker::Worker): (WebCore::Worker::create): (WebCore::Worker::~Worker): (WebCore::Worker::forEachWorker): (WebCore::Worker::notifyNetworkStateChange): Deleted. (WebCore::Worker::byIdentifier): Deleted. * Source/WebCore/workers/Worker.h: * Source/WebCore/workers/Worker.idl: * Source/WebCore/workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::~WorkerGlobalScope): * Source/WebCore/workers/WorkerLoaderProxy.h: * Source/WebCore/workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::WorkerMessagingProxy): (WebCore::WorkerMessagingProxy::~WorkerMessagingProxy): (WebCore::WorkerMessagingProxy::startWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): (WebCore::WorkerMessagingProxy::postTaskToWorkerObject): (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::loaderContextIdentifier const): (WebCore::WorkerMessagingProxy::postTaskToLoader): (WebCore::WorkerMessagingProxy::createCacheStorageConnection): (WebCore::WorkerMessagingProxy::storageConnection): (WebCore::WorkerMessagingProxy::createRTCDataChannelRemoteHandlerConnection): (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): (WebCore::WorkerMessagingProxy::workerObjectDestroyed): (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed): (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed): (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal): (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject): (WebCore::WorkerMessagingProxy::reportPendingActivity): * Source/WebCore/workers/WorkerMessagingProxy.h: * Source/WebCore/workers/WorkerOrWorkletThread.cpp: (WebCore::WorkerOrWorkletThread::workerOrWorkletThread): (WebCore::WorkerOrWorkletThread::destroyWorkerGlobalScope): (WebCore::WorkerOrWorkletThread::stop): (WebCore::WorkerOrWorkletThread::addChildThread): (WebCore::WorkerOrWorkletThread::removeChildThread): * Source/WebCore/workers/WorkerOrWorkletThread.h: * Source/WebCore/workers/service/SWClientConnection.cpp: (WebCore::SWClientConnection::postMessageToServiceWorkerClient): (WebCore::SWClientConnection::notifyClientsOfControllerChange): * Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp: (WebCore::ServiceWorkerGlobalScope::~ServiceWorkerGlobalScope): * Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp: (WebCore::ServiceWorkerThreadProxy::loaderContextIdentifier const): * Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h: * Source/WebCore/workers/shared/SharedWorkerGlobalScope.cpp: (WebCore::SharedWorkerGlobalScope::~SharedWorkerGlobalScope): * Source/WebCore/workers/shared/SharedWorkerGlobalScope.h: * Source/WebCore/workers/shared/context/SharedWorkerThreadProxy.cpp: (WebCore::SharedWorkerThreadProxy::loaderContextIdentifier const): * Source/WebCore/workers/shared/context/SharedWorkerThreadProxy.h: Canonical link: https://commits.webkit.org/254597@main
feb5352
to
48880e3
Compare
Committed 254597@main (48880e3): https://commits.webkit.org/254597@main Reviewed commits have been landed. Closing PR #4349 and removing active labels. |
48880e3
feb5352
π mac-debugπ§ͺ mac-wk1