Changeset 91955 in webkit


Ignore:
Timestamp:
Jul 28, 2011 4:33:38 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[CSSRegions]Add basic RenderRegion support
https://bugs.webkit.org/show_bug.cgi?id=64689

Patch by Mihnea Ovidenie <mihnea@adobe.com> on 2011-07-28
Reviewed by David Hyatt.

Source/WebCore:

This patch introduces the RenderRegion object.
A RenderObject that takes its content from a "named" flow will become a RenderRegion, an element that is used to display the content from a RenderFlowThread.
A RenderRegion that is marked to take its content from a non existing flow, will have its content disconnected from the normal flow.

Tests: fast/regions/region-element-display-restriction.html

fast/regions/region-element-dynamic-attach-flow.html
fast/regions/region-element-dynamic-detach-flow.html
fast/regions/render-region-renderer.html

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Node.cpp:

(WebCore::Node::diff):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::createObject):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderRegion):

  • rendering/RenderRegion.cpp: Added.

(WebCore::RenderRegion::RenderRegion):
(WebCore::RenderRegion::~RenderRegion):
(WebCore::RenderRegion::layout):
(WebCore::RenderRegion::paint):

  • rendering/RenderRegion.h: Added.

(WebCore::RenderRegion::isRenderRegion):
(WebCore::RenderRegion::renderName):
(WebCore::toRenderRegion):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::diff):

LayoutTests:

  • fast/regions/region-element-display-restriction-expected.txt: Added.
  • fast/regions/region-element-display-restriction.html: Added.
  • fast/regions/region-element-dynamic-attach-flow-expected.txt: Added.
  • fast/regions/region-element-dynamic-attach-flow.html: Added.
  • fast/regions/region-element-dynamic-detach-flow-expected.txt: Added.
  • fast/regions/region-element-dynamic-detach-flow.html: Added.
  • fast/regions/render-region-renderer-expected.txt: Added.
  • fast/regions/render-region-renderer.html: Added.
  • fast/regions/script-tests/region-element-display-restriction.js: Added.
