| Index: Source/core/dom/RenderTreeBuilder.cpp
|
| diff --git a/Source/core/dom/RenderTreeBuilder.cpp b/Source/core/dom/RenderTreeBuilder.cpp
|
| index c0b15ee8ff3ddecdbda4f73d9041c64f8124a511..ba8f1bbaeaac0b9460eb1006fdf18444a8600b70 100644
|
| --- a/Source/core/dom/RenderTreeBuilder.cpp
|
| +++ b/Source/core/dom/RenderTreeBuilder.cpp
|
| @@ -33,9 +33,7 @@
|
| #include "core/dom/FullscreenElementStack.h"
|
| #include "core/dom/Node.h"
|
| #include "core/dom/Text.h"
|
| -#include "core/rendering/FlowThreadController.h"
|
| #include "core/rendering/RenderFullScreen.h"
|
| -#include "core/rendering/RenderNamedFlowThread.h"
|
| #include "core/rendering/RenderObject.h"
|
| #include "core/rendering/RenderText.h"
|
| #include "core/rendering/RenderView.h"
|
| @@ -57,9 +55,6 @@ RenderObject* RenderTreeBuilder::nextRenderer() const
|
| return 0;
|
| }
|
|
|
| - if (m_parentFlowRenderer)
|
| - return m_parentFlowRenderer->nextRendererForNode(m_node);
|
| -
|
| // Avoid an O(N^2) walk over the children when reattaching all children of a node.
|
| if (m_renderingParent->needsAttach())
|
| return 0;
|
| @@ -88,13 +83,6 @@ RenderObject* RenderTreeBuilder::parentRenderer() const
|
| return m_node->document().renderView();
|
| }
|
|
|
| - // Even if the normal parent has no renderer we still can be flowed into a named flow.
|
| - // FIXME: This is bad, it breaks the assumption that if you have a renderer then
|
| - // NodeRenderingTraversal::parent(this) also has one which likely means lots of bugs
|
| - // with regions.
|
| - if (m_parentFlowRenderer)
|
| - return m_parentFlowRenderer;
|
| -
|
| return m_renderingParent->renderer();
|
| }
|
|
|
| @@ -115,72 +103,6 @@ bool RenderTreeBuilder::shouldCreateRenderer() const
|
| return true;
|
| }
|
|
|
| -// Check the specific case of elements that are children of regions but are flowed into a flow thread themselves.
|
| -bool RenderTreeBuilder::elementInsideRegionNeedsRenderer()
|
| -{
|
| - if (!RuntimeEnabledFeatures::cssRegionsEnabled())
|
| - return false;
|
| - Element& element = toElement(*m_node);
|
| - RenderObject* parentRenderer = this->parentRenderer();
|
| - if ((parentRenderer && !parentRenderer->canHaveChildren() && parentRenderer->isRenderNamedFlowFragmentContainer())
|
| - || (!parentRenderer && element.parentElement() && element.parentElement()->isInsideRegion())) {
|
| -
|
| - // Children of this element will only be allowed to be flowed into other flow-threads if display is NOT none.
|
| - if (element.rendererIsNeeded(style()))
|
| - element.setIsInsideRegion(true);
|
| -
|
| - return shouldMoveToFlowThread();
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -
|
| -bool RenderTreeBuilder::shouldMoveToFlowThread() const
|
| -{
|
| - Element& element = toElement(*m_node);
|
| - RenderStyle& style = this->style();
|
| -
|
| - if (style.flowThread().isEmpty())
|
| - return false;
|
| -
|
| - if (FullscreenElementStack::isActiveFullScreenElement(&element))
|
| - return false;
|
| -
|
| - if (element.isInShadowTree())
|
| - return false;
|
| -
|
| - // As per http://dev.w3.org/csswg/css3-regions/#flow-into, pseudo-elements such as
|
| - // ::first-line, ::first-letter, ::before or ::after cannot be directly collected
|
| - // into a named flow.
|
| - if (element.isPseudoElement())
|
| - return false;
|
| -
|
| - // Allow only svg root elements to be directly collected by a render flow thread.
|
| - if (element.isSVGElement()) {
|
| - if (!element.hasTagName(SVGNames::svgTag))
|
| - return false;
|
| - if (!element.parentNode())
|
| - return false;
|
| - if (element.parentNode()->isSVGElement())
|
| - return false;
|
| - }
|
| -
|
| - return !element.isRegisteredWithNamedFlow();
|
| -}
|
| -
|
| -void RenderTreeBuilder::moveToFlowThreadIfNeeded()
|
| -{
|
| - if (!RuntimeEnabledFeatures::cssRegionsEnabled())
|
| - return;
|
| -
|
| - if (!shouldMoveToFlowThread())
|
| - return;
|
| -
|
| - FlowThreadController* flowThreadController = m_node->document().renderView()->flowThreadController();
|
| - m_parentFlowRenderer = flowThreadController->ensureRenderFlowThreadWithName(style().flowThread());
|
| - flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer);
|
| -}
|
| -
|
| RenderStyle& RenderTreeBuilder::style() const
|
| {
|
| if (!m_style)
|
| @@ -198,11 +120,9 @@ void RenderTreeBuilder::createRendererForElementIfNeeded()
|
|
|
| Element* element = toElement(m_node);
|
|
|
| - if (!shouldCreateRenderer() && !elementInsideRegionNeedsRenderer())
|
| + if (!shouldCreateRenderer())
|
| return;
|
|
|
| - moveToFlowThreadIfNeeded();
|
| -
|
| RenderStyle& style = this->style();
|
|
|
| if (!element->rendererIsNeeded(style))
|
| @@ -219,10 +139,6 @@ void RenderTreeBuilder::createRendererForElementIfNeeded()
|
| return;
|
| }
|
|
|
| - // Make sure the RenderObject already knows it is going to be added to a RenderFlowThread before we set the style
|
| - // for the first time. Otherwise code using inRenderFlowThread() in the styleWillChange and styleDidChange will fail.
|
| - newRenderer->setFlowThreadState(parentRenderer->flowThreadState());
|
| -
|
| RenderObject* nextRenderer = this->nextRenderer();
|
| element->setRenderer(newRenderer);
|
| newRenderer->setAnimatableStyle(&style); // setAnimatableStyle() can depend on renderer() already being set.
|
| @@ -265,10 +181,6 @@ void RenderTreeBuilder::createRendererForTextIfNeeded()
|
| return;
|
| }
|
|
|
| - // Make sure the RenderObject already knows it is going to be added to a RenderFlowThread before we set the style
|
| - // for the first time. Otherwise code using inRenderFlowThread() in the styleWillChange and styleDidChange will fail.
|
| - newRenderer->setFlowThreadState(parentRenderer->flowThreadState());
|
| -
|
| RenderObject* nextRenderer = this->nextRenderer();
|
| textNode->setRenderer(newRenderer);
|
| // Parent takes care of the animations, no need to call setAnimatableStyle.
|
|
|