On Thursday, September 29, 2022 at 12:17:10 PM UTC-7 Chris Harrelson wrote:

> On Thu, Sep 29, 2022 at 12:15 PM Mike Taylor <mike...@chromium.org> wrote:
>
>> On 9/28/22 3:01 PM, Traian Captan wrote:
>>
>> Contact emails
>>
>> tca...@chromium.org
>>
>> Explainer
>>
>> Though not a formal explainer, Emilio has an excellent writeup of this 
>> issue at https://crisal.io/words/2020/06/13/rounding-borders.html.
>>
>> Spec
>>
>> With this change to blink, all implementations will agree, and this can 
>> be specified (see: https://github.com/w3c/csswg-drafts/issues/5210).
>>
>> Is there any current blocker to specifying this (besides someone doing 
>> the work)?
>>
>
>  Currently, the specs intentionally avoid specifying pixel-snapping 
> behavior, and instead leave it up to engines to decide how they want to do 
> it. Changing that would be a significant effort.
>

Once this change lands, won't it be straightforward to specify this 
specific aspect of snapping? This change is visible in the computed style.

>
>> Summary
>>
>> Snap border, outline and column-rule widths before layout to avoid gaps 
>> between backgrounds and borders caused by paint-time snapping. With this 
>> change, Blink will match Gecko and WebKit.
>>
>> Blink component 
>>
>> Blink 
>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink>
>>
>> Motivation 
>>
>> Currently Blink snaps the border widths at paint time. This can cause a 
>> visible 1px gap between a parent element's border and a child's background 
>> when the border is rounded down during paint since the snapping floors the 
>> value but the layout rounded it up to calculate the child’s s position (eg 
>> border-width is set to 10.75 pixels, rounded to 10px at paint time, but 11 
>> at layout time). By making this change Blink will also behave like Gecko 
>> and WebKit and increase interoperability.
>>
>> Search tags 
>>
>> border-width <https://chromestatus.com/features#tags:border-width>, 
>> outline-width <https://chromestatus.com/features#tags:outline-width>, 
>> column-rule-width 
>> <https://chromestatus.com/features#tags:column-rule-width>
>>
>> TAG review 
>>
>> Skipping because this is a straightforward interop fix.
>>
>> TAG review status 
>>
>> N/A
>>
>> Risks Interoperability and Compatibility 
>>
>> Gecko and WebKit already snap borders before layout.
>>
>> This change would make Blink behave the same and increase 
>> interoperability and compatibility.
>>
>> The explainer section has a link to a blog post describing the 
>> differences in more detail.
>>
>> This issue and the proposed fix have been discussed in: Issue 1201762: 
>> [Task] Investigate border snapping before layout 
>> <https://crbug.com/1201762>, which is currently blocking 10 issues.
>>
>>  
>>
>> This issue was also discussed on:
>>
>> https://github.com/w3c/csswg-drafts/issues/2114
>>
>> https://github.com/w3c/csswg-drafts/issues/5210
>>
>>
>>
>> Gecko: Shipped/Shipping
>>
>> WebKit: Shipped/Shipping
>>
>> Web developers: Strongly positive - This has been reported in at least 
>> 10 separate bugs with a cumulative star count of 75.
>>
>> 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?
>>
>> No
>>
>>
>> Debuggability 
>>
>> N/A
>>
>>
>> Will this feature be supported on all six Blink platforms (Windows, Mac, 
>> Linux, Chrome OS, 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>
>> ? 
>>
>> New test will be added with the patch.
>>
>> Flag name Requires code in //chrome? 
>>
>> False
>>
>>  
>> Tracking bug 
>>
>> https://crbug.com/1201762
>>
>>  
>> Launch bug 
>>
>> https://crbug.com/1120347
>> Estimated milestones 
>>
>> M108
>> 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).
>>
>> https://github.com/w3c/csswg-drafts/issues/5210
>> Link to entry on the Chrome Platform Status 
>>
>> https://chromestatus.com/feature/4651561863610368
>>
>> 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+...@chromium.org.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFxahvsyqk3h2TZwDVJzb1KVgLjqmWDWMs3V9-1sZRA7pXkyOQ%40mail.gmail.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFxahvsyqk3h2TZwDVJzb1KVgLjqmWDWMs3V9-1sZRA7pXkyOQ%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+...@chromium.org.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/addc5bee-3957-b9f7-9f41-a0a2a7802618%40chromium.org
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/addc5bee-3957-b9f7-9f41-a0a2a7802618%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/40644a65-1656-497d-a19d-caad46855c64n%40chromium.org.

Reply via email to