Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e82bb6d82140825672ab1494b74ca8467f854dd8
      
https://github.com/WebKit/WebKit/commit/e82bb6d82140825672ab1494b74ca8467f854dd8
  Author: Timothy Hatcher <[email protected]>
  Date:   2025-01-13 (Mon, 13 Jan 2025)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M 
Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm
    M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h
    M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm

  Log Message:
  -----------
  Temporary extension resources are not deleted when it is unloaded.
https://webkit.org/b/285871
rdar://142834398

Reviewed by Brian Weinstein.

Delete the extension resources in ~WebExtension if they were extracted from a 
Zip archive
into a temporary directory.

Changed the test manager to unload extension contexts on dealloc, so the 
cleanup code paths get
exercised in testing. This uncovered a case where the extension can load and 
unload so quickly,
the background page loading completions handlers waiting for wakeup don't have 
time to be called,
so they hit the uncalled assertion. Changing these to Function fixes this, 
since they are not
guaranteed to be called.

Moved the Zip file code to the cross-platform WebExtension file, since it is 
not Cocoa specific.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::WebExtension):
(WebKit::convertChromeExtensionToTemporaryZipFile): Deleted.
(WebKit::processFileAndExtractZipArchive): Deleted.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::wakeUpBackgroundContentIfNecessary): Use Function.
(WebKit::WebExtensionContext::wakeUpBackgroundContentIfNecessaryToFireEvents): 
Ditto.
* Source/WebKit/UIProcess/Extensions/WebExtension.cpp:
(WebKit::WebExtension::~WebExtension): Added. Delete temp resources.
(WebKit::convertChromeExtensionToTemporaryZipFile): Added.
(WebKit::WebExtension::processFileAndExtractZipArchive): Added.
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
(WebKit::WebExtension::~WebExtension): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* 
Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, DynamicRules)): 
Use unload on the manager.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, StartupEvent)): Ditto.
(TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, InstalledEvent)): Ditto.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
RegisteredScriptIsInjectedAfterContextReloads)): Ditto.
* Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h:
* Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm:
(-[TestWebExtensionManager dealloc]): Added.
(-[TestWebExtensionManager unload]): Added.

Canonical link: https://commits.webkit.org/288826@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to