Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ea884a9b50d637b50ca72d62c0813d555f94bc19
      
https://github.com/WebKit/WebKit/commit/ea884a9b50d637b50ca72d62c0813d555f94bc19
  Author: Wenson Hsieh <[email protected]>
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/Platform/spi/ios/UIKitSPI.h
    M Source/WebKit/Shared/WebPreferencesDefaultValues.h
    M Source/WebKit/Shared/ios/WebPreferencesDefaultValuesIOS.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm

  Log Message:
  -----------
  [iOS] Enable automatic live resize on iPadOS at runtime
https://bugs.webkit.org/show_bug.cgi?id=274410

Reviewed by Abrar Rahman Protyasha.

Enable automatic live resize on iPad, with runtime enablement guarded by a 
system feature flag.
Additionally, remove usage of two SPIs that currently support automatic live 
resize behaviors:

• `_UIWindowSceneDidEndLiveResizeNotification`
• `-[UIWindowScene _isInLiveResize]`

...by instead changing how automatic live resize works:

(a) Don't wait for the live resize gesture to end before allowing geometry 
updates to commence;
    instead, use an arbitrary hysteresis of 500 ms to determine when the 
viewport dimensions have
    stabilized, before ending live resize.

(b) Use automatic live resize whenever the window itself is changing size; to 
detect this, keep
    track of the last known size of the window containing the web view, and 
only trigger live resize
    when this size is changing.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Source/WebKit/Shared/WebPreferencesDefaultValues.h:
* Source/WebKit/Shared/ios/WebPreferencesDefaultValuesIOS.mm:
(WebKit::defaultAutomaticLiveResizeEnabled):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView didMoveToWindow]):
(-[WKWebView _beginAutomaticLiveResizeIfNeeded]):

Refactor this so that we debounce the new "end live resize" timer instead of 
just early returning
when the size changes.

(-[WKWebView _rescheduleEndLiveResizeTimer]):
(-[WKWebView _acquireResizeAssertionForReason:]):

Remove unnecessary runtime staging, since support for this SPI has long shipped.

(-[WKWebView _endLiveResize]):
(-[WKWebView _destroyEndLiveResizeObserver]): Deleted.

Replace this notification observer with an `NSTimer` instead, which is 
debounced whenever the web
view size changes, and otherwise fires after a fixed delay of half a second.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to