[webkit-changes] [WebKit/WebKit] ff4ece: Make sure to run a service worker before firing it...
youennf
noreply at github.com
Fri May 19 02:07:46 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ff4eced3ff239c434ef397c0c059a8a027a54db5
https://github.com/WebKit/WebKit/commit/ff4eced3ff239c434ef397c0c059a8a027a54db5
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-05-19 (Fri, 19 May 2023)
Changed paths:
M LayoutTests/TestExpectations
A LayoutTests/http/wpt/service-workers/changing-service-worker-lengthy-worker.py
A LayoutTests/http/wpt/service-workers/service-worker-process-crashing-between-installed-and-activating-expected.txt
A LayoutTests/http/wpt/service-workers/service-worker-process-crashing-between-installed-and-activating.html
M Source/WebCore/workers/service/server/SWServer.cpp
M Source/WebCore/workers/service/server/SWServer.h
M Source/WebCore/workers/service/server/SWServerRegistration.cpp
Log Message:
-----------
Make sure to run a service worker before firing its activate event
https://bugs.webkit.org/show_bug.cgi?id=256893
rdar://109411104
Reviewed by Ben Nham.
As per spec, we should run the service worker before firing the activate event.
We were not doing so and there might be cases where the service worker will no longer be running between installed and activating steps.
This happens for instance in case the process is terminated due to memory issues.
We align the implementation with the spec by renaming fireActivateEvent to runServiceWorkerAndFireActivateEvent.
Internally, it calls runServiceWorkerIfNecessary before firing the event.
Small refactoring to allow either running a service worker from its object or from its ID.
* LayoutTests/TestExpectations:
* LayoutTests/http/wpt/service-workers/changing-service-worker-lengthy-worker.py: Added.
(main):
* LayoutTests/http/wpt/service-workers/service-worker-process-crashing-between-installed-and-activating-expected.txt: Added.
* LayoutTests/http/wpt/service-workers/service-worker-process-crashing-between-installed-and-activating.html: Added.
* Source/WebCore/workers/service/server/SWServer.cpp:
(WebCore::SWServer::runServiceWorkerIfNecessary):
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::runServiceWorkerAndFireActivateEvent):
(WebCore::SWServer::fireActivateEvent): Deleted.
* Source/WebCore/workers/service/server/SWServer.h:
* Source/WebCore/workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::activate):
Canonical link: https://commits.webkit.org/264242@main
More information about the webkit-changes
mailing list