[webkit-changes] [WebKit/WebKit] 153a79: Crash at com.apple.WebKit: WebKit::WebExtensionCon...

Timothy Hatcher noreply at github.com
Wed Feb 7 15:40:26 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 153a7995798830acddfc99d26d0a087a5f3de1fa
      https://github.com/WebKit/WebKit/commit/153a7995798830acddfc99d26d0a087a5f3de1fa
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-02-07 (Wed, 07 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h

  Log Message:
  -----------
  Crash at com.apple.WebKit: WebKit::WebExtensionController::wrapper().
https://webkit.org/b/268943
rdar://122480360

Reviewed by Brian Weinstein.

Add null checks for the extension controller, since the extension context
might not be loaded yet, or has since unloaded.

Also we can't cache if the delegate responds to the present method, since
the extension controller can change or the delegate can change. Also check
immediately before it is used.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::WebExtensionAction): Don't cache the responds result.
(WebKit::WebExtensionAction::fallbackAction const): Add null check for consistency.
(WebKit::WebExtensionAction::canProgrammaticallyPresentPopup const): Added.
(WebKit::WebExtensionAction::presentPopupWhenReady): Check canProgrammaticallyPresentPopup().
(WebKit::WebExtensionAction::readyToPresentPopup): Check delegate and null check controller.
* Source/WebKit/UIProcess/Extensions/WebExtensionAction.h:

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




More information about the webkit-changes mailing list