Changeset 183160 in webkit


Ignore:
Timestamp:
Apr 22, 2015 7:16:52 PM (9 years ago)
Author:
Alan Bujtas
Message:

Create RenderRubyText for <rt> only when the parent renderer is a RenderRuby.
https://bugs.webkit.org/show_bug.cgi?id=144035
rdar://problem/20604467

Reviewed by Darin Adler.

This patch extends HTMLElement::createElementRenderer()
with the render tree insertion point so that we can create different type
of renderers based on the render tree context.

Source/WebCore:

Test: fast/ruby/ruby-rt-with-region-crash.html

  • CMakeLists.txt:
  • Modules/plugins/PluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.h:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::createElementRenderer):

  • dom/Element.h:
  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::createElementRenderer):

  • html/HTMLAppletElement.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::createElementRenderer):

  • html/HTMLAttachmentElement.h:
  • html/HTMLBRElement.cpp:

(WebCore::HTMLBRElement::createElementRenderer):

  • html/HTMLBRElement.h:
  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::createElementRenderer):

  • html/HTMLButtonElement.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createElementRenderer):

  • html/HTMLCanvasElement.h:
  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::createElementRenderer):

  • html/HTMLDetailsElement.h:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createElementRenderer):

  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::createElementRenderer):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::createElementRenderer):

  • html/HTMLFrameElement.h:
  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::createElementRenderer):

  • html/HTMLFrameSetElement.h:
  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::createElementRenderer):

  • html/HTMLIFrameElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::createElementRenderer):

  • html/HTMLImageElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createElementRenderer):

  • html/HTMLInputElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:
  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::createElementRenderer):

  • html/HTMLMeterElement.h:
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::createElementRenderer):

  • html/HTMLPlugInElement.h:
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::createElementRenderer):

  • html/HTMLPlugInImageElement.h:
  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::createElementRenderer):

  • html/HTMLProgressElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::createElementRenderer):

  • html/HTMLSelectElement.h:
  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::createElementRenderer):

  • html/HTMLSummaryElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::createElementRenderer):

  • html/HTMLTextAreaElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createElementRenderer):

  • html/HTMLVideoElement.h:
  • html/HTMLWBRElement.cpp:

(WebCore::HTMLWBRElement::createElementRenderer):

  • html/HTMLWBRElement.h:
  • html/RubyElement.cpp:

(WebCore::RubyElement::createElementRenderer):

  • html/RubyElement.h:
  • html/RubyTextElement.cpp:

(WebCore::RubyTextElement::createElementRenderer):

  • html/RubyTextElement.h:
  • html/shadow/DetailsMarkerControl.cpp:

(WebCore::DetailsMarkerControl::createElementRenderer):

  • html/shadow/DetailsMarkerControl.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTimelineContainerElement::createElementRenderer):
(WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer):
(WebCore::MediaControlTextTrackContainerElement::createElementRenderer):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MeterShadowElement.cpp:

(WebCore::MeterInnerElement::createElementRenderer):

  • html/shadow/MeterShadowElement.h:
  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressInnerElement::createElementRenderer):

  • html/shadow/ProgressShadowElement.h:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::createElementRenderer):
(WebCore::SliderContainerElement::createElementRenderer):

  • html/shadow/SliderThumbElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerContainer::createElementRenderer):
(WebCore::TextControlInnerTextElement::createElementRenderer):

  • html/shadow/TextControlInnerElements.h:
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::createElementRenderer):

  • html/shadow/mac/ImageControlsButtonElementMac.h:
  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElementMac::createElementRenderer):

  • html/shadow/mac/ImageControlsRootElementMac.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::createElementRenderer):

  • html/track/VTTCue.h:
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer):

  • mathml/MathMLInlineContainerElement.h:
  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::createElementRenderer):

  • mathml/MathMLMathElement.h:
  • mathml/MathMLMencloseElement.cpp:

(WebCore::MathMLMencloseElement::createElementRenderer):

  • mathml/MathMLMencloseElement.h:
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::createElementRenderer):

  • mathml/MathMLSelectElement.h:
  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::createElementRenderer):

  • mathml/MathMLTextElement.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::clone):

  • rendering/RenderElement.cpp:
  • rendering/RenderRuby.h:

(WebCore::isRuby):

  • style/RenderTreePosition.cpp: Added.

(WebCore::RenderTreePosition::computeNextSibling):
(WebCore::RenderTreePosition::invalidateNextSibling):
(WebCore::RenderTreePosition::previousSiblingRenderer):
(WebCore::RenderTreePosition::nextSiblingRenderer):
(WebCore::RenderTreePosition::isRendererReparented):

  • style/RenderTreePosition.h: Added.

(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::parent):
(WebCore::RenderTreePosition::canInsert):
(WebCore::RenderTreePosition::insert):

  • style/StyleResolveTree.cpp:

(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::RenderTreePosition::parent): Deleted.
(WebCore::Style::isRendererReparented): Deleted.
(WebCore::Style::nextSiblingRenderer): Deleted.
(WebCore::Style::RenderTreePosition::RenderTreePosition): Deleted.
(WebCore::Style::RenderTreePosition::canInsert): Deleted.
(WebCore::Style::RenderTreePosition::insert): Deleted.
(WebCore::Style::RenderTreePosition::computeNextSibling): Deleted.
(WebCore::Style::RenderTreePosition::invalidateNextSibling): Deleted.
(WebCore::Style::previousSiblingRenderer): Deleted.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::createElementRenderer):

  • svg/SVGAElement.h:
  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::createElementRenderer):

  • svg/SVGAltGlyphElement.h:
  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::createElementRenderer):

  • svg/SVGCircleElement.h:
  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::createElementRenderer):

  • svg/SVGClipPathElement.h:
  • svg/SVGDefsElement.cpp:

(WebCore::SVGDefsElement::createElementRenderer):

  • svg/SVGDefsElement.h:
  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::createElementRenderer):

  • svg/SVGEllipseElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::createElementRenderer):

  • svg/SVGFilterElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer):

  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::createElementRenderer):

  • svg/SVGForeignObjectElement.h:
  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::createElementRenderer):

  • svg/SVGGElement.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::createElementRenderer):

  • svg/SVGGraphicsElement.h:
  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::createElementRenderer):

  • svg/SVGImageElement.h:
  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::createElementRenderer):

  • svg/SVGLinearGradientElement.h:
  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::createElementRenderer):

  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::createElementRenderer):

  • svg/SVGMaskElement.h:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::createElementRenderer):

  • svg/SVGPathElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::createElementRenderer):

  • svg/SVGPatternElement.h:
  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::createElementRenderer):

  • svg/SVGRadialGradientElement.h:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::createElementRenderer):

  • svg/SVGSVGElement.h:
  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::createElementRenderer):

  • svg/SVGStopElement.h:
  • svg/SVGSwitchElement.cpp:

(WebCore::SVGSwitchElement::createElementRenderer):

  • svg/SVGSwitchElement.h:
  • svg/SVGSymbolElement.cpp:

(WebCore::SVGSymbolElement::createElementRenderer):

  • svg/SVGSymbolElement.h:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::createElementRenderer):

  • svg/SVGTRefElement.h:
  • svg/SVGTSpanElement.cpp:

(WebCore::SVGTSpanElement::createElementRenderer):

  • svg/SVGTSpanElement.h:
  • svg/SVGTextElement.cpp:

(WebCore::SVGTextElement::createElementRenderer):

  • svg/SVGTextElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::createElementRenderer):

  • svg/SVGTextPathElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::createElementRenderer):

  • svg/SVGUseElement.h:

LayoutTests:

  • fast/ruby/ruby-rt-with-region-crash-expected.txt: Added.
  • fast/ruby/ruby-rt-with-region-crash.html: Added.
