[webkit-changes] [WebKit/WebKit] 972a6c: Implement browser.storageArea.getKeys() for Web Ex...

Moe Bazzi noreply at github.com
Wed Oct 2 22:59:41 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 972a6ce2e9ed3c6b75eedc37b7d53112c036fef1
      https://github.com/WebKit/WebKit/commit/972a6ce2e9ed3c6b75eedc37b7d53112c036fef1
  Author: Moe Bazzi <bazzimoe3 at gmail.com>
  Date:   2024-10-02 (Wed, 02 Oct 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIStorageArea.idl
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm

  Log Message:
  -----------
  Implement browser.storageArea.getKeys() for Web Extension Storage API.
https://bugs.webkit.org/show_bug.cgi?id=280275

Reviewed by Timothy Hatcher.

This patch implements a web extension API to retrieve all keys for a given storage area in the
browser.storage API.

WECG Proposal: https://github.com/w3c/webextensions/blob/main/proposals/storage-get-keys.md
WECG Original Issue: w3c/webextensions#601

This patch also includes the following clean-ups:
- Change 'auto' to 'auto *' when assigning the result of WebExtensionContext::storageForType()
 to explicitly denote pointer type.
- Update strongSelf retrieval to in _WKWebExtensionStorageSQLiteStore.mm methods to leverage
 ARC in extension code, allowing the use of Objective-C pointers instead of RetainPtr, which
is only necessary in other parts of WebKit that do not utilize ARC.
- Remove unnecessary explicit template types from WeakObjCPtr in _WKWebExtensionStorageSQLiteStore.

* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm:
(WebKit::WebExtensionContext::storageGet):
(WebKit::WebExtensionContext::storageGetKeys):
(WebKit::WebExtensionContext::storageGetBytesInUse):
* Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.mm:
(-[_WKWebExtensionStorageSQLiteStore getAllKeys:]):
(-[_WKWebExtensionStorageSQLiteStore getValuesForKeys:completionHandler:]):
(-[_WKWebExtensionStorageSQLiteStore getStorageSizeForKeys:completionHandler:]):
(-[_WKWebExtensionStorageSQLiteStore getStorageSizeForAllKeysIncludingKeyedData:withCompletionHandler:]):
(-[_WKWebExtensionStorageSQLiteStore setKeyedData:completionHandler:]):
(-[_WKWebExtensionStorageSQLiteStore deleteValuesForKeys:completionHandler:]):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm:
(WebKit::WebExtensionAPIStorageArea::getKeys):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIStorageArea.idl:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIStorage, Errors)):
(TestWebKitAPI::TEST(WKWebExtensionAPIStorage, GetKeys)):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list