Bug 773466 - Console will stop displaying output; r=rcampbell

This commit is contained in:
Mihai Sucan 2012-07-17 14:03:14 +03:00
Родитель 819ee3058d
Коммит 02412858be
4 изменённых файлов: 60 добавлений и 3 удалений

Просмотреть файл

@ -1176,12 +1176,13 @@ let ConsoleAPIObserver = {
aRemoteMessage.objectsCacheId = Manager.sequenceId;
aRemoteMessage.argumentsToString = [];
let mapFunction = function(aItem) {
aRemoteMessage.argumentsToString.push(this._formatObject(aItem));
let formattedObject = this._formatObject(aItem);
aRemoteMessage.argumentsToString.push(formattedObject);
if (WebConsoleUtils.isObjectInspectable(aItem)) {
return JSTerm.prepareObjectForRemote(aItem,
aRemoteMessage.objectsCacheId);
}
return aItem;
return formattedObject;
}.bind(this);
aRemoteMessage.apiMessage.arguments =

Просмотреть файл

@ -4236,7 +4236,7 @@ ConsoleUtils = {
treeView.data = {
rootCacheId: body.cacheId,
panelCacheId: body.cacheId,
remoteObject: body.remoteObject,
remoteObject: Array.isArray(body.remoteObject) ? body.remoteObject : [],
remoteObjectProvider: body.remoteObjectProvider,
};

Просмотреть файл

@ -111,6 +111,7 @@ MOCHITEST_BROWSER_FILES = \
browser_webconsole_menustatus.js \
browser_result_format_as_string.js \
browser_webconsole_bug_737873_mixedcontent.js \
browser_output_breaks_after_console_dir_uninspectable.js \
head.js \
$(NULL)

Просмотреть файл

@ -0,0 +1,55 @@
/* vim:set ts=2 sw=2 sts=2 et: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Make sure that the Web Console output does not break after we try to call
// console.dir() for objects that are not inspectable.
function test()
{
waitForExplicitFinish();
addTab("data:text/html;charset=utf8,test for bug 773466");
gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
openConsole(null, performTest);
}, true);
}
function performTest(hud)
{
hud.jsterm.clearOutput(true);
content.console.log("fooBug773466a");
content.console.dir(function funBug773466(){});
waitForSuccess({
name: "eval results are shown",
validatorFn: function()
{
return hud.outputNode.textContent.indexOf("funBug773466") > -1;
},
successFn: function()
{
isnot(hud.outputNode.textContent.indexOf("fooBug773466a"), -1,
"fooBug773466a shows");
ok(hud.outputNode.querySelector(".webconsole-msg-inspector"),
"the console.dir() tree shows");
content.console.log("fooBug773466b");
waitForSuccess(waitForAnotherConsoleLogCall);
},
failureFn: finishTest,
});
let waitForAnotherConsoleLogCall = {
name: "eval result after console.dir()",
validatorFn: function()
{
return hud.outputNode.textContent.indexOf("fooBug773466b") > -1;
},
successFn: finishTest,
failureFn: finishTest,
};
}