Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 572b27ab8d5202df1c58f781ea58b9fc4d4ddc54
      
https://github.com/WebKit/WebKit/commit/572b27ab8d5202df1c58f781ea58b9fc4d4ddc54
  Author: Youenn Fablet <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to