Title: [116174] trunk
Revision
116174
Author
[email protected]
Date
2012-05-04 14:33:51 -0700 (Fri, 04 May 2012)

Log Message

ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
https://bugs.webkit.org/show_bug.cgi?id=84606

Reviewed by Julien Chaffraix.

Source/WebCore:

RenderBlock::removeChild forgot to set display on the anonymous block, causing it
to display as INLINE. To prevent this kind of failure in future, we replace
createAnonymousStyle with createAnonymousStyleWithDisplay to make everyone explictly
pass display as the argument.

Test: fast/block/block-add-child-crash.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
(WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
(WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
* rendering/RenderInline.cpp:
(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::addChildIgnoringContinuation):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::propagateStyleToAnonymousChildren):
* rendering/RenderRuby.cpp:
(WebCore::createAnonymousRubyInlineBlock):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::createRubyBase):
(WebCore::RenderRubyRun::staticCreateRubyRun):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::createAnonymousWithParentRenderer):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::createAlmostAnonymousBlock):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::addChild):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::createAnonymousStyleWithDisplay):
* rendering/style/RenderStyle.h:

LayoutTests:

* fast/block/block-add-child-crash-expected.txt: Added.
* fast/block/block-add-child-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (116173 => 116174)


--- trunk/LayoutTests/ChangeLog	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/LayoutTests/ChangeLog	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1,3 +1,13 @@
+2012-05-04  Abhishek Arya  <[email protected]>
+
+        ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
+        https://bugs.webkit.org/show_bug.cgi?id=84606
+
+        Reviewed by Julien Chaffraix.
+
+        * fast/block/block-add-child-crash-expected.txt: Added.
+        * fast/block/block-add-child-crash.html: Added.
+
 2012-05-04  Andy Estes  <[email protected]>
 
         [Mac] IETC flexbox reference tests have pixel differences (due to embedded color profiles?)

Added: trunk/LayoutTests/fast/block/block-add-child-crash-expected.txt (0 => 116174)


--- trunk/LayoutTests/fast/block/block-add-child-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/block/block-add-child-crash-expected.txt	2012-05-04 21:33:51 UTC (rev 116174)
@@ -0,0 +1,3 @@
+WebKit Bug 84606 - ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
+The test passes if it doesn't CRASH nor ASSERT.
+PASS 

Added: trunk/LayoutTests/fast/block/block-add-child-crash.html (0 => 116174)


--- trunk/LayoutTests/fast/block/block-add-child-crash.html	                        (rev 0)
+++ trunk/LayoutTests/fast/block/block-add-child-crash.html	2012-05-04 21:33:51 UTC (rev 116174)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<body>
+WebKit Bug 84606 - ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.<br />
+The test passes if it doesn't CRASH nor ASSERT.
+<style>
+.container { -webkit-column-count: 1; }
+.columnSpan { -webkit-column-span: all; }
+</style>
+<li class="container">
+<blockquote id="test">
+<table class="columnSpan"></table>
+</blockquote>
+<textarea></textarea>
+</li>
+<script>
+if (window.layoutTestController)
+    layoutTestController.dumpAsText();
+
+document.body.offsetTop;
+var test = document.getElementById("test");
+test.outerHTML = "PASS";
+</script>
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/block/block-add-child-crash.html
___________________________________________________________________

Added: svn:executable

Modified: trunk/Source/WebCore/ChangeLog (116173 => 116174)


--- trunk/Source/WebCore/ChangeLog	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/ChangeLog	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1,3 +1,50 @@
+2012-05-04  Abhishek Arya  <[email protected]>
+
+        ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
+        https://bugs.webkit.org/show_bug.cgi?id=84606
+
+        Reviewed by Julien Chaffraix.
+
+        RenderBlock::removeChild forgot to set display on the anonymous block, causing it
+        to display as INLINE. To prevent this kind of failure in future, we replace
+        createAnonymousStyle with createAnonymousStyleWithDisplay to make everyone explictly
+        pass display as the argument.
+
+        Test: fast/block/block-add-child-crash.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::removeChild): 
+        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
+        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
+        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
+        * rendering/RenderInline.cpp:
+        (WebCore::updateStyleOfAnonymousBlockContinuations):
+        (WebCore::RenderInline::addChildIgnoringContinuation):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::propagateStyleToAnonymousChildren):
+        * rendering/RenderRuby.cpp:
+        (WebCore::createAnonymousRubyInlineBlock):
+        * rendering/RenderRubyRun.cpp:
+        (WebCore::RenderRubyRun::createRubyBase):
+        (WebCore::RenderRubyRun::staticCreateRubyRun):
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::createAnonymousWithParentRenderer):
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
+        * rendering/RenderTableRow.cpp:
+        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
+        * rendering/mathml/RenderMathMLBlock.cpp:
+        (WebCore::RenderMathMLBlock::createAlmostAnonymousBlock):
+        * rendering/mathml/RenderMathMLRow.cpp:
+        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
+        * rendering/mathml/RenderMathMLSubSup.cpp:
+        (WebCore::RenderMathMLSubSup::addChild):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::createAnonymousStyleWithDisplay):
+        * rendering/style/RenderStyle.h:
+
 2012-04-27  Erik Arvidsson  <[email protected]>
 
         WebKit IDL does not use exception syntax

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1167,7 +1167,7 @@
             // to clear out inherited column properties by just making a new style, and to also clear the
             // column span flag if it is set.
             ASSERT(!inlineChildrenBlock->continuation());
