LGTM1

On Friday, August 16, 2024 at 6:31:10 AM UTC-7 Rune Lillesveen wrote:

> Contact emailsfuth...@chromium.org
>
> ExplainerNone
>
> Specificationhttps://drafts.csswg.org/css-conditional-5/#container-queries
> Landed PR: https://github.com/w3c/csswg-drafts/pull/10701
>
> Summary
>
> Look up query containers in the flat tree ancestor order instead of 
> shadow-including order. The specification for container queries changed to 
> look up flat tree ancestors. This change is only relevant for shadow DOM 
> where an element will now be able to see non-named containers inside shadow 
> trees into which the element or one of its ancestors are slotted, even if 
> the CSS rule does not use ::part() or ::slotted(). 
>
>
> The existing implementation for container units was somewhat broken in the 
> sense that container unit lengths would find a container based on the 
> styled element's tree scope instead of the rule's tree scope. That meant 
> you can end up with container units inside container queries that did not 
> use the same container as a basis for such sizes.
>
>
> Example: padding-left and padding-right would be based on the same 
> container here (the #host), even if their @container queries would match 
> different containers:
>
>
> <!DOCTYPE html>
> <style>
> #host {
> container-type: inline-size;
> width: 200px;
> }
> @container (width = 200px) {
> #slotted {
> padding-left: 10cqw;
> color: lime;
> }
> }
> </style>
> <div id="host">
> <template shadowrootmode="open">
> <style>
> #container {
> container-type: inline-size;
> width: 100px;
> }
> @container (width = 100px) {
> ::slotted(#slotted) {
> padding-right: 10cqw;
> background-color: green;
> }
> }
> </style>
> <div id="container">
> <slot></slot>
> </div>
> </template>
> <div id="slotted">Slotted</div>
> </div>
>
>
> With the flat tree order container lookup, these rules for the slotted 
> element will try to match the same container, and the units relative to 
> that same container as well.
>
> Blink componentBlink>CSS 
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>
>
> TAG reviewNone
>
> TAG review statusNot applicable
>
> Risks
>
>
> Interoperability and Compatibility
>
> Interoperability: Firefox shipped with an implementation matching the 
> current spec for ancestor lookup from the start. This is aligning with 
> their implementation. The signal from Safari is positive. Compatibility 
> risks: Mainly that lookup of non-named containers for slotted element 
> subtrees can now start matching containers in the shadow tree they are 
> slotted into. For named containers, matching tree scoped references will 
> make sure it is kept close to the current behavior. Attempting to create a 
> use counter for this change has failed to be done in a performant manner 
> without slightly changing the existing behavior. According to Firefox they 
> have not seen issues with their implementation, which indicates a lower 
> risk. 
>
>
> *Gecko*: Shipped/Shipping
>
> *WebKit*: Support (
> https://github.com/WebKit/standards-positions/issues/382)
>
> *Web developers*: No signals
>
> *Other signals*:
>
> WebView application risks
>
> Does this intent deprecate or change behavior of existing APIs, such that 
> it has potentially high risk for Android WebView-based applications?
>
> None
>
>
> Debuggability
>
> The container lookup in devtools uses the same functionality as the 
> engine. Confirmed that the container lookup in the styles pane matches the 
> new behavior with the flag enabled. 
>
>
> Will this feature be supported on all six Blink platforms (Windows, Mac, 
> Linux, ChromeOS, Android, and Android WebView)?Yes
>
> Is this feature fully tested by web-platform-tests 
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> ?Yes
>
>
> https://wpt.fyi/results/css/css-conditional/container-queries/container-for-shadow-dom.html
>  
> https://wpt.fyi/results/css/css-conditional/container-queries/container-units-shadow.html
>  
> https://wpt.fyi/results/css/css-conditional/container-queries/style-container-for-shadow-dom.html
>  
>
>
> Flag name on chrome://flagsCSSFlatTreeContainer
>
> Finch feature nameGenerated from CSSFlatTreeContainer in 
> runtime_enabled_features.json5
>
> Requires code in //chrome?False
>
> Tracking bughttps://crbug.com/340876720
>
> Estimated milestones
> Shipping on desktop 130
> DevTrial on desktop 128
> Shipping on Android 130
> DevTrial on Android 128
> Shipping on WebView 130
>
> Anticipated spec changes
>
> Open questions about a feature may be a source of future web compat or 
> interop issues. Please list open issues (e.g. links to known github issues 
> in the project for the feature specification) whose resolution may 
> introduce web compat/interop risk (e.g., changing to naming or structure of 
> the API in a non-backward-compatible way).
> None
>
> Link to entry on the Chrome Platform Status
> https://chromestatus.com/feature/5242724333387776?gate=6649713206755328
>
> This intent message was generated by Chrome Platform Status 
> <https://chromestatus.com/>.
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b9934804-5883-4c55-b38b-b26e48f79753n%40chromium.org.

Reply via email to