From 29a66440da4f2f91ca6c77f8915c10915e61f38b Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Fri, 19 May 2023 12:35:31 -0400 Subject: [PATCH 1/9] Update RO loop to include content-visibility --- source | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/source b/source index f5417730b87..7ef5dc2dfd3 100644 --- a/source +++ b/source @@ -101818,33 +101818,49 @@ import "https://example.com/foo/../module2.mjs"; docs:

    -
  1. Recalculate styles and update layout for doc.

  2. +
  3. Let resize observer depth be 0.

  4. -
  5. Let depth be 0.

  6. +
  7. While true:

    -
  8. Gather active resize observations at depth depth for - doc.

  9. +
      +
    1. Recalculate styles and update layout for doc.

    2. -
    3. -

      While doc has active resize observations:

      +
    4. If there are elements with content-visibility + used value of auto whose viewport proximity has not been + previously determined for the purposes of being + relevant to the user.: -

        -
      1. Set depth to the result of - broadcasting active resize - observations given doc.

      2. +
          +
        1. Synchronously determine viewport proximity of all such elements.

        2. -
        3. Recalculate styles and update layout for doc.

        4. +
        5. If any such determination resulted in an element being relevant to the user, continue.

        6. +
        + -
      3. Gather active resize observations at depth depth for +

      4. Gather active resize observations at depth resize observer depth for doc.

      5. + +
      6. If doc has active resize observations:

        + +
          +
        1. Set resize observer depth to the result of + broadcasting active resize + observations given doc.

        2. + +
        3. continue

        4. +
        +
      7. + +
      8. break

      -
    5. + -
    6. If doc has skipped resize observations, then deliver - resize loop error given doc.

    7. -
    +
  10. If doc has skipped resize observations, then deliver + resize loop error given doc.

  11. +
