Title: [117758] releases/WebKitGTK/webkit-1.8
Revision
117758
Author
[email protected]
Date
2012-05-21 03:48:21 -0700 (Mon, 21 May 2012)

Log Message

Merge 113252 - Add helpers to create anonymous table parts.
https://bugs.webkit.org/show_bug.cgi?id=83116

Reviewed by Julien Chaffraix.

Source/WebCore:

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):

LayoutTests:

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:


Conflicts:

	Source/WebCore/rendering/RenderTableSection.h

Modified Paths

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);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to