Diff
Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog 2012-05-21 10:48:21 UTC (rev 117758)
@@ -1,3 +1,15 @@
+2012-04-04 Abhishek Arya <[email protected]>
+
+ Add helpers to create anonymous table parts.
+ https://bugs.webkit.org/show_bug.cgi?id=83116
+
+ Reviewed by Julien Chaffraix.
+
+ Rebaselining tests because we now correctly inherit the bidi override.
+
+ * platform/chromium-mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
+ * platform/chromium-win/fast/css/bidi-override-in-anonymous-block-expected.txt:
+
2012-02-22 Abhishek Arya <[email protected]>
Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-mac-snowleopard/fast/css/bidi-override-in-anonymous-block-expected.txt (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-mac-snowleopard/fast/css/bidi-override-in-anonymous-block-expected.txt 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-mac-snowleopard/fast/css/bidi-override-in-anonymous-block-expected.txt 2012-05-21 10:48:21 UTC (rev 117758)
@@ -225,7 +225,7 @@
RenderTableRow {DIV} at (0,0) size 24x18
RenderTableCell (anonymous) at (0,0) size 24x18 [r=0 c=0 rs=1 cs=1]
RenderText {#text} at (2,0) size 22x18
- text run at (2,0) width 22: "abc"
+ text run at (2,0) width 22 RTL override: "abc"
RenderTableRow (anonymous) at (0,18) size 24x18
RenderTableCell {DIV} at (0,18) size 24x18 [r=1 c=0 rs=1 cs=1]
RenderText {#text} at (4,0) size 20x18
@@ -237,4 +237,4 @@
RenderTableRow (anonymous) at (0,0) size 24x18
RenderTableCell (anonymous) at (0,0) size 24x18 [r=0 c=0 rs=1 cs=1]
RenderText {#text} at (0,0) size 24x18
- text run at (0,0) width 24: "opq"
+ text run at (0,0) width 24 RTL override: "opq"
Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-win/fast/css/bidi-override-in-anonymous-block-expected.txt (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-win/fast/css/bidi-override-in-anonymous-block-expected.txt 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/platform/chromium-win/fast/css/bidi-override-in-anonymous-block-expected.txt 2012-05-21 10:48:21 UTC (rev 117758)
@@ -225,7 +225,7 @@
RenderTableRow {DIV} at (0,0) size 24x20
RenderTableCell (anonymous) at (0,0) size 24x20 [r=0 c=0 rs=1 cs=1]
RenderText {#text} at (2,0) size 22x19
- text run at (2,0) width 22: "abc"
+ text run at (2,0) width 22 RTL override: "abc"
RenderTableRow (anonymous) at (0,20) size 24x20
RenderTableCell {DIV} at (0,20) size 24x20 [r=1 c=0 rs=1 cs=1]
RenderText {#text} at (5,0) size 19x19
@@ -237,4 +237,4 @@
RenderTableRow (anonymous) at (0,0) size 24x20
RenderTableCell (anonymous) at (0,0) size 24x20 [r=0 c=0 rs=1 cs=1]
RenderText {#text} at (0,0) size 24x19
- text run at (0,0) width 24: "opq"
+ text run at (0,0) width 24 RTL override: "opq"
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog 2012-05-21 10:48:21 UTC (rev 117758)
@@ -1,3 +1,56 @@
+2012-04-04 Abhishek Arya <[email protected]>
+
+ Add helpers to create anonymous table parts.
+ https://bugs.webkit.org/show_bug.cgi?id=83116
+
+ Reviewed by Julien Chaffraix.
+
+ The patch introduces helpers to create anonymous table parts by
+ introducing a new static function createAnonymousWithParentRenderer.
+ The function builds a new anonymous wrapper of the same type as the class,
+ inheriting style properties from parent and sets a display based on
+ argument/default values. Also we streamline the RenderBlock functions
+ to match this naming convention.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::createAnonymousBlockWithSameTypeAs):
+ (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
+ (WebCore):
+ (WebCore::RenderBlock::createAnonymousColumnsWithParentRendererAndDisplay):
+ (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRendererAndDisplay):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ (WebCore::RenderBlock::createAnonymousBlock):
+ (WebCore::RenderBlock::createAnonymousColumnsBlock):
+ (WebCore::RenderBlock::createAnonymousColumnSpanBlock):
+ * rendering/RenderButton.cpp:
+ (WebCore::RenderButton::addChild):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::addChild):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::addChild):
+ (WebCore::RenderTable::createAnonymousWithParentRendererAndDisplay):
+ (WebCore):
+ * rendering/RenderTable.h:
+ (RenderTable):
+ * rendering/RenderTableCell.cpp:
+ (WebCore::RenderTableCell::createAnonymousWithParentRendererAndDisplay):
+ (WebCore):
+ * rendering/RenderTableCell.h:
+ (RenderTableCell):
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::addChild):
+ (WebCore::RenderTableRow::createAnonymousWithParentRendererAndDisplay):
+ (WebCore):
+ * rendering/RenderTableRow.h:
+ (RenderTableRow):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::addChild):
+ (WebCore::RenderTableSection::createAnonymousWithParentRendererAndDisplay):
+ (WebCore):
+ * rendering/RenderTableSection.h:
+ (RenderTableSection):
+
2012-02-22 Abhishek Arya <[email protected]>
Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -670,7 +670,7 @@
// Create an anonymous table container next to our table container.
RenderBlock* parentBlock = toRenderBlock(table->parent());
- RenderTable* postTable = parentBlock->createAnonymousTable();
+ RenderTable* postTable = RenderTable::createAnonymousWithParentRenderer(parentBlock);
parentBlock->children()->insertChildNode(parentBlock, postTable, table->nextSibling());
// Move all the children from beforeChild to the newly created anonymous table container.
@@ -6466,54 +6466,15 @@
inlineElementContinuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + inlineElementContinuation()->containingBlock()->location() - location()));
}
-RenderBlock* RenderBlock::createAnonymousBlock(bool isFlexibleBox) const
-{
- RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
-
- RenderBlock* newBox = 0;
- if (isFlexibleBox) {
- newStyle->setDisplay(BOX);
- newBox = new (renderArena()) RenderDeprecatedFlexibleBox(document() /* anonymous box */);
- } else {
- newStyle->setDisplay(BLOCK);
- newBox = new (renderArena()) RenderBlock(document() /* anonymous box */);
- }
-
- newBox->setStyle(newStyle.release());
- return newBox;
-}
-
RenderBlock* RenderBlock::createAnonymousBlockWithSameTypeAs(RenderBlock* otherAnonymousBlock) const
{
if (otherAnonymousBlock->isAnonymousColumnsBlock())
return createAnonymousColumnsBlock();
if (otherAnonymousBlock->isAnonymousColumnSpanBlock())
return createAnonymousColumnSpanBlock();
- return createAnonymousBlock(otherAnonymousBlock->style()->display() == BOX);
+ return createAnonymousBlock(otherAnonymousBlock->style()->display());
}
-RenderBlock* RenderBlock::createAnonymousColumnsBlock() const
-{
- RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
- newStyle->inheritColumnPropertiesFrom(style());
- newStyle->setDisplay(BLOCK);
-
- RenderBlock* newBox = new (renderArena()) RenderBlock(document() /* anonymous box */);
- newBox->setStyle(newStyle.release());
- return newBox;
-}
-
-RenderBlock* RenderBlock::createAnonymousColumnSpanBlock() const
-{
- RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
- newStyle->setColumnSpan(ColumnSpanAll);
- newStyle->setDisplay(BLOCK);
-
- RenderBlock* newBox = new (renderArena()) RenderBlock(document() /* anonymous box */);
- newBox->setStyle(newStyle.release());
- return newBox;
-}
-
bool RenderBlock::hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule pageBoundaryRule) const
{
ASSERT(view()->layoutState() && view()->layoutState()->isPaginated());
@@ -7240,6 +7201,47 @@
return constructTextRun(context, font, string.characters(), string.length(), style, expansion, flags);
}
+RenderBlock* RenderBlock::createAnonymousWithParentRendererAndDisplay(const RenderObject* parent, EDisplay display)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+
+ // FIXME: Do we need to cover the new flex box here ?
+ // FIXME: Do we need to convert all our inline displays to block-type in the anonymous logic ?
+ RenderBlock* newBox = 0;
+ if (display == BOX || display == INLINE_BOX) {
+ newStyle->setDisplay(BOX);
+ newBox = new (parent->renderArena()) RenderDeprecatedFlexibleBox(parent->document() /* anonymous box */);
+ } else {
+ newStyle->setDisplay(BLOCK);
+ newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
+ }
+
+ newBox->setStyle(newStyle.release());
+ return newBox;
+}
+
+RenderBlock* RenderBlock::createAnonymousColumnsWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->inheritColumnPropertiesFrom(parent->style());
+ newStyle->setDisplay(BLOCK);
+
+ RenderBlock* newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
+ newBox->setStyle(newStyle.release());
+ return newBox;
+}
+
+RenderBlock* RenderBlock::createAnonymousColumnSpanWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->setColumnSpan(ColumnSpanAll);
+ newStyle->setDisplay(BLOCK);
+
+ RenderBlock* newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
+ newBox->setStyle(newStyle.release());
+ return newBox;
+}
+
#ifndef NDEBUG
void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* markedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const RenderObject* obj) const
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderBlock.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -220,11 +220,13 @@
using RenderBoxModelObject::continuation;
using RenderBoxModelObject::setContinuation;
- // This function is a convenience helper for creating an anonymous block that inherits its
- // style from this RenderBlock.
- RenderBlock* createAnonymousBlock(bool isFlexibleBox = false) const;
- RenderBlock* createAnonymousColumnsBlock() const;
- RenderBlock* createAnonymousColumnSpanBlock() const;
+ static RenderBlock* createAnonymousWithParentRendererAndDisplay(const RenderObject*, EDisplay = BLOCK);
+ static RenderBlock* createAnonymousColumnsWithParentRenderer(const RenderObject*);
+ static RenderBlock* createAnonymousColumnSpanWithParentRenderer(const RenderObject*);
+ RenderBlock* createAnonymousBlock(EDisplay display = BLOCK) const { return createAnonymousWithParentRendererAndDisplay(this, display); }
+ RenderBlock* createAnonymousColumnsBlock() const { return createAnonymousColumnsWithParentRenderer(this); }
+ RenderBlock* createAnonymousColumnSpanBlock() const { return createAnonymousColumnSpanWithParentRenderer(this); }
+
RenderBlock* createAnonymousBlockWithSameTypeAs(RenderBlock* otherAnonymousBlock) const;
static void appendRunsForObject(BidiRunList<BidiRun>&, int start, int end, RenderObject*, InlineBidiResolver&);
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderButton.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderButton.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderButton.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -49,8 +49,7 @@
if (!m_inner) {
// Create an anonymous block.
ASSERT(!firstChild());
- bool isFlexibleBox = style()->display() == BOX || style()->display() == INLINE_BOX;
- m_inner = createAnonymousBlock(isFlexibleBox);
+ m_inner = createAnonymousBlock(style()->display());
setupInnerStyle(m_inner->style());
RenderDeprecatedFlexibleBox::addChild(m_inner);
}
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -266,16 +266,6 @@
return false;
}
-RenderTable* RenderObject::createAnonymousTable() const
-{
- RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
- newStyle->setDisplay(TABLE);
-
- RenderTable* table = new (renderArena()) RenderTable(document() /* is anonymous */);
- table->setStyle(newStyle.release());
- return table;
-}
-
void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild)
{
RenderObjectChildList* children = virtualChildren();
@@ -320,7 +310,7 @@
if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent())
table = toRenderTable(afterChild);
else {
- table = createAnonymousTable();
+ table = RenderTable::createAnonymousWithParentRenderer(this);
addChild(table, beforeChild);
}
table->addChild(newChild);
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderObject.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -220,8 +220,6 @@
// normal flow object.
void handleDynamicFloatPositionChange();
- RenderTable* createAnonymousTable() const;
-
// RenderObject tree manipulation
//////////////////////////////////////////
virtual bool canHaveChildren() const { return virtualChildren(); }
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -192,11 +192,8 @@
if (beforeChild && !beforeChild->isTableSection() && beforeChild->style()->display() != TABLE_CAPTION && beforeChild->style()->display() != TABLE_COLUMN_GROUP)
beforeChild = 0;
- RenderTableSection* section = new (renderArena()) RenderTableSection(document() /* anonymous */);
- RefPtr<RenderStyle> newStyle = RenderStyle::create();
- newStyle->inheritFrom(style());
- newStyle->setDisplay(TABLE_ROW_GROUP);
- section->setStyle(newStyle.release());
+
+ RenderTableSection* section = RenderTableSection::createAnonymousWithParentRenderer(this);
addChild(section, beforeChild);
section->addChild(child);
}
@@ -1261,4 +1258,14 @@
return false;
}
+RenderTable* RenderTable::createAnonymousWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->setDisplay(TABLE);
+
+ RenderTable* newTable = new (parent->renderArena()) RenderTable(parent->document() /* is anonymous */);
+ newTable->setStyle(newStyle.release());
+ return newTable;
}
+
+}
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTable.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -211,6 +211,8 @@
recalcSections();
}
+ static RenderTable* createAnonymousWithParentRenderer(const RenderObject*);
+
protected:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -1097,4 +1097,14 @@
setIntrinsicPaddingAfter(intrinsicPaddingAfter() - scrollbarHeight);
}
+RenderTableCell* RenderTableCell::createAnonymousWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->setDisplay(TABLE_CELL);
+
+ RenderTableCell* newCell = new (parent->renderArena()) RenderTableCell(parent->document() /* is anonymous */);
+ newCell->setStyle(newStyle.release());
+ return newCell;
+}
+
} // namespace WebCore
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableCell.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -136,6 +136,8 @@
bool cellWidthChanged() const { return m_cellWidthChanged; }
void setCellWidthChanged(bool b = true) { m_cellWidthChanged = b; }
+ static RenderTableCell* createAnonymousWithParentRenderer(const RenderObject*);
+
protected:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -113,11 +113,7 @@
return;
}
- RenderTableCell* cell = new (renderArena()) RenderTableCell(document() /* anonymous object */);
- RefPtr<RenderStyle> newStyle = RenderStyle::create();
- newStyle->inheritFrom(style());
- newStyle->setDisplay(TABLE_CELL);
- cell->setStyle(newStyle.release());
+ RenderTableCell* cell = RenderTableCell::createAnonymousWithParentRenderer(this);
addChild(cell, beforeChild);
cell->addChild(child);
return;
@@ -249,4 +245,14 @@
repaint();
}
+RenderTableRow* RenderTableRow::createAnonymousWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->setDisplay(TABLE_ROW);
+
+ RenderTableRow* newRow = new (parent->renderArena()) RenderTableRow(parent->document() /* is anonymous */);
+ newRow->setStyle(newStyle.release());
+ return newRow;
+}
+
} // namespace WebCore
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableRow.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -42,6 +42,8 @@
void updateBeforeAndAfterContent();
void paintOutlineForRowIfNeeded(PaintInfo&, const LayoutPoint&);
+ static RenderTableRow* createAnonymousWithParentRenderer(const RenderObject*);
+
private:
virtual RenderObjectChildList* virtualChildren() { return children(); }
virtual const RenderObjectChildList* virtualChildren() const { return children(); }
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.cpp (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.cpp 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.cpp 2012-05-21 10:48:21 UTC (rev 117758)
@@ -161,11 +161,7 @@
return;
}
- RenderObject* row = new (renderArena()) RenderTableRow(document() /* anonymous table row */);
- RefPtr<RenderStyle> newStyle = RenderStyle::create();
- newStyle->inheritFrom(style());
- newStyle->setDisplay(TABLE_ROW);
- row->setStyle(newStyle.release());
+ RenderObject* row = RenderTableRow::createAnonymousWithParentRenderer(this);
addChild(row, beforeChild);
row->addChild(child);
return;
@@ -1375,4 +1371,14 @@
return it->second;
}
+RenderTableSection* RenderTableSection::createAnonymousWithParentRenderer(const RenderObject* parent)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+ newStyle->setDisplay(TABLE_ROW_GROUP);
+
+ RenderTableSection* newSection = new (parent->renderArena()) RenderTableSection(parent->document() /* is anonymous */);
+ newSection->setStyle(newStyle.release());
+ return newSection;
+}
+
} // namespace WebCore
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.h (117757 => 117758)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.h 2012-05-21 10:47:51 UTC (rev 117757)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderTableSection.h 2012-05-21 10:48:21 UTC (rev 117758)
@@ -141,6 +141,8 @@
void setCachedCollapsedBorder(const RenderTableCell*, CollapsedBorderSide, CollapsedBorderValue);
CollapsedBorderValue& cachedCollapsedBorder(const RenderTableCell*, CollapsedBorderSide);
+ static RenderTableSection* createAnonymousWithParentRenderer(const RenderObject*);
+
protected:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);