Closed
Bug 201076
Opened 21 years ago
Closed 21 years ago
NS_FRAME_HAS_LOADED_IMAGE bit set inconsistently on table cell frames
Categories
(Core :: Layout: Tables, defect, P2)
Tracking
()
RESOLVED
FIXED
mozilla1.7alpha
People
(Reporter: john, Assigned: dbaron)
Details
(Whiteboard: [patch])
Attachments
(1 file)
3.60 KB,
patch
|
bzbarsky
:
review+
bzbarsky
:
superreview+
|
Details | Diff | Splinter Review |
The layout regression tests give several false positives because frames with background images do not always have the has_loaded_image bit set by the time frame bits are compared. This may not be a problem in our code; but if not, the regression tests need to not compare this bit. NS_FRAME_HAS_LOADED_IMAGE: layout/html/tests/table/viewer_tests/test4.html TableCell(th) layout/html/tests/table/bugs/bug10633.html TableCell(td) layout/html/tests/table/bugs/bug12008.html TableCell(td) layout/html/tests/table/bugs/bug1271.html TableCell(td) layout/html/tests/table/bugs/bug1296.html TableCell(td) layout/html/tests/table/bugs/bug1430.html TableCell(td) layout/html/tests/table/bugs/bug45055-2.html TableCell(td)
The bit is set only at one place http://lxr.mozilla.org/seamonkey/source/layout/base/src/nsPresContext.cpp#1450 The LoadImage routine is called from inside the PaintBackgroundWithSC http://lxr.mozilla.org/seamonkey/source/layout/html/style/src/nsCSSRendering.cpp#2965 My guess would be that we start to write the frame dump before the painting has finished. Does increasing the mDelay at http://lxr.mozilla.org/seamonkey/source/webshell/tests/viewer/nsWebCrawler.cpp#461 change the picture?
Reporter | ||
Comment 2•21 years ago
|
||
CC'ing bz ... the basic problem is that onload may fire before background images are loaded. There are 3 alternatives here that I see: (1) do not compare the NS_FRAME_HAS_LOADED_IMAGE bit (2) wait a little while for the image to load (bernd's suggestion in the last comment) (3) do not fire onload until background images have loaded. bz may have insight, especially on this last one.
Comment 3•21 years ago
|
||
The last one is kinda hard... for one thing, it involves moving background image loading out of frames and into content/style. ;) That's sorta the plan, but even then I'm not sure we'll want to delay onload for background images..... Except perhaps we could in debug builds or have a pref or env var for doing it in debug builds (so the regression tests could use it). Though I'm somewhat leery of testing different things between regression tests and releases....
Reporter | ||
Comment 4•21 years ago
|
||
nah, if we don't want to do it for one we shouldn't do it for anything else. I think I prefer the solution of not comparing these bits at all, even though it may miss a regression or two. Increasing time between tests does not seem desirable to me.
Assignee | ||
Comment 5•21 years ago
|
||
At some point we should start loading images from the stylesheets that reference them. That would fix this. It's also a rather large change.
Updated•21 years ago
|
Priority: -- → P2
Target Milestone: --- → Future
Assignee | ||
Comment 6•21 years ago
|
||
Assignee | ||
Updated•21 years ago
|
Attachment #138914 -
Flags: superreview?(bz-vacation)
Attachment #138914 -
Flags: review?(bz-vacation)
Assignee | ||
Updated•21 years ago
|
Assignee: core.layout.tables → dbaron
Whiteboard: [patch]
Target Milestone: Future → mozilla1.7alpha
Comment 7•21 years ago
|
||
Comment on attachment 138914 [details] [diff] [review] remove NS_FRAME_HAS_LOADED_IMAGES bit, since it's write-only r+sr=bzbarsky, but it may be a good idea to renumber the last three bits to not leave a hole.
Attachment #138914 -
Flags: superreview?(bz-vacation)
Attachment #138914 -
Flags: superreview+
Attachment #138914 -
Flags: review?(bz-vacation)
Attachment #138914 -
Flags: review+
Assignee | ||
Comment 8•21 years ago
|
||
Fix checked in, 2004-01-12 17:18 -0800. I didn't change the rest of the bits -- there are lots of them.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•