From e43abf14662f6e2ed2cc91d87e758f3d1523f801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Tue, 4 Oct 2022 08:09:00 +0200 Subject: [PATCH] Integrate Resize Observer and expand "update the rendering" This includes upstreaming the monkeypatch from the Resize Observer specification, which adds more detail to the "update the rendering" steps to include an explicit "Recalculate styles and update layout" step. This enables us to be clear that intersection observer integration and marking paint timing happens after that step. Fixes #8277. --- source | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/source b/source index 736eb813282..5842cf8ff8b 100644 --- a/source +++ b/source @@ -3983,6 +3983,20 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute +
Resize Observer
+ +
+

The following terms are defined in Resize Observer:

+ + +
+
WebGL
@@ -95922,12 +95936,45 @@ import "https://example.com/foo/../module2.mjs"; the animation frame callbacks for that Document, passing in now as the timestamp.

+
  • +

    For each fully active Document doc in + docs:

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

    2. + +
    3. Let depth be 0.

    4. + +
    5. Gather active resize observations at depth depth for + doc.

    6. + +
    7. +

      While doc has active resize observations:

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

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

      4. + +
      5. Gather active resize observations at depth depth for + doc.

      6. +
      +
    8. + +
    9. If doc has skipped resize observations, then deliver + resize loop error given doc.

    10. +
    +
  • +
  • For each fully active Document in docs, run the update intersection observations steps for that Document, passing in now as the timestamp.

  • Invoke the mark paint timing algorithm for each Document object in docs.

  • +
  • For each fully active Document in docs, update the rendering or user interface of that Document and its [INTERSECTIONOBSERVER]

    Intersection Observer, S. Zager. W3C.
    +
    [RESIZEOBSERVER]
    +
    Resize Observer, O. Brufau, E. Álvarez. W3C.
    +
    [ISO3166]
    ISO 3166: Codes for the representation of names of countries and their subdivisions. ISO.