// 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 chrome.sessions
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 0
). 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."
}
}
}
]