[carousel] Implement scroll-marker-contain property logic This CL adds logic to collect html anchor element to scroll-marker-contain containers to support scroll tracking to determine the active one. When we detect any element with scroll-marker-contain property we mark Document that it needs to do an extra pass to collect all scroll-marker-contain elements and corresponding anchor elements. After that collection we subscribe each scroll-marker-contain element's ScrollMarkerGroupData to each scroller that owns any of group's scroll targets (e.g. scroll marker is <a href="#target"> then scroll target is some element with id="target" and scroller is closest ancestor scroller of scroll target). This way scrollers will notify scroll marker groups of any scrolls so that we need to do scroll tracking of active (:target-current) scroll marker. This CL also lacks some invalidation logic and invalidation tests, those will be added together in following CLs. Bug: 398065922 Change-Id: I9eaa5f6bf0ffb62dded2f45b509964c161f70408 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6357113 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1435932}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.