NGLayout Dec-23 nightly build (Win32) renders the test page incorrectly: The whole canvas including margins should be light blue, not just the BODY element background. The relevant section of the spec is: http://www.w3.org/TR/REC-CSS1#the-canvas
Peter, after reading sections of the spec that David Baron pointed out I think the correct thing to do is to have the background rendered on the HTML element if the HTML element's background is transparent. http://www.w3.org/TR/REC-CSS1#the-canvas http://www.w3.org/TR/REC-CSS2/colors.html#q2 That approach seems better than trying to force the BODY frame to take up all the available space. Getting the background style info to correctly reflect how rendering should work, i.e., have the HTML element paint the background if possible, would be best if it were handled through style, rather than having the frames try and figure it out at rendering time. In particular, because the frames used for the HTML element and the BODY element are just regular old frames and have no knowledge that they need to render specially. That seems like the cleanest way to do it, but I don't really know what the proper way for that to happen. If you don't want to do that (or you don't agree that's the best way to handle it), I at least need you to suggest how to go about doing that
Now we do what the spec suggests and if the HTML element's background is 'transparent' then we use the BODY's background property
*** Bug 2073 has been marked as a duplicate of this bug. ***
Verified fixed using 1.28.99 builds on Mac OS, Win32 & Linux. Thanks, Antti!