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).

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

RisksInteroperability 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 nameRequires 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.

Reply via email to