Title: [91277] trunk
Revision
91277
Author
[email protected]
Date
2011-07-19 11:40:25 -0700 (Tue, 19 Jul 2011)

Log Message

REGRESSION: Incorrect layout at recline-online.com
https://bugs.webkit.org/show_bug.cgi?id=64030

Reviewed by David Hyatt.

Source/WebCore:

http://trac.webkit.org/changeset/68362 dropped the check for cases
where the render box is floating or inline. When the box is left or right
aligned it is considered to be floating and needs to its margins set appropriately.

Test: fast/table/align-right-within-left-aligned-div.html
      created by Dominic Cooney <[email protected]>

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeInlineDirectionMargins):

LayoutTests:

* fast/table/align-right-within-left-aligned-div-expected.png: Added.
* fast/table/align-right-within-left-aligned-div-expected.txt: Added.
* fast/table/align-right-within-left-aligned-div.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91276 => 91277)


--- trunk/LayoutTests/ChangeLog	2011-07-19 18:36:01 UTC (rev 91276)
+++ trunk/LayoutTests/ChangeLog	2011-07-19 18:40:25 UTC (rev 91277)
@@ -1,3 +1,14 @@
+2011-07-19  Robert Hogan  <[email protected]>
+
+        REGRESSION: Incorrect layout at recline-online.com
+        https://bugs.webkit.org/show_bug.cgi?id=64030
+
+        Reviewed by David Hyatt.
+
+        * fast/table/align-right-within-left-aligned-div-expected.png: Added.
+        * fast/table/align-right-within-left-aligned-div-expected.txt: Added.
+        * fast/table/align-right-within-left-aligned-div.html: Added.
+
 2011-07-19  Abhishek Arya  <[email protected]>
 
         Tests that we do not crash when removing unrendering nodes

Added: trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.png (0 => 91277)


--- trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.png	2011-07-19 18:40:25 UTC (rev 91277)
@@ -0,0 +1,10 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum9f93575088303b1b8cd0b20f7270c1f1\xAA\xF1\xD0\xF0IDATx\x9C\xED\xDCM\x88V\xE5\xC0\xF137\xFBr
+QH.j\x919DX\x8B"\x90 \xC2]\x9B\xA4\x8DZ\xE0Z(Bn\xADF\xA4\x88 \xB2\x8C\xA0(k\xC0\jAA҂@\xAB\x81"\xA4[\x88\xC4@\xCE{s\x9B+\x8Eu%\xFE\xD7ƹ\xBF\xDF\xEAp>\x9E\xE7\x99Y\xFE\xBC\xEFy\xCF\xD8h4\xE8\xFC\xE3\xEF^\xC0b#\xB0b &\xB0b &\xB0b \xB6\xE4\x8F\x8C=7v9\xD7p\xC5\xFD\xF3\xE2\xEF\xFD\xC3\xC0\x86\xE1\xD9\xE1\xD9\xFF\xC9Zj\xEEW\xC0\x822\xF6'or\xEE\xB9\xE7\xFEy۳\x97q1\xC5\xF8Ě\xE3Ǐ\xFFݫ\xF8\xCF`\xC4@L`\xC4\xB0\x8C\xFD\xEE\xC5_\x9C\xF4\xE3\x8F?\x9E;\xE1\xF2\xAF
+\xF8?$\xB0\x80\xC5\xE0\xB7\xDF~;t\xE8\xD00\xAF\xBF\xFE\xFA\xFC\xDF\xEE\xBC\xF1\xC6\xC30;vlff\xE6\xF2\xAF
+\xF8?$\xB0\x80\xC5\xE0ꫯ^\xB7n\xDD0w\xDDu\xD7G}t\xFE\xA1ӧO\x9F9sf\x86\xBB\xEF\xBE{\xA1}\x82\xF5\xD7ֳ\xD0\xFE
+`>\x81,*۷o߽{\xF7\xF9{\xDE~\xFB\xEDG}\xF4\xEFZϟ\xF8\xE2\x8B/.\xDBU\xC0e&\xB0\x80Ee|||4}\xF7\xDDws{\xF6\xEF\xDF\xFF\xF0\xC3_pھ}\xFBV\xACXq\xE3\x8D7\xBE\xF6\xDAk\xB3{>\xF8\xE0\x83\xDBo\xBF}\xF7\xEE\xDD7\xDF|\xF3=\xF7\xDC3ï\xBF\xFE\xBAy\xF3\xE6\xA5K\x97\xDEy\xE7\x9D_\xFD\xF5\xFC\xB9fff\xB6m۶lٲ+V\xECٳ\xE7\xBF\xFE\xCD7\xDF\xDC{\xEF\xBD7\xDCpë\xAF\xBE:Æ
+\x86a{\xE4\x91G.:ݥ\,LXl\xB6m\xDB6\xDB"\xC309rd||\xFC\xDAk\xAF=\xFF\x84\xA3G\x8F\xEEٳ\xE7ĉ\xEF\xBD\xF7\xDE\xD3O?=\xFB\xF0\xD6c\x8F=655u\xCB-\xB7\xFC\xF4\xD3Oǎ\x86aǎ>\xF8\xE0\xE9ӧw\xEEܹu\xEB\xD6\xF9MLL,_\xBE\xFC\xC7\x9C\x98\x98عs\xE7\x9F\xBEe˖\xA9\xA9\xA9\x838p`rrrǎ\xC30|\xF9\xE5\x97\xC30\x8CF\xA3\xF7\xDF\xFF\xA2\xD3]\xCAU\xC0\xC2\xE4M\xEE\xC0o\xEEM\xEEcc\xFF\xBE\xA7mذa\xEF޽\xD7\s\xCD\xE3\x8F?\xBEu\xEBֵk\xD7\xCE\x86\xE1\xFE\xFB\xEF\xE7\x9DwV\xADZ5Ûo\xBE\xF9\xC2/?~\xFC\xECٳ\xD7]w\xDD\xF9\xB7ĕ+W\x9E<yrv{\xE9ҥ\xD3\xD3\xD3̻jժ\xCF?\xFF|ٲe\xE7\xEF\xFC\xAF\x83\x9F;wnɒ%\xB3\xDB\xE7\xAFj\xFEt\x97r\xB00\xF9X\x84\xB6lٲo߾3g\xCELMM\xAD]\xBB\xF6\x82\xA3ǎ\xBB馛f\xB77l\xD80\xFB}\xDC\x9Fr
+\xC3\xF0\xF3\xCF?\x8F~7\xBF\xAE\x86a8y\xF2\xE4uu)\x83_u\xD5U]\xF3\xFC\xE9.\xE5*`aX\xC0"\xB4~\xFD\xFA#G\x8E\xFC\xD1\xE3\xEDw\xDCqLJ~8\xBB===}\xDF}\xF7]t\x90իW\xCFm\xEFݻw\xFE	˗/?w\xEE\xDC_\xFC/L\A\xB0\x8CF\xA3\xCF>\xFBl\x86O?\xFDt\xF6eW\xEB֭۵k\xD7ƍ\xE7=zt\xF6\xD0\xCB/\xBF\xFC\xD4SO}\xF2\xC9'\xA7N\x9Dz\xF2\xC9'\x9F\xFE\xF9af\xBF\x9E;{\xF6\xECܘ\xEBׯ뭷\xA6\xA7\xA7'''\xDF}\xF7\xDD\xF9\x93>\xF4\xD0C\x87\x9A\x99\x99\xF9ꫯn\xBD\xF5\xD6ٝ\xFC\xDBo\xBF\x86\xE1\xFB\xEF\xBF\x86\xE1\x87~\x98\x9Bnɒ%\x87\xBF\xE8t\x97r\xB00y\xB8\xE2\x8DO\xAC9q\xE2\xC4\xF9{F\xA3\xD1\xCC\xCC\xCC\xF6\xED\xDBw\xED\xDAu\xC1[\xA3foz\xAF\xBC\xF2\xCA3\xCF<s\xFD\xF5׿\xF4\xD2Ks\xBF\xCB\x86a\xE5ʕs\xBF@\xFC\xE5\x97_6o\xDE|\xF0\xE0\xC15k\xD6LNN\xDEv\xDBm\xCC{\xEAԩ\x8D7>|x\xF5\xEA\xD5O<\xF1ĦM\x9Bf\xF7\xFF\xD1ೳ\x9F\xBF\xBDiӦ\xEC߿\xFF\x81\x98?ݥ\\x95\xFC\x81\x9C\xC0\xAExs\xB9,\xBE"\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80ؒ??<>\xB1\xE6\xF2\xAC`\xD1\x8DF\xF7_\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@\xEC_\xC3\^\xF85&\xB6IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.txt (0 => 91277)


--- trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/table/align-right-within-left-aligned-div-expected.txt	2011-07-19 18:40:25 UTC (rev 91277)
@@ -0,0 +1,10 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x509
+  RenderBlock {HTML} at (0,0) size 800x509
+    RenderBody {BODY} at (8,8) size 784x22
+      RenderBlock {DIV} at (0,0) size 784x2 [border: (1px solid #008000)]
+        RenderTable {TABLE} at (1,1) size 400x500 [bgcolor=#FFA500] [border: (1px outset #808080)]
+      RenderBlock (anonymous) at (0,2) size 784x20
+        RenderText {#text} at (401,0) size 82x19
+          text run at (401,0) width 82: "More content"

Added: trunk/LayoutTests/fast/table/align-right-within-left-aligned-div.html (0 => 91277)


--- trunk/LayoutTests/fast/table/align-right-within-left-aligned-div.html	                        (rev 0)
+++ trunk/LayoutTests/fast/table/align-right-within-left-aligned-div.html	2011-07-19 18:40:25 UTC (rev 91277)
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<!-- saved from url="" -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>
+  <div align="right" style="border: 1px solid green;">
+    <table align="left" width="400" height="500" border="1" bgcolor="orange">
+    </table>
+  </div>
+  More content
+</body></html>
\ No newline at end of file

Modified: trunk/Source/WebCore/ChangeLog (91276 => 91277)


--- trunk/Source/WebCore/ChangeLog	2011-07-19 18:36:01 UTC (rev 91276)
+++ trunk/Source/WebCore/ChangeLog	2011-07-19 18:40:25 UTC (rev 91277)
@@ -1,3 +1,20 @@
+2011-07-19  Robert Hogan  <[email protected]>
+
+        REGRESSION: Incorrect layout at recline-online.com
+        https://bugs.webkit.org/show_bug.cgi?id=64030
+
+        Reviewed by David Hyatt.
+
+        http://trac.webkit.org/changeset/68362 dropped the check for cases
+        where the render box is floating or inline. When the box is left or right
+        aligned it is considered to be floating and needs to its margins set appropriately.
+
+        Test: fast/table/align-right-within-left-aligned-div.html
+              created by Dominic Cooney <[email protected]>
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::computeInlineDirectionMargins):
+
 2011-07-19  Abhishek Arya  <[email protected]>
 
         Crash when removing unrenderered nodes in replacement fragment.

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (91276 => 91277)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2011-07-19 18:36:01 UTC (rev 91276)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2011-07-19 18:40:25 UTC (rev 91277)
@@ -1605,7 +1605,7 @@
     }
 
     // Margin calculations.
-    if (logicalWidthLength.isAuto() || hasPerpendicularContainingBlock || isFloating() || isInline()) {
+    if (logicalWidthLength.isAuto() || hasPerpendicularContainingBlock) {
         setMarginStart(style()->marginStart().calcMinValue(containerLogicalWidth));
         setMarginEnd(style()->marginEnd().calcMinValue(containerLogicalWidth));
     } else
@@ -1691,7 +1691,14 @@
     const RenderStyle* containingBlockStyle = containingBlock->style();
     Length marginStartLength = style()->marginStartUsing(containingBlockStyle);
     Length marginEndLength = style()->marginEndUsing(containingBlockStyle);
-    
+
+    if (isFloating() || isInline()) {
+        // Inline blocks/tables and floats don't have their margins increased.
+        containingBlock->setMarginStartForChild(this, marginStartLength.calcMinValue(containerWidth));
+        containingBlock->setMarginEndForChild(this, marginEndLength.calcMinValue(containerWidth));
+        return;
+    }
+
     // Case One: The object is being centered in the containing block's available logical width.
     if ((marginStartLength.isAuto() && marginEndLength.isAuto() && childWidth < containerWidth)
         || (!marginStartLength.isAuto() && !marginEndLength.isAuto() && containingBlock->style()->textAlign() == WEBKIT_CENTER)) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to