[webkit-changes] [WebKit/WebKit] ee5747: InteractionRegions: configure guard layers differe...

Commit Queue noreply at github.com
Fri May 5 12:19:00 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ee57472bbda11ac4b56c3022f616b6d049c8716a
      https://github.com/WebKit/WebKit/commit/ee57472bbda11ac4b56c3022f616b6d049c8716a
  Author: Etienne Segonzac <sgz at apple.com>
  Date:   2023-05-05 (Fri, 05 May 2023)

  Changed paths:
    M LayoutTests/interaction-region/input-type-file-region-expected.txt
    M LayoutTests/interaction-region/input-type-range-region-expected.txt
    M LayoutTests/interaction-region/labels-expected.txt
    M LayoutTests/interaction-region/layer-tree-expected.txt
    M LayoutTests/interaction-region/paused-video-regions-expected.txt
    M LayoutTests/interaction-region/tiny-regions-expected.txt
    M LayoutTests/interaction-region/wrapped-inline-link-expected.txt
    M Source/WebCore/page/InteractionRegion.cpp
    M Source/WebCore/page/InteractionRegion.h
    M Source/WebCore/rendering/EventRegion.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm

  Log Message:
  -----------
  InteractionRegions: configure guard layers differently than occlusions
https://bugs.webkit.org/show_bug.cgi?id=256343
<rdar://108847192>

Reviewed by Tim Horton.

Make guards a proper InteractionRegion type, and configure the
corresponding layers differently.

* Source/WebCore/page/InteractionRegion.h:
Switch the InteractionRegion::Type to an `uint8_t` and add the Guard case.
Make the Type hash-able.
* Source/WebCore/page/InteractionRegion.cpp:
(WebCore::operator<<):
Update the dump format to support guards.
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
Make the Type serialize-able.
* Source/WebCore/rendering/EventRegion.cpp:
(WebCore::EventRegionContext::uniteInteractionRegions):
Generate guards with the proper Type.
(WebCore::EventRegionContext::shrinkWrapInteractionRegions):
Only shrink wrap Type::Interaction.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm:
(configureLayerAsGuard):
(WebKit::setInteractionRegion):
(WebKit::setInteractionRegionOcclusion):
(WebKit::setInteractionRegionGuard):
(WebKit::updateLayersForInteractionRegions):
(WebKit::isInteractionLayer): Deleted.
Refactor `updateLayersForInteractionRegions` to more gracefully handle
having 3 different InteractionRegion types.
Call the new `configureLayerAsGuard` for guard layers.

* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
(dumpCALayer):
Dump the raw `WKInteractionRegionType` for InteractionRegion layers.

* LayoutTests/interaction-region/input-type-file-region-expected.txt:
* LayoutTests/interaction-region/input-type-range-region-expected.txt:
* LayoutTests/interaction-region/labels-expected.txt:
* LayoutTests/interaction-region/layer-tree-expected.txt:
* LayoutTests/interaction-region/tiny-regions-expected.txt:
* LayoutTests/interaction-region/wrapped-inline-link-expected.txt:
Test updates covering the change.
* LayoutTests/interaction-region/paused-video-regions-expected.txt:
Test update.

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




More information about the webkit-changes mailing list