Title: [201901] trunk
Revision
201901
Author
[email protected]
Date
2016-06-09 19:06:30 -0700 (Thu, 09 Jun 2016)

Log Message

[iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
https://bugs.webkit.org/show_bug.cgi?id=119839
<rdar://problem/9671514>

Patch by Antoine Quint <[email protected]> on 2016-06-09
Reviewed by Simon Fraser.

Source/WebCore:

Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.

Test: fast/scrolling/ios/touch-scroll-pointer-events-none.html

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::userInteractionEnabled):
(WebCore::GraphicsLayer::setUserInteractionEnabled):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setUserInteractionEnabled):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateUserInteractionEnabled):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::userInteractionEnabled):
(PlatformCALayerCocoa::setUserInteractionEnabled):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterDescendants):

Source/WebKit2:

Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.

* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::userInteractionEnabled):
(WebKit::PlatformCALayerRemote::setUserInteractionEnabled):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

* fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt: Added.
* fast/scrolling/ios/touch-scroll-pointer-events-none.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (201900 => 201901)


--- trunk/LayoutTests/ChangeLog	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/LayoutTests/ChangeLog	2016-06-10 02:06:30 UTC (rev 201901)
@@ -1,3 +1,14 @@
+2016-06-09  Antoine Quint  <[email protected]>
+
+        [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
+        https://bugs.webkit.org/show_bug.cgi?id=119839
+        <rdar://problem/9671514>
+
+        Reviewed by Simon Fraser.
+
+        * fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt: Added.
+        * fast/scrolling/ios/touch-scroll-pointer-events-none.html: Added.
+
 2016-06-09  Chris Dumez  <[email protected]>
 
         WorkerNavigator property should exist on WorkerGlobalScope

Added: trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt (0 => 201901)


--- trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt	2016-06-10 02:06:30 UTC (rev 201901)
@@ -0,0 +1,10 @@
+PASS hitElement.id is "under-target"
+PASS scroller.scrollTop is 0
+swipe complete
+PASS scroller.scrollTop is 0
+PASS document.scrollingElement.scrollTop is 90
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+

Added: trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none.html (0 => 201901)


--- trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none.html	                        (rev 0)
+++ trunk/LayoutTests/fast/scrolling/ios/touch-scroll-pointer-events-none.html	2016-06-10 02:06:30 UTC (rev 201901)
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <meta name="viewport" content="initial-scale=1.0">
+    <style>
+        body {
+            margin: 0;
+            height: 2000px;
+        }
+        
+        .box {
+            height: 100px;
+            width: 100px;
+            background-color: blue;
+        }
+        
+        .outer {
+            position: absolute;
+            top: 0;
+        }
+        
+        .box:hover {
+            background-color: green;
+        }
+        
+        .container {
+            position: absolute;
+            top: 50px;
+            left: 50px;
+            height: 300px;
+            width: 300px;
+            overflow: scroll;
+            -webkit-overflow-scrolling: touch;
+            border: 1px solid black;
+            pointer-events: none;
+            box-shadow: 0 0 10px black;
+        }
+        
+        .content {
+            height: 600px;
+        }
+    </style>
+    <script src=""
+    <script>
+        window.jsTestIsAsync = true;
+
+        function getUIScript()
+        {
+            return `
+            (function() {
+                uiController.dragFromPointToPoint(60, 200, 60, 100, 0.5, function() {
+                    uiController.uiScriptComplete("");
+                });
+            })();`
+        }
+
+        var hitElement;
+        function runTest()
+        {
+            hitElement = document.elementFromPoint(20, 20);
+            shouldBeEqualToString("hitElement.id", "under-target");
+            
+            var scroller = document.getElementById('scroller');
+            shouldBe("scroller.scrollTop", "0");
+
+            if (testRunner.runUIScript) {
+                testRunner.runUIScript(getUIScript(), function() {
+                    debug("swipe complete");
+                    shouldBe("scroller.scrollTop", "0");
+                    shouldBe("document.scrollingElement.scrollTop", "90");
+                    finishJSTest();
+                });
+            }
+        }
+        window.addEventListener('load', runTest, false);
+    </script>
+</head>
+<body>
+<div class="outer box" id="under-target">
+</div>
+
+<div id="scroller" class="container" _onscroll_="debug('overflow scroll')">
+    <div class="content">
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+        <div class="inner box" style="visibility: visible">
+        </div>
+    </div>
+</div>
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (201900 => 201901)


--- trunk/Source/WebCore/ChangeLog	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/ChangeLog	2016-06-10 02:06:30 UTC (rev 201901)
@@ -1,3 +1,34 @@
+2016-06-09  Antoine Quint  <[email protected]>
+
+        [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
+        https://bugs.webkit.org/show_bug.cgi?id=119839
+        <rdar://problem/9671514>
+
+        Reviewed by Simon Fraser.
+
+        Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
+        user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.
+
+        Test: fast/scrolling/ios/touch-scroll-pointer-events-none.html
+
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::GraphicsLayer):
+        * platform/graphics/GraphicsLayer.h:
+        (WebCore::GraphicsLayer::userInteractionEnabled):
+        (WebCore::GraphicsLayer::setUserInteractionEnabled):
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::setUserInteractionEnabled):
+        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+        (WebCore::GraphicsLayerCA::updateUserInteractionEnabled):
+        * platform/graphics/ca/GraphicsLayerCA.h:
+        * platform/graphics/ca/PlatformCALayer.h:
+        * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
+        * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
+        (PlatformCALayerCocoa::userInteractionEnabled):
+        (PlatformCALayerCocoa::setUserInteractionEnabled):
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateAfterDescendants):
+
 2016-06-09  Chris Dumez  <[email protected]>
 
         WorkerNavigator property should exist on WorkerGlobalScope

Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2016-06-10 02:06:30 UTC (rev 201901)
@@ -128,6 +128,7 @@
     , m_showRepaintCounter(false)
     , m_isMaskLayer(false)
     , m_isTrackingDisplayListReplay(false)
