From 69e90174deb15bd9129348f3fa34ae6cf1b1abbf Mon Sep 17 00:00:00 2001 From: Luca Greco Date: Thu, 6 Jun 2024 14:29:23 +0200 Subject: [PATCH] feat: Imported Firefox 127 API schema data (#5315) Co-authored-by: William Durand --- .../imported/declarative_net_request.json | 36 ++++ src/schema/imported/geckoProfiler.json | 3 +- src/schema/imported/management.json | 3 +- src/schema/imported/runtime.json | 158 ++++++++++++++++++ 4 files changed, 198 insertions(+), 2 deletions(-) diff --git a/src/schema/imported/declarative_net_request.json b/src/schema/imported/declarative_net_request.json index 00837ce18b4..3157000f54b 100644 --- a/src/schema/imported/declarative_net_request.json +++ b/src/schema/imported/declarative_net_request.json @@ -152,6 +152,18 @@ "description": "Returns the current set of dynamic rules for the extension.", "async": "callback", "parameters": [ + { + "allOf": [ + { + "$ref": "#/types/GetRulesFilter" + }, + { + "name": "filter", + "optional": true, + "description": "An object to filter the set of dynamic rules for the extension." + } + ] + }, { "name": "callback", "type": "function", @@ -173,6 +185,18 @@ "description": "Returns the current set of session scoped rules for the extension.", "async": "callback", "parameters": [ + { + "allOf": [ + { + "$ref": "#/types/GetRulesFilter" + }, + { + "name": "filter", + "optional": true, + "description": "An object to filter the set of session scoped rules for the extension." + } + ] + }, { "name": "callback", "type": "function", @@ -832,6 +856,18 @@ "condition", "action" ] + }, + "GetRulesFilter": { + "type": "object", + "properties": { + "ruleIds": { + "type": "array", + "description": "If specified, only rules with matching IDs are included.", + "items": { + "type": "integer" + } + } + } } } } diff --git a/src/schema/imported/geckoProfiler.json b/src/schema/imported/geckoProfiler.json index 7467186f577..3dd2fe80fe1 100644 --- a/src/schema/imported/geckoProfiler.json +++ b/src/schema/imported/geckoProfiler.json @@ -185,7 +185,8 @@ "power", "responsiveness", "cpufreq", - "bandwidth" + "bandwidth", + "memory" ] }, "supports": { diff --git a/src/schema/imported/management.json b/src/schema/imported/management.json index ce9ed6c94ca..448950644b8 100644 --- a/src/schema/imported/management.json +++ b/src/schema/imported/management.json @@ -339,12 +339,13 @@ ] }, "ExtensionInstallType": { - "description": "How the extension was installed. One of
development: The extension was loaded unpacked in developer mode,
normal: The extension was installed normally via an .xpi file,
sideload: The extension was installed by other software on the machine,
other: The extension was installed by other means.", + "description": "How the extension was installed. One of
development: The extension was loaded unpacked in developer mode,
normal: The extension was installed normally via an .xpi file,
sideload: The extension was installed by other software on the machine,
admin: The extension was installed by policy,
other: The extension was installed by other means.", "type": "string", "enum": [ "development", "normal", "sideload", + "admin", "other" ] }, diff --git a/src/schema/imported/runtime.json b/src/schema/imported/runtime.json index 2cfdd8853c1..b43b29967ff 100644 --- a/src/schema/imported/runtime.json +++ b/src/schema/imported/runtime.json @@ -54,6 +54,39 @@ } ] }, + { + "name": "getContexts", + "type": "function", + "description": "Fetches information about active contexts associated with this extension", + "async": "callback", + "parameters": [ + { + "allOf": [ + { + "$ref": "#/types/ContextFilter" + }, + { + "name": "filter", + "description": "A filter to find matching context." + } + ] + }, + { + "type": "function", + "name": "callback", + "parameters": [ + { + "name": "contexts", + "type": "array", + "items": { + "$ref": "#/types/ExtensionContext" + }, + "description": "The matching contexts, if any." + } + ] + } + ] + }, { "name": "openOptionsPage", "type": "function", @@ -700,6 +733,131 @@ } }, "types": { + "ContextFilter": { + "min_manifest_version": 3, + "type": "object", + "description": "A filter to match against existing extension context. Matching contexts must match all specified filters.", + "properties": { + "contextIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "contextTypes": { + "type": "array", + "items": { + "$ref": "#/types/ContextType" + } + }, + "documentIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "documentOrigins": { + "type": "array", + "items": { + "type": "string" + } + }, + "documentUrls": { + "type": "array", + "items": { + "type": "string" + } + }, + "frameIds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tabIds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "windowIds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "incognito": { + "type": "boolean" + } + } + }, + "ContextType": { + "type": "string", + "enum": [ + "BACKGROUND", + "POPUP", + "SIDE_PANEL", + "TAB" + ], + "description": "The type of extension view." + }, + "ExtensionContext": { + "type": "object", + "description": "A context hosting extension content", + "properties": { + "contextId": { + "type": "string", + "description": "An unique identifier associated to this context" + }, + "contextType": { + "allOf": [ + { + "$ref": "#/types/ContextType" + }, + { + "description": "The type of the context" + } + ] + }, + "documentId": { + "type": "string", + "unsupported": true, + "description": "An UUID for the document associated with this context, or undefined if it is not hosted in a document" + }, + "documentOrigin": { + "type": "string", + "description": "The origin of the document associated with this context, or undefined if it is not hosted in a document" + }, + "documentUrl": { + "type": "string", + "description": "The URL of the document associated with this context, or undefined if it is not hosted in a document" + }, + "incognito": { + "type": "boolean", + "description": "Whether the context is associated with an private browsing context." + }, + "frameId": { + "type": "integer", + "description": "The frame ID for this context, or -1 if it is not hosted in a frame." + }, + "tabId": { + "type": "integer", + "description": "The tab ID for this context, or -1 if it is not hosted in a tab." + }, + "windowId": { + "type": "integer", + "description": "The window ID for this context, or -1 if it is not hosted in a window." + } + }, + "required": [ + "contextId", + "contextType", + "incognito", + "frameId", + "tabId", + "windowId" + ] + }, "Port": { "type": "object", "allowedContexts": [