Bug 1198073 - Introduce a pref to set the max length of attributes or not truncat them; r=pbro

This commit is contained in:
Hugo Arregui 2015-11-20 18:24:00 +01:00
parent 31a1406add
commit c42ed4349f
4 changed files with 38 additions and 2 deletions

View File

@ -10,7 +10,6 @@ const {Cc, Cu, Ci} = require("chrome");
// Page size for pageup/pagedown
const PAGE_SIZE = 10;
const DEFAULT_MAX_CHILDREN = 100;
const COLLAPSE_ATTRIBUTE_LENGTH = 120;
const COLLAPSE_DATA_URL_REGEX = /^data.+base64/;
const COLLAPSE_DATA_URL_LENGTH = 60;
const NEW_SELECTION_HIGHLIGHTER_TIMER = 1000;
@ -80,6 +79,9 @@ function MarkupView(aInspector, aFrame, aControllerWindow) {
this.maxChildren = DEFAULT_MAX_CHILDREN;
}
this.collapseAttributeLength =
Services.prefs.getIntPref("devtools.markup.collapseAttributeLength");
// Creating the popup to be used to show CSS suggestions.
let options = {
autoSelect: true,
@ -2806,7 +2808,9 @@ ElementEditor.prototype = {
if (value && value.match(COLLAPSE_DATA_URL_REGEX)) {
return truncateString(value, COLLAPSE_DATA_URL_LENGTH);
}
return truncateString(value, COLLAPSE_ATTRIBUTE_LENGTH);
return this.markup.collapseAttributeLength < 0
? value :
truncateString(value, this.markup.collapseAttributeLength);
};
val.innerHTML = "";

View File

@ -72,9 +72,31 @@ var TEST_DATA = [{
let visibleAttrText = editor.attrElements.get("src").querySelector(".attr-value").textContent;
is (visibleAttrText, DATA_URL_ATTRIBUTE_COLLAPSED);
}
}, {
desc: "Try to add long attribute with collapseAttributeLength == -1" +
"to make sure it isn't collapsed in attribute editor.",
text: 'data-long="' + LONG_ATTRIBUTE + '"',
expectedAttributes: {
"data-long": LONG_ATTRIBUTE
},
setUp: function(inspector) {
inspector.markup.collapseAttributeLength = -1;
},
validate: (element, container, inspector) => {
let editor = container.editor;
let visibleAttrText = editor.attrElements
.get("data-long")
.querySelector(".attr-value")
.textContent;
is(visibleAttrText, LONG_ATTRIBUTE);
},
tearDown: function(inspector) {
inspector.markup.collapseAttributeLength = 120;
}
}];
add_task(function*() {
let {inspector} = yield addTab(TEST_URL).then(openInspector);
yield runAddAttributesTests(TEST_DATA, "div", inspector)
});

View File

@ -50,6 +50,9 @@ function runAddAttributesTests(tests, nodeOrSelector, inspector) {
* opened
*/
function* runAddAttributesTest(test, selector, inspector) {
if (test.setUp) {
test.setUp(inspector);
}
let element = getNode(selector);
info("Starting add-attribute test: " + test.desc);
@ -68,6 +71,9 @@ function* runAddAttributesTest(test, selector, inspector) {
info("Assert that the attribute(s) has/have been removed correctly");
yield assertAttributes(selector, {});
if (test.tearDown) {
test.tearDown(inspector);
}
}
/**

View File

@ -66,6 +66,10 @@ pref("devtools.inspector.showAllAnonymousContent", false);
// Enable the MDN docs tooltip
pref("devtools.inspector.mdnDocsTooltip.enabled", true);
// Collapse attributes that are too long.
// Use -1 to not collapse attributes at all.
pref("devtools.markup.collapseAttributeLength", 120);
// DevTools default color unit
pref("devtools.defaultColorUnit", "authored");