| Index: Source/core/dom/RenderTreeBuilder.h
|
| diff --git a/Source/core/dom/RenderTreeBuilder.h b/Source/core/dom/RenderTreeBuilder.h
|
| index dc7a379bd0ffce1d56ec1b5c95f5b3dd4824ea87..30d639c4d921dfedc25c9f910104ecda34f7adc8 100644
|
| --- a/Source/core/dom/RenderTreeBuilder.h
|
| +++ b/Source/core/dom/RenderTreeBuilder.h
|
| @@ -27,21 +27,36 @@
|
| #define RenderTreeBuilder_h
|
|
|
| #include "core/dom/Document.h"
|
| -#include "core/dom/FirstLetterPseudoElement.h"
|
| #include "core/dom/Node.h"
|
| #include "core/dom/NodeRenderingTraversal.h"
|
| -#include "core/rendering/RenderObject.h"
|
| #include "wtf/RefPtr.h"
|
|
|
| namespace blink {
|
|
|
| class ContainerNode;
|
| +class RenderObject;
|
| class RenderStyle;
|
|
|
| class RenderTreeBuilder {
|
| STACK_ALLOCATED();
|
| public:
|
| - RenderTreeBuilder(Node*, RenderStyle*);
|
| + RenderTreeBuilder(Node* node, RenderStyle* style)
|
| + : m_node(node)
|
| + , m_renderingParent(nullptr)
|
| + , m_style(style)
|
| + {
|
| + ASSERT(!node->renderer());
|
| + ASSERT(node->needsAttach());
|
| + ASSERT(node->document().inStyleRecalc());
|
| +
|
| + // FIXME: We should be able to ASSERT(node->inActiveDocument()) but childrenChanged is called
|
| + // before ChildNodeInsertionNotifier in ContainerNode's methods and some implementations
|
| + // will trigger a layout inside childrenChanged.
|
| + // Mainly HTMLTextAreaElement::childrenChanged calls HTMLTextFormControlElement::setSelectionRange
|
| + // which does an updateLayoutIgnorePendingStylesheets.
|
| +
|
| + m_renderingParent = NodeRenderingTraversal::parent(node, &m_parentDetails);
|
| + }
|
|
|
| void createRendererForTextIfNeeded();
|
| void createRendererForElementIfNeeded();
|
| @@ -53,7 +68,7 @@ private:
|
| RenderStyle& style() const;
|
|
|
| RawPtrWillBeMember<Node> m_node;
|
| - RawPtrWillBeMember<RenderObject> m_renderingParent;
|
| + RawPtrWillBeMember<ContainerNode> m_renderingParent;
|
| NodeRenderingTraversal::ParentDetails m_parentDetails;
|
| mutable RefPtr<RenderStyle> m_style;
|
| };
|
|
|