Last Comment Bug 300030 - (reflow-refactor) Refactor intrinsic width computation out of nsIFrame::Reflow
(reflow-refactor)
: Refactor intrinsic width computation out of nsIFrame::Reflow
Status: RESOLVED FIXED
[patch]
:
Product: Core
Classification: Components
Component: Layout (show other bugs)
: Trunk
: All All
: P1 major with 12 votes (vote)
: mozilla1.9alpha1
Assigned To: David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch)
:
Mentors:
http://wiki.mozilla.org/Gecko:Reflow_...
Depends on: 349760 357527 362880 363044 363391 363423 363443 364434 364933 365131 366791 367042 368553 371829 372498 373960 386662 387866 391148 394154 410233 412572 413028 415166 430608 431403 434317 439323 445134 453967 454555 456328 466835 467932 471763 477004 487860 497344 979834 1165595 1196274 134706 271049 333352 349255 349297 355648 357044 357457 357544 359769 360636 360786 362210 363072 363144 363146 363154 363176 363183 363240 363248 363253 363268 363276 363285 363295 363316 363329 363333 363367 363374 363382 363388 363389 363402 363437 363466 363496 363524 363528 363573 363637 363674 363675 363696 363707 363722 363729 363732 363759 363805 363807 363858 363874 363882 363933 364014 364066 364079 364124 364220 364314 364427 364510 364680 364732 364762 364989 365040 365173 365208 365294 365413 365478 365832 365837 365847 366205 366233 366320 366616 366865 367031 367184 367360 367442 368123 368137 368155 368199 368293 368504 368554 368568 368600 368603 368621 368752 368898 369576 369850 370525 370558 370703 370720 370872 371483 372048 373295 373327 373383 373467 373533 373566 373611 374038 374293 374912 375827 376944 376981 377711 377805 379407 380516 380861 381783 382325 382364 382366 383195 383351 383373 383632 384322 384473 384876 385579 385704 385823 386401 387876 389378 389533 390875 392051 393096 393490 393528 393655 395333 396288 396968 400171 400207 400675 402642 403656 403669 404123 413361 413840 414251 416634 418574 418766 419060 420069 422089 422249 422589 423385 423870 425972 428019 428278 431520 433724 434230 434626 442043 443119 443633 444015 444928 445142 451149 457706 458924 459522 469001 479889 850015 1160635
Blocks: 257552 acid2 304686 313520 359555 369582 inline-block 30802 50630 61902 66315 69745 97777 103582 105030 124903 129346 130767 139550 142631 148621 152368 157681 164457 167408 185388 189367 191699 195770 201215 201293 206212 206516 210669 210876 218473 218862 219499 220982 222402 223809 223999 231226 235593 242108 242981 243037 243266 243302 244686 244932 245748 249390 249982 249995 251856 253701 254750 260049 260980 261176 262151 265614 265796 266897 267179 267353 267396 268300 268499 269156 269643 270175 270704 271364 271747 271924 271927 272613 273410 273681 274556 274794 274931 275179 275345 277108 277431 278920 280831 281001 282377 283575 285832 290743 291126 292124 292527 293486 293676 294120 295476 295717 296056 296070 297869 298011 298883 299250 299591 299694 301072 302805 302970 303594 304445 305301 305405 307102 307387 307763 309056 309287 310089 311415 312099 313195 313219 313750 316057 317561 318540 319739 320196 320344 321738 322443 322512 322759 323192 323499 323739 323886 324318 324955 325486 325940 328040 328257 329407 331052 331204 331325 332551 332554 332978 334792 334970 336450 336767 337268 337401 337469 337787 338222 338702 338856 340799 343510 346774 346847 348299 348482 348499 348516 348991 348999 349004 350506 353140 353566 358729 360422 360598 362882 363786 365175 367458 375998 408374 836899
  Show dependency treegraph
 
Reported: 2005-07-07 17:22 PDT by David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch)
Modified: 2016-03-18 01:38 PDT (History)
52 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
patch as landed (447.52 KB, application/x-gzip)
2006-12-07 21:39 PST, David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch)
no flags Details
some detailed pageload test data (8.12 KB, text/plain; charset=us-ascii)
2006-12-21 10:02 PST, David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch)
no flags Details

Description David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2005-07-07 17:23:00 PDT
This bug describes a design change that I've been talking about for a
while (see various posts to mozilla-layout).  Many bugs likely to be
fixed by this change have "[reflow-refactor]" in the Status Whiteboard.
I've been working on the changes on various REFLOW_{YYYYMMDD}_BRANCH
branches.

The basic idea to make two closely related changes at the same time:
 1. Change intrinsic width computation so that it happens in separate
    methods on nsIFrame.  (Currently preferred with calculation using
    the nsIFrame API can happen in two different ways as well:  having
    only one codepath reduces incremental layout ("{inc}") bugs.)
 2. Change the way we handle incremental layout to use dirty bits on the
    frames rather than the reflow tree (which is essentially out-of-line
    dirty bits) and a complicated system of reflow reasons that often
    leads to weird incremental layout ("{inc}") bugs.

I hope to add more details of the new design here in the near future.
Much of it is still open to change; at this point the branch is close to
compiling and probably a ways from working, so the cost of changing
things is still relatively low.
Comment 1 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2005-07-07 20:39:48 PDT
What have you decided to do about the intrinsic width of scrollframes?
Currently, we do a full reflow of the scrolled content to see if we need a
horizontal scrollbar, which helps determine the intrinsic width.
Comment 2 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2005-10-05 01:49:58 PDT
http://groups.google.com/group/netscape.public.mozilla.layout/msg/c80282ffff8047c3
has comment 0 in a tad more detail; I should really write more sometime.
Comment 3 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-08-10 19:44:23 PDT
http://wiki.mozilla.org/Gecko:Reflow_Refactoring has been around for a while; it's been in the URL field but I should mention it in a comment.
Comment 4 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-12-07 21:25:04 PST
For the record, I've discussed landing plans with bzbarsky and roc, and they're comfortable with this landing without complete review.  I know bzbarsky has been looking at it a good bit (including having written almost all of the form control changes).
Comment 5 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-12-07 21:39:21 PST
Created attachment 247927 [details]
patch as landed
Comment 6 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-12-07 21:43:45 PST
Fixed.
Comment 7 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-12-07 23:44:54 PST
diffstat says:
 201 files changed, 8726 insertions(+), 18253 deletions(-)

tinderbox numbers from Firefox tinderbox:

Linux argo-vm Dep Nightly:
  Z:14.08MB, Zdiff:-53276 (+57545/-110821)
balsa-trunk:
  RLk and Lk unchanged
  MH down from 13.1MB to 13.0MB
  A down from 486K to 485K
Linux bl-bldlnx01 Dep argo-vm test perf:
  Tp: 3 test mean fell from 704.3333 to 682.6667, 3%, p-value = 0.01854
  Tp2: 3 test mean fell from 530.8917 to 507.2333, 4.5%, p-value = 0.01977
  Tdhtml: 3 test mean fell from 1300.667 to 1290.667, 0.75%, p-value = 0.00748
Comment 8 David Baron :dbaron: ⌚️UTC+2 (mostly busy through August 4; review requests must explain patch) 2006-12-21 10:02:02 PST
Created attachment 249359 [details]
some detailed pageload test data

This was some detailed pageload test data that I did on Windows a few days before the branch landed.  (I should probably try to get the equivalent out of the tinderbox logs.)  It showed that the pageload improvements varied significantly between pages.

Note You need to log in before you can comment on or make changes to this bug.