Skip to content

script: Complain to devtools when encoding meta tag is found after prescanning#41730

Open
simonwuelker wants to merge 1 commit intoservo:mainfrom
simonwuelker:encoding-indicator-3
Open

script: Complain to devtools when encoding meta tag is found after prescanning#41730
simonwuelker wants to merge 1 commit intoservo:mainfrom
simonwuelker:encoding-indicator-3

Conversation

@simonwuelker
Copy link
Copy Markdown
Contributor

@simonwuelker simonwuelker commented Jan 7, 2026

Properly supporting <meta charset> is hard because the specification and implementations disagree about what should be done when a meta tag is found after prescanning. For example, if you load https://github.com/servo/servo/blob/main/tests/wpt/tests/html/syntax/charset/after-bogus-after-1kb.html in firefox then gecko will reject the meta tag, violating the spec.

Related issues are web-platform-tests/wpt#56973 and whatwg/html#6962.

This is change is therefore an alternative to #41430. Instead of reloading the page, we just send a message to the devtools telling the author to fix their page. This matches what gecko does on the testcase above.

The test expectations that change here are the result of unrelated changes in html5ever that haven't made their way into servo yet.

Testing: Devtools tests are hard to use so i only tested this manually

@simonwuelker simonwuelker requested a review from gterzian as a code owner January 7, 2026 10:14
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Jan 7, 2026
@simonwuelker simonwuelker added the T-linux-wpt Do a try run of the WPT label Jan 7, 2026
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Jan 7, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 7, 2026

