| Summary: | Stop resolving border's current color to some hardcoded value | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Vitaly Dyackhov <vitaly> |
| Component: | CSS | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | ahmad.saleem792, simon.fraser, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=261847 | ||
| Bug Depends on: | |||
| Bug Blocks: | 261847 | ||
Pull request: https://github.com/WebKit/WebKit/pull/15447 *** Bug 256528 has been marked as a duplicate of this bug. *** Committed 266134@main (0aa032e26bbd): <https://commits.webkit.org/266134@main> Reviewed commits have been landed. Closing PR #15447 and removing active labels. Do we understand why this code was added in the first place? This caused https://bugs.webkit.org/show_bug.cgi?id=261847 |
In `Color RenderStyle::colorResolvingCurrentColor(CSSPropertyID colorProperty, bool visitedLink) const` we currently return some hardcoded value for border colors: ``` auto result = unresolvedColorForProperty(colorProperty, visitedLink); if (result.isCurrentColor()) { auto borderStyle = [&] { switch (colorProperty) { case CSSPropertyBorderLeftColor: return borderLeftStyle(); case CSSPropertyBorderRightColor: return borderRightStyle(); case CSSPropertyBorderTopColor: return borderTopStyle(); case CSSPropertyBorderBottomColor: return borderBottomStyle(); default: return BorderStyle::None; } }(); if (!visitedLink && (borderStyle == BorderStyle::Inset || borderStyle == BorderStyle::Outset || borderStyle == BorderStyle::Ridge || borderStyle == BorderStyle::Groove)) return { SRGBA<uint8_t> { 238, 238, 238 } }; return visitedLink ? visitedLinkColor() : color(); } ``` I can't think of any good reason for doing this. The result can be unexpected for web developers.