RESOLVED FIXED 169516
Simple line layout: Paginated content is not painted properly when font overflows line height.
https://bugs.webkit.org/show_bug.cgi?id=169516
Summary Simple line layout: Paginated content is not painted properly when font overf...
zalan
Reported 2017-03-11 20:05:53 PST
font size -> big number. line height -> small number -> lines overflow each other.
Attachments
Patch (8.30 KB, patch)
2017-03-11 20:40 PST, zalan
no flags
Archive of layout-test-results from ews126 for ios-simulator-wk2 (1.26 MB, application/zip)
2017-03-11 22:00 PST, Build Bot
no flags
Patch (9.11 KB, patch)
2017-03-12 10:50 PDT, zalan
no flags
Patch (8.92 KB, patch)
2017-03-12 19:35 PDT, zalan
no flags
zalan
Comment 1 2017-03-11 20:40:08 PST
Build Bot
Comment 2 2017-03-11 22:00:22 PST
Comment on attachment 304183 [details] Patch Attachment 304183 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/3296283 New failing tests: fast/multicol/simple-line-layout-line-index-after-strut.html
Build Bot
Comment 3 2017-03-11 22:00:25 PST
Created attachment 304185 [details] Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
zalan
Comment 4 2017-03-12 10:50:57 PDT
Antti Koivisto
Comment 5 2017-03-12 13:40:44 PDT
Comment on attachment 304197 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=304197&action=review > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:145 > + for (int lineIndex = strut.lineBreak; lineIndex < (int)m_layout.lineCount(); ++lineIndex) { Why int? Can strut.lineBreak and so lineIndex be negative? If it can should that case be handled separately as the rest of the function doesn't seem safe with negative values. static_cast<int> would be more WebKit style than c-style cast (if we really need it). > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:147 > + if (strutIndex < struts.size() && struts.at(strutIndex).lineBreak == (unsigned)lineIndex) Same here. > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:152 > + lastIndexCandidate = lineIndex; If lineIndex was negative wouldn't coercing it to unsigned cause problems?
zalan
Comment 6 2017-03-12 19:31:34 PDT
(In reply to comment #5) > Comment on attachment 304197 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=304197&action=review > > > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:145 > > + for (int lineIndex = strut.lineBreak; lineIndex < (int)m_layout.lineCount(); ++lineIndex) { > > Why int? Can strut.lineBreak and so lineIndex be negative? If it can should > that case be handled separately as the rest of the function doesn't seem > safe with negative values. > > static_cast<int> would be more WebKit style than c-style cast (if we really > need it). > > > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:147 > > + if (strutIndex < struts.size() && struts.at(strutIndex).lineBreak == (unsigned)lineIndex) > > Same here. > > > Source/WebCore/rendering/SimpleLineLayoutResolver.cpp:152 > > + lastIndexCandidate = lineIndex; > > If lineIndex was negative wouldn't coercing it to unsigned cause problems? Yea, you are right. I am not sure why I have it like that. Must be some leftover.
zalan
Comment 7 2017-03-12 19:35:11 PDT
WebKit Commit Bot
Comment 8 2017-03-12 20:16:47 PDT
Comment on attachment 304215 [details] Patch Clearing flags on attachment: 304215 Committed r213779: <http://trac.webkit.org/changeset/213779>
WebKit Commit Bot
Comment 9 2017-03-12 20:16:51 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.