Skip to content

script: Implement PerformanceMeasureOptions#43753

Merged
simonwuelker merged 3 commits into
servo:mainfrom
simonwuelker:performancemeasureoptions
Apr 1, 2026
Merged

script: Implement PerformanceMeasureOptions#43753
simonwuelker merged 3 commits into
servo:mainfrom
simonwuelker:performancemeasureoptions

Conversation

@simonwuelker
Copy link
Copy Markdown
Member

@simonwuelker simonwuelker commented Mar 29, 2026

The relevant changes are in Performance::Measure, the rest are comments I added.

Testing: New tests start to pass

@simonwuelker simonwuelker added the T-linux-wpt Do a try run of the WPT label Mar 29, 2026
@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Mar 29, 2026
@github-actions
Copy link
Copy Markdown

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

@github-actions
Copy link
Copy Markdown

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

Flaky unexpected result (27)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • PASS [expected TIMEOUT] subtest: Fetching a blob URL immediately before revoking it works in <script> tags.
  • OK /_mozilla/css/offset_properties_inline.html (#40543)
    • FAIL [expected PASS] subtest: offsetTop

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

    • FAIL [expected PASS] subtest: offsetLeft

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

  • TIMEOUT [expected ERROR] /_webgl/conformance/extensions/oes-texture-half-float-with-canvas.html
  • CRASH [expected OK] /_webgl/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html
  • CRASH [expected ERROR] /_webgl/conformance2/misc/uninitialized-test-2.html (#41656)
  • 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
      

  • CRASH [expected OK] /content-security-policy/meta/sandbox-iframe.html (#43478)
  • OK /css/css-align/blocks/align-content-block-003.html
    • FAIL [expected PASS] subtest: .test 1: start

      assert_equals: 
      <div class="test" style="align-content: start" title="start">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">START</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 2: center

      assert_equals: 
      <div class="test" style="align-content: center" title="center">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">CENTER</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 3: end

      assert_equals: 
      <div class="test" style="align-content: end" title="end">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">END</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 4: baseline

      assert_equals: 
      <div class="test" style="align-content: baseline" title="baseline">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">BASELINE</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 5: last baseline

      assert_equals: 
      <div class="test" style="align-content: last baseline" title="last baseline">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">LAST BASELINE</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 6: flex-start

      assert_equals: 
      <div class="test" style="align-content: flex-start" title="flex-start">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">FLEX-START</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 7: flex-end

      assert_equals: 
      <div class="test" style="align-content: flex-end" title="flex-end">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">FLEX-END</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 8: unsafe start

      assert_equals: 
      <div class="test" style="align-content: unsafe start" title="unsafe start">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">UNSAFE START</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 11: safe start

      assert_equals: 
      <div class="test" style="align-content: safe start" title="safe start">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">SAFE START</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • FAIL [expected PASS] subtest: .test 12: safe center

      assert_equals: 
      <div class="test" style="align-content: safe center" title="safe center">
          <div class="in-flow" data-offset-y="35"></div>
          <div class="in-flow">
            <span class="label">SAFE CENTER</span>
            <span class="abspos" data-offset-y="20">ABS</span>
            <span class="relpos" data-offset-y="20">REL</span>
            <div class="overflow">OVERFLOW</div>
          </div>
        </div>
      offsetTop expected 20 but got 19
      

    • And 5 more unexpected results...
  • FAIL [expected PASS] /css/css-backgrounds/background-size-042.html
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/sandboxed-iframe.https.window.html (#41704)
  • 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
  • CRASH [expected TIMEOUT] /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-cross-document-traversal.html
  • OK /html/browsers/history/the-history-interface/traverse_the_history_4.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html (#29087)
    • TIMEOUT [expected FAIL] subtest: <dialog>-contained autofocus element gets focused when the dialog is shown

      Test timed out
      

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

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

  • OK /html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-window-open.html (#32596)
    • FAIL [expected PASS] subtest: Navigating iframe loading='lazy' before it is loaded: location.replace

      uncaught exception: Error: assert_equals: expected "http://web-platform.test:8000/html/semantics/embedded-content/the-iframe-element/support/blank.htm?nav" but got "http://web-platform.test:8000/html/semantics/embedded-content/the-iframe-element/support/blank.htm?src"
      

  • 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] /preload/modulepreload-sri-importmap.html (#43354)
    • TIMEOUT [expected PASS] subtest: Script should not be loaded if modulepreload's integrity is invalid

      Test timed out
      

  • 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 /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (link)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (xmlhttprequest)
  • TIMEOUT /trusted-types/trusted-types-navigation.html?06-10 (#37920)
    • TIMEOUT [expected FAIL] subtest: Navigate a frame via anchor with javascript:-urls in report-only mode.

      Test timed out
      

    • NOTRUN [expected TIMEOUT] subtest: Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.
  • CRASH [expected OK] /uievents/order-of-events/focus-events/focus.html
  • PASS [expected TIMEOUT] /visual-viewport/viewport-apply-initial-scale-after-navigation.html (#41582)
  • OK /wasm/webapi/abort.any.html (#39966)
    • FAIL [expected PASS] subtest: instantiateStreaming() 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] /webxr/xrSession_input_events_end.https.html
Stable unexpected results that are known to be intermittent (23)
  • 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
      

  • CRASH [expected PASS] /_mozilla/shadow-dom/move-element-with-ua-shadow-tree-crash.html (#39473)
  • 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 6 more unexpected results...
  • OK /css/css-fonts/generic-family-keywords-001.html (#37467)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(fangsong)
    • FAIL [expected PASS] subtest: @font-face matching for quoted and unquoted generic(khmer-mul)

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

  • OK /css/css-fonts/generic-family-keywords-003.html (#38994)
    • 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
      

    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(fangsong) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(kai) (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted generic(khmer-mul) (drawing text in a canvas)
  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/accumulated-oversized-payload.https.window.html (#41705)
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • FAIL [expected PASS] subtest: content sec-fetch-site - HTTPS downgrade-upgrade

      assert_unreached: Reached unreachable code
      

  • OK /fetch/metadata/generated/element-iframe.https.sub.html (#40341)
    • PASS [expected FAIL] subtest: sec-fetch-site - Cross-site
    • PASS [expected FAIL] subtest: sec-fetch-site - Same site
    • PASS [expected FAIL] subtest: sec-fetch-site - Cross-Site -> Cross-Site
    • PASS [expected FAIL] subtest: sec-fetch-site - Same-Site -> Same-Site
  • OK /fetch/metadata/window-open.https.sub.html (#40339)
    • PASS [expected FAIL] subtest: Cross-site window, forced: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, forced: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, forced, reloaded: sec-fetch-site
    • PASS [expected FAIL] subtest: Cross-site window, forced, reloaded: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, user-activated: sec-fetch-site
    • PASS [expected FAIL] subtest: Cross-site window, user-activated: sec-fetch-site
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • FAIL [expected PASS] subtest: load event does not fire on window.open('about:blank')

      assert_unreached: load should not be fired 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 /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • 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 TIMEOUT] subtest: Non-HTMLElement should not support autofocus
  • OK /html/semantics/embedded-content/media-elements/audio_loop_seek_to_eos.html (#41226)
    • PASS [expected FAIL] subtest: seeking to the end of looping audio
  • 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 /html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html (#43671)
    • FAIL [expected PASS] subtest: document.write external script into iframe write back into parent

      assert_array_equals: lengths differ, expected array [1, 2, 3, 4, 5] length 5, got [1, 2] length 2
      

  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload fetchStart > Original fetchStart
  • 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/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • OK /trusted-types/trusted-types-reporting.html (#43737)
    • FAIL [expected PASS] subtest: Trusted Type violation report: sample for custom element assignment

      assert_equals: a single violation reported expected 1 but got 0
      

  • 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/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
Stable unexpected results (16)
  • ERROR [expected OK] /user-timing/clearMeasures.html
  • OK /user-timing/mark-measure-feature-detection.html
    • FAIL [expected PASS] subtest: Test PerformanceMeasure existence and feature detection

      assert_equals: performance.measure should be void in UserTiming L2. expected "undefined" but got "object"
      

  • OK /user-timing/mark-measure-return-objects.any.html
    • PASS [expected FAIL] subtest: L3: performance.measure(name) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1, param2) should return an entry.
  • OK /user-timing/mark-measure-return-objects.any.worker.html
    • PASS [expected FAIL] subtest: L3: performance.measure(name) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1, param2) should return an entry.
  • OK /user-timing/measure-exceptions.html
    • PASS [expected FAIL] subtest: Passing 51.15 as a mark to measure API should cause error.
    • PASS [expected FAIL] subtest: Passing DoesNotExist as a mark to measure API should cause error.
  • OK /user-timing/measure-with-dict.any.html
    • PASS [expected FAIL] subtest: measure should throw a TypeError when passed an invalid argument combination
  • OK /user-timing/measure-with-dict.any.worker.html
    • PASS [expected FAIL] subtest: measure should throw a TypeError when passed an invalid argument combination
  • ERROR /user-timing/measure.html
    • FAIL [expected PASS] subtest: window.performance.getEntriesByName("measure_no_start_no_end")[0].startTime is correct

      assert_true: window.performance.getEntriesByName("measure_no_start_no_end")[0].startTime is correct expected true got false
      

    • FAIL [expected PASS] subtest: window.performance.getEntriesByName("measure_no_start_end")[0].startTime is correct

      assert_true: window.performance.getEntriesByName("measure_no_start_end")[0].startTime is correct expected true got false
      

    • FAIL [expected PASS] subtest: window.performance.getEntriesByName("measure_no_start_end")[0].duration is approximately correct (up to 20ms difference allowed)

      assert_true: window.performance.getEntriesByName("measure_no_start_end")[0].duration is approximately correct (up to 20ms difference allowed) expected true got false
      

    • FAIL [expected PASS] subtest: window.performance.getEntriesByName("measure_no_start_no_end")[1].startTime is correct

      assert_true: window.performance.getEntriesByName("measure_no_start_no_end")[1].startTime is correct expected true got false
      

    • FAIL [expected PASS] subtest: window.performance.getEntries() returns an object containing all test measures in order.

      assert_true: window.performance.getEntries() returns an object containing all test measures in order. expected true got false
      

    • FAIL [expected PASS] subtest: window.performance.getEntriesByType("measure") returns an object containing all test measures in order.

      assert_true: window.performance.getEntriesByType("measure") returns an object containing all test measures in order. expected true got false
      

  • ERROR [expected OK] /user-timing/measure_associated_with_navigation_timing.html
  • OK /user-timing/measure_exception.html
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception1", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception2", "NonExistMark1", "navigationStart") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception3", "navigationStart", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception4", "NonExistMark1", "ExistMark") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception5", "ExistMark", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception6", "NonExistMark1", "NonExistMark2") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception9", {"start": 1, "duration": 2, "end": 3}) should throw TypeError Exception.
  • ERROR [expected OK] /user-timing/measure_navigation_timing.html
  • OK /user-timing/measure_syntax_err.any.html
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "existing_mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "existing_mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
  • OK /user-timing/measure_syntax_err.any.worker.html
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "existing_mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "existing_mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
  • ERROR [expected OK] /user-timing/measures.html
  • OK /user-timing/structured-serialize-detail.any.html
    • PASS [expected FAIL] subtest: The detail property in the measure method should be the same reference.
  • OK /user-timing/structured-serialize-detail.any.worker.html
    • PASS [expected FAIL] subtest: The detail property in the measure method should be the same reference.

@github-actions
Copy link
Copy Markdown

⚠️ Try run (#23720375258) failed!

@simonwuelker simonwuelker added the T-linux-wpt Do a try run of the WPT label Mar 30, 2026
@github-actions github-actions Bot removed the T-linux-wpt Do a try run of the WPT label Mar 30, 2026
@github-actions
Copy link
Copy Markdown

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

@github-actions
Copy link
Copy Markdown

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

Flaky unexpected result (44)
  • OK /FileAPI/url/url-with-fetch.any.html (#21517)
    • FAIL [expected PASS] subtest: Revoke blob URL after calling fetch, fetch should succeed

      promise_test: Unhandled rejection with value: object "TypeError: Network error: Blob URL store error: InvalidFileID"
      

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

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

    • FAIL [expected PASS] subtest: offsetLeft

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

  • CRASH [expected PASS] /_mozilla/shadow-dom/move-element-with-ua-shadow-tree-crash.html (#39473)
  • TIMEOUT [expected ERROR] /_webgl/conformance2/textures/misc/copy-texture-image-luma-format.html
  • OK /beacon/beacon-basic.https.window.html (#41723)
    • FAIL [expected PASS] subtest: Payload size restriction should be accumulated: type = blob

      assert_false: expected false got true
      

  • 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/css-backgrounds/background-size-042.html
  • FAIL [expected PASS] /css/css-backgrounds/border-image-repeat-space-9.html
  • 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
  • FAIL [expected PASS] /css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html
  • 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
  • ERROR [expected OK] /focus/focus-event-after-switching-iframes.sub.html (#40368)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • FAIL [expected PASS] subtest: aElement.click() before the load event must NOT replace

      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)&code=%0A%20%20%20%20const%20a%20%3D%20document.createElement(%22a%22)%3B%0A%20%20%20%20a.href%20%3D%20%22%2Fcommon%2Fblank.html%3Fthereplacement%22%3B%0A%20%20%20%20document.currentScript.before(a)%3B%0A%20%20%20%20a.click()%3B%0A%20%20"
      

  • CRASH [expected TIMEOUT] /html/browsers/browsing-the-web/remote-context-helper-tests/addFrame.window.html
  • OK /html/browsers/windows/browsing-context-names/duplicate-name-order.html (#34623)
    • PASS [expected FAIL] subtest: Duplicate name lookup order
  • 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
      

  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-top.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with "top" 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
  • 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/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"
      

  • OK /html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html
    • FAIL [expected PASS] subtest: expect-no-linked-resources hint was ignored

      assert_equals: speculative case fetched expected "" but got "de177680-a676-429f-9a9c-301e2094a9e4"
      

  • 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)
    • FAIL [expected PASS] subtest: document.write external script into iframe write back into parent

      assert_array_equals: lengths differ, expected array [1, 2, 3, 4, 5] length 5, got [1, 2] length 2
      

  • FAIL [expected PASS] /png/apng/fcTL-blend-source-nearly-transparent.html (#40915)
  • TIMEOUT [expected OK] /preload/modulepreload-sri-importmap.html (#43354)
    • TIMEOUT [expected PASS] subtest: Script should not be loaded if modulepreload's integrity is invalid

      Test timed out
      

  • TIMEOUT [expected OK] /preload/modulepreload-sri.html (#43354)
    • TIMEOUT [expected PASS] subtest: Script should not be loaded if modulepreload's integrity is invalid

      Test timed out
      

  • CRASH [expected TIMEOUT] /referrer-policy/gen/top.meta/unsafe-url/svg-a-tag.http.html
  • 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!\""
      

  • OK /webdriver/tests/classic/accept_alert/accept.py (#43194)
    • FAIL [expected PASS] subtest: test_null_response_value

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

  • OK /webdriver/tests/classic/close_window/close.py
    • ERROR [expected PASS] subtest: test_no_top_browsing_context

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

  • OK /webdriver/tests/classic/element_click/navigate.py
    • FAIL [expected PASS] subtest: test_numbers_link

      webdriver.error.NoSuchWindowException: no such window (404): No such window
      

  • OK /webdriver/tests/classic/element_send_keys/file_upload.py
    • FAIL [expected PASS] subtest: test_empty_text

      webdriver.error.NoSuchWindowException: no such window (404): No such window
      

  • OK /webdriver/tests/classic/execute_async_script/user_prompts.py
    • FAIL [expected PASS] subtest: test_accept[alert-None]

      webdriver.error.NoSuchWindowException: no such window (404): No such window
      

  • OK /webdriver/tests/classic/execute_script/execute.py
    • ERROR [expected PASS] subtest: test_no_top_browsing_context

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

  • OK /webdriver/tests/classic/execute_script/window.py
    • FAIL [expected PASS] subtest: test_web_reference[frame]

      AssertionError: no such window (404): No such window
      

  • OK /webdriver/tests/classic/find_elements_from_element/user_prompts.py
    • FAIL [expected PASS] subtest: test_accept[alert-None]

      webdriver.error.NoSuchWindowException: no such window (404): No such window
      

  • OK /webdriver/tests/classic/get_computed_role/get.py
    • ERROR [expected FAIL] subtest: test_no_browsing_context

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

  • OK /webdriver/tests/classic/get_element_rect/user_prompts.py
    • FAIL [expected PASS] subtest: test_accept[alert-None]

      webdriver.error.NoSuchWindowException: no such window (404): No such window
      

  • OK /webdriver/tests/classic/perform_actions/perform.py
    • FAIL [expected PASS] subtest: test_input_source_action_sequence_actions_pause_duration_valid[none]

      AssertionError: no such window (404): No such window
      

  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
  • CRASH [expected OK] /workers/WorkerGlobalScope_ErrorEvent_colno.htm
  • CRASH [expected OK] /workers/Worker_script_mimetype.htm
Stable unexpected results that are known to be intermittent (21)
  • 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
      

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

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

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

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

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

      assert_equals: unquoted generic(nastaliq) does not match @font-face rule expected 40 but got 125
      

    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-serif (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-sans-serif (drawing text in a canvas)
    • PASS [expected FAIL] subtest: @font-face matching for quoted and unquoted ui-monospace (drawing text in a canvas)
  • ERROR [expected OK] /fetch/fetch-later/quota/same-origin-iframe/accumulated-oversized-payload.https.window.html (#41705)
  • OK /fetch/metadata/generated/element-iframe.https.sub.html (#40341)
    • PASS [expected FAIL] subtest: sec-fetch-site - Cross-site
    • PASS [expected FAIL] subtest: sec-fetch-site - Same site
    • PASS [expected FAIL] subtest: sec-fetch-site - Cross-Site -> Cross-Site
    • PASS [expected FAIL] subtest: sec-fetch-site - Same-Site -> Same-Site
  • OK /fetch/metadata/window-open.https.sub.html (#40339)
    • PASS [expected FAIL] subtest: Cross-site window, forced: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, forced: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, forced, reloaded: sec-fetch-site
    • PASS [expected FAIL] subtest: Cross-site window, forced, reloaded: sec-fetch-site
    • PASS [expected FAIL] subtest: Same-site window, user-activated: sec-fetch-site
    • PASS [expected FAIL] subtest: Cross-site window, user-activated: sec-fetch-site
  • 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/005.html (#27062)
    • FAIL [expected PASS] subtest: Link with onclick navigation and href navigation

      assert_equals: expected "href" but got "click"
      

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

      assert_equals: expected Element node <div autofocus=""></div> but got Element node <body></body>
      

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

      assert_equals: expected Element node <input autofocus=""></input> but got Element node <body><div autofocus=""></div><input autofocus=""></body>
      

    • 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/embedded-content/media-elements/audio_loop_seek_to_eos.html (#41226)
    • PASS [expected FAIL] subtest: seeking to the end of looping audio
  • OK /html/semantics/embedded-content/media-elements/media_fragment_seek.html (#24114)
    • FAIL [expected PASS] subtest: Video should seek to time specified in media fragment syntax

      assert_equals: expected 3 but got 0
      

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

  • 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 (iframe)
  • OK [expected TIMEOUT] /trusted-types/trusted-types-navigation.html?26-30 (#38807)
    • PASS [expected TIMEOUT] subtest: Navigate a window via form-submission with javascript:-urls in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a window via form-submission with javascript:-urls w/ default policy in report-only mode.
    • PASS [expected NOTRUN] subtest: Navigate a frame via form-submission with javascript:-urls in enforcing mode.
    • PASS [expected NOTRUN] subtest: Navigate a frame via form-submission with javascript:-urls w/ default policy in enforcing mode.
  • OK /trusted-types/trusted-types-reporting.html (#43737)
    • FAIL [expected PASS] subtest: Trusted Type violation report: sample for custom element assignment

      assert_equals: a single violation reported expected 1 but got 0
      

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

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

  • 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/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
Stable unexpected results (15)
  • ERROR [expected OK] /user-timing/clearMeasures.html
  • OK /user-timing/mark-measure-feature-detection.html
    • FAIL [expected PASS] subtest: Test PerformanceMeasure existence and feature detection

      assert_equals: performance.measure should be void in UserTiming L2. expected "undefined" but got "object"
      

  • OK /user-timing/mark-measure-return-objects.any.html
    • PASS [expected FAIL] subtest: L3: performance.measure(name) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1, param2) should return an entry.
  • OK /user-timing/mark-measure-return-objects.any.worker.html
    • PASS [expected FAIL] subtest: L3: performance.measure(name) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1) should return an entry.
    • PASS [expected FAIL] subtest: L3: performance.measure(name, param1, param2) should return an entry.
  • OK /user-timing/measure-exceptions.html
    • PASS [expected FAIL] subtest: Passing 51.15 as a mark to measure API should cause error.
    • PASS [expected FAIL] subtest: Passing DoesNotExist as a mark to measure API should cause error.
  • OK /user-timing/measure-with-dict.any.html
    • PASS [expected FAIL] subtest: measure should throw a TypeError when passed an invalid argument combination
  • OK /user-timing/measure-with-dict.any.worker.html
    • PASS [expected FAIL] subtest: measure should throw a TypeError when passed an invalid argument combination
  • ERROR [expected OK] /user-timing/measure_associated_with_navigation_timing.html
  • OK /user-timing/measure_exception.html
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception1", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception2", "NonExistMark1", "navigationStart") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception3", "navigationStart", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception4", "NonExistMark1", "ExistMark") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception5", "ExistMark", "NonExistMark1") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception6", "NonExistMark1", "NonExistMark2") should throw SYNTAX_ERR Exception.
    • PASS [expected FAIL] subtest: Invocation of performance.measure("Exception9", {"start": 1, "duration": 2, "end": 3}) should throw TypeError Exception.
  • ERROR [expected OK] /user-timing/measure_navigation_timing.html
  • OK /user-timing/measure_syntax_err.any.html
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "existing_mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "existing_mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
  • OK /user-timing/measure_syntax_err.any.worker.html
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "existing_mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "existing_mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
    • PASS [expected FAIL] subtest: self.performance.measure("measure", "mark", "mark"), where "mark" is a non-existent mark, throws a SyntaxError exception.
  • ERROR [expected OK] /user-timing/measures.html
  • OK /user-timing/structured-serialize-detail.any.html
    • PASS [expected FAIL] subtest: The detail property in the measure method should be the same reference.
  • OK /user-timing/structured-serialize-detail.any.worker.html
    • PASS [expected FAIL] subtest: The detail property in the measure method should be the same reference.

@github-actions
Copy link
Copy Markdown

⚠️ Try run (#23736835790) failed!

Signed-off-by: Simon Wülker <[email protected]>
@simonwuelker simonwuelker force-pushed the performancemeasureoptions branch from 8db883f to 5229b10 Compare March 30, 2026 09:36
@@ -0,0 +1,3 @@
[mark-measure-feature-detection.html]
[Test PerformanceMeasure existence and feature detection]
expected: FAIL
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This test tests unspecified behaviour as far as I can tell. We should probably pass it at some point but doing it correctly likely needs some investigation.

Comment on lines +1 to +2
[clearMeasures.html]
expected: ERROR
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

These error results appear because we don't implement step 1 of https://w3c.github.io/user-timing/#convert-a-mark-to-a-timestamp. We didn't implement it before either, but returned a nonsense value instead of throwing.

@simonwuelker simonwuelker marked this pull request as ready for review March 30, 2026 09:39
@simonwuelker simonwuelker requested a review from gterzian as a code owner March 30, 2026 09:39
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Mar 30, 2026
@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Apr 1, 2026
@simonwuelker simonwuelker added this pull request to the merge queue Apr 1, 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 1, 2026
Merged via the queue into servo:main with commit 1550163 Apr 1, 2026
33 checks passed
@simonwuelker simonwuelker deleted the performancemeasureoptions branch April 1, 2026 21:35
@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 1, 2026
jschwe added a commit to jschwe/servo that referenced this pull request Apr 5, 2026
jschwe added a commit to jschwe/servo that referenced this pull request Apr 5, 2026
…(wpt)

{"fail_fast": false, "matrix": [{"name": "Linux (WPT)", "workflow": "linux", "wpt": true, "profile": "release", "unit_tests": false, "build_libservo": false, "bencher": false, "coverage": false, "build_args": "", "wpt_args": "", "number_of_wpt_chunks": 20}]}
fn can_add_resource_timing_entry(&self) -> bool {
// Step 1. If resource timing buffer current size is smaller than resource timing buffer size limit, return true.
// Step 2. Return false.
// TODO: Changing this to "<" (as per spec) does not result in passing tests, needs investigation
Copy link
Copy Markdown
Member

@shubhamg13 shubhamg13 Apr 14, 2026

Choose a reason for hiding this comment

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

I verified this. It is stable now. We can remove this.
Is it fine, if I remove this TODO?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

If there are tests that pass as a result of that change, sure.

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.

Please take a look on #44228

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.

4 participants