-            RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
+            RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
             children()->removeChildNode(this, inlineChildrenBlock, inlineChildrenBlock->hasLayer());
             inlineChildrenBlock->setStyle(newStyle);
             
@@ -7237,28 +7237,27 @@
 
 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 ?
+    EDisplay newDisplay;
     RenderBlock* newBox = 0;
     if (display == BOX || display == INLINE_BOX) {
-        newStyle->setDisplay(BOX);
         newBox = new (parent->renderArena()) RenderDeprecatedFlexibleBox(parent->document() /* anonymous box */);
+        newDisplay = BOX;
     } else {
-        newStyle->setDisplay(BLOCK);
         newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
+        newDisplay = BLOCK;
     }
 
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), newDisplay);
     newBox->setStyle(newStyle.release());
     return newBox;
 }
 
 RenderBlock* RenderBlock::createAnonymousColumnsWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), BLOCK);
     newStyle->inheritColumnPropertiesFrom(parent->style());
-    newStyle->setDisplay(BLOCK);
 
     RenderBlock* newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
     newBox->setStyle(newStyle.release());
@@ -7267,9 +7266,8 @@
 
 RenderBlock* RenderBlock::createAnonymousColumnSpanWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), BLOCK);
     newStyle->setColumnSpan(ColumnSpanAll);
-    newStyle->setDisplay(BLOCK);
 
     RenderBlock* newBox = new (parent->renderArena()) RenderBlock(parent->document() /* anonymous box */);
     newBox->setStyle(newStyle.release());

Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderInline.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -146,9 +146,8 @@
         RenderInline* cont = toRenderBlock(block)->inlineElementContinuation();
         if (oldStyle->position() == RelativePosition && hasRelPositionedInlineAncestor(cont))
             continue;
-        RefPtr<RenderStyle> blockStyle = RenderStyle::createAnonymousStyle(block->style());
+        RefPtr<RenderStyle> blockStyle = RenderStyle::createAnonymousStyleWithDisplay(block->style(), BLOCK);
         blockStyle->setPosition(newStyle->position());
-        blockStyle->setDisplay(BLOCK);
         block->setStyle(blockStyle);
     }
 }
@@ -281,8 +280,7 @@
         // inline into continuations.  This involves creating an anonymous block box to hold
         // |newChild|.  We then make that block box a continuation of this inline.  We take all of
         // the children after |beforeChild| and put them in a clone of this object.
-        RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
-        newStyle->setDisplay(BLOCK);
+        RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
         
         // If inside an inline affected by relative positioning the block needs to be affected by it too.
         // Giving the block a layer like this allows it to collect the x/y offsets from inline parents later.

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1955,7 +1955,7 @@
             continue;
 #endif
 
-        RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
+        RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), child->style()->display());
         if (style()->specifiesColumns()) {
             if (child->style()->specifiesColumns())
                 newStyle->inheritColumnPropertiesFrom(style());
@@ -1968,7 +1968,6 @@
         if (child->isRelPositioned() && toRenderBlock(child)->isAnonymousBlockContinuation())
             newStyle->setPosition(child->style()->position());
 
-        newStyle->setDisplay(child->style()->display());
         child->setStyle(newStyle.release());
     }
 }

Modified: trunk/Source/WebCore/rendering/RenderRuby.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderRuby.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderRuby.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -84,9 +84,7 @@
 
 static RenderBlock* createAnonymousRubyInlineBlock(RenderObject* ruby)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(ruby->style());
-    newStyle->setDisplay(INLINE_BLOCK);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(ruby->style(), INLINE_BLOCK);
     RenderBlock* newBlock = new (ruby->renderArena()) RenderBlock(ruby->document() /* anonymous box */);
     newBlock->setStyle(newStyle.release());
     return newBlock;

Modified: trunk/Source/WebCore/rendering/RenderRubyRun.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderRubyRun.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderRubyRun.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -199,8 +199,7 @@
 RenderRubyBase* RenderRubyRun::createRubyBase() const
 {
     RenderRubyBase* rb = new (renderArena()) RenderRubyBase(document() /* anonymous */);
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
-    newStyle->setDisplay(BLOCK);
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
     newStyle->setTextAlign(CENTER); // FIXME: use WEBKIT_CENTER?
     rb->setStyle(newStyle.release());
     return rb;
@@ -210,8 +209,7 @@
 {
     ASSERT(parentRuby && parentRuby->isRuby());
     RenderRubyRun* rr = new (parentRuby->renderArena()) RenderRubyRun(parentRuby->document() /* anonymous */);
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parentRuby->style());
-    newStyle->setDisplay(INLINE_BLOCK);
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parentRuby->style(), INLINE_BLOCK);
     rr->setStyle(newStyle.release());
     return rr;
 }

