Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d2610dc0dedb035d810463243743ee6c12136d2e https://github.com/WebKit/WebKit/commit/d2610dc0dedb035d810463243743ee6c12136d2e Author: Brian Weinstein <bweinst...@apple.com> Date: 2023-01-06 (Fri, 06 Jan 2023)
Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in M 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: ----------- Route the rest of the WebNavigation events from WebFrameLoaderClient to the extension event listeners. https://bugs.webkit.org/show_bug.cgi?id=249683 rdar://102820594 Reviewed by Timothy Hatcher. This patch allows WebFrameLoaderClient to tell web extensions code about the various stages of frame loading. The flow is: - WebFrameLoaderClient sends a message to the WebExtensionController using IPC. - WebExtensionController iterates over all the WebExtensionContexts and: - Sends a message to their WebExtensionContextProxy using IPC. WebFrameLoaderClient::dispatchDidCommitLoad -> onCommitted and onDOMContentLoaded WebFrameLoaderClient::dispatchDidFinishLoad -> onCompleted WebFrameLoaderClient::dispatchDidFailLoad -> onErrorOccurred And then the WebExtensionContextProxy will fire the event on the extension pages that listen to it. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::didCommitLoadForFrame): Call into the WebExtensionContextProxy. (WebKit::WebExtensionController::didFinishLoadForFrame): Ditto. (WebKit::WebExtensionController::didFailLoadForFrame): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in: * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: (WebKit::WebExtensionContextProxy::dispatchWebNavigationOnCommittedEvent): Iterate the namespace objects and call the relevant listeners. (WebKit::WebExtensionContextProxy::dispatchWebNavigationOnDOMContentLoadedEvent): Ditto. (WebKit::WebExtensionContextProxy::dispatchWebNavigationOnCompletedEvent): Ditto. (WebKit::WebExtensionContextProxy::dispatchWebNavigationOnErrorOccurredEvent): Ditto. * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm: (WebKit::WebExtensionControllerProxy::didCommitLoadForFrame): Send a message to the WebExtensionController in the UI process. (WebKit::WebExtensionControllerProxy::didFinishLoadForFrame): Ditto. (WebKit::WebExtensionControllerProxy::didFailLoadForFrame): Ditto. * 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::dispatchDidCommitLoad): Call into WebExtensionControllerProxy. (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): Ditto. (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ditto. Canonical link: https://commits.webkit.org/258594@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes