// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
  {
    "namespace": "sessions",
    "description": "Use the <code>chrome.sessions</code> API to query and restore tabs and windows from a browsing session.",
    "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 seconds 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", "nodoc": true},
          "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": "getRecentlyClosed",
        "type": "function",
        "description": "Gets the list of recently closed tabs and/or windows.",
        "parameters": [
          {
            "$ref": "Filter",
            "name": "filter",
            "optional": true
          }
        ],
        "returns_async": {
          "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",
        "type": "function",
        "description": "Retrieves all devices with synced sessions.",
        "parameters": [
          {
            "$ref": "Filter",
            "name": "filter",
            "optional": true
          }
        ],
        "returns_async": {
          "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.",
        "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."
          }
        ],
        "returns_async": {
          "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."
            }
          ]
        }
      }
    ],
    "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."
      }
    }
  }
]
