1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 [ 6 { 7 "namespace": "sessions", 8 "description": "Use the <code>chrome.sessions</code> API to query and restore tabs and windows from a browsing session.", 9 "types": [ 10 { 11 "id": "Filter", 12 "type": "object", 13 "properties": { 14 "maxResults": { 15 "type": "integer", 16 "minimum": 0, 17 "maximum": 25, 18 "optional": true, 19 "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))." 20 } 21 } 22 }, 23 { 24 "id": "Session", 25 "type": "object", 26 "properties": { 27 "lastModified": {"type": "integer", "description": "The time when the window or tab was closed or modified, represented in milliseconds since the epoch."}, 28 "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."}, 29 "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."} 30 } 31 }, 32 { 33 "id": "Device", 34 "type": "object", 35 "properties": { 36 "info": {"type": "string", "nodoc": true}, 37 "deviceName": {"type": "string", "description": "The name of the foreign device."}, 38 "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."} 39 } 40 } 41 ], 42 "functions": [ 43 { 44 "name": "getRecentlyClosed", 45 "type": "function", 46 "description": "Gets the list of recently closed tabs and/or windows.", 47 "parameters": [ 48 { 49 "$ref": "Filter", 50 "name": "filter", 51 "optional": true 52 }, 53 { 54 "type": "function", 55 "name": "callback", 56 "parameters": [ 57 { 58 "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." 59 } 60 ] 61 } 62 ] 63 }, 64 { 65 "name": "getDevices", 66 "type": "function", 67 "description": "Retrieves all devices with synced sessions.", 68 "parameters": [ 69 { 70 "$ref": "Filter", 71 "name": "filter", 72 "optional": true 73 }, 74 { 75 "type": "function", 76 "name": "callback", 77 "parameters": [ 78 { 79 "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." 80 } 81 ] 82 } 83 ] 84 }, 85 { 86 "name": "restore", 87 "type": "function", 88 "description": "Reopens a $(ref:windows.Window) or $(ref:tabs.Tab), with an optional callback to run when the entry has been restored.", 89 "parameters": [ 90 { 91 "type": "string", 92 "name": "sessionId", 93 "optional": true, 94 "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." 95 }, 96 { 97 "type": "function", 98 "name": "callback", 99 "optional": true, 100 "parameters": [ 101 { 102 "$ref": "Session", 103 "name": "restoredSession", 104 "description": "A $(ref:sessions.Session) containing the restored $(ref:windows.Window) or $(ref:tabs.Tab) object." 105 } 106 ] 107 } 108 ] 109 } 110 ], 111 "events": [ 112 { 113 "name": "onChanged", 114 "description": "Fired when recently closed tabs and/or windows are changed. This event does not monitor synced sessions changes.", 115 "type": "function" 116 } 117 ], 118 "properties": { 119 "MAX_SESSION_RESULTS": { 120 "value": 25, 121 "description": "The maximum number of $(ref:sessions.Session) that will be included in a requested list." 122 } 123 } 124 } 125 ] 126