Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0080cc8363bfda7701fe208f44a51c01385d4f44 https://github.com/WebKit/WebKit/commit/0080cc8363bfda7701fe208f44a51c01385d4f44 Author: Timothy Hatcher <timo...@apple.com> Date: 2022-11-16 (Wed, 16 Nov 2022)
Changed paths: M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp M Source/WebKit/Shared/WebExtensionContextParameters.h M Source/WebKit/Shared/WebExtensionContextParameters.serialization.in M Source/WebKit/Shared/WebExtensionControllerParameters.h M Source/WebKit/Shared/WebExtensionControllerParameters.serialization.in M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h M Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm A Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.messages.in M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp M Source/WebKit/WebProcess/WebPage/WebFrame.cpp M Source/WebKit/WebProcess/WebPage/WebFrame.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h Log Message: ----------- Hook up the WebProcess objects for Web Extensions and propogate some info over. Inject the browser and chrome namespace objects into Web Extension JS contexts. Implement the simple methods on browser.runtime and browser.extension that had FIXMEs. https://bugs.webkit.org/show_bug.cgi?id=247964 Reviewed by Brian Weinstein. * Source/WebKit/Scripts/webkit/messages.py: (serialized_identifiers): * Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp: (IPC::serializedIdentifiers): * Source/WebKit/Shared/WebExtensionContextParameters.h: * Source/WebKit/Shared/WebExtensionContextParameters.serialization.in: * Source/WebKit/Shared/WebExtensionControllerParameters.h: * Source/WebKit/Shared/WebExtensionControllerParameters.serialization.in: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: (WebKit::AuxiliaryProcessProxy::operator== const): Added for easy equality checks. (WebKit::AuxiliaryProcessProxy::operator!= const): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::load): (WebKit::WebExtensionController::unload): (WebKit::WebExtensionController::addPage): (WebKit::WebExtensionController::removePage): * Source/WebKit/UIProcess/Extensions/WebExtension.h: (WebKit::WebExtension::operator!= const): Changed style to match others. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp: (WebKit::WebExtensionContext::parameters const): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::operator== const): Added for easy equality checks. (WebKit::WebExtensionContext::operator!= const): Ditto. (WebKit::WebExtensionContext::baseURL const): * Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp: (WebKit::WebExtensionController::parameters const): * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: (WebKit::WebExtensionController::operator== const): Added for easy equality checks. (WebKit::WebExtensionController::operator!= const): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h: (WebKit::WebExtensionMatchPattern::operator!= const): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp: (WebKit::WebExtensionContextProxy::get): (WebKit::WebExtensionContextProxy::getOrCreate): (WebKit::WebExtensionContextProxy::WebExtensionContextProxy): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp: (WebKit::WebExtensionControllerProxy::get): (WebKit::WebExtensionControllerProxy::getOrCreate): (WebKit::WebExtensionControllerProxy::WebExtensionControllerProxy): (WebKit::WebExtensionControllerProxy::load): Added. (WebKit::WebExtensionControllerProxy::unload): Added. (WebKit::WebExtensionControllerProxy::extensionContext const): * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.messages.in: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::load): Create the content script world. (WebKit::WebExtensionContext::unload): Clear the content script world. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm: (WebKit::WebExtensionAPINamespace::extension): (WebKit::WebExtensionAPINamespace::runtime): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h: (WebKit::WebExtensionAPIObject::WebExtensionAPIObject): (WebKit::WebExtensionAPIObject::extensionContext): * Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h: (WebKit::WebExtensionCallbackHandler): Initialize m_callbackFunction and m_rejectFunction to nullptr. (WebKit::toJSValue): Return JSValueMakeUndefined instead of nullptr for clarity. * Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm: (_generateHeaderFile): Added "#pragma once". (_generateImplementationFile): Use #include instead of #import. * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm: Added. (WebKit::WebExtensionControllerProxy::globalObjectIsAvailableForFrame): Do the injection for pages. (WebKit::WebExtensionControllerProxy::serviceWorkerGlobalObjectIsAvailableForFrame): Do the inejction for service workers. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp: (WebKit::WebExtensionControllerProxy::extensionContext const): Added various lookup methods. * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: * Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchGlobalObjectAvailable): Call webExtensionControllerProxy if it exists. (WebKit::WebFrameLoaderClient::dispatchServiceWorkerGlobalObjectAvailable): Ditto. * Source/WebKit/WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::jsContextForWorld): Added DOMWrapperWorld version. (WebKit::WebFrame::jsContextForServiceWorkerWorld): Ditto. * Source/WebKit/WebProcess/WebPage/WebFrame.h: * Source/WebKit/WebProcess/WebPage/WebPage.h: (WebKit::WebPage::webExtensionControllerProxy const): Added. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm: (WebKit::WebExtensionAPIExtension::isPropertyAllowed): Block getURL in v3 extensions. (WebKit::WebExtensionAPIExtension::getURL): Added implementation. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionAPIRuntime::getURL): Added implementation. (WebKit::WebExtensionAPIRuntime::getManifest): Ditto. (WebKit::WebExtensionAPIRuntime::runtimeIdentifier): Ditto. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h: Fix return type for getManifest(). Canonical link: https://commits.webkit.org/256747@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes