Changeset 93556 in webkit


Ignore:
Timestamp:
Aug 22, 2011 4:15:05 PM (13 years ago)
Author:
pkasting@chromium.org
Message:

Unreviewed, rolling out r93538.
http://trac.webkit.org/changeset/93538
https://bugs.webkit.org/show_bug.cgi?id=66143

Broke Leopard, SnowLeopard, and Chromium Mac bots

Source/WebCore:

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::logicalRightOffsetForLine):

  • rendering/RenderBlock.h:
  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::repaintRectangleInRegions):

  • rendering/RenderFlowThread.h:
  • rendering/RenderRegion.cpp:
  • rendering/RenderRegion.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:

(WebCore::RenderView::pushLayoutState):

LayoutTests:

  • fast/regions/webkit-flow-floats-inside-regions-bounds-expected.txt: Removed.
  • fast/regions/webkit-flow-floats-inside-regions-bounds.html: Removed.
  • fast/regions/webkit-flow-inlines-inside-regions-bounds-expected.txt: Removed.
  • fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-lr-expected.txt: Removed.
  • fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-lr.html: Removed.
  • fast/regions/webkit-flow-inlines-inside-regions-bounds.html: Removed.
Location:
trunk
Files:
6 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r93554 r93556  
     12011-08-22  Peter Kasting  <pkasting@google.com>
     2
     3        Unreviewed, rolling out r93538.
     4        http://trac.webkit.org/changeset/93538
     5        https://bugs.webkit.org/show_bug.cgi?id=66143
     6
     7        Broke Leopard, SnowLeopard, and Chromium Mac bots
     8
     9        * fast/regions/webkit-flow-floats-inside-regions-bounds-expected.txt: Removed.
     10        * fast/regions/webkit-flow-floats-inside-regions-bounds.html: Removed.
     11        * fast/regions/webkit-flow-inlines-inside-regions-bounds-expected.txt: Removed.
     12        * fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-lr-expected.txt: Removed.
     13        * fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-lr.html: Removed.
     14        * fast/regions/webkit-flow-inlines-inside-regions-bounds.html: Removed.
     15
    1162011-08-22  Tony Chang  <tony@chromium.org>
    217
  • trunk/Source/WebCore/ChangeLog

    r93551 r93556  
     12011-08-22  Peter Kasting  <pkasting@google.com>
     2
     3        Unreviewed, rolling out r93538.
     4        http://trac.webkit.org/changeset/93538
     5        https://bugs.webkit.org/show_bug.cgi?id=66143
     6
     7        Broke Leopard, SnowLeopard, and Chromium Mac bots
     8
     9        * rendering/LayoutState.cpp:
     10        (WebCore::LayoutState::LayoutState):
     11        * rendering/RenderBlock.cpp:
     12        (WebCore::RenderBlock::layoutBlock):
     13        (WebCore::RenderBlock::logicalRightOffsetForLine):
     14        * rendering/RenderBlock.h:
     15        * rendering/RenderFlowThread.cpp:
     16        (WebCore::RenderFlowThread::RenderFlowThread):
     17        (WebCore::RenderFlowThread::layout):
     18        (WebCore::RenderFlowThread::repaintRectangleInRegions):
     19        * rendering/RenderFlowThread.h:
     20        * rendering/RenderRegion.cpp:
     21        * rendering/RenderRegion.h:
     22        * rendering/RenderView.cpp:
     23        (WebCore::RenderView::RenderView):
     24        * rendering/RenderView.h:
     25        (WebCore::RenderView::pushLayoutState):
     26
    1272011-08-22  Tony Chang  <tony@chromium.org>
    228
  • trunk/Source/WebCore/rendering/LayoutState.cpp

    r93538 r93556  
    8383    // If we establish a new page height, then cache the offset to the top of the first page.
    8484    // We can compare this later on to figure out what part of the page we're actually on,
    85     if (pageLogicalHeight || m_columnInfo || renderer->isRenderFlowThread()) {
     85    if (pageLogicalHeight || m_columnInfo) {
    8686        m_pageLogicalHeight = pageLogicalHeight;
    8787        m_pageOffset = LayoutSize(m_layoutOffset.width() + renderer->borderLeft() + renderer->paddingLeft(),
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r93538 r93556  
    4242#include "RenderCombineText.h"
    4343#include "RenderDeprecatedFlexibleBox.h"
    44 #include "RenderFlowThread.h"
    4544#include "RenderImage.h"
    4645#include "RenderInline.h"
     
    12241223    }
    12251224
    1226     RenderView* renderView = view();
    1227     LayoutStateMaintainer statePusher(renderView, this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || style()->isFlippedBlocksWritingMode(), pageLogicalHeight, pageLogicalHeightChanged, colInfo);
    1228 
    1229     bool disableRegionFitting = renderView->hasRenderFlowThread() && (hasColumns() || (isPositioned() && !isRenderFlowThread()) || isFloating());
    1230     RegionFittingDisabler regionFittingDisabler(renderView->currentRenderFlowThread(), disableRegionFitting);
     1225    LayoutStateMaintainer statePusher(view(), this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || style()->isFlippedBlocksWritingMode(), pageLogicalHeight, pageLogicalHeightChanged, colInfo);
    12311226
    12321227    // We use four values, maxTopPos, maxTopNeg, maxBottomPos, and maxBottomNeg, to track
     
    13111306    statePusher.pop();
    13121307
    1313     if (renderView->layoutState()->m_pageLogicalHeight)
    1314         setPageLogicalOffset(renderView->layoutState()->pageLogicalOffset(logicalTop()));
     1308    if (view()->layoutState()->m_pageLogicalHeight)
     1309        setPageLogicalOffset(view()->layoutState()->pageLogicalOffset(logicalTop()));
    13151310
    13161311    updateLayerTransform();
     
    35623557}
    35633558
    3564 void RenderBlock::adjustForRegionFittingIfNeeded(LayoutUnit logicalTop, LayoutUnit& rightOffset) const
    3565 {
    3566     RenderView* renderView = view();
    3567     if (!renderView->hasRenderFlowThread())
    3568         return;
    3569    
    3570     RenderFlowThread* flowThread = renderView->currentRenderFlowThread();
    3571     if (!flowThread->isRegionFittingEnabled())
    3572         return;
    3573 
    3574     LayoutState* layoutState = renderView->layoutState();
    3575     IntSize delta = layoutState->m_layoutOffset - layoutState->m_pageOffset;
    3576     int offset = isHorizontalWritingMode() ? delta.height() : delta.width();
    3577     LayoutUnit regionWidth = flowThread->regionLogicalWidthForLine(offset + logicalTop);
    3578     rightOffset -= flowThread->logicalWidth() - regionWidth;
    3579 }
    3580 
    35813559LayoutUnit RenderBlock::logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const
    35823560{
    35833561    LayoutUnit right = fixedOffset;
    3584     adjustForRegionFittingIfNeeded(logicalTop, right);
    35853562
    35863563    if (m_floatingObjects && m_floatingObjects->hasRightObjects()) {
     
    35883565            *heightRemaining = 1;
    35893566
    3590         LayoutUnit rightFloatOffset = fixedOffset;
    3591         FloatIntervalSearchAdapter<FloatingObject::FloatRight> adapter(this, logicalTop, rightFloatOffset, heightRemaining);
     3567        FloatIntervalSearchAdapter<FloatingObject::FloatRight> adapter(this, logicalTop, right, heightRemaining);
    35923568        m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter);
    3593         right = min(right, rightFloatOffset);
    35943569    }
    35953570   
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r93538 r93556  
    312312    virtual void paintObject(PaintInfo&, const LayoutPoint&);
    313313
    314     void adjustForRegionFittingIfNeeded(LayoutUnit logicalTop, LayoutUnit& rightOffset) const;
    315 
    316314    LayoutUnit logicalRightOffsetForLine(LayoutUnit position, LayoutUnit fixedOffset, bool applyTextIndent = true, LayoutUnit* logicalHeightRemaining = 0) const;
    317315    LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, LayoutUnit fixedOffset, bool applyTextIndent = true, LayoutUnit* logicalHeightRemaining = 0) const;
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r93538 r93556  
    4646    , m_flowThread(flowThread)
    4747    , m_regionsInvalidated(false)
    48     , m_regionFittingDisableCount(0)
    4948{
    5049    setIsAnonymous(false);
     
    272271}
    273272
    274 class CurrentRenderFlowThreadMaintainer {
    275     WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadMaintainer);
    276 public:
    277     CurrentRenderFlowThreadMaintainer(RenderFlowThread* renderFlowThread)
    278         : m_renderFlowThread(renderFlowThread)
    279     {
    280         RenderView* view = m_renderFlowThread->view();
    281         ASSERT(!view->currentRenderFlowThread());
    282         view->setCurrentRenderFlowThread(m_renderFlowThread);
    283     }
    284     ~CurrentRenderFlowThreadMaintainer()
    285     {
    286         RenderView* view = m_renderFlowThread->view();
    287         ASSERT(view->currentRenderFlowThread() == m_renderFlowThread);
    288         view->setCurrentRenderFlowThread(0);
    289     }
    290 private:
    291     RenderFlowThread* m_renderFlowThread;
    292 };
    293 
    294273void RenderFlowThread::layout()
    295274{
    296     CurrentRenderFlowThreadMaintainer currentFlowThreadSetter(this);
    297 
    298275    if (m_regionsInvalidated) {
    299276        m_regionsInvalidated = false;
     
    460437}
    461438
    462 RenderRegion* RenderFlowThread::renderRegionForLine(LayoutUnit position) const
    463 {
    464     ASSERT(!m_regionsInvalidated);
    465 
    466     // FIXME: The regions are always in order, optimize this search.
    467     bool useHorizontalWritingMode = isHorizontalWritingMode();
    468     for (RenderRegionList::const_iterator iter = m_regionList.begin(); iter != m_regionList.end(); ++iter) {
    469         RenderRegion* region = *iter;
    470         if (!region->isValid())
    471             continue;
    472 
    473         LayoutRect regionRect = region->regionRect();
    474 
    475         if (useHorizontalWritingMode) {
    476             if (regionRect.y() <= position && position < regionRect.maxY())
    477                 return region;
    478             continue;
    479         }
    480 
    481         if (regionRect.x() <= position && position < regionRect.maxX())
    482             return region;
    483     }
    484 
    485     return 0;
    486 }
    487 
    488 LayoutUnit RenderFlowThread::regionLogicalWidthForLine(LayoutUnit position) const
    489 {
    490     RenderRegion* region = renderRegionForLine(position);
    491     if (!region)
    492         return 0;
    493 
    494     return isHorizontalWritingMode() ? region->regionRect().width() : region->regionRect().height();
    495 }
    496 
    497 
    498439} // namespace WebCore
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r93538 r93556  
    9797    void repaintRectangleInRegions(const LayoutRect&, bool immediate);
    9898
    99     LayoutUnit regionLogicalWidthForLine(LayoutUnit position) const;
    100 
    101     bool isRegionFittingEnabled() const { return !m_regionFittingDisableCount; }
    102     void disableRegionFitting() { m_regionFittingDisableCount++; }
    103     void enableRegionFitting() { ASSERT(m_regionFittingDisableCount > 0); m_regionFittingDisableCount--; }
    104 
    10599private:
    106100    virtual const char* renderName() const { return "RenderFlowThread"; }
    107 
    108     RenderRegion* renderRegionForLine(LayoutUnit position) const;
    109101
    110102    bool dependsOn(RenderFlowThread* otherRenderFlowThread) const;
     
    132124
    133125    bool m_regionsInvalidated;
    134     unsigned m_regionFittingDisableCount;
    135126};
    136127
     
    150141void toRenderFlowThread(const RenderFlowThread*);
    151142
    152 class RegionFittingDisabler {
    153     WTF_MAKE_NONCOPYABLE(RegionFittingDisabler);
    154 public:
    155     RegionFittingDisabler(RenderFlowThread* flowThread, bool disable)
    156     {
    157         if (flowThread && disable) {
    158             m_flowThread = flowThread;
    159             m_flowThread->disableRegionFitting();
    160         } else
    161             m_flowThread = 0;
    162     }
    163 
    164     ~RegionFittingDisabler()
    165     {
    166         if (m_flowThread)
    167             m_flowThread->enableRegionFitting();
    168     }
    169 private:
    170     RenderFlowThread* m_flowThread;
    171 };
    172 
    173 
    174143} // namespace WebCore
    175144
  • trunk/Source/WebCore/rendering/RenderRegion.cpp

    r93538 r93556  
    8383}
    8484
    85 void RenderRegion::layout()
    86 {
    87     RenderReplaced::layout();
    88     if (m_flowThread && isValid())
    89         m_flowThread->invalidateRegions();
    90 }
    91 
    9285void RenderRegion::attachRegion()
    9386{
  • trunk/Source/WebCore/rendering/RenderRegion.h

    r93538 r93556  
    5959    void setIsValid(bool valid) { m_isValid = valid; }
    6060
    61     virtual void layout();
    62 
    6361private:
    6462    virtual const char* renderName() const { return "RenderRegion"; }
  • trunk/Source/WebCore/rendering/RenderView.cpp

    r93538 r93556  
    5656    , m_layoutState(0)
    5757    , m_layoutStateDisableCount(0)
    58     , m_currentRenderFlowThread(0)
    5958{
    6059    // Clear our anonymous bit, set because RenderObject assumes
  • trunk/Source/WebCore/rendering/RenderView.h

    r93538 r93556  
    182182    const RenderFlowThreadList* renderFlowThreadList() const { return m_renderFlowThreadList.get(); }
    183183
    184     bool hasRenderFlowThread() const { return m_currentRenderFlowThread; }
    185     RenderFlowThread* currentRenderFlowThread() const { return m_currentRenderFlowThread; }
    186     void setCurrentRenderFlowThread(RenderFlowThread* flowThread) { m_currentRenderFlowThread = flowThread; }
    187 
    188184    void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
    189185   
     
    201197    {
    202198        // We push LayoutState even if layoutState is disabled because it stores layoutDelta too.
    203         if (!doingFullRepaint() || renderer->hasColumns() || m_layoutState->isPaginated() || hasRenderFlowThread()) {
     199        if (!doingFullRepaint() || renderer->hasColumns() || m_layoutState->isPaginated()) {
    204200            m_layoutState = new (renderArena()) LayoutState(m_layoutState, renderer, offset, pageHeight, pageHeightChanged, colInfo);
    205201            return true;
     
    270266#endif
    271267    OwnPtr<RenderFlowThreadList> m_renderFlowThreadList;
    272     RenderFlowThread* m_currentRenderFlowThread;
    273268};
    274269
Note: See TracChangeset for help on using the changeset viewer.