blob: c41c10383c91b81c2e7b6930e9e473dffcf9637b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
[Exposed=(Window,Worker,WorkerDebugger,Worklet),
ClassString="Console",
ProtoObjectHack]
namespace console {
void log(any... data);
void info(any... data);
void warn(any... data);
void error(any... data);
void _exception(any... data);
void debug(any... data);
void table(any... data);
void trace();
void dir(any... data);
void dirxml(any... data);
void group(any... data);
void groupCollapsed(any... data);
void groupEnd(any... data);
void time(optional any time);
void timeEnd(optional any time);
void timeStamp(optional any data);
void clear(any... data);
void profile(any... data);
void profileEnd(any... data);
void assert(boolean condition, any... data);
void count(any... data);
// No-op methods for compatibility with other browsers.
[BinaryName="noopMethod"]
void markTimeline();
[BinaryName="noopMethod"]
void timeline();
[BinaryName="noopMethod"]
void timelineEnd();
[ChromeOnly]
const boolean IS_NATIVE_CONSOLE = true;
};
// This is used to propagate console events to the observers.
dictionary ConsoleEvent {
(unsigned long long or DOMString) ID;
(unsigned long long or DOMString) innerID;
any originAttributes = null;
DOMString level = "";
DOMString filename = "";
unsigned long lineNumber = 0;
unsigned long columnNumber = 0;
DOMString functionName = "";
double timeStamp = 0;
sequence<any> arguments;
sequence<DOMString?> styles;
boolean private = false;
// stacktrace is handled via a getter in some cases so we can construct it
// lazily. Note that we're not making this whole thing an interface because
// consumers expect to see own properties on it, which would mean making the
// props unforgeable, which means lots of JSFunction allocations. Maybe we
// should fix those consumers, of course....
// sequence<ConsoleStackEntry> stacktrace;
DOMString groupName = "";
any timer = null;
any counter = null;
};
// Event for profile operations
dictionary ConsoleProfileEvent {
DOMString action = "";
sequence<any> arguments;
};
// This dictionary is used to manage stack trace data.
dictionary ConsoleStackEntry {
DOMString filename = "";
unsigned long lineNumber = 0;
unsigned long columnNumber = 0;
DOMString functionName = "";
unsigned long language = 0;
DOMString? asyncCause;
};
dictionary ConsoleTimerStart {
DOMString name = "";
double started = 0;
};
dictionary ConsoleTimerEnd {
DOMString name = "";
double duration = 0;
};
dictionary ConsoleTimerError {
DOMString error = "maxTimersExceeded";
};
dictionary ConsoleCounter {
DOMString label = "";
unsigned long count = 0;
};
dictionary ConsoleCounterError {
DOMString error = "maxCountersExceeded";
};
|