Changeset 127418 in webkit


Ignore:
Timestamp:
Sep 3, 2012 6:22:42 AM (12 years ago)
Author:
apavlov@chromium.org
Message:

Web Inspector: Unhide hidden characters
https://bugs.webkit.org/show_bug.cgi?id=93888

Reviewed by Pavel Feldman.

Source/WebCore:

Certain invisible characters will be rendered as HTML entity references in the DOM tree to make them visible to the user.

  • inspector/front-end/ElementsTreeOutline.js:

(WebInspector.ElementsTreeElement.prototype._startEditingTextNode):

LayoutTests:

  • inspector/elements/elements-panel-structure-expected.txt:
  • inspector/elements/elements-panel-structure.html:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r127416 r127418  
     12012-09-03  Alexander Pavlov  <apavlov@chromium.org>
     2
     3        Web Inspector: Unhide hidden characters
     4        https://bugs.webkit.org/show_bug.cgi?id=93888
     5
     6        Reviewed by Pavel Feldman.
     7
     8        * inspector/elements/elements-panel-structure-expected.txt:
     9        * inspector/elements/elements-panel-structure.html:
     10
    1112012-09-03  Dominik Röttsches  <dominik.rottsches@intel.com>
    212
  • trunk/LayoutTests/inspector/elements/elements-panel-structure-expected.txt

    r90617 r127418  
    11Tests that elements panel shows DOM tree structure.
    22
    3 "Quoted Text"
     3"Quoted Text". Special characters: ><"'    ​‌‍‎‏
    44      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    55- <html>
     
    1515        - <div id="level1">
    1616            - <div id="level2">
    17                   ""Quoted Text"        "
     17                  ""Quoted Text". Special&nbsp;characters: ><"'&nbsp;&ensp;&emsp;&thinsp;&#8203;&zwnj;&zwj;&lrm;&rlm;"
    1818                  <div id="level3"></div>
    1919              </div>
  • trunk/LayoutTests/inspector/elements/elements-panel-structure.html

    r90617 r127418  
    2626
    2727<div id="level1">
    28     <div id="level2">"Quoted Text"
    29         <div id="level3"></div>
     28    <div id="level2">"Quoted Text". Special&nbsp;characters: &gt;&lt;&quot;&apos;&nbsp;&ensp;&emsp;&thinsp;&#8203;&zwnj;&zwj;&lrm;&rlm;<div id="level3"></div>
    3029    </div>
    3130</div>
  • trunk/Source/WebCore/ChangeLog

    r127417 r127418  
     12012-09-03  Alexander Pavlov  <apavlov@chromium.org>
     2
     3        Web Inspector: Unhide hidden characters
     4        https://bugs.webkit.org/show_bug.cgi?id=93888
     5
     6        Reviewed by Pavel Feldman.
     7
     8        Certain invisible characters will be rendered as HTML entity references in the DOM tree to make them visible to the user.
     9
     10        * inspector/front-end/ElementsTreeOutline.js:
     11        (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
     12
    1132012-09-03  Pavel Feldman  <pfeldman@chromium.org>
    214
  • trunk/Source/WebCore/inspector/front-end/ElementsTreeOutline.js

    r126572 r127418  
    7272}
    7373
     74WebInspector.ElementsTreeOutline.MappedCharToEntity = {
     75    "\u00a0": "nbsp",
     76    "\u2002": "ensp",
     77    "\u2003": "emsp",
     78    "\u2009": "thinsp",
     79    "\u200b": "#8203",
     80    "\u200c": "zwnj",
     81    "\u200d": "zwj",
     82    "\u200e": "lrm",
     83    "\u200f": "rlm"
     84}
     85
    7486WebInspector.ElementsTreeOutline.prototype = {
    7587    _createNodeDecorators: function()
     
    13031315        var container = textNode.enclosingNodeOrSelfWithClass("webkit-html-text-node");
    13041316        if (container)
    1305             container.innerText = container.innerText; // Strip the CSS or JS highlighting if present.
     1317            container.innerText = textNode._originalContent; // Strip the CSS or JS highlighting if present.
    13061318        var config = new WebInspector.EditingConfig(this._textNodeEditingCommitted.bind(this), this._editingCancelled.bind(this));
    13071319        this._editing = WebInspector.startEditing(textNode, config);
     
    17041716    },
    17051717
     1718    _convertWhitespaceToEntities: function(text)
     1719    {
     1720        var result = "";
     1721        var lastIndexAfterEntity = 0;
     1722        var charToEntity = WebInspector.ElementsTreeOutline.MappedCharToEntity;
     1723        for (var i = 0, size = text.length; i < size; ++i) {
     1724            var char = text.charAt(i);
     1725            if (charToEntity[char]) {
     1726                result += text.substring(lastIndexAfterEntity, i) + "&" + charToEntity[char] + ";";
     1727                lastIndexAfterEntity = i + 1;
     1728            }
     1729        }
     1730        if (result) {
     1731            result += text.substring(lastIndexAfterEntity);
     1732            return result;
     1733        }
     1734        return text;
     1735    },
     1736
    17061737    _nodeTitleInfo: function(linkify)
    17071738    {
     
    17421773                if (showInlineText) {
    17431774                    var textNodeElement = info.titleDOM.createChild("span", "webkit-html-text-node");
    1744                     textNodeElement.textContent = textChild.nodeValue();
     1775                    textNodeElement.textContent = this._convertWhitespaceToEntities(textChild.nodeValue());
     1776                    textNodeElement._originalContent = textChild.nodeValue();
    17451777                    info.titleDOM.appendChild(document.createTextNode("\u200B"));
    17461778                    this._buildTagDOM(info.titleDOM, tagName, true, false);
     
    17651797                    info.titleDOM.appendChild(document.createTextNode("\""));
    17661798                    var textNodeElement = info.titleDOM.createChild("span", "webkit-html-text-node");
    1767                     textNodeElement.textContent = node.nodeValue();
     1799                    textNodeElement.textContent = this._convertWhitespaceToEntities(node.nodeValue());
     1800                    textNodeElement._originalContent = node.nodeValue();
    17681801                    info.titleDOM.appendChild(document.createTextNode("\""));
    17691802                }
Note: See TracChangeset for help on using the changeset viewer.