[webkit-dev] StyleBuilder vs StyleResolver

Antti Koivisto koivisto at iki.fi
Fri Apr 12 01:08:02 PDT 2013

On Fri, Apr 12, 2013 at 7:36 AM, Dirk Schulze <dschulze at adobe.com> wrote:

> Hi,
> The style of CSS properties is either set in StyleBuilder/CSSProperty or
> in StyleResolver (alias CSSStyleSelector).
> StyleResolver has a giant switch statement to handle all CSS property
> values and set the style. It is the historical way to build the style.
> StyleBuilder was introduced ~2 years ago. Instead of a giant switch to
> handle all property styles, it has a concept of template to combine CSS
> property handling.
> In these last two years new properties were mainly added to StyleBuilder,
> older properties were left alone in StyleResolver. The concept of
> StyleBuilder was always controversial[1][2]. A lot of people had concerns
> that StyleBuilder is less readable and makes it harder to understand the
> code.
> I personally am more worried that we still have two ways to set the style.
> I think it is bad to keep half of the properties in StyleResolver and the
> other half in StyleBuilder. We may use the general "spring cleanup" to
> revalidate the concept of StyleBuilder and StyleResolver and decide to use
> the one or the other concept.
> Any thoughts?

Fully agreed. I'm still sad I couldn't stop this refactoring initially. So
much wasted effort.

Having property applying code in a separate class instead of piling it back
to StyleResolver still makes sense though and StyleBuilder is a good name.
Maybe something like this would be a good strategy?

rename StyleBuilder -> DeprecatedStyleBuilder
create new StyleBuilder
move the giant switch and the related functions from StyleResolver
to StyleBuilder
move individual properties from DeprecatedStyleBuilder to StyleBuilder
until nothing remains
delete DeprecatedStyleBuilder


> Greetings,
> Dirk
> [1] https://bugs.webkit.org/show_bug.cgi?id=54707
> [2] https://bugs.webkit.org/show_bug.cgi?id=102844
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20130412/6e126172/attachment.html>

More information about the webkit-dev mailing list