{
    "domains": [
        {
            "commands": [
                {
                    "description": "Enables DOM agent for the given page.",
                    "name": "enable"
                },
                {
                    "description": "Disables DOM agent for the given page.",
                    "name": "disable"
                },
                {
                    "description": "Returns the root DOM node to the caller.",
                    "name": "getDocument",
                    "returns": [
                        {
                            "$ref": "Node",
                            "description": "Resulting node.",
                            "name": "root"
                        }
                    ]
                }
            ],
            "events": [
                {
                    "name": "childNodeInserted",
                    "parameters": [
                        {
                            "description": "Id of the node that has changed.",
                            "name": "parentNodeId",
                            "$ref": "NodeId"
                        },
                        {

                            "description": "Id of the previous sibling (0 if this is at the beginning of the list).",
                            "name": "previousNodeId",
                            "$ref": "NodeId"
                        },
                        {
                            "description": "Inserted node data.",
                            "name": "node",
                            "$ref": "Node"
                        }
                    ],
                    "description": "Mirrors <code>DOMNodeInserted</code> event."
                },
                {
                    "name": "childNodeRemoved",
                    "parameters": [
                        {
                            "description": "Parent id.",
                            "name": "parentNodeId",
                            "$ref": "NodeId"
                        },
                        {
                            "description": "Id of the node that has been removed.",
                            "name": "nodeId",
                            "$ref": "NodeId"
                        }
                    ],
                    "description": "Mirrors <code>DOMNodeRemoved</code> event."
                }
            ],
            "domain": "DOM",
            "types": [
                {
                    "description": "Unique DOM node identifier.",
                    "id": "NodeId",
                    "type": "integer"
                },
                {
                    "description": "DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. DOMNode is a base node mirror type.",
                    "id": "Node",
                    "properties": [
                        {
                            "$ref": "NodeId",
                            "description": "Node identifier that is passed into the rest of the DOM messages as the <code>nodeId</code>. Backend will only push node with given <code>id</code> once. It is aware of all requested nodes and will only fire DOM events for nodes known to the client.",
                            "name": "nodeId"
                        },
                        {
                            "description": "<code>Node</code>'s nodeType.",
                            "name": "nodeType",
                            "type": "integer"
                        },
                        {
                            "description": "<code>Node</code>'s nodeName.",
                            "name": "nodeName",
                            "type": "string"
                        },
                        {
                            "description": "Child count for <code>Container</code> nodes.",
                            "name": "childNodeCount",
                            "optional": true,
                            "type": "integer"
                        },
                        {
                            "description": "Child nodes of this node when requested with children.",
                            "items": {
                                "$ref": "Node"
                            },
                            "name": "children",
                            "optional": true,
                            "type": "array"
                        },
                        {
                            "description": "Attributes of the <code>Element</code> node in the form of flat array <code>[name1, value1, name2, value2]</code>.",
                            "items": {
                                "type": "string"
                            },
                            "name": "attributes",
                            "optional": true,
                            "type": "array"
                        },
                        {
                            "description": "<code>Attr</code>'s name.",
                            "name": "name",
                            "optional": true,
                            "type": "string"
                        },
                        {
                            "description": "<code>Attr</code>'s value.",
                            "name": "value",
                            "optional": true,
                            "type": "string"
                        }
                    ],
                    "type": "object"
                }
            ]
        },
        {
            "commands": [
                {
                    "description": "Enables CSS agent for the given page.",
                    "name": "enable"
                },
                {
                    "description": "Disables CSS agent for the given page.",
                    "name": "disable"
                },
                {
                    "description": "Returns requested styles for a DOM node identified by <code>nodeId</code>.",
                    "name": "getMatchedStylesForNode",
                    "parameters": [
                        {
                            "$ref": "DOM.NodeId",
                            "name": "nodeId"
                        }
                    ],
                    "returns": [
                        {
                            "$ref": "CSSStyle",
                            "description": "Inline style for the specified DOM node.",
                            "name": "inlineStyle",
                            "optional": true
                        }
                    ]
                }
            ],
            "domain": "CSS",
            "types": [
                {
                    "id": "CSSProperty",
                    "properties": [
                        {
                            "description": "The property name.",
                            "name": "name",
                            "type": "string"
                        },
                        {
                            "description": "The property value.",
                            "name": "value",
                            "type": "string"
                        }
                    ],
                    "type": "object"
                },
                {
                    "description": "CSS style representation.",
                    "id": "CSSStyle",
                    "properties": [
                        {
                            "description": "CSS properties in the style.",
                            "items": {
                                "$ref": "CSSProperty"
                            },
                            "name": "cssProperties",
                            "type": "array"
                        },
                        {
                            "description": "Frontend requires us to pass this. We just pass an empty array.",
                            "items": {
                                "type": "string"
                            },
                            "name": "shorthandEntries",
                            "type": "array"
                        }
                    ],
                    "type": "object"
                }
            ]
        }
    ],
    "version": {
        "major": "1",
        "minor": "0"
    }
}
