mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
Bug 659625 - part1: implement Console::clear in dom/base/Console.cpp;r=baku
Remove the noop implementation of console.clear and actually clear the console storage. mozReview-Commit-ID: B9NGhRARKoR MozReview-Commit-ID: 2sMEGB2BsAs --HG-- extra : rebase_source : a889ffce5ef82224feb691b499f790da9ae6f34f extra : source : 89cfa8c724e1fcb0909e1414b6051dbd62b40105
This commit is contained in:
parent
2f85846508
commit
0fac5939fc
@ -1042,6 +1042,7 @@ METHOD(Error, "error")
|
||||
METHOD(Exception, "exception")
|
||||
METHOD(Debug, "debug")
|
||||
METHOD(Table, "table")
|
||||
METHOD(Clear, "clear")
|
||||
|
||||
void
|
||||
Console::Trace(JSContext* aCx)
|
||||
@ -1537,6 +1538,11 @@ Console::ProcessCallData(JSContext* aCx, ConsoleCallData* aData,
|
||||
innerID.AppendInt(aData->mInnerIDNumber);
|
||||
}
|
||||
|
||||
if (aData->mMethodName == MethodClear) {
|
||||
nsresult rv = mStorage->ClearEvents(innerID);
|
||||
NS_WARN_IF(NS_FAILED(rv));
|
||||
}
|
||||
|
||||
if (NS_FAILED(mStorage->RecordEvent(innerID, outerID, eventValue))) {
|
||||
NS_WARNING("Failed to record a console event.");
|
||||
}
|
||||
|
@ -115,6 +115,9 @@ public:
|
||||
void
|
||||
Count(JSContext* aCx, const Sequence<JS::Value>& aData);
|
||||
|
||||
void
|
||||
Clear(JSContext* aCx, const Sequence<JS::Value>& aData);
|
||||
|
||||
void
|
||||
NoopMethod();
|
||||
|
||||
@ -156,7 +159,8 @@ private:
|
||||
MethodTimeEnd,
|
||||
MethodTimeStamp,
|
||||
MethodAssert,
|
||||
MethodCount
|
||||
MethodCount,
|
||||
MethodClear
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -649,6 +649,7 @@ skip-if = toolkit == 'android' #bug 687032
|
||||
[test_bug650776.html]
|
||||
[test_bug650784.html]
|
||||
[test_bug656283.html]
|
||||
[test_bug659625.html]
|
||||
[test_bug664916.html]
|
||||
[test_bug666604.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(dom.disable_open_during_load not implemented in b2g) b2g-debug(dom.disable_open_during_load not implemented in b2g) b2g-desktop(dom.disable_open_during_load not implemented in b2g)
|
||||
|
92
dom/base/test/test_bug659625.html
Normal file
92
dom/base/test/test_bug659625.html
Normal file
@ -0,0 +1,92 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=659625
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for Bug 659625</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=659625">Mozilla Bug 659625</a>
|
||||
<script type="application/javascript">
|
||||
const { Cc, Ci } = SpecialPowers;
|
||||
let consoleStorage = Cc["@mozilla.org/consoleAPI-storage;1"];
|
||||
let storage = consoleStorage.getService(Ci.nsIConsoleAPIStorage);
|
||||
|
||||
let clearAndCheckStorage = () => {
|
||||
console.clear();
|
||||
ok(storage.getEvents().length === 1,
|
||||
"Only one event remains in consoleAPIStorage");
|
||||
ok(storage.getEvents()[0].level === "clear",
|
||||
"Remaining event has level 'clear'");
|
||||
}
|
||||
|
||||
storage.clearEvents();
|
||||
ok(storage.getEvents().length === 0,
|
||||
"Console is empty when test is starting");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.log("log");
|
||||
console.debug("debug");
|
||||
console.warn("warn");
|
||||
console.error("error");
|
||||
console.exception("exception");
|
||||
ok(storage.getEvents().length === 6,
|
||||
"5 new console events have been registered for logging variants");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.trace();
|
||||
ok(storage.getEvents().length === 2,
|
||||
"1 new console event registered for trace");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.dir({});
|
||||
ok(storage.getEvents().length === 2,
|
||||
"1 new console event registered for dir");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.count("count-label");
|
||||
console.count("count-label");
|
||||
ok(storage.getEvents().length === 3,
|
||||
"2 new console events registered for 2 count calls");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.group("group-label")
|
||||
console.log("group-log");
|
||||
ok(storage.getEvents().length === 3,
|
||||
"2 new console events registered for group + log");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.groupCollapsed("group-collapsed")
|
||||
console.log("group-collapsed-log");
|
||||
ok(storage.getEvents().length === 3,
|
||||
"2 new console events registered for groupCollapsed + log");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.group("closed-group-label")
|
||||
console.log("group-log");
|
||||
console.groupEnd()
|
||||
ok(storage.getEvents().length === 4,
|
||||
"3 new console events registered for group/groupEnd");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.time("time-label");
|
||||
console.timeEnd();
|
||||
ok(storage.getEvents().length === 3,
|
||||
"2 new console events registered for time/timeEnd");
|
||||
clearAndCheckStorage();
|
||||
|
||||
console.timeStamp("timestamp-label");
|
||||
ok(storage.getEvents().length === 2,
|
||||
"1 new console event registered for timeStamp");
|
||||
clearAndCheckStorage();
|
||||
|
||||
// Check that console.clear() clears previous clear messages
|
||||
clearAndCheckStorage();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -23,6 +23,7 @@ interface Console {
|
||||
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);
|
||||
@ -32,8 +33,6 @@ interface Console {
|
||||
|
||||
// No-op methods for compatibility with other browsers.
|
||||
[BinaryName="noopMethod"]
|
||||
void clear();
|
||||
[BinaryName="noopMethod"]
|
||||
void markTimeline();
|
||||
[BinaryName="noopMethod"]
|
||||
void timeline();
|
||||
|
@ -283,6 +283,7 @@ const LOG_LEVELS = {
|
||||
"debug": 2,
|
||||
"log": 3,
|
||||
"info": 3,
|
||||
"clear": 3,
|
||||
"trace": 3,
|
||||
"timeEnd": 3,
|
||||
"time": 3,
|
||||
|
Loading…
Reference in New Issue
Block a user