12012-07-10 Julien Chaffraix <jchaffraix@webkit.org>
2
3 REGRESSION (r116203): overflow sections don't have scrollbars
4 https://bugs.webkit.org/show_bug.cgi?id=90052
5
6 Reviewed by NOBODY (OOPS!).
7
8 This issue stems from RenderLayers with overlay scrollbars not being considered
9 self-painting.
10
11 After r120395 (follow-up of r116203), we ignore subtree that have no self-painting layers for
12 painting. Normal scrollbars are painted by their renderer so they were properly painted. However
13 overlay scrollbars needs to be painted by the RenderLayer as a separate phase (see bug 57057) so
14 they were not painted anymore. The fix is simple: make RenderLayer with overlay scrollbars
15 self-painting as they should have been in the first place.
16
17 Unfortunately no tests as I don't think we have a good way of testing overlay
18 scrollbars. Tested manually though on the super simple test case from the bug.
19
20 * rendering/RenderLayer.cpp:
21 (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
22 Overlay scrollbars make the layer self-painting.
23
24 (WebCore::RenderLayer::updateScrollbarsAfterLayout):
25 Added a call to updateSelfPaintingLayer.
26
27 (WebCore::RenderLayer::styleChanged):
28 Moved the call to updateSelfPaintingLayer after recomputing the scrollbars to ensure proper behavior.
29 Added a comment underlining the reason.
30
31 (WebCore::RenderLayer::updateSelfPaintingLayer):
32 Renamed as it is now called during layout too.
33
34 * rendering/RenderLayer.h:
35 (RenderLayer): Updated after updateSelfPaintingLayer rename.
36