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

[
  {
    "namespace": "devtools.network",
    "description": "Use the <code>chrome.devtools.network</code> API to retrieve the information about network requests displayed by the Developer Tools in the Network panel.",
    "nocompile": true,
    "types": [
      {
        "id": "Request",
        "type": "object",
        "description": "Represents a network request for a document resource (script, image and so on). See HAR Specification for reference.",
        "functions": [
          {
            "name": "getContent",
            "type": "function",
            "description": "Returns content of the response body.",
            "parameters": [],
            "returns_async": {
              "name": "callback",
              "description": "A function that receives the response body when the request completes.",
              "parameters": [
                {
                  "name": "response",
                  "type": "object",
                  "description": "An object containing the response body and its encoding.",
                  "properties": {
                    "content": {
                      "type": "string",
                      "description": "Content of the response body (potentially encoded)."
                    },
                    "encoding": {
                      "type": "string",
                      "description": "Empty if content is not encoded, encoding name otherwise. Currently, only base64 is supported."
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ],
    "functions": [
      {
        "name": "getHAR",
        "type": "function",
        "description": "Returns HAR log that contains all known network requests.",
        "parameters": [],
        "returns_async": {
          "name": "callback",
          "description": "A function that receives the HAR log when the request completes.",
          "parameters": [
            {
              "name": "harLog",
              "type": "object",
              "additionalProperties": {"type": "any"},
              "description": "A HAR log. See HAR specification for details."
            }
          ]
        }
      }
    ],
    "events": [
      {
        "name": "onRequestFinished",
        "type": "function",
        "description": "Fired when a network request is finished and all request data are available.",
        "parameters": [
          { "name": "request", "$ref": "Request", "description": "Description of a network request in the form of a HAR entry. See HAR specification for details." }
        ]
      },
      {
        "name": "onNavigated",
        "type": "function",
        "description": "Fired when the inspected window navigates to a new page.",
        "parameters": [
          {
            "name": "url",
            "type": "string",
            "description": "URL of the new page."
          }
        ]
      }
    ]
  }
]
