Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 290f26cb9bdcb5fe32a70d108af0eb6d4702720f
https://github.com/WebKit/WebKit/commit/290f26cb9bdcb5fe32a70d108af0eb6d4702720f
Author: Kiara Rose <[email protected]>
Date: 2023-01-06 (Fri, 06 Jan 2023)
Changed paths:
M Source/WTF/wtf/HashSet.h
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
A
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm
A
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h
A Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPermissions.h
M
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl
M
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIPermissions.idl
Log Message:
-----------
Add support for the Web Extensions Permissions API.
https://bugs.webkit.org/show_bug.cgi?id=248555
Reviewed by Timothy Hatcher.
This patch adds the implementation for the Permissions APIs defined in the
WebExtensionAPIPermissions idl file.
This includes consulting the WebExtensionContext for information on the current
permissions the
extension has access to, and reporting that information back to WebProcess.
* Source/WTF/wtf/HashSet.h:
(WTF::W>::isSubset):
Checks if the current set is a subset of a given set.
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
*
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm:
Added.
(WebKit::WebExtensionContext::getAll):
Get all the current granted permissions and match patterns for the extension.
(WebKit::WebExtensionContext::contains):
Checks that the current permissions/matches match the given permissions and
match patterns.
(WebKit::WebExtensionContext::permissionsRequest):
https://webkit.org/b/250135 is being used to track adding support for
permissions.request().
(WebKit::WebExtensionContext::permissionsRemove):
Removes access for specified permissions and origins.
(WebKit::WebExtensionContext::parseMatchPatterns):
Parsing the input HashSet of origins and populates a MatchPatternSet.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::hasPermissions):
Checks if the extension has access to a set of permissions and match patterns.
(WebKit::WebExtensionContext::scheduleBackgroundContentToUnload):
Removed code that caused an infinite loop. Implementation being tracked in
https://webkit.org/b/246483.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
*
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm:
(WebKit::WebExtensionAPINamespace::isPropertyAllowed):
(WebKit::WebExtensionAPINamespace::permissions):
Add support for the permissions API.
*
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm:
Added.
(WebKit::WebExtensionAPIPermissions::getAll):
(WebKit::WebExtensionAPIPermissions::contains):
(WebKit::WebExtensionAPIPermissions::request):
(WebKit::WebExtensionAPIPermissions::remove):
(WebKit::WebExtensionAPIPermissions::parseDetailsDictionary):
Populates a set of permissions and origins to pass to the UIProcess.
(WebKit::WebExtensionAPIPermissions::verifyRequestedPermissions):
Checks that the permissions being requested/removed are valid.
(WebKit::WebExtensionAPIPermissions::validatePermissionsDetails):
Validates the data passed in. Check that the permissions requested are
supported.
(WebKit::WebExtensionAPIPermissions::onAdded):
(WebKit::WebExtensionAPIPermissions::onRemoved):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPermissions.h:
Copied from Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h.
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIPermissions.idl:
Canonical link: https://commits.webkit.org/258552@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes