Changeset 246950 in webkit


Ignore:
Timestamp:
Jun 29, 2019 2:01:40 PM (5 years ago)
Author:
Simon Fraser
Message:

Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
https://bugs.webkit.org/show_bug.cgi?id=199342

Reviewed by Zalan Bujtas.

Source/WebCore:

Code in RenderObject::shouldApplyCompositedContainerScrollsForRepaint() adds VisibleRectContextOption::ApplyCompositedContainerScrolls
only for iOS, and RenderLayerBacking::setContentsNeedDisplayInRect() subtracts out scroll position for only iOS,
so remove this iOS-specific code.

Blame for this code mentions touch event regions, so I tested these but they use absoluteBoundingBoxRect()
which doesn't hit this code. Still, I added a layout test for touch regions inside scrolled overflow.

Existing tests exist for repaint inside scrolled overflow.

Test: fast/events/touch/ios/touch-event-regions/scrolled-overflow.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::shouldApplyCompositedContainerScrollsForRepaint): Deleted.
(WebCore::RenderObject::visibleRectContextForRepaint): Deleted.

  • rendering/RenderObject.h:

(WebCore::RenderObject::visibleRectContextForRepaint):

LayoutTests:

  • fast/events/touch/ios/touch-event-regions/scrolled-overflow-expected.txt: Added.
  • fast/events/touch/ios/touch-event-regions/scrolled-overflow.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r246943 r246950  
     12019-06-29  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
     4        https://bugs.webkit.org/show_bug.cgi?id=199342
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        * fast/events/touch/ios/touch-event-regions/scrolled-overflow-expected.txt: Added.
     9        * fast/events/touch/ios/touch-event-regions/scrolled-overflow.html: Added.
     10
    1112019-06-28  Zalan Bujtas  <zalan@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r246948 r246950  
     12019-06-29  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
     4        https://bugs.webkit.org/show_bug.cgi?id=199342
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Code in RenderObject::shouldApplyCompositedContainerScrollsForRepaint() adds VisibleRectContextOption::ApplyCompositedContainerScrolls
     9        only for iOS, and RenderLayerBacking::setContentsNeedDisplayInRect() subtracts out scroll position for only iOS,
     10        so remove this iOS-specific code.
     11
     12        Blame for this code mentions touch event regions, so I tested these but they use absoluteBoundingBoxRect()
     13        which doesn't hit this code. Still, I added a layout test for touch regions inside scrolled overflow.
     14
     15        Existing tests exist for repaint inside scrolled overflow.
     16
     17        Test: fast/events/touch/ios/touch-event-regions/scrolled-overflow.html
     18
     19        * rendering/RenderLayerBacking.cpp:
     20        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
     21        * rendering/RenderObject.cpp:
     22        (WebCore::RenderObject::shouldApplyCompositedContainerScrollsForRepaint): Deleted.
     23        (WebCore::RenderObject::visibleRectContextForRepaint): Deleted.
     24        * rendering/RenderObject.h:
     25        (WebCore::RenderObject::visibleRectContextForRepaint):
     26
    1272019-06-28  Tim Horton  <timothy_horton@apple.com>
    228
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r246845 r246950  
    27142714        FloatRect layerDirtyRect = pixelSnappedRectForPainting;
    27152715        layerDirtyRect.move(-m_scrolledContentsLayer->offsetFromRenderer() + toLayoutSize(m_scrolledContentsLayer->scrollOffset()) - m_subpixelOffsetFromRenderer);
    2716 #if PLATFORM(IOS_FAMILY)
    2717         // Account for the fact that RenderLayerBacking::updateGeometry() bakes scrollOffset into offsetFromRenderer on iOS,
    2718         // but the repaint rect is computed without taking the scroll position into account (see shouldApplyClipAndScrollPositionForRepaint()).
    2719         layerDirtyRect.moveBy(-m_owningLayer.scrollPosition());
    2720 #endif
    27212716        m_scrolledContentsLayer->setNeedsDisplayInRect(layerDirtyRect, shouldClip);
    27222717    }
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r246490 r246950  
    976976}
    977977
    978 bool RenderObject::shouldApplyCompositedContainerScrollsForRepaint()
    979 {
    980 #if PLATFORM(IOS_FAMILY)
    981     return false;
    982 #else
    983     return true;
    984 #endif
    985 }
    986 
    987 RenderObject::VisibleRectContext RenderObject::visibleRectContextForRepaint()
    988 {
    989     VisibleRectContext context(false, false, { VisibleRectContextOption::ApplyContainerClip });
    990     if (shouldApplyCompositedContainerScrollsForRepaint())
    991         context.m_options.add(VisibleRectContextOption::ApplyCompositedContainerScrolls);
    992     return context;
    993 }
    994 
    995978LayoutRect RenderObject::computeRectForRepaint(const LayoutRect& rect, const RenderLayerModelObject* repaintContainer) const
    996979{
  • trunk/Source/WebCore/rendering/RenderObject.h

    r246432 r246950  
    803803    static bool shouldApplyCompositedContainerScrollsForRepaint();
    804804
    805     static VisibleRectContext visibleRectContextForRepaint();
     805    static VisibleRectContext visibleRectContextForRepaint()
     806    {
     807        return VisibleRectContext(false, false, { VisibleRectContextOption::ApplyContainerClip, VisibleRectContextOption::ApplyCompositedContainerScrolls });
     808    }
    806809
    807810private:
Note: See TracChangeset for help on using the changeset viewer.