Changeset 144633 in webkit


Ignore:
Timestamp:
Mar 4, 2013 8:43:35 AM (11 years ago)
Author:
hyatt@apple.com
Message:

[New Multicolumn] Make sure region styling works for columns inside regions.
https://bugs.webkit.org/show_bug.cgi?id=111276

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/regions/region-styling-in-columns.html

  • rendering/RenderFlowThread.cpp:

(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
(WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):

  • rendering/RenderFlowThread.h:

(CurrentRenderFlowThreadMaintainer):
Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
and restores it when done. This effectively makes flow thread layout a push/pop stack,
since with in-flow threads, this is allowed. We assert that a nested flow thread is
in-flow to preserve the invariant that you can't nest CSS Regions flow thread.

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::computeChildrenStyleInRegion):
Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
for the nested flow thread.

LayoutTests:

  • fast/regions/region-style-in-columns-expected.html: Added.
  • fast/regions/region-style-in-columns.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r144629 r144633  
     12013-03-03  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Make sure region styling works for columns inside regions.
     4        https://bugs.webkit.org/show_bug.cgi?id=111276
     5
     6        Reviewed by Sam Weinig.
     7
     8        * fast/regions/region-style-in-columns-expected.html: Added.
     9        * fast/regions/region-style-in-columns.html: Added.
     10
    1112013-03-04  Ádám Kallai  <kadam@inf.u-szeged.hu>
    212
  • trunk/Source/WebCore/ChangeLog

    r144632 r144633  
     12013-03-03  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Make sure region styling works for columns inside regions.
     4        https://bugs.webkit.org/show_bug.cgi?id=111276
     5
     6        Reviewed by Sam Weinig.
     7
     8        Test: fast/regions/region-styling-in-columns.html
     9
     10        * rendering/RenderFlowThread.cpp:
     11        (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
     12        (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
     13        * rendering/RenderFlowThread.h:
     14        (CurrentRenderFlowThreadMaintainer):
     15        Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
     16        and restores it when done. This effectively makes flow thread layout a push/pop stack,
     17        since with in-flow threads, this is allowed. We assert that a nested flow thread is
     18        in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
     19
     20        * rendering/RenderRegion.cpp:
     21        (WebCore::RenderRegion::computeChildrenStyleInRegion):
     22        Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
     23        for the nested flow thread.
     24
    1252013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
    226
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r144497 r144633  
    992992CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer(RenderFlowThread* renderFlowThread)
    993993    : m_renderFlowThread(renderFlowThread)
     994    , m_previousRenderFlowThread(0)
    994995{
    995996    if (!m_renderFlowThread)
    996997        return;
    997998    RenderView* view = m_renderFlowThread->view();
    998     ASSERT(!view->flowThreadController()->currentRenderFlowThread());
     999    m_previousRenderFlowThread = view->flowThreadController()->currentRenderFlowThread();
     1000    ASSERT(!m_previousRenderFlowThread || !renderFlowThread->isRenderNamedFlowThread());
    9991001    view->flowThreadController()->setCurrentRenderFlowThread(m_renderFlowThread);
    10001002}
     
    10061008    RenderView* view = m_renderFlowThread->view();
    10071009    ASSERT(view->flowThreadController()->currentRenderFlowThread() == m_renderFlowThread);
    1008     view->flowThreadController()->setCurrentRenderFlowThread(0);
     1010    view->flowThreadController()->setCurrentRenderFlowThread(m_previousRenderFlowThread);
    10091011}
    10101012
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r144484 r144633  
    235235private:
    236236    RenderFlowThread* m_renderFlowThread;
     237    RenderFlowThread* m_previousRenderFlowThread;
    237238};
    238239
  • trunk/Source/WebCore/rendering/RenderRegion.cpp

    r144497 r144633  
    542542            objectRegionStyleCached = true;
    543543        } else {
    544             if (child->isAnonymous())
     544            if (child->isAnonymous() || child->isInFlowRenderFlowThread())
    545545                childStyleInRegion = RenderStyle::createAnonymousStyleWithDisplay(object->style(), child->style()->display());
    546546            else if (child->isText())
Note: See TracChangeset for help on using the changeset viewer.