From c77f3de099aeb30ae08b66e966055df7fb7e785f Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Thu, 4 Apr 2024 21:31:59 +0000 Subject: [PATCH] Bug 1879547 - Add promptPermissions in GeckoView. r=willdurand Differential Revision: https://phabricator.services.mozilla.com/D205757 --- .../gecko/webextension/GeckoWebExtension.kt | 2 +- .../gecko/webextension/MockWebExtension.kt | 2 +- mobile/android/geckoview/api.txt | 3 ++- .../org/mozilla/geckoview/WebExtension.java | 19 +++++++++++++++++-- .../mozilla/geckoview/doc-files/CHANGELOG.md | 8 ++++++-- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/webextension/GeckoWebExtension.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/webextension/GeckoWebExtension.kt index b4465e215d8c..2c5eef52c447 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/webextension/GeckoWebExtension.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/webextension/GeckoWebExtension.kt @@ -365,7 +365,7 @@ class GeckoWebExtension( creatorUrl = it.creatorUrl, reviewUrl = it.reviewUrl, version = it.version, - permissions = it.permissions.toList(), + permissions = it.promptPermissions.toList(), optionalPermissions = it.optionalPermissions.toList(), grantedOptionalPermissions = it.grantedOptionalPermissions.toList(), grantedOptionalOrigins = it.grantedOptionalOrigins.toList(), diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/webextension/MockWebExtension.kt b/mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/webextension/MockWebExtension.kt index 636b0c36cb30..c90be13bc39b 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/webextension/MockWebExtension.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/webextension/MockWebExtension.kt @@ -63,7 +63,7 @@ fun mockNativeWebExtensionMetaData( ): WebExtension.MetaData { val metadata: WebExtension.MetaData = mock() ReflectionUtils.setField(metadata, "icon", icon) - ReflectionUtils.setField(metadata, "permissions", permissions) + ReflectionUtils.setField(metadata, "promptPermissions", permissions) ReflectionUtils.setField(metadata, "optionalPermissions", optionalPermissions) ReflectionUtils.setField(metadata, "grantedOptionalPermissions", grantedOptionalPermissions) ReflectionUtils.setField(metadata, "optionalOrigins", optionalOrigins) diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt index 30c4d3558580..565b42ae45d9 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt @@ -2689,7 +2689,8 @@ package org.mozilla.geckoview { field @NonNull public final String[] optionalPermissions; field @Nullable public final String optionsPageUrl; field @NonNull public final String[] origins; - field @NonNull public final String[] permissions; + field @Deprecated @DeprecationSchedule(id="web-extension-permission",version=131) @NonNull public final String[] permissions; + field @NonNull public final String[] promptPermissions; field public final int reviewCount; field @Nullable public final String reviewUrl; field public final int signedState; diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtension.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtension.java index 1caa5508edfd..bf5d431cf14b 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtension.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtension.java @@ -1811,13 +1811,26 @@ public class WebExtension { public final @NonNull Image icon; /** - * API permissions requested or granted to this extension. + * List of permissions to be prompted to the users. + * + *

Permission identifiers match entries in the manifest, see + * API permissions . + * + * @deprecated Use {@link MetaData#promptPermissions} instead. + */ + @Deprecated + @DeprecationSchedule(id = "web-extension-permission", version = 131) + public final @NonNull String[] permissions; + + /** + * List of permissions to be prompted to the users. * *

Permission identifiers match entries in the manifest, see * API permissions . */ - public final @NonNull String[] permissions; + public final @NonNull String[] promptPermissions; /** * API