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