[webkit-changes] [WebKit/WebKit] 572b27: [ iOS MacOS ] 4x http/wpt/service-workers/fetch-se...
youennf
noreply at github.com
Sat Aug 31 01:18:07 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 572b27ab8d5202df1c58f781ea58b9fc4d4ddc54
https://github.com/WebKit/WebKit/commit/572b27ab8d5202df1c58f781ea58b9fc4d4ddc54
Author: Youenn Fablet <youenn at apple.com>
Date: 2024-08-31 (Sat, 31 Aug 2024)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/http/wpt/service-workers/fetch-service-worker-navigation-preload.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-navigation-preload.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-cache.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-cache.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-changing-request.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-changing-request.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download.https.html
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-worker.js
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload.https-expected.txt
M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload.https.html
M LayoutTests/http/wpt/service-workers/navigation-preload-without-worker-connection.https.html
M LayoutTests/http/wpt/service-workers/resources/fetch-service-worker-preload-script.py
M LayoutTests/http/wpt/service-workers/resources/routines.js
R LayoutTests/http/wpt/service-workers/simple-fetch-service-worker-preload-worker.js
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https-expected.txt
M LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-use-download.https-expected.txt
M LayoutTests/platform/mac/TestExpectations
Log Message:
-----------
[ iOS MacOS ] 4x http/wpt/service-workers/fetch-service-worker-preload* (layout-tests) are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=277720
rdar://133334390
Reviewed by Chris Dumez.
These tests are trying to trigger a navigation load on an activating but not yet activated service worker.
But the activation is racy and may happen before the navigation load gets to network process.
If that happens, the test is not using preloads and fails.
To prevent this race, we now do the following:
1. Setup a service worker registration and wait until the corresponding service worker is activated.
2. Stop all service workers.
3. At this point, the registration is there, the worker is activated but is not running. Preloads will be triggered in that case.
This prevents the race and ensures we are still doing preloads.
This patch is also tyding a bit some tests.
In particular, we alway set the preload response (instead of relying on nothing).
This triggers updating the download test expectation (going froma size 7 to 11).
We also await the fetch that sets the preload response to remove another potential race.
Given we no longer need to trigger activation, we can simplify etch-service-worker-preload-worker.js and we introduce a routine
to create an activated but not running service worker in LayoutTests/http/wpt/service-workers/resources/routines.js.
We also simplify fetch-service-worker-preload-script.py to use the token and not a digest, as this seems to trigger issues when iterating a lot on the tests.
Instead, we pass the token and a specific path to stash.
* LayoutTests/TestExpectations:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-navigation-preload.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-navigation-preload.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-cache.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-cache.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-changing-request.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-changing-request.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-use-download.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-worker.js:
(oninstall): Deleted.
(onmessage): Deleted.
(onactivate): Deleted.
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload.https.html:
* LayoutTests/http/wpt/service-workers/navigation-preload-without-worker-connection.https.html:
* LayoutTests/http/wpt/service-workers/resources/fetch-service-worker-preload-script.py:
(main):
* LayoutTests/http/wpt/service-workers/resources/routines.js:
(async setupActivatedButNotRunningServiceWorker):
* LayoutTests/http/wpt/service-workers/simple-fetch-service-worker-preload-worker.js: Removed.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-use-download-and-clone.https-expected.txt:
* LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-use-download.https-expected.txt:
* LayoutTests/platform/mac/TestExpectations:
Canonical link: https://commits.webkit.org/283017@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list