Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1b6d01676f1b9105f5b0ed848fdb25810f729822 https://github.com/WebKit/WebKit/commit/1b6d01676f1b9105f5b0ed848fdb25810f729822 Author: Timothy Hatcher <timo...@apple.com> Date: 2025-02-27 (Thu, 27 Feb 2025)
Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm Log Message: ----------- Web Extension content scripts can be injected multiple times. https://webkit.org/b/288749 rdar://145784559 Reviewed by Brian Weinstein. Prevent addInjectedContent() methods from injecting until the load finishes and it called the main addInjectedContent() entry point. When granting permissions after load, but before the storage move completed, the newly granted patterns were injecting content and then reinjecting the same content later. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::load): Set safeToInjectContent once storage moves before the main call to addInjectedContent(). (WebKit::WebExtensionContext::unload): Reset safeToInjectContent. (WebKit::WebExtensionContext::setHasAccessToPrivateData): Check safeToInjectContent(). (WebKit::WebExtensionContext::addInjectedContent): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::safeToInjectContent const): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIScripting, InjectedOnlyOnce)): Added. Canonical link: https://commits.webkit.org/291280@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes