Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 001f6f0f95890b04ad8df89594174c8a25bccdf8
      
https://github.com/WebKit/WebKit/commit/001f6f0f95890b04ad8df89594174c8a25bccdf8
  Author: Kiara Rose <kiara_r...@apple.com>
  Date:   2024-03-28 (Thu, 28 Mar 2024)

  Changed paths:
    M 
Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm

  Log Message:
  -----------
  Registered scripts aren't injected when an extension is reloaded
https://bugs.webkit.org/show_bug.cgi?id=266291
rdar://119561550

Reviewed by Brian Weinstein and Timothy Hatcher.

Remove injected content from registered scripts map when an extension unloads.
Without this, we won't inject the scripts when the extension reloads since
`WebExtensionContext::createInjectedContentForScripts()` will fail due to 
duplicate script IDs.

Also, update WebExtensionContext::injectedContents() to include registered 
scripts.
Without this, registered scripts will be removed and won't be re-injected in 
cases
where we call WebExtensionContext::updateInjectedContent().

* 
Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm:
* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
(WebKit::WebExtensionContext::scriptingRegisterContentScripts):
(WebKit::WebExtensionContext::scriptingUpdateRegisteredScripts):
(WebKit::WebExtensionContext::loadRegisteredContentScripts):
(WebKit::WebExtensionContext::createInjectedContentForScripts):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::unload):
(WebKit::WebExtensionContext::injectedContents):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
(WebKit::WebExtensionDynamicScripts::WebExtensionRegisteredScript::WebExtensionRegisteredScript):
 Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h:
(WebKit::WebExtensionDynamicScripts::WebExtensionRegisteredScript::updateInjectedContent):
(WebKit::WebExtensionDynamicScripts::WebExtensionRegisteredScript::injectedContent):
(WebKit::WebExtensionDynamicScripts::WebExtensionRegisteredScript::WebExtensionRegisteredScript):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
RegisteredScriptIsInjectedAfterContextReloads)): Added.

Canonical link: https://commits.webkit.org/276810@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