gecko-dev/dom/webidl/Console.webidl
Luca Greco 2a28dabb62 Bug 1211665 - Save originAttributes in the console event messages. r=baku
Save the originAttributes of the current principal into the console events,
so that we can filter the console messages by originAttributes (e.g.
WebExtensions console events can be filtered using the addonId that the
ExtensionPages' originAttributes contain.

MozReview-Commit-ID: 5v9BWLbgskd

--HG--
extra : transplant_source : %2C%A1%D4%8AEp%E6G%8A%2C%DA%A8%EE%B3%EA%0E%84xk%FF
2016-04-01 13:55:40 +02:00

107 lines
2.9 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* 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/. */
[ChromeOnly,
Exposed=(Window,Worker,WorkerDebugger)]
interface 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 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 clear();
[BinaryName="noopMethod"]
void markTimeline();
[BinaryName="noopMethod"]
void timeline();
[BinaryName="noopMethod"]
void timelineEnd();
};
// 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";
};