Diff
Modified: trunk/LayoutTests/ChangeLog (152319 => 152320)
--- trunk/LayoutTests/ChangeLog 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/LayoutTests/ChangeLog 2013-07-02 20:43:31 UTC (rev 152320)
@@ -1,3 +1,15 @@
+2013-07-02 Radu Stavila <[email protected]>
+
+ [CSS Regions] Improve implementation of elements in region being flowed to another flow thread
+ https://bugs.webkit.org/show_bug.cgi?id=118300
+
+ Reviewed by David Hyatt.
+
+ * fast/regions/flow-body-in-html.html:
+ * fast/regions/region-content-flown-into-region-expected.html:
+ * fast/regions/region-content-flown-into-region.html:
+ * fast/regions/universal-selector-children-to-the-same-region.html:
+
2013-07-02 David Farler <[email protected]>
Skip cache partitioning tests on Lion.
Modified: trunk/LayoutTests/fast/regions/flow-body-in-html.html (152319 => 152320)
--- trunk/LayoutTests/fast/regions/flow-body-in-html.html 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/LayoutTests/fast/regions/flow-body-in-html.html 2013-07-02 20:43:31 UTC (rev 152320)
@@ -1,12 +1,12 @@
<html>
<head>
- <title>103685 - [CSS Regions] Universal child selector on region breaks the rendering of its content</title>
+ <title>74144 - [CSS Regions] Elements in a region should be assignable to a named flow</title>
<style type="text/css">
body {
- -webkit-flow-into: foo;
+ -webkit-flow-into: foo;
}
html {
- -webkit-flow-from: foo;
+ -webkit-flow-from: foo;
}
</style>
<script type="text/_javascript_">
Modified: trunk/LayoutTests/fast/regions/region-content-flown-into-region-expected.html (152319 => 152320)
--- trunk/LayoutTests/fast/regions/region-content-flown-into-region-expected.html 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/LayoutTests/fast/regions/region-content-flown-into-region-expected.html 2013-07-02 20:43:31 UTC (rev 152320)
@@ -1,23 +1,35 @@
<html>
<head>
<style type="text/css">
- div {
- padding: 1px;
- }
.region {
- border:solid 1px #bbb;
+ border:solid 1px red;
}
+ .redirectRegion {
+ border: solid 1px blue;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ .redirectRegion2 {
+ border:solid 1px green;
+ }
</style>
</head>
<body>
- <div class="region"><template>PASS r0: content that goes in the region.</template></div>
- <div class="region">
+ <div class="region">PASS r0: content that goes in the region.</div>
+ <div class="redirectRegion">
<div>PASS r1: content in the region that has flow-into. 1.</div>
- <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 2. <b>PASS r1: (enclosed in a div) content in the region that has flow-into. 3.</b>.</div>
- <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 4 .</div>
+ <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 2.
+ <b><br/>PASS r1: (b enclosed in the div above) content in the region that has flow-into. 3.</b>
+ </div>
+ <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 4.</div>
<div>PASS r1: content in the region that has flow-into. 5.</div>
+ <svg class="redirectContent" xmlns="http://www.w3.org/2000/svg" version="1.1" height="70">
+ <text x="0" y="15">PASS: SVG text</text>
+ <text x="0" y="30">PASS: SVG text redirected to a flow without regions. only svg root elements are directly collected by a render flow thread.</text>
+ <text x="0" y="45">PASS: SVG text redirected to a flow with regions. only svg root elements are directly collected by a render flow thread.</text>
+ </svg>
</div>
- <div class="region"><span>PASS r2: content that is already in a flow goes to another flow .</span></div>
+ <div class="redirectRegion2"><span>PASS r2: content that is already in a flow goes to another flow .</span></div>
<p><a href="" 74144</a> - [CSS Regions] Elements in a region should be assignable to a named flow</p>
</body>
</html>
\ No newline at end of file
Modified: trunk/LayoutTests/fast/regions/region-content-flown-into-region.html (152319 => 152320)
--- trunk/LayoutTests/fast/regions/region-content-flown-into-region.html 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/LayoutTests/fast/regions/region-content-flown-into-region.html 2013-07-02 20:43:31 UTC (rev 152320)
@@ -2,15 +2,12 @@
<head>
<title>74144 - [CSS Regions] Elements in a region should be assignable to a named flow</title>
<style type="text/css">
- div {
- padding: 1px;
- }
.content {
-webkit-flow-into: flow;
}
.region {
-webkit-flow-from: flow;
- border:solid 1px #bbb;
+ border:solid 1px red;
}
.redirectContent {
@@ -18,7 +15,9 @@
}
.redirectRegion {
-webkit-flow-from: redirectFlow;
- border:solid 1px #bbb;
+ border:solid 1px blue;
+ margin-top: 10px;
+ margin-bottom: 10px;
}
.redirectContent2 {
@@ -26,17 +25,21 @@
}
.redirectRegion2 {
-webkit-flow-from: redirectFlow2;
- border:solid 1px #bbb;
+ border:solid 1px green;
}
.redirectContentToNowhere {
-webkit-flow-into: redirectToNowhere;
}
+
+ .displayNone {
+ display: none;
+ }
</style>
- <template class="content">PASS r0: content that goes in the region.</template>
</head>
<body>
+ <div class="content">PASS r0: content that goes in the region.</div>
<div class="region">
FAIL: this should not be visible 1.
@@ -51,7 +54,7 @@
<div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 2.
<div class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere) 2.</div>
- <b>PASS r1: (enclosed in a div) content in the region that has flow-into. 3.</b>.
+ <b><br/>PASS r1: (b enclosed in the div above) content in the region that has flow-into. 3.</b>
</div>
FAIL: this should not be visible 4.
@@ -60,11 +63,10 @@
<div>
FAIL: this should not be visible 5.
- <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 4
+ <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 4.
<span class="redirectContent2">PASS r2: content that is already in a flow goes to another flow
<span class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere) 3.</span>.
</span>
- .
</div>
FAIL: this should not be visible 7.
@@ -77,14 +79,37 @@
<div class="redirectContent">PASS r1: content in the region that has flow-into. 5.</div>
FAIL: this should not be visible 9.
+
+ <div>
+ FAIL: this should not be visible 10.
+
+ <svg class="redirectContent" xmlns="http://www.w3.org/2000/svg" version="1.1" height="70">
+ <text x="0" y="15">PASS: SVG text</text>
+ <text x="0" y="30" class="redirectContentToNowhere">PASS: SVG text redirected to a flow without regions. only svg root elements are directly collected by a render flow thread.</text>
+ <text x="0" y="45" class="redirectContent2">PASS: SVG text redirected to a flow with regions. only svg root elements are directly collected by a render flow thread.</text>
+ </svg>
+
+ FAIL: this should not be visible 11.
+ </div>
+
+ <div class="displayNone">
+ FAIL: this should not be visible 12.
+
+ <div class="redirectContent">FAIL r1: (enclosed in a div) content in the region that has flow-into but display:none
+ <div class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere AND display:none)</div>
+ <b><br/>FAIL r1: (b enclosed in the div above) content in the region that has flow-into but display:none</b>
+ </div>
+
+ FAIL: this should not be visible 13.
+ </div>
</div>
<div class="redirectRegion">
- FAIL: this should not be visible 10.
+ FAIL: this should not be visible 14.
</div>
<div class="redirectRegion2">
- FAIL: this should not be visible 11.
+ FAIL: this should not be visible 15.
</div>
<p><a href="" 74144</a> - [CSS Regions] Elements in a region should be assignable to a named flow</p>
Modified: trunk/LayoutTests/fast/regions/universal-selector-children-to-the-same-region.html (152319 => 152320)
--- trunk/LayoutTests/fast/regions/universal-selector-children-to-the-same-region.html 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/LayoutTests/fast/regions/universal-selector-children-to-the-same-region.html 2013-07-02 20:43:31 UTC (rev 152320)
@@ -3,10 +3,10 @@
<title>103685 - [CSS Regions] Universal child selector on region breaks the rendering of its content</title>
<style type="text/css">
.region > * {
- -webkit-flow-into: foo;
+ -webkit-flow-into: foo;
}
.region {
- -webkit-flow-from: foo;
+ -webkit-flow-from: foo;
}
</style>
<script type="text/_javascript_">
Modified: trunk/Source/WebCore/ChangeLog (152319 => 152320)
--- trunk/Source/WebCore/ChangeLog 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/ChangeLog 2013-07-02 20:43:31 UTC (rev 152320)
@@ -1,3 +1,47 @@
+2013-07-02 Radu Stavila <[email protected]>
+
+ [CSS Regions] Improve implementation of elements in region being flowed to another flow thread
+ https://bugs.webkit.org/show_bug.cgi?id=118300
+
+ Reviewed by David Hyatt.
+
+ Methods that must be const have been turned back into const. Code has been better organized.
+ Performance is better. Tests have been added to.
+
+ * dom/Element.cpp:
+ (WebCore::Element::detach):
+ (WebCore::Element::setIsInsideRegion):
+ (WebCore::Element::isInsideRegion):
+ (WebCore::Element::shouldMoveToFlowThread):
+ * dom/Element.h:
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::isInsideRegion):
+ (WebCore::ElementRareData::setIsInsideRegion):
+ (WebCore::ElementRareData::ElementRareData):
+ * dom/Node.cpp:
+ (WebCore::Node::isRegisteredWithNamedFlow):
+ * dom/Node.h:
+ * dom/NodeRenderingContext.cpp:
+ (WebCore::NodeRenderingContext::parentRenderer):
+ (WebCore::NodeRenderingContext::shouldCreateRenderer):
+ (WebCore::NodeRenderingContext::elementInsideRegionNeedsRenderer):
+ (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
+ (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
+ * dom/NodeRenderingContext.h:
+ * dom/PseudoElement.h:
+ * dom/Text.cpp:
+ (WebCore::Text::textRendererIsNeeded):
+ * dom/Text.h:
+ * rendering/FlowThreadController.cpp:
+ (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
+ (WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
+ * rendering/FlowThreadController.h:
+ * rendering/RenderObject.h:
+ * rendering/RenderRegion.h:
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::shouldMoveToFlowThread):
+ * svg/SVGElement.h:
+
2013-07-02 Eric Carlson <[email protected]>
[Mac] .webkitClosedCaptionsVisible doesn't work with "Automatic" caption mode
Modified: trunk/Source/WebCore/dom/Element.cpp (152319 => 152320)
--- trunk/Source/WebCore/dom/Element.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Element.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -1476,6 +1476,7 @@
data->setIsInCanvasSubtree(false);
data->resetComputedStyle();
data->resetDynamicRestyleObservations();
+ data->setIsInsideRegion(false);
}
if (ElementShadow* shadow = this->shadow())
@@ -2419,6 +2420,19 @@
return hasRareData() && elementRareData()->isInCanvasSubtree();
}
+void Element::setIsInsideRegion(bool value)
+{
+ if (value == isInsideRegion())
+ return;
+
+ ensureElementRareData()->setIsInsideRegion(value);
+}
+
+bool Element::isInsideRegion() const
+{
+ return hasRareData() ? elementRareData()->isInsideRegion() : false;
+}
+
void Element::setRegionOversetState(RegionOversetState state)
{
ensureElementRareData()->setRegionOversetState(state);
@@ -2776,34 +2790,26 @@
return 0;
}
-bool Element::moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)
+#if ENABLE(CSS_REGIONS)
+
+bool Element::shouldMoveToFlowThread(RenderStyle* styleToUse) const
{
- Document* doc = document();
-
- if (!doc->cssRegionsEnabled())
- return false;
+ ASSERT(styleToUse);
#if ENABLE(FULLSCREEN_API)
- if (doc->webkitIsFullScreen() && doc->webkitCurrentFullScreenElement() == this)
+ if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == this)
return false;
#endif
if (isInShadowTree())
return false;
- if (!cachedStyle)
- cachedStyle = styleForRenderer();
- if (!cachedStyle)
+ if (styleToUse->flowThread().isEmpty())
return false;
- if (cachedStyle->flowThread().isEmpty())
- return false;
-
- return !document()->renderView()->flowThreadController()->isContentNodeRegisteredWithAnyNamedFlow(this);
+ return !isRegisteredWithNamedFlow();
}
-#if ENABLE(CSS_REGIONS)
-
const AtomicString& Element::webkitRegionOverset() const
{
document()->updateLayoutIgnorePendingStylesheets();
Modified: trunk/Source/WebCore/dom/Element.h (152319 => 152320)
--- trunk/Source/WebCore/dom/Element.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Element.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -479,6 +479,9 @@
void setIsInCanvasSubtree(bool);
bool isInCanvasSubtree() const;
+ void setIsInsideRegion(bool);
+ bool isInsideRegion() const;
+
void setRegionOversetState(RegionOversetState);
RegionOversetState regionOversetState() const;
@@ -632,7 +635,8 @@
PassRefPtr<RenderStyle> styleForRenderer();
RenderRegion* renderRegion() const;
- virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle);
+ virtual bool shouldMoveToFlowThread(RenderStyle*) const;
+
#if ENABLE(CSS_REGIONS)
const AtomicString& webkitRegionOverset() const;
Vector<RefPtr<Range> > webkitGetRegionFlowRanges() const;
Modified: trunk/Source/WebCore/dom/ElementRareData.h (152319 => 152320)
--- trunk/Source/WebCore/dom/ElementRareData.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -60,6 +60,9 @@
bool isInCanvasSubtree() const { return m_isInCanvasSubtree; }
void setIsInCanvasSubtree(bool value) { m_isInCanvasSubtree = value; }
+ bool isInsideRegion() const { return m_isInsideRegion; }
+ void setIsInsideRegion(bool value) { m_isInsideRegion = value; }
+
RegionOversetState regionOversetState() const { return m_regionOversetState; }
void setRegionOversetState(RegionOversetState state) { m_regionOversetState = state; }
@@ -159,6 +162,7 @@
unsigned m_childrenAffectedByForwardPositionalRules : 1;
unsigned m_childrenAffectedByBackwardPositionalRules : 1;
+ unsigned m_isInsideRegion : 1;
RegionOversetState m_regionOversetState;
LayoutSize m_minimumSizeForResizing;
@@ -207,6 +211,7 @@
, m_childrenAffectedByDirectAdjacentRules(false)
, m_childrenAffectedByForwardPositionalRules(false)
, m_childrenAffectedByBackwardPositionalRules(false)
+ , m_isInsideRegion(false)
, m_regionOversetState(RegionUndefined)
, m_minimumSizeForResizing(defaultMinimumSizeForResizing())
{
Modified: trunk/Source/WebCore/dom/Node.cpp (152319 => 152320)
--- trunk/Source/WebCore/dom/Node.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Node.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -60,6 +60,7 @@
#include "EventNames.h"
#include "ExceptionCode.h"
#include "ExceptionCodePlaceholder.h"
+#include "FlowThreadController.h"
#include "Frame.h"
#include "FrameView.h"
#include "HTMLElement.h"
@@ -1123,6 +1124,11 @@
return parentOrShadowHostNode() ? parentOrShadowHostNode()->canStartSelection() : true;
}
+bool Node::isRegisteredWithNamedFlow() const
+{
+ return document()->renderView()->flowThreadController()->isContentNodeRegisteredWithAnyNamedFlow(this);
+}
+
Element* Node::shadowHost() const
{
if (ShadowRoot* root = containingShadowRoot())
Modified: trunk/Source/WebCore/dom/Node.h (152319 => 152320)
--- trunk/Source/WebCore/dom/Node.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Node.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -276,6 +276,8 @@
bool inNamedFlow() const { return getFlag(InNamedFlowFlag); }
bool hasCustomStyleCallbacks() const { return getFlag(HasCustomStyleCallbacksFlag); }
+ bool isRegisteredWithNamedFlow() const;
+
bool hasSyntheticAttrChildNodes() const { return getFlag(HasSyntheticAttrChildNodesFlag); }
void setHasSyntheticAttrChildNodes(bool flag) { setFlag(flag, HasSyntheticAttrChildNodesFlag); }
Modified: trunk/Source/WebCore/dom/NodeRenderingContext.cpp (152319 => 152320)
--- trunk/Source/WebCore/dom/NodeRenderingContext.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/NodeRenderingContext.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -155,7 +155,7 @@
return 0;
}
-RenderObject* NodeRenderingContext::parentRenderer()
+RenderObject* NodeRenderingContext::parentRenderer() const
{
if (RenderObject* renderer = m_node->renderer())
return renderer->parent();
@@ -177,15 +177,10 @@
if (m_parentFlowRenderer)
return m_parentFlowRenderer;
- if (m_node->isElementNode() && toElement(m_node)->moveToFlowThreadIsNeeded(m_style)) {
- moveToFlowThread();
- return m_parentFlowRenderer;
- }
-
return m_renderingParent ? m_renderingParent->renderer() : 0;
}
-bool NodeRenderingContext::shouldCreateRenderer()
+bool NodeRenderingContext::shouldCreateRenderer() const
{
if (!m_node->document()->shouldCreateRenderers())
return false;
@@ -194,40 +189,42 @@
RenderObject* parentRenderer = this->parentRenderer();
if (!parentRenderer)
return false;
- if (!parentRenderer->canHaveChildren()
- && !(m_node->isPseudoElement() && parentRenderer->isRenderRegion())) {
- if (parentRenderer->canDOMChildrenHaveRenderParent()) {
- // In a region, only the children that need to be in a flow thread should have a renderer.
- bool shouldBeInNamedFlow = m_node->isElementNode() && toElement(m_node)->moveToFlowThreadIsNeeded(m_style);
- if (!shouldBeInNamedFlow)
- return false;
- } else
- return false;
- }
-
+ if (!parentRenderer->canHaveChildren() && !(m_node->isPseudoElement() && parentRenderer->canHaveGeneratedChildren()))
+ return false;
if (!m_renderingParent->childShouldCreateRenderer(*this))
return false;
return true;
}
-void NodeRenderingContext::moveToFlowThreadIfNeeded()
+// Check the specific case of elements that are children of regions but are flowed into a flow thread themselves.
+bool NodeRenderingContext::elementInsideRegionNeedsRenderer()
{
- ASSERT(m_node->isElementNode());
+ Element* element = toElement(m_node);
+ bool elementInsideRegionNeedsRenderer = false;
+ RenderObject* parentRenderer = this->parentRenderer();
+ if ((parentRenderer && !parentRenderer->canHaveChildren() && parentRenderer->isRenderRegion())
+ || (!parentRenderer && element->parentElement() && element->parentElement()->isInsideRegion())) {
- if (!toElement(m_node)->moveToFlowThreadIsNeeded(m_style))
- return;
+ if (!m_style)
+ m_style = element->styleForRenderer();
- moveToFlowThread();
+ elementInsideRegionNeedsRenderer = element->shouldMoveToFlowThread(m_style.get());
+
+ // Children of this element will only be allowed to be flowed into other flow-threads if display is NOT none.
+ if (element->rendererIsNeeded(*this))
+ element->setIsInsideRegion(true);
+ }
+
+ return elementInsideRegionNeedsRenderer;
}
-void NodeRenderingContext::moveToFlowThread()
+void NodeRenderingContext::moveToFlowThreadIfNeeded()
{
- ASSERT(m_node->isElementNode());
- ASSERT(toElement(m_node)->moveToFlowThreadIsNeeded(m_style));
+ Element* element = toElement(m_node);
- if (!m_style)
- m_style = toElement(m_node)->styleForRenderer();
- ASSERT(m_style);
+ 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());
@@ -250,8 +247,11 @@
Element* element = toElement(m_node);
- if (!shouldCreateRenderer())
+ element->setIsInsideRegion(false);
+
+ if (!shouldCreateRenderer() && !elementInsideRegionNeedsRenderer())
return;
+
if (!m_style)
m_style = element->styleForRenderer();
ASSERT(m_style);
Modified: trunk/Source/WebCore/dom/NodeRenderingContext.h (152319 => 152320)
--- trunk/Source/WebCore/dom/NodeRenderingContext.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/NodeRenderingContext.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -56,7 +56,7 @@
Node* node() const;
ContainerNode* parentNodeForRenderingAndStyle() const;
bool resetStyleInheritance() const;
- RenderObject* parentRenderer(); // the renderer that will be the parent for this node's renderer. In the case of RenderFlowThreads, it may need to create it.
+ RenderObject* parentRenderer() const;
RenderObject* nextRenderer() const;
RenderObject* previousRenderer() const;
InsertionPoint* insertionPoint() const;
@@ -67,9 +67,9 @@
bool isOnEncapsulationBoundary() const;
private:
- bool shouldCreateRenderer();
- void moveToFlowThread();
+ bool shouldCreateRenderer() const;
void moveToFlowThreadIfNeeded();
+ bool elementInsideRegionNeedsRenderer();
Node* m_node;
ContainerNode* m_renderingParent;
Modified: trunk/Source/WebCore/dom/PseudoElement.h (152319 => 152320)
--- trunk/Source/WebCore/dom/PseudoElement.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/PseudoElement.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -48,11 +48,7 @@
// 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.
- virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle) OVERRIDE
- {
- UNUSED_PARAM(cachedStyle);
- return false;
- }
+ virtual bool shouldMoveToFlowThread(RenderStyle*) const OVERRIDE { return false; }
virtual bool canStartSelection() const OVERRIDE { return false; }
virtual bool canContainRangeEndPoint() const OVERRIDE { return false; }
Modified: trunk/Source/WebCore/dom/Text.cpp (152319 => 152320)
--- trunk/Source/WebCore/dom/Text.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Text.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -199,7 +199,7 @@
return create(document(), data());
}
-bool Text::textRendererIsNeeded(NodeRenderingContext& context)
+bool Text::textRendererIsNeeded(const NodeRenderingContext& context)
{
if (isEditingText())
return true;
Modified: trunk/Source/WebCore/dom/Text.h (152319 => 152320)
--- trunk/Source/WebCore/dom/Text.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/dom/Text.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -46,7 +46,7 @@
void recalcTextStyle(StyleChange);
void createTextRendererIfNeeded();
- bool textRendererIsNeeded(NodeRenderingContext&);
+ bool textRendererIsNeeded(const NodeRenderingContext&);
RenderText* createTextRenderer(RenderArena*, RenderStyle*);
void updateTextRenderer(unsigned offsetOfReplacedData, unsigned lengthOfReplacedData);
Modified: trunk/Source/WebCore/rendering/FlowThreadController.cpp (152319 => 152320)
--- trunk/Source/WebCore/rendering/FlowThreadController.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/rendering/FlowThreadController.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -118,7 +118,7 @@
void FlowThreadController::unregisterNamedFlowContentNode(Node* contentNode)
{
ASSERT(contentNode && contentNode->isElementNode());
- HashMap<Node*, RenderNamedFlowThread*>::iterator it = m_mapNamedFlowContentNodes.find(contentNode);
+ HashMap<const Node*, RenderNamedFlowThread*>::iterator it = m_mapNamedFlowContentNodes.find(contentNode);
ASSERT(it != m_mapNamedFlowContentNodes.end());
ASSERT(it->value);
ASSERT(it->value->hasContentNode(contentNode));
@@ -227,7 +227,7 @@
}
}
-bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow(Node* contentNode) const
+bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow(const Node* contentNode) const
{
return m_mapNamedFlowContentNodes.contains(contentNode);
}
Modified: trunk/Source/WebCore/rendering/FlowThreadController.h (152319 => 152320)
--- trunk/Source/WebCore/rendering/FlowThreadController.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/rendering/FlowThreadController.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -66,7 +66,7 @@
void registerNamedFlowContentNode(Node*, RenderNamedFlowThread*);
void unregisterNamedFlowContentNode(Node*);
- bool isContentNodeRegisteredWithAnyNamedFlow(Node*) const;
+ bool isContentNodeRegisteredWithAnyNamedFlow(const Node*) const;
bool hasFlowThreadsWithAutoLogicalHeightRegions() const { return m_flowThreadsWithAutoLogicalHeightRegions; }
void incrementFlowThreadsWithAutoLogicalHeightRegions() { ++m_flowThreadsWithAutoLogicalHeightRegions; }
@@ -92,7 +92,7 @@
unsigned m_flowThreadsWithAutoLogicalHeightRegions;
OwnPtr<RenderNamedFlowThreadList> m_renderNamedFlowThreadList;
// maps a content node to its render flow thread.
- HashMap<Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;
+ HashMap<const Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;
};
}
Modified: trunk/Source/WebCore/rendering/RenderObject.h (152319 => 152320)
--- trunk/Source/WebCore/rendering/RenderObject.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -252,7 +252,6 @@
// RenderObject tree manipulation
//////////////////////////////////////////
virtual bool canHaveChildren() const { return virtualChildren(); }
- virtual bool canDOMChildrenHaveRenderParent() const { return false; } // Even if this render object can't have render children, the children in the DOM tree may have a render parent (that is different from this object).
virtual bool canHaveGeneratedChildren() const;
virtual bool isChildAllowed(RenderObject*, RenderStyle*) const { return true; }
virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0);
Modified: trunk/Source/WebCore/rendering/RenderRegion.h (152319 => 152320)
--- trunk/Source/WebCore/rendering/RenderRegion.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/rendering/RenderRegion.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -155,7 +155,6 @@
virtual const char* renderName() const { return "RenderRegion"; }
virtual bool canHaveChildren() const OVERRIDE { return false; }
- virtual bool canDOMChildrenHaveRenderParent() const OVERRIDE { return true; }
virtual bool canHaveGeneratedChildren() const OVERRIDE { return true; }
virtual void insertedIntoTree() OVERRIDE;
Modified: trunk/Source/WebCore/svg/SVGElement.cpp (152319 => 152320)
--- trunk/Source/WebCore/svg/SVGElement.cpp 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/svg/SVGElement.cpp 2013-07-02 20:43:31 UTC (rev 152320)
@@ -460,10 +460,10 @@
return false;
}
-bool SVGElement::moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)
+bool SVGElement::shouldMoveToFlowThread(RenderStyle* styleToUse) const
{
// Allow only svg root elements to be directly collected by a render flow thread.
- return parentNode() && !parentNode()->isSVGElement() && hasTagName(SVGNames::svgTag) && Element::moveToFlowThreadIsNeeded(cachedStyle);
+ return parentNode() && !parentNode()->isSVGElement() && hasTagName(SVGNames::svgTag) && Element::shouldMoveToFlowThread(styleToUse);
}
void SVGElement::sendSVGLoadEventIfPossible(bool sendParentLoadEvents)
Modified: trunk/Source/WebCore/svg/SVGElement.h (152319 => 152320)
--- trunk/Source/WebCore/svg/SVGElement.h 2013-07-02 20:30:22 UTC (rev 152319)
+++ trunk/Source/WebCore/svg/SVGElement.h 2013-07-02 20:43:31 UTC (rev 152320)
@@ -120,7 +120,7 @@
virtual bool addEventListener(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture) OVERRIDE;
virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) OVERRIDE;
- virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle) OVERRIDE;
+ virtual bool shouldMoveToFlowThread(RenderStyle*) const OVERRIDE;
protected:
SVGElement(const QualifiedName&, Document*, ConstructionType = CreateSVGElement);