[webkit-reviews] review granted: [Bug 231008] Add support for ServiceWorkerGlobalScope push event handler : [Attachment 439833] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Oct 1 14:33:54 PDT 2021

Chris Dumez <cdumez at apple.com> has granted youenn fablet <youennf at gmail.com>'s
request for review:
Bug 231008: Add support for ServiceWorkerGlobalScope push event handler

Attachment 439833: Patch


--- Comment #6 from Chris Dumez <cdumez at apple.com> ---
Comment on attachment 439833
  --> https://bugs.webkit.org/attachment.cgi?id=439833

View in context: https://bugs.webkit.org/attachment.cgi?id=439833&action=review

r=me with fixes.

> Source/WebCore/testing/ServiceWorkerInternals.cpp:60
> +void ServiceWorkerInternals::schedulePushEvent(const std::optional<String>&
message, RefPtr<DeferredPromise>&& promise)

We never use std::optional<String> because String already has a null state
(different than empty string).

The generated bindings code will pass you a null string if the parameter was
omitted in JS, not std::nullopt, so this is wrong.

> Source/WebCore/testing/ServiceWorkerInternals.cpp:66
> +    if (message) {

if (!message.isNull())

> Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:220
> +	   RELEASE_LOG(ServiceWorker,
"ServiceWorkerThread::queueTaskToFirePushEvent firing event for worker %llu",

PRIu64 not %llu

> Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:311
> +	       callOnMainRunLoop([this, protectedThis = WTFMove(protectedThis),
identifier, result]() mutable {

We're in WebCore so we should use callOnMainThread() or postTaskToLoader().
ServiceWorkers are WebKit2 only but I remember we used to get tasks out of
order by mixing callOnMainThread and callOnMainRunLoop (not sure if this is
still the case nowadays).

More information about the webkit-reviews mailing list