void NodeRenderingContext::moveToFlowThreadIfNeeded() { ASSERT(m_node->isElementNode()); ASSERT(m_style); if (!RuntimeEnabledFeatures::cssRegionsEnabled()) return; if (m_style->flowThread().isEmpty()) return; // 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 (m_node->isPseudoElement()) return; // FIXME: Do not collect elements if they are in shadow tree. if (m_node->isInShadowTree()) return; if (m_node->isElementNode() && FullscreenController::isActiveFullScreenElement(toElement(m_node))) return; // Allow only svg root elements to be directly collected by a render flow thread. if (m_node->isSVGElement() && (!(m_node->hasTagName(SVGNames::svgTag) && m_node->parentNode() && !m_node->parentNode()->isSVGElement()))) return; m_flowThread = m_style->flowThread(); ASSERT(m_node->document()->renderView()); FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); m_parentFlowRenderer = flowThreadController->ensureRenderFlowThreadWithName(m_flowThread); flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer); }
void NodeRenderingContext::moveToFlowThreadIfNeeded() { if (!m_node->document()->cssRegionsEnabled()) return; if (!m_node->isElementNode() || !m_style || m_style->flowThread().isEmpty()) return; // FIXME: Do not collect elements if they are in shadow tree. if (m_node->isInShadowTree()) return; #if ENABLE(SVG) // Allow only svg root elements to be directly collected by a render flow thread. if (m_node->isSVGElement() && (!(m_node->hasTagName(SVGNames::svgTag) && m_node->parentNode() && !m_node->parentNode()->isSVGElement()))) return; #endif m_flowThread = m_style->flowThread(); ASSERT(m_node->document()->renderView()); FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); m_parentFlowRenderer = flowThreadController->ensureRenderFlowThreadWithName(m_flowThread); flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer); }
void NodeRenderingContext::moveToFlowThread() { ASSERT(m_node->isElementNode()); ASSERT(toElement(m_node)->moveToFlowThreadIsNeeded(m_style)); if (!m_style) m_style = toElement(m_node)->styleForRenderer(); ASSERT(m_style); ASSERT(m_node->document()->renderView()); FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); m_parentFlowRenderer = flowThreadController->ensureRenderFlowThreadWithName(m_style->flowThread()); flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer); }
void NodeRenderingContext::moveToFlowThreadIfNeeded() { #if ENABLE(CSS_REGIONS) Element* element = toElement(m_node); if (!element->shouldMoveToFlowThread(m_style.get())) return; ASSERT(m_node->document()->renderView()); FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); m_parentFlowRenderer = &flowThreadController->ensureRenderFlowThreadWithName(m_style->flowThread()); flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer); #endif }
void NodeRenderingContext::moveToFlowThreadIfNeeded() { if (!RuntimeEnabledFeatures::cssRegionsEnabled()) return; Element* element = toElement(m_node); if (!element->shouldMoveToFlowThread(m_style.get())) return; ASSERT(m_node->document()->renderView()); FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); m_parentFlowRenderer = flowThreadController->ensureRenderFlowThreadWithName(m_style->flowThread()); flowThreadController->registerNamedFlowContentNode(m_node, m_parentFlowRenderer); }