Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c370224a221cafc67bfde137de67c887bce864b6
https://github.com/WebKit/WebKit/commit/c370224a221cafc67bfde137de67c887bce864b6
Author: Timothy Hatcher <[email protected]>
Date: 2022-11-18 (Fri, 18 Nov 2022)
Changed paths:
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
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/WebProcessPool.h
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
Log Message:
-----------
Fix MessageReceivers for Web Extensions.
https://bugs.webkit.org/show_bug.cgi?id=248098
Reviewed by Brian Weinstein.
Use the WebProcessPool instead of WebProcessProxy to register MessageReceivers
in the UIProcess.
The previous approach was not following the WKWebView process change when it
navigated.
Also use WeakPtr in the global HashMaps that track the controllers and
contexts, this lets
us eliminate some code that manages the map since the WeakPtr will clear on
destruct already.
This is also true for the MessageReceiverMap.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::webViewWebContentProcessDidTerminate): Drive-by
ASSERT fix when the
background tries to load again.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::load):
(WebKit::WebExtensionController::unload):
(WebKit::WebExtensionController::addPage):
(WebKit::WebExtensionController::removePage):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
(WebKit::webExtensionContexts):
(WebKit::WebExtensionContext::WebExtensionContext):
(WebKit::WebExtensionContext::~WebExtensionContext): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp:
(WebKit::webExtensionControllers):
(WebKit::WebExtensionController::WebExtensionController):
(WebKit::WebExtensionController::~WebExtensionController): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
(WebKit::WebExtensionController::sendToAllProcesses):
* Source/WebKit/UIProcess/WebProcessPool.h: Added operator == and != to make
comparison easier.
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp:
(WebKit::webExtensionContextProxies):
(WebKit::WebExtensionContextProxy::get):
(WebKit::WebExtensionContextProxy::getOrCreate):
(WebKit::WebExtensionContextProxy::WebExtensionContextProxy):
(WebKit::WebExtensionContextProxy::~WebExtensionContextProxy): Deleted.
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp:
(WebKit::webExtensionControllerProxies):
(WebKit::WebExtensionControllerProxy::get):
(WebKit::WebExtensionControllerProxy::getOrCreate):
(WebKit::WebExtensionControllerProxy::WebExtensionControllerProxy):
(WebKit::WebExtensionControllerProxy::~WebExtensionControllerProxy): Deleted.
* Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h:
Canonical link: https://commits.webkit.org/256857@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes