[webkit-changes] [WebKit/WebKit] fff0ad: REGRESSION(276009 at main) NSRangeException thrown fr...

Jer Noble noreply at github.com
Fri Apr 5 19:56:58 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fff0ad4731a7aa82055ab033829f8e13cc09f3eb
      https://github.com/WebKit/WebKit/commit/fff0ad4731a7aa82055ab033829f8e13cc09f3eb
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M Source/WebKit/UIProcess/ApplicationStateTracker.mm

  Log Message:
  -----------
  REGRESSION(276009 at main) NSRangeException thrown from -[WKUIWindowSceneObserver setObservedWindow:]
https://bugs.webkit.org/show_bug.cgi?id=272250
rdar://125653988

Reviewed by Eric Carlson.

Crashlogs say this NSRangeException is thrown when trying to call -removeObserver:withKeyPath: on _window,
with the error message saying the caller is not registered as an observer in the first place.

To be absolutely sure that we aren't accidentally messaging nil when registering ourselves as an observer,
store both the new window and old window in RetainPtrs. There doesn't appear to be a code path by which
we can accidentally un-register twice, but just in case, wrap the call to -removeObserver:withKeyPath: in
a @try/@catch block.

* Source/WebKit/UIProcess/ApplicationStateTracker.mm:
(-[WKUIWindowSceneObserver setObservedWindow:]):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list