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