+    , m_userInteractionEnabled(true)
     , m_paintingPhase(GraphicsLayerPaintAllWithOverflowClip)
     , m_contentsOrientation(CompositingCoordinatesTopDown)
     , m_parent(nullptr)

Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.h (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -346,6 +346,9 @@
     bool contentsAreVisible() const { return m_contentsVisible; }
     virtual void setContentsVisible(bool b) { m_contentsVisible = b; }
 
+    bool userInteractionEnabled() const { return m_userInteractionEnabled; }
+    virtual void setUserInteractionEnabled(bool b) { m_userInteractionEnabled = b; }
+    
     bool acceleratesDrawing() const { return m_acceleratesDrawing; }
     virtual void setAcceleratesDrawing(bool b) { m_acceleratesDrawing = b; }
 
@@ -626,6 +629,7 @@
     bool m_showRepaintCounter : 1;
     bool m_isMaskLayer : 1;
     bool m_isTrackingDisplayListReplay : 1;
+    bool m_userInteractionEnabled : 1;
     
     GraphicsLayerPaintingPhase m_paintingPhase;
     CompositingCoordinatesOrientation m_contentsOrientation; // affects orientation of layer contents

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2016-06-10 02:06:30 UTC (rev 201901)
@@ -676,6 +676,15 @@
         noteSublayersChanged();
 }
 
+void GraphicsLayerCA::setUserInteractionEnabled(bool userInteractionEnabled)
+{
+    if (userInteractionEnabled == m_userInteractionEnabled)
+        return;
+    
+    GraphicsLayer::setUserInteractionEnabled(userInteractionEnabled);
+    noteLayerPropertyChanged(UserInteractionEnabledChanged);
+}
+
 void GraphicsLayerCA::setAcceleratesDrawing(bool acceleratesDrawing)
 {
     if (acceleratesDrawing == m_acceleratesDrawing)
@@ -1579,6 +1588,9 @@
     if (m_uncommittedChanges & ContentsVisibilityChanged)
         updateContentsVisibility();
 
+    if (m_uncommittedChanges & UserInteractionEnabledChanged)
+        updateUserInteractionEnabled();
+
     // Note that contentsScale can affect whether the layer can be opaque.
     if (m_uncommittedChanges & ContentsOpaqueChanged)
         updateContentsOpaque(pageScaleFactor);
@@ -1884,6 +1896,11 @@
     m_layer->setContentsHidden(!m_contentsVisible);
 }
 
