Skip to content

html: Do not update the image data inside legacy <image> constructor#39635

Merged
sagudev merged 1 commit intoservo:mainfrom
tharkum:html-image-legacy-constructor-and-decode
Oct 8, 2025
Merged

html: Do not update the image data inside legacy <image> constructor#39635
sagudev merged 1 commit intoservo:mainfrom
tharkum:html-image-legacy-constructor-and-decode

Conversation

@tharkum
Copy link
Copy Markdown
Contributor

@tharkum tharkum commented Oct 2, 2025

The legacy 'image' constructor (new Image()) doesn't have any step in specification which require to run update the image data algorithm.

See https://html.spec.whatwg.org/multipage/#dom-image

This non-conformant behavior was added in the PR #31269 to follow https://html.spec.whatwg.org/multipage/#when-to-obtain-images (.. whenever that element is created or has experienced relevant mutations) to handle the edge case of decode() with 'image' without "src" and "srcset" attributes.

See html/semantics/embedded-content/the-img-element/decode/image-decode.html#L87

Testing: No changes in test expectations

@tharkum tharkum requested a review from gterzian as a code owner October 2, 2025 12:50
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Oct 2, 2025
@tharkum tharkum added the T-linux-wpt Do a try run of the WPT label Oct 2, 2025
@tharkum tharkum requested a review from Taym95 October 2, 2025 12:50
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Oct 2, 2025
@tharkum tharkum requested review from jdm and mrobinson October 2, 2025 12:51
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

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

@tharkum
Copy link
Copy Markdown
Contributor Author

tharkum commented Oct 2, 2025

JFYI < The mentioned WPT decode test

promise_test(function(t) {
  var img = new Image();
  var promise = img.decode();
  return promise_rejects_dom(t, "EncodingError", promise);
}, document.title + " Image without src/srcset fails decode.");

If replace the legacy constructor to HTML constructor this test will FAILED (without PR)
var img = document.createElement('img');

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

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

