LGTM1 with some strings attached. We discussed this in the API owners meeting (present: Chris, Yoav, Mike, Daniel, me)
Since this matches other implementations and is somewhat deliberate unspec'd, shipping this sounds good. Very nice to see highly starred interop issues being fixed :) Great that tests will be added, presumably those will be tentative <https://web-platform-tests.org/writing-tests/file-names.html?highlight=tentative> due to a lack of a spec. Traian, Philip, since this will be interoperable, can you propose a spec change that would define it? Or if that runs into some roadblock, can you loop back to this thread? (This does not block shipping.) On Thu, Sep 29, 2022 at 11:55 PM 'Philip Rogers' via blink-dev < [email protected]> wrote: > > > 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 <[email protected]> >> wrote: >> >>> On 9/28/22 3:01 PM, Traian Captan wrote: >>> >>> Contact emails >>> >>> [email protected] >>> >>> 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 [email protected]. >>> 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 [email protected]. >>> >> 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 [email protected]. > 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 > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/40644a65-1656-497d-a19d-caad46855c64n%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 [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYeWLsmb0pvEmqOdvhEzaeFuUn-0vva2ofFH5Hn89zjV1g%40mail.gmail.com.
