Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6896e90a42a4d8ba60aabdbdbed0aa275a328cf9 https://github.com/WebKit/WebKit/commit/6896e90a42a4d8ba60aabdbdbed0aa275a328cf9 Author: Brian Weinstein <bweinst...@apple.com> Date: 2022-12-20 (Tue, 20 Dec 2022)
Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in M Source/WebKit/WebKit.xcodeproj/project.pbxproj A Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp Log Message: ----------- Make sendToProcessesForEvent compile correctly when used. https://bugs.webkit.org/show_bug.cgi?id=249514 <rdar://problem/102820594> Reviewed by Timothy Hatcher. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::sendToProcessesForEvent): Fire the onBeforeNavigateEvent when a frame starts to load content. https://bugs.webkit.org/show_bug.cgi?id=249514 rdar://102820594 Reviewed by Timothy Hatcher. When a frame begins navigation, WebKit tells all extensions about it using the following flow. - WebFrameLoaderClient sends a message to the WebExtensionController using IPC. - WebExtensionController iterates over all the WebExtensionContexts and: - Sends a message to their WebExtensionContextProxy using IPC. The WebExtensionContextProxy then handles this call by firing the onBeforeNavigate event on the extension. There are some loose ends here: 1) We are firing events for some pages we shouldn't 2) The tab and frame IDs that we are vending to the listener aren't correct (they are identifiers, but not ones that have been normalized for the required context) 3) We should be passing more information in the details dictionary. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::didStartProvisionalLoadForFrame): Tell every extension context about the event. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: Copied from Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in. (WebKit::WebExtensionContextProxy::dispatchWebNavigationOnBeforeNavigateEvent): Create a details dictionary and fire the "onBeforeNavigate" event. * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm: (WebKit::WebExtensionControllerProxy::didStartProvisionalLoadForFrame): Tell the UIProcess about this. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in: * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: * Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad): Tell the extensions controller about this. Canonical link: https://commits.webkit.org/258163@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes