Closed Bug 2091932 Opened 3 days ago Closed 12 hours ago

[wpt-sync] Sync PR 64323 - Add test for FontFaceSet.check() with a failed font face

Categories

(Core :: Layout: Text and Fonts, task, P4)

task

Tracking

()

RESOLVED FIXED
162 Branch
Tracking Status
firefox162 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Michael Zaporozhets <michael.zaporozhets@shopify.com> wrote:

Add test for FontFaceSet.check() with a failed font face

FontFaceSet.check() should return false once the only matching font face has permanently failed to load (status === "error"), per https://drafts.csswg.org/css-font-loading/#font-face-set-check: check() may only report true when every matching face has a status of "loaded".

Verified with Playwright: Chromium 147 and current Firefox already return false in this case. WebKit (26.4, and current main before the linked fix) returns true.

This is the test attached to a WebKit bug and PR for the same issue:

Uses local("nonexistentfont-...") to force a deterministic load failure, same approach as the existing font-face-reject.html test in this directory, rather than a malformed data: URL.

Forces layout both before and after the face settles to "error", since the underlying WebKit bug only reproduced when the family's matching font face got looked up (and cached) while the face was still pending, before its status became "error".

Component: web-platform-tests → Layout: Text and Fonts
Product: Testing → Core

CI Results

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

Total 35 tests and 1 subtests

Status Summary

Firefox

OK : 1[GitHub] 25[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
PASS: 1[GitHub] 3[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt] 191[Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt] 197[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
FAIL: 54[Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt] 55[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]

Chrome

OK : 1
PASS: 1

Safari

OK : 1
FAIL: 1

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /css/css-font-loading/fontface-override-descriptors.html [wpt.fyi]: FAIL
  • /css/css-font-loading/fontface-descriptor-updates-2.html [wpt.fyi]
    • Font matching uses updated style and family name: FAIL
  • /css/css-font-loading/fontface-invalid-family.tentative.html [wpt.fyi]
    • family: a b: FAIL
    • family: a b: FAIL
    • family: a b : FAIL
  • /css/css-font-loading/fontfaceset-has.html [wpt.fyi]
    • fontfaceset-has: FAIL
  • /css/css-font-loading/idlharness.https.html [wpt.fyi]
    • FontFace interface: attribute features: FAIL
    • FontFace interface: attribute variations: FAIL
    • FontFace interface: attribute palettes: FAIL
    • FontFace interface: fontFace must inherit property "features" with the proper type: FAIL
    • FontFace interface: fontFace must inherit property "variations" with the proper type: FAIL
    • FontFace interface: fontFace must inherit property "palettes" with the proper type: FAIL
    • FontFaceFeatures interface: existence and properties of interface object: FAIL
    • FontFaceFeatures interface object length: FAIL
    • FontFaceFeatures interface object name: FAIL
    • FontFaceFeatures interface: existence and properties of interface prototype object: FAIL
    • FontFaceFeatures interface: existence and properties of interface prototype object's "constructor" property: FAIL
    • FontFaceFeatures interface: existence and properties of interface prototype object's @@unscopables property: FAIL
    • FontFaceVariationAxis interface: existence and properties of interface object: FAIL
    • FontFaceVariationAxis interface object length: FAIL
    • FontFaceVariationAxis interface object name: FAIL
    • FontFaceVariationAxis interface: existence and properties of interface prototype object: FAIL
    • FontFaceVariationAxis interface: existence and properties of interface prototype object's "constructor" property: FAIL
    • FontFaceVariationAxis interface: existence and properties of interface prototype object's @@unscopables property: FAIL
    • FontFaceVariationAxis interface: attribute name: FAIL
    • FontFaceVariationAxis interface: attribute axisTag: FAIL
    • FontFaceVariationAxis interface: attribute minimumValue: FAIL
    • FontFaceVariationAxis interface: attribute maximumValue: FAIL
    • FontFaceVariationAxis interface: attribute defaultValue: FAIL
    • FontFaceVariations interface: existence and properties of interface object: FAIL
    • FontFaceVariations interface object length: FAIL
    • FontFaceVariations interface object name: FAIL
    • FontFaceVariations interface: existence and properties of interface prototype object: FAIL
    • FontFaceVariations interface: existence and properties of interface prototype object's "constructor" property: FAIL
    • FontFaceVariations interface: existence and properties of interface prototype object's @@unscopables property: FAIL
    • FontFaceVariations interface: setlike<FontFaceVariationAxis>: FAIL
    • FontFacePalette interface: existence and properties of interface object: FAIL
    • FontFacePalette interface object length: FAIL
    • FontFacePalette interface object name: FAIL
    • FontFacePalette interface: existence and properties of interface prototype object: FAIL
    • FontFacePalette interface: existence and properties of interface prototype object's "constructor" property: FAIL
    • FontFacePalette interface: existence and properties of interface prototype object's @@unscopables property: FAIL
    • FontFacePalette interface: iterable<DOMString>: FAIL
    • FontFacePalette interface: attribute length: FAIL
    • FontFacePalette interface: attribute usableWithLightBackground: FAIL
    • FontFacePalette interface: attribute usableWithDarkBackground: FAIL
    • FontFacePalettes interface: existence and properties of interface object: FAIL
    • FontFacePalettes interface object length: FAIL
    • FontFacePalettes interface object name: FAIL
    • FontFacePalettes interface: existence and properties of interface prototype object: FAIL
    • FontFacePalettes interface: existence and properties of interface prototype object's "constructor" property: FAIL
    • FontFacePalettes interface: existence and properties of interface prototype object's @@unscopables property: FAIL
    • FontFacePalettes interface: iterable<FontFacePalette>: FAIL
    • FontFacePalettes interface: attribute length: FAIL
    • FontFaceSet interface: setlike<FontFace>: FAIL
Pushed by wptsync@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/8b2e58451922 https://hg.mozilla.org/integration/autoland/rev/52a2e94c1e85 [wpt PR 64323] - Add test for FontFaceSet.check() with a failed font face, a=testonly
Status: NEW → RESOLVED
Closed: 12 hours ago
Resolution: --- → FIXED
Target Milestone: --- → 162 Branch
You need to log in before you can comment on or make changes to this bug.