For example: <!DOCTYPE html> <style> div { background: none; background-position: initial; } </style> <pre id=log></pre> <script> log.textContent = "background: " + document.styleSheets[0].cssRules[0].style.getPropertyValue("background"); </script> This outputs "background: none initial initial", which is not valid.
<rdar://problem/97405629>
There is a straightforward way to make sure we don’t serialize any shorthands when one of the longhands has a keyword like "initial". I wrote the code for it and it’s super-simple. But a prerequisite for doing that is that we have to stop setting longhands to "initial" as a side effect of *using* a shorthand. Otherwise, we’ll be getting the empty string way too often. That means we probably need to fix bug 244657 *before* fixing this one.
Does removing `case CSSPropertyBackground:` from the `canUseShorthandForLonghand` blocklist in StyleProperties help?
It does not fix this problem, no, but it should be done for other reasons.
Pull request: https://github.com/WebKit/WebKit/pull/7025
Committed 257429@main (a0488d1bf07c): <https://commits.webkit.org/257429@main> Reviewed commits have been landed. Closing PR #7025 and removing active labels.