[webkit-changes] [WebKit/WebKit] 6cd098: [UI-side compositing] Tab thumbnail sometimes offs...

Wenson Hsieh noreply at github.com
Mon Apr 10 11:36:30 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6cd098bb14207f0c94b6dfa91bea70c12ba6b904
      https://github.com/WebKit/WebKit/commit/6cd098bb14207f0c94b6dfa91bea70c12ba6b904
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailViewInternal.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm

  Log Message:
  -----------
  [UI-side compositing] Tab thumbnail sometimes offset by top content inset when entering tab overview
https://bugs.webkit.org/show_bug.cgi?id=255152

Reviewed by Tim Horton.

Even after the fixes in 262649 at main, the temporary root layer reparenting in `_WKThumbnailView`
results in the page content being vertically offset by an amount equal to the web view's top content
inset, in the case where the web view has `_automaticallyAdjustsContentInsets` set to `NO`, as well
as a non-zero top content inset. This appears to affect both UI-side compositing and non-UI-side
compositing (I verified this by artificially deferring the call to `-[_WKThumbnailView
_didTakeSnapshot:]`).

This patch fixes this by offsetting the root layer's sublayer transform by the top content inset,
such that the reparented layers are visually consistent with the final `_WKThumbnailView`'s contents
once the snapshot image arrives.

Test: WebKit.WKThumbnailViewLayerReparentingWithUISideCompositingAndTopContentInset

* Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):

Set the vertical translation amount when the layer is parented.

(-[_WKThumbnailView setScale:]):
(-[_WKThumbnailView _setSublayerVerticalTranslationAmount:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailViewInternal.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:
(TestWebKitAPI::leftCornerColorsForThumbnailView):
(TestWebKitAPI::checkThumbnailViewSnapshotConsistency):
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list