| Summary: | th { text-align: inherit; } is not respected | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Anthony Ryan <anthonyryan1> |
| Component: | CSS | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Minor | CC: | anthonyryan1, hyatt, karlcow, mmaxfield, ntim, rreno, webkit-bug-importer |
| Priority: | P2 | Keywords: | HasReduction, InRadar |
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
|
Description
Anthony Ryan
2014-11-10 13:56:28 PST
Chromium bug for cross-reference: https://code.google.com/p/chromium/issues/detail?id=431867 The Chromium patch to resolve this bug, for cross-reference: https://chromium.googlesource.com/chromium/src.git/+/367b26a9cdb1389d3e16c30527742f7cd33ef74d This issue forced Bootstrap to use `-webkit-match-parent` on their CSS https://github.com/twbs/bootstrap/issues/30321#issuecomment-592981559 which in return makes it hard to remove it from the Web platform without breaking Safari. If it is being fixed it will help to obsolete it, and convince BootStrap to remove it too. The WPT has already a test to remove the support of `-webkit-match-parent` https://github.com/web-platform-tests/wpt/commit/006029222c021a7c0b524328b0d3385cf4a97c95 Filed https://github.com/whatwg/html/issues/7978 because the spec says Safari does the right thing. but Firefox and Chrome do differently. ``` data:text/html,<!doctype%20html><table><tr><th%20style="text-align:inherit">START</th></tr><tr><td>AAAAAAAAAAAAAA</td></tr></table> ``` This is the relevant bit in WebKit: https://webkit-search.igalia.com/webkit/rev/26eff7cbe4e53bbd8b325ee12a3567128ba52d2e/Source/WebCore/style/StyleAdjuster.cpp#318-323 I personally haven't tested which approach works, but the 2 I have in mind are: 1. Add a applyInheritTextAlign function here: https://webkit-search.igalia.com/webkit/rev/26eff7cbe4e53bbd8b325ee12a3567128ba52d2e/Source/WebCore/style/StyleBuilderCustom.h#197-207 that sets both textAlign, but also hasExplicitlySetTextAlign(). This needs to change: https://webkit-search.igalia.com/webkit/rev/26eff7cbe4e53bbd8b325ee12a3567128ba52d2e/Source/WebCore/css/CSSProperties.json#4590 to "custom": "All" in order to work. 2. Remove the StyleAdjuster code, do like Firefox/Chrome and add an `-internal-center-or-inherit` value, implement it in https://webkit-search.igalia.com/webkit/rev/26eff7cbe4e53bbd8b325ee12a3567128ba52d2e/Source/WebCore/style/StyleBuilderConverter.h#609 , something like: ``` if (primitiveValue.valueID() == CSSValueInternalCenterOrInherit) if (parentStyle.textAlign() != TextAlign::Start) return parentStyle.textAlign(); return TextAlign::Center; ``` Pull request: https://github.com/WebKit/WebKit/pull/1503 Last PR ended up breaking some WPT tests for `all: revert`. I'm going to go for Tim's #2 suggestion and use an internal CSS property instead. Pull request: https://github.com/WebKit/WebKit/pull/1568 Committed r295625 (251630@main): <https://commits.webkit.org/251630@main> Reviewed commits have been landed. Closing PR #1568 and removing active labels. |