Changeset 108103 in webkit


Ignore:
Timestamp:
Feb 17, 2012 11:58:56 AM (12 years ago)
Author:
mihnea@adobe.com
Message:

[CSSRegions]Implement NamedFlow::overflow
https://bugs.webkit.org/show_bug.cgi?id=78880

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/regions/webkit-named-flow-overflow.html

  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::WebKitNamedFlow):
(WebCore::WebKitNamedFlow::overflow):
(WebCore):

  • dom/WebKitNamedFlow.h:

(WebCore):
(WebCore::WebKitNamedFlow::create):
(WebKitNamedFlow):

  • dom/WebKitNamedFlow.idl:
  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::ensureNamedFlow):
(WebCore::RenderFlowThread::computeOverflowStateForRegions):

  • rendering/RenderFlowThread.h:

LayoutTests:

  • fast/regions/resources/helper.js:

(testContentToRegionsMapping):

  • fast/regions/resources/region-style.css:
  • fast/regions/webkit-named-flow-overflow-expected.txt: Added.
  • fast/regions/webkit-named-flow-overflow.html: Added.
Location:
trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r108102 r108103  
     12012-02-17  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Implement NamedFlow::overflow
     4        https://bugs.webkit.org/show_bug.cgi?id=78880
     5
     6        Reviewed by David Hyatt.
     7
     8        * fast/regions/resources/helper.js:
     9        (testContentToRegionsMapping):
     10        * fast/regions/resources/region-style.css:
     11        * fast/regions/webkit-named-flow-overflow-expected.txt: Added.
     12        * fast/regions/webkit-named-flow-overflow.html: Added.
     13
    1142012-02-17  Joe Thomas  <joethomas@motorola.com>
    215
  • trunk/LayoutTests/fast/regions/resources/helper.js

    r95571 r108103  
    128128    return !results.length && !debug;
    129129}
     130
     131function logMessage(message, success)
     132{
     133    var pElem = document.createElement("p");
     134
     135    var spanElement = document.createElement("span");
     136    spanElement.className = success ? "pass" : "fail";
     137    var spanTextNode = success ? document.createTextNode("PASS") : document.createTextNode("FAIL");
     138    spanElement.appendChild(spanTextNode);
     139    pElem.appendChild(spanElement);
     140
     141    var textNode = document.createTextNode(message);
     142    pElem.appendChild(textNode);
     143        document.getElementById("console").appendChild(pElem);
     144}
     145
     146function logPassMessage(message)
     147{
     148    logMessage(message, true);
     149}
     150
     151function logFailMessage(message)
     152{
     153    var logMsg = "" + message;
     154    if (logMsg.length > 0)
     155        logMsg = " : " + logMsg;
     156    logMessage(logMsg, false);
     157}
     158
     159function assert(expression, failMessage)
     160{
     161    expression ? logPassMessage("") : logFailMessage(failMessage);
     162}
  • trunk/LayoutTests/fast/regions/resources/region-style.css

    r104328 r108103  
    3838}
    3939
     40.pass {
     41    font-weight: bold;
     42    color: green;
     43}
     44
     45.fail {
     46    font-weight: bold;
     47    color: red;
     48}
  • trunk/Source/WebCore/ChangeLog

    r108102 r108103  
     12012-02-17  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Implement NamedFlow::overflow
     4        https://bugs.webkit.org/show_bug.cgi?id=78880
     5
     6        Reviewed by David Hyatt.
     7
     8        Test: fast/regions/webkit-named-flow-overflow.html
     9
     10        * dom/WebKitNamedFlow.cpp:
     11        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
     12        (WebCore::WebKitNamedFlow::overflow):
     13        (WebCore):
     14        * dom/WebKitNamedFlow.h:
     15        (WebCore):
     16        (WebCore::WebKitNamedFlow::create):
     17        (WebKitNamedFlow):
     18        * dom/WebKitNamedFlow.idl:
     19        * rendering/RenderFlowThread.cpp:
     20        (WebCore::RenderFlowThread::RenderFlowThread):
     21        (WebCore::RenderFlowThread::ensureNamedFlow):
     22        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
     23        * rendering/RenderFlowThread.h:
     24
    1252012-02-17  Joe Thomas  <joethomas@motorola.com>
    226
  • trunk/Source/WebCore/dom/WebKitNamedFlow.cpp

    r102333 r108103  
    3131#include "WebKitNamedFlow.h"
    3232
     33#include "RenderFlowThread.h"
     34
    3335namespace WebCore {
    3436
    35 WebKitNamedFlow::WebKitNamedFlow()
     37WebKitNamedFlow::WebKitNamedFlow(RenderFlowThread* parentFlowThread)
     38: m_parentFlowThread(parentFlowThread)
    3639{
    3740}
     
    4144}
    4245
     46bool WebKitNamedFlow::overflow() const
     47{
     48    m_parentFlowThread->document()->updateLayoutIgnorePendingStylesheets();
     49    return m_parentFlowThread->overflow();
     50}
     51
    4352} // namespace WebCore
  • trunk/Source/WebCore/dom/WebKitNamedFlow.h

    r102333 r108103  
    3636namespace WebCore {
    3737
     38class RenderFlowThread;
     39
    3840class WebKitNamedFlow : public RefCounted<WebKitNamedFlow> {
    3941public:
    40     static PassRefPtr<WebKitNamedFlow> create()
     42    static PassRefPtr<WebKitNamedFlow> create(RenderFlowThread* parentFlowThread)
    4143    {
    42         return adoptRef(new WebKitNamedFlow);
     44        return adoptRef(new WebKitNamedFlow(parentFlowThread));
    4345    }
    4446
    4547    ~WebKitNamedFlow();
    4648
     49    bool overflow() const;
    4750private:
    48     WebKitNamedFlow();
     51    WebKitNamedFlow(RenderFlowThread*);
     52
     53    RenderFlowThread* m_parentFlowThread;
    4954};
    5055
  • trunk/Source/WebCore/dom/WebKitNamedFlow.idl

    r107768 r108103  
    3232        JSGenerateToJSObject
    3333    ] WebKitNamedFlow {
     34        readonly attribute boolean overflow;
    3435    };
    3536}
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r107959 r108103  
    5252    , m_regionsHaveUniformLogicalWidth(true)
    5353    , m_regionsHaveUniformLogicalHeight(true)
     54    , m_overflow(false)
    5455{
    5556    setIsAnonymous(false);
     
    868869{
    869870    if (!m_namedFlow)
    870         m_namedFlow = WebKitNamedFlow::create();
     871        m_namedFlow = WebKitNamedFlow::create(this);
    871872
    872873    return m_namedFlow.get();
     
    898899        region->setRegionState(state);
    899900    }
     901
     902    // With the regions overflow state computed we can also set the overflow for the named flow.
     903    RenderRegion* lastReg = lastRegion();
     904    m_overflow = lastReg && (lastReg->regionState() == RenderRegion::RegionOverflow);
    900905}
    901906
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r107650 r108103  
    136136    void computeOverflowStateForRegions(LayoutUnit oldClientAfterEdge);
    137137
     138    bool overflow() const { return m_overflow; }
    138139private:
    139140    virtual const char* renderName() const { return "RenderFlowThread"; }
     
    196197    bool m_regionsHaveUniformLogicalWidth;
    197198    bool m_regionsHaveUniformLogicalHeight;
     199    bool m_overflow;
    198200    RefPtr<WebKitNamedFlow> m_namedFlow;
    199201};
Note: See TracChangeset for help on using the changeset viewer.