Changeset 56688 in webkit


Ignore:
Timestamp:
Mar 28, 2010 3:33:23 AM (14 years ago)
Author:
Joseph Pecoraro
Message:

2010-03-28 Joseph Pecoraro <Joseph Pecoraro>

Reviewed by Pavel Feldman.

Web Inspector: Consolidate Tree Hierarchy Attribute HTML Generation
https://bugs.webkit.org/show_bug.cgi?id=36719

Consolidates the generation of Element Tree Hierarchy attribute code
generation to a single function: _attributeHTML.

  • inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._addNewAttribute): convert to use attributeHTML. (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted.regenerateStyledAttribute): convert to use attributeHTML. (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted): (WebInspector.ElementsTreeElement.prototype._attributeHTML): a single point for generating the html for attributes.
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r56687 r56688  
     12010-03-28  Joseph Pecoraro  <joepeck@webkit.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Web Inspector: Consolidate Tree Hierarchy Attribute HTML Generation
     6        https://bugs.webkit.org/show_bug.cgi?id=36719
     7
     8          Consolidates the generation of Element Tree Hierarchy attribute code
     9          generation to a single function: _attributeHTML.
     10
     11        * inspector/front-end/ElementsTreeOutline.js:
     12        (WebInspector.ElementsTreeElement.prototype._addNewAttribute): convert to use attributeHTML.
     13        (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted.regenerateStyledAttribute): convert to use attributeHTML.
     14        (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
     15        (WebInspector.ElementsTreeElement.prototype._attributeHTML): a single point for generating the html for attributes.
     16
    1172010-03-28  Joseph Pecoraro  <joepeck@webkit.org>
    218
  • trunk/WebCore/inspector/front-end/ElementsTreeOutline.js

    r56687 r56688  
    787787    _addNewAttribute: function()
    788788    {
    789         var attr = document.createElement("span");
    790         attr.className = "webkit-html-attribute";
     789        // Cannot just convert the textual html into an element without
     790        // a parent node. Use a temporary span container for the HTML.
     791        var container = document.createElement("span");
     792        container.innerHTML = this._attributeHTML(" ", "");
     793        var attr = container.firstChild;
    791794        attr.style.marginLeft = "2px"; // overrides the .editing margin rule
    792795        attr.style.marginRight = "2px"; // overrides the .editing margin rule
    793         var name = document.createElement("span");
    794         name.className = "webkit-html-attribute-name new-attribute";
    795         name.textContent = " ";
    796         var value = document.createElement("span");
    797         value.className = "webkit-html-attribute-value";
    798         attr.appendChild(name);
    799         attr.appendChild(value);
    800796
    801797        var tag = this.listItemElement.getElementsByClassName("webkit-html-tag")[0];
     
    10251021            if (!previous || previous.nodeType !== Node.TEXT_NODE)
    10261022                element.parentNode.insertBefore(document.createTextNode(" "), element);
    1027             element.outerHTML = "<span class=\"webkit-html-attribute\">" +
    1028                                   "<span class=\"webkit-html-attribute-name\">" + attr.name.escapeHTML() + "</span>=&#8203;\"" +
    1029                                   "<span class=\"webkit-html-attribute-value\">" + attr.value.escapeHTML() + "</span>&#8203;\"" +
    1030                                 "</span>";
     1023            element.outerHTML = this._attributeHTML(name, value);
    10311024        }
    10321025
     
    10531046            try {
    10541047                this.representedObject.setAttribute(attr.name, attr.value);
    1055                 regenerateStyledAttribute(attr.name, attr.value);
     1048                regenerateStyledAttribute.call(this, attr.name, attr.value);
    10561049            } catch(e) {} // ignore invalid attribute (innerHTML doesn't throw errors, but this can)
    10571050        }
     
    12151208    },
    12161209
     1210    _attributeHTML: function(name, value, node, linkify, tooltipText)
     1211    {
     1212        var hasText = (value.length > 0);
     1213        var html = "<span class=\"webkit-html-attribute\"><span class=\"webkit-html-attribute-name\">" + name.escapeHTML() + "</span>";
     1214
     1215        if (hasText)
     1216            html += "=&#8203;\"";
     1217
     1218        if (linkify && (name === "src" || name === "href")) {
     1219            value = value.replace(/([\/;:\)\]\}])/g, "$1\u200B");
     1220            html += linkify(this._rewriteAttrHref(node, value), value, "webkit-html-attribute-value", node.nodeName.toLowerCase() === "a", tooltipText);
     1221        } else {
     1222            value = value.escapeHTML().replace(/([\/;:\)\]\}])/g, "$1&#8203;");
     1223            html += "<span class=\"webkit-html-attribute-value\">" + value + "</span>";
     1224        }
     1225
     1226        if (hasText)
     1227            html += "\"";
     1228
     1229        html += "</span>";
     1230        return html;
     1231    },
     1232
    12171233    _nodeTitleInfo: function(linkify, tooltipText)
    12181234    {
     
    12361252                    for (var i = 0; i < node.attributes.length; ++i) {
    12371253                        var attr = node.attributes[i];
    1238                         info.title += " <span class=\"webkit-html-attribute\"><span class=\"webkit-html-attribute-name\">" + attr.name.escapeHTML() + "</span>=&#8203;\"";
    1239 
    1240                         var value = attr.value;
    1241                         if (linkify && (attr.name === "src" || attr.name === "href")) {
    1242                             var value = value.replace(/([\/;:\)\]\}])/g, "$1\u200B");
    1243                             info.title += linkify(this._rewriteAttrHref(node, attr.value), value, "webkit-html-attribute-value", node.nodeName.toLowerCase() == "a", tooltipText);
    1244                         } else {
    1245                             var value = value.escapeHTML();
    1246                             value = value.replace(/([\/;:\)\]\}])/g, "$1&#8203;");
    1247                             info.title += "<span class=\"webkit-html-attribute-value\">" + value + "</span>";
    1248                         }
    1249                         info.title += "\"</span>";
     1254                        info.title += " " + this._attributeHTML(attr.name, attr.value, node, linkify, tooltipText);
    12501255                    }
    12511256                }
Note: See TracChangeset for help on using the changeset viewer.