Home | History | Annotate | Download | only in api
      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