[webkit-changes] [WebKit/WebKit] 75bd7a: Add support for runtime.sendMessage from Web Exten...

Timothy Hatcher noreply at github.com
Fri Sep 22 10:08:52 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 75bd7acd2bff1ab8cf96511d44cca4a8f690e658
      https://github.com/WebKit/WebKit/commit/75bd7acd2bff1ab8cf96511d44cca4a8f690e658
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Scripts/webkit/messages.py
    A Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h
    A Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in
    M Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h
    M Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.h
    M Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.serialization.in
    M Source/WebKit/Shared/Extensions/WebExtensionUtilities.h
    M Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIEventCocoa.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIRuntime.idl
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm

  Log Message:
  -----------
  Add support for runtime.sendMessage from Web Extension content scripts.
https://webkit.org/b/261909
rdar://problem/115864149

Reviewed by Brent Fulgham.

* Adds support for runtime.sendMessage and main world firing of onMessage events.
* Tracks event listeners by type and what world they are registered in, so we can get
  the appropriate processes to dispatch the events.
* Added better support for the sender object and tests for the values it includes.

* Source/WebKit/DerivedSources-input.xcfilelist: Added WebExtensionContentWorldType.serialization.in.
* Source/WebKit/DerivedSources.make: Added WebExtensionContentWorldType.serialization.in.
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared): Added WebExtensionContentWorldType.
* Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in: Added.
* Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h:
* Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.h:
* Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.serialization.in:
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.h:
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIEventCocoa.mm:
(WebKit::WebExtensionContext::addListener): Added contentWorldType.
(WebKit::WebExtensionContext::removeListener): Ditto.
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: Added.
(WebKit::WebExtensionContext::runtimeSendMessage): Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsSendMessage):Added more sender parameters.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm:
(WebKit::WebExtensionTab::processes const): Added contentWorldType.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
(WebKit::WebExtensionContext::pageListensForEvent const): Added contentWorldType.
(WebKit::WebExtensionContext::processes const): Ditto.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::sendToProcessesForEvent): Pass Main for contentWorldType. This
is only used for main world events currently and avoided touching a bunch of call sites.
(WebKit::WebExtensionContext::sendToContentScriptProcessesForEvent): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionTab.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj: Added WebExtensionContentWorldType.*.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm:
(WebKit::WebExtensionAPIEvent::addListener): Added contentWorldType.
(WebKit::WebExtensionAPIEvent::removeListener): Ditto.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm:
(WebKit::WebExtensionAPIRuntime::sendMessage): Added.
(WebKit::toWebAPI): Moved here since it is only used here.
(WebKit::WebExtensionContextProxy::dispatchRuntimeMessageEvent): .
(WebKit::WebExtensionContextProxy::dispatchRuntimeMainWorldMessageEvent): Added.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
(WebKit::WebExtensionAPITabs::sendMessage): Added more sender parameters.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationEventCocoa.mm:
(WebKit::WebExtensionAPIWebNavigationEvent::addListener): Added contentWorldType.
(WebKit::WebExtensionAPIWebNavigationEvent::removeListener): Ditto.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsEventCocoa.mm:
(WebKit::WebExtensionAPIWindowsEvent::addListener): Added contentWorldType.
(WebKit::WebExtensionAPIWindowsEvent::removeListener): Ditto.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h:
(WebKit::WebExtensionAPIObject::contentWorldType const): Added.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIRuntime.idl:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list