Closed Bug 1705222 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 28484 - Background Fetch: use permission context directly when initiating fetch.

Categories

(Core :: DOM: Service Workers, task, P4)

task

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 28484 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/28484
Details from upstream follow.

b'Evan Stade <estade@chromium.org>' wrote:

Background Fetch: use permission context directly when initiating fetch.

This reduces duplicated logic between BackgroundFetchDelegateImpl and
BackgroundFetchPermissionContext. It also forces the logic to align.
Specifically, the permission context returned ALLOW when automatic DLs
were allowed, but the implementation enforced ASK even if auto DLs
are allowed.

This temporarily regresses WebLayer because there's no
Background Fetch permission context there, but that will be addressed
soon.

Bug: 1189247, 1057770
Change-Id: I5441f00835c186826927d2ef38612c8e55eb049f
Reviewed-on: https://chromium-review.googlesource.com/2800512
WPT-Export-Revision: b88e3434c16637aef4695e48cb6e5682ecbe8a2a

Component: web-platform-tests → DOM: Service Workers
Product: Testing → Core

CI Results

Ran 15 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 10 tests and 3 subtests

Status Summary

Firefox

OK : 10
FAIL : 48

Chrome

OK : 3
PASS : 14
TIMEOUT: 14
NOTRUN : 27

Safari

OK : 10
FAIL : 48

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/background-fetch/abort.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
Aborting the same registration twice fails: FAIL (Chrome: PASS, Safari: FAIL)
Calling BackgroundFetchRegistration.abort sets the correct fields and responses are still available: FAIL (Chrome: TIMEOUT, Safari: FAIL)
An aborted fetch throws a DOM exception when accessing an incomplete record: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/content-security-policy.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
fetch blocked by CSP should reject: FAIL (Chrome: PASS, Safari: FAIL)
/background-fetch/fetch-uploads.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
Fetch with an upload should work: FAIL (Chrome: PASS, Safari: FAIL)
Progress event includes uploaded bytes: FAIL (Chrome: TIMEOUT, Safari: FAIL)
Duplicate upload requests work and can be distinguished.: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/fetch.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
Background Fetch requires an activated Service Worker: FAIL (Chrome: PASS, Safari: FAIL)
Argument verification is done for BackgroundFetchManager.fetch(): FAIL (Chrome: PASS, Safari: FAIL)
IDs must be unique among active Background Fetch registrations: FAIL (Chrome: TIMEOUT, Safari: FAIL)
Empty URL is OK.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Requests with PUT method require CORS Preflight and succeed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Requests with text/json content type require CORS Preflight and succeed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Using Background Fetch to successfully fetch a single resource: FAIL (Chrome: NOTRUN, Safari: FAIL)
Registration object gets updated values when a background fetch completes.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Background Fetch that exceeds the quota throws a QuotaExceededError: FAIL (Chrome: NOTRUN, Safari: FAIL)
Fetches can have requests with duplicate URLs: FAIL (Chrome: NOTRUN, Safari: FAIL)
recordsAvailable is false after onbackgroundfetchsuccess finishes execution.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Using Background Fetch to fetch a non-existent resource should fail.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Fetches with mixed content should fail.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Responses failing CORS checks are not leaked: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/get-ids.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
BackgroundFetchManager.getIds() does not require an activated worker: FAIL (Chrome: PASS, Safari: FAIL)
The BackgroundFetchManager exposes active fetches: FAIL (Chrome: PASS, Safari: FAIL)
/background-fetch/get.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
BackgroundFetchManager.get() does not require an activated worker: FAIL (Chrome: PASS, Safari: FAIL)
Getting non-existing registrations yields undefined: FAIL (Chrome: PASS, Safari: FAIL)
Getting an existing registration has the expected values: FAIL (Chrome: PASS, Safari: FAIL)
/background-fetch/match.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
Matching to a single request should work: FAIL (Chrome: PASS, Safari: FAIL)
Matching to a non-existing request should work: FAIL (Chrome: TIMEOUT, Safari: FAIL)
Matching multiple times on the same request works as expected.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Access to active fetches is supported.: FAIL (Chrome: NOTRUN, Safari: FAIL)
Match with query options.: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/mixed-content-and-allowed-schemes.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
https: fetch should register ok: FAIL (Chrome: PASS, Safari: FAIL)
loopback IPv4 http: fetch should register ok: FAIL (Chrome: TIMEOUT, Safari: FAIL)
loopback IPv6 http: fetch should register ok: FAIL (Chrome: NOTRUN, Safari: FAIL)
localhost http: fetch should register ok: FAIL (Chrome: NOTRUN, Safari: FAIL)
wss: fetch should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
file: fetch should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
data: fetch should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
unknown scheme fetch should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/port-blocking.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
fetch to default https port should register ok: FAIL (Chrome: PASS, Safari: FAIL)
fetch to default http port should register ok: FAIL (Chrome: TIMEOUT, Safari: FAIL)
fetch to port 443 should register ok: FAIL (Chrome: NOTRUN, Safari: FAIL)
fetch to port 80 should register ok, even over https: FAIL (Chrome: NOTRUN, Safari: FAIL)
fetch to non-default non-bad port (8080) should register ok: FAIL (Chrome: NOTRUN, Safari: FAIL)
fetch to bad port (SMTP) should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
/background-fetch/update-ui.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
Background Fetch updateUI resolves: FAIL (Chrome: PASS, Safari: FAIL)
Background Fetch updateUI called twice fails: FAIL (Chrome: TIMEOUT, Safari: FAIL)
Background Fetch updateUI fails when event is not active: FAIL (Chrome: NOTRUN, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

/background-fetch/abort.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/content-security-policy.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
/background-fetch/fetch-uploads.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/fetch.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/get-ids.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
/background-fetch/get.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
/background-fetch/match.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/mixed-content-and-allowed-schemes.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/port-blocking.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)
/background-fetch/update-ui.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: TIMEOUT, Safari: OK)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c981b4677890
[wpt PR 28484] - Background Fetch: use permission context directly when initiating fetch., a=testonly
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
You need to log in before you can comment on or make changes to this bug.