Title: [208555] trunk/Source/WebCore
- Revision
- 208555
- Author
- za...@apple.com
- Date
- 2016-11-10 11:44:51 -0800 (Thu, 10 Nov 2016)
Log Message
RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.
https://bugs.webkit.org/show_bug.cgi?id=164601
Reviewed by Simon Fraser.
FlowThread containing blocks are cached at RenderBlocks. It makes no sense to call the invalidate function on a RenderElement.
Move invalidateFlowThreadContainingBlockIncludingDescendants to RenderBlock.
No change in functionality.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
* rendering/RenderBlock.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
* rendering/RenderElement.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (208554 => 208555)
--- trunk/Source/WebCore/ChangeLog 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/ChangeLog 2016-11-10 19:44:51 UTC (rev 208555)
@@ -1,3 +1,24 @@
+2016-11-10 Zalan Bujtas <za...@apple.com>
+
+ RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.
+ https://bugs.webkit.org/show_bug.cgi?id=164601
+
+ Reviewed by Simon Fraser.
+
+ FlowThread containing blocks are cached at RenderBlocks. It makes no sense to call the invalidate function on a RenderElement.
+ Move invalidateFlowThreadContainingBlockIncludingDescendants to RenderBlock.
+
+ No change in functionality.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
+ * rendering/RenderBlock.h:
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
+ * rendering/RenderElement.h:
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::splitInlines):
+
2016-11-10 Brent Fulgham <bfulg...@apple.com>
Local file restrictions should not block sessionStorage access.
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (208554 => 208555)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2016-11-10 19:44:51 UTC (rev 208555)
@@ -3377,6 +3377,28 @@
return rareData->m_flowThreadContainingBlock.value();
}
+void RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants()
+{
+ if (flowThreadState() == NotInsideFlowThread)
+ return;
+
+ if (cachedFlowThreadContainingBlockNeedsUpdate())
+ return;
+
+ auto* flowThread = cachedFlowThreadContainingBlock();
+ setCachedFlowThreadContainingBlockNeedsUpdate();
+
+ if (flowThread)
+ flowThread->removeFlowChildInfo(this);
+
+ for (auto& child : childrenOfType<RenderElement>(*this)) {
+ if (flowThread)
+ flowThread->removeFlowChildInfo(&child);
+ if (is<RenderBlock>(child))
+ downcast<RenderBlock>(child).invalidateFlowThreadContainingBlockIncludingDescendants();
+ }
+}
+
LayoutUnit RenderBlock::paginationStrut() const
{
RenderBlockRareData* rareData = getBlockRareData(this);
Modified: trunk/Source/WebCore/rendering/RenderBlock.h (208554 => 208555)
--- trunk/Source/WebCore/rendering/RenderBlock.h 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderBlock.h 2016-11-10 19:44:51 UTC (rev 208555)
@@ -307,6 +307,7 @@
RenderFlowThread* cachedFlowThreadContainingBlock() const;
void setCachedFlowThreadContainingBlockNeedsUpdate();
virtual bool cachedFlowThreadContainingBlockNeedsUpdate() const;
+ void invalidateFlowThreadContainingBlockIncludingDescendants();
protected:
RenderFlowThread* locateFlowThreadContainingBlock() const override;
Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (208554 => 208555)
--- trunk/Source/WebCore/rendering/RenderElement.cpp 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp 2016-11-10 19:44:51 UTC (rev 208555)
@@ -2237,31 +2237,6 @@
setFlowThreadState(NotInsideFlowThread);
}
-void RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants(RenderFlowThread* flowThread)
-{
- if (flowThreadState() == NotInsideFlowThread)
- return;
-
- if (is<RenderBlock>(*this)) {
- RenderBlock& block = downcast<RenderBlock>(*this);
-
- if (block.cachedFlowThreadContainingBlockNeedsUpdate())
- return;
-
- flowThread = block.cachedFlowThreadContainingBlock();
- block.setCachedFlowThreadContainingBlockNeedsUpdate();
- }
-
- if (flowThread)
- flowThread->removeFlowChildInfo(this);
-
- if (!is<RenderElement>(*this))
- return;
-
- for (auto& child : childrenOfType<RenderElement>(*this))
- child.invalidateFlowThreadContainingBlockIncludingDescendants(flowThread);
-}
-
#if ENABLE(TEXT_AUTOSIZING)
static RenderObject::BlockContentHeightType includeNonFixedHeight(const RenderObject& renderer)
{
Modified: trunk/Source/WebCore/rendering/RenderElement.h (208554 => 208555)
--- trunk/Source/WebCore/rendering/RenderElement.h 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderElement.h 2016-11-10 19:44:51 UTC (rev 208555)
@@ -224,7 +224,6 @@
RespectImageOrientationEnum shouldRespectImageOrientation() const;
void removeFromRenderFlowThread();
- void invalidateFlowThreadContainingBlockIncludingDescendants(RenderFlowThread* = nullptr);
protected:
enum BaseTypeFlag {
Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (208554 => 208555)
--- trunk/Source/WebCore/rendering/RenderInline.cpp 2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp 2016-11-10 19:44:51 UTC (rev 208555)
@@ -522,7 +522,8 @@
}
// Clear the flow thread containing blocks cached during the detached state insertions.
- cloneInline->invalidateFlowThreadContainingBlockIncludingDescendants();
+ for (auto& cloneBlockChild : childrenOfType<RenderBlock>(*cloneInline))
+ cloneBlockChild.invalidateFlowThreadContainingBlockIncludingDescendants();
// Now we are at the block level. We need to put the clone into the toBlock.
toBlock->insertChildInternal(cloneInline.leakPtr(), nullptr, NotifyChildren);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes