Bug 1879547 - Add promptPermissions in GeckoView. r=willdurand

Differential Revision: https://phabricator.services.mozilla.com/D205757
This commit is contained in:
Arturo Mejia 2024-04-04 21:31:59 +00:00
parent c6eeaa9134
commit c77f3de099
5 changed files with 27 additions and 7 deletions

View File

@ -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(),

View File

@ -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)

View File

@ -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;

View File

@ -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.
*
* <p>Permission identifiers match entries in the manifest, see <a
* href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">
* API permissions </a>.
*
* @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.
*
* <p>Permission identifiers match entries in the manifest, see <a
* href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">
* API permissions </a>.
*/
public final @NonNull String[] permissions;
public final @NonNull String[] promptPermissions;
/**
* API <a
@ -2043,6 +2056,7 @@ public class WebExtension {
protected MetaData() {
icon = null;
permissions = null;
promptPermissions = null;
optionalPermissions = null;
grantedOptionalPermissions = null;
grantedOptionalOrigins = null;
@ -2077,6 +2091,7 @@ public class WebExtension {
/* package */ MetaData(final GeckoBundle bundle) {
// We only expose permissions that the embedder should prompt for
permissions = bundle.getStringArray("promptPermissions");
promptPermissions = bundle.getStringArray("promptPermissions");
optionalPermissions = bundle.getStringArray("optionalPermissions");
grantedOptionalPermissions = bundle.getStringArray("grantedOptionalPermissions");
optionalOrigins = bundle.getStringArray("optionalOrigins");

View File

@ -23,7 +23,9 @@ while a user gesture was active (e.g., a tap).
- ⚠️ Deprecated [`RuntimeTelemetry`][125.5], [`GeckoRuntimeSettings.getTelemetryDelegate`][125.6] and [`GeckoRuntimeSettings.telemetryDelegate`][125.7], to be removed in v127.
([bug 1877836]({{bugzilla}}1877836))
- Added [`WebExtension.MetaData.grantedOptionalPermissions`][125.8] and [`WebExtension.MetaData.grantedOptionalOrigins`][125.9] which expose the granted optional and origin optional permissions of an extension ([bug 1879543]({{bugzilla}}1879543)).
- Added [`WebExtension.MetaData.promptPermissions`][125.10] which exposes a list of permissions which needs to be prompted to users ([bug 1879547]({{bugzilla}}1879547)).
- ⚠️ Deprecate the [`WebExtension.MetaData.permissions`][125.11] API to be removed in v131. Please use `WebExtension.MetaData.promptPermissions`][125.10] instead.
-
[125.1]: {{javadoc_uri}}/GeckoSession.NavigationDelegate#onLocationChange(org.mozilla.geckoview.GeckoSession,java.lang.String,java.util.List)
[125.2]: {{javadoc_uri}}/GeckoSession.NavigationDelegate#onLocationChange(org.mozilla.geckoview.GeckoSession,java.lang.String,java.util.List,boolean)
[125.3]: {{javadoc_uri}}/WebExtension.MetaData.html#optionalPermissions
@ -33,6 +35,8 @@ while a user gesture was active (e.g., a tap).
[125.7]: {{javadoc_uri}}/GeckoRuntimeSettings.html#telemetryDelegate
[125.8]: {{javadoc_uri}}/WebExtension.MetaData.html#grantedOptionalPermissions
[125.9]: {{javadoc_uri}}/WebExtension.MetaData.html#grantedOptionalOrigins
[125.10]: {{javadoc_uri}}/WebExtension.MetaData.html#promptPermissions
[125.11]: {{javadoc_uri}}/WebExtension.MetaData.html#permissions
## v124
@ -1540,4 +1544,4 @@ to allow adding gecko profiler markers.
[65.24]: {{javadoc_uri}}/CrashReporter.html#sendCrashReport(android.content.Context,android.os.Bundle,java.lang.String)
[65.25]: {{javadoc_uri}}/GeckoResult.html
[api-version]: fc9fd590333bebf38058b7abddbb7a860cd6e4de
[api-version]: 2fd39a5dca2bf128d7be5ac7e3980fc439c16113