Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a4a63949921ef119388c9e154b743ad928ebf47f
      
https://github.com/WebKit/WebKit/commit/a4a63949921ef119388c9e154b743ad928ebf47f
  Author: Timothy Hatcher <[email protected]>
  Date:   2024-09-10 (Tue, 10 Sep 2024)

  Changed paths:
    M Source/WTF/wtf/CallbackAggregator.h
    M Source/WTF/wtf/WeakObjCPtr.h
    M Source/WebKit/Platform/spi/Cocoa/FoundationSPI.h
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionMessagePort.h

  Log Message:
  -----------
  Add support for nativeMessaging with NSExtension messages.
https://webkit.org/b/262081
rdar://problem/116022628

Reviewed by Brian Weinstein.

If the app does not implement WKWebExtensionControllerDelegate methods for 
native messages, fall back to
sending them directly via NSExtension to align with Safari’s behavior.

Manual testing performed with various extensions like 1Password and 
Userscripts. API tests were not added due
to challenges with testing bundle loading and NSExtension.

* Source/WTF/wtf/CallbackAggregator.h:
(WTF::EagerCallbackAggregator): Use ThreadSafeRefCounted so it can be used in 
threaded code, like NSExtension blocks.
* Source/WTF/wtf/WeakObjCPtr.h: Added template to allow making a WeakObjCPtr 
without a type like RetainPtr.
* Source/WebKit/Platform/spi/Cocoa/FoundationSPI.h: Added NSExtension.
* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
(WebKit::WebExtensionContext::sendNativeMessage): Added. Added NSExtension 
fallback.
(WebKit::WebExtensionContext::runtimeSendNativeMessage): Refactored into 
sendNativeMessage().
(WebKit::WebExtensionContext::runtimeConnectNative): Fallback to using 
sendNativeMessage.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::closePopup): Drive-by ASSERT fix I was hitting 
with Userscripts.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm:
(WebKit::WebExtensionMessagePort::remove): Protect this since 
removeNativePort() might drop the last reference.
(WebKit::WebExtensionMessagePort::sendMessage): Made completionHandler optional.
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
(WebKit::WebExtension::bundle const): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionMessagePort.h:

Canonical link: https://commits.webkit.org/283446@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