Commit d740af6b authored by bdakin@apple.com's avatar bdakin@apple.com
Browse files

WebCore:

2009-03-20  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION 
        (r35318): A press release at pfizer.com does not display correctly
        - and corresponding -
        <rdar://problem/6680073>

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::invalidateContainerPrefWidths):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::markContainingBlocksForLayout):

LayoutTests:

2009-03-20  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION 
        (r35318): A press release at pfizer.com does not display correctly
        - and corresponding -
        <rdar://problem/6680073>

        * http/tests/misc/generated-content-inside-table.html: Added.
        * platform/mac/http/tests/misc/generated-content-inside-table-expected.checksum: Added.
        * platform/mac/http/tests/misc/generated-content-inside-table-expected.png: Added.
        * platform/mac/http/tests/misc/generated-content-inside-table-expected.txt: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 27bbbab9
2009-03-20 Beth Dakin <bdakin@apple.com>
Reviewed by Dave Hyatt.
Test for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION
(r35318): A press release at pfizer.com does not display correctly
- and corresponding -
<rdar://problem/6680073>
* http/tests/misc/generated-content-inside-table.html: Added.
* platform/mac/http/tests/misc/generated-content-inside-table-expected.checksum: Added.
* platform/mac/http/tests/misc/generated-content-inside-table-expected.png: Added.
* platform/mac/http/tests/misc/generated-content-inside-table-expected.txt: Added.
2009-03-19 Alexey Proskuryakov <ap@webkit.org>
 
Reviewed by Darin Adler.
......
<html>
<head>
<style>
#bad:after {
content: ".";
}
</style>
</head>
<body>
<table>
<tr>
<td>
<script type="text/javascript" src="resources/script-slow1.pl" />
<div id="bad">
This text should not break
</div>
</td>
</tr>
</table>
</body>
</html>
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderTable {TABLE} at (0,0) size 178x24
RenderTableSection {TBODY} at (0,0) size 178x24
RenderTableRow {TR} at (0,2) size 178x20
RenderTableCell {TD} at (2,2) size 174x20 [r=0 c=0 rs=1 cs=1]
RenderBlock {DIV} at (1,1) size 172x18
RenderText {#text} at (0,0) size 168x18
text run at (0,0) width 168: "This text should not break "
RenderInline (generated) at (0,0) size 4x18
RenderText at (168,0) size 4x18
text run at (168,0) width 4: "."
2009-03-20 Beth Dakin <bdakin@apple.com>
Reviewed by Dave Hyatt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION
(r35318): A press release at pfizer.com does not display correctly
- and corresponding -
<rdar://problem/6680073>
* rendering/RenderObject.cpp:
(WebCore::RenderObject::invalidateContainerPrefWidths):
* rendering/RenderObject.h:
(WebCore::RenderObject::markContainingBlocksForLayout):
2009-03-20 Eric Seidel <eric@webkit.org>
 
Reviewed by Justin Garcia.
......@@ -563,12 +563,18 @@ void RenderObject::invalidateContainerPrefWidths()
// in the chain that we mark dirty (even though they're kind of irrelevant).
RenderObject* o = isTableCell() ? containingBlock() : container();
while (o && !o->m_prefWidthsDirty) {
// Don't invalidate the outermost object of an unrooted subtree. That object will be
// invalidated when the subtree is added to the document.
RenderObject* container = o->isTableCell() ? o->containingBlock() : o->container();
if (!container && !o->isRenderView())
break;
o->m_prefWidthsDirty = true;
if (o->style()->position() == FixedPosition || o->style()->position() == AbsolutePosition)
// A positioned object has no effect on the min/max width of its containing block ever.
// We can optimize this case and not go up any further.
break;
o = o->isTableCell() ? o->containingBlock() : o->container();
o = container;
}
}
......
......@@ -878,6 +878,11 @@ inline void RenderObject::markContainingBlocksForLayout(bool scheduleRelayout, R
RenderObject* last = this;
while (o) {
// Don't mark the outermost object of an unrooted subtree. That object will be
// marked when the subtree is added to the document.
RenderObject* container = o->container();
if (!container && !o->isRenderView())
return;
if (!last->isText() && (last->style()->position() == FixedPosition || last->style()->position() == AbsolutePosition)) {
if ((last->style()->top().isAuto() && last->style()->bottom().isAuto()) || last->style()->top().isStatic()) {
RenderObject* parent = last->parent();
......@@ -904,7 +909,7 @@ inline void RenderObject::markContainingBlocksForLayout(bool scheduleRelayout, R
last = o;
if (scheduleRelayout && objectIsRelayoutBoundary(last))
break;
o = o->container();
o = container;
}
if (scheduleRelayout)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment