Ignore:
Timestamp:
Oct 27, 2013, 3:54:07 PM (12 years ago)
Author:
[email protected]
Message:

Renderers should receive their style at construction.
<https://webkit.org/b/123396>

Pass the RenderStyle to all non-text renderer constructors.
After construction, initializeStyle() must be called (as a stopgap
measure) until we are able to do style-derived initialization
without virtual function calls.

With this change, RenderElement::m_style is never null. Subsequent
patches will add enforcement for this and also make style() return
a RenderStyle&.

I'm adding three FIXME's in this patch:

  • createRendererIfNeeded() calls AnimationController to set up the initial style manually instead of asking RenderElement's setAnimatedStyle() to do it. This can probably be done in a nicer way, but it's not clear yet how.
  • ImageContentData::createRenderer() does a bit of unnecessary work. This should be easy to clean up but got too distracting to be part of this patch.
  • Document::createRenderTree() creates the RenderView with an initial dummy RenderStyle. I've done this because resolving the document style assumes we already have a RenderView.

For styleWillChange() implementations to detect that they are
reacting to the initial style, I've added a hasInitializedStyle()
function on RenderElement. This will return false until you've
called initializeStyle() on the renderer. This should go away
along with initializeStyle() eventually.

Reviewed by Antti Koivisto.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderScrollbarPart.cpp

    r157726 r158097  
    3737namespace WebCore {
    3838
    39 RenderScrollbarPart::RenderScrollbarPart(Document& document, RenderScrollbar* scrollbar, ScrollbarPart part)
    40     : RenderBlock(document, 0)
     39RenderScrollbarPart::RenderScrollbarPart(Document& document, PassRef<RenderStyle> style, RenderScrollbar* scrollbar, ScrollbarPart part)
     40    : RenderBlock(document, std::move(style), 0)
    4141    , m_scrollbar(scrollbar)
    4242    , m_part(part)
Note: See TracChangeset for help on using the changeset viewer.