Index: Source/core/rendering/RenderObject.cpp |
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
index 42db6c33d9265f130246fe0a0600e5bc976a9e7e..9b0a8b7bcfaffcaa1e4422d57f7896967474687e 100644 |
--- a/Source/core/rendering/RenderObject.cpp |
+++ b/Source/core/rendering/RenderObject.cpp |
@@ -49,7 +49,6 @@ |
#include "core/frame/UseCounter.h" |
#include "core/frame/animation/AnimationController.h" |
#include "core/rendering/CompositedLayerMapping.h" |
-#include "core/rendering/FlowThreadController.h" |
#include "core/rendering/HitTestResult.h" |
#include "core/rendering/LayoutRectRecorder.h" |
#include "core/rendering/RenderCounter.h" |
@@ -64,9 +63,6 @@ |
#include "core/rendering/RenderLayerCompositor.h" |
#include "core/rendering/RenderListItem.h" |
#include "core/rendering/RenderMarquee.h" |
-#include "core/rendering/RenderMultiColumnBlock.h" |
-#include "core/rendering/RenderNamedFlowThread.h" |
-#include "core/rendering/RenderRegion.h" |
#include "core/rendering/RenderRuby.h" |
#include "core/rendering/RenderRubyText.h" |
#include "core/rendering/RenderScrollbarPart.h" |
@@ -141,8 +137,6 @@ void RenderObject::operator delete(void* ptr) |
RenderObject* RenderObject::createObject(Element* element, RenderStyle* style) |
{ |
- Document& doc = element->document(); |
- |
// Minimal support for content properties replacing an entire element. |
// Works only if we have exactly one piece of content and it's a URL. |
// Otherwise acts as if we didn't support this feature. |
@@ -182,8 +176,6 @@ RenderObject* RenderObject::createObject(Element* element, RenderStyle* style) |
return new RenderInline(element); |
case BLOCK: |
case INLINE_BLOCK: |
- if ((!style->hasAutoColumnCount() || !style->hasAutoColumnWidth()) && doc.regionBasedColumnsEnabled()) |
- return new RenderMultiColumnBlock(element); |
return new RenderBlockFlow(element); |
case LIST_ITEM: |
return new RenderListItem(element); |
@@ -282,19 +274,6 @@ bool RenderObject::isLegend() const |
return node() && node()->hasTagName(legendTag); |
} |
-void RenderObject::setFlowThreadStateIncludingDescendants(FlowThreadState state) |
-{ |
- setFlowThreadState(state); |
- |
- for (RenderObject* child = firstChild(); child; child = child->nextSibling()) { |
- // If the child is a fragmentation context it already updated the descendants flag accordingly. |
- if (child->isRenderFlowThread()) |
- continue; |
- ASSERT(state != child->flowThreadState()); |
- child->setFlowThreadStateIncludingDescendants(state); |
- } |
-} |
- |
bool RenderObject::requiresAnonymousTableWrappers(const RenderObject* newChild) const |
{ |
// Check should agree with: |
@@ -607,34 +586,6 @@ RenderBox* RenderObject::enclosingScrollableBox() const |
return 0; |
} |
-RenderFlowThread* RenderObject::locateFlowThreadContainingBlock() const |
-{ |
- ASSERT(flowThreadState() != NotInsideFlowThread); |
- |
- // See if we have the thread cached because we're in the middle of layout. |
- RenderFlowThread* flowThread = view()->flowThreadController()->currentRenderFlowThread(); |
- if (flowThread) |
- return flowThread; |
- |
- // Not in the middle of layout so have to find the thread the slow way. |
- RenderObject* curr = const_cast<RenderObject*>(this); |
- while (curr) { |
- if (curr->isRenderFlowThread()) |
- return toRenderFlowThread(curr); |
- curr = curr->containingBlock(); |
- } |
- return 0; |
-} |
- |
-RenderNamedFlowThread* RenderObject::renderNamedFlowThreadWrapper() const |
-{ |
- RenderObject* object = const_cast<RenderObject*>(this); |
- while (object && object->isAnonymousBlock() && !object->isRenderNamedFlowThread()) |
- object = object->parent(); |
- |
- return object && object->isRenderNamedFlowThread() ? toRenderNamedFlowThread(object) : 0; |
-} |
- |
RenderBlock* RenderObject::firstLineBlock() const |
{ |
return 0; |
@@ -1362,22 +1313,6 @@ RenderLayerModelObject* RenderObject::containerForRepaint() const |
return enclosingFilterLayer->renderer(); |
} |
} |
- |
- // If we have a flow thread, then we need to do individual repaints within the RenderRegions instead. |
- // Return the flow thread as a repaint container in order to create a chokepoint that allows us to change |
- // repainting to do individual region repaints. |
- RenderFlowThread* parentRenderFlowThread = flowThreadContainingBlock(); |
- if (parentRenderFlowThread) { |
- // The ancestor document will do the reparenting when the repaint propagates further up. |
- // We're just a seamless child document, and we don't need to do the hacking. |
- if (parentRenderFlowThread->document() != document()) |
- return repaintContainer; |
- // If we have already found a repaint container then we will repaint into that container only if it is part of the same |
- // flow thread. Otherwise we will need to catch the repaint call and send it to the flow thread. |
- RenderFlowThread* repaintContainerFlowThread = repaintContainer ? repaintContainer->flowThreadContainingBlock() : 0; |
- if (!repaintContainerFlowThread || repaintContainerFlowThread != parentRenderFlowThread) |
- repaintContainer = parentRenderFlowThread; |
- } |
return repaintContainer; |
} |
@@ -1416,11 +1351,6 @@ void RenderObject::repaintUsingContainer(const RenderLayerModelObject* repaintCo |
return; |
} |
- if (repaintContainer->isRenderFlowThread()) { |
- toRenderFlowThread(repaintContainer)->repaintRectangleInRegions(r); |
- return; |
- } |
- |
if (repaintContainer->hasFilter() && repaintContainer->layer()->requiresFullLayerImageForFilters()) { |
repaintContainer->layer()->repainter().setFilterBackendNeedsRepaintingInRect(r); |
return; |
@@ -2323,7 +2253,7 @@ LayoutSize RenderObject::offsetFromContainer(RenderObject* o, const LayoutPoint& |
offset -= toRenderBox(o)->scrolledContentOffset(); |
if (offsetDependsOnPoint) |
- *offsetDependsOnPoint = hasColumns() || o->isRenderFlowThread(); |
+ *offsetDependsOnPoint = hasColumns(); |
return offset; |
} |
@@ -2578,18 +2508,6 @@ void RenderObject::willBeDestroyed() |
if (AXObjectCache* cache = document().existingAXObjectCache()) |
cache->remove(this); |
-#ifndef NDEBUG |
- if (!documentBeingDestroyed() && view() && view()->hasRenderNamedFlowThreads()) { |
- // After remove, the object and the associated information should not be in any flow thread. |
- const RenderNamedFlowThreadList* flowThreadList = view()->flowThreadController()->renderNamedFlowThreadList(); |
- for (RenderNamedFlowThreadList::const_iterator iter = flowThreadList->begin(); iter != flowThreadList->end(); ++iter) { |
- const RenderNamedFlowThread* renderFlowThread = *iter; |
- ASSERT(!renderFlowThread->hasChild(this)); |
- ASSERT(!renderFlowThread->hasChildInfo(this)); |
- } |
- } |
-#endif |
- |
// If this renderer had a parent, remove should have destroyed any counters |
// attached to this renderer and marked the affected other counters for |
// reevaluation. This apparently redundant check is here for the case when |
@@ -2626,9 +2544,6 @@ void RenderObject::insertedIntoTree() |
if (!isFloating() && parent()->childrenInline()) |
parent()->dirtyLinesFromChangedChild(this); |
- |
- if (RenderNamedFlowThread* containerFlowThread = parent()->renderNamedFlowThreadWrapper()) |
- containerFlowThread->addFlowChild(this); |
} |
void RenderObject::willBeRemovedFromTree() |
@@ -2652,43 +2567,11 @@ void RenderObject::willBeRemovedFromTree() |
if (isOutOfFlowPositioned() && parent()->childrenInline()) |
parent()->dirtyLinesFromChangedChild(this); |
- removeFromRenderFlowThread(); |
- |
- if (RenderNamedFlowThread* containerFlowThread = parent()->renderNamedFlowThreadWrapper()) |
- containerFlowThread->removeFlowChild(this); |
- |
// Update cached boundaries in SVG renderers if a child is removed. |
if (parent()->isSVG()) |
parent()->setNeedsBoundariesUpdate(); |
} |
-void RenderObject::removeFromRenderFlowThread() |
-{ |
- if (flowThreadState() == NotInsideFlowThread) |
- return; |
- |
- // Sometimes we remove the element from the flow, but it's not destroyed at that time. |
- // It's only until later when we actually destroy it and remove all the children from it. |
- // Currently, that happens for firstLetter elements and list markers. |
- // Pass in the flow thread so that we don't have to look it up for all the children. |
- removeFromRenderFlowThreadRecursive(flowThreadContainingBlock()); |
-} |
- |
-void RenderObject::removeFromRenderFlowThreadRecursive(RenderFlowThread* renderFlowThread) |
-{ |
- if (const RenderObjectChildList* children = virtualChildren()) { |
- for (RenderObject* child = children->firstChild(); child; child = child->nextSibling()) |
- child->removeFromRenderFlowThreadRecursive(renderFlowThread); |
- } |
- |
- RenderFlowThread* localFlowThread = renderFlowThread; |
- if (flowThreadState() == InsideInFlowThread) |
- localFlowThread = flowThreadContainingBlock(); // We have to ask. We can't just assume we are in the same flow thread. |
- if (localFlowThread) |
- localFlowThread->removeFlowChildInfo(this); |
- setFlowThreadState(NotInsideFlowThread); |
-} |
- |
void RenderObject::destroyAndCleanupAnonymousWrappers() |
{ |
// If the tree is destroyed, there is no need for a clean-up phase. |
@@ -2702,9 +2585,8 @@ void RenderObject::destroyAndCleanupAnonymousWrappers() |
// Anonymous block continuations are tracked and destroyed elsewhere (see the bottom of RenderBlock::removeChild) |
if (destroyRootParent->isRenderBlock() && toRenderBlock(destroyRootParent)->isAnonymousBlockContinuation()) |
break; |
- // Render flow threads are tracked by the FlowThreadController, so we can't destroy them here. |
// Column spans are tracked elsewhere. |
- if (destroyRootParent->isRenderFlowThread() || destroyRootParent->isAnonymousColumnSpanBlock()) |
+ if (destroyRootParent->isAnonymousColumnSpanBlock()) |
break; |
if (destroyRootParent->firstChild() != this || destroyRootParent->lastChild() != this) |
@@ -3162,29 +3044,8 @@ void RenderObject::imageChanged(ImageResource* image, const IntRect* rect) |
RenderObject* RenderObject::hoverAncestor() const |
{ |
- // When searching for the hover ancestor and encountering a named flow thread, |
- // the search will continue with the DOM ancestor of the top-most element |
- // in the named flow thread. |
- // See https://code.google.com/p/chromium/issues/detail?id=243278 |
- RenderObject* hoverAncestor = parent(); |
- |
- // Skip anonymous blocks directly flowed into flow threads as it would |
- // prevent us from continuing the search on the DOM tree when reaching the named flow thread. |
- if (hoverAncestor && hoverAncestor->isAnonymousBlock() && hoverAncestor->parent() && hoverAncestor->parent()->isRenderNamedFlowThread()) |
- hoverAncestor = hoverAncestor->parent(); |
- |
- if (hoverAncestor && hoverAncestor->isRenderNamedFlowThread()) { |
- hoverAncestor = 0; |
- |
- Node* node = this->node(); |
- if (node) { |
- Node* domAncestorNode = node->parentNode(); |
- if (domAncestorNode) |
- hoverAncestor = domAncestorNode->renderer(); |
- } |
- } |
- |
- return hoverAncestor; |
+ // FIXME: Remove. |
+ return parent(); |
} |
Element* RenderObject::offsetParent() const |
@@ -3204,10 +3065,6 @@ Element* RenderObject::offsetParent() const |
for (RenderObject* ancestor = parent(); ancestor; ancestor = ancestor->parent()) { |
// Spec: http://www.w3.org/TR/cssom-view/#offset-attributes |
- // CSS regions specification says that region flows should return the body element as their offsetParent. |
- if (ancestor->isRenderNamedFlowThread()) |
- return document().body(); |
- |
node = ancestor->node(); |
if (!node) |
@@ -3365,11 +3222,6 @@ bool RenderObject::isRelayoutBoundaryForInspector() const |
return objectIsRelayoutBoundary(this); |
} |
-bool RenderObject::isRenderNamedFlowFragmentContainer() const |
-{ |
- return isRenderBlockFlow() && toRenderBlockFlow(this)->renderNamedFlowFragment(); |
-} |
- |
} // namespace WebCore |
#ifndef NDEBUG |