Location:
trunk
Files:
11 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r91953 r91955  
     12011-07-28  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Add basic RenderRegion support
     4        https://bugs.webkit.org/show_bug.cgi?id=64689
     5
     6        Reviewed by David Hyatt.
     7
     8        * fast/regions/region-element-display-restriction-expected.txt: Added.
     9        * fast/regions/region-element-display-restriction.html: Added.
     10        * fast/regions/region-element-dynamic-attach-flow-expected.txt: Added.
     11        * fast/regions/region-element-dynamic-attach-flow.html: Added.
     12        * fast/regions/region-element-dynamic-detach-flow-expected.txt: Added.
     13        * fast/regions/region-element-dynamic-detach-flow.html: Added.
     14        * fast/regions/render-region-renderer-expected.txt: Added.
     15        * fast/regions/render-region-renderer.html: Added.
     16        * fast/regions/script-tests/region-element-display-restriction.js: Added.
     17
    1182011-07-28  Adrienne Walker  <enne@google.com>
    219
  • trunk/Source/WebCore/ChangeLog

    r91954 r91955  
     12011-07-28  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Add basic RenderRegion support
     4        https://bugs.webkit.org/show_bug.cgi?id=64689
     5
     6        Reviewed by David Hyatt.
     7
     8        This patch introduces the RenderRegion object.
     9        A RenderObject that takes its content from a "named" flow will become a RenderRegion, an element that is used to display the content from a RenderFlowThread.
     10        A RenderRegion that is marked to take its content from a non existing flow, will have its content disconnected from the normal flow.
     11
     12        Tests: fast/regions/region-element-display-restriction.html
     13               fast/regions/region-element-dynamic-attach-flow.html
     14               fast/regions/region-element-dynamic-detach-flow.html
     15               fast/regions/render-region-renderer.html
     16
     17        * WebCore.vcproj/WebCore.vcproj:
     18        * WebCore.xcodeproj/project.pbxproj:
     19        * dom/Node.cpp:
     20        (WebCore::Node::diff):
     21        * rendering/RenderObject.cpp:
     22        (WebCore::RenderObject::createObject):
     23        * rendering/RenderObject.h:
     24        (WebCore::RenderObject::isRenderRegion):
     25        * rendering/RenderRegion.cpp: Added.
     26        (WebCore::RenderRegion::RenderRegion):
     27        (WebCore::RenderRegion::~RenderRegion):
     28        (WebCore::RenderRegion::layout):
     29        (WebCore::RenderRegion::paint):
     30        * rendering/RenderRegion.h: Added.
     31        (WebCore::RenderRegion::isRenderRegion):
     32        (WebCore::RenderRegion::renderName):
     33        (WebCore::toRenderRegion):
     34        * rendering/style/RenderStyle.cpp:
     35        (WebCore::RenderStyle::diff):
     36
    1372011-07-28  Marco Peereboom  <marco@peereboom.us>
    238
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r91936 r91955  
    3636736367                        </File>
    3636836368                        <File
     36369                                RelativePath="..\rendering\RenderRegion.h"
     36370                                >
     36371                        </File>
     36372                        <File
     36373                                RelativePath="..\rendering\RenderRegion.cpp"
     36374                                >
     36375                        </File>
     36376                        <File
    3636936377                                RelativePath="..\rendering\RenderReplaced.cpp"
    3637036378                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r91936 r91955  
    54605460                D3D4E972130C7CFE007BA540 /* HTMLSummaryElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3D4E970130C7CFE007BA540 /* HTMLSummaryElement.cpp */; };
    54615461                D3D4E973130C7CFE007BA540 /* HTMLSummaryElement.h in Headers */ = {isa = PBXBuildFile; fileRef = D3D4E971130C7CFE007BA540 /* HTMLSummaryElement.h */; };
     5462                D70AD65713E1342B005B50B4 /* RenderRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D70AD65513E1342B005B50B4 /* RenderRegion.cpp */; };
     5463                D70AD65813E1342B005B50B4 /* RenderRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = D70AD65613E1342B005B50B4 /* RenderRegion.h */; };
    54625464                D8B6152F1032495100C8554A /* Cookie.h in Headers */ = {isa = PBXBuildFile; fileRef = D8B6152E1032495100C8554A /* Cookie.h */; settings = {ATTRIBUTES = (Private, ); }; };
    54635465                DB23C2CB0A508D29002489EB /* IndentOutdentCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */; };
     
    1216412166                D3D4E970130C7CFE007BA540 /* HTMLSummaryElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLSummaryElement.cpp; sourceTree = "<group>"; };
    1216512167                D3D4E971130C7CFE007BA540 /* HTMLSummaryElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLSummaryElement.h; sourceTree = "<group>"; };
     12168                D70AD65513E1342B005B50B4 /* RenderRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderRegion.cpp; sourceTree = "<group>"; };
     12169                D70AD65613E1342B005B50B4 /* RenderRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderRegion.h; sourceTree = "<group>"; };
    1216612170                D8B6152E1032495100C8554A /* Cookie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cookie.h; sourceTree = "<group>"; };
    1216712171                DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IndentOutdentCommand.cpp; sourceTree = "<group>"; };
     
    1955119555                                5A574F22131DB93900471B88 /* RenderQuote.cpp */,
    1955219556                                5A574F23131DB93900471B88 /* RenderQuote.h */,
     19557                                D70AD65513E1342B005B50B4 /* RenderRegion.cpp */,
     19558                                D70AD65613E1342B005B50B4 /* RenderRegion.h */,
    1955319559                                A871DFDE0A15376B00B12A68 /* RenderReplaced.cpp */,
    1955419560                                A871DFDF0A15376B00B12A68 /* RenderReplaced.h */,
     
    2325923265                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
    2326023266                                508CCA4F13CF106B003151F3 /* RenderFlowThread.h in Headers */,
     23267                                D70AD65813E1342B005B50B4 /* RenderRegion.h in Headers */,
    2326123268                        );
    2326223269                        runOnlyForDeploymentPostprocessing = 0;
     
    2604626053                                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
    2604726054                                508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */,
     26055                                D70AD65713E1342B005B50B4 /* RenderRegion.cpp in Sources */,
    2604826056                        );
    2604926057                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/dom/Node.cpp

    r91760 r91955  
    362362    if ((s1 && s2) && (s1->flowThread() != s2->flowThread()))
    363363        ch = Detach;
     364
     365    // When either the region thread or the region index has changed,
     366    // we need to prepare a separate render region object.
     367    if ((s1 && s2) && ((s1->regionThread() != s2->regionThread() || (s1->regionIndex() != s2->regionIndex()))))
     368            ch = Detach;
    364369#endif
    365370
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r91907 r91955  
    5050#include "RenderLayer.h"
    5151#include "RenderListItem.h"
     52#include "RenderRegion.h"
    5253#include "RenderRuby.h"
    5354#include "RenderRubyText.h"
     
    136137        case RUN_IN:
    137138        case COMPACT:
     139#if ENABLE(CSS_REGIONS)
     140            // Only non-replaced block elements can become a region.
     141            if (!style->regionThread().isEmpty())
     142                return new (arena) RenderRegion(node);
     143#endif
    138144            return new (arena) RenderBlock(node);
    139145        case LIST_ITEM:
  • trunk/Source/WebCore/rendering/RenderObject.h

    r91760 r91955  
    431431    bool isReplaced() const { return m_replaced; } // a "replaced" element (see CSS)
    432432    bool isHorizontalWritingMode() const { return m_horizontalWritingMode; }
     433
     434#if ENABLE(CSS_REGIONS)
     435    virtual bool isRenderRegion() const { return false; }
     436#endif
    433437
    434438    bool hasLayer() const { return m_hasLayer; }
  • trunk/Source/WebCore/rendering/style/RenderStyle.cpp

    r91760 r91955  
    350350
    351351#if ENABLE(CSS_REGIONS)
    352         if (rareNonInheritedData->m_regionThread != other->rareNonInheritedData->m_regionThread
    353             || rareNonInheritedData->m_regionIndex != other->rareNonInheritedData->m_regionIndex
    354             || rareNonInheritedData->m_regionOverflow != other->rareNonInheritedData->m_regionOverflow)
     352        if (rareNonInheritedData->m_regionOverflow != other->rareNonInheritedData->m_regionOverflow)
    355353            return StyleDifferenceLayout;
    356354#endif
Note: See TracChangeset for help on using the changeset viewer.