Skip to content

Releases: web-platform-tests/wpt

merge_pr_60576

12 Jun 11:33

Choose a tag to compare

layout: Add a crash test for #45008

This wasn't done when the issue was fixed in taffy.

Signed-off-by: Martin Robinson mrobinson@igalia.com
Co-authored-by: Oriol Brufau obrufau@igalia.com

merge_pr_60575

12 Jun 11:20

Choose a tag to compare

Normalize algorithm before copying input buffers

SubtleCrypto's encrypt(), decrypt(), sign(), verify(), digest() and
importKey() copied the bytes of their BufferSource arguments
(data/signature/keyData) into an internal buffer before normalizing
the algorithm. The Web Crypto specification mandates the opposite order:
normalize the algorithm first, then get a copy of the bytes.

This ordering is observable because normalizing an algorithm reads
members off the author-supplied algorithm dictionary, which can run a
JavaScript getter (e.g. get name()). That getter can mutate, restore,
detach or transfer the input buffer. Snapshotting the bytes too early
captured the pre-getter state, diverging from the spec and from
Firefox/Safari, and failing the WebCryptoAPI "...altered/transferred ...
during call" subtests in Chrome and Edge.

Reorder these methods to normalize-then-copy, mirroring the already
spec-compliant unwrapKey(). No other behavior changes: the copies are
still consumed by the same Platform crypto calls; only the moment the
bytes are snapshotted moves to after normalization.

Rebaseline the affected WebCryptoAPI WPT expectations. Additionally,
migrate the Blink-internal coverage to the spec-based WPT tests. The
internal tests asserted the old copy-before-normalize behavior; the
encrypt/verify cases are already covered by encrypt_decrypt/aes.js and
sign_verify/{ecdsa,eddsa}.js, and a new "Key data altered during call"
case is added to import_export/symmetric_importKey.js for the importKey
case.

