Changeset 252419 in webkit
- Timestamp:
- Nov 13, 2019, 11:22:54 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt (added)
-
LayoutTests/fast/scrolling/ios/event-region-scrolled-contents-layer.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/RenderLayerBacking.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r252412 r252419 1 2019-11-13 Antti Koivisto <antti@apple.com> 2 3 Google Docs spreadsheet tiles render very slowly (because of event region painting) 4 https://bugs.webkit.org/show_bug.cgi?id=204160 5 <rdar://problem/57073401> 6 7 Reviewed by Simon Fraser. 8 9 * fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt: Added. 10 * fast/scrolling/ios/event-region-scrolled-contents-layer.html: Added. 11 1 12 2019-11-13 Youenn Fablet <youenn@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r252417 r252419 1 2019-11-13 Antti Koivisto <antti@apple.com> 2 3 Google Docs spreadsheet tiles render very slowly (because of event region painting) 4 https://bugs.webkit.org/show_bug.cgi?id=204160 5 <rdar://problem/57073401> 6 7 Reviewed by Simon Fraser. 8 9 Content of a overflow:scroll area on this page doesn't cover the entire scrollable area and we end 10 up generating a complex shape for the event region. This is unnecessary as touches within scrollers 11 always scroll the content. 12 13 Test: fast/scrolling/ios/event-region-scrolled-contents-layer.html 14 15 * rendering/RenderLayerBacking.cpp: 16 (WebCore::RenderLayerBacking::updateEventRegion): 17 18 Initialize event region for scrolled contents layer with layer-sized event region. This optimizes away 19 event region mutations. We still need to to do the event region paint to capture touch-action regions. 20 21 In future we should also improve Region type to not have pathological worst-case performance with complex 22 shapes. 23 1 24 2019-11-13 Andres Gonzalez <andresg_22@apple.com> 2 25 -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r252070 r252419 1600 1600 EventRegion eventRegion; 1601 1601 auto eventRegionContext = eventRegion.makeContext(); 1602 auto layerOffset = graphicsLayer.scrollOffset() - roundedIntSize(graphicsLayer.offsetFromRenderer()); 1603 1604 if (&graphicsLayer == m_scrolledContentsLayer && renderer().visibleToHitTesting()) { 1605 // Initialize scrolled contents layer with layer-sized event region as it can all used for scrolling. 1606 // This avoids generating unnecessarily complex event regions. We still need to to do the paint to capture touch-action regions. 1607 eventRegionContext.unite(enclosingIntRect(FloatRect(-layerOffset, graphicsLayer.size())), RenderStyle::defaultStyle()); 1608 } 1609 1602 1610 auto dirtyRect = enclosingIntRect(FloatRect(FloatPoint(graphicsLayer.offsetFromRenderer()), graphicsLayer.size())); 1603 1604 1611 paintIntoLayer(&graphicsLayer, nullContext, dirtyRect, { }, &eventRegionContext); 1605 1612 1606 auto layerOffset = toIntSize(graphicsLayer.scrollOffset()) - roundedIntSize(graphicsLayer.offsetFromRenderer()); 1607 eventRegion.translate(layerOffset); 1613 eventRegion.translate(toIntSize(layerOffset)); 1608 1614 1609 1615 graphicsLayer.setEventRegion(WTFMove(eventRegion));
Note:
See TracChangeset
for help on using the changeset viewer.