| Index: Source/core/dom/RenderTreeBuilder.cpp
|
| diff --git a/Source/core/dom/RenderTreeBuilder.cpp b/Source/core/dom/RenderTreeBuilder.cpp
|
| index 58d5e1bcd625fc842d35b2a090f582c2ca071344..168fcce88be4aa17d155cf9627e9d97dbd9d100f 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"
|
| @@ -52,9 +50,6 @@ RenderObject* RenderTreeBuilder::nextRenderer() const
|
| if (element && element->isInTopLayer())
|
| return NodeRenderingTraversal::nextInTopLayer(element);
|
|
|
| - 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;
|
| @@ -76,13 +71,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();
|
| }
|
|
|
| @@ -105,72 +93,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)
|
| @@ -188,11 +110,9 @@ void RenderTreeBuilder::createRendererForElementIfNeeded()
|
|
|
| Element* element = toElement(m_node);
|
|
|
| - if (!shouldCreateRenderer() && !elementInsideRegionNeedsRenderer())
|
| + if (!shouldCreateRenderer())
|
| return;
|
|
|
| - moveToFlowThreadIfNeeded();
|
| -
|
| RenderStyle& style = this->style();
|
|
|
| if (!element->rendererIsNeeded(style))
|
|
|