A visual inspection of layout test fast/overflow/overflow-float-stacking.html showed that of the two floating divs, the second one is behind the first one after the change in r122342, where as it is in front of the first one prior to that. The text in the second div, says that it should be above the first div. Surprisingly the test is still passing when run through run-webkit-tests. Hence, filing this bug to track the issue.
<rdar://problem/12078874>
Julian, are you looking into this regression? Should we consider rolling out r122342?
(In reply to comment #2) > Julian, are you looking into this regression? I looked at the regression and I think this is an unintended consequence of making overlay scrollbars' layers self-painting. Due to how we handle self-painting layers, we don't necessarily paint their renderer in tree order anymore: you can actually experience the painting reversal by setting "opacity" or "position" on the green div on any passing build. The reversal matches FF and Opera for "opacity" or "position" but not so much for "overflow". > Should we consider rolling out r122342? Rolling it out would break back overlay scrollbars but the new behavior is bad.
(In reply to comment #3) > (In reply to comment #2) > > Julian, are you looking into this regression? > > I looked at the regression and I think this is an unintended consequence of making overlay scrollbars' layers self-painting. D ue to how we handle self-painting layers, we don't necessarily paint their renderer in tree order anymore: you can actually experience the painting reversal by setting "opacity" or "position" on the green div on any passing build. The reversal matches FF and Opera for "opacity" or "position" but not so much for "overflow". > > > Should we consider rolling out r122342? > > Rolling it out would break back overlay scrollbars but the new behavior is bad. Julien, any progress?
> Julien, any progress? None, this bug fell off my queue. The painting inversion is a bug in self-painting layers that we already experience in some context, I will have to think harder about how to fix this bug without regressing overlay scrollbars.
Created attachment 186187 [details] Proposed fix: broaded the has-self-painting-layer-descendant flag to cover also overlay scrollbars.
Comment on attachment 186187 [details] Proposed fix: broaded the has-self-painting-layer-descendant flag to cover also overlay scrollbars. Attachment 186187 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/16330488
Created attachment 190547 [details] Updated patch.
Comment on attachment 190547 [details] Updated patch. Simon mentioned on IRC that this patch should be split between the should-be-painted refactoring and the actual fix to ease the review. As part of that, it would be nice to define or outline better which layers are non-self-painting.