diff --git a/source b/source index 479bb9636ff..993ecb58413 100644 --- a/source +++ b/source @@ -3909,6 +3909,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • The 'overflow' property and its 'hidden' value
  • The 'text-overflow' property
  • The term scroll container +
  • The term initial scroll position +
  • The term scrollable overflow rectangle

    The following terms and features are defined in CSS Positioned Layout: @@ -4061,6 +4063,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

  • The scrollend event
  • set up browsing context features
  • The clientX and clientY extension attributes of the MouseEvent interface
  • +
  • The term perform a scroll
  • +
  • The term scrolling box
  • The following features and terms are defined in CSS Syntax: @@ -104568,6 +104572,9 @@ location.href = '#foo';

    If documentIsNew is true, then:

      +
    1. Update the initial scroll positions for scroll containers in + document.

    2. +
    3. Try to scroll to the fragment for document.

    4. At this point scripts may run for the newly-created document @@ -104700,6 +104707,8 @@ location.href = '#foo';

    +
    +

    To try to scroll to the fragment for a Document document, perform the following steps in parallel:

    @@ -104725,6 +104734,65 @@ location.href = '#foo'; +

    To update the initial scroll positions for scroll containers in a + Document document:

    + +
      +
    1. Let scrollers be the list obtained by performing a + tree order traversal of document's flat tree, and filtering + to keep only the elements that establish a scrolling box.

    2. + +
    3. +

      For each scroller of scrollers:

      + +
        +
      1. Update the initial scroll position for scroller.

      2. +
      +
    4. +
    + +

    To update the initial scroll position for an element scroller, perform + the following steps in parallel:

    + +
      +
    1. Wait for an implementation-defined amount of time. (This is intended to allow + the user agent to optimize the user experience in the face of performance concerns.)

    2. + +
    3. +

      Queue a global task on the navigation and traversal task source + given document's relevant global object to run these steps:

      + +
        +
      1. If the user agent has reason to believe the user is no longer interested in scrolling to + the initial scroll position of the + scrollable overflow rectangle of scroller's scrolling box, + then abort these steps.

      2. + +
      3. Let position be the initial scroll + position of the scrollable overflow rectangle of scroller's + scrolling box.

      4. + +
      5. Perform a scroll of scroller's scrolling box to position, with scroller as + the associated element.

      6. + +
      7. Update the initial scroll position for scroller.

      8. +
      +
    4. +
    + +

    Although try to scroll to the fragment and update the initial + scroll positions for scroll containers take place at the same point, and both use a polling + system to prediodically re-attempt the scrolling, their goals are different. Try to scroll + to the fragment polls repeatedly until the indicated part is found since it + might take a while for the element to show up during the document load. Update the initial + scroll positions for scroll containers does not have such a finish condition; it can run + indefinitely, as long as the user does not indicate disinterest. This is necessary to achieve the + desired behavior of keeping a scroll container anchored to the position indicated by + CSS properties that determine the initial scroll position.

    + +
    +

    To make document unsalvageable, given a Document document and a string reason:

    @@ -146275,6 +146343,7 @@ INSERT INTERFACES HERE Dave Singer, Dave Tapuska, Dave Townsend, + David Awogbemila, David Baron, David Bloom, David Bokan,