Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1163f500e455c86ebf318d2d8db7e03310970ada
      
https://github.com/WebKit/WebKit/commit/1163f500e455c86ebf318d2d8db7e03310970ada
  Author: Jamie Murphy <[email protected]>
  Date:   2026-07-17 (Fri, 17 Jul 2026)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h
    M Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h
    M Source/WebKit/Shared/Protected.h
    M Source/WebKit/Sources.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIEvent.h
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h
    A Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.cpp
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.h
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebPageNamespace.h
    M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.cpp
    M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h
    M 
Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm
    M Source/WebKit/WebProcess/Extensions/Bindings/Scripts/IDLAttributes.json
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITest.idl
    M Source/WebKit/WebProcess/Inspector/WasmDebuggerDispatcher.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Tools/Scripts/webkitpy/style/checker.py

  Log Message:
  -----------
  Port WebExtensionAPITest to CPP
https://bugs.webkit.org/show_bug.cgi?id=302211

Reviewed by Timothy Hatcher.

Port the WebExtensionAPITest JavaScript API to C++. Some components, namely any 
that use a Promise, are still in Cocoa for now as most Promise handling is 
mostly platform-specific in JavaScriptCore (and thus it’s easier to just leave 
any promise or callback code in Cocoa). As well, this provides a way to 
generate the JS interfaces in C++, allowing for them to be built on more 
platforms besides Cocoa. This does not unify the files, as there’s only one API 
built at the moment.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h:
(WebKit::toDebugString):
* Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h:
(WebKit::toAPIString):
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm:
(WebKit::WebExtensionAPIEvent::invokeListenersWithJSONArgument):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm:
(WebKit::WebExtensionAPITest::assertRejects):
(WebKit::WebExtensionAPITest::assertResolves):
(WebKit::WebExtensionAPITest::addTest):
(WebKit::WebExtensionAPITest::startNextTest):
(WebKit::scriptLocation): Deleted.
(WebKit::WebExtensionAPITest::notifyFail): Deleted.
(WebKit::WebExtensionAPITest::notifyPass): Deleted.
(WebKit::WebExtensionAPITest::sendMessage): Deleted.
(WebKit::WebExtensionAPITest::onMessage): Deleted.
(WebKit::WebExtensionAPITest::onTestStarted): Deleted.
(WebKit::WebExtensionAPITest::onTestFinished): Deleted.
(WebKit::WebExtensionAPITest::runWithUserGesture): Deleted.
(WebKit::WebExtensionAPITest::isProcessingUserGesture): Deleted.
(WebKit::debugString): Deleted.
(WebKit::WebExtensionAPITest::log): Deleted.
(WebKit::WebExtensionAPITest::fail): Deleted.
(WebKit::WebExtensionAPITest::succeed): Deleted.
(WebKit::WebExtensionAPITest::assertTrue): Deleted.
(WebKit::WebExtensionAPITest::assertFalse): Deleted.
(WebKit::WebExtensionAPITest::assertDeepEq): Deleted.
(WebKit::combineMessages): Deleted.
(WebKit::WebExtensionAPITest::assertEquals): Deleted.
(WebKit::WebExtensionAPITest::assertEq): Deleted.
(WebKit::WebExtensionAPITest::assertThrows): Deleted.
(WebKit::WebExtensionAPITest::assertSafe): Deleted.
(WebKit::WebExtensionAPITest::assertSafeResolve): Deleted.
(WebKit::WebExtensionAPITest::runTests): Deleted.
(WebKit::WebExtensionAPITest::recordAssertionIfNeeded): Deleted.
(WebKit::WebExtensionContextProxy::dispatchTestMessageEvent): Deleted.
(WebKit::WebExtensionContextProxy::dispatchTestStartedEvent): Deleted.
(WebKit::WebExtensionContextProxy::dispatchTestFinishedEvent): Deleted.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIEvent.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.cpp: Added.
(WebKit::WebExtensionAPITest::scriptLocation):
(WebKit::WebExtensionAPITest::invokeMethod):
(WebKit::WebExtensionAPITest::notifyFail):
(WebKit::WebExtensionAPITest::notifyPass):
(WebKit::WebExtensionAPITest::sendMessage):
(WebKit::WebExtensionAPITest::onMessage):
(WebKit::WebExtensionAPITest::onTestStarted):
(WebKit::WebExtensionAPITest::onTestFinished):
(WebKit::WebExtensionAPITest::runWithUserGesture):
(WebKit::WebExtensionAPITest::isProcessingUserGesture):
(WebKit::WebExtensionAPITest::debugString):
(WebKit::WebExtensionAPITest::log):
(WebKit::WebExtensionAPITest::fail):
(WebKit::WebExtensionAPITest::succeed):
(WebKit::WebExtensionAPITest::assertTrue):
(WebKit::WebExtensionAPITest::assertFalse):
(WebKit::WebExtensionAPITest::assertDeepEq):
(WebKit::WebExtensionAPITest::combineMessages):
(WebKit::WebExtensionAPITest::assertEquals):
(WebKit::WebExtensionAPITest::assertEq):
(WebKit::WebExtensionAPITest::assertThrows):
(WebKit::WebExtensionAPITest::assertSafe):
(WebKit::WebExtensionAPITest::assertSafeResolve):
(WebKit::WebExtensionAPITest::addTest):
(WebKit::WebExtensionAPITest::runTests):
(WebKit::WebExtensionAPITest::recordAssertionIfNeeded):
(WebKit::WebExtensionContextProxy::dispatchTestMessageEvent):
(WebKit::WebExtensionContextProxy::dispatchTestStartedEvent):
(WebKit::WebExtensionContextProxy::dispatchTestFinishedEvent):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebPageNamespace.h:
* Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.cpp:
(WebKit::callWithArguments):
(WebKit::toVector<JSValueRef>):
(WebKit::toVector<Protected<JSValueRef>>):
* Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h:
(WebKit::callObjectWithArguments):
* 
Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm:
(_generateImplementationFile):
(_installAutomaticExceptions):
(_platformType):
(_platformTypeConstructor):
(_platformTypeVariableDeclaration):
* Source/WebKit/WebProcess/Extensions/Bindings/Scripts/IDLAttributes.json:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITest.idl:
* Source/WebKit/WebProcess/Inspector/WasmDebuggerDispatcher.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Tools/Scripts/webkitpy/style/checker.py:
* Source/WebKit/Shared/Protected.h:
(WebKit::Protected::context const):

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



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

Reply via email to