Bug 46421

Summary: Make CSS3 Multicol layout work with vertical text.
Product: WebKit Reporter: Dave Hyatt <hyatt>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, eric, jberlin, ossy, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 46123    
Attachments:
Description Flags
Patch
mitz: review+
Fix float writing-mode flipping and patch min preferred logical width computation to not use marginLeft/Right
mitz: review+
failing tests on Qt none

Description Dave Hyatt 2010-09-23 15:28:25 PDT
Make CSS3 Multicol layout work with vertical text.
Comment 1 Adele Peterson 2010-10-29 15:14:26 PDT
<rdar://problem/8612056>
Comment 2 Dave Hyatt 2011-01-26 12:01:07 PST
Created attachment 80215 [details]
Patch
Comment 3 WebKit Review Bot 2011-01-26 12:05:07 PST
Attachment 80215 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast..." exit_code: 1

Source/WebCore/rendering/RenderBlock.h:460:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WebCore/rendering/RenderBlock.h:468:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WebCore/rendering/RenderBlock.h:692:  The parameter name "marginInfo" adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 97 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 mitz 2011-01-26 12:53:23 PST
Comment on attachment 80215 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=80215&action=review

> Source/WebCore/rendering/InlineTextBox.h:84
> +    virtual IntRect calculateBoundaries() const { return IntRect(x(), y(), width(), height()); }

:)

> Source/WebCore/rendering/RenderBlock.cpp:1327
> +                int overflowRight = style()->isLeftToRightDirection() ? max(width(), lastRect.x() + lastRect.width()) : 0;

Can say lastRect.right() instead of x() + width().

> Source/WebCore/rendering/RenderBlock.cpp:1331
> +                IntRect lastRect = columnRectAt(colInfo, columnCount(colInfo) - 1);

You’ve already defined and initialized this outside.

> Source/WebCore/rendering/RenderBlock.cpp:1333
> +                int overflowBottom = style()->isLeftToRightDirection() ? max(height(), lastRect.y() + lastRect.height()) : 0;

Can say lastRect.bottom() instead of y() + height().

> Source/WebCore/rendering/RenderBlock.cpp:2278
> +    IntRect firstColRect = columnRectAt(colInfo, 0);

I don’t think this is used.

> Source/WebCore/rendering/RenderInline.cpp:752
> +    

ZOMG whitespace
Comment 5 Dave Hyatt 2011-01-26 14:56:24 PST
Created attachment 80242 [details]
Fix float writing-mode flipping and patch min preferred logical width computation to not use marginLeft/Right
Comment 6 WebKit Review Bot 2011-01-26 14:58:28 PST
Attachment 80242 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1

Source/WebCore/rendering/RenderBlock.h:462:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WebCore/rendering/RenderBlock.h:470:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WebCore/rendering/RenderBlock.h:694:  The parameter name "marginInfo" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBlock.cpp:4983:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 4 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Dave Hyatt 2011-01-26 15:11:13 PST
Fixed in r76726.
Comment 8 WebKit Review Bot 2011-01-26 15:53:35 PST
http://trac.webkit.org/changeset/76726 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/vertical-scrollbar-in-rtl-doesnt-fire-onscroll.html
fast/lists/002-vertical.html
fast/lists/003-vertical.html
fast/overflow/overflow-rtl-vertical.html
fast/table/028-vertical.html
fast/table/border-collapsing/003-vertical.html
fast/table/height-percent-test-vertical.html
Comment 9 Csaba Osztrogonác 2011-01-27 02:55:33 PST
(In reply to comment #8)
> http://trac.webkit.org/changeset/76726 might have broken Qt Linux Release
> The following tests are not passing:
> fast/dom/vertical-scrollbar-in-rtl-doesnt-fire-onscroll.html
> fast/lists/002-vertical.html
> fast/lists/003-vertical.html
> fast/overflow/overflow-rtl-vertical.html
> fast/table/028-vertical.html
> fast/table/border-collapsing/003-vertical.html
> fast/table/height-percent-test-vertical.html

Expected results fixed in http://trac.webkit.org/changeset/76766.
Expected results for new tests landed in http://trac.webkit.org/changeset/76779 .
Comment 10 Csaba Osztrogonác 2011-01-27 02:56:57 PST
Created attachment 80311 [details]
failing tests on Qt

Two tests seem very strange on Qt. Could you check it, please?
Comment 11 Jessie Berlin 2011-01-28 09:11:01 PST
At least two of the new tests have different actual results on the Windows 7 Release Test bots:

https://bugs.webkit.org/show_bug.cgi?id=53307