[webkit-changes] [WebKit/WebKit] 657961: Maps sometimes crashes in -[NSPopover showRelative...

Wenson Hsieh noreply at github.com
Thu Feb 15 17:42:50 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6579616b4bb7adc583d862b1fe09586128f9f32e
      https://github.com/WebKit/WebKit/commit/6579616b4bb7adc583d862b1fe09586128f9f32e
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm

  Log Message:
  -----------
  Maps sometimes crashes in -[NSPopover showRelativeToRect:ofView:preferredEdge:] when presenting a date picker
https://bugs.webkit.org/show_bug.cgi?id=269513
rdar://121850106

Reviewed by Aditya Keerthi.

The changes in https://commits.webkit.org/272922@main mitigated cases where rotating on iOS caused the date picker to
lay out incorrectly. In previous iOS releases, this used to cause the date picker to dismiss altogether, so this change
restored that behavior by adding logic to immediately dismiss the date picker when the size of the popover container is
changing outside of the scope of presentation or dismissal (i.e. during rotation).

However, on Catalyst, the `-isBeingPresented` flag is `NO` despite being in the middle of popover presentation, so we
end up immediately dismissing the popover while it's in the middle of presenting, which causes a crash in AppKit.
rdar://123039861 tracks the that the flag returns NO during presentation; for now, we'll address this by avoiding this
codepath altogether on Catalyst, since it's only intended to kick in during device rotation on iOS anyways.

* Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm:

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




More information about the webkit-changes mailing list