[webkit-changes] [WebKit/WebKit] bb2814: Dropping frames on visionOS while scrolling due to...

mwyrzykowski noreply at github.com
Fri Aug 4 14:51:26 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bb28148509967bf8b3e923fc71adb69895055a4d
      https://github.com/WebKit/WebKit/commit/bb28148509967bf8b3e923fc71adb69895055a4d
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2023-08-04 (Fri, 04 Aug 2023)

  Changed paths:
    M LayoutTests/interaction-region/interaction-layers-culling-expected.txt
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
    M Source/WebCore/platform/graphics/ca/PlatformCALayer.h
    M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h
    M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm
    M Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm

  Log Message:
  -----------
  Dropping frames on visionOS while scrolling due to number of glow layers on some websites
https://bugs.webkit.org/show_bug.cgi?id=259739
<radar://113094884>

Reviewed by Dean Jackson.

Cull glow regions outside of visible areas as the user will not be able
to interact with them.

* LayoutTests/interaction-region/interaction-layers-culling-expected.txt:
Update test expectation.

* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateCoverage):
* Source/WebCore/platform/graphics/ca/PlatformCALayer.h:
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::setVisibleRect):
(WebCore::PlatformCALayerCocoa::setCoverageRect): Deleted.
* Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::LayerProperties::encode const):
(WebKit::LayerProperties::decode):
(WebKit::dumpChangedLayers):
Change use of coverageRect to visibleRect.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm:
(WebKit::updateLayersForInteractionRegions):
Layer was being inserted twice, correct this.

Also instead of testing if the rect exists and it did not intersect to return early,
test that either the rect does not exist or it does not interesect to return early.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
(WebKit::RemoteLayerTreeNode::visibleRect const):
(WebKit::RemoteLayerTreeNode::setVisibleRect):
(WebKit::RemoteLayerTreeNode::CoverageRectMarkableTraits::isEmptyValue): Deleted.
(WebKit::RemoteLayerTreeNode::CoverageRectMarkableTraits::emptyValue): Deleted.
(WebKit::RemoteLayerTreeNode::coverageRect const): Deleted.
(WebKit::RemoteLayerTreeNode::setCoverageRect): Deleted.
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::setVisibleRect):
(WebKit::PlatformCALayerRemote::setCoverageRect): Deleted.
Change use of coverageRect to visibleRect.

Canonical link: https://commits.webkit.org/266604@main




More information about the webkit-changes mailing list