diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
commit | d8bbc7858622b6d9c278469aab701ca0b609cddf (patch) | |
tree | eff41dc61d9f714852212739e6b3738b82a2af87 /mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs | |
parent | Releasing progress-linux version 125.0.3-1~progress7.99u1. (diff) | |
download | firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip |
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs')
-rw-r--r-- | mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs b/mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs index 97538fd6bb..749f753626 100644 --- a/mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs +++ b/mobile/android/modules/geckoview/GeckoViewWebExtension.sys.mjs @@ -1222,6 +1222,61 @@ export var GeckoViewWebExtension = { break; } + case "GeckoView:WebExtension:AddOptionalPermissions": { + const { extensionId, permissions, origins } = aData; + try { + const addon = await this.extensionById(extensionId); + const normalized = lazy.ExtensionPermissions.normalizeOptional( + { + permissions, + origins, + }, + addon.optionalPermissions + ); + const policy = WebExtensionPolicy.getByID(addon.id); + await lazy.ExtensionPermissions.add( + extensionId, + normalized, + policy?.extension + ); + const extension = await exportExtension( + addon, + addon.userPermissions, + /* aSourceURI */ null + ); + aCallback.onSuccess({ extension }); + } catch (ex) { + aCallback.onError(`Unexpected error: ${ex}`); + } + break; + } + + case "GeckoView:WebExtension:RemoveOptionalPermissions": { + const { extensionId, permissions, origins } = aData; + try { + const addon = await this.extensionById(extensionId); + const normalized = lazy.ExtensionPermissions.normalizeOptional( + { permissions, origins }, + addon.optionalPermissions + ); + const policy = WebExtensionPolicy.getByID(addon.id); + await lazy.ExtensionPermissions.remove( + addon.id, + normalized, + policy?.extension + ); + const extension = await exportExtension( + addon, + addon.userPermissions, + /* aSourceURI */ null + ); + aCallback.onSuccess({ extension }); + } catch (ex) { + aCallback.onError(`Unexpected error: ${ex}`); + } + break; + } + case "GeckoView:WebExtension:Install": { const { locationUri, installId, installMethod } = aData; let uri; |