LGTM3

On Wednesday, November 8, 2023 at 4:18:59 PM UTC+1 Daniel Bratell wrote:

> LGTM2
>
> You may want to ping the Mozilla standards position issue and let them 
> know that we are close to shipping. It looks like they forgotten it.
>
> /Daniel
> On 2023-11-06 16:43, Mike Taylor wrote:
>
> Thanks for the detailed explanation of compat and for filing a TAG review. 
> The risk of breakage seems low (and I suppose we'll learn how true that is 
> as the change rides the trains), and breakage in this case would just be 
> cosmetic (unless someone is doing something really clever).
>
> LGTM1 to ship. Good luck. :)
> On 11/3/23 12:19 PM, Stephen Chenney wrote:
>
> Note that I have moved the shipping milestone to M121, and have created a 
> TAG review issue.
>
> On Thu, Nov 2, 2023 at 10:07 AM Stephen Chenney <schen...@chromium.org> 
> wrote:
>
>>
>>
>> On Wed, Nov 1, 2023 at 11:11 AM Stephen Chenney <schen...@chromium.org> 
>> wrote:
>>
>>> Answers inline. Regarding Ander's comment on the current base_feature 
>>> setting: I'll fix that.
>>>
>>> Cheers,
>>> Stephen.
>>>
>>> On Wed, Nov 1, 2023 at 4:17 AM Yoav Weiss <yoavwe...@chromium.org> 
>>> wrote:
>>>
>>>>
>>>>
>>>> On Tue, Oct 31, 2023 at 1:45 PM Stephen Chenney <schen...@chromium.org> 
>>>> wrote:
>>>>
>>>>> Contact emails schen...@chromium.org
>>>>>
>>>>> Specification https://drafts.csswg.org/css-pseudo-4/#highlight-cascade
>>>>>
>>>>> Summary 
>>>>>
>>>>> With CSS Highlight Inheritance, the CSS Highlight pseudo classes, such 
>>>>> as ::selection and ::highlight, inherit their properties through the 
>>>>> pseudo 
>>>>> highlight chain, rather than the element chain. The result is a more 
>>>>> intuitive model for inheritance of properties in highlights. 
>>>>> Specifically, 
>>>>> "When any supported property is not given a value by the cascade ... its 
>>>>> specified value is determined by inheritance from the corresponding 
>>>>> highlight pseudo-element of its originating element’s parent element." (
>>>>> https://drafts.csswg.org/css-pseudo-4/#highlight-cascade)
>>>>>
>>>>>
>>>>> Blink component Blink>CSS 
>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>
>>>>>
>>>>> TAG review None
>>>>>
>>>>
>>>> Features are exempt from a TAG review only when another vendor has 
>>>> already shipped them. That doesn't seem to be the case here.
>>>>
>>>
>>> The feature is in the CSS pseudos spec and has been for quite a 
>>> while. The CSS Working Group has been discussing issues too and Safari, at 
>>> least, is implementing according to the spec. I think the ship has sailed 
>>> for any major revision to the behavior. (For context, there was no feature 
>>> defined for this change until recently because it was originally viewed as 
>>> a "make the code implement the spec" change.)
>>>
>>
> TAG Review Issue: https://github.com/w3ctag/design-reviews/issues/914
>  
>
>>
>>>
>>>>
>>>>>
>>>>> TAG review status Not applicable
>>>>>
>>>>> Risks 
>>>>>
>>>>>
>>>>> Interoperability and Compatibility 
>>>>>
>>>>> The feature is still under implementation in other browser engines, 
>>>>> but the standards are well developed and there is general agreement on 
>>>>> the 
>>>>> spec. I think compat risk is very limited at this time.
>>>>>
>>>>
>>>> Does this feature change the behavior of existing uses of ::highlight 
>>>> and ::selection? Is there risk from breakage there?
>>>>
>>>
>>> The change aligns the behavior of ::selection with Firefox. ::highlight 
>>> is already implemented with this behavior. There was breakage of 
>>> ::selection due to custom property handling, which was resolved at the spec 
>>> level and fixed in chromium before sending this intent. No other bugs have 
>>> come in over the extended period that this has been on for experimental web 
>>> platform features (since M111).
>>>
>>
>> My above comment is wrong: The spec defining this feature does change the 
>> behavior of ::selection (not ::highlight) for all browsers. But evidence 
>> suggests that the mitigations that sites used to work around the old 
>> behavior still work with the new behavior, so breakage is very limited. 
>> There was a single source of significant breakage when the feature was 
>> first turned on and the spec and code have been changed to maintain the 
>> former behavior (related to custom properties on root applying to 
>> ::selection). We have had zero other reported bugs from enabling the 
>> feature experimentally.
>>
>> Some history ... The spec was changed in response to an issue where 
>> Firefox wanted to un-prefix -moz-selection but was not obeying the old 
>> spec. As I understand it, the selection style was checking for ::selection 
>> on the selected element, using it if found, otherwise using the root 
>> selection styling. All browsers were doing this.
>>
>> Sites were designed to work around this through the judicious use of 
>> ::selection on various elements. That is, put ::selection on anything you 
>> wanted a specified selection on, and if the inheritance was wrong, add a 
>> more specific ::selection selector. Hence the heavy use of custom 
>> properties to keep all these ::selection declarations in sync. You can see 
>> this, for example, on GitHub where they define ::selection for an element, 
>> element > span, and element > span > span, and again for light and dark 
>> mode. Sass even has an operator with a comment on it saying they would 
>> remove it if the spec is fixed.
>>
>> This intent to ship does not break sites that have taken this approach. 
>> Specific selectors for ::selection will resolve to the same properties as 
>> they do now. The improvement is that "element > span::selection" and 
>> "element > span > span::selection" can now be removed in favor of just 
>> "element::selection".
>>  
>>
>>>
>>>
>>>>> *Gecko*: Neutral (
>>>>> https://github.com/mozilla/standards-positions/issues/548) emilio@ is 
>>>>> active in standards discussions on the issues, but I am not aware of 
>>>>> implementation. https://bugzilla.mozilla.org/show_bug.cgi?id=1703963 
>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1703961
>>>>>
>>>>> *WebKit*: In development (
>>>>> https://github.com/WebKit/standards-positions/issues/95) I have a 
>>>>> private email from the Apple engineer tasked with implementing. I don't 
>>>>> want to reveal PI.
>>>>>
>>>>> *Web developers*: Developer ergonomics is the primary concern 
>>>>> motivating highlight inheritance. See 
>>>>> https://github.com/w3c/csswg-drafts/issues/2474 for the initial spec 
>>>>> discussion related to the behavior of ::selection. See 
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1490471 for an 
>>>>> example of a user seeing unexpected behavior without this feature.
>>>>>
>>>>> *Other signals*:
>>>>>
>>>>> Ergonomics 
>>>>>
>>>>> None.
>>>>>
>>>>>
>>>>> Activation 
>>>>>
>>>>> No. This reflects the already active behavior for ::selection in 
>>>>> Firefox and the already used behavior for ::highlight, ::spelling and 
>>>>> ::grammar.
>>>>>
>>>>>
>>>>> Security 
>>>>>
>>>>> There are no security risks.
>>>>>
>>>>>
>>>>> WebView application risks 
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> Debuggability 
>>>>>
>>>>> Devtools supports highlight pseudos and correctly shows the 
>>>>> inheritance chain.
>>>>>
>>>>>
>>>>> Will this feature be supported on all six Blink platforms (Windows, 
>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)? Yes 
>>>>>
>>>>> There are no cross-platform issues with implementation and no reason 
>>>>> to discriminate on platform.
>>>>>
>>>>>
>>>>> 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-pseudo?label=experimental&label=master&aligned
>>>>>  
>>>>> highlight-cascade-* covers this functionality. There are additional WPT 
>>>>> that make use of the feature in 
>>>>> https://wpt.fyi/results/css/css-highlight-api?label=experimental&label=master&aligned
>>>>>
>>>>>
>>>>> Flag name on chrome://flags experimental-web-platform-features
>>>>>
>>>>> Finch feature name HighlightInheritance
>>>>>
>>>>> Non-finch justification 
>>>>>
>>>>> The feature was enabled as experimental way back in M111 and stayed 
>>>>> that way until M116 when it was switched back to test, and it is back on 
>>>>> experimental for M118. Developers have significant experience with the 
>>>>> feature enabled via experimental web platform features. There is no value 
>>>>> to running a finch trial given the large amount of existing experience 
>>>>> with 
>>>>> the feature.
>>>>>
>>>>>
>>>>> Requires code in //chrome? False
>>>>>
>>>>> Estimated milestones 
>>>>> Shipping on desktop 120 
>>>>> DevTrial on desktop 118 
>>>>> Shipping on Android 120 
>>>>> DevTrial on Android 118 
>>>>> Shipping on WebView 120 
>>>>>
>>>>> Anticipated spec changes None
>>>>>
>>>>> Link to entry on the Chrome Platform Status 
>>>>> https://chromestatus.com/feature/5090853643354112
>>>>>
>>>>> Links to previous Intent discussions Ready for Trial: 
>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/BbvI5VAguvk
>>>>>
>>>>>
>>>>> 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/CAGsbWzQfdRQU81Cdm2phXD9f4wktm4f%2BReeYJaYVZKLrt_T4rg%40mail.gmail.com
>>>>>  
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGsbWzQfdRQU81Cdm2phXD9f4wktm4f%2BReeYJaYVZKLrt_T4rg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
> 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/CAGsbWzQV-S4-w5nen9dWqeGRjSx_ietab3MzfF%2B-UdikH-8Hmw%40mail.gmail.com
>  
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGsbWzQV-S4-w5nen9dWqeGRjSx_ietab3MzfF%2B-UdikH-8Hmw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> 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/b0b3fb6e-bc93-4823-a9e8-d3e7f8e4a388%40chromium.org
>  
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b0b3fb6e-bc93-4823-a9e8-d3e7f8e4a388%40chromium.org?utm_medium=email&utm_source=footer>
> .
>
>

-- 
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/59fd80fc-a34f-49a9-af50-75aba75d649en%40chromium.org.

Reply via email to