Changeset 201901 in webkit
- Timestamp:
- Jun 9, 2016 7:06:30 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r201899 r201901 1 2016-06-09 Antoine Quint <graouts@apple.com> 2 3 [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none; 4 https://bugs.webkit.org/show_bug.cgi?id=119839 5 <rdar://problem/9671514> 6 7 Reviewed by Simon Fraser. 8 9 * fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt: Added. 10 * fast/scrolling/ios/touch-scroll-pointer-events-none.html: Added. 11 1 12 2016-06-09 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r201899 r201901 1 2016-06-09 Antoine Quint <graouts@apple.com> 2 3 [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none; 4 https://bugs.webkit.org/show_bug.cgi?id=119839 5 <rdar://problem/9671514> 6 7 Reviewed by Simon Fraser. 8 9 Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off 10 user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch. 11 12 Test: fast/scrolling/ios/touch-scroll-pointer-events-none.html 13 14 * platform/graphics/GraphicsLayer.cpp: 15 (WebCore::GraphicsLayer::GraphicsLayer): 16 * platform/graphics/GraphicsLayer.h: 17 (WebCore::GraphicsLayer::userInteractionEnabled): 18 (WebCore::GraphicsLayer::setUserInteractionEnabled): 19 * platform/graphics/ca/GraphicsLayerCA.cpp: 20 (WebCore::GraphicsLayerCA::setUserInteractionEnabled): 21 (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): 22 (WebCore::GraphicsLayerCA::updateUserInteractionEnabled): 23 * platform/graphics/ca/GraphicsLayerCA.h: 24 * platform/graphics/ca/PlatformCALayer.h: 25 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h: 26 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: 27 (PlatformCALayerCocoa::userInteractionEnabled): 28 (PlatformCALayerCocoa::setUserInteractionEnabled): 29 * rendering/RenderLayerBacking.cpp: 30 (WebCore::RenderLayerBacking::updateAfterDescendants): 31 1 32 2016-06-09 Chris Dumez <cdumez@apple.com> 2 33 -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
r199046 r201901 129 129 , m_isMaskLayer(false) 130 130 , m_isTrackingDisplayListReplay(false) 131 , m_userInteractionEnabled(true) 131 132 , m_paintingPhase(GraphicsLayerPaintAllWithOverflowClip) 132 133 , m_contentsOrientation(CompositingCoordinatesTopDown) -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.h
r201785 r201901 347 347 virtual void setContentsVisible(bool b) { m_contentsVisible = b; } 348 348 349 bool userInteractionEnabled() const { return m_userInteractionEnabled; } 350 virtual void setUserInteractionEnabled(bool b) { m_userInteractionEnabled = b; } 351 349 352 bool acceleratesDrawing() const { return m_acceleratesDrawing; } 350 353 virtual void setAcceleratesDrawing(bool b) { m_acceleratesDrawing = b; } … … 627 630 bool m_isMaskLayer : 1; 628 631 bool m_isTrackingDisplayListReplay : 1; 632 bool m_userInteractionEnabled : 1; 629 633 630 634 GraphicsLayerPaintingPhase m_paintingPhase; -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r201785 r201901 677 677 } 678 678 679 void GraphicsLayerCA::setUserInteractionEnabled(bool userInteractionEnabled) 680 { 681 if (userInteractionEnabled == m_userInteractionEnabled) 682 return; 683 684 GraphicsLayer::setUserInteractionEnabled(userInteractionEnabled); 685 noteLayerPropertyChanged(UserInteractionEnabledChanged); 686 } 687 679 688 void GraphicsLayerCA::setAcceleratesDrawing(bool acceleratesDrawing) 680 689 { … … 1580 1589 updateContentsVisibility(); 1581 1590 1591 if (m_uncommittedChanges & UserInteractionEnabledChanged) 1592 updateUserInteractionEnabled(); 1593 1582 1594 // Note that contentsScale can affect whether the layer can be opaque. 1583 1595 if (m_uncommittedChanges & ContentsOpaqueChanged) … … 1883 1895 1884 1896 m_layer->setContentsHidden(!m_contentsVisible); 1897 } 1898 1899 void GraphicsLayerCA::updateUserInteractionEnabled() 1900 { 1901 m_layer->setUserInteractionEnabled(m_userInteractionEnabled); 1885 1902 } 1886 1903 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
r201785 r201901 92 92 WEBCORE_EXPORT void setAcceleratesDrawing(bool) override; 93 93 WEBCORE_EXPORT void setUsesDisplayListDrawing(bool) override; 94 WEBCORE_EXPORT void setUserInteractionEnabled(bool) override; 94 95 95 96 WEBCORE_EXPORT void setBackgroundColor(const Color&) override; … … 400 401 void updateCoverage(); 401 402 void updateBackgroundColor(); 403 void updateUserInteractionEnabled(); 402 404 403 405 void updateContentsImage(); … … 496 498 ShapeChanged = 1LLU << 35, 497 499 WindRuleChanged = 1LLU << 36, 500 UserInteractionEnabledChanged = 1LLU << 37, 498 501 }; 499 502 typedef uint64_t LayerChangeFlags; -
trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h
r200612 r201901 162 162 virtual bool contentsHidden() const = 0; 163 163 virtual void setContentsHidden(bool) = 0; 164 virtual bool userInteractionEnabled() const = 0; 165 virtual void setUserInteractionEnabled(bool) = 0; 164 166 165 167 virtual bool geometryFlipped() const = 0; -
trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h
r200602 r201901 93 93 bool contentsHidden() const override; 94 94 void setContentsHidden(bool) override; 95 96 bool userInteractionEnabled() const override; 97 void setUserInteractionEnabled(bool) override; 95 98 96 99 void setBackingStoreAttached(bool) override; -
trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm
r201648 r201901 629 629 } 630 630 631 bool PlatformCALayerCocoa::userInteractionEnabled() const 632 { 633 return true; 634 } 635 636 void PlatformCALayerCocoa::setUserInteractionEnabled(bool) 637 { 638 } 639 631 640 void PlatformCALayerCocoa::setBackingStoreAttached(bool) 632 641 { -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r201785 r201901 1072 1072 1073 1073 m_graphicsLayer->setContentsVisible(m_owningLayer.hasVisibleContent() || isPaintDestinationForDescendantLayers()); 1074 if (m_scrollingLayer) 1074 if (m_scrollingLayer) { 1075 1075 m_scrollingLayer->setContentsVisible(renderer().style().visibility() == VISIBLE); 1076 m_scrollingLayer->setUserInteractionEnabled(renderer().style().pointerEvents() != PE_NONE); 1077 } 1076 1078 } 1077 1079 -
trunk/Source/WebKit2/ChangeLog
r201897 r201901 1 2016-06-09 Antoine Quint <graouts@apple.com> 2 3 [iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none; 4 https://bugs.webkit.org/show_bug.cgi?id=119839 5 <rdar://problem/9671514> 6 7 Reviewed by Simon Fraser. 8 9 Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off 10 user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch. 11 12 * Shared/mac/RemoteLayerTreePropertyApplier.mm: 13 (WebKit::RemoteLayerTreePropertyApplier::applyProperties): 14 * Shared/mac/RemoteLayerTreeTransaction.h: 15 * Shared/mac/RemoteLayerTreeTransaction.mm: 16 (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): 17 (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode): 18 (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): 19 (WebKit::dumpChangedLayers): 20 * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: 21 (WebKit::PlatformCALayerRemote::userInteractionEnabled): 22 (WebKit::PlatformCALayerRemote::setUserInteractionEnabled): 23 * WebProcess/WebPage/mac/PlatformCALayerRemote.h: 24 1 25 2016-06-09 Anders Carlsson <andersca@apple.com> 2 26 -
trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm
r201038 r201901 332 332 } 333 333 } 334 335 if (properties.changedProperties & RemoteLayerTreeTransaction::ContentsHiddenChanged)336 view.userInteractionEnabled = !properties.contentsHidden ;334 335 if (properties.changedProperties & (RemoteLayerTreeTransaction::ContentsHiddenChanged | RemoteLayerTreeTransaction::UserInteractionEnabledChanged)) 336 view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled; 337 337 338 338 END_BLOCK_OBJC_EXCEPTIONS; -
trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h
r200602 r201901 90 90 EdgeAntialiasingMaskChanged = 1LLU << 35, 91 91 CustomAppearanceChanged = 1LLU << 36, 92 UserInteractionEnabledChanged = 1LLU << 37, 92 93 }; 93 94 typedef uint64_t LayerChange; … … 167 168 bool opaque; 168 169 bool contentsHidden; 170 bool userInteractionEnabled; 169 171 }; 170 172 -
trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm
r200602 r201901 105 105 , opaque(false) 106 106 , contentsHidden(false) 107 , userInteractionEnabled(true) 107 108 { 108 109 } … … 143 144 , opaque(other.opaque) 144 145 , contentsHidden(other.contentsHidden) 146 , userInteractionEnabled(other.userInteractionEnabled) 145 147 { 146 148 // FIXME: LayerProperties should reference backing store by ID, so that two layers can have the same backing store (for clones). … … 274 276 if (changedProperties & CustomAppearanceChanged) 275 277 encoder.encodeEnum(customAppearance); 278 279 if (changedProperties & UserInteractionEnabledChanged) 280 encoder << userInteractionEnabled; 276 281 } 277 282 … … 489 494 if (result.changedProperties & CustomAppearanceChanged) { 490 495 if (!decoder.decodeEnum(result.customAppearance)) 496 return false; 497 } 498 499 if (result.changedProperties & UserInteractionEnabledChanged) { 500 if (!decoder.decode(result.userInteractionEnabled)) 491 501 return false; 492 502 } … … 815 825 if (layerProperties.changedProperties & RemoteLayerTreeTransaction::CustomAppearanceChanged) 816 826 ts.dumpProperty("customAppearance", layerProperties.customAppearance); 827 828 if (layerProperties.changedProperties & RemoteLayerTreeTransaction::UserInteractionEnabledChanged) 829 ts.dumpProperty("userInteractionEnabled", layerProperties.userInteractionEnabled); 817 830 } 818 831 } -
trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp
r201374 r201901 528 528 } 529 529 530 bool PlatformCALayerRemote::userInteractionEnabled() const 531 { 532 return m_properties.userInteractionEnabled; 533 } 534 535 void PlatformCALayerRemote::setUserInteractionEnabled(bool value) 536 { 537 if (m_properties.userInteractionEnabled == value) 538 return; 539 540 m_properties.userInteractionEnabled = value; 541 m_properties.notePropertiesChanged(RemoteLayerTreeTransaction::UserInteractionEnabledChanged); 542 } 543 530 544 void PlatformCALayerRemote::setBackingStoreAttached(bool value) 531 545 { -
trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h
r200602 r201901 98 98 void setContentsHidden(bool) override; 99 99 100 bool userInteractionEnabled() const override; 101 void setUserInteractionEnabled(bool) override; 102 100 103 void setBackingStoreAttached(bool) override; 101 104 bool backingStoreAttached() const override;
Note: See TracChangeset
for help on using the changeset viewer.