Closed Bug 1925385 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 48681 - [wpt] Fix testdriver.js portability issues in `digital-credentials/`

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox133 fixed)

RESOLVED FIXED
133 Branch
Tracking Status
firefox133 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Jonathan Lee <jonathanjlee@google.com> wrote:

[wpt] Fix testdriver.js portability issues in digital-credentials/

Some testdriver.js implementations use postMessage() to send
testdriver commands from a cross-origin iframe to the testharness
browsing context. 0 and 1 must be respected for testdriver.js to
work in those environments.

This is a no-op change when running the tests with content shell, which
implements testdriver.js with nonstandard JS bindings.

The testdriver.js and testdriver-vendor.js must both be included ...
in the top-level test document when using testdriver from a different
context

Bug: None
Change-Id: Idacd0b65d03d4feb77883927a5d90e61eb59797b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5922668
Reviewed-by: Weizhong Xia \<weizhong@google.com>
Commit-Queue: Jonathan Lee \<jonathanjlee@google.com>
Cr-Commit-Position: refs/heads/main@{#1370211}

CI Results

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

Total 6 tests and 1 subtests

Status Summary

Firefox

OK : 2[Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] 6[GitHub]
PASS: 1
FAIL: 11[Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] 40[GitHub]

Chrome

OK : 6
PASS: 26
FAIL: 15

Safari

OK : 6
PASS: 8
FAIL: 33

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

  • /digital-credentials/get.tentative.https.html [wpt.fyi]
    • navigator.credentials.get() promise is rejected if called with an aborted controller.: FAIL
    • navigator.credentials.get() promise is rejected if called with an aborted controller in same-origin iframe.: FAIL
    • navigator.credentials.get() promise is rejected if called with an aborted signal in cross-origin iframe.: FAIL

New Tests That Don't Pass

  • /digital-credentials/allow-attribute.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Policy to use: null, is cross-origin: false, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: null, is cross-origin: true, is allowed by policy: false: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get, is cross-origin: false, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get, is cross-origin: true, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get *, is cross-origin: false, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get *, is cross-origin: true, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get 'none', is cross-origin: false, is allowed by policy: false: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get 'none', is cross-origin: true, is allowed by policy: false: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get 'self', is cross-origin: false, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get 'self', is cross-origin: true, is allowed by policy: false: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get https://www1.web-platform.test:8443, is cross-origin: false, is allowed by policy: false: FAIL (Chrome: PASS, Safari: FAIL)
    • Policy to use: digital-credentials-get https://www1.web-platform.test:8443, is cross-origin: true, is allowed by policy: true: FAIL (Chrome: PASS, Safari: FAIL)
  • /digital-credentials/disabled-by-permissions-policy.https.sub.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Permissions-Policy header digital-credentials-get=() disallows the top-level document.: FAIL (Chrome: PASS, Safari: FAIL)
    • Permissions-Policy header digital-credentials-get=() disallows same-origin iframes.: FAIL (Chrome: PASS, Safari: FAIL)
    • Header-set policy is overridden in cross-origin iframe using allow attribute.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Setting digital-credentials-get=(self) disallows the API in same-origin iframes.: FAIL (Chrome: PASS, Safari: FAIL)
  • /digital-credentials/enabled-on-self-origin-by-permissions-policy.https.sub.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • Permissions-Policy header digital-credentials-get=(self) allows the top-level document.: FAIL (Chrome: PASS, Safari: FAIL)
    • Permissions-Policy header digital-credentials-get=(self) allows same-origin iframes.: FAIL (Chrome: PASS, Safari: FAIL)
    • Permissions-Policy header digital-credentials-get=(self) disallows cross-origin iframes.: FAIL (Chrome: PASS, Safari: FAIL)
    • Permissions-Policy header digital-credentials-get=(self) gets overridden by allow attribute.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /digital-credentials/get.tentative.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
    • navigator.credentials.get() API rejects if there are no providers.: FAIL (Chrome: PASS, Safari: FAIL)
    • navigator.credentials.get() API rejects if there are no providers for same-origin iframe.: FAIL (Chrome: PASS, Safari: FAIL)
    • navigator.credentials.get() API rejects if there are no providers in cross-origin iframe.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.get() promise is rejected if called with an aborted controller.: FAIL (Chrome: PASS, Safari: PASS)
    • navigator.credentials.get() promise is rejected if called with an aborted controller in same-origin iframe.: FAIL (Chrome: PASS, Safari: PASS)
    • navigator.credentials.get() promise is rejected if called with an aborted signal in cross-origin iframe.: FAIL (Chrome: PASS, Safari: PASS)
    • navigator.credentials.get() promise is rejected if abort controller is aborted after call to get().: FAIL (Chrome: PASS, Safari: FAIL)
    • navigator.credentials.get() promise is rejected if abort controller is aborted after call to get() in cross-origin iframe.: FAIL (Chrome: PASS, Safari: FAIL)
    • Mediation is required to get a DigitalCredential.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /digital-credentials/create.tentative.https.html [wpt.fyi]
    • navigator.credentials.create() frame just returns null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() same-origin iframe just returns null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() cross-origin iframe results in null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() ignores mediations.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() ignores mediations in same-origin iframe.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() ignores mediations in cross-origin iframe.: FAIL (Chrome: FAIL, Safari: FAIL)
    • navigator.credentials.create() rejects if called with an aborted controller.: FAIL (Chrome: FAIL, Safari: PASS)
    • navigator.credentials.create() rejects if called with an aborted controller in same-origin iframe.: FAIL (Chrome: FAIL, Safari: PASS)
    • navigator.credentials.create() rejects if called with an aborted controller in cross-origin iframe.: FAIL (Chrome: FAIL, Safari: PASS)
    • Adding mediations together with abort signal respects the abort signal.: FAIL (Chrome: FAIL, Safari: PASS)
  • /digital-credentials/default-permissions-policy.https.sub.html [wpt.fyi]
    • Permissions-Policy is by default 'self'.: FAIL (Chrome: PASS, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

  • /digital-credentials/allow-attribute.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /digital-credentials/disabled-by-permissions-policy.https.sub.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /digital-credentials/enabled-on-self-origin-by-permissions-policy.https.sub.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
  • /digital-credentials/get.tentative.https.html [wpt.fyi]: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-lite-qr-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-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt] (Chrome: OK, Safari: OK)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7e28b1febde7 [wpt PR 48681] - [wpt] Fix testdriver.js portability issues in `digital-credentials/`, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 133 Branch
You need to log in before you can comment on or make changes to this bug.