Big: 522216177
Change-Id: I5a9ed9bc3dadd0cec83392d304226ec4f1fb03ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7916509
Commit-Queue: Javier Fernandez jfernandez@igalia.com
Reviewed-by: Mike West mkwst@chromium.org
Cr-Commit-Position: refs/heads/main@{#1645819}

merge_pr_60574

12 Jun 11:30
d55e21f

Choose a tag to compare

Line height quirks doesn't apply to block-ellpisis (#60574)

See w3c/csswg-drafts#13708

merge_pr_60573

12 Jun 08:49

Choose a tag to compare

Automated regeneration of WPT certificates

merge_pr_60572

12 Jun 14:09

Choose a tag to compare

Fix interaction of gap and visibility: collapse in flex containers.

Differential Revision: https://phabricator.services.mozilla.com/D306099

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=2046642
gecko-commit: 0fb1ae1b6065e78b56bd6d62e694e8c2b4edac8a
gecko-commit-git: e1613ad57e0a2a300d2bb090be4c40be2b60251a
gecko-reviewers: dholbert, layout-reviewers, dshin

merge_pr_60571

12 Jun 01:40

Choose a tag to compare

[URLPattern] Use fake url with non-special scheme for port encoding

The port component encoding function previously used a fake URL with
an HTTPS scheme for canonicalization [1]. Under the URL specification,
replacing a port that matches the default port of a special scheme
(such as 443 for HTTPS) strips the port string, resulting in an
empty string [2].

This behavior is spec-compliant but violates an internal precondition in
the Part structure, which expects kFixed parts to have non-empty
string values.

To address this, tentatively switch to a fake URL with a non-special
scheme ("dummy://") during port encoding. This prevents the URL
parser from stripping default ports. Additionally, introduce a
validation check and assertion to ensure that non-empty input port
components remain non-empty after encoding.

[1] https://url.spec.whatwg.org/#port-state
[2] https://urlpattern.spec.whatwg.org/#canonicalize-a-port

Bug: 520829534
Change-Id: Icae502be44999d3bfaae8e2c29b6450dc7fa4968
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7924108
Reviewed-by: Shunya Shishido sisidovski@chromium.org
Commit-Queue: Takashi Nakayama tnak@chromium.org
Cr-Commit-Position: refs/heads/main@{#1645725}

merge_pr_60570

12 Jun 01:25

Choose a tag to compare

Add counter and experimental check for attachShadow on non-HTML element

Per step 1 of the DOM spec's "attach a shadow root" [1],
Element.attachShadow() should check that the element's namespace is
the HTML namespace before allowing shadow root attachment.

Add a UseCounter to see how often attachShadow is called for non-
HTML elements, and add the check to disallow it behind an
experimental flag.

[1] https://dom.spec.whatwg.org/#concept-attach-a-shadow-root

Bug: 521896365
Change-Id: I5253eee863920a1ea7f7de48086355318b2982bd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7915190
Reviewed-by: Mason Freed masonf@chromium.org
Commit-Queue: Dan Clark daniec@microsoft.com
Cr-Commit-Position: refs/heads/main@{#1645719}

merge_pr_60569

12 Jun 10:37

Choose a tag to compare

textarea: Always add a placeholder break to empty elements

This CL ensures that empty TEXTAREA elements always contain a
placeholder break element. This provides a consistent line-height and
baseline, particularly for non-editable textareas (e.g., disabled,
read-only, or within an inert subtree) which previously might have
collapsed or had incorrect layout metrics.

Although the placeholder break is primarily needed for non-editable
states, it is added unconditionally because an element's editability
can change dynamically (e.g., via the 'inert' attribute on an ancestor),
making conditional management complex.

Implementation details:

  • HTMLTextAreaElement: Injects the placeholder break into the inner
    editor upon creation if the value is empty.

  • TextControlElement: Manages the lifecycle of the placeholder break
    when the value changes.

  • RemoveNodeCommand: Updated to correctly handle 'ref_child' when it
    points to a placeholder break, ensuring correct undo/redo behavior.

  • SelectionController: Updated 'IsEditableBoxEmpty' to check the
    actual text content instead of just 'HasChildren()', accounting for
    the internal placeholder break.

    trees. It affects <textarea> with a value ending with \n.

AX-Relnotes: Placeholder break elements are dropped from accessibility
Bug: 510170707
Change-Id: I5871a6890ceb50945b8995293fcbaafa7c6e25c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7875830
Reviewed-by: David Tseng dtseng@chromium.org
Commit-Queue: Kent Tamura tkent@chromium.org
Reviewed-by: Koji Ishii kojii@chromium.org
Cr-Commit-Position: refs/heads/main@{#1645788}

merge_pr_60567

12 Jun 02:44

Choose a tag to compare

webnn: emulate rank-5 input tensors for other logical ops on TFLite

This CL raises the input rank limit from 4 to 5 for the six comparison
operators equal, notEqual, greater, greaterOrEqual, lesser and
lesserOrEqual on the TFLite backend, aligning them with the other
element-wise logical operators.

This CL also adds conformance tests for the new rank-5 paths.

Change-Id: I8a7710c6c24997bd5b49e8f47cc478be6bcfe67e
Bug: 521893563
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, win11-arm64-blink-rel, mac14.arm64-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7914923
Commit-Queue: Dai, Feng feng.dai@intel.com
Auto-Submit: Dai, Feng feng.dai@intel.com
Reviewed-by: Hu, Ningxin ningxin.hu@intel.com
Reviewed-by: Reilly Grant reillyg@chromium.org
Cr-Commit-Position: refs/heads/main@{#1645738}

merge_pr_60565

12 Jun 13:05

Choose a tag to compare

Migrate Shadow DOM crashtests to WPT

Bug: 485677942
Change-Id: If61bf4e139e6a0ab3359bf882304fe3d7be9689f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7915064
Commit-Queue: Manuel Rego Casasnovas rego@igalia.com
Reviewed-by: Joey Arhar jarhar@chromium.org
Cr-Commit-Position: refs/heads/main@{#1645863}