Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor scrolling on the window object #29680

Merged
merged 1 commit into from Sep 15, 2023

Conversation

mrobinson
Copy link
Member

@mrobinson mrobinson commented Apr 28, 2023

Refactor the scrolling and scrollable area calculation on the window object, to make it better match the specification. This has some mild changes to behavior, but in general things work the same as they did before. This is mainly preparation for properly handling viewport propagation of the overflow property.

There is one new pass in Layout 2020 regarding position: sticky, but this isn't a big deal because there is no support for position: sticky in Layout 2020 yet. In addition, tests/wpt/mozilla/tests/mozilla/scrollTo.html is updated to fix a flakiness timing issue. It tries to scroll the page before the entire page is loaded.

Co-authored-by: Rakhi Sharma atbrakhi@igalia.com


@mrobinson
Copy link
Member Author

cc @atbrakhi

@mrobinson mrobinson changed the title Fix scrolls run on the window object Fix scrolls run on the window object from script Apr 28, 2023
@mrobinson
Copy link
Member Author

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 94d391f with merge 66c9890...

bors-servo added a commit that referenced this pull request Apr 28, 2023
Fix scrolls run on the `window` object from script

The calculation of the viewport scrolling area was incorrect, because it was based on the body element instead of the viewport. This change makes the argument to the layout query optional and when it is not specified, the return value reflects the viewport's scrolling area.

In addition, scrolling the window object early on in the page load could sometimes lead to a situation where WebRender would scroll, but not request a frame with the scrolled content. Always request a frame when updating scroll positions from script.

This patch was written in collaboration with Rakhi Sharma <atbrakhi@igalia.com>.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21321.
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#4830008121):

