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

Reply via email to