+void GraphicsLayerCA::updateUserInteractionEnabled()
+{
+    m_layer->setUserInteractionEnabled(m_userInteractionEnabled);
+}
+
 void GraphicsLayerCA::updateContentsOpaque(float pageScaleFactor)
 {
     bool contentsOpaque = m_contentsOpaque;

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -91,6 +91,7 @@
     WEBCORE_EXPORT void setContentsVisible(bool) override;
     WEBCORE_EXPORT void setAcceleratesDrawing(bool) override;
     WEBCORE_EXPORT void setUsesDisplayListDrawing(bool) override;
+    WEBCORE_EXPORT void setUserInteractionEnabled(bool) override;
 
     WEBCORE_EXPORT void setBackgroundColor(const Color&) override;
 
@@ -399,6 +400,7 @@
     void updateDrawsContent();
     void updateCoverage();
     void updateBackgroundColor();
+    void updateUserInteractionEnabled();
 
     void updateContentsImage();
     void updateContentsPlatformLayer();
@@ -495,6 +497,7 @@
         BlendModeChanged =              1LLU << 34,
         ShapeChanged =                  1LLU << 35,
         WindRuleChanged =               1LLU << 36,
+        UserInteractionEnabledChanged = 1LLU << 37,
     };
     typedef uint64_t LayerChangeFlags;
     enum ScheduleFlushOrNot { ScheduleFlush, DontScheduleFlush };

Modified: trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -161,6 +161,8 @@
     // Used to disable user interaction for some platforms.
     virtual bool contentsHidden() const = 0;
     virtual void setContentsHidden(bool) = 0;
+    virtual bool userInteractionEnabled() const = 0;
+    virtual void setUserInteractionEnabled(bool) = 0;
 
     virtual bool geometryFlipped() const = 0;
     virtual void setGeometryFlipped(bool) = 0;

Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -93,6 +93,9 @@
     bool contentsHidden() const override;
     void setContentsHidden(bool) override;
 
+    bool userInteractionEnabled() const override;
+    void setUserInteractionEnabled(bool) override;
+
     void setBackingStoreAttached(bool) override;
     bool backingStoreAttached() const override;
 

Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm (201900 => 201901)


--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm	2016-06-10 02:06:30 UTC (rev 201901)
@@ -628,6 +628,15 @@
 {
 }
 
+bool PlatformCALayerCocoa::userInteractionEnabled() const
+{
+    return true;
+}
+
+void PlatformCALayerCocoa::setUserInteractionEnabled(bool)
+{
+}
+
 void PlatformCALayerCocoa::setBackingStoreAttached(bool)
 {
     // We could throw away backing store here with setContents:nil.

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (201900 => 201901)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2016-06-10 02:06:30 UTC (rev 201901)
@@ -1071,8 +1071,10 @@
     updateDrawsContent(isSimpleContainer);
 
     m_graphicsLayer->setContentsVisible(m_owningLayer.hasVisibleContent() || isPaintDestinationForDescendantLayers());
-    if (m_scrollingLayer)
+    if (m_scrollingLayer) {
         m_scrollingLayer->setContentsVisible(renderer().style().visibility() == VISIBLE);
+        m_scrollingLayer->setUserInteractionEnabled(renderer().style().pointerEvents() != PE_NONE);
+    }
 }
 
 // FIXME: Avoid repaints when clip path changes.

Modified: trunk/Source/WebKit2/ChangeLog (201900 => 201901)


--- trunk/Source/WebKit2/ChangeLog	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/ChangeLog	2016-06-10 02:06:30 UTC (rev 201901)
@@ -1,3 +1,27 @@
+2016-06-09  Antoine Quint  <[email protected]>
+
+        [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
+        https://bugs.webkit.org/show_bug.cgi?id=119839
+        <rdar://problem/9671514>
+
+        Reviewed by Simon Fraser.
+
+        Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
+        user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.
+
+        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
+        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
+        * Shared/mac/RemoteLayerTreeTransaction.h:
+        * Shared/mac/RemoteLayerTreeTransaction.mm:
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
+        (WebKit::dumpChangedLayers):
+        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
+        (WebKit::PlatformCALayerRemote::userInteractionEnabled):
+        (WebKit::PlatformCALayerRemote::setUserInteractionEnabled):
+        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
+
 2016-06-09  Anders Carlsson  <[email protected]>
 
         Remove OriginAndDatabases.cpp, it's unused

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm (201900 => 201901)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm	2016-06-10 02:06:30 UTC (rev 201901)
@@ -331,10 +331,10 @@
                 maskOwnerLayer.mask = maskView.layer;
         }
     }
-    
-    if (properties.changedProperties & RemoteLayerTreeTransaction::ContentsHiddenChanged)
-        view.userInteractionEnabled = !properties.contentsHidden;
 
+    if (properties.changedProperties & (RemoteLayerTreeTransaction::ContentsHiddenChanged | RemoteLayerTreeTransaction::UserInteractionEnabledChanged))
+        view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled;
+
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 #endif

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h (201900 => 201901)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -89,6 +89,7 @@
         AnimationsChanged               = 1LLU << 34,
         EdgeAntialiasingMaskChanged     = 1LLU << 35,
         CustomAppearanceChanged         = 1LLU << 36,
+        UserInteractionEnabledChanged   = 1LLU << 37,
     };
     typedef uint64_t LayerChange;
 
@@ -166,6 +167,7 @@
         bool masksToBounds;
         bool opaque;
         bool contentsHidden;
+        bool userInteractionEnabled;
     };
 
     explicit RemoteLayerTreeTransaction();

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm (201900 => 201901)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm	2016-06-10 02:06:30 UTC (rev 201901)
@@ -104,6 +104,7 @@
     , masksToBounds(false)
     , opaque(false)
     , contentsHidden(false)
+    , userInteractionEnabled(true)
 {
 }
 
@@ -142,6 +143,7 @@
     , masksToBounds(other.masksToBounds)
     , opaque(other.opaque)
     , contentsHidden(other.contentsHidden)
+    , userInteractionEnabled(other.userInteractionEnabled)
 {
     // FIXME: LayerProperties should reference backing store by ID, so that two layers can have the same backing store (for clones).
     // FIXME: LayerProperties shouldn't be copyable; PlatformCALayerRemote::clone should copy the relevant properties.
@@ -273,6 +275,9 @@
 
     if (changedProperties & CustomAppearanceChanged)
         encoder.encodeEnum(customAppearance);
+
+    if (changedProperties & UserInteractionEnabledChanged)
+        encoder << userInteractionEnabled;
 }
 
 bool RemoteLayerTreeTransaction::LayerProperties::decode(IPC::ArgumentDecoder& decoder, LayerProperties& result)
@@ -491,6 +496,11 @@
             return false;
     }
 
+    if (result.changedProperties & UserInteractionEnabledChanged) {
+        if (!decoder.decode(result.userInteractionEnabled))
+            return false;
+    }
+
     return true;
 }
 
@@ -814,6 +824,9 @@
 
         if (layerProperties.changedProperties & RemoteLayerTreeTransaction::CustomAppearanceChanged)
             ts.dumpProperty("customAppearance", layerProperties.customAppearance);
+
+        if (layerProperties.changedProperties & RemoteLayerTreeTransaction::UserInteractionEnabledChanged)
+            ts.dumpProperty("userInteractionEnabled", layerProperties.userInteractionEnabled);
     }
 }
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp (201900 => 201901)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp	2016-06-10 02:06:30 UTC (rev 201901)
@@ -527,6 +527,20 @@
     m_properties.notePropertiesChanged(RemoteLayerTreeTransaction::ContentsHiddenChanged);
 }
 
+bool PlatformCALayerRemote::userInteractionEnabled() const
+{
+    return m_properties.userInteractionEnabled;
+}
+
+void PlatformCALayerRemote::setUserInteractionEnabled(bool value)
+{
+    if (m_properties.userInteractionEnabled == value)
+        return;
+    
+    m_properties.userInteractionEnabled = value;
+    m_properties.notePropertiesChanged(RemoteLayerTreeTransaction::UserInteractionEnabledChanged);
+}
+
 void PlatformCALayerRemote::setBackingStoreAttached(bool value)
 {
     if (m_properties.backingStoreAttached == value)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h (201900 => 201901)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h	2016-06-10 02:03:33 UTC (rev 201900)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h	2016-06-10 02:06:30 UTC (rev 201901)
@@ -97,6 +97,9 @@
     bool contentsHidden() const override;
     void setContentsHidden(bool) override;
 
+    bool userInteractionEnabled() const override;
+    void setUserInteractionEnabled(bool) override;
+
     void setBackingStoreAttached(bool) override;
     bool backingStoreAttached() const override;
     bool backingContributesToMemoryEstimate() const override { return backingStoreAttached(); }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to