Bug 1035198 - VariablesView: handle instances of nsIDOMNode.DOCUMENT_NODE without URLs properly. r=robcee

This commit is contained in:
Sami Jaktholm 2014-07-19 00:17:00 +02:00
parent bc569e2e9a
commit 3882a241d1
4 changed files with 49 additions and 3 deletions

View File

@ -3643,9 +3643,14 @@ VariablesView.stringifiers.byObjectKind = {
switch (preview.nodeType) {
case Ci.nsIDOMNode.DOCUMENT_NODE: {
let location = WebConsoleUtils.abbreviateSourceURL(preview.location,
{ onlyCropQuery: !concise });
return aGrip.class + " \u2192 " + location;
let result = aGrip.class;
if (preview.location) {
let location = WebConsoleUtils.abbreviateSourceURL(preview.location,
{ onlyCropQuery: !concise });
result += " \u2192 " + location;
}
return result;
}
case Ci.nsIDOMNode.ATTRIBUTE_NODE: {

View File

@ -250,6 +250,7 @@ run-if = os == "mac"
[browser_webconsole_for_of.js]
[browser_webconsole_history.js]
[browser_webconsole_input_field_focus_on_panel_select.js]
[browser_webconsole_inspect-parsed-documents.js]
[browser_webconsole_js_input_expansion.js]
[browser_webconsole_jsterm.js]
[browser_webconsole_live_filtering_of_message_types.js]

View File

@ -0,0 +1,33 @@
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test that dynamically created (HTML|XML|SVG)Documents can be inspected by
// clicking on the object in console (bug 1035198).
const TEST_CASES = [
{
input: '(new DOMParser()).parseFromString("<a />", "text/html")',
output: "HTMLDocument",
inspectable: true,
},
{
input: '(new DOMParser()).parseFromString("<a />", "application/xml")',
output: "XMLDocument",
inspectable: true,
},
{
input: '(new DOMParser()).parseFromString("<svg></svg>", "image/svg+xml")',
output: "SVGDocument",
inspectable: true,
},
];
const TEST_URI = "data:text/html;charset=utf8," +
"browser_webconsole_inspect-parsed-documents.js";
let test = asyncTest(function* () {
let {tab} = yield loadTab(TEST_URI);
let hud = yield openConsole(tab);
yield checkOutputForInputs(hud, TEST_CASES);
});

View File

@ -44,6 +44,13 @@ SimpleTest.registerCleanupFunction(() => {
gDevTools.testing = false;
});
/**
* Define an async test based on a generator function
*/
function asyncTest(generator) {
return () => Task.spawn(generator).then(null, ok.bind(null, false)).then(finishTest);
}
function log(aMsg)
{
dump("*** WebConsoleTest: " + aMsg + "\n");