Location:
trunk
Files:
4 added
151 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r183154 r183160  
     12015-04-22  Zalan Bujtas  <zalan@apple.com>
     2
     3        Create RenderRubyText for <rt> only when the parent renderer is a RenderRuby.
     4        https://bugs.webkit.org/show_bug.cgi?id=144035
     5        rdar://problem/20604467
     6
     7        Reviewed by Darin Adler.
     8
     9        This patch extends HTMLElement::createElementRenderer()
     10        with the render tree insertion point so that we can create different type
     11        of renderers based on the render tree context.
     12
     13        * fast/ruby/ruby-rt-with-region-crash-expected.txt: Added.
     14        * fast/ruby/ruby-rt-with-region-crash.html: Added.
     15
    1162015-04-22  Brent Fulgham  <bfulgham@apple.com>
    217
  • trunk/Source/WebCore/CMakeLists.txt

    r183129 r183160  
    25432543
    25442544    style/InlineTextBoxStyle.cpp
     2545    style/RenderTreePosition.cpp
    25452546    style/StyleFontSizeFunctions.cpp
    25462547    style/StyleResolveForDocument.cpp
  • trunk/Source/WebCore/ChangeLog

    r183158 r183160  
     12015-04-22  Zalan Bujtas  <zalan@apple.com>
     2
     3        Create RenderRubyText for <rt> only when the parent renderer is a RenderRuby.
     4        https://bugs.webkit.org/show_bug.cgi?id=144035
     5        rdar://problem/20604467
     6
     7        Reviewed by Darin Adler.
     8
     9        This patch extends HTMLElement::createElementRenderer()
     10        with the render tree insertion point so that we can create different type
     11        of renderers based on the render tree context.
     12
     13        Test: fast/ruby/ruby-rt-with-region-crash.html
     14
     15        * CMakeLists.txt:
     16        * Modules/plugins/PluginReplacement.h:
     17        * Modules/plugins/QuickTimePluginReplacement.h:
     18        * Modules/plugins/QuickTimePluginReplacement.mm:
     19        (WebCore::QuickTimePluginReplacement::createElementRenderer):
     20        * Modules/plugins/YouTubePluginReplacement.cpp:
     21        (WebCore::YouTubePluginReplacement::createElementRenderer):
     22        * Modules/plugins/YouTubePluginReplacement.h:
     23        * WebCore.vcxproj/WebCore.vcxproj:
     24        * WebCore.vcxproj/WebCore.vcxproj.filters:
     25        * WebCore.xcodeproj/project.pbxproj:
     26        * dom/Element.cpp:
     27        (WebCore::Element::createElementRenderer):
     28        * dom/Element.h:
     29        * html/HTMLAppletElement.cpp:
     30        (WebCore::HTMLAppletElement::createElementRenderer):
     31        * html/HTMLAppletElement.h:
     32        * html/HTMLAttachmentElement.cpp:
     33        (WebCore::HTMLAttachmentElement::createElementRenderer):
     34        * html/HTMLAttachmentElement.h:
     35        * html/HTMLBRElement.cpp:
     36        (WebCore::HTMLBRElement::createElementRenderer):
     37        * html/HTMLBRElement.h:
     38        * html/HTMLButtonElement.cpp:
     39        (WebCore::HTMLButtonElement::createElementRenderer):
     40        * html/HTMLButtonElement.h:
     41        * html/HTMLCanvasElement.cpp:
     42        (WebCore::HTMLCanvasElement::createElementRenderer):
     43        * html/HTMLCanvasElement.h:
     44        * html/HTMLDetailsElement.cpp:
     45        (WebCore::HTMLDetailsElement::createElementRenderer):
     46        * html/HTMLDetailsElement.h:
     47        * html/HTMLElement.cpp:
     48        (WebCore::HTMLElement::createElementRenderer):
     49        * html/HTMLElement.h:
     50        * html/HTMLFieldSetElement.cpp:
     51        (WebCore::HTMLFieldSetElement::createElementRenderer):
     52        * html/HTMLFieldSetElement.h:
     53        * html/HTMLFrameElement.cpp:
     54        (WebCore::HTMLFrameElement::createElementRenderer):
     55        * html/HTMLFrameElement.h:
     56        * html/HTMLFrameSetElement.cpp:
     57        (WebCore::HTMLFrameSetElement::createElementRenderer):
     58        * html/HTMLFrameSetElement.h:
     59        * html/HTMLIFrameElement.cpp:
     60        (WebCore::HTMLIFrameElement::createElementRenderer):
     61        * html/HTMLIFrameElement.h:
     62        * html/HTMLImageElement.cpp:
     63        (WebCore::HTMLImageElement::createElementRenderer):
     64        * html/HTMLImageElement.h:
     65        * html/HTMLInputElement.cpp:
     66        (WebCore::HTMLInputElement::createElementRenderer):
     67        * html/HTMLInputElement.h:
     68        * html/HTMLMediaElement.cpp:
     69        (WebCore::HTMLMediaElement::parseAttribute):
     70        * html/HTMLMediaElement.h:
     71        * html/HTMLMeterElement.cpp:
     72        (WebCore::HTMLMeterElement::createElementRenderer):
     73        * html/HTMLMeterElement.h:
     74        * html/HTMLPlugInElement.cpp:
     75        (WebCore::HTMLPlugInElement::createElementRenderer):
     76        * html/HTMLPlugInElement.h:
     77        * html/HTMLPlugInImageElement.cpp:
     78        (WebCore::HTMLPlugInImageElement::createElementRenderer):
     79        * html/HTMLPlugInImageElement.h:
     80        * html/HTMLProgressElement.cpp:
     81        (WebCore::HTMLProgressElement::createElementRenderer):
     82        * html/HTMLProgressElement.h:
     83        * html/HTMLSelectElement.cpp:
     84        (WebCore::HTMLSelectElement::createElementRenderer):
     85        * html/HTMLSelectElement.h:
     86        * html/HTMLSummaryElement.cpp:
     87        (WebCore::HTMLSummaryElement::createElementRenderer):
     88        * html/HTMLSummaryElement.h:
     89        * html/HTMLTextAreaElement.cpp:
     90        (WebCore::HTMLTextAreaElement::createElementRenderer):
     91        * html/HTMLTextAreaElement.h:
     92        * html/HTMLVideoElement.cpp:
     93        (WebCore::HTMLVideoElement::createElementRenderer):
     94        * html/HTMLVideoElement.h:
     95        * html/HTMLWBRElement.cpp:
     96        (WebCore::HTMLWBRElement::createElementRenderer):
     97        * html/HTMLWBRElement.h:
     98        * html/RubyElement.cpp:
     99        (WebCore::RubyElement::createElementRenderer):
     100        * html/RubyElement.h:
     101        * html/RubyTextElement.cpp:
     102        (WebCore::RubyTextElement::createElementRenderer):
     103        * html/RubyTextElement.h:
     104        * html/shadow/DetailsMarkerControl.cpp:
     105        (WebCore::DetailsMarkerControl::createElementRenderer):
     106        * html/shadow/DetailsMarkerControl.h:
     107        * html/shadow/MediaControlElements.cpp:
     108        (WebCore::MediaControlTimelineContainerElement::createElementRenderer):
     109        (WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer):
     110        (WebCore::MediaControlTextTrackContainerElement::createElementRenderer):
     111        * html/shadow/MediaControlElements.h:
     112        * html/shadow/MeterShadowElement.cpp:
     113        (WebCore::MeterInnerElement::createElementRenderer):
     114        * html/shadow/MeterShadowElement.h:
     115        * html/shadow/ProgressShadowElement.cpp:
     116        (WebCore::ProgressInnerElement::createElementRenderer):
     117        * html/shadow/ProgressShadowElement.h:
     118        * html/shadow/SliderThumbElement.cpp:
     119        (WebCore::SliderThumbElement::createElementRenderer):
     120        (WebCore::SliderContainerElement::createElementRenderer):
     121        * html/shadow/SliderThumbElement.h:
     122        * html/shadow/TextControlInnerElements.cpp:
     123        (WebCore::TextControlInnerContainer::createElementRenderer):
     124        (WebCore::TextControlInnerTextElement::createElementRenderer):
     125        * html/shadow/TextControlInnerElements.h:
     126        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
     127        (WebCore::ImageControlsButtonElementMac::createElementRenderer):
     128        * html/shadow/mac/ImageControlsButtonElementMac.h:
     129        * html/shadow/mac/ImageControlsRootElementMac.cpp:
     130        (WebCore::ImageControlsRootElementMac::createElementRenderer):
     131        * html/shadow/mac/ImageControlsRootElementMac.h:
     132        * html/track/VTTCue.cpp:
     133        (WebCore::VTTCueBox::createElementRenderer):
     134        * html/track/VTTCue.h:
     135        * mathml/MathMLInlineContainerElement.cpp:
     136        (WebCore::MathMLInlineContainerElement::createElementRenderer):
     137        * mathml/MathMLInlineContainerElement.h:
     138        * mathml/MathMLMathElement.cpp:
     139        (WebCore::MathMLMathElement::createElementRenderer):
     140        * mathml/MathMLMathElement.h:
     141        * mathml/MathMLMencloseElement.cpp:
     142        (WebCore::MathMLMencloseElement::createElementRenderer):
     143        * mathml/MathMLMencloseElement.h:
     144        * mathml/MathMLSelectElement.cpp:
     145        (WebCore::MathMLSelectElement::createElementRenderer):
     146        * mathml/MathMLSelectElement.h:
     147        * mathml/MathMLTextElement.cpp:
     148        (WebCore::MathMLTextElement::createElementRenderer):
     149        * mathml/MathMLTextElement.h:
     150        * rendering/RenderBlock.cpp:
     151        (WebCore::RenderBlock::clone):
     152        * rendering/RenderElement.cpp:
     153        * rendering/RenderRuby.h:
     154        (WebCore::isRuby):
     155        * style/RenderTreePosition.cpp: Added.
     156        (WebCore::RenderTreePosition::computeNextSibling):
     157        (WebCore::RenderTreePosition::invalidateNextSibling):
     158        (WebCore::RenderTreePosition::previousSiblingRenderer):
     159        (WebCore::RenderTreePosition::nextSiblingRenderer):
     160        (WebCore::RenderTreePosition::isRendererReparented):
     161        * style/RenderTreePosition.h: Added.
     162        (WebCore::RenderTreePosition::RenderTreePosition):
     163        (WebCore::RenderTreePosition::parent):
     164        (WebCore::RenderTreePosition::canInsert):
     165        (WebCore::RenderTreePosition::insert):
     166        * style/StyleResolveTree.cpp:
     167        (WebCore::Style::createRendererIfNeeded):
     168        (WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
     169        (WebCore::Style::textRendererIsNeeded):
     170        (WebCore::Style::RenderTreePosition::parent): Deleted.
     171        (WebCore::Style::isRendererReparented): Deleted.
     172        (WebCore::Style::nextSiblingRenderer): Deleted.
     173        (WebCore::Style::RenderTreePosition::RenderTreePosition): Deleted.
     174        (WebCore::Style::RenderTreePosition::canInsert): Deleted.
     175        (WebCore::Style::RenderTreePosition::insert): Deleted.
     176        (WebCore::Style::RenderTreePosition::computeNextSibling): Deleted.
     177        (WebCore::Style::RenderTreePosition::invalidateNextSibling): Deleted.
     178        (WebCore::Style::previousSiblingRenderer): Deleted.
     179        * svg/SVGAElement.cpp:
     180        (WebCore::SVGAElement::createElementRenderer):
     181        * svg/SVGAElement.h:
     182        * svg/SVGAltGlyphElement.cpp:
     183        (WebCore::SVGAltGlyphElement::createElementRenderer):
     184        * svg/SVGAltGlyphElement.h:
     185        * svg/SVGCircleElement.cpp:
     186        (WebCore::SVGCircleElement::createElementRenderer):
     187        * svg/SVGCircleElement.h:
     188        * svg/SVGClipPathElement.cpp:
     189        (WebCore::SVGClipPathElement::createElementRenderer):
     190        * svg/SVGClipPathElement.h:
     191        * svg/SVGDefsElement.cpp:
     192        (WebCore::SVGDefsElement::createElementRenderer):
     193        * svg/SVGDefsElement.h:
     194        * svg/SVGEllipseElement.cpp:
     195        (WebCore::SVGEllipseElement::createElementRenderer):
     196        * svg/SVGEllipseElement.h:
     197        * svg/SVGFilterElement.cpp:
     198        (WebCore::SVGFilterElement::createElementRenderer):
     199        * svg/SVGFilterElement.h:
     200        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
     201        (WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer):
     202        * svg/SVGFilterPrimitiveStandardAttributes.h:
     203        * svg/SVGForeignObjectElement.cpp:
     204        (WebCore::SVGForeignObjectElement::createElementRenderer):
     205        * svg/SVGForeignObjectElement.h:
     206        * svg/SVGGElement.cpp:
     207        (WebCore::SVGGElement::createElementRenderer):
     208        * svg/SVGGElement.h:
     209        * svg/SVGGraphicsElement.cpp:
     210        (WebCore::SVGGraphicsElement::createElementRenderer):
     211        * svg/SVGGraphicsElement.h:
     212        * svg/SVGImageElement.cpp:
     213        (WebCore::SVGImageElement::createElementRenderer):
     214        * svg/SVGImageElement.h:
     215        * svg/SVGLinearGradientElement.cpp:
     216        (WebCore::SVGLinearGradientElement::createElementRenderer):
     217        * svg/SVGLinearGradientElement.h:
     218        * svg/SVGMarkerElement.cpp:
     219        (WebCore::SVGMarkerElement::createElementRenderer):
     220        * svg/SVGMarkerElement.h:
     221        * svg/SVGMaskElement.cpp:
     222        (WebCore::SVGMaskElement::createElementRenderer):
     223        * svg/SVGMaskElement.h:
     224        * svg/SVGPathElement.cpp:
     225        (WebCore::SVGPathElement::createElementRenderer):
     226        * svg/SVGPathElement.h:
     227        * svg/SVGPatternElement.cpp:
     228        (WebCore::SVGPatternElement::createElementRenderer):
     229        * svg/SVGPatternElement.h:
     230        * svg/SVGRadialGradientElement.cpp:
     231        (WebCore::SVGRadialGradientElement::createElementRenderer):
     232        * svg/SVGRadialGradientElement.h:
     233        * svg/SVGRectElement.cpp:
     234        (WebCore::SVGRectElement::createElementRenderer):
     235        * svg/SVGRectElement.h:
     236        * svg/SVGSVGElement.cpp:
     237        (WebCore::SVGSVGElement::createElementRenderer):
     238        * svg/SVGSVGElement.h:
     239        * svg/SVGStopElement.cpp:
     240        (WebCore::SVGStopElement::createElementRenderer):
     241        * svg/SVGStopElement.h:
     242        * svg/SVGSwitchElement.cpp:
     243        (WebCore::SVGSwitchElement::createElementRenderer):
     244        * svg/SVGSwitchElement.h:
     245        * svg/SVGSymbolElement.cpp:
     246        (WebCore::SVGSymbolElement::createElementRenderer):
     247        * svg/SVGSymbolElement.h:
     248        * svg/SVGTRefElement.cpp:
     249        (WebCore::SVGTRefElement::createElementRenderer):
     250        * svg/SVGTRefElement.h:
     251        * svg/SVGTSpanElement.cpp:
     252        (WebCore::SVGTSpanElement::createElementRenderer):
     253        * svg/SVGTSpanElement.h:
     254        * svg/SVGTextElement.cpp:
     255        (WebCore::SVGTextElement::createElementRenderer):
     256        * svg/SVGTextElement.h:
     257        * svg/SVGTextPathElement.cpp:
     258        (WebCore::SVGTextPathElement::createElementRenderer):
     259        * svg/SVGTextPathElement.h:
     260        * svg/SVGUseElement.cpp:
     261        (WebCore::SVGUseElement::createElementRenderer):
     262        * svg/SVGUseElement.h:
     263
    12642015-04-22  Brent Fulgham  <bfulgham@apple.com>
    2265
  • trunk/Source/WebCore/Modules/plugins/PluginReplacement.h

    r177259 r183160  
    4040class RenderElement;
    4141class RenderStyle;
     42class RenderTreePosition;
    4243class ShadowRoot;
    4344class URL;
     
    5152
    5253    virtual bool willCreateRenderer() { return false; }
    53     virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&) = 0;
     54    virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&, const RenderTreePosition&) = 0;
    5455
    5556protected:
  • trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h

    r177259 r183160  
    5555
    5656    virtual bool willCreateRenderer() override { return m_mediaElement; }
    57     virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&) override;
     57    virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5858
    5959    HTMLVideoElement* parentElement() { return m_mediaElement.get(); }
  • trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm

    r182205 r183160  
    131131}
    132132
    133 RenderPtr<RenderElement> QuickTimePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, Ref<RenderStyle>&& style)
     133RenderPtr<RenderElement> QuickTimePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    134134{
    135135    ASSERT_UNUSED(plugin, m_parentElement == &plugin);
    136136
    137137    if (m_mediaElement)
    138         return m_mediaElement->createElementRenderer(WTF::move(style));
     138        return m_mediaElement->createElementRenderer(WTF::move(style), insertionPosition);
    139139
    140140    return nullptr;
  • trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp

    r183031 r183160  
    6868}
    6969
    70 RenderPtr<RenderElement> YouTubePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, Ref<RenderStyle>&& style)
     70RenderPtr<RenderElement> YouTubePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    7171{
    7272    ASSERT_UNUSED(plugin, m_parentElement == &plugin);
     
    7575        return nullptr;
    7676   
    77     return m_embedShadowElement->createElementRenderer(WTF::move(style));
     77    return m_embedShadowElement->createElementRenderer(WTF::move(style), insertionPosition);
    7878}
    7979
  • trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h

    r177259 r183160  
    6161   
    6262    virtual bool willCreateRenderer() override { return m_embedShadowElement; }
    63     virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&) override;
     63    virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6464   
    6565    HTMLPlugInElement* m_parentElement;
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r183129 r183160  
    1802918029    <ClCompile Include="..\storage\StorageNamespaceProvider.cpp" />
    1803018030    <ClCompile Include="..\style\InlineTextBoxStyle.cpp" />
     18031    <ClCompile Include="..\style\RenderTreePosition.cpp" />
    1803118032    <ClCompile Include="..\style\StyleFontSizeFunctions.cpp" />
    1803218033    <ClCompile Include="..\style\StyleResolveForDocument.cpp" />
     
    2166621667    <ClInclude Include="..\storage\StorageNamespaceProvider.h" />
    2166721668    <ClInclude Include="..\style\InlineTextBoxStyle.h" />
     21669    <ClInclude Include="..\style\RenderTreePosition.h" />
    2166821670    <ClInclude Include="..\style\StyleFontSizeFunctions.h" />
    2166921671    <ClInclude Include="..\style\StyleResolveForDocument.h" />
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r183129 r183160  
    66296629      <Filter>css</Filter>
    66306630    </ClCompile>
     6631    <ClCompile Include="..\style\RenderTreePosition.cpp">
     6632      <Filter>css</Filter>
     6633    </ClCompile>
    66316634    <ClCompile Include="..\style\StyleFontSizeFunctions.cpp">
    66326635      <Filter>css</Filter>
     
    1403814041    </ClInclude>
    1403914042    <ClInclude Include="..\style\InlineTextBoxStyle.h">
     14043      <Filter>css</Filter>
     14044    </ClInclude>
     14045    <ClInclude Include="..\style\RenderTreePosition.h">
    1404014046      <Filter>css</Filter>
    1404114047    </ClInclude>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r183129 r183160  
    21222122                5824ABA61AE81384009074B7 /* RubyTextElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5824ABA41AE81384009074B7 /* RubyTextElement.cpp */; };
    21232123                5824ABA71AE81384009074B7 /* RubyTextElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5824ABA51AE81384009074B7 /* RubyTextElement.h */; };
     2124                5824ABAA1AE849C8009074B7 /* RenderTreePosition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5824ABA81AE849C8009074B7 /* RenderTreePosition.cpp */; };
     2125                5824ABAB1AE849C8009074B7 /* RenderTreePosition.h in Headers */ = {isa = PBXBuildFile; fileRef = 5824ABA91AE849C8009074B7 /* RenderTreePosition.h */; };
    21242126                582CB0531A78A14B00AFFCC4 /* SimpleLineLayoutTextFragmentIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 582CB0521A78A14B00AFFCC4 /* SimpleLineLayoutTextFragmentIterator.h */; };
    21252127                582CB0551A78A2B200AFFCC4 /* SimpleLineLayoutTextFragmentIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 582CB0541A78A2B200AFFCC4 /* SimpleLineLayoutTextFragmentIterator.cpp */; };
     
    93379339                5824ABA41AE81384009074B7 /* RubyTextElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RubyTextElement.cpp; sourceTree = "<group>"; };
    93389340                5824ABA51AE81384009074B7 /* RubyTextElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RubyTextElement.h; sourceTree = "<group>"; };
     9341                5824ABA81AE849C8009074B7 /* RenderTreePosition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreePosition.cpp; sourceTree = "<group>"; };
     9342                5824ABA91AE849C8009074B7 /* RenderTreePosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreePosition.h; sourceTree = "<group>"; };
    93399343                582CB0521A78A14B00AFFCC4 /* SimpleLineLayoutTextFragmentIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleLineLayoutTextFragmentIterator.h; sourceTree = "<group>"; };
    93409344                582CB0541A78A2B200AFFCC4 /* SimpleLineLayoutTextFragmentIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleLineLayoutTextFragmentIterator.cpp; sourceTree = "<group>"; };
     
    2227522279                        isa = PBXGroup;
    2227622280                        children = (
     22281                                5824ABA81AE849C8009074B7 /* RenderTreePosition.cpp */,
     22282                                5824ABA91AE849C8009074B7 /* RenderTreePosition.h */,
    2227722283                                1C0106FE192594DF008A4201 /* InlineTextBoxStyle.cpp */,
    2227822284                                1C0106FF192594DF008A4201 /* InlineTextBoxStyle.h */,
     
    2474524751                                0FB6252F18DE1B1500A07C05 /* GeometryUtilities.h in Headers */,
    2474624752                                9746AF2A14F4DDE6003E7A70 /* Geoposition.h in Headers */,
     24753                                5824ABAB1AE849C8009074B7 /* RenderTreePosition.h in Headers */,
    2474724754                                086BBD0F136039C2008B15D8 /* Glyph.h in Headers */,
    2474824755                                B2C3DA6C0D006CD600EF6F26 /* GlyphBuffer.h in Headers */,
     
    2992229929                                E47127CA163438A100ED6F5A /* StyleInvalidationAnalysis.cpp in Sources */,
    2992329930                                BC5EB7290E81DE8100B25965 /* StyleMarqueeData.cpp in Sources */,
     29931                                5824ABAA1AE849C8009074B7 /* RenderTreePosition.cpp in Sources */,
    2992429932                                0FF50271102BA96A0066F39A /* StyleMedia.cpp in Sources */,
    2992529933                                7C4EDD741A7B607800198C4D /* FontCocoa.mm in Sources */,
  • trunk/Source/WebCore/dom/Element.cpp

    r183064 r183160  
    14971497}
    14981498
    1499 RenderPtr<RenderElement> Element::createElementRenderer(Ref<RenderStyle>&& style)
     1499RenderPtr<RenderElement> Element::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    15001500{
    15011501    return RenderElement::createFor(*this, WTF::move(style));
  • trunk/Source/WebCore/dom/Element.h

    r183021 r183160  
    5050class PseudoElement;
    5151class RenderNamedFlowFragment;
     52class RenderTreePosition;
    5253class ShadowRoot;
    5354
     
    243244    virtual void copyNonAttributePropertiesFromElement(const Element&) { }
    244245
    245     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&);
     246    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&);
    246247    virtual bool rendererIsNeeded(const RenderStyle&);
    247248
  • trunk/Source/WebCore/html/HTMLAppletElement.cpp

    r177996 r183160  
    7676}
    7777
    78 RenderPtr<RenderElement> HTMLAppletElement::createElementRenderer(Ref<RenderStyle>&& style)
     78RenderPtr<RenderElement> HTMLAppletElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7979{
    8080    if (!canEmbedJava())
  • trunk/Source/WebCore/html/HTMLAppletElement.h

    r177996 r183160  
    3838   
    3939    virtual bool rendererIsNeeded(const RenderStyle&) override;
    40     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     40    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4141
    4242    virtual RenderWidget* renderWidgetLoadingPlugin() const override;
  • trunk/Source/WebCore/html/HTMLAttachmentElement.cpp

    r181118 r183160  
    5252}
    5353
    54 RenderPtr<RenderElement> HTMLAttachmentElement::createElementRenderer(Ref<RenderStyle>&& style)
     54RenderPtr<RenderElement> HTMLAttachmentElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5555{
    5656    return createRenderer<RenderAttachment>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLAttachmentElement.h

    r181418 r183160  
    4747    virtual ~HTMLAttachmentElement();
    4848
    49     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     49    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5050
    5151    virtual bool shouldSelectOnMouseDown() override { return true; }
  • trunk/Source/WebCore/html/HTMLBRElement.cpp

    r182120 r183160  
    7171}
    7272
    73 RenderPtr<RenderElement> HTMLBRElement::createElementRenderer(Ref<RenderStyle>&& style)
     73RenderPtr<RenderElement> HTMLBRElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7474{
    7575    if (style.get().hasContent())
  • trunk/Source/WebCore/html/HTMLBRElement.h

    r177996 r183160  
    4242    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
    4343
    44     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     44    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4545};
    4646
  • trunk/Source/WebCore/html/HTMLButtonElement.cpp

    r182120 r183160  
    5757}
    5858
    59 RenderPtr<RenderElement> HTMLButtonElement::createElementRenderer(Ref<RenderStyle>&& style)
     59RenderPtr<RenderElement> HTMLButtonElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6060{
    6161    return createRenderer<RenderButton>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLButtonElement.h

    r177996 r183160  
    4646    virtual const AtomicString& formControlType() const override;
    4747
    48     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     48    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4949
    5050    // HTMLFormControlElement always creates one, but buttons don't need it.
  • trunk/Source/WebCore/html/HTMLCanvasElement.cpp

    r183031 r183160  
    107107}
    108108
    109 RenderPtr<RenderElement> HTMLCanvasElement::createElementRenderer(Ref<RenderStyle>&& style)
     109RenderPtr<RenderElement> HTMLCanvasElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    110110{
    111111    Frame* frame = document().frame();
     
    116116
    117117    m_rendererIsCanvas = false;
    118     return HTMLElement::createElementRenderer(WTF::move(style));
     118    return HTMLElement::createElementRenderer(WTF::move(style), insertionPosition);
    119119}
    120120
  • trunk/Source/WebCore/html/HTMLCanvasElement.h

    r181415 r183160  
    142142
    143143    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
    144     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     144    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    145145
    146146    virtual bool canContainRangeEndPoint() const override;
  • trunk/Source/WebCore/html/HTMLDetailsElement.cpp

    r177996 r183160  
    112112}
    113113
    114 RenderPtr<RenderElement> HTMLDetailsElement::createElementRenderer(Ref<RenderStyle>&& style)
     114RenderPtr<RenderElement> HTMLDetailsElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    115115{
    116116    return createRenderer<RenderBlockFlow>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLDetailsElement.h

    r177996 r183160  
    3636    HTMLDetailsElement(const QualifiedName&, Document&);
    3737
    38     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     38    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    3939    virtual bool childShouldCreateRenderer(const Node&) const override;
    4040    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
  • trunk/Source/WebCore/html/HTMLElement.cpp

    r183021 r183160  
    881881}
    882882
    883 RenderPtr<RenderElement> HTMLElement::createElementRenderer(Ref<RenderStyle>&& style)
     883RenderPtr<RenderElement> HTMLElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    884884{
    885885    return RenderElement::createFor(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLElement.h

    r181507 r183160  
    8080
    8181    virtual bool rendererIsNeeded(const RenderStyle&) override;
    82     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     82    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    8383
    8484    HTMLFormElement* form() const { return virtualForm(); }
  • trunk/Source/WebCore/html/HTMLFieldSetElement.cpp

    r179770 r183160  
    150150}
    151151
    152 RenderPtr<RenderElement> HTMLFieldSetElement::createElementRenderer(Ref<RenderStyle>&& style)
     152RenderPtr<RenderElement> HTMLFieldSetElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    153153{
    154154    return createRenderer<RenderFieldset>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLFieldSetElement.h

    r179770 r183160  
    5252    virtual bool isEnumeratable() const override { return true; }
    5353    virtual bool supportsFocus() const override;
    54     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     54    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5555    virtual const AtomicString& formControlType() const override;
    5656    virtual bool computeWillValidate() const override { return false; }
  • trunk/Source/WebCore/html/HTMLFrameElement.cpp

    r182120 r183160  
    5454}
    5555
    56 RenderPtr<RenderElement> HTMLFrameElement::createElementRenderer(Ref<RenderStyle>&& style)
     56RenderPtr<RenderElement> HTMLFrameElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5757{
    5858    return createRenderer<RenderFrame>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLFrameElement.h

    r177996 r183160  
    4343
    4444    virtual bool rendererIsNeeded(const RenderStyle&) override;
    45     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     45    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4646   
    4747    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
  • trunk/Source/WebCore/html/HTMLFrameSetElement.cpp

    r182120 r183160  
    158158}
    159159
    160 RenderPtr<RenderElement> HTMLFrameSetElement::createElementRenderer(Ref<RenderStyle>&& style)
     160RenderPtr<RenderElement> HTMLFrameSetElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    161161{
    162162    if (style.get().hasContent())
  • trunk/Source/WebCore/html/HTMLFrameSetElement.h

    r181169 r183160  
    5757    virtual void willAttachRenderers() override;
    5858    virtual bool rendererIsNeeded(const RenderStyle&) override;
    59     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     59    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6060   
    6161    virtual void defaultEventHandler(Event*) override;
  • trunk/Source/WebCore/html/HTMLIFrameElement.cpp

    r182120 r183160  
    9090}
    9191
    92 RenderPtr<RenderElement> HTMLIFrameElement::createElementRenderer(Ref<RenderStyle>&& style)
     92RenderPtr<RenderElement> HTMLIFrameElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    9393{
    9494    return createRenderer<RenderIFrame>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLIFrameElement.h

    r177996 r183160  
    4545
    4646    virtual bool rendererIsNeeded(const RenderStyle&) override;
    47     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     47    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4848};
    4949
  • trunk/Source/WebCore/html/HTMLImageElement.cpp

    r182266 r183160  
    202202}
    203203
    204 RenderPtr<RenderElement> HTMLImageElement::createElementRenderer(Ref<RenderStyle>&& style)
     204RenderPtr<RenderElement> HTMLImageElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    205205{
    206206    if (style.get().hasContent())
  • trunk/Source/WebCore/html/HTMLImageElement.h

    r181591 r183160  
    102102
    103103    virtual void didAttachRenderers() override;
    104     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     104    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    105105    void setBestFitURLAndDPRFromImageCandidate(const ImageCandidate&);
    106106
  • trunk/Source/WebCore/html/HTMLInputElement.cpp

    r182266 r183160  
    772772}
    773773
    774 RenderPtr<RenderElement> HTMLInputElement::createElementRenderer(Ref<RenderStyle>&& style)
     774RenderPtr<RenderElement> HTMLInputElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    775775{
    776776    return m_inputType->createInputRenderer(WTF::move(style));
  • trunk/Source/WebCore/html/HTMLInputElement.h

    r181408 r183160  
    201201
    202202    virtual bool rendererIsNeeded(const RenderStyle&) override final;
    203     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override final;
     203    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
    204204    virtual void willAttachRenderers() override final;
    205205    virtual void didAttachRenderers() override final;
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r183096 r183160  
    577577}
    578578
    579 RenderPtr<RenderElement> HTMLMediaElement::createElementRenderer(Ref<RenderStyle>&& style)
     579RenderPtr<RenderElement> HTMLMediaElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    580580{
    581581    return createRenderer<RenderMedia>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLMediaElement.h

    r183096 r183160  
    483483#endif
    484484
    485     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     485    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    486486
    487487#if ENABLE(MEDIA_CONTROLS_SCRIPT)
  • trunk/Source/WebCore/html/HTMLMeterElement.cpp

    r177996 r183160  
    5858}
    5959
    60 RenderPtr<RenderElement> HTMLMeterElement::createElementRenderer(Ref<RenderStyle>&& style)
     60RenderPtr<RenderElement> HTMLMeterElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6161{
    6262    if (!document().page()->theme().supportsMeter(style.get().appearance()))
  • trunk/Source/WebCore/html/HTMLMeterElement.h

    r177996 r183160  
    7171    virtual bool supportLabels() const override { return true; }
    7272
    73     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     73    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    7474    virtual bool childShouldCreateRenderer(const Node&) const override;
    7575    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
  • trunk/Source/WebCore/html/HTMLPlugInElement.cpp

    r182120 r183160  
    292292#endif /* ENABLE(NETSCAPE_PLUGIN_API) */
    293293
    294 RenderPtr<RenderElement> HTMLPlugInElement::createElementRenderer(Ref<RenderStyle>&& style)
     294RenderPtr<RenderElement> HTMLPlugInElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    295295{
    296296    if (m_pluginReplacement && m_pluginReplacement->willCreateRenderer())
    297         return m_pluginReplacement->createElementRenderer(*this, WTF::move(style));
     297        return m_pluginReplacement->createElementRenderer(*this, WTF::move(style), insertionPosition);
    298298
    299299    return createRenderer<RenderEmbeddedObject>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLPlugInElement.h

    r177259 r183160  
    104104
    105105    virtual bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues);
    106     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     106    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    107107    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
    108108
  • trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp

    r182266 r183160  
    190190}
    191191
    192 RenderPtr<RenderElement> HTMLPlugInImageElement::createElementRenderer(Ref<RenderStyle>&& style)
     192RenderPtr<RenderElement> HTMLPlugInImageElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    193193{
    194194    ASSERT(!document().inPageCache());
    195195
    196196    if (displayState() >= PreparingPluginReplacement)
    197         return HTMLPlugInElement::createElementRenderer(WTF::move(style));
     197        return HTMLPlugInElement::createElementRenderer(WTF::move(style), insertionPosition);
    198198
    199199    // Once a PlugIn Element creates its renderer, it needs to be told when the Document goes
     
    219219        return createRenderer<RenderImage>(*this, WTF::move(style));
    220220
    221     return HTMLPlugInElement::createElementRenderer(WTF::move(style));
     221    return HTMLPlugInElement::createElementRenderer(WTF::move(style), insertionPosition);
    222222}
    223223
  • trunk/Source/WebCore/html/HTMLPlugInImageElement.h

    r179597 r183160  
    118118    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override final;
    119119
    120     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     120    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    121121    virtual bool childShouldCreateRenderer(const Node&) const override;
    122122    virtual bool willRecalcStyle(Style::Change) override final;
  • trunk/Source/WebCore/html/HTMLProgressElement.cpp

    r182120 r183160  
    5757}
    5858
    59 RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(Ref<RenderStyle>&& style)
     59RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6060{
    6161    if (!style.get().hasAppearance())
  • trunk/Source/WebCore/html/HTMLProgressElement.h

    r177996 r183160  
    5353    virtual bool supportLabels() const override { return true; }
    5454
    55     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     55    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5656    virtual bool childShouldCreateRenderer(const Node&) const override;
    5757    RenderProgress* renderProgress() const;
  • trunk/Source/WebCore/html/HTMLSelectElement.cpp

    r182120 r183160  
    351351}
    352352
    353 RenderPtr<RenderElement> HTMLSelectElement::createElementRenderer(Ref<RenderStyle>&& style)
     353RenderPtr<RenderElement> HTMLSelectElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    354354{
    355355#if !PLATFORM(IOS)
  • trunk/Source/WebCore/html/HTMLSelectElement.h

    r179770 r183160  
    139139
    140140    virtual bool childShouldCreateRenderer(const Node&) const override;
    141     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     141    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    142142    virtual bool appendFormData(FormDataList&, bool) override;
    143143
  • trunk/Source/WebCore/html/HTMLSummaryElement.cpp

    r177996 r183160  
    6666}
    6767
    68 RenderPtr<RenderElement> HTMLSummaryElement::createElementRenderer(Ref<RenderStyle>&& style)
     68RenderPtr<RenderElement> HTMLSummaryElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6969{
    7070    return createRenderer<RenderBlockFlow>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLSummaryElement.h

    r177996 r183160  
    3838    HTMLSummaryElement(const QualifiedName&, Document&);
    3939
    40     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     40    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4141    virtual bool childShouldCreateRenderer(const Node&) const override;
    4242    virtual void defaultEventHandler(Event*) override;
  • trunk/Source/WebCore/html/HTMLTextAreaElement.cpp

    r182120 r183160  
    210210}
    211211
    212 RenderPtr<RenderElement> HTMLTextAreaElement::createElementRenderer(Ref<RenderStyle>&& style)
     212RenderPtr<RenderElement> HTMLTextAreaElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    213213{
    214214    return createRenderer<RenderTextControlMultiLine>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLTextAreaElement.h

    r177996 r183160  
    102102    virtual bool isPresentationAttribute(const QualifiedName&) const override;
    103103    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
    104     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     104    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    105105    virtual bool appendFormData(FormDataList&, bool) override;
    106106    virtual void reset() override;
  • trunk/Source/WebCore/html/HTMLVideoElement.cpp

    r182274 r183160  
    6969}
    7070
    71 RenderPtr<RenderElement> HTMLVideoElement::createElementRenderer(Ref<RenderStyle>&& style)
     71RenderPtr<RenderElement> HTMLVideoElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7272{
    7373    return createRenderer<RenderVideo>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLVideoElement.h

    r181169 r183160  
    7777
    7878    URL posterImageURL() const;
    79     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     79    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    8080
    8181#if ENABLE(VIDEO_PRESENTATION_MODE)
  • trunk/Source/WebCore/html/HTMLWBRElement.cpp

    r177996 r183160  
    4545}
    4646
    47 RenderPtr<RenderElement> HTMLWBRElement::createElementRenderer(Ref<RenderStyle>&& style)
     47RenderPtr<RenderElement> HTMLWBRElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    4848{
    4949    return createRenderer<RenderLineBreak>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/HTMLWBRElement.h

    r177996 r183160  
    3838    HTMLWBRElement(const QualifiedName&, Document&);
    3939
    40     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     40    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4141};
    4242
  • trunk/Source/WebCore/html/RubyElement.cpp

    r183129 r183160  
    4444}
    4545
    46 RenderPtr<RenderElement> RubyElement::createElementRenderer(Ref<RenderStyle>&& style)
     46RenderPtr<RenderElement> RubyElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    4747{
    4848    if (style->display() == INLINE)
     
    5050    if (style->display() == BLOCK || style.get().display() == INLINE_BLOCK)
    5151        return createRenderer<RenderRubyAsBlock>(*this, WTF::move(style));
    52     return HTMLElement::createElementRenderer(WTF::move(style));
     52    return HTMLElement::createElementRenderer(WTF::move(style), insertionPosition);
    5353}
    5454
  • trunk/Source/WebCore/html/RubyElement.h

    r183129 r183160  
    3737private:
    3838    RubyElement(const QualifiedName&, Document&);
    39     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     39    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4040};
    4141
  • trunk/Source/WebCore/html/RubyTextElement.cpp

    r183129 r183160  
    2929#include "RenderRuby.h"
    3030#include "RenderRubyText.h"
     31#include "RenderTreePosition.h"
    3132
    3233namespace WebCore {
     
    4546}
    4647
    47 RenderPtr<RenderElement> RubyTextElement::createElementRenderer(Ref<RenderStyle>&& style)
     48RenderPtr<RenderElement> RubyTextElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    4849{
    49     // Treat <rt> as ruby text ONLY if the parent is ruby.
    50     if (parentElement() && isRuby(parentElement()->renderer()))
     50    // RenderRubyText requires its parent to be RenderRubyRun.
     51    if (isRuby(insertionPosition.parent()))
    5152        return createRenderer<RenderRubyText>(*this, WTF::move(style));
    52     return HTMLElement::createElementRenderer(WTF::move(style));
     53    return HTMLElement::createElementRenderer(WTF::move(style), insertionPosition);
    5354}
    5455
  • trunk/Source/WebCore/html/RubyTextElement.h

    r183129 r183160  
    3737private:
    3838    RubyTextElement(const QualifiedName&, Document&);
    39     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     39    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4040};
    4141
  • trunk/Source/WebCore/html/shadow/DetailsMarkerControl.cpp

    r177733 r183160  
    5151}
    5252
    53 RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(Ref<RenderStyle>&& style)
     53RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5454{
    5555    return createRenderer<RenderDetailsMarker>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/DetailsMarkerControl.h

    r177733 r183160  
    4444    DetailsMarkerControl(Document&);
    4545
    46     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     46    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4747    virtual bool rendererIsNeeded(const RenderStyle&) override;
    4848};
  • trunk/Source/WebCore/html/shadow/MediaControlElements.cpp

    r177259 r183160  
    311311}
    312312
    313 RenderPtr<RenderElement> MediaControlTimelineContainerElement::createElementRenderer(Ref<RenderStyle>&& style)
     313RenderPtr<RenderElement> MediaControlTimelineContainerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    314314{
    315315    return createRenderer<RenderMediaControlTimelineContainer>(*this, WTF::move(style));
     
    331331}
    332332
    333 RenderPtr<RenderElement> MediaControlVolumeSliderContainerElement::createElementRenderer(Ref<RenderStyle>&& style)
     333RenderPtr<RenderElement> MediaControlVolumeSliderContainerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    334334{
    335335    return createRenderer<RenderMediaVolumeSliderContainer>(*this, WTF::move(style));
     
    10891089}
    10901090
    1091 RenderPtr<RenderElement> MediaControlTextTrackContainerElement::createElementRenderer(Ref<RenderStyle>&& style)
     1091RenderPtr<RenderElement> MediaControlTextTrackContainerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    10921092{
    10931093    return createRenderer<RenderTextTrackContainerElement>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/MediaControlElements.h

    r177259 r183160  
    111111    explicit MediaControlTimelineContainerElement(Document&);
    112112
    113     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     113    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    114114};
    115115
     
    129129    virtual void defaultEventHandler(Event*) override;
    130130
    131     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     131    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    132132};
    133133
     
    457457    explicit MediaControlTextTrackContainerElement(Document&);
    458458
    459     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     459    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    460460
    461461    virtual PassRefPtr<Image> createTextTrackRepresentationImage() override;
  • trunk/Source/WebCore/html/shadow/MeterShadowElement.cpp

    r177259 r183160  
    7474}
    7575
    76 RenderPtr<RenderElement> MeterInnerElement::createElementRenderer(Ref<RenderStyle>&& style)
     76RenderPtr<RenderElement> MeterInnerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7777{
    7878    return createRenderer<RenderMeter>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/MeterShadowElement.h

    r177259 r183160  
    6060
    6161    virtual bool rendererIsNeeded(const RenderStyle&) override;
    62     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     62    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6363};
    6464
  • trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp

    r177259 r183160  
    6161}
    6262
    63 RenderPtr<RenderElement> ProgressInnerElement::createElementRenderer(Ref<RenderStyle>&& style)
     63RenderPtr<RenderElement> ProgressInnerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6464{
    6565    return createRenderer<RenderProgress>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/ProgressShadowElement.h

    r177259 r183160  
    5858    ProgressInnerElement(Document&);
    5959
    60     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     60    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6161    virtual bool rendererIsNeeded(const RenderStyle&) override;
    6262};
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp

    r177372 r183160  
    215215}
    216216
    217 RenderPtr<RenderElement> SliderThumbElement::createElementRenderer(Ref<RenderStyle>&& style)
     217RenderPtr<RenderElement> SliderThumbElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    218218{
    219219    return createRenderer<RenderSliderThumb>(*this, WTF::move(style));
     
    616616}
    617617
    618 RenderPtr<RenderElement> SliderContainerElement::createElementRenderer(Ref<RenderStyle>&& style)
     618RenderPtr<RenderElement> SliderContainerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    619619{
    620620    return createRenderer<RenderSliderContainer>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.h

    r177846 r183160  
    6262    SliderThumbElement(Document&);
    6363
    64     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     64    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6565    virtual RefPtr<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
    6666    virtual bool isDisabledFormControl() const override;
     
    132132private:
    133133    SliderContainerElement(Document&);
    134     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     134    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    135135    virtual const AtomicString& shadowPseudoId() const override;
    136136};
  • trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp

    r177259 r183160  
    5757}
    5858   
    59 RenderPtr<RenderElement> TextControlInnerContainer::createElementRenderer(Ref<RenderStyle>&& style)
     59RenderPtr<RenderElement> TextControlInnerContainer::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6060{
    6161    return createRenderer<RenderTextControlInnerContainer>(*this, WTF::move(style));
     
    111111}
    112112
    113 RenderPtr<RenderElement> TextControlInnerTextElement::createElementRenderer(Ref<RenderStyle>&& style)
     113RenderPtr<RenderElement> TextControlInnerTextElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    114114{
    115115    return createRenderer<RenderTextControlInnerBlock>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/TextControlInnerElements.h

    r177259 r183160  
    4040protected:
    4141    TextControlInnerContainer(Document&);
    42     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     42    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4343};
    4444
     
    6565private:
    6666    TextControlInnerTextElement(Document&);
    67     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     67    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6868    virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle) override;
    6969    virtual bool isMouseFocusable() const override { return false; }
  • trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp

    r177259 r183160  
    126126}
    127127
    128 RenderPtr<RenderElement> ImageControlsButtonElementMac::createElementRenderer(Ref<RenderStyle>&& style)
     128RenderPtr<RenderElement> ImageControlsButtonElementMac::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    129129{
    130130    return createRenderer<RenderImageControlsButton>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h

    r177259 r183160  
    4343
    4444    virtual void defaultEventHandler(Event*) override;
    45     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     45    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4646
    4747    virtual bool isImageControlsButtonElement() const override { return true; }
  • trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp

    r177259 r183160  
    103103}
    104104
    105 RenderPtr<RenderElement> ImageControlsRootElementMac::createElementRenderer(Ref<RenderStyle>&& style)
     105RenderPtr<RenderElement> ImageControlsRootElementMac::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    106106{
    107107    return createRenderer<RenderImageControls>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h

    r177259 r183160  
    4141    ImageControlsRootElementMac(Document&);
    4242
    43     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     43    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4444};
    4545
  • trunk/Source/WebCore/html/track/VTTCue.cpp

    r181832 r183160  
    235235}
    236236
    237 RenderPtr<RenderElement> VTTCueBox::createElementRenderer(Ref<RenderStyle>&& style)
     237RenderPtr<RenderElement> VTTCueBox::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    238238{
    239239    return createRenderer<RenderVTTCue>(*this, WTF::move(style));
  • trunk/Source/WebCore/html/track/VTTCue.h

    r177259 r183160  
    6565    VTTCueBox(Document&, VTTCue&);
    6666
    67     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override final;
     67    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
    6868
    6969    VTTCue& m_cue;
  • trunk/Source/WebCore/mathml/MathMLInlineContainerElement.cpp

    r177733 r183160  
    7070}
    7171
    72 RenderPtr<RenderElement> MathMLInlineContainerElement::createElementRenderer(Ref<RenderStyle>&& style)
     72RenderPtr<RenderElement> MathMLInlineContainerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7373{
    7474    if (hasTagName(annotation_xmlTag))
  • trunk/Source/WebCore/mathml/MathMLInlineContainerElement.h

    r177733 r183160  
    4444
    4545private:
    46     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     46    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4747};
    4848   
  • trunk/Source/WebCore/mathml/MathMLMathElement.cpp

    r177733 r183160  
    4444}
    4545
    46 RenderPtr<RenderElement> MathMLMathElement::createElementRenderer(Ref<RenderStyle>&& style)
     46RenderPtr<RenderElement> MathMLMathElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    4747{
    4848    return createRenderer<RenderMathMLMath>(*this, WTF::move(style));
  • trunk/Source/WebCore/mathml/MathMLMathElement.h

    r177733 r183160  
    4040    MathMLMathElement(const QualifiedName& tagName, Document&);
    4141
    42     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     42    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4343};
    4444   
  • trunk/Source/WebCore/mathml/MathMLMencloseElement.cpp

    r178510 r183160  
    5151}
    5252
    53 RenderPtr<RenderElement> MathMLMencloseElement::createElementRenderer(Ref<RenderStyle>&& style)
     53RenderPtr<RenderElement> MathMLMencloseElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5454{   
    5555    return createRenderer<RenderMathMLMenclose>(*this, WTF::move(style));
  • trunk/Source/WebCore/mathml/MathMLMencloseElement.h

    r177733 r183160  
    4242private:
    4343    MathMLMencloseElement(const QualifiedName&, Document&);
    44     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     44    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4545    virtual bool isPresentationAttribute(const QualifiedName&) const override;
    4646    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
  • trunk/Source/WebCore/mathml/MathMLSelectElement.cpp

    r177733 r183160  
    5252}
    5353
    54 RenderPtr<RenderElement> MathMLSelectElement::createElementRenderer(Ref<RenderStyle>&& style)
     54RenderPtr<RenderElement> MathMLSelectElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5555{
    5656    return createRenderer<RenderMathMLRow>(*this, WTF::move(style));
  • trunk/Source/WebCore/mathml/MathMLSelectElement.h

    r177733 r183160  
    4141private:
    4242    MathMLSelectElement(const QualifiedName& tagName, Document&);
    43     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     43    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4444
    4545    virtual bool childShouldCreateRenderer(const Node&) const override;
  • trunk/Source/WebCore/mathml/MathMLTextElement.cpp

    r182147 r183160  
    7676}
    7777
    78 RenderPtr<RenderElement> MathMLTextElement::createElementRenderer(Ref<RenderStyle>&& style)
     78RenderPtr<RenderElement> MathMLTextElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition& insertionPosition)
    7979{
    8080    if (hasTagName(MathMLNames::moTag))
     
    8383        return createRenderer<RenderMathMLSpace>(*this, WTF::move(style));
    8484    if (hasTagName(MathMLNames::annotationTag))
    85         return MathMLElement::createElementRenderer(WTF::move(style));
     85        return MathMLElement::createElementRenderer(WTF::move(style), insertionPosition);
    8686
    8787    ASSERT(hasTagName(MathMLNames::miTag) || hasTagName(MathMLNames::mnTag) || hasTagName(MathMLNames::msTag) || hasTagName(MathMLNames::mtextTag));
  • trunk/Source/WebCore/mathml/MathMLTextElement.h

    r177733 r183160  
    4343    MathMLTextElement(const QualifiedName& tagName, Document&);
    4444
    45     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     45    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4646    virtual bool childShouldCreateRenderer(const Node&) const override;
    4747
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r182373 r183160  
    6363#include "RenderTextFragment.h"
    6464#include "RenderTheme.h"
     65#include "RenderTreePosition.h"
    6566#include "RenderView.h"
    6667#include "SVGTextRunRenderingContext.h"
     
    386387        cloneBlock->setChildrenInline(childrenInline());
    387388    } else {
    388         cloneBlock = static_pointer_cast<RenderBlock>(element()->createElementRenderer(style()));
     389        RenderTreePosition insertionPosition(*parent());
     390        cloneBlock = static_pointer_cast<RenderBlock>(element()->createElementRenderer(style(), insertionPosition));
    389391        cloneBlock->initializeStyle();
    390392
  • trunk/Source/WebCore/rendering/RenderElement.cpp

    r183129 r183160  
    4444#include "RenderImage.h"
    4545#include "RenderImageResourceStyleImage.h"
     46#include "RenderInline.h"
    4647#include "RenderIterator.h"
    4748#include "RenderLayer.h"
     
    5152#include "RenderNamedFlowThread.h"
    5253#include "RenderRegion.h"
    53 #include "RenderRuby.h"
    54 #include "RenderRubyText.h"
    5554#include "RenderTableCaption.h"
    5655#include "RenderTableCell.h"
  • trunk/Source/WebCore/rendering/RenderRuby.h

    r180038 r183160  
    9191
    9292
    93 inline bool isRuby(const RenderObject* renderer) { return (renderer && (is<RenderRubyAsInline>(renderer) || is<RenderRubyAsBlock>(renderer))); }
     93inline bool isRuby(const RenderObject& renderer) { return (is<RenderRubyAsInline>(renderer) || is<RenderRubyAsBlock>(renderer)); }
     94inline bool isRuby(const RenderObject* renderer) { return (renderer && isRuby(*renderer)); }
    9495
    9596} // namespace WebCore
  • trunk/Source/WebCore/style/StyleResolveTree.cpp

    r182364 r183160  
    4343#include "RenderNamedFlowThread.h"
    4444#include "RenderText.h"
    45 #include "RenderView.h"
     45#include "RenderTreePosition.h"
    4646#include "RenderWidget.h"
    4747#include "ResourceLoadScheduler.h"
     
    6262
    6363enum DetachType { NormalDetach, ReattachDetach };
    64 
    65 class RenderTreePosition {
    66 public:
    67     explicit RenderTreePosition(RenderView&);
    68     explicit RenderTreePosition(RenderElement& parent);
    69     RenderTreePosition(RenderElement& parent, RenderObject* nextSibling);
    70 
    71     RenderElement& parent() { return m_parent; }
    72     const RenderElement& parent() const { return m_parent; }
    73 
    74     void insert(RenderObject&);
    75     bool canInsert(RenderElement&) const;
    76     bool canInsert(RenderText&) const;
    77 
    78     void computeNextSibling(const Node&);
    79     void invalidateNextSibling(const RenderObject&);
    80 
    81 private:
    82     RenderElement& m_parent;
    83     RenderObject* m_nextSibling;
    84     bool m_hasValidNextSibling;
    85 #if !ASSERT_DISABLED
    86     unsigned m_assertionLimitCounter;
    87 #endif
    88 };
    8964
    9065static void attachRenderTree(Element&, RenderStyle& inheritedStyle, RenderTreePosition&, PassRefPtr<RenderStyle>);
     
    151126}
    152127
    153 static bool isRendererReparented(const RenderObject* renderer)
    154 {
    155     if (!renderer->node()->isElementNode())
    156         return false;
    157     if (renderer->style().hasFlowInto())
    158         return true;
    159     return false;
    160 }
    161 
    162 static RenderObject* nextSiblingRenderer(const Node& node, const RenderElement& parentRenderer)
    163 {
    164     if (!parentRenderer.element())
    165         return nullptr;
    166     if (node.isAfterPseudoElement())
    167         return nullptr;
    168     Node* sibling = node.isBeforePseudoElement() ? NodeRenderingTraversal::firstChild(parentRenderer.element()) : NodeRenderingTraversal::nextSibling(&node);
    169     for (; sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) {
    170         RenderObject* renderer = sibling->renderer();
    171         if (renderer && !isRendererReparented(renderer))
    172             return renderer;
    173     }
    174     if (PseudoElement* after = parentRenderer.element()->afterPseudoElement())
    175         return after->renderer();
    176     return nullptr;
    177 }
    178 
    179 RenderTreePosition::RenderTreePosition(RenderView& root)
    180     : m_parent(root)
    181     , m_nextSibling(nullptr)
    182     , m_hasValidNextSibling(true)
    183 #if !ASSERT_DISABLED
    184     , m_assertionLimitCounter(0)
    185 #endif
    186 {
    187 }
    188 
    189 RenderTreePosition::RenderTreePosition(RenderElement& parent)
    190     : m_parent(parent)
    191     , m_nextSibling(nullptr)
    192     , m_hasValidNextSibling(false)
    193 #if !ASSERT_DISABLED
    194     , m_assertionLimitCounter(0)
    195 #endif
    196 {
    197 }
    198 
    199 RenderTreePosition::RenderTreePosition(RenderElement& parent, RenderObject* nextSibling)
    200     : m_parent(parent)
    201     , m_nextSibling(nextSibling)
    202     , m_hasValidNextSibling(true)
    203 #if !ASSERT_DISABLED
    204     , m_assertionLimitCounter(0)
    205 #endif
    206 {
    207 }
    208 
    209 bool RenderTreePosition::canInsert(RenderElement& renderer) const
    210 {
    211     ASSERT(!renderer.parent());
    212     return m_parent.isChildAllowed(renderer, renderer.style());
    213 }
    214 
    215 bool RenderTreePosition::canInsert(RenderText& renderer) const
    216 {
    217     ASSERT(!renderer.parent());
    218     return m_parent.isChildAllowed(renderer, m_parent.style());
    219 }
    220 
    221 void RenderTreePosition::insert(RenderObject& renderer)
    222 {
    223     ASSERT(m_hasValidNextSibling);
    224     m_parent.addChild(&renderer, m_nextSibling);
    225 }
    226 
    227 void RenderTreePosition::computeNextSibling(const Node& node)
    228 {
    229     ASSERT(!node.renderer());
    230     if (m_hasValidNextSibling) {
    231         // Stop validating at some point so the assert doesn't make us O(N^2) on debug builds.
    232         ASSERT(m_parent.isRenderView() || ++m_assertionLimitCounter > 20 || nextSiblingRenderer(node, m_parent) == m_nextSibling);
    233         return;
    234     }
    235     m_nextSibling = nextSiblingRenderer(node, m_parent);
    236     m_hasValidNextSibling = true;
    237 }
    238 
    239 void RenderTreePosition::invalidateNextSibling(const RenderObject& siblingRenderer)
    240 {
    241     if (!m_hasValidNextSibling)
    242         return;
    243     if (m_nextSibling == &siblingRenderer)
    244         m_hasValidNextSibling = false;
    245 }
    246 
    247128static bool shouldCreateRenderer(const Element& element, const RenderElement& parentRenderer)
    248129{
     
    304185        : renderTreePosition;
    305186
    306     RenderElement* newRenderer = element.createElementRenderer(style.releaseNonNull()).leakPtr();
     187    RenderElement* newRenderer = element.createElementRenderer(style.releaseNonNull(), insertionPosition).leakPtr();
    307188    if (!newRenderer)
    308189        return;
     
    335216    // Note: Adding newRenderer instead of renderer(). renderer() may be a child of newRenderer.
    336217    insertionPosition.insert(*newRenderer);
    337 }
    338 
    339 static RenderObject* previousSiblingRenderer(const Text& textNode)
    340 {
    341     if (textNode.renderer())
    342         return textNode.renderer()->previousSibling();
    343     for (Node* sibling = NodeRenderingTraversal::previousSibling(&textNode); sibling; sibling = NodeRenderingTraversal::previousSibling(sibling)) {
    344         RenderObject* renderer = sibling->renderer();
    345         if (renderer && !isRendererReparented(renderer))
    346             return renderer;
    347     }
    348     if (PseudoElement* before = textNode.parentElement()->beforePseudoElement())
    349         return before->renderer();
    350     return nullptr;
    351218}
    352219
     
    362229        if (is<Element>(*sibling)) {
    363230            // Text renderers beyond rendered elements can't be affected.
    364             if (!sibling->renderer() || isRendererReparented(sibling->renderer()))
     231            if (!sibling->renderer() || RenderTreePosition::isRendererReparented(*sibling->renderer()))
    365232                continue;
    366233            return;
     
    394261        return true;
    395262
    396     RenderObject* previousRenderer = previousSiblingRenderer(textNode);
     263    RenderObject* previousRenderer = RenderTreePosition::previousSiblingRenderer(textNode);
    397264    if (previousRenderer && previousRenderer->isBR()) // <span><br/> <br/></span>
    398265        return false;
     
    409276        while (first && first->isFloatingOrOutOfFlowPositioned())
    410277            first = first->nextSibling();
    411         RenderObject* nextRenderer = nextSiblingRenderer(textNode, parentRenderer);
     278        RenderObject* nextRenderer = RenderTreePosition::nextSiblingRenderer(textNode, parentRenderer);
    412279        if (!first || nextRenderer == first) {
    413280            // Whitespace at the start of a block just goes away. Don't even make a render object for this text.
  • trunk/Source/WebCore/svg/SVGAElement.cpp

    r182121 r183160  
    106106}
    107107
    108 RenderPtr<RenderElement> SVGAElement::createElementRenderer(Ref<RenderStyle>&& style)
     108RenderPtr<RenderElement> SVGAElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    109109{
    110110    if (parentNode() && parentNode()->isSVGElement() && downcast<SVGElement>(*parentNode()).isTextContent())
  • trunk/Source/WebCore/svg/SVGAElement.h

    r182121 r183160  
    4747    virtual void svgAttributeChanged(const QualifiedName&) override;
    4848
    49     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     49    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5050    virtual bool childShouldCreateRenderer(const Node&) const override;
    5151
  • trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp

    r178048 r183160  
    8383}
    8484
    85 RenderPtr<RenderElement> SVGAltGlyphElement::createElementRenderer(Ref<RenderStyle>&& style)
     85RenderPtr<RenderElement> SVGAltGlyphElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    8686{
    8787    return createRenderer<RenderSVGTSpan>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGAltGlyphElement.h

    r178048 r183160  
    4848    SVGAltGlyphElement(const QualifiedName&, Document&);
    4949
    50     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     50    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5151    virtual bool childShouldCreateRenderer(const Node&) const override;
    5252
  • trunk/Source/WebCore/svg/SVGCircleElement.cpp

    r182121 r183160  
    9999}
    100100
    101 RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(Ref<RenderStyle>&& style)
     101RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    102102{
    103103    return createRenderer<RenderSVGEllipse>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGCircleElement.h

    r182121 r183160  
    4444    virtual bool selfHasRelativeLengths() const override { return true; }
    4545
    46     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     46    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4747
    4848    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGCircleElement)
  • trunk/Source/WebCore/svg/SVGClipPathElement.cpp

    r182121 r183160  
    103103}
    104104
    105 RenderPtr<RenderElement> SVGClipPathElement::createElementRenderer(Ref<RenderStyle>&& style)
     105RenderPtr<RenderElement> SVGClipPathElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    106106{
    107107    return createRenderer<RenderSVGResourceClipper>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGClipPathElement.h

    r182121 r183160  
    4949    virtual void childrenChanged(const ChildChange&) override;
    5050
    51     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     51    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5252
    5353    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGClipPathElement)
  • trunk/Source/WebCore/svg/SVGDefsElement.cpp

    r178048 r183160  
    5252}
    5353
    54 RenderPtr<RenderElement> SVGDefsElement::createElementRenderer(Ref<RenderStyle>&& style)
     54RenderPtr<RenderElement> SVGDefsElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    5555{
    5656    return createRenderer<RenderSVGHiddenContainer>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGDefsElement.h

    r178048 r183160  
    3939    virtual bool supportsFocus() const override { return false; }
    4040
    41     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     41    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4242
    4343    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGDefsElement)
  • trunk/Source/WebCore/svg/SVGEllipseElement.cpp

    r182121 r183160  
    101101}
    102102
    103 RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(Ref<RenderStyle>&& style)
     103RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    104104{
    105105    return createRenderer<RenderSVGEllipse>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGEllipseElement.h

    r182121 r183160  
    4444    virtual bool selfHasRelativeLengths() const override { return true; };
    4545
    46     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     46    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4747
    4848    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGEllipseElement)
  • trunk/Source/WebCore/svg/SVGFilterElement.cpp

    r182121 r183160  
    184184}
    185185
    186 RenderPtr<RenderElement> SVGFilterElement::createElementRenderer(Ref<RenderStyle>&& style)
     186RenderPtr<RenderElement> SVGFilterElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    187187{
    188188    return createRenderer<RenderSVGResourceFilter>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGFilterElement.h

    r182121 r183160  
    5454    virtual void childrenChanged(const ChildChange&) override;
    5555
    56     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     56    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5757    virtual bool childShouldCreateRenderer(const Node&) const override;
    5858
  • trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp

    r182121 r183160  
    138138}
    139139
    140 RenderPtr<RenderElement> SVGFilterPrimitiveStandardAttributes::createElementRenderer(Ref<RenderStyle>&& style)
     140RenderPtr<RenderElement> SVGFilterPrimitiveStandardAttributes::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    141141{
    142142    return createRenderer<RenderSVGResourceFilterPrimitive>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h

    r182121 r183160  
    5858    virtual bool isFilterEffect() const override { return true; }
    5959
    60     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     60    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6161    virtual bool rendererIsNeeded(const RenderStyle&) override;
    6262    virtual bool childShouldCreateRenderer(const Node&) const override { return false; }
  • trunk/Source/WebCore/svg/SVGForeignObjectElement.cpp

    r182121 r183160  
    123123}
    124124
    125 RenderPtr<RenderElement> SVGForeignObjectElement::createElementRenderer(Ref<RenderStyle>&& style)
     125RenderPtr<RenderElement> SVGForeignObjectElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    126126{
    127127    return createRenderer<RenderSVGForeignObject>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGForeignObjectElement.h

    r182121 r183160  
    4545    virtual bool rendererIsNeeded(const RenderStyle&) override;
    4646    virtual bool childShouldCreateRenderer(const Node&) const override;
    47     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     47    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4848
    4949    virtual bool selfHasRelativeLengths() const override { return true; }
  • trunk/Source/WebCore/svg/SVGGElement.cpp

    r182121 r183160  
    8484}
    8585
    86 RenderPtr<RenderElement> SVGGElement::createElementRenderer(Ref<RenderStyle>&& style)
     86RenderPtr<RenderElement> SVGGElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    8787{
    8888    // SVG 1.1 testsuite explicitely uses constructs like <g display="none"><linearGradient>
  • trunk/Source/WebCore/svg/SVGGElement.h

    r182121 r183160  
    3737    SVGGElement(const QualifiedName&, Document&);
    3838
    39     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     39    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4040
    4141    virtual bool isValid() const override { return SVGTests::isValid(); }
  • trunk/Source/WebCore/svg/SVGGraphicsElement.cpp

    r182121 r183160  
    162162}
    163163
    164 RenderPtr<RenderElement> SVGGraphicsElement::createElementRenderer(Ref<RenderStyle>&& style)
     164RenderPtr<RenderElement> SVGGraphicsElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    165165{
    166166    // By default, any subclass is expected to do path-based drawing
  • trunk/Source/WebCore/svg/SVGGraphicsElement.h

    r182121 r183160  
    5252    // "base class" methods for all the elements which render as paths
    5353    virtual void toClipPath(Path&);
    54     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     54    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5555
    5656protected:
  • trunk/Source/WebCore/svg/SVGImageElement.cpp

    r182266 r183160  
    161161}
    162162
    163 RenderPtr<RenderElement> SVGImageElement::createElementRenderer(Ref<RenderStyle>&& style)
     163RenderPtr<RenderElement> SVGImageElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    164164{
    165165    return createRenderer<RenderSVGImage>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGImageElement.h

    r182121 r183160  
    5050    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
    5151
    52     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     52    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5353
    5454    virtual const AtomicString& imageSourceURL() const override;
  • trunk/Source/WebCore/svg/SVGLinearGradientElement.cpp

    r182121 r183160  
    114114}
    115115
    116 RenderPtr<RenderElement> SVGLinearGradientElement::createElementRenderer(Ref<RenderStyle>&& style)
     116RenderPtr<RenderElement> SVGLinearGradientElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    117117{
    118118    return createRenderer<RenderSVGResourceLinearGradient>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGLinearGradientElement.h

    r182121 r183160  
    4343    virtual void svgAttributeChanged(const QualifiedName&) override;
    4444
    45     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     45    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4646
    4747    virtual bool selfHasRelativeLengths() const override;
  • trunk/Source/WebCore/svg/SVGMarkerElement.cpp

    r182121 r183160  
    214214}
    215215
    216 RenderPtr<RenderElement> SVGMarkerElement::createElementRenderer(Ref<RenderStyle>&& style)
     216RenderPtr<RenderElement> SVGMarkerElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    217217{
    218218    return createRenderer<RenderSVGResourceMarker>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGMarkerElement.h

    r182121 r183160  
    133133    virtual void childrenChanged(const ChildChange&) override;
    134134
    135     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     135    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    136136    virtual bool rendererIsNeeded(const RenderStyle&) override { return true; }
    137137
  • trunk/Source/WebCore/svg/SVGMaskElement.cpp

    r182121 r183160  
    158158}
    159159
    160 RenderPtr<RenderElement> SVGMaskElement::createElementRenderer(Ref<RenderStyle>&& style)
     160RenderPtr<RenderElement> SVGMaskElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    161161{
    162162    RenderPtr<RenderElement> maskRenderer = createRenderer<RenderSVGResourceMasker>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGMaskElement.h

    r182121 r183160  
    5656    HashSet<RenderLayer*> m_clientLayers;
    5757
    58     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     58    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    5959
    6060    virtual bool selfHasRelativeLengths() const override { return true; }
  • trunk/Source/WebCore/svg/SVGPathElement.cpp

    r182121 r183160  
    392392}
    393393
    394 RenderPtr<RenderElement> SVGPathElement::createElementRenderer(Ref<RenderStyle>&& style)
     394RenderPtr<RenderElement> SVGPathElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    395395{
    396396    // By default, any subclass is expected to do path-based drawing
  • trunk/Source/WebCore/svg/SVGPathElement.h

    r182121 r183160  
    117117    END_DECLARE_ANIMATED_PROPERTIES
    118118
    119     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     119    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    120120
    121121    virtual Node::InsertionNotificationRequest insertedInto(ContainerNode&) override;
  • trunk/Source/WebCore/svg/SVGPatternElement.cpp

    r182121 r183160  
    183183}
    184184
    185 RenderPtr<RenderElement> SVGPatternElement::createElementRenderer(Ref<RenderStyle>&& style)
     185RenderPtr<RenderElement> SVGPatternElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    186186{
    187187    return createRenderer<RenderSVGResourcePattern>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGPatternElement.h

    r182121 r183160  
    6363    virtual void childrenChanged(const ChildChange&) override;
    6464
    65     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     65    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6666
    6767    virtual bool selfHasRelativeLengths() const override { return true; }
  • trunk/Source/WebCore/svg/SVGRadialGradientElement.cpp

    r182121 r183160  
    126126}
    127127
    128 RenderPtr<RenderElement> SVGRadialGradientElement::createElementRenderer(Ref<RenderStyle>&& style)
     128RenderPtr<RenderElement> SVGRadialGradientElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    129129{
    130130    return createRenderer<RenderSVGResourceRadialGradient>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGRadialGradientElement.h

    r182121 r183160  
    4343    virtual void svgAttributeChanged(const QualifiedName&) override;
    4444
    45     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     45    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4646
    4747    virtual bool selfHasRelativeLengths() const override;
  • trunk/Source/WebCore/svg/SVGRectElement.cpp

    r182121 r183160  
    111111}
    112112
    113 RenderPtr<RenderElement> SVGRectElement::createElementRenderer(Ref<RenderStyle>&& style)
     113RenderPtr<RenderElement> SVGRectElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    114114{
    115115    return createRenderer<RenderSVGRect>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGRectElement.h

    r182121 r183160  
    4545    virtual bool selfHasRelativeLengths() const override { return true; }
    4646
    47     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     47    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4848
    4949    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGRectElement)
  • trunk/Source/WebCore/svg/SVGSVGElement.cpp

    r182121 r183160  
    440440}
    441441
    442 RenderPtr<RenderElement> SVGSVGElement::createElementRenderer(Ref<RenderStyle>&& style)
     442RenderPtr<RenderElement> SVGSVGElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    443443{
    444444    if (isOutermostSVGSVGElement())
  • trunk/Source/WebCore/svg/SVGSVGElement.h

    r179982 r183160  
    135135    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
    136136    virtual bool rendererIsNeeded(const RenderStyle&) override;
    137     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     137    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    138138    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
    139139    virtual void removedFrom(ContainerNode&) override;
  • trunk/Source/WebCore/svg/SVGStopElement.cpp

    r182121 r183160  
    7777}
    7878
    79 RenderPtr<RenderElement> SVGStopElement::createElementRenderer(Ref<RenderStyle>&& style)
     79RenderPtr<RenderElement> SVGStopElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    8080{
    8181    return createRenderer<RenderSVGGradientStop>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGStopElement.h

    r182121 r183160  
    4141    virtual bool isGradientStop() const override { return true; }
    4242
    43     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     43    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4444    virtual bool rendererIsNeeded(const RenderStyle&) override;
    4545
  • trunk/Source/WebCore/svg/SVGSwitchElement.cpp

    r178048 r183160  
    6161}
    6262
    63 RenderPtr<RenderElement> SVGSwitchElement::createElementRenderer(Ref<RenderStyle>&& style)
     63RenderPtr<RenderElement> SVGSwitchElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6464{
    6565    return createRenderer<RenderSVGTransformableContainer>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGSwitchElement.h

    r178048 r183160  
    3939
    4040    virtual bool childShouldCreateRenderer(const Node&) const override;
    41     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     41    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4242
    4343    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGSwitchElement)
  • trunk/Source/WebCore/svg/SVGSymbolElement.cpp

    r182121 r183160  
    7575}
    7676
    77 RenderPtr<RenderElement> SVGSymbolElement::createElementRenderer(Ref<RenderStyle>&& style)
     77RenderPtr<RenderElement> SVGSymbolElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    7878{
    7979    return createRenderer<RenderSVGHiddenContainer>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGSymbolElement.h

    r182121 r183160  
    4242    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
    4343    virtual void svgAttributeChanged(const QualifiedName&) override;
    44     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     44    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4545
    4646    virtual bool selfHasRelativeLengths() const override;
  • trunk/Source/WebCore/svg/SVGTRefElement.cpp

    r182121 r183160  
    196196}
    197197
    198 RenderPtr<RenderElement> SVGTRefElement::createElementRenderer(Ref<RenderStyle>&& style)
     198RenderPtr<RenderElement> SVGTRefElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    199199{
    200200    return createRenderer<RenderSVGInline>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGTRefElement.h

    r182121 r183160  
    4242    virtual void svgAttributeChanged(const QualifiedName&) override;
    4343
    44     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     44    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    4545    virtual bool childShouldCreateRenderer(const Node&) const override;
    4646    virtual bool rendererIsNeeded(const RenderStyle&) override;
  • trunk/Source/WebCore/svg/SVGTSpanElement.cpp

    r178048 r183160  
    3939}
    4040
    41 RenderPtr<RenderElement> SVGTSpanElement::createElementRenderer(Ref<RenderStyle>&& style)
     41RenderPtr<RenderElement> SVGTSpanElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    4242{
    4343    return createRenderer<RenderSVGTSpan>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGTSpanElement.h

    r178048 r183160  
    3333    SVGTSpanElement(const QualifiedName&, Document&);
    3434           
    35     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     35    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    3636    virtual bool childShouldCreateRenderer(const Node&) const override;
    3737    virtual bool rendererIsNeeded(const RenderStyle&) override;
  • trunk/Source/WebCore/svg/SVGTextElement.cpp

    r182121 r183160  
    6565}
    6666
    67 RenderPtr<RenderElement> SVGTextElement::createElementRenderer(Ref<RenderStyle>&& style)
     67RenderPtr<RenderElement> SVGTextElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    6868{
    6969    return createRenderer<RenderSVGText>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGTextElement.h

    r178048 r183160  
    3535    SVGTextElement(const QualifiedName&, Document&);
    3636
    37     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     37    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    3838    virtual bool childShouldCreateRenderer(const Node&) const override;
    3939};
  • trunk/Source/WebCore/svg/SVGTextPathElement.cpp

    r182121 r183160  
    124124}
    125125
    126 RenderPtr<RenderElement> SVGTextPathElement::createElementRenderer(Ref<RenderStyle>&& style)
     126RenderPtr<RenderElement> SVGTextPathElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    127127{
    128128    return createRenderer<RenderSVGTextPath>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGTextPathElement.h

    r182121 r183160  
    130130    virtual void svgAttributeChanged(const QualifiedName&) override;
    131131
    132     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     132    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    133133    virtual bool childShouldCreateRenderer(const Node&) const override;
    134134    virtual bool rendererIsNeeded(const RenderStyle&) override;
  • trunk/Source/WebCore/svg/SVGUseElement.cpp

    r182121 r183160  
    262262}
    263263
    264 RenderPtr<RenderElement> SVGUseElement::createElementRenderer(Ref<RenderStyle>&& style)
     264RenderPtr<RenderElement> SVGUseElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
    265265{
    266266    return createRenderer<RenderSVGTransformableContainer>(*this, WTF::move(style));
  • trunk/Source/WebCore/svg/SVGUseElement.h

    r179980 r183160  
    6565    virtual void svgAttributeChanged(const QualifiedName&) override;
    6666    virtual void willAttachRenderers() override;
    67     virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
     67    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
    6868    virtual void toClipPath(Path&) override;
    6969    virtual bool haveLoadedRequiredResources() override;
Note: See TracChangeset for help on using the changeset viewer.