| 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
|
|
|