Skip to content

storage: Add support for temporary storage#44433

Merged
janvarga merged 1 commit into
servo:mainfrom
janvarga:temp-storage
Apr 25, 2026
Merged

storage: Add support for temporary storage#44433
janvarga merged 1 commit into
servo:mainfrom
janvarga:temp-storage

Conversation

@janvarga

@janvarga janvarga commented Apr 22, 2026

Copy link
Copy Markdown
Member

Add support for temporary storage via a new config option temporary_storage
and a corresponding command-line argument --temporary-storage.

When enabled, client storage uses a storage directory
(e.g. clientstorage/temporary/<uuid>) instead of the shared default location.
This can be used to provide isolation between concurrent servo instances.

This is especially useful for WPT runs, where multiple Servo instances may
execute in parallel and would otherwise share the same storage, leading to
cross-test interference.

Based on that, this PR also updates the WPT runner to enable temporary storage
by default.

Testing: Manual testing and a full try run.

@janvarga janvarga added the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions

Copy link
Copy Markdown

🔨 Triggering try run (#24776187248) 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

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

Flaky unexpected result (19)
  • 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
      

  • TIMEOUT [expected OK] /IndexedDB/worker-termination-aborts-upgrade.window.html (#42177)
    • TIMEOUT [expected PASS] subtest: Worker Termination Aborts a Pending Upgrade

      Test timed out
      

  • ERROR [expected OK] /_mozilla/mozilla/hit-test-pos-fixed.html
  • TIMEOUT [expected OK] /content-security-policy/inheritance/document-write-iframe.html (#41195)
    • TIMEOUT [expected PASS] subtest: document.open() keeps inherited CSPs on transient about:blank.

      Test timed out
      

  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • FAIL [expected PASS] /css/filter-effects/kernel-unit-length-001.html
  • CRASH [expected OK] /fetch/api/headers/headers-combine.any.html
  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/sandboxed-iframe.https.window.html (#41704)
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-requestsubmit.html (#44098)
    • FAIL [expected TIMEOUT] subtest: Replace before load, triggered by formElement.requestSubmit()

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?thereplacement=" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/resources/code-injector.html?pipe=sub(none)&amp;code=%0A%20%20%20%20const%20form%20%3D%20document.createElement(%22form%22)%3B%0A%20%20%20%20form.action%20%3D%20%22%2Fcommon%2Fblank.html%22%3B%0A%0A%20%20%20%20const%20input%20%3D%20document.createElement(%22input%22)%3B%0A%20%20%20%20input.type%20%3D%20%22hidden%22%3B%0A%20%20%20%20input.name%20%3D%20%22thereplacement%22%3B%0A%20%20%20%20form.append(input)%3B%0A%0A%20%20%20%20document.currentScript.before(form)%3B%0A%20%20%20%20form.requestSubmit()%3B%0A%20%20"
      

  • 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/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.
  • TIMEOUT [expected OK] /html/user-activation/navigation-state-reset-sameorigin.html
    • TIMEOUT [expected PASS] subtest: Post-navigation state reset.

      Test timed out
      

  • TIMEOUT [expected OK] /pointerevents/compat/pointerevent_touch-action_two-finger_interaction.html
    • NOTRUN [expected PASS] subtest: touch two-finger pan on 'touch-action: pan-x pan-y'
    • NOTRUN [expected FAIL] subtest: touch two-finger pan on 'touch-action: pinch-zoom'
  • 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 /sanitizer-api/sanitizer-inert-document.tentative.html (#44273)
    • PASS [expected FAIL] subtest: Test whether setHTMLUnsafe loads the image.
  • 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!\""
      

  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?31-35 (#38034)
    • PASS [expected TIMEOUT] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.
    • FAIL [expected NOTRUN] subtest: Navigate a window via form-submission 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 form-submission 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!\""
      

    • FAIL [expected NOTRUN] subtest: Navigate a window via form-submission with javascript:-urls w/ a default policy making the URL invalid in enforcing mode.

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

  • CRASH [expected OK] /webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/closed-audiocontext-construction.html
Stable unexpected results that are known to be intermittent (22)
  • TIMEOUT [expected OK] /_mozilla/mozilla/window-resize-event.html (#36741)
    • TIMEOUT [expected PASS] subtest: Popup onresize event fires after resizeTo

      Test timed out
      

  • ERROR /_webgl/conformance2/textures/misc/tex-3d-size-limit.html (#44383)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: successfullyParsed should be true (of type boolean). Was undefined (of type undefined). expected true got false
      

  • OK /css/css-cascade/layer-font-face-override.html (#35935)
    • PASS [expected FAIL] subtest: @font-face override update with appended sheet 1
    • PASS [expected FAIL] subtest: @font-face override update with appended sheet 2
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted cursive (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai) (drawing text in a canvas)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)

      assert_equals: unquoted ui-sans-serif does not match @font-face rule expected 40 but got 125
      

  • OK /dom/nodes/moveBefore/iframe-document-preserve.window.html (#43152)
    • FAIL [expected PASS] subtest: moveBefore(): cross-origin iframe is preserved: remove self via innerHTML

      assert_equals: iframe does not fire a second load event expected 1 but got 0
      

  • ERROR [expected OK] /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-storage-access - Cross-site

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

  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination
  • TIMEOUT /fetch/metadata/generated/css-images.https.sub.tentative.html (#42229)
    • FAIL [expected PASS] subtest: content sec-fetch-site - Same-Origin -&gt; Same Origin

      assert_unreached: Reached unreachable code
      

  • 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/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • FAIL [expected PASS] subtest: Multiple history traversals, last would be aborted

      assert_array_equals: Pages opened during history navigation expected property 1 to be 5 but got 3 (expected array [6, 5] got [6, 3])
      

  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html (#29087)
    • TIMEOUT [expected FAIL] subtest: &lt;dialog&gt;-contained autofocus element gets focused when the dialog is shown

      Test timed out
      

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

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Non-HTMLElement should not support autofocus
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus should support autofocus
  • 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
      

  • OK /html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html (#39694)
    • FAIL [expected PASS] subtest: Meta refresh is blocked by the allow-scripts sandbox flag at its creation time, not when refresh comes due

      uncaught exception: Error: assert_unreached: The iframe from which the meta came from must not refresh Reached unreachable code
      

  • OK /mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html (#41123)
    • PASS [expected FAIL] subtest: Cross-Origin video should get upgraded even if CORS is set
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • FAIL [expected PASS] subtest: Reload domComplete &gt; Original domComplete

      assert_true: Reload domComplete &gt; Original domComplete expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd

      assert_true: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart

      assert_true: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventEnd &gt; Original loadEventEnd

      assert_true: Reload loadEventEnd &gt; Original loadEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventStart &gt; Original loadEventStart

      assert_true: Reload loadEventStart &gt; Original loadEventStart expected true got false
      

  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • FAIL [expected PASS] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one

      assert_equals: Number of entries does not match the expected value. expected 3 but got 0
      

  • OK /resource-timing/buffer-full-when-populate-entries.html (#44408)
    • FAIL [expected PASS] subtest: Test that a buffer full event does not bubble and that resourcetimingbufferfull is called only once per overflow

      assert_equals: onresourcetimingbufferfull should have been invoked once. expected 1 but got 0
      

  • CRASH [expected OK] /resource-timing/render-blocking-status-link.html (#41664)
  • OK [expected TIMEOUT] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.html (#29053)
    • FAIL [expected TIMEOUT] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

      assert_true: about:blank window opened by 3P iframe does not inherit 3P iframe's StorageKey expected true got false
      

Stable unexpected results (9)
  • OK /editing/event.html
    • FAIL [expected PASS] subtest: Command strikeThrough, value "": input event

      assert_equals: number of input events fired expected 1 but got 0
      

    • FAIL [expected PASS] subtest: Command strikeThrough, value "quasit": input event

      assert_equals: number of input events fired expected 1 but got 0
      

  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=password
    • FAIL [expected PASS] subtest: In &lt;input type="password"&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;input type="password"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;input type="password"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=text
    • FAIL [expected PASS] subtest: In &lt;input type="text"&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;input type="text"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;input type="text"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=textarea
    • FAIL [expected PASS] subtest: In &lt;textarea&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;textarea&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;textarea&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/run/delete.html?3001-4000
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

  • OK /editing/run/multitest.html?1001-2000
    • FAIL [expected PASS] subtest: [["strikethrough",""],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["delete",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["forwarddelete",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["forwarddelete",""]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • And 54 more unexpected results...
  • OK /editing/run/strikethrough.html?1-1000
    • FAIL [expected PASS] subtest: [["strikethrough",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:line-through\"&gt;foo&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foo&lt;/p&gt; &lt;p&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;span style=\"text-decoration:line-through\"&gt;&lt;span&gt;foo&lt;/span&gt; &lt;span&gt;bar&lt;/span&gt;&lt;/span&gt;" but got "&lt;span&gt;foo&lt;/span&gt; &lt;span&gt;bar&lt;/span&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • And 154 more unexpected results...
  • OK /editing/run/strikethrough.html?1001-2000
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[bar]baz&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[bar]baz&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\" id=foo&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\" id=foo&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • And 171 more unexpected results...
  • OK /editing/run/strikethrough.html?2001-last
    • PASS [expected FAIL] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • And 22 more unexpected results...

@github-actions

Copy link
Copy Markdown

⚠️ Try run (#24776187248) failed!

@janvarga janvarga added the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions

Copy link
Copy Markdown

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

@janvarga janvarga force-pushed the temp-storage branch 3 times, most recently from c853601 to b610a65 Compare April 22, 2026 12:18
@janvarga janvarga added the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions

Copy link
Copy Markdown

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

Flaky unexpected result (35)
  • OK /IndexedDB/idbdatabase_deleteObjectStore.any.worker.html (#43776)
    • PASS [expected FAIL] subtest: Deleted object store's name should be removed from database's list. Attempting to use a deleted IDBObjectStore should throw an InvalidStateError
  • CRASH [expected OK] /_mozilla/mozilla/iframe-unblock-onload.html
  • CRASH [expected OK] /_webgl/conformance/ogles/GL/notEqual/notEqual_001_to_008.html
  • TIMEOUT [expected OK] /content-security-policy/inheritance/document-write-iframe.html (#41195)
    • TIMEOUT [expected PASS] subtest: document.open() keeps inherited CSPs on transient about:blank.

      Test timed out
      

  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • CRASH [expected OK] /fetch/api/headers/headers-combine.any.html
  • CRASH [expected OK] /fetch/api/request/request-cache-no-cache.any.worker.html
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/accumulated-oversized-payload.https.window.html (#41705)
  • OK [expected ERROR] /focus/focus-event-after-switching-iframes.sub.html (#40368)
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/pageswap/pageswap-initial-navigation.html (#40387)
  • 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"
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-requestsubmit.html (#44098)
    • FAIL [expected TIMEOUT] subtest: Replace before load, triggered by formElement.requestSubmit()

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?thereplacement=" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/resources/code-injector.html?pipe=sub(none)&amp;code=%0A%20%20%20%20const%20form%20%3D%20document.createElement(%22form%22)%3B%0A%20%20%20%20form.action%20%3D%20%22%2Fcommon%2Fblank.html%22%3B%0A%0A%20%20%20%20const%20input%20%3D%20document.createElement(%22input%22)%3B%0A%20%20%20%20input.type%20%3D%20%22hidden%22%3B%0A%20%20%20%20input.name%20%3D%20%22thereplacement%22%3B%0A%20%20%20%20form.append(input)%3B%0A%0A%20%20%20%20document.currentScript.before(form)%3B%0A%20%20%20%20form.requestSubmit()%3B%0A%20%20"
      

  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit-button-click.html (#44099)
    • TIMEOUT [expected FAIL] subtest: Replace before load, triggered by submitButton.click()

      Test timed out
      

  • OK /html/browsers/history/the-history-interface/traverse_the_history_3.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • FAIL [expected PASS] subtest: Multiple history traversals, last would be aborted

      assert_array_equals: Pages opened during history navigation expected property 1 to be 5 but got 3 (expected array [6, 5] got [6, 3])
      

  • OK /html/dom/render-blocking/remove-attr-unblocks-rendering.optional.html
    • PASS [expected FAIL] subtest: Render-blocking on parser-inserted defer script is cancellable
    • PASS [expected FAIL] subtest: Render-blocking on parser-inserted module script is cancellable
  • OK /html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html (#39694)
    • FAIL [expected PASS] subtest: Meta refresh is blocked by the allow-scripts sandbox flag at its creation time, not when refresh comes due

      uncaught exception: Error: assert_unreached: The iframe from which the meta came from must not refresh Reached unreachable code
      

  • 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
      

  • OK [expected TIMEOUT] /html/semantics/embedded-content/media-elements/src_object_blob.html (#40340)
    • PASS [expected TIMEOUT] subtest: HTMLMediaElement.srcObject blob
  • 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.
  • TIMEOUT [expected OK] /html/user-activation/navigation-state-reset-sameorigin.html
    • TIMEOUT [expected PASS] subtest: Post-navigation state reset.

      Test timed out
      

  • OK /html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html (#43671)
    • PASS [expected FAIL] subtest: document.write external script into iframe write back into parent
  • CRASH [expected OK] /html/webappapis/system-state-and-capabilities/the-navigator-object/secure_context.html
  • PASS [expected FAIL] /png/apng/fcTL-dispose-in-region-none.html
  • FAIL [expected PASS] /png/apng/fcTL-dispose-in-region-previous.html (#41410)
  • TIMEOUT [expected OK] /svg/animations/svgnumber-animation-invalid-value-1.html
  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?01-05 (#38975)
    • PASS [expected TIMEOUT] subtest: Navigate a window via anchor with javascript:-urls in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a window via anchor with javascript:-urls w/ default policy in report-only mode.
    • PASS [expected NOTRUN] 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 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!\""
      

  • TIMEOUT /trusted-types/trusted-types-navigation.html?31-35 (#38034)
    • TIMEOUT [expected PASS] subtest: Navigate a frame via form-submission with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.
  • OK /trusted-types/trusted-types-reporting.html (#43737)
    • PASS [expected FAIL] subtest: Trusted Type violation report: creating a forbidden-but-not-reported policy.
    • PASS [expected FAIL] subtest: Trusted Type violation report: sample for custom element assignment
    • PASS [expected FAIL] subtest: Trusted Type violation report: Worker constructor
  • OK /webxr/xrSession_features_deviceSupport.https.html (#24357)
    • FAIL [expected PASS] subtest: Immersive XRSession requests with no supported device should reject

      assert_unreached: Should have rejected: undefined Reached unreachable code
      

  • ERROR [expected OK] /workers/baseurl/alpha/sharedworker-in-worker.html (#21315)
  • OK /xhr/send-redirect.htm (#32026)
    • FAIL [expected PASS] subtest: XMLHttpRequest: send() - Redirects (basics) (303, GET, content.py)

      assert_equals: expected (string) "GET" but got (object) null
      

Stable unexpected results that are known to be intermittent (21)
  • OK /IndexedDB/idbdatabase_deleteObjectStore.any.html (#43823)
    • PASS [expected FAIL] subtest: Deleted object store's name should be removed from database's list. Attempting to use a deleted IDBObjectStore should throw an InvalidStateError
  • ERROR /_webgl/conformance2/textures/misc/tex-3d-size-limit.html (#44383)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: successfullyParsed should be true (of type boolean). Was undefined (of type undefined). expected true got false
      

  • OK [expected CRASH] /content-security-policy/meta/sandbox-iframe.html (#43478)
  • OK /css/css-cascade/layer-font-face-override.html (#35935)
    • PASS [expected FAIL] subtest: @font-face override update with appended sheet 1
    • PASS [expected FAIL] subtest: @font-face override update with appended sheet 2
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted sans-serif (drawing text in a canvas)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted fantasy (drawing text in a canvas)

      assert_equals: quoted fantasy matches  @font-face rule expected 125 but got 40
      

    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted monospace (drawing text in a canvas)

      assert_equals: quoted monospace matches  @font-face rule expected 125 but got 40
      

    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai) (drawing text in a canvas)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted generic(khmer-mul) (drawing text in a canvas)

      assert_equals: quoted generic(khmer-mul) matches  @font-face rule expected 125 but got 40
      

    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-serif (drawing text in a canvas)

      assert_equals: quoted ui-serif matches  @font-face rule expected 125 but got 40
      

    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)

      assert_equals: quoted ui-sans-serif matches  @font-face rule expected 125 but got 40
      

    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-rounded (drawing text in a canvas)
  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/sandboxed-iframe.https.window.html (#41704)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-mode
    • FAIL [expected PASS] subtest: sec-fetch-storage-access - Cross-site

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

  • TIMEOUT /fetch/metadata/generated/css-images.https.sub.tentative.html (#42229)
    • FAIL [expected PASS] subtest: content sec-fetch-site - Same-Origin -&gt; Same Origin

      assert_unreached: Reached unreachable code
      

  • 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 [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit.html (#44028)
  • CRASH [expected TIMEOUT] /html/browsers/history/the-location-interface/location_replace_session_history.html (#41896)
  • TIMEOUT /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected PASS] subtest: Non-HTMLElement should not support autofocus

      Test timed out
      

    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus should support autofocus
  • 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
      

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

  • OK /html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.worker.html (#33909)
    • FAIL [expected PASS] subtest: Revoking a blob URL immediately after calling import will not fail

      promise_test: Unhandled rejection with value: object "TypeError: Module fetching failed"
      

  • OK [expected TIMEOUT] /infrastructure/testdriver/click_nested.html (#43887)
    • FAIL [expected NOTRUN] subtest: TestDriver click method with multiple windows and nested iframe

      can't access property "document", child.frames[2] is undefined
      

  • OK /mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html (#41123)
    • PASS [expected FAIL] subtest: Cross-Origin video should get upgraded even if CORS is set
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • FAIL [expected PASS] subtest: Reload domComplete &gt; Original domComplete

      assert_true: Reload domComplete &gt; Original domComplete expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd

      assert_true: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart

      assert_true: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventEnd &gt; Original loadEventEnd

      assert_true: Reload loadEventEnd &gt; Original loadEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventStart &gt; Original loadEventStart

      assert_true: Reload loadEventStart &gt; Original loadEventStart expected true got false
      

  • OK /touch-events/single-tap-when-touchend-listener-use-sync-xhr.html (#41175)
    • PASS [expected FAIL] subtest: Click event should be fired when touchend opens synchronous XHR
  • TIMEOUT [expected OK] /visual-viewport/resize-event-order.html (#41981)
    • TIMEOUT [expected FAIL] subtest: Popup: DOMWindow resize fired before VisualViewport.

      Test timed out
      

    • NOTRUN [expected PASS] subtest: iframe: DOMWindow resize fired before VisualViewport.
  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
Stable unexpected results (9)
  • OK /editing/event.html
    • FAIL [expected PASS] subtest: Command strikeThrough, value "": input event

      assert_equals: number of input events fired expected 1 but got 0
      

    • FAIL [expected PASS] subtest: Command strikeThrough, value "quasit": input event

      assert_equals: number of input events fired expected 1 but got 0
      

  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=password
    • FAIL [expected PASS] subtest: In &lt;input type="password"&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;input type="password"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;input type="password"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=text
    • FAIL [expected PASS] subtest: In &lt;input type="text"&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;input type="text"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;input type="text"&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/other/exec-command-with-text-editor.tentative.html?type=textarea
    • FAIL [expected PASS] subtest: In &lt;textarea&gt;, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: In &lt;textarea&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should be supported

      assert_equals: expected true but got false
      

    • PASS [expected FAIL] subtest: In &lt;textarea&gt; in contenteditable, execCommand("strikethrough", false, null), a[b]c): The command should not be enabled
  • OK /editing/run/delete.html?3001-4000
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;span style=\"text-decoration:underline\"&gt;foo&lt;/span&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p style=text-decoration:underline&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;&lt;u&gt;foo&lt;/u&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "&lt;p&gt;foo&lt;p style=text-decoration:line-through&gt;[]bar" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;foo&lt;s&gt;bar&lt;/s&gt;&lt;/p&gt;" but got "&lt;p&gt;foobar&lt;/p&gt;"
      

  • OK /editing/run/multitest.html?1001-2000
    • FAIL [expected PASS] subtest: [["strikethrough",""],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["delete",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"],["inserttext","a"]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["formatblock","&lt;div&gt;"],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["forwarddelete",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""],["forwarddelete",""]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • And 54 more unexpected results...
  • OK /editing/run/strikethrough.html?1-1000
    • FAIL [expected PASS] subtest: [["strikethrough",""]] "foo[]bar": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["strikethrough",""]] "foo[]bar" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;p&gt;&lt;span style=\"text-decoration:line-through\"&gt;foo&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=\"text-decoration:line-through\"&gt;bar&lt;/span&gt;&lt;/p&gt;" but got "&lt;p&gt;foo&lt;/p&gt; &lt;p&gt;bar&lt;/p&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;p&gt;[foo&lt;/p&gt; &lt;p&gt;bar]&lt;/p&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;span style=\"text-decoration:line-through\"&gt;&lt;span&gt;foo&lt;/span&gt; &lt;span&gt;bar&lt;/span&gt;&lt;/span&gt;" but got "&lt;span&gt;foo&lt;/span&gt; &lt;span&gt;bar&lt;/span&gt;"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;span&gt;[foo&lt;/span&gt; &lt;span&gt;bar]&lt;/span&gt;" queryCommandState("strikethrough") after

      assert_equals: Wrong result returned expected true but got false
      

    • And 154 more unexpected results...
  • OK /editing/run/strikethrough.html?1001-2000
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[bar]baz&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[bar]baz&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • PASS [expected FAIL] subtest: [["stylewithcss","false"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\"&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\" id=foo&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "&lt;strike&gt;foo[b&lt;span style=\"color:blue\" id=foo&gt;ar]ba&lt;/span&gt;z&lt;/strike&gt;" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • And 171 more unexpected results...
  • OK /editing/run/strikethrough.html?2001-last
    • PASS [expected FAIL] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" queryCommandState("strikethrough") after
    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo&lt;s&gt;[bar]&lt;/s&gt;baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","true"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz": execCommand("strikethrough", false, "") return value

      assert_equals: expected true but got false
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" compare innerHTML

      assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo&lt;s&gt;bar&lt;/s&gt;baz"
      

    • FAIL [expected PASS] subtest: [["stylewithcss","false"],["strikethrough",""]] "foo{&lt;s&gt;bar&lt;/s&gt;}baz" queryCommandState("strikethrough") before

      assert_equals: Wrong result returned expected true but got false
      

    • And 22 more unexpected results...

@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Apr 22, 2026
@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

⚠️ Try run (#24777475237) cancelled.

@github-actions

Copy link
Copy Markdown

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

Flaky unexpected result (33)
  • CRASH [expected OK] /_webgl/conformance2/textures/misc/tex-srgb-mipmap.html
  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • FAIL [expected PASS] /css/css-backgrounds/border-image-repeat-space-9.html
  • FAIL [expected PASS] /css/css-ui/appearance-radio-001.html
  • CRASH [expected OK] /fetch/api/response/response-stream-disturbed-6.any.html
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/accumulated-oversized-payload.https.window.html (#41705)
  • 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/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.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit.html (#44028)
  • CRASH [expected OK] /html/browsers/history/the-history-interface/history_replacestate.html
  • CRASH [expected OK] /html/browsers/the-window-object/window-open-noopener.html?_top
  • 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
      

  • OK [expected TIMEOUT] /html/semantics/embedded-content/media-elements/src_object_blob.html (#40340)
    • PASS [expected TIMEOUT] subtest: HTMLMediaElement.srcObject blob
  • 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/scripting-1/the-script-element/module/choice-of-error-1.html (#44058)
    • PASS [expected FAIL] subtest: Parse errors in different files should be reported depending on different roots
  • TIMEOUT [expected OK] /html/user-activation/navigation-state-reset-sameorigin.html
    • TIMEOUT [expected PASS] subtest: Post-navigation state reset.

      Test timed out
      

  • OK [expected TIMEOUT] /infrastructure/testdriver/click_nested.html (#43887)
    • FAIL [expected NOTRUN] subtest: TestDriver click method with multiple windows and nested iframe

      can't access property "document", child.frames[2] is undefined
      

  • OK /mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html (#41697)
    • FAIL [expected PASS] subtest: Audio of other host autoupgraded

      assert_equals: Length of other host audio is correct expected 1 but got Infinity
      

  • ERROR [expected TIMEOUT] /performance-timeline/not-restored-reasons/abort-block-bfcache.window.html (#42802)
  • FAIL [expected PASS] /png/apng/fcTL-dispose-previous-first.html
  • TIMEOUT [expected OK] /pointerevents/compat/pointerevent_touch-action_two-finger_interaction.html
    • NOTRUN [expected PASS] subtest: touch two-finger pan on 'touch-action: pan-x pan-y'
    • NOTRUN [expected FAIL] subtest: touch two-finger pan on 'touch-action: pinch-zoom'
  • OK /pointerevents/compat/pointerevent_touch_target_after_pointerdown_target_removed.tentative.html (#42813)
    • PASS [expected FAIL] subtest: After a pointerdown listener moves the target to different position, touch events should be fired on the pointerdown target, but pointer events should be fired on the pointerdown target parent
    • PASS [expected FAIL] subtest: After a pointerdown listener moves the target to different position, touchmove event should be fired on the pointerdown target parent
  • OK /resource-timing/buffer-full-add-then-clear.html (#40819)
    • FAIL [expected PASS] subtest: Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one

      assert_equals: Number of entries does not match the expected value. expected 3 but got 0
      

  • OK /resource-timing/buffer-full-when-populate-entries.html (#44408)
    • FAIL [expected PASS] subtest: Test that a buffer full event does not bubble and that resourcetimingbufferfull is called only once per overflow

      assert_equals: onresourcetimingbufferfull should have been invoked once. expected 1 but got 0
      

  • OK /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (xmlhttprequest)
  • OK /sanitizer-api/sanitizer-inert-document.tentative.html (#44273)
    • PASS [expected FAIL] subtest: Test whether setHTMLUnsafe loads the image.
  • 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.
  • OK /trusted-types/trusted-types-reporting.html (#43737)
    • PASS [expected FAIL] subtest: Trusted Type violation report: creating a report-only-forbidden policy.
    • PASS [expected FAIL] subtest: Trusted Type violation report: sample for SVGScriptElement href assignment by setAttribute
    • PASS [expected FAIL] subtest: Trusted Type violation report: sample for eval
  • TIMEOUT [expected OK] /visual-viewport/resize-event-order.html (#41981)
    • TIMEOUT [expected FAIL] subtest: Popup: DOMWindow resize fired before VisualViewport.

      Test timed out
      

    • NOTRUN [expected PASS] subtest: iframe: DOMWindow resize fired before VisualViewport.
  • OK /wasm/webapi/abort.any.worker.html (#40013)
    • FAIL [expected PASS] subtest: compileStreaming() asynchronously racing with abort should succeed or reject with AbortError

      assert_equals: expected "AbortError" but got "CompileError"
      

  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
  • CRASH [expected OK] /workers/SharedWorker-script-error.html
Stable unexpected results that are known to be intermittent (17)
  • OK /IndexedDB/idbtransaction-oncomplete.any.html (#42845)
    • FAIL [expected PASS] subtest: IDBTransaction - complete event

      assert_array_equals: lengths differ, expected array ["upgradeneeded", "complete", "success", "opencursor"] length 4, got ["upgradeneeded", "complete", "success"] length 3
      

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

    • PASS [expected FAIL] subtest: WebGL test #53
    • PASS [expected FAIL] subtest: WebGL test #55
    • PASS [expected FAIL] subtest: WebGL test #57
    • PASS [expected FAIL] subtest: WebGL test #59
    • FAIL [expected PASS] subtest: WebGL test #61

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

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

      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
      

    • And 14 more unexpected results...
  • ERROR /_webgl/conformance2/textures/misc/tex-3d-size-limit.html (#44383)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: successfullyParsed should be true (of type boolean). Was undefined (of type undefined). expected true got false
      

  • OK [expected CRASH] /content-security-policy/meta/sandbox-iframe.html (#43478)
  • OK /css/css-cascade/layer-cssom-order-reverse.html (#36094)
    • FAIL [expected PASS] subtest: Delete layer invalidates @font-face

      assert_equals: expected "220px" but got "133px"
      

  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-serif (drawing text in a canvas)

      assert_equals: unquoted ui-serif does not match @font-face rule expected 40 but got 125
      

    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)

      assert_equals: unquoted ui-sans-serif does not match @font-face rule expected 40 but got 125
      

  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/sandboxed-iframe.https.window.html (#41704)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-dest
  • TIMEOUT /fetch/metadata/generated/css-images.https.sub.tentative.html (#42229)
    • FAIL [expected PASS] subtest: content sec-fetch-site - Same-Origin -&gt; Same Origin

      assert_unreached: Reached unreachable code
      

  • ERROR [expected OK] /html/canvas/offscreen/text/2d.text.measure.getActualBoundingBox.tentative.html (#43710)
  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped

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

    • FAIL [expected NOTRUN] subtest: Area element should support autofocus

      promise_test: Unhandled rejection with value: object "TypeError: can't access property "appendChild", w.document.querySelector(...) is null"
      

  • OK /html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html (#39694)
    • FAIL [expected PASS] subtest: Meta refresh is blocked by the allow-scripts sandbox flag at its creation time, not when refresh comes due

      uncaught exception: Error: assert_unreached: The iframe from which the meta came from must not refresh Reached unreachable code
      

  • OK /mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html (#41123)
    • PASS [expected FAIL] subtest: Cross-Origin video should get upgraded even if CORS is set
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • FAIL [expected PASS] subtest: Reload domComplete &gt; Original domComplete

      assert_true: Reload domComplete &gt; Original domComplete expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd

      assert_true: Reload domContentLoadedEventEnd &gt; Original domContentLoadedEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart

      assert_true: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventEnd &gt; Original loadEventEnd

      assert_true: Reload loadEventEnd &gt; Original loadEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventStart &gt; Original loadEventStart

      assert_true: Reload loadEventStart &gt; Original loadEventStart expected true got false
      

  • CRASH [expected OK] /resource-timing/render-blocking-status-link.html (#41664)
  • OK /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

✨ Try run (#24779723487) succeeded.

@janvarga janvarga added the T-full Do a full try run label Apr 22, 2026
@github-actions github-actions Bot removed the T-full Do a full try run label Apr 22, 2026
@github-actions

Copy link
Copy Markdown

🔨 Triggering try run (#24782673041) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), MacOS Arm64 (Unit Tests), Android, OpenHarmony, Lint

@github-actions

Copy link
Copy Markdown

🐰 Bencher Report

Branch44433/PR
Testbedself-hosted-image:servo-ubuntu2204-bench

⚠️ WARNING: Truncated view!

The full continuous benchmarking report exceeds the maximum length allowed on this platform.

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

🐰 View full continuous benchmarking report in Bencher

@github-actions

Copy link
Copy Markdown

🐰 Bencher Report

Branch44433/PR
TestbedHUAWEI Mate 60 Pro

⚠️ WARNING: Truncated view!

The full continuous benchmarking report exceeds the maximum length allowed on this platform.

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

🐰 View full continuous benchmarking report in Bencher

@github-actions

Copy link
Copy Markdown

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

Flaky unexpected result (24)
  • TIMEOUT [expected OK] /_webgl/conformance/reading/read-pixels-test.html
    • NOTRUN [expected PASS] subtest: Overall test
  • CRASH [expected OK] /_webgl/conformance2/wasm/readpixels-2gb-in-4gb-wasm-memory.html
  • FAIL [expected PASS] /css/css-backgrounds/background-size-041.html
  • CRASH [expected OK] /fetch/api/cors/cors-redirect.any.html
  • CRASH [expected OK] /fetch/api/cors/cors-redirect.any.worker.html
  • 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/history/the-history-interface/012.html
  • CRASH [expected OK] /html/browsers/history/the-history-interface/history_replacestate.html
  • 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]
      }"
      

  • CRASH [expected OK] /html/canvas/element/compositing/2d.composite.solid.copy.html
  • 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/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/scripting-1/the-script-element/module/dynamic-import/blob-url.any.html (#33948)
    • FAIL [expected PASS] subtest: Revoking a blob URL immediately after calling import will not fail

      promise_test: Unhandled rejection with value: object "TypeError: Module fetching failed"
      

  • TIMEOUT [expected OK] /html/user-activation/navigation-state-reset-sameorigin.html
    • TIMEOUT [expected PASS] subtest: Post-navigation state reset.

      Test timed out
      

  • TIMEOUT [expected ERROR] /infrastructure/expected-fail/user-prompt.html?type=prompt
  • CRASH [expected OK] /resource-timing/render-blocking-status-link.html (#41664)
  • OK /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (iframe)
  • OK /sanitizer-api/sanitizer-inert-document.tentative.html (#44273)
    • PASS [expected FAIL] subtest: Test whether setHTMLUnsafe loads the image.
  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?01-05 (#38975)
    • PASS [expected TIMEOUT] subtest: Navigate a window via anchor with javascript:-urls in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a window via anchor with javascript:-urls w/ default policy in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a frame via anchor with javascript:-urls in enforcing mode.
  • TIMEOUT /trusted-types/trusted-types-navigation.html?31-35 (#38034)
    • TIMEOUT [expected PASS] subtest: Navigate a frame via form-submission with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.
  • OK /visual-viewport/resize-event-order.html (#41981)
    • PASS [expected FAIL] subtest: Popup: DOMWindow resize fired before VisualViewport.
  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
Stable unexpected results that are known to be intermittent (19)
  • 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/textures/misc/texture-upload-size.html (#21770)
    • PASS [expected FAIL] subtest: WebGL test #93
    • PASS [expected FAIL] subtest: WebGL test #95
    • PASS [expected FAIL] subtest: WebGL test #97
    • PASS [expected FAIL] subtest: WebGL test #99
    • PASS [expected FAIL] subtest: WebGL test #109
    • PASS [expected FAIL] subtest: WebGL test #111
    • PASS [expected FAIL] subtest: WebGL test #113
    • PASS [expected FAIL] subtest: WebGL test #115
  • ERROR /_webgl/conformance2/textures/misc/tex-3d-size-limit.html (#44383)
    • FAIL [expected PASS] subtest: WebGL test #77

      assert_true: successfullyParsed should be true (of type boolean). Was undefined (of type undefined). expected true got false
      

  • OK [expected CRASH] /content-security-policy/meta/sandbox-iframe.html (#43478)
  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted sans-serif (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted cursive (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai) (drawing text in a canvas)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)

      assert_equals: unquoted ui-sans-serif does not match @font-face rule expected 40 but got 125
      

  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/multiple-iframes.https.window.html (#35176)
  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/sandboxed-iframe.https.window.html (#41704)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-dest
  • TIMEOUT /fetch/metadata/generated/css-images.https.sub.tentative.html (#42229)
    • FAIL [expected PASS] subtest: content sec-fetch-site - Same-Origin -&gt; Same Origin

      assert_unreached: Reached unreachable code
      

  • 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 [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-requestsubmit.html (#44098)
    • FAIL [expected TIMEOUT] subtest: Replace before load, triggered by formElement.requestSubmit()

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?thereplacement=" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/resources/code-injector.html?pipe=sub(none)&amp;code=%0A%20%20%20%20const%20form%20%3D%20document.createElement(%22form%22)%3B%0A%20%20%20%20form.action%20%3D%20%22%2Fcommon%2Fblank.html%22%3B%0A%0A%20%20%20%20const%20input%20%3D%20document.createElement(%22input%22)%3B%0A%20%20%20%20input.type%20%3D%20%22hidden%22%3B%0A%20%20%20%20input.name%20%3D%20%22thereplacement%22%3B%0A%20%20%20%20form.append(input)%3B%0A%0A%20%20%20%20document.currentScript.before(form)%3B%0A%20%20%20%20form.requestSubmit()%3B%0A%20%20"
      

  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • FAIL [expected PASS] subtest: Multiple history traversals, last would be aborted

      assert_array_equals: Pages opened during history navigation expected property 1 to be 5 but got 3 (expected array [6, 5] got [6, 3])
      

  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped

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

    • FAIL [expected NOTRUN] subtest: Area element should support autofocus

      promise_test: Unhandled rejection with value: object "TypeError: can't access property "appendChild", w.document.querySelector(...) is null"
      

  • OK [expected TIMEOUT] /infrastructure/testdriver/click_nested.html (#43887)
    • FAIL [expected NOTRUN] subtest: TestDriver click method with multiple windows and nested iframe

      can't access property "document", child.frames[2] is undefined
      

  • OK /mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html (#41123)
    • PASS [expected FAIL] subtest: Cross-Origin video should get upgraded even if CORS is set
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload domInteractive &gt; Original domInteractive
  • PASS [expected FAIL] /png/apng/acTL-plays-two.html (#41191)
  • OK /resource-timing/buffer-full-then-increased.html (#44408)
    • FAIL [expected PASS] subtest: Test that overflowing the buffer and immediately increasing its limit does not trigger the resourcetimingbufferfull event

      assert_equals: Number of entries does not match the expected value. expected 3 but got 1
      

  • OK /trusted-types/trusted-types-reporting.html (#43737)
    • PASS [expected FAIL] subtest: Trusted Type violation report: creating a forbidden-but-not-reported policy.
    • PASS [expected FAIL] subtest: Trusted Type violation report: sample for custom element assignment
    • PASS [expected FAIL] subtest: Trusted Type violation report: Worker constructor

@janvarga janvarga requested a review from jdm April 22, 2026 14:45
@janvarga janvarga marked this pull request as ready for review April 22, 2026 14:46
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Apr 22, 2026
@janvarga

Copy link
Copy Markdown
Member Author

@jdm Do you think something like this would help for now?

@github-actions

Copy link
Copy Markdown

✨ Try run (#24782673041) succeeded.

@janvarga janvarga force-pushed the temp-storage branch 3 times, most recently from d53ebc1 to 1a37be6 Compare April 23, 2026 09:24

@jdm jdm left a comment

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.

I'm ok with this as a bandaid fix if we think that sharing storage across multiple servo processes in tests is causing issues. I think we should revert this change once we have a proper fix for using independent config directories per servo test process that is launched.

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Apr 25, 2026
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Apr 25, 2026
Add support for temporary storage via a new config option `temporary_storage`
and a corresponding command-line argument `--temporary-storage`.

When enabled, client storage uses a storage directory
(e.g. `clientstorage/temporary/<uuid>`) instead of the shared default location.
This can be used to provide isolation between concurrent servo instances.

This is especially useful for WPT runs, where multiple Servo instances may
execute in parallel and would otherwise share the same storage, leading to
cross-test interference.

Based on that, this patch also updates the WPT runner to enable temporary
storage by default.

Signed-off-by: Jan Varga <jvarga@igalia.com>
@janvarga

Copy link
Copy Markdown
Member Author

I'm ok with this as a bandaid fix if we think that sharing storage across multiple servo processes in tests is causing issues. I think we should revert this change once we have a proper fix for using independent config directories per servo test process that is launched.

Right, I added a comment to run.py reflecting that.
This PR exists mainly to unblock #44374

@janvarga janvarga enabled auto-merge April 25, 2026 10:10
@janvarga janvarga added this pull request to the merge queue Apr 25, 2026
@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 Apr 25, 2026
Merged via the queue into servo:main with commit 902d5d1 Apr 25, 2026
30 checks passed
@janvarga janvarga deleted the temp-storage branch April 25, 2026 11:45
@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 Apr 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-awaiting-review There is new code that needs to be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants