| Index: Source/core/dom/RenderTreeBuilder.cpp
|
| diff --git a/Source/core/dom/RenderTreeBuilder.cpp b/Source/core/dom/RenderTreeBuilder.cpp
|
| index 7572603e73763b11ab81fd4bb3a7ae75ca1aa8b9..e2a3d25c1957ba80376cb796947849cf312a8524 100644
|
| --- a/Source/core/dom/RenderTreeBuilder.cpp
|
| +++ b/Source/core/dom/RenderTreeBuilder.cpp
|
| @@ -29,8 +29,10 @@
|
| #include "core/HTMLNames.h"
|
| #include "core/SVGNames.h"
|
| #include "core/css/resolver/StyleResolver.h"
|
| +#include "core/dom/FirstLetterHelper.h"
|
| #include "core/dom/Fullscreen.h"
|
| #include "core/dom/Node.h"
|
| +#include "core/dom/PseudoElement.h"
|
| #include "core/dom/Text.h"
|
| #include "core/rendering/RenderFullScreen.h"
|
| #include "core/rendering/RenderObject.h"
|
| @@ -54,6 +56,9 @@ RenderObject* RenderTreeBuilder::nextRenderer() const
|
| if (m_renderingParent->needsAttach())
|
| return 0;
|
|
|
| + if (element && element->isFirstLetterPseudoElement())
|
| + return FirstLetterHelper::firstLetterTextRenderer(*element);
|
| +
|
| return NodeRenderingTraversal::nextSiblingRenderer(m_node);
|
| }
|
|
|
| @@ -63,6 +68,11 @@ RenderObject* RenderTreeBuilder::parentRenderer() const
|
|
|
| Element* element = m_node->isElementNode() ? toElement(m_node) : 0;
|
|
|
| + if (element && element->isFirstLetterPseudoElement()) {
|
| + RenderObject* nextRenderer = FirstLetterHelper::firstLetterTextRenderer(*element);
|
| + return nextRenderer ? nextRenderer->parent() : nullptr;
|
| + }
|
| +
|
| if (element && m_renderingParent->renderer()) {
|
| // FIXME: Guarding this by m_renderingParent->renderer() isn't quite right as the spec for
|
| // top layer only talks about display: none ancestors so putting a <dialog> inside an
|
|
|