+
  • For each fully active Document in docs, if the focused area of that Document is From bd8fb54daadffce90a374278c0714d95d4f23fc7 Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Tue, 23 May 2023 12:39:00 -0400 Subject: [PATCH 2/9] review feedback --- source | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/source b/source index 7ef5dc2dfd3..ba4c60a232a 100644 --- a/source +++ b/source @@ -101818,40 +101818,41 @@ import "https://example.com/foo/../module2.mjs"; docs:

      -
    1. Let resize observer depth be 0.

    2. +
    3. Let resizeObserverDepth be 0.

    4. -
    5. While true:

      +
    6. +

      While true:

      1. Recalculate styles and update layout for doc.

      2. -
      3. If there are elements with content-visibility - used value of auto whose viewport proximity has not been - previously determined for the purposes of being +

      4. If there are elements with 'content-visibility' used value of + 'auto' whose viewport proximity has not been previously determined for + the purposes of being relevant to the user.:

          -
        1. Synchronously determine viewport proximity of all such elements.

        2. +
        3. Determine viewport proximity of all such elements.

        4. -
        5. If any such determination resulted in an element being relevant to the user, continue.

        6. +
        7. If any such determination resulted in an element being relevant to the user, continue.

      5. -
      6. Gather active resize observations at depth resize observer depth for +

      7. Gather active resize observations at depth resizeObserverDepth for doc.

      8. If doc has active resize observations:

          -
        1. Set resize observer depth to the result of +

        2. Set resizeObserverDepth to the result of broadcasting active resize observations given doc.

        3. -
        4. continue

        5. +
        6. continue
      9. -
      10. break

      11. +
      12. break
    7. From 2f06bd15b243280f10fa32c65abfc1040a34a08d Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Wed, 24 May 2023 12:22:52 -0400 Subject: [PATCH 3/9] update formatting --- source | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/source b/source index ba4c60a232a..69170fbe9f0 100644 --- a/source +++ b/source @@ -101831,11 +101831,11 @@ import "https://example.com/foo/../module2.mjs"; the purposes of being relevant to the user.: -
        -
      1. Determine viewport proximity of all such elements.

      2. +
          +
        1. Determine viewport proximity of all such elements.

        2. -
        3. If any such determination resulted in an element being relevant to the user, continue.

        4. -
        +
      3. If any such determination resulted in an element being relevant to the user, continue.

      4. +
    8. Gather active resize observations at depth resizeObserverDepth for @@ -101843,25 +101843,24 @@ import "https://example.com/foo/../module2.mjs";

    9. If doc has active resize observations:

      -
        -
      1. Set resizeObserverDepth to the result of - broadcasting active resize - observations given doc.

      2. +
          +
        1. Set resizeObserverDepth to the result of + broadcasting active resize + observations given doc.

        2. -
        3. continue
        4. -
        +
      3. continue
      4. +
    10. break
    -
  • + -
  • If doc has skipped resize observations, then deliver - resize loop error given doc.

  • - +
  • If doc has skipped resize observations, then deliver + resize loop error given doc.

  • + -
  • For each fully active Document in docs, if the focused area of that Document is From 7514d0d00d51f874a0ec8629b27535cc8450b43c Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Wed, 28 Jun 2023 13:18:05 -0400 Subject: [PATCH 4/9] update --- source | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source b/source index 69170fbe9f0..80a1e588d31 100644 --- a/source +++ b/source @@ -101826,15 +101826,15 @@ import "https://example.com/foo/../module2.mjs";

    1. Recalculate styles and update layout for doc.

    2. -
    3. If there are elements with 'content-visibility' used value of - 'auto' whose viewport proximity has not been previously determined for +

    4. If there are elements with 'auto' computed value of 'content-visibility' + whose viewport proximity has not been previously determined for the purposes of being - relevant to the user.: + relevant to the user:

      1. Determine viewport proximity of all such elements.

      2. -
      3. If any such determination resulted in an element being relevant to the user, continue.

      4. +
      5. If any such determination resulted in an element being relevant to the user, Continue.

    5. @@ -101848,11 +101848,11 @@ import "https://example.com/foo/../module2.mjs"; broadcasting active resize observations given doc.

      -
    6. continue
    7. +
    8. Continue.
  • -
  • break
  • +
  • Otherwise, Break.
  • From 443303b8926de483f0adeadd20de90eb3b80e1ab Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Fri, 14 Jul 2023 13:42:59 -0400 Subject: [PATCH 5/9] update --- source | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/source b/source index 80a1e588d31..4b94d4d7640 100644 --- a/source +++ b/source @@ -4045,6 +4045,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute @@ -101826,18 +101828,30 @@ import "https://example.com/foo/../module2.mjs";
    1. Recalculate styles and update layout for doc.

    2. -
    3. If there are elements with 'auto' computed value of 'content-visibility' - whose viewport proximity has not been previously determined for - the purposes of being - relevant to the user: +

    4. Let hadInitialVisibleContentVisibilityDetermination be false.

    5. +
    6. For each element with 'auto' used value of 'content-visibility':

        -
      1. Determine viewport proximity of all such elements.

      2. +
      3. Determine proximity to the viewport for the element.

      4. -
      5. If any such determination resulted in an element being relevant to the user, Continue.

      6. +
      7. If prior to this determination, the element's proximity + to the viewport was not determined and it was not relevant + to the user and now the element is relevant to the + user, set + hadInitialVisibleContentVisibilityDetermination to true.

    7. +
    8. If hadInitialVisibleContentVisibilityDetermination is true, Continue. + +

      + The intent of this step is for the initial viewport proximity + determination, which takes effect immediately, to be reflected in the + style and layout calculation which is carried out in a previous step + of this loop. Proximity determinations other than the initial one + take effect at the next rendering opportunity. +
      +
    9. Gather active resize observations at depth resizeObserverDepth for doc.

    10. From 4b544ffb80be716c8895d76cd456bd86af964688 Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Wed, 19 Jul 2023 19:51:08 -0400 Subject: [PATCH 6/9] update --- source | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/source b/source index 4b94d4d7640..83f5bbaf4b8 100644 --- a/source +++ b/source @@ -101834,11 +101834,18 @@ import "https://example.com/foo/../module2.mjs";
      1. Determine proximity to the viewport for the element.

      2. -
      3. If prior to this determination, the element's proximity - to the viewport was not determined and it was not relevant - to the user and now the element is relevant to the - user, set - hadInitialVisibleContentVisibilityDetermination to true. +

      4. If the element is now relevant to the user:

        +
          +
        • +

          If prior to this determination, the element's proximity + to the viewport was not determined and it was not relevant + to the user:

          +
            +
          • Set hadInitialVisibleContentVisibilityDetermination to true.

          • +
          +
        • +
        +
      From 094c5741e2067967cfa9a2ad5961a96515249024 Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Mon, 24 Jul 2023 15:26:23 -0400 Subject: [PATCH 7/9] update --- source | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/source b/source index 83f5bbaf4b8..214ed4603c3 100644 --- a/source +++ b/source @@ -101832,20 +101832,14 @@ import "https://example.com/foo/../module2.mjs";
    11. For each element with 'auto' used value of 'content-visibility':

        +
      1. Let checkForInitialDetermination be true if the element's + proximity to the viewport is not determined and it is not relevant to the user. + Otherwise, let checkForInitialDetermination be false.

      2. +
      3. Determine proximity to the viewport for the element.

      4. -
      5. If the element is now relevant to the user:

        -
          -
        • -

          If prior to this determination, the element's proximity - to the viewport was not determined and it was not relevant - to the user:

          -
            -
          • Set hadInitialVisibleContentVisibilityDetermination to true.

          • -
          -
        • -
        -
      6. +
      7. If checkForInitialDetermination is true and the element is now relevant to the user, + then set hadInitialVisibleContentVisibilityDetermination to true.

    12. From fd6f27dce79ee7a466522a20641aba08adbd4990 Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Tue, 25 Jul 2023 14:03:14 -0400 Subject: [PATCH 8/9] var --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index 214ed4603c3..3f43fe46746 100644 --- a/source +++ b/source @@ -101839,7 +101839,7 @@ import "https://example.com/foo/../module2.mjs";
    13. Determine proximity to the viewport for the element.

    14. If checkForInitialDetermination is true and the element is now relevant to the user, - then set hadInitialVisibleContentVisibilityDetermination to true.

    15. + then set hadInitialVisibleContentVisibilityDetermination to true.

    From bc71e61c80eb1a221973a07995d6aedd2534fddf Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Wed, 26 Jul 2023 12:01:19 -0400 Subject: [PATCH 9/9] review --- source | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/source b/source index 3f43fe46746..f2a2180be1c 100644 --- a/source +++ b/source @@ -4047,8 +4047,9 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • skips its contents
  • relevant to the user
  • proximity to the viewport
  • -
  • layout - containment
  • +
  • layout containment
  • +
  • 'content-visibility' property
  • +
  • 'auto' value for 'content-visibility'
  • @@ -101830,28 +101831,29 @@ import "https://example.com/foo/../module2.mjs";
  • Let hadInitialVisibleContentVisibilityDetermination be false.

  • -
  • For each element with 'auto' used value of 'content-visibility': +

  • For each element element with 'auto' used value of 'content-visibility':

      -
    1. Let checkForInitialDetermination be true if the element's +

    2. Let checkForInitialDetermination be true if element's proximity to the viewport is not determined and it is not relevant to the user. Otherwise, let checkForInitialDetermination be false.

    3. -
    4. Determine proximity to the viewport for the element.

    5. +
    6. Determine proximity to the viewport for element.

    7. -
    8. If checkForInitialDetermination is true and the element is now relevant to the user, +

    9. If checkForInitialDetermination is true and element is now relevant to the user, then set hadInitialVisibleContentVisibilityDetermination to true.

  • -
  • If hadInitialVisibleContentVisibilityDetermination is true, Continue. +

  • If hadInitialVisibleContentVisibilityDetermination is true, then continue.

    -
    - The intent of this step is for the initial viewport proximity - determination, which takes effect immediately, to be reflected in the - style and layout calculation which is carried out in a previous step - of this loop. Proximity determinations other than the initial one - take effect at the next rendering opportunity. -
    +
    + The intent of this step is for the initial viewport proximity + determination, which takes effect immediately, to be reflected in the + style and layout calculation which is carried out in a previous step + of this loop. Proximity determinations other than the initial one + take effect at the next rendering opportunity. +
    +
  • Gather active resize observations at depth resizeObserverDepth for doc.

  • @@ -101867,7 +101869,7 @@ import "https://example.com/foo/../module2.mjs"; -
  • Otherwise, Break.
  • +
  • Otherwise, break.