6b94399fac248d1f3954afb9631df069d8f61ce0
[WebKit-https.git] / Source / JavaScriptCore / inspector / protocol / Console.json
1 {
2     "domain": "Console",
3     "description": "Console domain defines methods and events for interaction with the JavaScript console. Console collects messages created by means of the <a href='http://getfirebug.com/wiki/index.php/Console_API'>JavaScript Console API</a>. One needs to enable this domain using <code>enable</code> command in order to start receiving the console messages. Browser collects messages issued while console domain is not enabled as well and reports them using <code>messageAdded</code> notification upon enabling.",
4     "types": [
5         {
6             "id": "ChannelSource",
7             "type": "string",
8             "enum": ["xml", "javascript", "network", "console-api", "storage", "appcache", "rendering", "css", "security", "content-blocker", "media", "webrtc", "other"],
9             "description": "Channels for different types of log messages."
10         },
11         {
12             "id": "ChannelLevel",
13             "type": "string",
14             "enum": ["off", "basic", "verbose"],
15             "description": "Level of logging."
16         },
17         {
18             "id": "Channel",
19             "description": "Logging channel.",
20             "type": "object",
21             "properties": [
22                 { "name": "source", "$ref": "ChannelSource" },
23                 { "name": "level", "$ref": "ChannelLevel" }
24             ]
25         },
26         {
27             "id": "ConsoleMessage",
28             "type": "object",
29             "description": "Console message.",
30             "properties": [
31                 { "name": "source", "$ref": "ChannelSource"},
32                 { "name": "level", "type": "string", "enum": ["log", "info", "warning", "error", "debug"], "description": "Message severity." },
33                 { "name": "text", "type": "string", "description": "Message text." },
34                 { "name": "type", "type": "string", "optional": true, "enum": ["log", "dir", "dirxml", "table", "trace", "clear", "startGroup", "startGroupCollapsed", "endGroup", "assert", "timing", "profile", "profileEnd"], "description": "Console message type." },
35                 { "name": "url", "type": "string", "optional": true, "description": "URL of the message origin." },
36                 { "name": "line", "type": "integer", "optional": true, "description": "Line number in the resource that generated this message." },
37                 { "name": "column", "type": "integer", "optional": true, "description": "Column number on the line in the resource that generated this message." },
38                 { "name": "repeatCount", "type": "integer", "optional": true, "description": "Repeat count for repeated messages." },
39                 { "name": "parameters", "type": "array", "items": { "$ref": "Runtime.RemoteObject" }, "optional": true, "description": "Message parameters in case of the formatted message." },
40                 { "name": "stackTrace", "type": "array", "items": { "$ref": "CallFrame" }, "optional": true, "description": "JavaScript stack trace for assertions and error messages." },
41                 { "name": "networkRequestId", "$ref": "Network.RequestId", "optional": true, "description": "Identifier of the network request associated with this message." }
42             ]
43         },
44         {
45             "id": "CallFrame",
46             "type": "object",
47             "description": "Stack entry for console errors and assertions.",
48             "properties": [
49                 { "name": "functionName", "type": "string", "description": "JavaScript function name." },
50                 { "name": "url", "type": "string", "description": "JavaScript script name or url." },
51                 { "name": "scriptId", "$ref": "Debugger.ScriptId", "description": "Script identifier." },
52                 { "name": "lineNumber", "type": "integer", "description": "JavaScript script line number." },
53                 { "name": "columnNumber", "type": "integer", "description": "JavaScript script column number." }
54             ]
55         },
56         {
57             "id": "StackTrace",
58             "description": "Call frames for async function calls, console assertions, and error messages.",
59             "type": "object",
60             "properties": [
61                 { "name": "callFrames", "type": "array", "items": { "$ref": "CallFrame" } },
62                 { "name": "topCallFrameIsBoundary", "type": "boolean", "optional": true, "description": "Whether the first item in <code>callFrames</code> is the native function that scheduled the asynchronous operation (e.g. setTimeout)." },
63                 { "name": "truncated", "type": "boolean", "optional": true, "description": "Whether one or more frames have been truncated from the bottom of the stack." },
64                 { "name": "parentStackTrace", "$ref": "StackTrace", "optional": true, "description": "Parent StackTrace." }
65             ]
66         }
67     ],
68     "commands": [
69         {
70             "name": "enable",
71             "description": "Enables console domain, sends the messages collected so far to the client by means of the <code>messageAdded</code> notification."
72         },
73         {
74             "name": "disable",
75             "description": "Disables console domain, prevents further console messages from being reported to the client."
76         },
77         {
78             "name": "clearMessages",
79             "description": "Clears console messages collected in the browser."
80         },
81         {
82             "name": "getLoggingChannels",
83             "description": "List of the different message sources that are non-default logging channels.",
84             "returns": [
85                 { "name": "channels", "type": "array", "items": { "$ref": "Channel"}, "description": "Logging channels." }
86             ]
87          },
88          {
89             "name": "setLoggingChannelLevel",
90             "description": "Modify the level of a channel.",
91             "parameters": [
92                 { "name": "source", "$ref": "ChannelSource", "description": "Logging channel to modify." },
93                 { "name": "level", "$ref": "ChannelLevel", "description": "New level." }
94             ]
95          }
96     ],
97     "events": [
98         {
99             "name": "messageAdded",
100             "description": "Issued when new console message is added.",
101             "parameters": [
102                 { "name": "message", "$ref": "ConsoleMessage", "description": "Console message that has been added." }
103             ]
104         },
105         {
106             "name": "messageRepeatCountUpdated",
107             "description": "Issued when subsequent message(s) are equal to the previous one(s).",
108             "parameters": [
109                 { "name": "count", "type": "integer", "description": "New repeat count value." }
110             ]
111         },
112         {
113             "name": "messagesCleared",
114             "description": "Issued when console is cleared. This happens either upon <code>clearMessages</code> command or after page navigation."
115         },
116         {
117             "name": "heapSnapshot",
118             "description": "Issued from console.takeHeapSnapshot.",
119             "parameters": [
120                 { "name": "timestamp", "type": "number" },
121                 { "name": "snapshotData", "$ref": "Heap.HeapSnapshotData", "description": "Snapshot at the end of tracking." },
122                 { "name": "title", "type": "string", "optional": true, "description": "Optional title provided to console.takeHeapSnapshot." }
123             ]
124         }
125     ]
126 }