On Thu, Sep 29, 2022 at 12:15 PM Mike Taylor <miketa...@chromium.org> wrote:
> On 9/28/22 3:01 PM, Traian Captan wrote: > > Contact emails > > tcap...@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. > > 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+unsubscr...@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+unsubscr...@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/CAOMQ%2Bw8n%3DGetHVbfaZn-xG2e8saCQev50G-JU1%2BoXJONDH1LXA%40mail.gmail.com.