Title: [225535] trunk/Source
Revision
225535
Author
pvol...@apple.com
Date
2017-12-05 13:36:01 -0800 (Tue, 05 Dec 2017)

Log Message

[Win] Scrollbars are sometimes not rendered in accelerated compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=180431
<rdar://problem/34531264>

Reviewed by Simon Fraser.

Source/WebCore:

No new tests, covered by existing tests.

When a scroll layer is required, we will create an overflow control hosts layer.
In this case the method RenderLayerCompositor::shouldCompositeOverflowControls()
should return true, otherwise the scrollbars will not be rendered.
 
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls const):

Source/WebKitLegacy/win:

Fix the signatures of GraphicsLayerClient that should have been overridden, and use
'override' to make sure this doesn't break in the future.

* WebView.cpp:
(WebView::notifyAnimationStarted):
(WebView::paintContents):
* WebView.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (225534 => 225535)


--- trunk/Source/WebCore/ChangeLog	2017-12-05 21:30:34 UTC (rev 225534)
+++ trunk/Source/WebCore/ChangeLog	2017-12-05 21:36:01 UTC (rev 225535)
@@ -1,3 +1,20 @@
+2017-12-05  Per Arne Vollan  <pvol...@apple.com>
+
+        [Win] Scrollbars are sometimes not rendered in accelerated compositing mode.
+        https://bugs.webkit.org/show_bug.cgi?id=180431
+        <rdar://problem/34531264>
+
+        Reviewed by Simon Fraser.
+
+        No new tests, covered by existing tests.
+
+        When a scroll layer is required, we will create an overflow control hosts layer.
+        In this case the method RenderLayerCompositor::shouldCompositeOverflowControls()
+        should return true, otherwise the scrollbars will not be rendered.
+ 
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::shouldCompositeOverflowControls const):
+
 2017-12-05  Youenn Fablet  <you...@apple.com>
 
         Call "Terminate Service Worker" on all workers when all their clients are gone

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (225534 => 225535)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2017-12-05 21:30:34 UTC (rev 225534)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2017-12-05 21:36:01 UTC (rev 225535)
@@ -2880,6 +2880,9 @@
     if (documentUsesTiledBacking())
         return true;
 
+    if (m_overflowControlsHostLayer && isMainFrameCompositor())
+        return true;
+
 #if !USE(COORDINATED_GRAPHICS_THREADED)
     if (!frameView.hasOverlayScrollbars())
         return false;

Modified: trunk/Source/WebKitLegacy/win/ChangeLog (225534 => 225535)


--- trunk/Source/WebKitLegacy/win/ChangeLog	2017-12-05 21:30:34 UTC (rev 225534)
+++ trunk/Source/WebKitLegacy/win/ChangeLog	2017-12-05 21:36:01 UTC (rev 225535)
@@ -1,3 +1,19 @@
+2017-12-05  Per Arne Vollan  <pvol...@apple.com>
+
+        [Win] Scrollbars are sometimes not rendered in accelerated compositing mode.
+        https://bugs.webkit.org/show_bug.cgi?id=180431
+        <rdar://problem/34531264>
+
+        Reviewed by Simon Fraser.
+
+        Fix the signatures of GraphicsLayerClient that should have been overridden, and use
+        'override' to make sure this doesn't break in the future.
+
+        * WebView.cpp:
+        (WebView::notifyAnimationStarted):
+        (WebView::paintContents):
+        * WebView.h:
+
 2017-11-23  Darin Adler  <da...@apple.com>
 
         Fix dictionary leak in lookup, convert FindOptions to OptionSet, tweak code style nearby

Modified: trunk/Source/WebKitLegacy/win/WebView.cpp (225534 => 225535)


--- trunk/Source/WebKitLegacy/win/WebView.cpp	2017-12-05 21:30:34 UTC (rev 225534)
+++ trunk/Source/WebKitLegacy/win/WebView.cpp	2017-12-05 21:36:01 UTC (rev 225535)
@@ -7301,7 +7301,7 @@
     return S_OK;
 }
 
-void WebView::notifyAnimationStarted(const GraphicsLayer*, double)
+void WebView::notifyAnimationStarted(const GraphicsLayer*, const String&, double)
 {
     // We never set any animations on our backing layer.
     ASSERT_NOT_REACHED();
@@ -7312,7 +7312,7 @@
     flushPendingGraphicsLayerChangesSoon();
 }
 
-void WebView::paintContents(const GraphicsLayer*, GraphicsContext& context, GraphicsLayerPaintingPhase, const FloatRect& inClipPixels)
+void WebView::paintContents(const GraphicsLayer*, GraphicsContext& context, GraphicsLayerPaintingPhase, const FloatRect& inClipPixels, GraphicsLayerPaintBehavior)
 {
     Frame* frame = core(m_mainFrame);
     if (!frame)

Modified: trunk/Source/WebKitLegacy/win/WebView.h (225534 => 225535)


--- trunk/Source/WebKitLegacy/win/WebView.h	2017-12-05 21:30:34 UTC (rev 225534)
+++ trunk/Source/WebKitLegacy/win/WebView.h	2017-12-05 21:36:01 UTC (rev 225535)
@@ -568,9 +568,9 @@
     DWORD m_lastDropEffect { 0 };
 
     // GraphicsLayerClient
-    virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
-    virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
-    virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::FloatRect& inClip);
+    void notifyAnimationStarted(const WebCore::GraphicsLayer*, const String&, double time) override;
+    void notifyFlushRequired(const WebCore::GraphicsLayer*) override;
+    void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::FloatRect& inClip, WebCore::GraphicsLayerPaintBehavior) override;
 
     // CACFLayerTreeHostClient
     virtual void flushPendingGraphicsLayerChanges();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to