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

Reply via email to