1. 04 Sep, 2012 1 commit
    • commit-queue@webkit.org's avatar
      [CSS Regions] Destroying a render named flow thread without unregistering... · 9e41565f
      commit-queue@webkit.org authored
      [CSS Regions] Destroying a render named flow thread without unregistering left-over content nodes triggered an assertion.
      https://bugs.webkit.org/show_bug.cgi?id=95645
      
      Patch by Andrei Bucur <abucur@adobe.com> on 2012-09-04
      Reviewed by Abhishek Arya.
      
      Source/WebCore:
      
      This patch cleans up the render named flow thread before destruction by unregistering left-over content nodes.
      
      Tests: fast/regions/moved-content-node-crash.html
      
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
      
      LayoutTests:
      
      Simple test case that triggers an ASSERT in debug mode and causes a crash in release.
      The ASSERT appears in RenderFlowThreadController::unregisterNamedFlowContentNode
      ASSERT(it != m_mapNamedFlowContentNodes.end());
      
      It happens because when a content node is added to an iframe document and then moved back, the iframe's RenderNamedFlowThread is destroyed
      without calling unregisterNamedFlowContentNode on the node. This triggers the before mentioned assertion after a lazyAttach and a detach
      in the parent document.
      
      * fast/regions/moved-content-node-crash-expected.txt: Added.
      * fast/regions/moved-content-node-crash.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127472 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e41565f
  2. 29 Aug, 2012 1 commit
    • commit-queue@webkit.org's avatar
      Layout Test fast/repaint/japanese-rl-selection-repaint-in-regions.html is failing after r126304 · a9af37d0
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94730
      
      Patch by Andrei Bucur <abucur@adobe.com> on 2012-08-28
      Reviewed by Adam Barth.
      
      Having an intermediary node between the named flow renderers and the view may introduce subtle bugs that are hard to track. Also it doesn't fix
      the pointless destruction of a RenderNamedFlowThread in some special cases (e.g. region->detach, destroy flow thread, region->attach, recreate flow
      thread).
      This patch proposes a new way of lazily destroying the renderers for NULL named flows, at layout time. When a renderer has no content nodes or regions
      attached, its named flow is considered to be in the NULL state. When starting a layout process it is a good time to go through the renderers of the
      NULL named flows and destroy them.
      
      Tests: No functional change, the old tests should pass without issues.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * dom/WebKitNamedFlow.cpp:
      (WebCore::WebKitNamedFlow::getRegionsByContent):
      (WebCore::WebKitNamedFlow::getRegions):
      (WebCore::WebKitNamedFlow::setRenderer):
      * rendering/FlowThreadController.cpp:
      (WebCore::FlowThreadController::FlowThreadController):
      (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
      (WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
      * rendering/FlowThreadController.h:
      (WebCore):
      (FlowThreadController):
      * rendering/RenderFlowThreadContainer.cpp: Removed.
      * rendering/RenderFlowThreadContainer.h: Removed.
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::addRegionToThread):
      (WebCore::RenderNamedFlowThread::removeRegionFromThread):
      (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode):
      (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
      (WebCore::RenderNamedFlowThread::setMarkForDestruction):
      (WebCore):
      (WebCore::RenderNamedFlowThread::resetMarkForDestruction):
      (WebCore::RenderNamedFlowThread::isMarkedForDestruction):
      * rendering/RenderNamedFlowThread.h:
      (RenderNamedFlowThread):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::markContainingBlocksForLayout):
      * rendering/RenderObject.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9af37d0
  3. 01 Aug, 2012 1 commit
    • commit-queue@webkit.org's avatar
      [CSS Regions] The regionLayoutUpdate event should be dispatched on the NamedFlow object · 97dcf38e
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=88778
      
      Patch by Andrei Bucur <abucur@adobe.com> on 2012-08-01
      Reviewed by Adam Barth.
      
      Spec: http://www.w3.org/TR/css3-regions/#region-flow-layout-events
      
      Source/WebCore:
      
      This patch implements the regionLayoutUpdate event per May 3rd CSS Regions spec recommendation.
      Before this patch the event was dispatched individually on each region whenever its overflow state changed. The trigger conditions are preserved with the following additions:
      - the event is dispatched when the last region is removed
      - the event is not dispatched when the named flow switches to the NULL state
      Also, the NamedFlow objects are not deleted if they switch to the NULL state and have listeners attached. In that scenario the JS wrapper will not release the reference
      until the parent Document is destroyed.
      
      Tests: The old tests have been modified to use the event on the NamedFlow object rather the one on the Region. New tests have been added to verify the
      correct behavior in the special states of the NamedFlow (no region chain, NULL state).
      
      * dom/Document.cpp:
      (WebCore::Document::addListenerTypeIfNeeded): Listeners are not added on Nodes any more so the regionLayoutUpdate type was removed from the list.
      * dom/Document.h:
      * dom/EventTarget.h:
      (WebCore):
      * dom/EventTargetFactory.in:
      * dom/Node.cpp:
      * dom/Node.h:
      (Node):
      * dom/WebKitNamedFlow.cpp:
      (WebCore::WebKitNamedFlow::eventTargetData):
      (WebCore):
      (WebCore::WebKitNamedFlow::ensureEventTargetData):
      (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): The 3rd May WD says the event is bubbling. However this doesn't make sense as this object doesn't belong to the DOM tree. This was fixed in the ED.
      (WebCore::WebKitNamedFlow::interfaceName):
      (WebCore::WebKitNamedFlow::scriptExecutionContext):
      (WebCore::WebKitNamedFlow::base): Getter for the owner Document used by the wrapper to determine if the object is reachable.
      * dom/WebKitNamedFlow.h:
      (WebCore):
      (WebKitNamedFlow):
      (WebCore::WebKitNamedFlow::refEventTarget):
      (WebCore::WebKitNamedFlow::derefEventTarget):
      * dom/WebKitNamedFlow.idl:
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::RenderFlowThread):
      (WebCore::RenderFlowThread::layout): The event dispatching is now handled by the implementation of RenderFlowThread.
      (WebCore::RenderFlowThread::computeOverflowStateForRegions):
      * rendering/RenderFlowThread.h:
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::removeRegionFromThread): The layout doesn't detect changes caused by removing the last region. This case is handled separately.
      (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
      (WebCore):
      (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
      * rendering/RenderNamedFlowThread.h:
      (RenderNamedFlowThread):
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::RenderRegion):
      * rendering/RenderRegion.h:
      (RenderRegion):
      
      LayoutTests:
      
      The existing tests have been adapted to match the transition of the event on the NamedFlow interface. Also there are three more tests for the case
      the region chain is removed, the flow goes in the NULL state and for the event target to match the NamedFlow object.
      
      * fast/regions/webkit-named-flow-event-add-to-flow-expected.txt: Renamed from LayoutTests/fast/regions/region-event-add-to-flow-expected.txt.
      * fast/regions/webkit-named-flow-event-add-to-flow.html: Renamed from LayoutTests/fast/regions/region-event-add-to-flow.html.
      * fast/regions/webkit-named-flow-event-expected.txt: Renamed from LayoutTests/fast/regions/region-event-expected.txt.
      * fast/regions/webkit-named-flow-event-no-regions-expected.txt: Added.
      * fast/regions/webkit-named-flow-event-no-regions.html: Added.
      * fast/regions/webkit-named-flow-event-remove-from-dom-expected.txt: Renamed from LayoutTests/fast/regions/region-event-remove-from-dom-expected.txt.
      * fast/regions/webkit-named-flow-event-remove-from-dom.html: Renamed from LayoutTests/fast/regions/region-event-remove-from-dom.html.
      * fast/regions/webkit-named-flow-event-remove-from-flow-expected.txt: Renamed from LayoutTests/fast/regions/region-event-remove-from-flow-expected.txt.
      * fast/regions/webkit-named-flow-event-remove-from-flow.html: Renamed from LayoutTests/fast/regions/region-event-remove-from-flow.html.
      * fast/regions/webkit-named-flow-event-target-expected.txt: Added.
      * fast/regions/webkit-named-flow-event-target.html: Added.
      * fast/regions/webkit-named-flow-event-to-null-expected.txt: Added.
      * fast/regions/webkit-named-flow-event-to-null.html: Added.
      * fast/regions/webkit-named-flow-event.html: Renamed from LayoutTests/fast/regions/region-event.html.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      97dcf38e
  4. 13 Jul, 2012 1 commit
    • commit-queue@webkit.org's avatar
      [CSS Regions] Fix the lifecycle for the flow objects and their renderers · 5323f76d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=89000
      
      Patch by Andrei Bucur <abucur@adobe.com> on 2012-07-13
      Reviewed by Eric Seidel.
      
      Source/WebCore:
      
      This patch adds the concept of a NamedFlowCollection, owned by the document, that keeps track of
      all the named flows that exist in the Document. This collection contains a ListHashSet of weak references to
      all the existing NamedFlows in the document. This is not a managed set because the CREATED flows are referenced from the renderer and
      the NULL flows are only cached, they should be destructible.
      Two named flows are considered to be equal if they have the same name.
      I've changed the NamedFlow state to depend on the existence of its renderer. A flow thread that has a renderer will also have a NamedFlow object.
      A flow thread without a renderer can have a NamedFlow object, but only in the NULL state. It's possible for a NamedFlow object to jump from the
      NULL state to the CREATED state if it was not destroyed (e.g. it was referenced from JS). Keeping track of the NULL state flows that have listeners will be important
      so when they go back to the CREATED state, the listeners would still be there.
      
      Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/
      
      Tests: The old tests have been modified to take into account the new behavior
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * dom/DOMAllInOne.cpp:
      * dom/Document.cpp:
      (WebCore::Document::~Document):
      (WebCore):
      (WebCore::Document::webkitGetFlowByName):
      (WebCore::Document::namedFlows):
      * dom/Document.h:
      (WebCore):
      (Document):
      * dom/WebKitNamedFlow.cpp:
      (WebCore::WebKitNamedFlow::WebKitNamedFlow):
      (WebCore::WebKitNamedFlow::~WebKitNamedFlow):
      (WebCore::WebKitNamedFlow::create):
      (WebCore):
      (WebCore::WebKitNamedFlow::name):
      (WebCore::WebKitNamedFlow::overset):
      (WebCore::nodeInFlowThread):
      (WebCore::WebKitNamedFlow::getRegionsByContentNode):
      (WebCore::WebKitNamedFlow::getContent):
      (WebCore::WebKitNamedFlow::setRenderer):
      * dom/WebKitNamedFlow.h:
      (WebCore):
      (WebKitNamedFlow):
      (WebCore::WebKitNamedFlow::getFlowState):
      (WebCore::WebKitNamedFlow::switchFlowState):
      * dom/WebKitNamedFlowCollection.cpp: Added.
      (WebCore):
      (WebCore::WebKitNamedFlowCollection::WebKitNamedFlowCollection):
      (WebCore::WebKitNamedFlowCollection::length): An O(1) operation
      (WebCore::WebKitNamedFlowCollection::item): An O(N) operation
      (WebCore::WebKitNamedFlowCollection::flowByName): An O(1) operation
      (WebCore::WebKitNamedFlowCollection::ensureNamedFlowInCreatedState): An O(1) operation
      (WebCore::WebKitNamedFlowCollection::moveNamedFlowToNullState): An O(1) operation
      (WebCore::WebKitNamedFlowCollection::discardNamedFlow): An O(1) operation
      (WebCore::WebKitNamedFlowCollection::documentDestroyed):
      (WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::hash):
      (WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::equal):
      (WebKitNamedFlowCollection::NamedFlowHashFunctions):
      (WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::hash):
      (WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::equal):
      * dom/WebKitNamedFlowCollection.h: Copied from Source/WebCore/dom/WebKitNamedFlow.h.
      (WebCore):
      (WebKitNamedFlowCollection):
      (WebCore::WebKitNamedFlowCollection::create):
      (WebCore::WebKitNamedFlowCollection::document):
      * rendering/FlowThreadController.cpp:
      (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
      (WebCore::FlowThreadController::removeFlowThread):
      (WebCore):
      * rendering/FlowThreadController.h:
      (FlowThreadController):
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
      (WebCore):
      (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::removeRegionFromThread):
      (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
      (WebCore::RenderNamedFlowThread::flowThreadName):
      (WebCore::RenderNamedFlowThread::willBeDestroyed):
      * rendering/RenderNamedFlowThread.h:
      (RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::contentNodes):
      (WebCore::RenderNamedFlowThread::canBeDestroyed):
      
      LayoutTests:
      
      These tests expected getFlowByName() to return a valid object even for the NULL flows. They've been modified to
      reflect the new behavior.
      
      * fast/regions/get-regions-by-content-node2-expected.txt:
      * fast/regions/get-regions-by-content-node2.html:
      * fast/regions/webkit-named-flow-flow-added.html:
      * fast/regions/webkit-named-flow-get-content-expected.txt:
      * fast/regions/webkit-named-flow-get-content.html:
      * fast/regions/webkit-named-flow-invalid-name.html:
      * fast/regions/webkit-named-flow-modified-flow.html:
      * fast/regions/webkit-named-flow-non-existing-flow.html:
      * fast/regions/webkit-named-flow-removed-flow.html:
      * platform/chromium-win/fast/regions/region-style-block-background-color2-expected.txt:
      * platform/mac/fast/regions/region-style-block-background-color2-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@122556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5323f76d
  5. 13 Apr, 2012 1 commit
    • mihnea@adobe.com's avatar
      [CSSRegions]Implement NamedFlow::contentNodes attribute · a230a172
      mihnea@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=80134
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'.
      In the list, the nodes are placed in document order. Nodes with display:none are also part of the list.
      The list of nodes is returned as a static node list.
      
      The content nodes are stored in RenderNamedFlowThread. The content nodes are added to the list in NodeRenderingContext::moveToFlowThreadIfNeeded
      and removed from the list in Element::detach. When an element -webkit-flow-into property is changed, the element is detached and attached.
      I have also added a bit in NodeFlags to mark that an element is part of a named flow (and the corresponding inNamedFlow/setInNamedFlow/clearInNamedFlow functions).
      
      Test: fast/regions/webkit-named-flow-content-nodes.html
      
      * dom/Document.cpp:
      (WebCore::Document::webkitGetFlowByName):
      * dom/Document.h:
      * dom/Element.cpp:
      (WebCore::Element::detach):
      * dom/Node.h:
      (WebCore::Node::inNamedFlow):
      (WebCore::Node::setInNamedFlow):
      (WebCore::Node::clearInNamedFlow):
      (Node):
      * dom/NodeRenderingContext.cpp:
      (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
      * dom/WebKitNamedFlow.cpp:
      (WebCore::WebKitNamedFlow::contentNodes):
      (WebCore):
      * dom/WebKitNamedFlow.h:
      (WebKitNamedFlow):
      * dom/WebKitNamedFlow.idl:
      * rendering/FlowThreadController.cpp:
      (WebCore::FlowThreadController::registerNamedFlowContentNode):
      (WebCore):
      (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
      * rendering/FlowThreadController.h:
      (FlowThreadController):
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore):
      (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode):
      (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
      * rendering/RenderNamedFlowThread.h:
      (WebCore):
      (RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::contentNodes):
      (WebCore::RenderNamedFlowThread::hasContentNode):
      
      LayoutTests:
      
      * fast/regions/webkit-named-flow-content-nodes-expected.txt: Added.
      * fast/regions/webkit-named-flow-content-nodes.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@114189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a230a172
  6. 11 Apr, 2012 1 commit
    • mihnea@adobe.com's avatar
      [CSS Regions]Add helper class for flow threads info in RenderView · d030fcd1
      mihnea@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=83464
      
      Reviewed by David Hyatt.
      
      This patch creates a new helper class FlowThreadController that will accommodate all the flow thread
      related info from RenderView and moves all the data structures/methods from RenderView into this new class.
      There is only one FlowThreadController object per RenderView and it can be retrieved using flowThreadController() method from RenderView.
      The flow thread controller object is owned by the RenderView and it is created on demand only if there are flowing
      threads in the page.
      
      Since there is no change in functionality, there are no new tests added.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * dom/Document.cpp:
      (WebCore::Document::webkitGetFlowByName):
      * dom/NodeRenderingContext.cpp:
      (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
      * rendering/FlowThreadController.cpp: Added.
      (WebCore):
      (WebCore::FlowThreadController::create):
      (WebCore::FlowThreadController::FlowThreadController):
      (WebCore::FlowThreadController::~FlowThreadController):
      (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
      (WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
      * rendering/FlowThreadController.h: Added.
      (WebCore):
      (FlowThreadController):
      (WebCore::FlowThreadController::currentRenderFlowThread):
      (WebCore::FlowThreadController::setCurrentRenderFlowThread):
      (WebCore::FlowThreadController::isRenderNamedFlowThreadOrderDirty):
      (WebCore::FlowThreadController::setIsRenderNamedFlowThreadOrderDirty):
      (WebCore::FlowThreadController::renderNamedFlowThreadList):
      (WebCore::FlowThreadController::hasRenderNamedFlowThreads):
      * rendering/RenderFlowThread.cpp:
      (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
      (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
      (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler):
      (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler):
      * rendering/RenderNamedFlowThread.cpp:
      (WebCore::RenderNamedFlowThread::nextRendererForNode):
      (WebCore::RenderNamedFlowThread::previousRendererForNode):
      (WebCore::RenderNamedFlowThread::removeRegionFromThread):
      (WebCore::RenderNamedFlowThread::addDependencyOnFlowThread):
      (WebCore::RenderNamedFlowThread::removeDependencyOnFlowThread):
      * rendering/RenderNamedFlowThread.h:
      (RenderNamedFlowThread):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::createObject):
      (WebCore::RenderObject::enclosingRenderFlowThread):
      (WebCore::RenderObject::willBeDestroyed):
      * rendering/RenderTreeAsText.cpp:
      (WebCore::writeRenderNamedFlowThreads):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::RenderView):
      (WebCore::RenderView::layout):
      (WebCore::RenderView::hasRenderNamedFlowThreads):
      (WebCore::RenderView::flowThreadController):
      * rendering/RenderView.h:
      (WebCore):
      (RenderView):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d030fcd1
  7. 28 Mar, 2012 1 commit
    • hyatt@apple.com's avatar
      Source/WebCore: https://bugs.webkit.org/show_bug.cgi?id=81685 · 04cdbe4f
      hyatt@apple.com authored
              
      [New Multicolumn] Add RenderMultiColumnFlowThread to hold the flow thread contents of a multi-column block.
      It derives from RenderFlowThread.
              
      Refactor RenderFlowThread to split out the stuff related to explicit naming into a subclass, RenderNamedFlowThread.
      This allows RenderFlowThread to be a simple base class that involves maintaining the regions themselves.
          
      Reviewed by Julien Chaffraix.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * dom/Document.cpp:
      * dom/NodeRenderingContext.cpp:
      * dom/NodeRenderingContext.h:
      (WebCore):
      (WebCore::NodeRenderingContext::parentFlowRenderer):
      * dom/WebKitNamedFlow.cpp:
      (WebCore::WebKitNamedFlow::WebKitNamedFlow):
      * dom/WebKitNamedFlow.h:
      (WebCore):
      (WebCore::WebKitNamedFlow::create):
      (WebKitNamedFlow):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::collapseAnonymousBoxChild):
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::RenderFlowThread):
      (WebCore):
      (WebCore::RenderFlowThread::addRegionToThread):
      (WebCore::RenderFlowThread::removeRegionFromThread):
      (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
      * rendering/RenderFlowThread.h:
      (WebCore):
      * rendering/RenderMultiColumnFlowThread.cpp: Added.
      (WebCore):
      (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
      (WebCore::RenderMultiColumnFlowThread::renderName):
      * rendering/RenderMultiColumnFlowThread.h: Added.
      (WebCore):
      (RenderMultiColumnFlowThread):
      * rendering/RenderNamedFlowThread.cpp: Added.
      (WebCore):
      (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::renderName):
      (WebCore::RenderNamedFlowThread::nextRendererForNode):
      (WebCore::RenderNamedFlowThread::previousRendererForNode):
      (WebCore::RenderNamedFlowThread::addFlowChild):
      (WebCore::RenderNamedFlowThread::removeFlowChild):
      (WebCore::RenderNamedFlowThread::dependsOn):
      (WebCore::compareRenderRegions):
      (WebCore::RenderNamedFlowThread::addRegionToThread):
      (WebCore::RenderNamedFlowThread::removeRegionFromThread):
      (WebCore::RenderNamedFlowThread::checkInvalidRegions):
      (WebCore::RenderNamedFlowThread::addDependencyOnFlowThread):
      (WebCore::RenderNamedFlowThread::removeDependencyOnFlowThread):
      (WebCore::RenderNamedFlowThread::pushDependencies):
      (WebCore::RenderNamedFlowThread::ensureNamedFlow):
      * rendering/RenderNamedFlowThread.h: Added.
      (WebCore):
      (RenderNamedFlowThread):
      (WebCore::RenderNamedFlowThread::name):
      (WebCore::RenderNamedFlowThread::hasChildren):
      (WebCore::RenderNamedFlowThread::hasChild):
      (WebCore::RenderNamedFlowThread::isRenderNamedFlowThread):
      (WebCore::toRenderNamedFlowThread):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::willBeDestroyed):
      * rendering/RenderObject.h:
      (WebCore::RenderObject::isRenderNamedFlowThread):
      * rendering/RenderObjectChildList.cpp:
      (WebCore::renderNamedFlowThreadContainer):
      (WebCore::RenderObjectChildList::removeChildNode):
      (WebCore::RenderObjectChildList::appendChildNode):
      (WebCore::RenderObjectChildList::insertChildNode):
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::RenderRegion):
      (WebCore::RenderRegion::attachRegion):
      * rendering/RenderRegion.h:
      (WebCore):
      (WebCore::RenderRegion::parentNamedFlowThread):
      (RenderRegion):
      * rendering/RenderTreeAsText.cpp:
      (WebCore::writeRenderNamedFlowThreads):
      (WebCore::writeLayers):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::RenderView):
      (WebCore::RenderView::layout):
      (WebCore::RenderView::styleDidChange):
      (WebCore::RenderView::ensureRenderFlowThreadWithName):
      (WebCore::RenderView::layoutRenderNamedFlowThreads):
      * rendering/RenderView.h:
      (WebCore):
      (RenderView):
      (WebCore::RenderView::hasRenderNamedFlowThreads):
      (WebCore::RenderView::isRenderNamedFlowThreadOrderDirty):
      (WebCore::RenderView::setIsRenderNamedFlowThreadOrderDirty):
      (WebCore::RenderView::renderNamedFlowThreadList):
      
      LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=81685
              
      [New Multicolumn] Add RenderMultiColumnFlowThread to hold the flow thread contents of a multi-column block.
      It derives from RenderFlowThread.
      
      Change layout test results to reflect the name change from RenderFlowThread to
      RenderNamedFlowThread. Other platforms should update results accordingly.
      
      Reviewed by Julien Chaffraix.
      
      * fast/repaint/inline-relative-positioned-expected.txt:
      * fast/repaint/overflow-clip-subtree-layout-expected.txt:
      * fast/repaint/subtree-root-clip-2-expected.txt:
      * fast/repaint/subtree-root-clip-3-expected.txt:
      * fast/repaint/subtree-root-clip-expected.txt:
      * platform/mac/fast/regions/bottom-overflow-out-of-first-region-expected.txt:
      * platform/mac/fast/regions/flow-content-basic-expected.txt:
      * platform/mac/fast/regions/flow-content-basic-vertical-expected.txt:
      * platform/mac/fast/regions/flow-content-basic-vertical-rl-expected.txt:
      * platform/mac/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-in-uniform-regions-dynamic-expected.txt:
      * platform/mac/fast/regions/overflow-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-moving-below-floats-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-not-moving-below-floats-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-rtl-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-size-change-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-size-change-with-stacking-context-expected.txt:
      * platform/mac/fast/regions/overflow-size-change-with-stacking-context-rtl-expected.txt:
      * platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.txt:
      * platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.txt:
      * platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/percentage-margins-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/region-overflow-auto-overflow-hidden-expected.txt:
      * platform/mac/fast/regions/region-overflow-auto-overflow-visible-expected.txt:
      * platform/mac/fast/regions/region-overflow-break-expected.txt:
      * platform/mac/fast/regions/region-style-block-background-color-expected.txt:
      * platform/mac/fast/regions/region-style-block-background-color2-expected.txt:
      * platform/mac/fast/regions/region-style-image-background-color-expected.txt:
      * platform/mac/fast/regions/region-style-inline-background-color-expected.txt:
      * platform/mac/fast/regions/render-region-custom-style-mark-expected.txt:
      * platform/mac/fast/regions/text-region-split-small-pagination-expected.txt:
      * platform/mac/fast/regions/top-overflow-out-of-second-region-expected.txt:
      * platform/mac/fast/regions/webkit-flow-double-pagination-float-push-expected.txt:
      * platform/mac/fast/regions/webkit-flow-float-pushed-to-last-region-expected.txt:
      * platform/mac/fast/regions/webkit-flow-float-unable-to-push-expected.txt:
      * platform/mac/fast/regions/webkit-flow-floats-inside-regions-bounds-expected.txt:
      * platform/mac/fast/regions/webkit-flow-inlines-inside-regions-bounds-expected.txt:
      * platform/mac/fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-expected.txt:
      * platform/mac/fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-rl-expected.txt:
      * platform/mac/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.txt:
      * platform/mac/fast/repaint/line-flow-with-floats-in-regions-expected.txt:
      * platform/mac/fast/repaint/overflow-flipped-writing-mode-block-in-regions-expected.txt:
      * platform/mac/fast/repaint/region-painting-invalidation-expected.txt:
      * platform/mac/fast/repaint/region-painting-via-layout-expected.txt:
      * platform/qt/fast/repaint/line-flow-with-floats-in-regions-expected.txt:
      * platform/qt/fast/repaint/overflow-flipped-writing-mode-block-in-regions-expected.txt:
      * platform/qt/fast/repaint/region-painting-invalidation-expected.txt:
      * platform/qt/fast/repaint/region-painting-via-layout-expected.txt:
      * platform/win/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@112453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04cdbe4f