Bug 65376 - Split RenderBlock::layoutRunsAndFloats into multiple methods
Summary: Split RenderBlock::layoutRunsAndFloats into multiple methods
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-29 07:19 PDT by Alexandru Chiculita
Modified: 2011-08-02 11:07 PDT (History)
4 users (show)

See Also:


Attachments
Patch (31.91 KB, patch)
2011-07-29 07:26 PDT, Alexandru Chiculita
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff
Patch (31.00 KB, patch)
2011-07-29 11:44 PDT, Alexandru Chiculita
no flags Details | Formatted Diff | Diff
Rebased patch (30.97 KB, patch)
2011-08-02 07:48 PDT, Alexandru Chiculita
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandru Chiculita 2011-07-29 07:19:34 PDT
RenderBlock::layoutRunsAndFloats has a couple of different parts:
1. Determines the first dirty line
2. Detaches the lines starting from the first dirty line
3. Finds the last dirty line
4. Computes the lines starting with the first dirty lines. Also tries to match the last line, or at least somewhere near that.
5. If the last line was matched it links it with the new generated lines.
6. Fix floats after the last line.
7. Repaint some floats that needed repaint during layout

Steps 1, 2, 3 are extracted into separate methods, but 4 and 5 are quite long and still part of RenderBlock::layoutRunsAndFloats.
This patch should extract 4, 5-6 and 7 into 3 separate methods.

It should also help fix bug https://bugs.webkit.org/show_bug.cgi?id=61303, which triggers a position change for a float changes in steps 5 and 6. That happens when doing multi-column incremental layout and the floats have to move from one column to another. It should be much easier to repeat steps from 3 to 6 if it is required to do so.
Comment 1 Alexandru Chiculita 2011-07-29 07:26:58 PDT
Created attachment 102360 [details]
Patch
Comment 2 WebKit Review Bot 2011-07-29 08:37:00 PDT
Comment on attachment 102360 [details]
Patch

Attachment 102360 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9262556

New failing tests:
fast/repaint/line-flow-with-floats-6.html
Comment 3 Alexandru Chiculita 2011-07-29 11:44:03 PDT
Created attachment 102378 [details]
Patch
Comment 4 Alexandru Chiculita 2011-08-02 07:48:58 PDT
Created attachment 102651 [details]
Rebased patch
Comment 5 Dave Hyatt 2011-08-02 10:05:20 PDT
Comment on attachment 102651 [details]
Rebased patch

r=me
Comment 6 WebKit Review Bot 2011-08-02 11:07:45 PDT
Comment on attachment 102651 [details]
Rebased patch

Clearing flags on attachment: 102651

Committed r92207: <http://trac.webkit.org/changeset/92207>
Comment 7 WebKit Review Bot 2011-08-02 11:07:49 PDT
All reviewed patches have been landed.  Closing bug.