Flaky unexpected result (24)
  • TIMEOUT [expected PASS] /_mozilla/mozilla/scroll_root.html (#16603)
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected PASS] /css/CSS2/abspos/abspos-containing-block-initial-005b.xht
  • OK /css/CSS2/linebox/inline-negative-margin-001.html (#23862)
    • PASS [expected FAIL] subtest: [data-expected-height] 1
    • PASS [expected FAIL] subtest: [data-expected-height] 2
    • FAIL [expected PASS] subtest: [data-expected-height] 4 assert_equals:
      <div class="w4" data-expected-height="10">123 <span style="margin-left: -4ch">123 </span></div>
      height expected 10 but got 20
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-bottom-003.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-child-multicolumn.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-inline.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-td-left.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-td-top.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-th-left.html
  • OK /css/css-transitions/properties-value-inherit-003.html (#26435)
    • FAIL [expected PASS] subtest: border-top-width length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "border-top-width:2s"
    • FAIL [expected PASS] subtest: border-right-width length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "border-right-width:2s"
    • FAIL [expected PASS] subtest: border-bottom-width length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "border-bottom-width:2s"
    • FAIL [expected PASS] subtest: border-left-width length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "border-left-width:2s"
    • FAIL [expected PASS] subtest: padding-bottom length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "padding-bottom:2s"
    • FAIL [expected PASS] subtest: padding-left length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "padding-left:2s"
    • FAIL [expected PASS] subtest: padding-right length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "padding-right:2s"
    • FAIL [expected PASS] subtest: padding-top length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "padding-top:2s"
    • FAIL [expected PASS] subtest: margin-bottom length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "margin-bottom:2s"
    • FAIL [expected PASS] subtest: margin-left length-em(em) / events assert_equals: Expected TransitionEnd events triggered on .transition expected "" but got "margin-left:2s"
    • And 19 more unexpected results...
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • PASS [expected TIMEOUT] subtest: no-referrer referrer policy used to create the starting page
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • PASS [expected FAIL] subtest: DE0D 0041 set in href="" targeting a frame and clicked
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-security-check-same-origin-domain.sub.html (#29122)
    • PASS [expected FAIL] subtest: javascript: URL security check for same-origin-domain but not same-origin
  • OK /html/browsers/history/the-history-interface/traverse_the_history_1.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals from the same task
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • OK /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
    • FAIL [expected PASS] subtest: Verifies that location navigations take precedence when following form submissions. assert_equals: expected "/html/semantics/forms/form-submission-0/resources/location.html" but got "/html/semantics/forms/form-submission-0/resources/form.html"
  • OK /html/semantics/scripting-1/the-script-element/execution-timing/077.html (#22139)
  • OK /html/syntax/parsing/DOMContentLoaded-defer.html (#21550)
    • PASS [expected FAIL] subtest: The end: DOMContentLoaded and defer scripts
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.dedicatedworker.html (#28346)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • FAIL [expected TIMEOUT] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire assert_array_equals: expected property 0 to be "InvalidStateError" but got "NotSupportedError" (expected array ["InvalidStateError"] got ["NotSupportedError"])
  • CRASH [expected TIMEOUT] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • TIMEOUT [expected PASS] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe Test timed out
  • ERROR [expected OK] /workers/constructors/Worker/Worker-constructor.html (#22991)
Stable unexpected results that are known to be intermittent (17)
  • OK [expected TIMEOUT] /FileAPI/url/url-charset.window.html (#26997)
    • PASS [expected TIMEOUT] subtest: Blob charset should override any auto-detected charset.
  • OK /css/css-transitions/properties-value-inherit-002.html (#21486)
    • FAIL [expected PASS] subtest: margin-right length(cm) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "377.95px"
    • FAIL [expected PASS] subtest: margin-right length(in) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "960px"
    • FAIL [expected PASS] subtest: margin-top length(pt) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "13.3333333333333px"
    • FAIL [expected PASS] subtest: margin-top length(pc) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "160px"
    • FAIL [expected PASS] subtest: margin-top length(px) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "10px"
    • FAIL [expected PASS] subtest: margin-top length(em) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "160px"
    • FAIL [expected PASS] subtest: margin-top length(ex) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "80px"
    • FAIL [expected PASS] subtest: margin-top length(mm) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "37.8px"
    • FAIL [expected PASS] subtest: margin-top length(cm) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "377.95px"
    • FAIL [expected PASS] subtest: margin-top length(in) / values assert_not_equals: may not be target value while transitioning on .transition got disallowed value "960px"
    • And 90 more unexpected results...
  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • PASS [expected FAIL] subtest: listeners are called correct number of times
    • PASS [expected FAIL] subtest: listener that was added twice is called only once
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • FAIL [expected PASS] subtest: Instant scrolling while doing history navigation. assert_equals: Shouldn't be scrolled back to top yet. expected 0 but got 28049
  • OK [expected TIMEOUT] /fetch/local-network-access/iframe.tentative.https.window.html (#29605)
    • PASS [expected TIMEOUT] subtest: local to local, grandparent navigates: no preflight required.
    • FAIL [expected TIMEOUT] subtest: public to local, grandparent navigates: failure. timeout adding grandchild
    • FAIL [expected TIMEOUT] subtest: public to local, grandparent navigates: success. timeout adding grandchild
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • TIMEOUT /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.html (#29055)
    • PASS [expected TIMEOUT] subtest: Navigating an opened window with an iframe via location.href to a javascript: URL must not fire beforeunload on the iframe: undefined completion
    • PASS [expected NOTRUN] subtest: Navigating an iframe via location.href to a javascript: URL must not fire beforeunload: string completion
    • PASS [expected NOTRUN] subtest: Navigating an iframe via src="" to a javascript: URL after insertion must not fire beforeunload: string completion
    • TIMEOUT [expected NOTRUN] subtest: Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: string completion Test timed out
  • OK [expected TIMEOUT] /html/browsers/history/the-history-interface/traverse-during-unload.html (#28688)
    • PASS [expected TIMEOUT] subtest: Traversing the history during unload
  • OK [expected TIMEOUT] /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
  • TIMEOUT [expected OK] /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
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped
    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.html (#29069)
  • OK [expected ERROR] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
  • TIMEOUT [expected OK] /webmessaging/with-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank Test timed out
  • OK [expected TIMEOUT] /webmessaging/with-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
Stable unexpected results (22)
  • OK /_mozilla/mozilla/scrollTo.html
    • FAIL [expected PASS] subtest: scrollTo assert_equals: expected 5000 but got 0
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-bottom-002.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-contained-by-display-table.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-flexbox.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-hyperlink.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-nested-inline.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-nested-table.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-nested-thead-th.html
  • TIMEOUT [expected PASS] /css/css-position/sticky/position-sticky-overflow-clip-container.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-rendering.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-td-bottom.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-tfoot-bottom.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-th-bottom.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-th-right.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-table-th-top.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-top-002.html
  • TIMEOUT [expected FAIL] /css/css-position/sticky/position-sticky-writing-modes.html
  • TIMEOUT [expected FAIL] /css/cssom-view/long_scroll_composited.html
  • OK /css/cssom-view/scrolling-quirks-vs-nonquirks.html
    • FAIL [expected PASS] subtest: scroll() on the HTML body element in quirks mode assert_equals: scrollLeft should be 90 expected 90 but got 0
    • FAIL [expected PASS] subtest: scrollBy() on the HTML body element in quirks mode assert_equals: scrollLeft should be 100 expected 100 but got 0
    • FAIL [expected PASS] subtest: scrollLeft/scrollTop on the HTML body element in quirks mode assert_equals: scrollLeft should be 120 expected 120 but got 0
    • FAIL [expected PASS] subtest: scroll() on the root element in non-quirks mode assert_equals: scrollLeft should be 50 expected 50 but got 0
    • FAIL [expected PASS] subtest: scrollBy() on the root element in non-quirks mode assert_equals: scrollLeft should be 60 expected 60 but got 0
    • FAIL [expected PASS] subtest: scrollLeft/scrollTop on the root element in non-quirks mode assert_equals: scrollLeft should be 70 expected 70 but got 0
  • TIMEOUT [expected FAIL] /css/filter-effects/filtered-block-is-container.html
  • TIMEOUT [expected PASS] /css/filter-effects/filtered-html-is-not-container.html
  • TIMEOUT [expected PASS] /css/filter-effects/filtered-inline-is-container.html

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@mrobinson mrobinson marked this pull request as draft April 29, 2023 06:34
@mrobinson mrobinson changed the title Fix scrolls run on the window object from script Fix scrolls on the window object from script Apr 29, 2023
@mrobinson
Copy link
Member Author

This needs a bit more work. In particular, we need to properly handle overflow: scroll on the <body> element. It should be propagated to the root <html> element. I've started that work here: #29699.

@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #29699) made this pull request unmergeable. Please resolve the merge conflicts.

@mrobinson mrobinson force-pushed the fix-root-scrolling-area branch 2 times, most recently from f72285c to 07b09ff Compare August 7, 2023 15:45
@mrobinson
Copy link
Member Author

@bors-servo try

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

🔨 Triggering try run (#5787185708) with platform=all and layout=all

@mrobinson
Copy link
Member Author

@bors-servo try

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

🔨 Triggering try run (#5787302817) with platform=all and layout=all

@mrobinson
Copy link
Member Author

@bors-servo try

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

🔨 Triggering try run (#5787603936) with platform=all and layout=all

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

⚠️ Try run (#5787603936) failed.

@github-actions
Copy link

github-actions bot commented Aug 8, 2023

🔨 Triggering try run (#5787603936) with platform=all and layout=all

@github-actions
Copy link

github-actions bot commented Aug 8, 2023

Test results for linux-wpt-layout-2020 from try job (#5787603936):

Flaky unexpected result (1)
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-001.html (#29215)
Stable unexpected results that are known to be intermittent (2)
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-016.xht (#22964)
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-001.xht (#22031)
Stable unexpected results (52)
  • FAIL [expected PASS] /_mozilla/css/percentage_height_root.html
  • FAIL [expected PASS] /_mozilla/css/root_margins_a.html
  • FAIL [expected PASS] /_mozilla/mozilla/fullscreen/reftests/fullscreen-baseline.html
  • FAIL [expected PASS] /css/CSS2/abspos/abspos-containing-block-initial-001.xht
  • FAIL [expected PASS] /css/CSS2/abspos/abspos-containing-block-initial-009a.xht
  • FAIL [expected PASS] /css/CSS2/abspos/abspos-containing-block-initial-009b.xht
  • FAIL [expected PASS] /css/CSS2/abspos/abspos-containing-block-initial-009f.xht
  • FAIL [expected PASS] /css/CSS2/box-display/containing-block-023.xht
  • FAIL [expected PASS] /css/CSS2/normal-flow/height-percentage-003.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-015.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-019.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-020.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-002.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-003.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-004.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-007.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-008.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-009.xht
  • FAIL [expected PASS] /css/CSS2/positioning/abspos-containing-block-010.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-001.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-002.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-003.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-004.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-005.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-006.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-007.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-009.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-012.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-013.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-014.xht
  • FAIL [expected PASS] /css/CSS2/positioning/bottom-applies-to-015.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-001.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-002.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-003.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-004.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-005.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-006.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-007.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-009.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-012.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-013.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-014.xht
  • FAIL [expected PASS] /css/CSS2/positioning/position-applies-to-015.xht
  • FAIL [expected PASS] /css/CSS2/visudet/height-percentage-004.xht
  • FAIL [expected PASS] /css/css-backgrounds/background-attachment-margin-root-001.html
  • FAIL [expected PASS] /css/css-backgrounds/background-margin-iframe-root.html
  • FAIL [expected PASS] /css/css-backgrounds/background-margin-root.html
  • FAIL [expected PASS] /css/css-backgrounds/background-margin-transformed-root.html
  • FAIL [expected PASS] /css/css-backgrounds/background-margin-will-change-root.html
  • PASS [expected FAIL] /css/css-position/position-absolute-under-non-containing-stacking-context.html
  • OK /css/css-position/positon-absolute-scrollable-overflow-001.html
    • FAIL [expected PASS] subtest: .containing-block 5 assert_equals:
      <div class="containing-block" data-expected-scroll-width="100" data-expected-scroll-height="100">
      <div class="abspos" style="left: -50px; height: 500px; top: -1000px;"></div>
      </div>
      scrollWidth expected 100 but got 150
    • FAIL [expected PASS] subtest: .containing-block 6 assert_equals:
      <div class="containing-block" data-expected-scroll-width="100" data-expected-scroll-height="100">
      <div class="abspos" style="left: 50px; height: 500px; top: -1000px;"></div>
      </div>
      scrollHeight expected 100 but got 1100
    • PASS [expected FAIL] subtest: .containing-block 7
    • FAIL [expected PASS] subtest: .containing-block 12 assert_equals:
      <div class="containing-block" data-expected-scroll-width="100" data-expected-scroll-height="100">
      <div class="abspos" style="width: 500px; left: -1000px; top: -50px;"></div>
      </div>
      scrollWidth expected 100 but got 1100
    • FAIL [expected PASS] subtest: .containing-block 13 assert_equals:
      <div class="containing-block" data-expected-scroll-width="100" data-expected-scroll-height="100">
      <div class="abspos" style="width: 500px; left: -1000px; top: 50px;"></div>
      </div>
      scrollWidth expected 100 but got 1100
    • PASS [expected FAIL] subtest: .containing-block 14
  • PASS [expected FAIL] /css/css-position/sticky/position-sticky-hyperlink.html

@github-actions
Copy link

github-actions bot commented Aug 8, 2023

Test results for linux-wpt-layout-2013 from try job (#5787603936):

Flaky unexpected result (14)
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/CSS2/linebox/inline-negative-margin-001.html (#23862)
    • FAIL [expected PASS] subtest: [data-expected-height] 1 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">1234 </span></inline-block>
      height expected 10 but got 20
    • FAIL [expected PASS] subtest: [data-expected-height] 2 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">123 </span></inline-block>
      height expected 10 but got 20
    • PASS [expected FAIL] subtest: [data-expected-height] 4
  • TIMEOUT [expected PASS] /css/CSS2/tables/border-collapse-dynamic-cell-002.xht
  • TIMEOUT [expected FAIL] /css/CSS2/text/white-space-applies-to-010.xht
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)
  • PASS [expected FAIL] /css/css-text/white-space/trailing-other-space-separators-break-spaces-004.html (#25875)
  • OK /css/cssom-view/offsetTopLeft-border-box.html (#24237)
    • FAIL [expected PASS] subtest: container: 0 assert_equals: offsetTop expected 2 but got 0
    • FAIL [expected PASS] subtest: container: 1 assert_equals: offsetTop expected 2 but got 0
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • PASS [expected FAIL] subtest: Smooth scrolling while doing history navigation.
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • ERROR [expected OK] /html/semantics/scripting-1/the-script-element/defer-script/async-script.html?reload (#29054)
  • ERROR [expected OK] /html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html
  • TIMEOUT [expected OK] /webmessaging/with-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank Test timed out
Stable unexpected results that are known to be intermittent (20)
  • OK [expected CRASH] /_webgl/conformance/context/context-release-with-workers.html (#22541)
  • TIMEOUT /fetch/metadata/generated/css-images.sub.tentative.html (#29047)
    • PASS [expected TIMEOUT] subtest: background-image sec-fetch-site - HTTPS downgrade (header not sent)
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html (#28207)
    • FAIL [expected TIMEOUT] subtest: CSP check precedes X-Frame-Options check assert_equals: expected (string) "csp-violation" but got (object) null
    • FAIL [expected NOTRUN] subtest: CSP check precedes COEP check - CSP header first assert_equals: expected (string) "csp-violation" but got (object) null
    • FAIL [expected NOTRUN] subtest: CSP check precedes COEP check - COEP header first assert_equals: expected (string) "csp-violation" but got (object) null
    • FAIL [expected NOTRUN] subtest: COEP check precedes X-Frame-Options check assert_equals: expected (string) "coep" but got (object) null
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • PASS [expected FAIL] subtest: 0080 00FF 0100 set in href="" targeting a frame and clicked
    • PASS [expected FAIL] subtest: D83D DE0D set in href="" targeting a frame and clicked
  • 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/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation assert_equals: expected "" but got "#fragment"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/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/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • FAIL [expected PASS] subtest: text/plain: Basic test (formdata event) assert_equals: expected "basic=test\r\n" but got ""
  • OK /html/semantics/forms/historical.html (#28568)
    • PASS [expected FAIL] subtest: <input name=isindex> should not be supported
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • OK [expected TIMEOUT] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
  • TIMEOUT [expected CRASH] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • TIMEOUT [expected OK] /webmessaging/without-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank Test timed out
  • ERROR [expected OK] /workers/constructors/Worker/Worker-constructor.html (#22991)

@github-actions
Copy link

github-actions bot commented Aug 8, 2023

⚠️ Try run (#5787603936) failed.

@mrobinson
Copy link
Member Author

@bors-servo try

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

🔨 Triggering try run (#5806668478) with platform=all and layout=all

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

Test results for linux-wpt-layout-2020 from try job (#5806668478):

Flaky unexpected result (2)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • TIMEOUT [expected PASS] /css/css-backgrounds/background-repeat/background-repeat-space.xht
Stable unexpected results (1)
  • PASS [expected FAIL] /css/css-position/sticky/position-sticky-hyperlink.html

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

Test results for linux-wpt-layout-2013 from try job (#5806668478):

Flaky unexpected result (16)
  • OK /_mozilla/css/stylesheet_media_queries.html (#17159)
    • FAIL [expected PASS] subtest: Media queries within stylesheets assert_equals: expected "rgb(0, 255, 0)" but got "rgb(255, 0, 0)"
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/CSS2/linebox/inline-negative-margin-001.html (#23862)
    • FAIL [expected PASS] subtest: [data-expected-height] 1 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">1234 </span></inline-block>
      height expected 10 but got 20
    • FAIL [expected PASS] subtest: [data-expected-height] 2 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">123 </span></inline-block>
      height expected 10 but got 20
    • PASS [expected FAIL] subtest: [data-expected-height] 4
  • TIMEOUT [expected FAIL] /css/css-backgrounds/box-shadow-042.html
  • OK /css/css-flexbox/text-as-flexitem-size-001.html (#28726)
    • FAIL [expected PASS] subtest: .flexbox > div 1 assert_equals:
      <div data-expected-width="70" data-expected-height="35">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 2 assert_equals:
      <div data-expected-width="50" data-expected-height="45">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 50 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 5 assert_equals:
      <div style="height: 30px" data-expected-width="70" data-expected-height="30">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 8 assert_equals:
      <div style="min-height: 40px" data-expected-width="70" data-expected-height="40">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
    • FAIL [expected PASS] subtest: .flexbox > div 11 assert_equals:
      <div style="max-height: 20px" data-expected-width="70" data-expected-height="20">
      <p>xx xxx</p>
      <p>xx</p>
      </div>
      width expected 70 but got 46
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • FAIL [expected PASS] subtest: Navigating to a different document with location.assign assert_equals: history.length must not change after normal navigation on initial empty document expected 1 but got 2
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation assert_equals: expected "" but got "#fragment"
  • OK /html/browsers/history/the-history-interface/traverse_the_history_3.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • 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/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
  • TIMEOUT [expected OK] /webmessaging/without-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank Test timed out
  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • TIMEOUT [expected PASS] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe Test timed out
  • ERROR [expected OK] /workers/constructors/Worker/Worker-constructor.html (#22991)
Stable unexpected results that are known to be intermittent (12)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • FAIL [expected TIMEOUT] subtest: Opening a blob URL in a new window immediately before revoking it works. assert_equals: expected (string) "test_frame_OK" but got (undefined) undefined
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • FAIL [expected PASS] subtest: Instant scrolling while doing history navigation. assert_equals: Shouldn't be scrolled back to top yet. expected 0 but got 18631
  • OK /fetch/private-network-access/worker-blob-fetch.tentative.window.html (#30064)
    • FAIL [expected PASS] subtest: private to private: success. assert_equals: fetch error expected (undefined) undefined but got (string) "unknown error"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • PASS [expected FAIL] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank'
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • TIMEOUT [expected PASS] subtest: no-referrer referrer policy used to create the starting page Test timed out
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • FAIL [expected PASS] subtest: D83D DE0D set in href="" targeting a frame and clicked assert_equals: expected "😍" but got ""
    • FAIL [expected PASS] subtest: DE0D 0041 set in href="" targeting a frame and clicked assert_equals: expected "\ufffdA" but got ""
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/nav-cancelation-2.sub.html (#29738)
    • FAIL [expected TIMEOUT] subtest: grandparent cancels a pending navigation in a cross-origin grandchild assert_false: Grandchild <iframe>'s load event does not fire before its parent's load event and grandparent's load event expected false got true
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • PASS [expected FAIL] subtest: createHTMLDocument
    • PASS [expected FAIL] subtest: <template>
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • FAIL [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load this.openedWindow.findLink is not a function
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html (#26371)
    • TIMEOUT [expected FAIL] subtest: delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire Test timed out
  • OK [expected TIMEOUT] /webmessaging/without-ports/018.html (#24485)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, javascript:

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

⚠️ Try run (#5806668478) failed.

@mrobinson mrobinson changed the title Fix scrolls on the window object from script Refactor scrolls on the window object Aug 10, 2023
@mrobinson
Copy link
Member Author

@bors-servo try

@github-actions
Copy link

🔨 Triggering try run (#5824060244) with platform=all and layout=all

@github-actions
Copy link

Test results for linux-wpt-layout-2020 from try job (#5824060244):

Flaky unexpected result (1)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
Stable unexpected results that are known to be intermittent (1)
  • OK /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • FAIL [expected PASS] subtest: listeners are called when <iframe> is resized assert_true: expected true got false
Stable unexpected results (3)
  • OK /css/css-position/sticky/position-sticky-scrolled-remove-sibling.html
    • PASS [expected FAIL] subtest: Sticky position and its overflow contribution in the vertical axis
  • OK /css/cssom-view/table-border-collapse-client-width-height.html
    • FAIL [expected PASS] subtest: Table's clientWidth/Height and OffsetWidth/Height should be the same assert_equals: expected 147 but got 146
  • OK /css/cssom-view/table-border-separate-client-width-height.html
    • FAIL [expected PASS] subtest: Table's clientWidth/Height and OffsetWidth/Height should be the same assert_equals: expected 147 but got 146

@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5824060244):

Flaky unexpected result (15)
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /css/CSS2/linebox/inline-negative-margin-001.html (#23862)
    • FAIL [expected PASS] subtest: [data-expected-height] 1 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">1234 </span></inline-block>
      height expected 10 but got 20
    • FAIL [expected PASS] subtest: [data-expected-height] 2 assert_equals:
      <inline-block data-expected-height="10">123 <span style="margin-left: -8ch">123 </span></inline-block>
      height expected 10 but got 20
    • PASS [expected FAIL] subtest: [data-expected-height] 4
  • TIMEOUT [expected PASS] /css/CSS2/syntax/eof-007.xht
  • TIMEOUT [expected PASS] /css/css-color/animation/opacity-animation-ending-correctly-001.html (#29215)
  • TIMEOUT [expected FAIL] /css/css-ui/box-sizing-011.html
  • OK /css/cssom-view/scroll-behavior-smooth-navigation.html (#29564)
    • FAIL [expected PASS] subtest: Instant scrolling while doing history navigation. assert_equals: Shouldn't be scrolled back to top yet. expected 0 but got 18631
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected FAIL] subtest: Navigating to a different document with link click Test timed out
    • NOTRUN [expected FAIL] subtest: Navigating to a different document with form submission
  • TIMEOUT [expected PASS] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html (#30063)
  • TIMEOUT [expected FAIL] /html/canvas/element/manual/text/canvas.2d.disconnected.html (#30063)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: 0x00 in name (formdata event)
  • TIMEOUT [expected OK] /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • NOTRUN [expected PASS] subtest: Check that rel=noopener with target=_self does a normal load
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
Stable unexpected results that are known to be intermittent (15)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • FAIL [expected TIMEOUT] subtest: Opening a blob URL in a new window immediately before revoking it works. assert_equals: expected (string) "test_frame_OK" but got (undefined) undefined
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /fetch/private-network-access/worker-blob-fetch.tentative.window.html (#30064)
    • FAIL [expected PASS] subtest: private to private: success. assert_equals: fetch error expected (undefined) undefined but got (string) "unknown error"
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • PASS [expected FAIL] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank'
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.html (#29081)
    • TIMEOUT [expected PASS] subtest: no-referrer referrer policy used to create the starting page Test timed out
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • PASS [expected FAIL] subtest: 0041 set in href="" targeting a frame and clicked
    • PASS [expected FAIL] subtest: 0080 00FF set in href="" targeting a frame and clicked
    • PASS [expected FAIL] subtest: 0080 00FF 0100 set in href="" targeting a frame and clicked
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/nav-cancelation-2.sub.html (#29738)
    • FAIL [expected TIMEOUT] subtest: grandparent cancels a pending navigation in a cross-origin grandchild assert_false: Grandchild <iframe>'s load event does not fire before its parent's load event and grandparent's load event expected false got true
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
    • PASS [expected FAIL] subtest: first argument: absolute url
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped Test timed out
    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • PASS [expected FAIL] subtest: createHTMLDocument
    • PASS [expected FAIL] subtest: <template>
  • OK [expected CRASH] /html/semantics/tabular-data/the-table-element/caption-methods.html (#14157, #14026)
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • ERROR [expected OK] /workers/constructors/Worker/Worker-constructor.html (#22991)

@github-actions
Copy link

⚠️ Try run (#5824060244) failed.

@mrobinson
Copy link
Member Author

@bors-servo try=wpt-2020

@github-actions
Copy link

🔨 Triggering try run (#5830627435) with platform=linux and layout=2020

@github-actions
Copy link

Test results for linux-wpt-layout-2020 from try job (#5830627435):

Flaky unexpected result (2)
  • FAIL [expected PASS] /_mozilla/css/dirty_viewport.html (#13731)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false

@github-actions
Copy link

✨ Try run (#5830627435) succeeded.

@mrobinson mrobinson marked this pull request as ready for review August 11, 2023 09:20
@mrobinson mrobinson changed the title Refactor scrolls on the window object Refactor scrolling on the window object Aug 11, 2023
pub fn scrolling_area(&self, containing_block: &PhysicalRect<Length>) -> PhysicalRect<Length> {
match self {
Fragment::Box(fragment) | Fragment::Float(fragment) => fragment
.scrollable_overflow(&containing_block)
Copy link
Member

Choose a reason for hiding this comment

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

Do we need to re-borrow containing_block here? fn scrollable_overflow takes a &PhysicalRect, so I think we should be able to pass containing_block directly?

Copy link
Member Author

Choose a reason for hiding this comment

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

Nope. You're right. I've removed this.

Copy link
Member

@mukilan mukilan left a comment

Choose a reason for hiding this comment

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

Nice!

Refactor the scrolling and scrollable area calculation on the window
object, to make it better match the specification. This has some mild
changes to behavior, but in general things work the same as they did
before. This is mainly preparation for properly handling viewport
propagation of the `overflow` property but seems to fix a few issues as
well.

There is one new failure in Layout 2020 regarding `position: sticky`,
but this isn't a big deal because there is no support for `position:
sticky` in Layout 2020 yet.

Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
@mrobinson
Copy link
Member Author

Thanks for the review!

@mrobinson mrobinson added this pull request to the merge queue Sep 15, 2023
Merged via the queue into servo:master with commit abca586 Sep 15, 2023
10 checks passed
@mrobinson mrobinson deleted the fix-root-scrolling-area branch September 15, 2023 12:11
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.

Intermittent failure in /_mozilla/mozilla/scrollBy.html
3 participants