Diff
Modified: trunk/Source/WebCore/ChangeLog (111239 => 111240)
--- trunk/Source/WebCore/ChangeLog 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/ChangeLog 2012-03-19 20:59:10 UTC (rev 111240)
@@ -1,3 +1,39 @@
+2012-03-19 David Hyatt <[email protected]>
+
+ https://bugs.webkit.org/show_bug.cgi?id=81553
+
+ [New Multicolumn] Stub out classes to represent sets of column region boxes.
+
+ RenderRegionSet is an abstract class representing a set of contiguous anonymous
+ same-size regions.
+
+ RenderMultiColumnSet derives from RenderRegionSet and represents a set of contiguous
+ columns. It will also handle unique column behavior like column rule painting.
+
+ Eventually there will be a RenderPageSet derived class for printing/pages, but
+ that will come later after I finish rebuilding multi-column layout.
+
+ Reviewed by Dan Bernstein.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * rendering/RenderMultiColumnSet.cpp: Added.
+ (WebCore):
+ (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
+ (WebCore::RenderMultiColumnSet::renderName):
+ * rendering/RenderMultiColumnSet.h: Added.
+ (WebCore):
+ (RenderMultiColumnSet):
+ * rendering/RenderRegionSet.cpp: Added.
+ (WebCore):
+ (WebCore::RenderRegionSet::RenderRegionSet):
+ * rendering/RenderRegionSet.h: Added.
+ (WebCore):
+ (RenderRegionSet):
+
2012-03-19 Raymond Toy <[email protected]>
Add playback state for AudioBufferSourceNode and add number of active nodes
Modified: trunk/Source/WebCore/GNUmakefile.list.am (111239 => 111240)
--- trunk/Source/WebCore/GNUmakefile.list.am 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2012-03-19 20:59:10 UTC (rev 111240)
@@ -3724,6 +3724,8 @@
Source/WebCore/rendering/RenderMeter.h \
Source/WebCore/rendering/RenderMultiColumnBlock.cpp \
Source/WebCore/rendering/RenderMultiColumnBlock.h \
+ Source/WebCore/rendering/RenderMultiColumnSet.cpp \
+ Source/WebCore/rendering/RenderMultiColumnSet.h \
Source/WebCore/rendering/RenderObjectChildList.cpp \
Source/WebCore/rendering/RenderObjectChildList.h \
Source/WebCore/rendering/RenderObject.cpp \
@@ -3737,6 +3739,8 @@
Source/WebCore/rendering/RenderQuote.h \
Source/WebCore/rendering/RenderRegion.cpp \
Source/WebCore/rendering/RenderRegion.h \
+ Source/WebCore/rendering/RenderRegionSet.cpp \
+ Source/WebCore/rendering/RenderRegionSet.h \
Source/WebCore/rendering/RenderReplaced.cpp \
Source/WebCore/rendering/RenderReplaced.h \
Source/WebCore/rendering/RenderReplica.cpp \
Modified: trunk/Source/WebCore/Target.pri (111239 => 111240)
--- trunk/Source/WebCore/Target.pri 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/Target.pri 2012-03-19 20:59:10 UTC (rev 111240)
@@ -1249,12 +1249,14 @@
rendering/RenderMenuList.cpp \
rendering/RenderMeter.cpp \
rendering/RenderMultiColumnBlock.cpp \
+ rendering/RenderMultiColumnSet.cpp \
rendering/RenderObject.cpp \
rendering/RenderObjectChildList.cpp \
rendering/RenderPart.cpp \
rendering/RenderProgress.cpp \
rendering/RenderQuote.cpp \
rendering/RenderRegion.cpp \
+ rendering/RenderRegionSet.cpp \
rendering/RenderReplaced.cpp \
rendering/RenderReplica.cpp \
rendering/RenderRuby.cpp \
Modified: trunk/Source/WebCore/WebCore.gypi (111239 => 111240)
--- trunk/Source/WebCore/WebCore.gypi 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.gypi 2012-03-19 20:59:10 UTC (rev 111240)
@@ -4621,6 +4621,8 @@
'rendering/RenderMeter.h',
'rendering/RenderMultiColumnBlock.cpp',
'rendering/RenderMultiColumnBlock.h',
+ 'rendering/RenderMultiColumnSet.cpp',
+ 'rendering/RenderMultiColumnSet.h',
'rendering/RenderObject.cpp',
'rendering/RenderObjectChildList.cpp',
'rendering/RenderPart.cpp',
@@ -4630,6 +4632,8 @@
'rendering/RenderQuote.h',
'rendering/RenderRegion.cpp',
'rendering/RenderRegion.h',
+ 'rendering/RenderRegionSet.cpp',
+ 'rendering/RenderRegionSet.h',
'rendering/RenderReplaced.cpp',
'rendering/RenderReplica.cpp',
'rendering/RenderReplica.h',
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (111239 => 111240)
--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-03-19 20:59:10 UTC (rev 111240)
@@ -39901,7 +39901,63 @@
RelativePath="..\rendering\RenderMultiColumnBlock.h"
>
</File>
+ <File
+ RelativePath="..\rendering\RenderMultiColumnSet.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
<File
+ RelativePath="..\rendering\RenderMultiColumnSet.h"
+ >
+ </File>
+ <File
RelativePath="..\rendering\RenderObject.cpp"
>
<FileConfiguration
@@ -40189,7 +40245,15 @@
RelativePath="..\rendering\RenderRegion.h"
>
</File>
+ <File
+ RelativePath="..\rendering\RenderRegionSet.cpp"
+ >
+ </File>
<File
+ RelativePath="..\rendering\RenderRegionSet.h"
+ >
+ </File>
+ <File
RelativePath="..\rendering\RenderReplaced.cpp"
>
<FileConfiguration
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (111239 => 111240)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-03-19 20:59:10 UTC (rev 111240)
@@ -5507,6 +5507,8 @@
BCE1C43B0D9830D3003B02F2 /* JSLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE1C4390D9830D3003B02F2 /* JSLocation.cpp */; };
BCE1C43C0D9830D3003B02F2 /* JSLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE1C43A0D9830D3003B02F2 /* JSLocation.h */; };
BCE1C4400D9830F4003B02F2 /* JSLocationCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */; };
+ BCE32B9C1517C0B200F542EC /* RenderMultiColumnSet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */; };
+ BCE32B9E1517C22700F542EC /* RenderMultiColumnSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */; };
BCE3BEC20D222B1D007E06E4 /* TagNodeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */; };
BCE3BEC30D222B1D007E06E4 /* TagNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */; };
BCE4389C140B1BA8005E437E /* JSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE4389B140B1BA7005E437E /* JSDictionary.h */; };
@@ -5526,6 +5528,8 @@
BCE789861120E7A60060ECE5 /* BidiRun.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE789851120E7A60060ECE5 /* BidiRun.h */; };
BCE7898B1120E8020060ECE5 /* BidiRun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE7898A1120E8020060ECE5 /* BidiRun.cpp */; };
BCE7B1930D4E86960075A539 /* JSHistoryCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE7B1920D4E86960075A539 /* JSHistoryCustom.cpp */; };
+ BCE93F451517C567008CCF74 /* RenderRegionSet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE93F441517C567008CCF74 /* RenderRegionSet.h */; };
+ BCE93F471517C6D5008CCF74 /* RenderRegionSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */; };
BCEA478F097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */; };
BCEA4790097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCEA4852097D93020094C9E4 /* RenderBlockLineLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEA4813097D93020094C9E4 /* RenderBlockLineLayout.cpp */; };
@@ -12550,6 +12554,8 @@
BCE1C4390D9830D3003B02F2 /* JSLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSLocation.cpp; sourceTree = "<group>"; };
BCE1C43A0D9830D3003B02F2 /* JSLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSLocation.h; sourceTree = "<group>"; };
BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSLocationCustom.cpp; sourceTree = "<group>"; };
+ BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMultiColumnSet.h; sourceTree = "<group>"; };
+ BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMultiColumnSet.cpp; sourceTree = "<group>"; };
BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagNodeList.cpp; sourceTree = "<group>"; };
BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagNodeList.h; sourceTree = "<group>"; };
BCE4389B140B1BA7005E437E /* JSDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDictionary.h; sourceTree = "<group>"; };
@@ -12569,6 +12575,8 @@
BCE789851120E7A60060ECE5 /* BidiRun.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BidiRun.h; sourceTree = "<group>"; };
BCE7898A1120E8020060ECE5 /* BidiRun.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BidiRun.cpp; sourceTree = "<group>"; };
BCE7B1920D4E86960075A539 /* JSHistoryCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHistoryCustom.cpp; sourceTree = "<group>"; };
+ BCE93F441517C567008CCF74 /* RenderRegionSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderRegionSet.h; sourceTree = "<group>"; };
+ BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderRegionSet.cpp; sourceTree = "<group>"; };
BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSComputedStyleDeclaration.cpp; sourceTree = "<group>"; };
BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSComputedStyleDeclaration.h; sourceTree = "<group>"; };
BCEA477E097CAAC80094C9E4 /* CSSGrammar.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; path = CSSGrammar.y; sourceTree = "<group>"; };
@@ -20681,6 +20689,8 @@
A454424D119B3687009BE912 /* RenderMeter.h */,
BC45827E151299C10061A556 /* RenderMultiColumnBlock.cpp */,
BCC52FD5151298D1003F914B /* RenderMultiColumnBlock.h */,
+ BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */,
+ BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */,
BCEA4840097D93020094C9E4 /* RenderObject.cpp */,
BCEA4841097D93020094C9E4 /* RenderObject.h */,
BC60EFB60F33A0E700812A93 /* RenderObjectChildList.cpp */,
@@ -20694,6 +20704,8 @@
5A574F23131DB93900471B88 /* RenderQuote.h */,
D70AD65513E1342B005B50B4 /* RenderRegion.cpp */,
D70AD65613E1342B005B50B4 /* RenderRegion.h */,
+ BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */,
+ BCE93F441517C567008CCF74 /* RenderRegionSet.h */,
A871DFDE0A15376B00B12A68 /* RenderReplaced.cpp */,
A871DFDF0A15376B00B12A68 /* RenderReplaced.h */,
BCA846D40DC67A350026C309 /* RenderReplica.cpp */,
@@ -22420,7 +22432,6 @@
85989DD10ACC8BBD00A0BC51 /* DOMWheelEventInternal.h in Headers */,
1403B99709EB13AF00797C7F /* DOMWindow.h in Headers */,
9712A5AE15004EDA0048AF10 /* DOMWindowIndexedDatabase.h in Headers */,
- A886CF771512301700D279F4 /* DOMWindowNotifications.h in Headers */,
97D2AD0414B823A60093DF32 /* DOMWindowProperty.h in Headers */,
97BC6A351505F081001B74AC /* DOMWindowSQLDatabase.h in Headers */,
F35AE5AC14925F5B004D5776 /* DOMWrapperVisitor.h in Headers */,
@@ -24594,6 +24605,8 @@
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
FD537353137B651800008DCE /* ZeroPole.h in Headers */,
+ BCE32B9C1517C0B200F542EC /* RenderMultiColumnSet.h in Headers */,
+ BCE93F451517C567008CCF74 /* RenderRegionSet.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -25567,7 +25580,6 @@
85C7F5E80AAFBAFB004014DD /* DOMWheelEvent.mm in Sources */,
1403B99809EB13AF00797C7F /* DOMWindow.cpp in Sources */,
9712A5AD15004EDA0048AF10 /* DOMWindowIndexedDatabase.cpp in Sources */,
- A886CF761512301700D279F4 /* DOMWindowNotifications.cpp in Sources */,
97D2AD0314B823A60093DF32 /* DOMWindowProperty.cpp in Sources */,
97BC6A341505F081001B74AC /* DOMWindowSQLDatabase.cpp in Sources */,
BC53DA481143134D000D817E /* DOMWrapperWorld.cpp in Sources */,
@@ -27578,6 +27590,8 @@
E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
977E2E0E12F0FC9C00C13379 /* XSSAuditor.cpp in Sources */,
FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
+ BCE32B9E1517C22700F542EC /* RenderMultiColumnSet.cpp in Sources */,
+ BCE93F471517C6D5008CCF74 /* RenderRegionSet.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Added: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (0 => 111240)
--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (rev 0)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp 2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RenderMultiColumnSet.h"
+
+namespace WebCore {
+
+RenderMultiColumnSet::RenderMultiColumnSet(Node* node, RenderFlowThread* flowThread)
+ : RenderRegionSet(node, flowThread)
+{
+}
+
+const char* RenderMultiColumnSet::renderName() const
+{
+ return "RenderMultiColumnSet";
+}
+
+}
Added: trunk/Source/WebCore/rendering/RenderMultiColumnSet.h (0 => 111240)
--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.h (rev 0)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.h 2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef RenderMultiColumnSet_h
+#define RenderMultiColumnSet_h
+
+#include "RenderRegionSet.h"
+
+namespace WebCore {
+
+// RenderMultiColumnSet represents a set of columns that all have the same width and height. By combining runs of same-size columns into a single
+// object, we significantly reduce the number of unique RenderObjects required to represent columns.
+//
+// A simple multi-column block will have exactly one RenderMultiColumnSet child. A simple paginated multi-column block will have three
+// RenderMultiColumnSet children: one for the content at the bottom of the first page (whose columns will have a shorter height), one
+// for the 2nd to n-1 pages, and then one last column set that will hold the shorter columns on the final page (that may have to be balanced
+// as well).
+//
+// Column spans result in the creation of new column sets as well, since a spanning region has to be placed in between the column sets that
+// come before and after the span.
+class RenderMultiColumnSet : public RenderRegionSet {
+public:
+ RenderMultiColumnSet(Node*, RenderFlowThread*);
+
+private:
+ virtual const char* renderName() const;
+};
+
+} // namespace WebCore
+
+#endif // RenderMultiColumnSet_h
+
Added: trunk/Source/WebCore/rendering/RenderRegionSet.cpp (0 => 111240)
--- trunk/Source/WebCore/rendering/RenderRegionSet.cpp (rev 0)
+++ trunk/Source/WebCore/rendering/RenderRegionSet.cpp 2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RenderRegionSet.h"
+
+namespace WebCore {
+
+RenderRegionSet::RenderRegionSet(Node* node, RenderFlowThread* flowThread)
+ : RenderRegion(node, flowThread)
+{
+}
+
+}
Added: trunk/Source/WebCore/rendering/RenderRegionSet.h (0 => 111240)
--- trunk/Source/WebCore/rendering/RenderRegionSet.h (rev 0)
+++ trunk/Source/WebCore/rendering/RenderRegionSet.h 2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef RenderRegionSet_h
+#define RenderRegionSet_h
+
+#include "RenderRegion.h"
+#include "RenderBoxRegionInfo.h"
+
+namespace WebCore {
+
+class RenderFlowThread;
+
+// RenderRegionSet represents a set of regions that all have the same width and height. It is a "composite region box" that
+// can be used to represent a single run of contiguous regions.
+//
+// By combining runs of same-size columns or pages into a single object, we significantly reduce the number of unique RenderObjects
+// required to represent those objects.
+//
+// This class is abstract and is only intended for use by renderers that generate anonymous runs of identical regions, i.e.,
+// columns and printing. RenderMultiColumnSet and RenderPageSet represent runs of columns and pages respectively.
+//
+// FIXME: For now we derive from RenderRegion, but this may change at some point.
+
+class RenderRegionSet : public RenderRegion {
+public:
+ RenderRegionSet(Node*, RenderFlowThread*);
+
+private:
+ virtual const char* renderName() const = 0;
+};
+
+} // namespace WebCore
+
+#endif // RenderRegionSet_h
+