Goto http://www. farnell.nl/ Click on one of the buttons (NIEUWE PRODUCTEN, PUBLICATIES,ED WORLD,SUPPORT,ZOEK) at the top of the page. The corresponding page is loaded, but nothing is visible. However the content will appear when you click once in the window content region.
I reduced it to the noresize attribute of the frame element. When it's present, even the simplest testcase of <html> <frameset> <frame src="frame1.html" noresize> </frameset> </html> with frame1.html linking to frame2.html and vice versa results in frame content not appearing after the second switch (dragging in the empty frame behaves like a resize, after which the content is visible again). Without the noresize attribute, content does not disappear. When content is invisible, it's because the RenderFrame is at -500000. It is marked as needing layout but nothing triggers layout for it.
Created attachment 4736 [details] Proposed patch Don't skip layout even if all children are fixed.
Comment on attachment 4736 [details] Proposed patch I was fooled by the formatting changes into thinking this was a bigger change than it is. The substance of this change is simple, and clearly a good idea. But can't we just move the end2: label up one line to get the same effect? I don't see a lot of value in indenting all the code.
Created attachment 4778 [details] Equivalent patch without all the indenting (In reply to comment #3) > But can't we just move the end2: label up one line to get the same effect? I > don't see a lot of value in indenting all the code. Just moving end2: up one line will cause RenderContainer::layout() to be called even when there are no children at all. I don't know how significant this is. This patch is equivalent to the previous patch.
Comment on attachment 4778 [details] Equivalent patch without all the indenting I'm leaving the r+ on the other patch, but if you prefer this version, please remove it.
Comment on attachment 4778 [details] Equivalent patch without all the indenting Excellent. Seems much clearer this way.
It would be good to have a ready-to-land test case for this.
Created attachment 4882 [details] unsuccesful attempt at automatic testing This test works (automatically) in Safari, but I couldn't get it to work in DumpRenderTree. Perhaps relayout needs to be forced at some points, which I don't know how to do. Posting it here in hope that it will inspire someone else.
I tried really hard to make that test work under DumpRenderTree, but I wasn't able to figure it out. There's something about how layout is done for repainting that seems to be required. I spent quite a while debugging both DumpRenderTree and Safari to see what's different between the two but it was ultimately fruitless.
*** Bug 5591 has been marked as a duplicate of this bug. ***
*** Bug 4110 has been marked as a duplicate of this bug. ***
For completeness, this bug was fixed in changeset 11648 <http://trac.webkit.org/changeset/11648>.