🔨 Triggering try run (#20778054506) for Linux (WPT)

@codecov-commenter
Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 7, 2026

Test results for linux-wpt from try job (#20778054506):

Flaky unexpected result (37)
  • OK /_mozilla/css/offset_properties_inline.html (#40543)
    • FAIL [expected PASS] subtest: offsetTop

      assert_equals: offsetTop of #inline-1 should be 0. expected 0 but got -1
      

    • FAIL [expected PASS] subtest: offsetLeft

      assert_equals: offsetLeft of #inline-2 should be 40. expected 40 but got 25
      

  • OK /_mozilla/mozilla/getBoundingClientRect.html (#39668)
    • FAIL [expected PASS] subtest: getBoundingClientRect 1

      assert_equals: expected 62 but got 60.35
      

  • OK /_mozilla/webxr/create_session.https.html
    • FAIL [expected PASS] subtest: create_session

      can't access property "simulateDeviceConnection", navigator.xr.test is undefined
      

  • OK /_mozilla/webxr/obtain_frame.https.html
    • FAIL [expected PASS] subtest: obtain_frame

      promise_test: Unhandled rejection with value: object "TypeError: can't access property "simulateDeviceConnection", navigator.xr.test is undefined"
      

  • ERROR [expected TIMEOUT] /_mozilla/webxr/sessionavailable.https.html
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #79

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #81

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #83

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • PASS [expected FAIL] subtest: WebGL test #85
    • PASS [expected FAIL] subtest: WebGL test #87
    • PASS [expected FAIL] subtest: WebGL test #89
    • PASS [expected FAIL] subtest: WebGL test #91
  • TIMEOUT [expected OK] /credential-management/credentialscontainer-frame-basics.https.html (#39430)
    • TIMEOUT [expected FAIL] subtest: navigator.credentials should be undefined in documents generated from data: URLs.

      Test timed out
      

  • OK /css/css-animations/event-order.tentative.html (#39000)
    • PASS [expected FAIL] subtest: Same events on pseudo-elements follow the prescribed order
  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • OK /css/css-cascade/layer-font-face-override.html (#35935)
    • FAIL [expected PASS] subtest: @font-face override update with appended sheet 1

      assert_equals: expected "80px" but got "38.3166666666667px"
      

    • FAIL [expected PASS] subtest: @font-face override update with appended sheet 2

      assert_equals: expected "80px" but got "38.3166666666667px"
      

  • OK /custom-elements/form-associated/ElementInternals-setFormValue.html (#29174)
    • PASS [expected FAIL] subtest: Null value should submit nothing
    • PASS [expected FAIL] subtest: Newline normalization - \r\n in value (formdata)
    • PASS [expected FAIL] subtest: Newline normalization - \n in FormData value (formdata)
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-site destination
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination
  • OK /fetch/metadata/window-open.https.sub.html (#40339)
    • FAIL [expected PASS] subtest: Same-site window, forced, reloaded

      The operation is insecure.
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
    • PASS [expected FAIL] subtest: Link with onclick navigation and href navigation
  • CRASH [expected OK] /html/browsers/sandboxing/sandbox-initial-empty-document-toward-same-origin.html (#35948)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-nonexistent.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with non-existent fragments should work.

      Test timed out
      

  • OK /html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html (#39703)
    • FAIL [expected PASS] subtest: Meta refresh of the original iframe is not blocked if moved into a sandboxed iframe

      uncaught exception: Error: assert_unreached: The iframe into which the meta was moved must not refresh Reached unreachable code
      

  • TIMEOUT [expected OK] /html/semantics/embedded-content/media-elements/audio_loop_base.html (#41122)
    • NOTRUN [expected PASS] subtest: Check if audio.loop is set to true that expecting the seeking event is fired more than once
  • TIMEOUT /html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub.html (#41404)
    • PASS [expected TIMEOUT] subtest: Feature-Policy header: autoplay * allows same-origin iframes.
  • TIMEOUT /html/semantics/embedded-content/media-elements/autoplay-default-feature-policy.https.sub.html (#41193)
    • PASS [expected TIMEOUT] subtest: Default "autoplay" feature policy ["self"] allows same-origin iframes.
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_other_frame_popup.sub.html (#39702)
    • TIMEOUT [expected FAIL] subtest: Sandboxed iframe can not navigate other frame's popup

      Test timed out
      

  • OK /html/semantics/forms/form-submission-0/jsurl-form-submit.tentative.html (#36489)
    • PASS [expected FAIL] subtest: Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • FAIL [expected PASS] subtest: multipart/form-data: Basic test (formdata event)

      assert_equals: expected "\r\nContent-Disposition: form-data; name=\"basic\"\r\n\r\ntest\r\n--\r\n" but got ""
      

  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: non-ASCII in name and value (formdata event)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: Basic File test (formdata event)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: 0x00 in value (formdata event)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: single quote in name (normal form)
  • OK /html/webappapis/user-prompts/print-during-unload.html (#35944)
    • PASS [expected FAIL] subtest: print() during unload
  • OK /preload/prefetch-document.html (#37210)
    • FAIL [expected PASS] subtest: different-site document prefetch with 'as=document' should not be consumed

      assert_equals: expected 2 but got 1
      

  • OK /preload/preload-xhr.html (#39092)
    • FAIL [expected PASS] subtest: Make an XHR request immediately after creating link rel=preload.

      assert_equals: resources/dummy.xml?token=4fc31e63-029d-4f97-af2d-92667bc822de expected 1 but got 0
      

  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • PASS [expected FAIL] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one
  • ERROR [expected OK] /resource-timing/cors-preflight.any.html (#28694)
  • CRASH [expected OK] /trusted-types/Element-setAttribute-setAttributeNS-sinks.tentative.html
  • TIMEOUT [expected OK] /trusted-types/trusted-types-navigation.html?01-05 (#38975)
    • TIMEOUT [expected PASS] subtest: Navigate a window via anchor with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Navigate a window via anchor with javascript:-urls w/ default policy in report-only mode.
    • NOTRUN [expected PASS] subtest: Navigate a frame via anchor with javascript:-urls in enforcing mode.
  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?06-10 (#37920)
    • PASS [expected FAIL] subtest: Navigate a frame via anchor with javascript:-urls in report-only mode.
    • PASS [expected TIMEOUT] subtest: Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.
    • FAIL [expected NOTRUN] subtest: Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in enforcing mode.

      promise_test: Unhandled rejection with value: "Unexpected message received: \"No securitypolicyviolation reported!\""
      

    • FAIL [expected NOTRUN] subtest: Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in report-only mode.

      promise_test: Unhandled rejection with value: "Unexpected message received: \"No securitypolicyviolation reported!\""
      

  • CRASH [expected OK] /upgrade-insecure-requests/gen/top.meta/unset/sharedworker-import-data.https.html
  • CRASH [expected OK] /wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html
  • CRASH [expected ERROR] /wasm/webapi/status.any.serviceworker.html
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results that are known to be intermittent (21)
  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.worker.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbobjectstore_getAll.any.html (#39276)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbobjectstore_getAll.any.worker.html (#39400)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.html (#38895)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.worker.html (#38971)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/key-conversion-exceptions.any.html (#39305)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() =&gt; {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() =&gt; {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • OK /IndexedDB/key-conversion-exceptions.any.worker.html (#39284)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() =&gt; {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() =&gt; {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • FAIL [expected PASS] /_mozilla/mozilla/sslfail.html (#10760)
  • TIMEOUT [expected OK] /_mozilla/mozilla/window_resize_event.html (#36741)
    • TIMEOUT [expected PASS] subtest: Popup onresize event fires after resizeTo

      Test timed out
      

  • OK /content-security-policy/frame-ancestors/frame-ancestors-path-ignored.window.html (#36468)
    • PASS [expected FAIL] subtest: A 'frame-ancestors' CSP directive with a URL that includes a path should be ignored.
  • OK /css/css-cascade/layer-cssom-order-reverse.html (#36094)
    • PASS [expected FAIL] subtest: Delete layer invalidates @font-face
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-monospace (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-rounded (drawing text in a canvas)
  • ERROR [expected OK] /focus/focus-event-after-switching-iframes.sub.html (#40368)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation

      assert_equals: expected "" but got "#fragment"
      

  • TIMEOUT /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus should support autofocus

      assert_equals: expected Element node &lt;div autofocus=""&gt;&lt;/div&gt; but got Element node &lt;body&gt;&lt;div autofocus=""&gt;&lt;/div&gt;&lt;/body&gt;
      

    • TIMEOUT [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped

      Test timed out
      

  • OK [expected TIMEOUT] /html/semantics/embedded-content/media-elements/src_object_blob.html (#40340)
    • PASS [expected TIMEOUT] subtest: HTMLMediaElement.srcObject blob
  • FAIL [expected PASS] /png/apng/acTL-plays-one.html (#41218)
  • OK /preload/preload-error.sub.html (#37177)
    • FAIL [expected PASS] subtest: 404 (fetch): main

      assert_greater_than: http://web-platform.test:8000/preload/resources/dummy.xml?pipe=status%28404%29&amp;label=fetch should be loaded expected a number greater than 0 but got 0
      

  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 7, 2026

✨ Try run (#20778054506) succeeded.

@servo-highfive servo-highfive added S-awaiting-review There is new code that needs to be reviewed. and removed S-awaiting-review There is new code that needs to be reviewed. labels Jan 7, 2026
@simonwuelker simonwuelker added the T-linux-wpt Do a try run of the WPT label Jan 10, 2026
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Jan 10, 2026
@github-actions
Copy link
Copy Markdown

🔨 Triggering try run (#20884080206) for Linux (WPT)

@github-actions
Copy link
Copy Markdown

Test results for linux-wpt from try job (#20884080206):

Flaky unexpected result (29)
  • OK /_mozilla/css/offset_properties_inline.html (#40543)
    • FAIL [expected PASS] subtest: offsetTop

      assert_equals: offsetTop of #inline-1 should be 0. expected 0 but got -1
      

    • FAIL [expected PASS] subtest: offsetLeft

      assert_equals: offsetLeft of #inline-2 should be 40. expected 40 but got 25
      

  • OK /_mozilla/webxr/create_session.https.html
    • FAIL [expected PASS] subtest: create_session

      can't access property "simulateDeviceConnection", navigator.xr.test is undefined
      

  • ERROR [expected TIMEOUT] /_mozilla/webxr/sessionavailable.https.html
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #79

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #81

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #83

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

  • FAIL [expected PASS] /css/css-backgrounds/background-size-042.html
  • OK /css/css-cascade/layer-cssom-order-reverse.html (#36094)
    • PASS [expected FAIL] subtest: Delete layer invalidates @font-face
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(nastaliq) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-rounded (drawing text in a canvas)
  • TIMEOUT [expected OK] /fetch/api/redirect/redirect-keepalive.https.any.html (#32153)
    • TIMEOUT [expected PASS] subtest: [keepalive][iframe][load] mixed content redirect; setting up

      Test timed out
      

  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/multiple-iframes.https.window.html (#35176)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
    • PASS [expected FAIL] subtest: Link with onclick navigation and href navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation

      assert_equals: expected "" but got "#fragment"
      

  • OK /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • FAIL [expected PASS] subtest: opener of discarded auxiliary browsing context

      assert_object_equals: property "get" expected function "function opener() {
          [native code]
      }" got function "function opener() {
          [native code]
      }"
      

  • OK /html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html (#39694)
    • PASS [expected FAIL] subtest: Meta refresh is blocked by the allow-scripts sandbox flag at its creation time, not when refresh comes due
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_other_frame_popup.sub.html (#39702)
    • TIMEOUT [expected FAIL] subtest: Sandboxed iframe can not navigate other frame's popup

      Test timed out
      

  • OK /html/semantics/forms/form-submission-0/jsurl-form-submit.tentative.html (#36489)
    • PASS [expected FAIL] subtest: Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: 0x00 in value (formdata event)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • FAIL [expected PASS] subtest: text/plain: Basic test (formdata event)

      assert_equals: expected "basic=test\r\n" but got ""
      

    • FAIL [expected PASS] subtest: text/plain: Basic File test (normal form)

      assert_equals: expected "basic=file-test.txt\r\n" but got ""
      

    • PASS [expected FAIL] subtest: text/plain: 0x00 in name (normal form)
    • PASS [expected FAIL] subtest: text/plain: 0x00 in value (formdata event)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • FAIL [expected PASS] subtest: application/x-www-form-urlencoded: Basic test (formdata event)

      assert_equals: expected "basic=test" but got ""
      

    • FAIL [expected PASS] subtest: application/x-www-form-urlencoded: Basic File test (normal form)

      assert_equals: expected "basic=file-test.txt" but got ""
      

    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: 0x00 in filename (normal form)
  • OK /html/semantics/scripting-1/the-script-element/execution-timing/077.html (#22139)
    • FAIL [expected PASS] subtest: adding several types of scripts through the DOM and removing some of them confuses scheduler

      assert_array_equals: expected property 1 to be "Script #1 ran" but got "Script #3 ran" (expected array ["Script #2 ran", "Script #1 ran", "Script #3 ran", "Script #4 ran"] got ["Script #2 ran", "Script #3 ran", "Script #4 ran", "Script #1 ran"])
      

  • CRASH [expected OK] /html/webappapis/system-state-and-capabilities/the-navigator-object/secure_context.html
  • OK /mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html (#41135)
    • FAIL [expected PASS] subtest: Video autoupgraded

      assert_equals: Length. expected 1 but got Infinity
      

    • FAIL [expected PASS] subtest: Video of other host autoupgraded

      assert_equals: Length. Other host expected 1 but got Infinity
      

  • OK /preload/preload-invalid-resources.html (#39091)
    • PASS [expected FAIL] subtest: Preloading an invalid image (missing) should preload and not re-fetch
  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • PASS [expected FAIL] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • CRASH [expected OK] /trusted-types/eval-csp-no-tt.html
  • CRASH [expected OK] /trusted-types/eval-function-constructor.html
  • TIMEOUT /trusted-types/trusted-types-navigation.html?06-10 (#37920)
    • TIMEOUT [expected FAIL] subtest: Navigate a frame via anchor with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.
  • CRASH [expected OK] /uievents/idlharness.window.html
  • CRASH [expected OK] /wasm/webapi/esm-integration/worklet-import-source-phase.tentative.https.html
Stable unexpected results that are known to be intermittent (22)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • TIMEOUT [expected PASS] subtest: Fetching a blob URL immediately before revoking it works in &lt;script&gt; tags.

      Test timed out
      

  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbcursor-continuePrimaryKey-exceptions.any.worker.html (#39277)
    • FAIL [expected PASS] subtest: IDBCursor continuePrimaryKey() on object store cursor

      assert_throws_dom: continuePrimaryKey() should throw if source is not an index function "function() {
              cursor.continuePrimaryKey(2, 2);
            }" threw object "TypeError: cursor.continuePrimaryKey is not a function" that is not a DOMException InvalidAccessError: property "code" is equal to undefined, expected 15
      

  • OK /IndexedDB/idbobjectstore_getAll.any.html (#39276)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbobjectstore_getAll.any.worker.html (#39400)
    • PASS [expected FAIL] subtest: Get all values with transaction.commit()
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.html (#38895)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/idbrequest-onupgradeneeded.any.worker.html (#38971)
    • PASS [expected FAIL] subtest: transaction oncomplete ordering relative to open request onsuccess
  • OK /IndexedDB/key-conversion-exceptions.any.html (#39305)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() =&gt; {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() =&gt; {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • OK /IndexedDB/key-conversion-exceptions.any.worker.html (#39284)
    • FAIL [expected PASS] subtest: IDBCursor continue() method with throwing/invalid keys

      assert_throws_exactly: key conversion with throwing getter should rethrow function "() =&gt; {
            receiver[method](key);
          }" threw object "TypeError: receiver[method] is not a function" but we expected it to throw object "getter: throwing from getter"
      

    • FAIL [expected PASS] subtest: IDBCursor update() method with throwing/invalid keys

      assert_throws_exactly: throwing getter should rethrow during clone function "() =&gt; {
            cursor.update(value);
          }" threw object "TypeError: cursor.update is not a function" but we expected it to throw object "getter: throwing from getter"
      

  • OK /IndexedDB/transaction-deactivation-timing.any.worker.html (#38808)
    • PASS [expected FAIL] subtest: New transactions are deactivated before next task
  • FAIL [expected PASS] /_mozilla/mozilla/sslfail.html (#10760)
  • TIMEOUT [expected OK] /_mozilla/mozilla/window_resize_event.html (#36741)
    • TIMEOUT [expected PASS] subtest: Popup onresize event fires after resizeTo

      Test timed out
      

  • OK /css/css-fonts/generic-family-keywords-001.html (#37467)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(nastaliq)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-dest
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-site destination
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination
  • ERROR [expected OK] /focus/focus-event-after-switching-iframes.sub.html (#40368)
  • TIMEOUT /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected PASS] subtest: Non-HTMLElement should not support autofocus

      Test timed out
      

  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/update-the-rendering.html (#24145)
    • FAIL [expected TIMEOUT] subtest: "Flush autofocus candidates" should be happen before a scroll event and animation frame callbacks

      assert_array_equals: animationFrame lengths differ, expected array ["autofocus", "scroll", "animationFrame"] length 3, got ["animationFrame"] length 1
      

  • TIMEOUT [expected ERROR] /html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener_base.html (#40347)
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload domComplete &gt; Original domComplete
    • PASS [expected FAIL] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart
    • PASS [expected FAIL] subtest: Reload fetchStart &gt; Original fetchStart
    • PASS [expected FAIL] subtest: Reload loadEventEnd &gt; Original loadEventEnd
    • PASS [expected FAIL] subtest: Reload loadEventStart &gt; Original loadEventStart
  • FAIL [expected PASS] /png/apng/acTL-plays-one.html (#41218)
  • OK /preload/preload-error.sub.html (#37177)
    • FAIL [expected PASS] subtest: success (fetch): main

      assert_greater_than: http://web-platform.test:8000/preload/resources/dummy.xml?label=fetch should be loaded expected a number greater than 0 but got 0
      

    • FAIL [expected PASS] subtest: 404 (fetch): main

      assert_greater_than: http://web-platform.test:8000/preload/resources/dummy.xml?pipe=status%28404%29&amp;label=fetch should be loaded expected a number greater than 0 but got 0
      

Stable unexpected results (40)
  • OK /html/semantics/forms/the-select-element/customizable-select/nested-options.html
    • PASS [expected FAIL] subtest: The HTML parser should disallow nested options in select datalist.
  • CRASH [expected PASS] /html/semantics/forms/the-select-element/customizable-select/nested-select-crash.html
  • OK /html/semantics/forms/the-select-element/customizable-select/option-disabled-invalid-nesting.html
    • PASS [expected FAIL] subtest: options should not inherit disabledness when nested in invalid elements.
  • OK /html/semantics/forms/the-select-element/customizable-select/option-disabled-optgroup.html
    • FAIL [expected PASS] subtest: options should check ancestor optgroup for disabled state.

      assert_equals: color after optgroup disabled expected "rgb(128, 128, 128)" but got "rgb(0, 0, 0)"
      

  • CRASH [expected ERROR] /html/semantics/forms/the-select-element/customizable-select/select-appearance-button-after-span.html
  • CRASH [expected ERROR] /html/semantics/forms/the-select-element/customizable-select/select-appearance-button-after-text.html
  • OK [expected ERROR] /html/semantics/forms/the-select-element/customizable-select/select-base-appearance-computed-style.html
    • FAIL [expected PASS] subtest: UA styles of base appearance &lt;select&gt;.

      assert_equals: background-color expected "rgba(0, 0, 0, 0)" but got "rgb(211, 211, 211)"
      

    • FAIL [expected PASS] subtest: UA styles of base appearance select::picker-icon.

      assert_equals: content expected "counter(fake-counter-name, disclosure-open)" but got ""
      

    • FAIL [expected PASS] subtest: UA styles of base appearance ::picker(select)

      assert_equals: box-sizing expected "border-box" but got ""
      

    • FAIL [expected PASS] subtest: UA styles of base appearance &lt;option&gt;.

      assert_equals: min-inline-size expected "24px" but got "auto"
      

    • FAIL [expected PASS] subtest: UA styles of base appearance option::checkmark.

      assert_equals: content expected "\"✓\"" but got ""
      

    • FAIL [expected PASS] subtest: UA styles of base appearance &lt;optgroup&gt;.

      assert_equals: font-weight expected "700" but got "500"
      

    • FAIL [expected PASS] subtest: UA styles of base appearance &lt;legend&gt;.

      assert_equals: min-block-size expected "13px" but got "auto"
      

    • FAIL [expected PASS] subtest: UA styles of base appearance select &lt;button&gt;.

      assert_equals: display expected "contents" but got "inline-block"
      

    • FAIL [expected PASS] subtest: UA styles of base appearance &lt;option&gt; in &lt;optgroup&gt;.

      assert_equals: font-weight expected "400" but got "500"
      

  • OK /html/semantics/forms/the-select-element/customizable-select/select-button-behaviors.html
    • PASS [expected FAIL] subtest: Select button should not inherit :disabled from select.
  • CRASH [expected ERROR] /html/semantics/forms/the-select-element/customizable-select/select-events-2.optional.html
  • OK /html/semantics/forms/the-select-element/customizable-select/select-parsing.html
    • PASS [expected FAIL] subtest: &lt;div&gt;s, &lt;button&gt;s, and &lt;datalist&gt;s should be allowed in &lt;select&gt;
    • PASS [expected FAIL] subtest: &lt;/select&gt; should close &lt;button&gt;
    • PASS [expected FAIL] subtest: &lt;/select&gt; should close &lt;datalist&gt;
    • PASS [expected FAIL] subtest: &lt;select&gt; in &lt;button&gt; in &lt;select&gt; should remove inner &lt;select&gt;
    • PASS [expected FAIL] subtest: &lt;select&gt; in &lt;select&gt;&lt;button&gt;&lt;div&gt; should remove inner &lt;select&gt;
    • PASS [expected FAIL] subtest: Divs and imgs should be allowed as direct children of select and within options without a datalist
    • PASS [expected FAIL] subtest: textarea tags should parse inside select instead of closing the select
  • FAIL [expected PASS] /html/semantics/forms/the-select-element/customizable-select/select-size-multiple-new-content.html
  • CRASH [expected OK] /html/semantics/forms/the-select-element/customizable-select/select-value-selectedOption.html
  • CRASH [expected PASS] /html/semantics/forms/the-select-element/customizable-select/selectedcontent-in-option-crash.html
  • CRASH [expected OK] /html/semantics/forms/the-select-element/customizable-select/selectedcontent-mutations.html
  • CRASH [expected TIMEOUT] /html/semantics/forms/the-select-element/customizable-select/selectedcontent-restore.html
  • CRASH [expected OK] /html/semantics/forms/the-select-element/customizable-select/selectedcontent.html
  • CRASH [expected OK] /html/semantics/forms/the-select-element/customizable-select/switch-picker-appearance.html
  • OK /html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.html
    • PASS [expected FAIL] subtest: html5lib_innerHTML_tests_innerHTML_1.html 2c4284e6b2bb480daa50bca43bcbe29cfcdeeab4
    • PASS [expected FAIL] subtest: html5lib_innerHTML_tests_innerHTML_1.html d75277b65d0118463afeb66b478509d4e27565ab
    • PASS [expected FAIL] subtest: html5lib_innerHTML_tests_innerHTML_1.html b354df69dbe9b3ef0c42177648e3aace114cf8ea
  • OK /html/syntax/parsing/html5lib_innerHTML_webkit02.html
    • PASS [expected FAIL] subtest: html5lib_innerHTML_webkit02.html c2c4647447354abc154f1917a7fbefa4a679d5fb
  • OK /html/syntax/parsing/html5lib_menuitem-element.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_menuitem-element.html d4586cd7706bbb3a5b127c52c1f2861d1a3fb781
  • OK /html/syntax/parsing/html5lib_menuitem-element.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_menuitem-element.html d4586cd7706bbb3a5b127c52c1f2861d1a3fb781
  • OK /html/syntax/parsing/html5lib_menuitem-element.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_menuitem-element.html d4586cd7706bbb3a5b127c52c1f2861d1a3fb781
  • OK /html/syntax/parsing/html5lib_tests1.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_tests1.html 0b27e026dd03a356bbd78690fff7fb40cd63b606
    • PASS [expected FAIL] subtest: html5lib_tests1.html a2dd4d5a28a61ec99ce9dae35e9d4ffe92812e2f
  • OK /html/syntax/parsing/html5lib_tests1.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_tests1.html 0b27e026dd03a356bbd78690fff7fb40cd63b606
    • PASS [expected FAIL] subtest: html5lib_tests1.html a2dd4d5a28a61ec99ce9dae35e9d4ffe92812e2f
  • OK /html/syntax/parsing/html5lib_tests1.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_tests1.html 0b27e026dd03a356bbd78690fff7fb40cd63b606
    • PASS [expected FAIL] subtest: html5lib_tests1.html a2dd4d5a28a61ec99ce9dae35e9d4ffe92812e2f
  • OK /html/syntax/parsing/html5lib_tests10.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_tests10.html fee2541ab7080ca5b363bb4b7b0c18ee1d3699ba
    • PASS [expected FAIL] subtest: html5lib_tests10.html 679fbaa80e9d15416f17eb041a8fe04c373f0e12
    • PASS [expected FAIL] subtest: html5lib_tests10.html badaa2069df3f2bb2d2da79f8ae2598f66ab2d0f
    • PASS [expected FAIL] subtest: html5lib_tests10.html 64e72bd5af825a0b014a78c77d6d0be8c330892b
  • OK /html/syntax/parsing/html5lib_tests10.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_tests10.html fee2541ab7080ca5b363bb4b7b0c18ee1d3699ba
    • PASS [expected FAIL] subtest: html5lib_tests10.html 679fbaa80e9d15416f17eb041a8fe04c373f0e12
    • PASS [expected FAIL] subtest: html5lib_tests10.html badaa2069df3f2bb2d2da79f8ae2598f66ab2d0f
    • PASS [expected FAIL] subtest: html5lib_tests10.html 64e72bd5af825a0b014a78c77d6d0be8c330892b
  • OK /html/syntax/parsing/html5lib_tests10.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_tests10.html fee2541ab7080ca5b363bb4b7b0c18ee1d3699ba
    • PASS [expected FAIL] subtest: html5lib_tests10.html 679fbaa80e9d15416f17eb041a8fe04c373f0e12
    • PASS [expected FAIL] subtest: html5lib_tests10.html badaa2069df3f2bb2d2da79f8ae2598f66ab2d0f
    • PASS [expected FAIL] subtest: html5lib_tests10.html 64e72bd5af825a0b014a78c77d6d0be8c330892b
  • OK /html/syntax/parsing/html5lib_tests18.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_tests18.html e4eb33f77ae641718853d2cfddbdb2eece6b266b
    • PASS [expected FAIL] subtest: html5lib_tests18.html 53ce5b102579af9830bf561b634af681bbdb5dfd
  • OK /html/syntax/parsing/html5lib_tests18.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_tests18.html e4eb33f77ae641718853d2cfddbdb2eece6b266b
    • PASS [expected FAIL] subtest: html5lib_tests18.html 53ce5b102579af9830bf561b634af681bbdb5dfd
  • OK /html/syntax/parsing/html5lib_tests18.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_tests18.html e4eb33f77ae641718853d2cfddbdb2eece6b266b
    • PASS [expected FAIL] subtest: html5lib_tests18.html 53ce5b102579af9830bf561b634af681bbdb5dfd
  • OK /html/syntax/parsing/html5lib_tests7.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_tests7.html 5b0b3edcc3ce9fdc9f58eb62d326865ca0aab8c8
  • OK /html/syntax/parsing/html5lib_tests7.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_tests7.html 5b0b3edcc3ce9fdc9f58eb62d326865ca0aab8c8
  • OK /html/syntax/parsing/html5lib_tests7.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_tests7.html 5b0b3edcc3ce9fdc9f58eb62d326865ca0aab8c8
  • OK /html/syntax/parsing/html5lib_tests9.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_tests9.html b2a8131e72e53265479c08cd18d4f4663278a021
    • PASS [expected FAIL] subtest: html5lib_tests9.html a45a8948b799dadc321a86ff0bebf13167b5f076
    • PASS [expected FAIL] subtest: html5lib_tests9.html 224e1bcb8030f0972c17d0fc68d912be17905e1c
    • PASS [expected FAIL] subtest: html5lib_tests9.html e84d33cef974e49b69bdbc0c663c018a4dd010c0
  • OK /html/syntax/parsing/html5lib_tests9.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_tests9.html b2a8131e72e53265479c08cd18d4f4663278a021
    • PASS [expected FAIL] subtest: html5lib_tests9.html a45a8948b799dadc321a86ff0bebf13167b5f076
    • PASS [expected FAIL] subtest: html5lib_tests9.html 224e1bcb8030f0972c17d0fc68d912be17905e1c
    • PASS [expected FAIL] subtest: html5lib_tests9.html e84d33cef974e49b69bdbc0c663c018a4dd010c0
  • OK /html/syntax/parsing/html5lib_tests9.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_tests9.html b2a8131e72e53265479c08cd18d4f4663278a021
    • PASS [expected FAIL] subtest: html5lib_tests9.html a45a8948b799dadc321a86ff0bebf13167b5f076
    • PASS [expected FAIL] subtest: html5lib_tests9.html 224e1bcb8030f0972c17d0fc68d912be17905e1c
    • PASS [expected FAIL] subtest: html5lib_tests9.html e84d33cef974e49b69bdbc0c663c018a4dd010c0
  • OK /html/syntax/parsing/html5lib_webkit02.html?run_type=uri
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 3a112027586c5c0fb506c49aa01d3f695ca0a5fa
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 4bd119721a0eb84aa72a30ea83fc5beb5843ca68
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a15e2f18330327cc4dcfe8c10af07714903f773a
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 29539f494ab6b37b18213f062da16b0f0c9d00d9
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a6c50b1f6bfbe3c55102d8cad0950d0b68cc6729
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 411f313a1b92ac7be549c41ee6758f952dc2dced
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 84467597648753feeb78793e2cc9196bc75857c2
  • OK /html/syntax/parsing/html5lib_webkit02.html?run_type=write
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 3a112027586c5c0fb506c49aa01d3f695ca0a5fa
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 4bd119721a0eb84aa72a30ea83fc5beb5843ca68
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a15e2f18330327cc4dcfe8c10af07714903f773a
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 29539f494ab6b37b18213f062da16b0f0c9d00d9
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a6c50b1f6bfbe3c55102d8cad0950d0b68cc6729
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 411f313a1b92ac7be549c41ee6758f952dc2dced
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 84467597648753feeb78793e2cc9196bc75857c2
  • OK /html/syntax/parsing/html5lib_webkit02.html?run_type=write_single
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 3a112027586c5c0fb506c49aa01d3f695ca0a5fa
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 4bd119721a0eb84aa72a30ea83fc5beb5843ca68
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a15e2f18330327cc4dcfe8c10af07714903f773a
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 29539f494ab6b37b18213f062da16b0f0c9d00d9
    • PASS [expected FAIL] subtest: html5lib_webkit02.html a6c50b1f6bfbe3c55102d8cad0950d0b68cc6729
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 411f313a1b92ac7be549c41ee6758f952dc2dced
    • PASS [expected FAIL] subtest: html5lib_webkit02.html 84467597648753feeb78793e2cc9196bc75857c2

@github-actions
Copy link
Copy Markdown

⚠️ Try run (#20884080206) failed!

@simonwuelker
Copy link
Copy Markdown
Contributor Author

These new passes are due to the relaxed select parsing that landed in html5ever since the last release. I'll fix the crashes and then we can hopefully land this.

@simonwuelker
Copy link
Copy Markdown
Contributor Author

Blocked on servo/html5ever#712 due to servo/html5ever#560 (comment)

github-merge-queue bot pushed a commit that referenced this pull request Jan 22, 2026
Do not merge yet - we need to create a new html5ever release.
The html5ever bump also includes encoding indicators, which we handle in
the most minimal way possible here. They will be handled properly by
#41730

Companion PR for servo/html5ever#719

---------

Signed-off-by: Simon Wülker <[email protected]>
console_message.finish(),
worker_id,
);
sender.send(devtools_message).unwrap();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sender.send(devtools_message).unwrap();
let _ = sender.send(devtools_message);

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Jan 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants