Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b8c6566d556809935878157344ab89bedf59279d
      
https://github.com/WebKit/WebKit/commit/b8c6566d556809935878157344ab89bedf59279d
  Author: Rob Buis <[email protected]>
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-first-observation-immediate-expected.txt
    M Source/WebCore/dom/ContentVisibilityDocumentState.cpp
    M Source/WebCore/dom/ContentVisibilityDocumentState.h
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/Element.h

  Log Message:
  -----------
  [content-visibility] Implement initial visibility determination
https://bugs.webkit.org/show_bug.cgi?id=259825

Reviewed by Tim Nguyen.

Implement initial visibility determination as specified in [1].
This replaces the custom onscreen bookkeeping with the specified
proximity to viewport concept. The updateIntersectionObservations
logic is refactored a bit so it can be used for updating any given
collection of intersection observers.

This PR also changed behaviour to not dispatch ContentVisibilityAutoStateChange
on disconnected elements, this problem is now exposed with the different timing
of initial visibility determination.

[1] https://github.com/whatwg/html/pull/9312

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-first-observation-immediate-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-first-observation-immediate.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-012-expected.txt:
* Source/WebCore/dom/ContentVisibilityDocumentState.cpp:
(WebCore::ContentVisibilityDocumentState::unobserve):
(WebCore::ContentVisibilityDocumentState::checkRelevancyOfContentVisibilityElement
 const): extract per element content relevancy check logic
(WebCore::ContentVisibilityDocumentState::updateRelevancyOfContentVisibilityElements
 const): bail out early if no update is specified
(WebCore::ContentVisibilityDocumentState::determineInitialVisibleContentVisibility
 const):
(WebCore::ContentVisibilityDocumentState::updateContentRelevancyStatusForScrollIfNeeded):
(WebCore::ContentVisibilityDocumentState::updateViewportProximity): keep track 
of per element viewport proximity
(WebCore::ContentVisibilityDocumentState::removeViewportProximity):
(WebCore::ContentVisibilityDocumentState::updateRelevancyOfContentVisibilityElements):
 Deleted.
(WebCore::ContentVisibilityDocumentState::updateOnScreenObservationTarget): 
Deleted.
* Source/WebCore/dom/ContentVisibilityDocumentState.h:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::updateIntersectionObservations): allow specifying the 
intersection observers
(WebCore::Document::updateResizeObservations): integrate according to [1]
* Source/WebCore/dom/Document.h:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::contentVisibilityViewportChange): Deleted.
* Source/WebCore/dom/Element.h:

Canonical link: https://commits.webkit.org/267779@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to