Modified: trunk/Source/WebCore/rendering/RenderTable.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderTable.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderTable.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1282,9 +1282,7 @@
 
 RenderTable* RenderTable::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
-    newStyle->setDisplay(TABLE);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE);
     RenderTable* newTable = new (parent->renderArena()) RenderTable(parent->document() /* is anonymous */);
     newTable->setStyle(newStyle.release());
     return newTable;

Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderTableCell.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1113,9 +1113,7 @@
 
 RenderTableCell* RenderTableCell::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
-    newStyle->setDisplay(TABLE_CELL);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_CELL);
     RenderTableCell* newCell = new (parent->renderArena()) RenderTableCell(parent->document() /* is anonymous */);
     newCell->setStyle(newStyle.release());
     return newCell;

Modified: trunk/Source/WebCore/rendering/RenderTableRow.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderTableRow.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderTableRow.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -247,9 +247,7 @@
 
 RenderTableRow* RenderTableRow::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
-    newStyle->setDisplay(TABLE_ROW);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_ROW);
     RenderTableRow* newRow = new (parent->renderArena()) RenderTableRow(parent->document() /* is anonymous */);
     newRow->setStyle(newStyle.release());
     return newRow;

Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -1410,9 +1410,7 @@
 
 RenderTableSection* RenderTableSection::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
-    newStyle->setDisplay(TABLE_ROW_GROUP);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_ROW_GROUP);
     RenderTableSection* newSection = new (parent->renderArena()) RenderTableSection(parent->document() /* is anonymous */);
     newSection->setStyle(newStyle.release());
     return newSection;

Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -148,9 +148,7 @@
 
 RenderMathMLBlock* RenderMathMLBlock::createAlmostAnonymousBlock(EDisplay display)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
-    newStyle->setDisplay(display);
-    
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), display);
     RenderMathMLBlock* newBlock = new (renderArena()) RenderMathMLBlock(node() /* "almost" anonymous block */);
     newBlock->setStyle(newStyle.release());
     return newBlock;

Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -44,9 +44,7 @@
 // FIXME: Change all these createAnonymous... routines to return a PassOwnPtr<>.
 RenderMathMLRow* RenderMathMLRow::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parent->style());
-    newStyle->setDisplay(INLINE_BLOCK);
-
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), INLINE_BLOCK);
     RenderMathMLRow* newMRow = new (parent->renderArena()) RenderMathMLRow(parent->document() /* is anonymous */);
     newMRow->setStyle(newStyle.release());
     return newMRow;

Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -76,8 +76,7 @@
             
         // Make sure we have a script block for rendering.
         if (m_kind == SubSup && !m_scripts) {
-            RefPtr<RenderStyle> scriptsStyle = RenderStyle::createAnonymousStyle(style());
-            scriptsStyle->setDisplay(INLINE_BLOCK);
+            RefPtr<RenderStyle> scriptsStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), INLINE_BLOCK);
             scriptsStyle->setVerticalAlign(TOP);
             scriptsStyle->setMarginLeft(Length(gSubsupScriptMargin, Fixed));
             scriptsStyle->setTextAlign(LEFT);

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (116173 => 116174)


--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2012-05-04 21:33:51 UTC (rev 116174)
@@ -87,11 +87,12 @@
     return adoptRef(new RenderStyle(true));
 }
 
-PassRefPtr<RenderStyle> RenderStyle::createAnonymousStyle(const RenderStyle* parentStyle)
+PassRefPtr<RenderStyle> RenderStyle::createAnonymousStyleWithDisplay(const RenderStyle* parentStyle, EDisplay display)
 {
     RefPtr<RenderStyle> newStyle = RenderStyle::create();
     newStyle->inheritFrom(parentStyle);
     newStyle->inheritUnicodeBidiFrom(parentStyle);
+    newStyle->setDisplay(display);
     return newStyle;
 }
 

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (116173 => 116174)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2012-05-04 21:30:52 UTC (rev 116173)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2012-05-04 21:33:51 UTC (rev 116174)
@@ -390,7 +390,7 @@
 public:
     static PassRefPtr<RenderStyle> create();
     static PassRefPtr<RenderStyle> createDefaultStyle();
-    static PassRefPtr<RenderStyle> createAnonymousStyle(const RenderStyle* parentStyle);
+    static PassRefPtr<RenderStyle> createAnonymousStyleWithDisplay(const RenderStyle* parentStyle, EDisplay);
     static PassRefPtr<RenderStyle> clone(const RenderStyle*);
 
     void inheritFrom(const RenderStyle* inheritParent);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to