Flaky unexpected result (18)
  • OK /IndexedDB/idbfactory_open.any.html
    • FAIL [expected PASS] subtest: Calling open() with version argument 1.5 should not throw.

      assert_equals: version expected 1 but got 9007199254740991
      

  • FAIL [expected PASS] /_mozilla/css/iframe/hide_and_show.html (#15265)
  • 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
      

  • FAIL [expected PASS] /css/CSS2/margin-padding-clear/padding-top-083.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-extension-001.xht
  • FAIL [expected PASS] /css/css-fonts/font-palette-35.html
  • OK /css/css-fonts/variations/font-weight-matching.html (#38577)
    • FAIL [expected PASS] subtest: Test @font-face matching for weight 750

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 200. expected 90 +/- 2 but got 180
      

    • FAIL [expected PASS] subtest: Test @font-face matching for weight 751

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 100. expected 90 +/- 2 but got 180
      

  • FAIL [expected PASS] /css/css-tables/paint/table-border-paint-caption-change.html (#38036)
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-upperlower-035.html
  • OK /fetch/content-length/api-and-duplicate-headers.any.html (#35873)
    • FAIL [expected PASS] subtest: fetch() and duplicate Content-Length/Content-Type headers

      promise_test: Unhandled rejection with value: object "TypeError: Network error occurred"
      

  • 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
  • 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/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html (#34597)
    • FAIL [expected PASS] subtest: Same-Document Referrer from Refresh

      assert_equals: original page loads expected "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section#section"
      

  • TIMEOUT /html/browsers/history/the-history-interface/001.html (#12580)
    • FAIL [expected PASS] subtest: traversing history must also traverse hash changes

      assert_equals: (this could cause other failures later on) expected "" but got "test"
      

  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
  • FAIL [expected PASS] /shadow-dom/shadow-style-invalidation-vw-units.html (#38468)
  • OK /webdriver/tests/classic/dismiss_alert/dismiss.py (#39098)
    • FAIL [expected PASS] subtest: test_dismiss_in_popup_window

      AssertionError: no such alert (404): No user prompt is currently active.
      

  • OK /webdriver/tests/classic/take_screenshot/iframe.py
    • FAIL [expected PASS] subtest: test_always_captures_top_browsing_context

      AssertionError: assert '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V1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf910C2zVVXXXXVVVddddVVV1111X8+KlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DfwSjbBDciykQIwAAAABJRU5ErkJggg==' == 'iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAArA0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a/aNlddddVVV1111VVXXXXVVf/5qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8NKlddddVVV1111VVXXXXVVf81qFx11VVXXXXVVVddddVVV/3XoHLVVVddddVVV1111VVXXfVfg8pVV1111VVXXXXVVVddddV/DSpXXXXVVVddddVVV1111VX/NahcddVVV1111VVXXXXVVVf916By1VVXXXXVVVddddVVV131X4PKVVddddVVV1111VVXXXXVfw0qV1111VVXXXXVVVddddVV/zWoXHXVVVddddVVV1111VVX/degctVVV1111VVXXXXVVVdd9V+DylVXXXXVVVddddVVV1111X8N/hEuSA1dDZxjrQAAAABJRU5ErkJggg=='
      

Stable unexpected results that are known to be intermittent (34)
  • 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_get.any.html (#38942)
    • PASS [expected FAIL] subtest: Attempts to retrieve a record that doesn't exist
  • 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/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"
      

  • 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"
      

  • OK /IndexedDB/transaction-deactivation-timing.any.html (#38772)
    • PASS [expected FAIL] subtest: New transactions are deactivated before next task
  • FAIL [expected PASS] /_mozilla/css/stacked_layers.html (#39548)
  • 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 /_webgl/conformance/rendering/texture-switch-performance.html (#23384)
    • FAIL [expected PASS] subtest: WebGL test #0

      assert_true: Texture switching significantly hurt performance - achieved 86 frames in 2.022 seconds (0.51 times baseline performance) expected true got false
      

  • OK /_webgl/conformance2/rendering/texture-switch-performance.html (#23384)
    • FAIL [expected PASS] subtest: WebGL test #0

      assert_true: Texture switching significantly hurt performance - achieved 66 frames in 2.028 seconds (0.40 times baseline performance) expected true got false
      

  • 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 /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted serif (drawing text in a canvas)
  • OK /css/css-fonts/variations/at-font-face-font-matching.html (#20684)
    • FAIL [expected PASS] subtest: Matching font-style: 'oblique 0deg' should prefer 'oblique 0deg' over 'oblique 5deg'

      assert_equals: Unexpected font on test element expected 487 but got 532
      

  • TIMEOUT [expected FAIL] /dom/xslt/large-cdata.html (#38029)
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/multiple-iframes.https.window.html (#35176)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-user
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-mode - Not sent to non-trustworthy same-site destination

      Test timed out
      

  • ERROR /fetch/metadata/generated/serviceworker.https.sub.html (#36247)
    • PASS [expected FAIL] subtest: sec-fetch-site - Same origin, no options - registration
  • OK /html/browsers/browsing-the-web/navigating-across-documents/009.html (#24456)
    • PASS [expected FAIL] subtest: Link with onclick form submit to javascript url with document.write and href navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • FAIL [expected PASS] subtest: Cross-origin navigation started from unload handler must be ignored

      promise_test: Unhandled rejection with value: object "SecurityError: The operation is insecure."
      

  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with empty fragments should work.

      Test timed out
      

  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if allow-popups-to-escape-sandbox is used

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: Basic test (normal form)
  • OK /preload/preload-error.sub.html (#37177)
    • PASS [expected FAIL] subtest: success (fetch): main
    • PASS [expected FAIL] subtest: CORS (fetch): main
  • TIMEOUT /preload/preload-resource-match.https.html (#38088)
    • PASS [expected TIMEOUT] subtest: Loading module (use-credentials) with link (anonymous) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading module (use-credentials) with link (use-credentials) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (same-origin) with link (same-origin) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (no-cors) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (anonymous) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (use-credentials) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (no-cors) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (anonymous) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (use-credentials) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (use-credentials) with link (no-cors) should discard the preloaded response
    • And 1 more unexpected results...
  • OK [expected TIMEOUT] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • PASS [expected TIMEOUT] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • OK /trusted-types/trusted-types-navigation.html?01-05 (#38975)
    • PASS [expected FAIL] subtest: Navigate a window via anchor with javascript:-urls in enforcing mode.
    • PASS [expected FAIL] subtest: Navigate a window via anchor with javascript:-urls in report-only mode.
  • OK /trusted-types/trusted-types-navigation.html?21-25 (#38997)
    • FAIL [expected PASS] subtest: Navigate a window via form-submission with javascript:-urls in enforcing mode.

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

  • OK /trusted-types/trusted-types-navigation.html?31-35 (#38034)
    • PASS [expected FAIL] subtest: Navigate a frame via form-submission with javascript:-urls in report-only mode.
  • TIMEOUT [expected OK] /webdriver/tests/classic/perform_actions/navigation.py (#38822)
  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
  • OK [expected ERROR] /workers/baseurl/alpha/sharedworker-in-worker.html (#21315)
Stable unexpected results (2)
  • FAIL [expected PASS] /css/WOFF2/tabledata-transform-bad-flag-002.xht
  • FAIL [expected PASS] /css/css-fonts/font-face-style-default-variable.html

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

⚠️ Try run (#18193487623) failed.

@tharkum tharkum added the T-linux-wpt Do a try run of the WPT label Oct 2, 2025
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Oct 2, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

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

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

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

Flaky unexpected result (19)
  • OK /IndexedDB/idbfactory_open.any.html
    • FAIL [expected PASS] subtest: Calling open() with version argument 1.5 should not throw.

      assert_equals: version expected 1 but got 9007199254740991
      

  • FAIL [expected PASS] /css/CSS2/box-display/display-change-001.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-credit-009.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-extension-047.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-metadata-006.xht
  • 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"
      

  • FAIL [expected PASS] /css/css-fonts/font-face-style-auto-static.html
  • FAIL [expected PASS] /css/css-text/shaping/shaping-arabic-diacritics-001.html (#38957)
  • 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
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • TIMEOUT [expected PASS] subtest: background-image sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination

      Test timed out
      

  • TIMEOUT [expected CRASH] /html/anonymous-iframe/indexeddb.tentative.https.window.html (#39254)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html (#34819)
    • PASS [expected FAIL] subtest: form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html (#34597)
    • FAIL [expected PASS] subtest: Same-Document Referrer from Refresh

      assert_equals: original page loads expected "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section#section"
      

  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
  • OK /intersection-observer/callback-cross-realm-report-exception.html (#38829)
    • FAIL [expected PASS] subtest: IntersectionObserver reports the exception from its callback in the callback's global object

      assert_array_equals: lengths differ, expected array ["frame1"] length 1, got [] length 0
      

  • FAIL [expected PASS] /png/apng/fcTL-blend-source-solid.html
  • FAIL [expected PASS] /shadow-dom/shadow-style-invalidation-vw-units.html (#38468)
  • OK /webdriver/tests/classic/execute_async_script/node.py
    • FAIL [expected PASS] subtest: test_detached_shadow_root[top_context]

      webdriver.error.NoSuchElementException: no such element (404)
      

Stable unexpected results that are known to be intermittent (31)
  • 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_get.any.html (#38942)
    • PASS [expected FAIL] subtest: Attempts to retrieve a record that doesn't exist
  • 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/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"
      

  • 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] /_mozilla/css/stacked_layers.html (#39548)
  • 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 /_webgl/conformance/rendering/texture-switch-performance.html (#23384)
    • FAIL [expected PASS] subtest: WebGL test #0

      assert_true: Texture switching significantly hurt performance - achieved 91 frames in 2.012 seconds (0.54 times baseline performance) expected true got false
      

  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #45

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

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

      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 #49

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

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

      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
      

  • OK /_webgl/conformance2/rendering/texture-switch-performance.html (#23384)
    • FAIL [expected PASS] subtest: WebGL test #0

      assert_true: Texture switching significantly hurt performance - achieved 99 frames in 2.002 seconds (0.57 times baseline performance) expected true got false
      

  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted serif (drawing text in a canvas)
  • FAIL [expected PASS] /css/css-tables/paint/table-border-paint-caption-change.html (#38036)
  • TIMEOUT [expected FAIL] /dom/xslt/large-cdata.html (#38029)
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/multiple-iframes.https.window.html (#35176)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • FAIL [expected PASS] subtest: sec-fetch-dest

      promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
      

  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: Basic test (normal form)
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: Basic test (normal form)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • FAIL [expected PASS] subtest: application/x-www-form-urlencoded: Basic test (normal form)

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

  • 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 /preload/preload-resource-match.https.html (#38088)
    • PASS [expected TIMEOUT] subtest: Loading module (use-credentials) with link (anonymous) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading module (use-credentials) with link (use-credentials) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (same-origin) with link (same-origin) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (no-cors) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (anonymous) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (no-cors) with link (use-credentials) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (no-cors) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (anonymous) should reuse the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (anonymous) with link (use-credentials) should discard the preloaded response
    • PASS [expected NOTRUN] subtest: Loading style (use-credentials) with link (no-cors) should discard the preloaded response
    • And 1 more unexpected results...
  • 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=f7171b75-0b64-428c-a942-3ecf5dbee94b expected 1 but got 0
      

  • OK [expected TIMEOUT] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • PASS [expected TIMEOUT] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • OK /trusted-types/trusted-types-navigation.html?21-25 (#38997)
    • FAIL [expected PASS] subtest: Navigate a window via form-submission with javascript:-urls in enforcing mode.

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

  • OK /trusted-types/trusted-types-navigation.html?26-30 (#38807)
    • FAIL [expected PASS] subtest: Navigate a window via form-submission with javascript:-urls in report-only mode.

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

  • OK /webdriver/tests/classic/dismiss_alert/dismiss.py (#39098)
    • FAIL [expected PASS] subtest: test_dismiss_in_popup_window

      AssertionError: no such alert (404): No user prompt is currently active.
      

  • OK [expected ERROR] /workers/baseurl/alpha/sharedworker-in-worker.html (#21315)

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 2, 2025

✨ Try run (#18194476562) succeeded.

Copy link
Copy Markdown
Contributor

@TimvdLippe TimvdLippe left a comment

Choose a reason for hiding this comment

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

Straightforward and nice addition of spec comments 😄

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Oct 2, 2025
@sagudev
Copy link
Copy Markdown
Member

sagudev commented Oct 2, 2025

JFYI < The mentioned WPT decode test

promise_test(function(t) {
  var img = new Image();
  var promise = img.decode();
  return promise_rejects_dom(t, "EncodingError", promise);
}, document.title + " Image without src/srcset fails decode.");

If replace the legacy constructor to HTML constructor this test will FAILED (without PR) var img = document.createElement('img');

I think we should expend the test to test both cases?

@mrobinson
Copy link
Copy Markdown
Member

I will leave the test changes up to @sagudev and @tharkum, but otherwise this looks fine to me.

The legacy 'image' constructor (new Image()) doesn't have any step
in specification which require to run `update the image data`
algorithm.

See https://html.spec.whatwg.org/multipage/#dom-image

This non-conformant behavior was added in the PR servo#31269 to follow
https://html.spec.whatwg.org/multipage/#when-to-obtain-images
(.. whenever that element is created or has experienced relevant
mutations) to handle the edge case of `decode()` with 'image' without
"src" and "srcset" attributes.

See html/semantics/embedded-content/the-img-element/decode/image-decode.html#L87

Testing: No changes in test expectations

Signed-off-by: Andrei Volykhin <[email protected]>
@tharkum tharkum force-pushed the html-image-legacy-constructor-and-decode branch from 0e0b3b8 to 65aec21 Compare October 8, 2025 13:42
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Oct 8, 2025
@servo-wpt-sync
Copy link
Copy Markdown
Collaborator

🤖 Opened new upstream WPT pull request (web-platform-tests/wpt#55305) with upstreamable changes.

@tharkum
Copy link
Copy Markdown
Contributor Author

tharkum commented Oct 8, 2025

  • Rebased on top of main branch
  • Added test for HTML constructor (non-legacy) case (with renaming old test description to Image (legacy) ...)

@tharkum tharkum added the T-linux-wpt Do a try run of the WPT label Oct 8, 2025
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Oct 8, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 8, 2025

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

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 8, 2025

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

Flaky unexpected result (38)
  • OK /IndexedDB/idbfactory_open.any.html
    • FAIL [expected PASS] subtest: Calling open() with version argument 1.5 should not throw.

      assert_equals: version expected 1 but got 9007199254740991
      

  • TIMEOUT [expected PASS] /_mozilla/shadow-dom/move-element-with-ua-shadow-tree-crash.html (#39473)
  • FAIL [expected PASS] /css/WOFF2/metadata-noeffect-001.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-copyright-008.xht (#39706)
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-copyright-013.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-credits-005.xht
  • FAIL [expected PASS] /css/WOFF2/metadatadisplay-schema-extension-049.xht
  • FAIL [expected PASS] /css/css-fonts/font-palette-11.html
  • FAIL [expected PASS] /css/css-fonts/font-palette-14.html
  • FAIL [expected PASS] /css/css-fonts/font-palette-2.html
  • OK /css/css-fonts/generic-family-keywords-001.html (#37467)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(nastaliq)
  • OK /css/css-fonts/variations/at-font-face-font-matching.html (#20684)
    • FAIL [expected PASS] subtest: Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal'

      assert_equals: Unexpected font on test element expected 487 but got 532
      

    • FAIL [expected PASS] subtest: Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'

      assert_equals: Unexpected font on test element expected 487 but got 532
      

    • PASS [expected FAIL] subtest: Matching font-style: 'oblique -21deg' should prefer 'oblique 40deg 50deg' over 'italic'
  • PASS [expected FAIL] /css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html (#37162)
  • FAIL [expected PASS] /css/css-text/letter-spacing/letter-spacing-211.html (#39600)
  • FAIL [expected PASS] /css/css-text/text-encoding/shaping-no-join-002.html
  • FAIL [expected PASS] /css/css-text/text-transform/text-transform-capitalize-018.html
  • 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
      

  • TIMEOUT /fetch/fetch-later/send-on-deactivate.https.window.html (#39628)
    • FAIL [expected TIMEOUT] subtest: fetchLater() does not send aborted request on navigating away a page w/o BFCache.

      assert_equals: expected (object) object "[object Object]" but got (undefined) undefined
      

  • 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
  • OK /html/browsers/browsing-the-web/navigating-across-documents/008.html (#24456)
    • PASS [expected FAIL] subtest: Link with onclick form submit to javascript url and href navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html (#34819)
    • PASS [expected FAIL] subtest: form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load &amp; pageshow events do not fire on contentWindow of &lt;iframe&gt; element created with src='about:blank'

      assert_unreached: load should not be fired Reached unreachable code
      

  • OK /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • PASS [expected FAIL] subtest: opener of discarded auxiliary browsing context
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with empty 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-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
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: Basic test (normal form)
    • PASS [expected FAIL] subtest: multipart/form-data: 0x00 in value (normal form)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • FAIL [expected PASS] subtest: application/x-www-form-urlencoded: Basic test (normal form)

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

  • OK [expected CRASH] /html/semantics/forms/the-fieldset-element/disabled-003.html (#31730, #39631)
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • FAIL [expected PASS] /shadow-dom/shadow-style-invalidation-vw-units.html (#38468)
  • OK /trusted-types/trusted-types-navigation.html?21-25 (#38997)
    • FAIL [expected PASS] subtest: Navigate a window via form-submission with javascript:-urls in enforcing mode.

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

  • TIMEOUT [expected OK] /webdriver/tests/classic/perform_actions/navigation.py (#38822)
  • TIMEOUT [expected OK] /webdriver/tests/classic/print/printcmd.py
  • OK [expected TIMEOUT] /webmessaging/with-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
Stable unexpected results that are known to be intermittent (24)
  • 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/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"
      

  • 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] /_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-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 /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)
  • OK /css/css-fonts/variations/font-weight-matching.html (#38577)
    • FAIL [expected PASS] subtest: Test @font-face matching for weight 600

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 200. expected 90 +/- 2 but got 92.56666666666666
      

    • FAIL [expected PASS] subtest: Test @font-face matching for weight 750

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 200. expected 90 +/- 2 but got 92.56666666666666
      

    • FAIL [expected PASS] subtest: Test @font-face matching for weight 751

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 100. expected 90 +/- 2 but got 92.56666666666666
      

    • FAIL [expected PASS] subtest: Test @font-face matching for weight 900

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 100. expected 90 +/- 2 but got 92.56666666666666
      

    • FAIL [expected PASS] subtest: Test @font-face matching for weight 1000

      assert_approx_equals: @font-face should be mapped to CSSTest Weights 100. expected 90 +/- 2 but got 92.56666666666666
      

  • OK /custom-elements/form-associated/ElementInternals-setFormValue.html (#29174)
    • PASS [expected FAIL] subtest: Single value - name is missing
  • TIMEOUT [expected FAIL] /dom/xslt/large-cdata.html (#38029)
  • CRASH [expected TIMEOUT] /html/anonymous-iframe/indexeddb.tentative.https.window.html (#39254)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
    • FAIL [expected PASS] subtest: Link with onclick navigation and href navigation

      assert_equals: expected "href" but got "click"
      

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

      assert_equals: expected "SPAN" but got "BODY"
      

    • PASS [expected NOTRUN] subtest: Non-HTMLElement should not support autofocus
    • TIMEOUT [expected NOTRUN] subtest: Host element with delegatesFocus should support autofocus

      Test timed out
      

  • 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
      

  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if allow-popups-to-escape-sandbox is used

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: Basic test (normal form)
  • 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
      

    • PASS [expected FAIL] subtest: CORS (fetch): main
  • OK [expected TIMEOUT] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe navigations are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • PASS [expected NOTRUN] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • OK /trusted-types/trusted-types-navigation.html?26-30 (#38807)
    • FAIL [expected PASS] subtest: Navigate a window via form-submission with javascript:-urls in report-only mode.

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

    • PASS [expected FAIL] subtest: Navigate a frame via form-submission with javascript:-urls in enforcing mode.
  • OK /webdriver/tests/classic/dismiss_alert/dismiss.py (#39098)
    • PASS [expected FAIL] subtest: test_dismiss_in_popup_window

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 8, 2025

✨ Try run (#18347060959) succeeded.

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Oct 8, 2025
@sagudev sagudev added this pull request to the merge queue Oct 8, 2025
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Oct 8, 2025
Merged via the queue into servo:main with commit 11938f0 Oct 8, 2025
62 checks passed
@servo-highfive servo-highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Oct 8, 2025
@tharkum tharkum deleted the html-image-legacy-constructor-and-decode branch October 8, 2025 14:57
@jschwe
Copy link
Copy Markdown
Member

jschwe commented Oct 10, 2025

FYI, looking at the bencher.dev plot, this PR seems to have significantly reduced / improved memory usage on servo.org, and slightly on google.com (we don't test any other pages ATM):
plot

@tharkum
Copy link
Copy Markdown
Contributor Author

tharkum commented Oct 10, 2025

@jschwe < Sounds too good to be truth... I didn't see so much images on https://www.google.com to reduce memory footprint on 10 MB...

I think the hero of the occasion is #39687 (pack of commits ~ 6months from upstream WebRender)

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.

7 participants