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": [