summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/schemas/sessions.json
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/schemas/sessions.json')
-rw-r--r--browser/components/extensions/schemas/sessions.json324
1 files changed, 324 insertions, 0 deletions
diff --git a/browser/components/extensions/schemas/sessions.json b/browser/components/extensions/schemas/sessions.json
new file mode 100644
index 0000000000..d554219496
--- /dev/null
+++ b/browser/components/extensions/schemas/sessions.json
@@ -0,0 +1,324 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[
+ {
+ "namespace": "manifest",
+ "types": [
+ {
+ "$extend": "OptionalPermission",
+ "choices": [
+ {
+ "type": "string",
+ "enum": ["sessions"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "namespace": "sessions",
+ "description": "Use the <code>chrome.sessions</code> API to query and restore tabs and windows from a browsing session.",
+ "permissions": ["sessions"],
+ "types": [
+ {
+ "id": "Filter",
+ "type": "object",
+ "properties": {
+ "maxResults": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 25,
+ "optional": true,
+ "description": "The maximum number of entries to be fetched in the requested list. Omit this parameter to fetch the maximum number of entries ($(ref:sessions.MAX_SESSION_RESULTS))."
+ }
+ }
+ },
+ {
+ "id": "Session",
+ "type": "object",
+ "properties": {
+ "lastModified": {
+ "type": "integer",
+ "description": "The time when the window or tab was closed or modified, represented in milliseconds since the epoch."
+ },
+ "tab": {
+ "$ref": "tabs.Tab",
+ "optional": true,
+ "description": "The $(ref:tabs.Tab), if this entry describes a tab. Either this or $(ref:sessions.Session.window) will be set."
+ },
+ "window": {
+ "$ref": "windows.Window",
+ "optional": true,
+ "description": "The $(ref:windows.Window), if this entry describes a window. Either this or $(ref:sessions.Session.tab) will be set."
+ }
+ }
+ },
+ {
+ "id": "Device",
+ "type": "object",
+ "properties": {
+ "info": { "type": "string" },
+ "deviceName": {
+ "type": "string",
+ "description": "The name of the foreign device."
+ },
+ "sessions": {
+ "type": "array",
+ "items": { "$ref": "Session" },
+ "description": "A list of open window sessions for the foreign device, sorted from most recently to least recently modified session."
+ }
+ }
+ }
+ ],
+ "functions": [
+ {
+ "name": "forgetClosedTab",
+ "type": "function",
+ "description": "Forget a recently closed tab.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "windowId",
+ "type": "integer",
+ "description": "The windowId of the window to which the recently closed tab to be forgotten belongs."
+ },
+ {
+ "name": "sessionId",
+ "type": "string",
+ "description": "The sessionId (closedId) of the recently closed tab to be forgotten."
+ }
+ ]
+ },
+ {
+ "name": "forgetClosedWindow",
+ "type": "function",
+ "description": "Forget a recently closed window.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "sessionId",
+ "type": "string",
+ "description": "The sessionId (closedId) of the recently closed window to be forgotten."
+ }
+ ]
+ },
+ {
+ "name": "getRecentlyClosed",
+ "type": "function",
+ "description": "Gets the list of recently closed tabs and/or windows.",
+ "async": "callback",
+ "parameters": [
+ {
+ "$ref": "Filter",
+ "name": "filter",
+ "optional": true,
+ "default": {}
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "sessions",
+ "type": "array",
+ "items": { "$ref": "Session" },
+ "description": "The list of closed entries in reverse order that they were closed (the most recently closed tab or window will be at index <code>0</code>). The entries may contain either tabs or windows."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getDevices",
+ "unsupported": true,
+ "type": "function",
+ "description": "Retrieves all devices with synced sessions.",
+ "async": "callback",
+ "parameters": [
+ {
+ "$ref": "Filter",
+ "name": "filter",
+ "optional": true
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "devices",
+ "type": "array",
+ "items": { "$ref": "Device" },
+ "description": "The list of $(ref:sessions.Device) objects for each synced session, sorted in order from device with most recently modified session to device with least recently modified session. $(ref:tabs.Tab) objects are sorted by recency in the $(ref:windows.Window) of the $(ref:sessions.Session) objects."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "restore",
+ "type": "function",
+ "description": "Reopens a $(ref:windows.Window) or $(ref:tabs.Tab), with an optional callback to run when the entry has been restored.",
+ "async": "callback",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "sessionId",
+ "optional": true,
+ "description": "The $(ref:windows.Window.sessionId), or $(ref:tabs.Tab.sessionId) to restore. If this parameter is not specified, the most recently closed session is restored."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "Session",
+ "name": "restoredSession",
+ "description": "A $(ref:sessions.Session) containing the restored $(ref:windows.Window) or $(ref:tabs.Tab) object."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setTabValue",
+ "type": "function",
+ "description": "Set a key/value pair on a given tab.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "name": "tabId",
+ "description": "The id of the tab that the key/value pair is being set on."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value being set."
+ },
+ {
+ "type": "any",
+ "name": "value",
+ "description": "The value being set."
+ }
+ ]
+ },
+ {
+ "name": "getTabValue",
+ "type": "function",
+ "description": "Retrieve a value that was set for a given key on a given tab.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "name": "tabId",
+ "description": "The id of the tab whose value is being retrieved from."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value."
+ }
+ ]
+ },
+ {
+ "name": "removeTabValue",
+ "type": "function",
+ "description": "Remove a key/value pair that was set on a given tab.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "name": "tabId",
+ "description": "The id of the tab whose key/value pair is being removed."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value."
+ }
+ ]
+ },
+ {
+ "name": "setWindowValue",
+ "type": "function",
+ "description": "Set a key/value pair on a given window.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": -2,
+ "name": "windowId",
+ "description": "The id of the window that the key/value pair is being set on."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value being set."
+ },
+ {
+ "type": "any",
+ "name": "value",
+ "description": "The value being set."
+ }
+ ]
+ },
+ {
+ "name": "getWindowValue",
+ "type": "function",
+ "description": "Retrieve a value that was set for a given key on a given window.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": -2,
+ "name": "windowId",
+ "description": "The id of the window whose value is being retrieved from."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value."
+ }
+ ]
+ },
+ {
+ "name": "removeWindowValue",
+ "type": "function",
+ "description": "Remove a key/value pair that was set on a given window.",
+ "async": true,
+ "parameters": [
+ {
+ "type": "integer",
+ "minimum": -2,
+ "name": "windowId",
+ "description": "The id of the window whose key/value pair is being removed."
+ },
+ {
+ "type": "string",
+ "name": "key",
+ "description": "The key which corresponds to the value."
+ }
+ ]
+ }
+ ],
+ "events": [
+ {
+ "name": "onChanged",
+ "description": "Fired when recently closed tabs and/or windows are changed. This event does not monitor synced sessions changes.",
+ "type": "function"
+ }
+ ],
+ "properties": {
+ "MAX_SESSION_RESULTS": {
+ "value": 25,
+ "description": "The maximum number of $(ref:sessions.Session) that will be included in a requested list."
+ }
+ }
+ }
+]