Changeset 125079 in webkit


Ignore:
Timestamp:
Aug 8, 2012 1:14:52 PM (12 years ago)
Author:
pfeldman@chromium.org
Message:

REGRESSION(r125046): Breaks debug build (assertion in protocol type checks) (Requested by pfeldman on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=93505

Not reviewed: roll out.

Source/WebCore:

  • inspector/ConsoleMessage.cpp:

(WebCore::ConsoleMessage::addToFrontend):

  • inspector/ConsoleMessage.h:

(ConsoleMessage):

  • inspector/InjectedScript.cpp:

(WebCore::InjectedScript::wrapObject):

  • inspector/InjectedScript.h:

(InjectedScript):

  • inspector/InjectedScriptSource.js:

(.):

  • inspector/InspectorConsoleAgent.cpp:

(WebCore::InspectorConsoleAgent::enable):
(WebCore::InspectorConsoleAgent::addConsoleMessage):

  • inspector/front-end/ConsoleMessage.js:

(WebInspector.ConsoleMessageImpl.prototype._format):
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype._printArray):
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):

  • inspector/front-end/DOMExtension.js:
  • inspector/front-end/ObjectPropertiesSection.js:

(WebInspector.ObjectPropertiesSection):

  • inspector/front-end/PropertiesSection.js:
  • inspector/front-end/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPayload):

  • inspector/front-end/Section.js:
  • inspector/front-end/inspector.css:

(.console-group-messages .section .header .title):
(.section .properties .name, .event-properties .name):

LayoutTests:

  • inspector/console/command-line-api-inspect-expected.txt:
  • inspector/console/console-dir-expected.txt:
  • inspector/console/console-eval-global-expected.txt:
  • inspector/console/console-eval-global.html:
  • inspector/console/console-format-collections-expected.txt:
  • inspector/console/console-format-collections.html:
  • inspector/console/console-format-expected.txt:
  • inspector/console/console-format.html:
  • inspector/console/console-log-document-proto-expected.txt:
  • inspector/console/console-log-document-proto.html:
  • inspector/console/console-log-toString-object-expected.txt:
  • inspector/debugger/watch-expressions-panel-switch-expected.txt:
  • inspector/elements/event-listener-sidebar-expected.txt:
  • inspector/elements/event-listeners-about-blank-expected.txt:
  • platform/chromium/inspector/console/console-dir-expected.txt:
  • platform/chromium/inspector/console/console-eval-global-expected.txt: Copied from LayoutTests/inspector/console/console-eval-global-expected.txt.
  • platform/chromium/inspector/console/console-format-collections-expected.txt:
  • platform/chromium/inspector/console/console-format-expected.txt: Copied from LayoutTests/inspector/console/console-format-expected.txt.
  • platform/chromium/inspector/console/console-log-document-proto-expected.txt:
  • platform/chromium/inspector/debugger/watch-expressions-panel-switch-expected.txt:
  • platform/chromium/inspector/elements/event-listener-sidebar-expected.txt: Copied from LayoutTests/inspector/elements/event-listener-sidebar-expected.txt.
Location:
trunk
Files:
33 edited
3 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r125064 r125079  
     12012-08-08  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        REGRESSION(r125046): Breaks debug build (assertion in protocol type checks) (Requested by pfeldman on #webkit).
     4        https://bugs.webkit.org/show_bug.cgi?id=93505
     5
     6        Not reviewed: roll out.
     7
     8        * inspector/console/command-line-api-inspect-expected.txt:
     9        * inspector/console/console-dir-expected.txt:
     10        * inspector/console/console-eval-global-expected.txt:
     11        * inspector/console/console-eval-global.html:
     12        * inspector/console/console-format-collections-expected.txt:
     13        * inspector/console/console-format-collections.html:
     14        * inspector/console/console-format-expected.txt:
     15        * inspector/console/console-format.html:
     16        * inspector/console/console-log-document-proto-expected.txt:
     17        * inspector/console/console-log-document-proto.html:
     18        * inspector/console/console-log-toString-object-expected.txt:
     19        * inspector/debugger/watch-expressions-panel-switch-expected.txt:
     20        * inspector/elements/event-listener-sidebar-expected.txt:
     21        * inspector/elements/event-listeners-about-blank-expected.txt:
     22        * platform/chromium/inspector/console/console-dir-expected.txt:
     23        * platform/chromium/inspector/console/console-eval-global-expected.txt: Copied from LayoutTests/inspector/console/console-eval-global-expected.txt.
     24        * platform/chromium/inspector/console/console-format-collections-expected.txt:
     25        * platform/chromium/inspector/console/console-format-expected.txt: Copied from LayoutTests/inspector/console/console-format-expected.txt.
     26        * platform/chromium/inspector/console/console-log-document-proto-expected.txt:
     27        * platform/chromium/inspector/debugger/watch-expressions-panel-switch-expected.txt:
     28        * platform/chromium/inspector/elements/event-listener-sidebar-expected.txt: Copied from LayoutTests/inspector/elements/event-listener-sidebar-expected.txt.
     29
    1302012-08-08  Florin Malita  <fmalita@chromium.org>
    231
  • trunk/LayoutTests/inspector/console/command-line-api-inspect-expected.txt

    r125046 r125079  
    55
    66
    7 WebInspector.inspect called with: <p>
     7WebInspector.inspect called with: HTMLParagraphElement
    88WebInspector.inspect's hints are: []
    99inspect($('p1')) =
  • trunk/LayoutTests/inspector/console/console-dir-expected.txt

    r125046 r125079  
    1313
    1414NodeList[1]
    15     0: <html>
     15    0: HTMLHtmlElement
    1616    constructor: NodeListConstructor
    1717    length: 1
  • trunk/LayoutTests/inspector/console/console-eval-global-expected.txt

    r125046 r125079  
    33foo
    44"fooValue"
    5 bar
    6 Object
     5bar1
     6ReferenceError: Can't find variable: bar1
    77
  • trunk/LayoutTests/inspector/console/console-eval-global.html

    r125046 r125079  
    1616    function step1()
    1717    {
    18         InspectorTest.evaluateInConsole("bar", step2);
     18        InspectorTest.evaluateInConsole("bar1", step2);
    1919    }
    2020
  • trunk/LayoutTests/inspector/console/console-format-collections-expected.txt

    r125046 r125079  
    1 CONSOLE MESSAGE: line 15: [object NodeList]
    2 CONSOLE MESSAGE: line 19: [object HTMLCollection]
    3 CONSOLE MESSAGE: line 23: [object HTMLOptionsCollection]
    4 CONSOLE MESSAGE: line 27: [object HTMLAllCollection]
    5 CONSOLE MESSAGE: line 31: [object HTMLCollection]
    6 CONSOLE MESSAGE: line 35: [object NodeList]
    7 CONSOLE MESSAGE: line 41: 1,2,
    8 CONSOLE MESSAGE: line 44: [object Object]
    9 CONSOLE MESSAGE: line 51: [object Arguments]
    101CONSOLE MESSAGE: line 15: [object NodeList]
    112CONSOLE MESSAGE: line 19: [object HTMLCollection]
     
    3021NonArrayWithLength console-format-collections.html:44
    3122[1, "2"] console-format-collections.html:51
    32 [<select>] console-format-collections.html:15
    33  console-format-collections.html:19
    34 [<option>, <option>, selectedIndex: 0] console-format-collections.html:23
    35  console-format-collections.html:27
    36  console-format-collections.html:31
    37 [<input>, <input>] console-format-collections.html:35
    38 [1, Array[2]] console-format-collections.html:41
    39 NonArrayWithLength {keys: Array[0]} console-format-collections.html:44
    40 [1, "2"] console-format-collections.html:51
    41 Page reloaded.
    4223
  • trunk/LayoutTests/inspector/console/console-format-collections.html

    r125046 r125079  
    55<script>
    66
    7 function logToConsole()
     7function onload()
    88{
    99    var formElement = document.getElementById("f");
     
    5353}
    5454
    55 function onload()
    56 {
    57     logToConsole();
    58 }
    59 
    6055function NonArrayWithLength()
    6156{
     
    7166function test()
    7267{
    73     InspectorTest.evaluateInPage("logToConsole()", callback);
    74 
    75     function callback()
    76     {
    77         InspectorTest.dumpConsoleMessages();
    78         InspectorTest.completeTest();
    79     }
     68    InspectorTest.dumpConsoleMessages();
     69    InspectorTest.completeTest();
    8070}
    8171</script>
  • trunk/LayoutTests/inspector/console/console-format-expected.txt

    r125046 r125079  
    5656Array[10] console-format.html:22
    5757/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i console-format.html:54
    58 [/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i] console-format.html:55
     58[/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i] console-format.html:55
    5959globals[0]
    6060/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
     
    7575globals[4]
    7676Error
    77 <body onload="onload()"> console-format.html:54
    78 [<body>] console-format.html:55
     77<body onload="onload()">…</body> console-format.html:54
     78[<body onload="onload()">…</body>] console-format.html:55
    7979globals[5]
    80 <body onload="onload()">
     80<body onload="onload()">…</body>
    8181function () { return 1; } console-format.html:54
    8282[function () { return 1; }] console-format.html:55
     
    110110undefined
    111111attr="" console-format.html:54
    112 [attr] console-format.html:55
     112[attr=""] console-format.html:55
    113113globals[12]
    114114attr=""
    115 attr="value""value" console-format.html:54
    116 [attr] console-format.html:55
     115attr="value" console-format.html:54
     116[attr="value"] console-format.html:55
    117117globals[13]
    118 attr="value""value"
    119 id="x""x" console-format.html:54
    120 [id] console-format.html:55
     118attr="value"
     119id="x" console-format.html:54
     120[id="x"] console-format.html:55
    121121globals[14]
    122 id="x""x"
     122id="x"
    123123Object console-format.html:54
    124124[Object] console-format.html:55
  • trunk/LayoutTests/inspector/console/console-format.html

    r125046 r125079  
    1515
    1616    var array = ["test", "test2"]; array.length = 10;
    17     array.foo = {};
     17    array.foo = "bar";
    1818    array[4] = "test4";
    1919
     
    6666            var next = current + 1;
    6767            if (next == total.description) {
    68                 InspectorTest.expandConsoleMessages();
    6968                InspectorTest.dumpConsoleMessages();
    7069                InspectorTest.completeTest();
    71             } else
     70               }
     71            else
    7272                loopOverGlobals(next, total);
    7373        }
  • trunk/LayoutTests/inspector/console/console-log-document-proto-expected.txt

    r125046 r125079  
    11CONSOLE MESSAGE: line 6: [object HTMLDocumentPrototype]
    2 Test that console.dir(document.__proto__) won't result in an exception when the message is formatted in the inspector.Bug 27169.
     2Test that console.log(document.__proto__) won't result in an exception when the message is formatted in the inspector.Bug 27169.
    33
    44HTMLDocumentPrototype console-log-document-proto.html:6
  • trunk/LayoutTests/inspector/console/console-log-document-proto.html

    r125046 r125079  
    44<script src="../../http/tests/inspector/console-test.js"></script>
    55<script>
    6 console.dir(document.__proto__);
     6console.log(document.__proto__);
    77
    88function test()
     
    1515<body onload="runTest()">
    1616<p>
    17 Test that console.dir(document.__proto__) won't result in an exception when the message
     17Test that console.log(document.__proto__) won't result in an exception when the message
    1818is formatted in the inspector.<a bug="https://bugs.webkit.org/show_bug.cgi?id=27169">Bug  27169.</a>
    1919</p>
  • trunk/LayoutTests/inspector/console/console-log-toString-object-expected.txt

    r125046 r125079  
    44
    55Page reloaded.
    6 Object {toString: Object} console-log-toString-object.html:7
     6Object console-log-toString-object.html:7
    77
  • trunk/LayoutTests/inspector/debugger/watch-expressions-panel-switch-expected.txt

    r125046 r125079  
    77Watch expressions updated.
    88[expanded] 
    9     window.document: #document
     9    window.document: HTMLDocument
    1010    windowa.document: ReferenceError: Can't find variable: windowa
    1111Debugger was disabled.
  • trunk/LayoutTests/inspector/elements/event-listener-sidebar-expected.txt

    r125046 r125079  
    88    lineNumber: 19
    99    listenerBody: function (event) { console.log("click - document - capturing"); }
    10     node: #document
     10    node: HTMLDocument
    1111    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    1212    type: click
     
    1515    isAttribute: false
    1616    listenerBody: ObjectHandler
    17     node: #document
     17    node: HTMLDocument
    1818    type: click
    1919    useCapture: true
     
    2222    lineNumber: 15
    2323    listenerBody: function (event) { console.log("click - button - capturing"); }
    24     node: <button>
     24    node: HTMLButtonElement
    2525    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    2626    type: click
     
    3030    lineNumber: 12
    3131    listenerBody: function clickHandler(event) { console.log("click - button - bubbling (registered before attribute)"); }
    32     node: <button>
     32    node: HTMLButtonElement
    3333    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    3434    type: click
     
    3838    lineNumber: 16
    3939    listenerBody: function (event) { console.log("click - button - attribute"); }
    40     node: <button>
     40    node: HTMLButtonElement
    4141    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    4242    type: click
     
    4646    lineNumber: 17
    4747    listenerBody: function (event) { console.log("click - button - bubbling (registered after attribute)"); }
    48     node: <button>
     48    node: HTMLButtonElement
    4949    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    5050    type: click
     
    5454    lineNumber: 6
    5555    listenerBody: function documentClickHandler(event) { console.log("click - document - attribute"); }
    56     node: #document
     56    node: HTMLDocument
    5757    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    5858    type: click
     
    6464    lineNumber: 10
    6565    listenerBody: function f() {}
    66     node: <body>
     66    node: HTMLBodyElement
    6767    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    6868    type: custom event
     
    7474    lineNumber: 14
    7575    listenerBody: function hoverHandler(event) { console.log("hover - button - bubbling"); }
    76     node: <button>
     76    node: HTMLButtonElement
    7777    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    7878    type: hover
     
    8484    lineNumber: 19
    8585    listenerBody: function (event) { console.log("click - document - capturing"); }
    86     node: #document
     86    node: HTMLDocument
    8787    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    8888    type: click
     
    9191    isAttribute: false
    9292    listenerBody: ObjectHandler
    93     node: #document
     93    node: HTMLDocument
    9494    type: click
    9595    useCapture: true
     
    9898    lineNumber: 6
    9999    listenerBody: function documentClickHandler(event) { console.log("click - document - attribute"); }
    100     node: #document
     100    node: HTMLDocument
    101101    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    102102    type: click
     
    108108    lineNumber: 10
    109109    listenerBody: function f() {}
    110     node: <body>
     110    node: HTMLBodyElement
    111111    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    112112    type: custom event
  • trunk/LayoutTests/inspector/elements/event-listeners-about-blank-expected.txt

    r125046 r125079  
    88    lineNumber: 9
    99    listenerBody: function f() {}
    10     node: <body>
     10    node: HTMLBodyElement
    1111    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listeners-about-blank.html
    1212    type: click
     
    1818    lineNumber: 9
    1919    listenerBody: function f() {}
    20     node: <div>
     20    node: HTMLDivElement
    2121    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listeners-about-blank.html
    2222    type: hover
  • trunk/LayoutTests/platform/chromium/inspector/console/console-dir-expected.txt

    r125046 r125079  
    1313
    1414NodeList[1]
    15     0: <html>
     15    0: HTMLHtmlElement
    1616    length: 1
    1717    __proto__: NodeList console-dir.html:10
  • trunk/LayoutTests/platform/chromium/inspector/console/console-eval-global-expected.txt

    r125077 r125079  
    33foo
    44"fooValue"
    5 bar
    6 Object
     5bar1
     6ReferenceError: bar1 is not defined
    77
  • trunk/LayoutTests/platform/chromium/inspector/console/console-format-collections-expected.txt

    r125046 r125079  
    1 CONSOLE MESSAGE: line 15: [object NodeList]
    2 CONSOLE MESSAGE: line 19: [object HTMLCollection]
    3 CONSOLE MESSAGE: line 23: [object HTMLOptionsCollection]
    4 CONSOLE MESSAGE: line 27: undefined
    5 CONSOLE MESSAGE: line 31: [object HTMLCollection]
    6 CONSOLE MESSAGE: line 35: [object NodeList]
    7 CONSOLE MESSAGE: line 41: 1,2,
    8 CONSOLE MESSAGE: line 44: [object Object]
    9 CONSOLE MESSAGE: line 51: [object Arguments]
    101CONSOLE MESSAGE: line 15: [object NodeList]
    112CONSOLE MESSAGE: line 19: [object HTMLCollection]
     
    3021NonArrayWithLength console-format-collections.html:44
    3122[1, "2"] console-format-collections.html:51
    32 [<select>] console-format-collections.html:15
    33 [<script>, <script>, <script>] console-format-collections.html:19
    34 [<option>, <option>, selectedIndex: 0] console-format-collections.html:23
    35 [<html>, <head>, <script>, <script>, <script>, <body>, <p>, <div>, <form>, <select>, <option>, <option>, <input>, <input>] console-format-collections.html:27
    36 [<select>, <input>, <input>] console-format-collections.html:31
    37 [<input>, <input>] console-format-collections.html:35
    38 [1, Array[2]] console-format-collections.html:41
    39 NonArrayWithLength {keys: Array[0]} console-format-collections.html:44
    40 [1, "2"] console-format-collections.html:51
    4123
  • trunk/LayoutTests/platform/chromium/inspector/console/console-format-expected.txt

    r125077 r125079  
    5656Array[10] console-format.html:22
    5757/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i console-format.html:54
    58 [/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i] console-format.html:55
     58[/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i] console-format.html:55
    5959globals[0]
    6060/^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i
     
    7575globals[4]
    7676Error
    77 <body onload="onload()"> console-format.html:54
    78 [<body>] console-format.html:55
     77<body onload="onload()">…</body> console-format.html:54
     78[<body onload="onload()">…</body>] console-format.html:55
    7979globals[5]
    80 <body onload="onload()">
     80<body onload="onload()">…</body>
    8181function () { return 1; } console-format.html:54
    8282[function () { return 1; }] console-format.html:55
     
    110110undefined
    111111attr="" console-format.html:54
    112 [attr] console-format.html:55
     112[attr=""] console-format.html:55
    113113globals[12]
    114114attr=""
    115 attr="value""value" console-format.html:54
    116 [attr] console-format.html:55
     115attr="value" console-format.html:54
     116[attr="value"] console-format.html:55
    117117globals[13]
    118 attr="value""value"
    119 id="x""x" console-format.html:54
    120 [id] console-format.html:55
     118attr="value"
     119id="x" console-format.html:54
     120[id="x"] console-format.html:55
    121121globals[14]
    122 id="x""x"
     122id="x"
    123123Object console-format.html:54
    124124[Object] console-format.html:55
  • trunk/LayoutTests/platform/chromium/inspector/console/console-log-document-proto-expected.txt

    r125046 r125079  
    11CONSOLE MESSAGE: line 6: [object Object]
    2 Test that console.dir(document.__proto__) won't result in an exception when the message is formatted in the inspector.Bug 27169.
     2Test that console.log(document.__proto__) won't result in an exception when the message is formatted in the inspector.Bug 27169.
    33
    44HTMLDocument console-log-document-proto.html:6
  • trunk/LayoutTests/platform/chromium/inspector/debugger/watch-expressions-panel-switch-expected.txt

    r125046 r125079  
    77Watch expressions updated.
    88[expanded] 
    9     window.document: #document
     9    window.document: HTMLDocument
    1010    windowa.document: ReferenceError: windowa is not defined
    1111Debugger was disabled.
  • trunk/LayoutTests/platform/chromium/inspector/elements/event-listener-sidebar-expected.txt

    r125077 r125079  
    88    lineNumber: 19
    99    listenerBody: function (event) { console.log("click - document - capturing"); }
    10     node: #document
     10    node: HTMLDocument
    1111    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    1212    type: click
     
    1515    isAttribute: false
    1616    listenerBody: ObjectHandler
    17     node: #document
     17    node: HTMLDocument
    1818    type: click
    1919    useCapture: true
     
    2222    lineNumber: 15
    2323    listenerBody: function (event) { console.log("click - button - capturing"); }
    24     node: <button>
     24    node: HTMLButtonElement
    2525    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    2626    type: click
     
    3030    lineNumber: 12
    3131    listenerBody: function clickHandler(event) { console.log("click - button - bubbling (registered before attribute)"); }
    32     node: <button>
     32    node: HTMLButtonElement
    3333    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    3434    type: click
     
    3838    lineNumber: 16
    3939    listenerBody: function (event) { console.log("click - button - attribute"); }
    40     node: <button>
     40    node: HTMLButtonElement
    4141    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    4242    type: click
     
    4646    lineNumber: 17
    4747    listenerBody: function (event) { console.log("click - button - bubbling (registered after attribute)"); }
    48     node: <button>
     48    node: HTMLButtonElement
    4949    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    5050    type: click
     
    5454    lineNumber: 6
    5555    listenerBody: function documentClickHandler(event) { console.log("click - document - attribute"); }
    56     node: #document
     56    node: HTMLDocument
    5757    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    5858    type: click
     
    6464    lineNumber: 10
    6565    listenerBody: function f() {}
    66     node: <body>
     66    node: HTMLBodyElement
    6767    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    6868    type: custom event
     
    7474    lineNumber: 14
    7575    listenerBody: function hoverHandler(event) { console.log("hover - button - bubbling"); }
    76     node: <button>
     76    node: HTMLButtonElement
    7777    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    7878    type: hover
     
    8484    lineNumber: 19
    8585    listenerBody: function (event) { console.log("click - document - capturing"); }
    86     node: #document
     86    node: HTMLDocument
    8787    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    8888    type: click
     
    9191    isAttribute: false
    9292    listenerBody: ObjectHandler
    93     node: #document
     93    node: HTMLDocument
    9494    type: click
    9595    useCapture: true
     
    9898    lineNumber: 6
    9999    listenerBody: function documentClickHandler(event) { console.log("click - document - attribute"); }
    100     node: #document
     100    node: HTMLDocument
    101101    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    102102    type: click
     
    108108    lineNumber: 10
    109109    listenerBody: function f() {}
    110     node: <body>
     110    node: HTMLBodyElement
    111111    sourceName: [clipped-for-test]/LayoutTests/inspector/elements/event-listener-sidebar.html
    112112    type: custom event
  • trunk/Source/WebCore/ChangeLog

    r125077 r125079  
     12012-08-08  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        REGRESSION(r125046): Breaks debug build (assertion in protocol type checks) (Requested by pfeldman on #webkit).
     4        https://bugs.webkit.org/show_bug.cgi?id=93505
     5
     6        Not reviewed: roll out.
     7
     8        * inspector/ConsoleMessage.cpp:
     9        (WebCore::ConsoleMessage::addToFrontend):
     10        * inspector/ConsoleMessage.h:
     11        (ConsoleMessage):
     12        * inspector/InjectedScript.cpp:
     13        (WebCore::InjectedScript::wrapObject):
     14        * inspector/InjectedScript.h:
     15        (InjectedScript):
     16        * inspector/InjectedScriptSource.js:
     17        (.):
     18        * inspector/InspectorConsoleAgent.cpp:
     19        (WebCore::InspectorConsoleAgent::enable):
     20        (WebCore::InspectorConsoleAgent::addConsoleMessage):
     21        * inspector/front-end/ConsoleMessage.js:
     22        (WebInspector.ConsoleMessageImpl.prototype._format):
     23        (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
     24        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
     25        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
     26        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
     27        (WebInspector.ConsoleMessageImpl.prototype._printArray):
     28        (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
     29        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
     30        * inspector/front-end/DOMExtension.js:
     31        * inspector/front-end/ObjectPropertiesSection.js:
     32        (WebInspector.ObjectPropertiesSection):
     33        * inspector/front-end/PropertiesSection.js:
     34        * inspector/front-end/RemoteObject.js:
     35        (WebInspector.RemoteObject):
     36        (WebInspector.RemoteObject.fromPayload):
     37        * inspector/front-end/Section.js:
     38        * inspector/front-end/inspector.css:
     39        (.console-group-messages .section .header .title):
     40        (.section .properties .name, .event-properties .name):
     41
    1422012-08-08  Adam Barth  <abarth@webkit.org>
    243
  • trunk/Source/WebCore/inspector/ConsoleMessage.cpp

    r125046 r125079  
    134134}
    135135
    136 void ConsoleMessage::addToFrontend(InspectorFrontend::Console* frontend, InjectedScriptManager* injectedScriptManager, bool generatePreview)
     136void ConsoleMessage::addToFrontend(InspectorFrontend::Console* frontend, InjectedScriptManager* injectedScriptManager)
    137137{
    138138    RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console::ConsoleMessage::create()
     
    152152            RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > jsonArgs = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create();
    153153            for (unsigned i = 0; i < m_arguments->argumentCount(); ++i) {
    154                 RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), "console", generatePreview);
     154                RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), "console");
    155155                if (!inspectorValue) {
    156156                    ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/inspector/ConsoleMessage.h

    r125046 r125079  
    5757    ~ConsoleMessage();
    5858
    59     void addToFrontend(InspectorFrontend::Console*, InjectedScriptManager*, bool generatePreview);
     59    void addToFrontend(InspectorFrontend::Console*, InjectedScriptManager*);
    6060    void updateRepeatCountInConsole(InspectorFrontend::Console*);
    6161    void incrementCount() { ++m_repeatCount; }
  • trunk/Source/WebCore/inspector/InjectedScript.cpp

    r125046 r125079  
    181181#endif
    182182
    183 PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(const ScriptValue& value, const String& groupName, bool generatePreview) const
     183PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(const ScriptValue& value, const String& groupName) const
    184184{
    185185    ASSERT(!hasNoValue());
     
    188188    wrapFunction.appendArgument(groupName);
    189189    wrapFunction.appendArgument(canAccessInspectedWindow());
    190     wrapFunction.appendArgument(generatePreview);
    191190    bool hadException = false;
    192191    ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException);
  • trunk/Source/WebCore/inspector/InjectedScript.h

    r125046 r125079  
    8787#endif
    8888
    89     PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapObject(const ScriptValue&, const String& groupName, bool generatePreview = false) const;
     89    PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapObject(const ScriptValue&, const String& groupName) const;
    9090    PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapNode(Node*, const String& groupName);
    9191    PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapSerializedObject(SerializedScriptValue*, const String& groupName) const;
  • trunk/Source/WebCore/inspector/InjectedScriptSource.js

    r125046 r125079  
    7272     * @param {string} groupName
    7373     * @param {boolean} canAccessInspectedWindow
    74      * @param {boolean} generatePreview
    7574     * @return {Object}
    7675     */
    77     wrapObject: function(object, groupName, canAccessInspectedWindow, generatePreview)
     76    wrapObject: function(object, groupName, canAccessInspectedWindow)
    7877    {
    7978        if (canAccessInspectedWindow)
    80             return this._wrapObject(object, groupName, false, generatePreview);
     79            return this._wrapObject(object, groupName);
    8180
    8281        var result = {};
     
    130129     * @param {string=} objectGroupName
    131130     * @param {boolean=} forceValueType
    132      * @param {boolean=} generatePreview
    133131     * @return {InjectedScript.RemoteObject}
    134132     */
    135     _wrapObject: function(object, objectGroupName, forceValueType, generatePreview)
     133    _wrapObject: function(object, objectGroupName, forceValueType)
    136134    {
    137135        try {
    138             return new InjectedScript.RemoteObject(object, objectGroupName, forceValueType, generatePreview);
     136            return new InjectedScript.RemoteObject(object, objectGroupName, forceValueType);
    139137        } catch (e) {
    140138            try {
     
    407405        try {
    408406            return { wasThrown: false,
    409                      result: this._wrapObject(this._evaluateOn(evalFunction, object, objectGroup, expression, isEvalOnCallFrame, injectCommandLineAPI), objectGroup, returnByValue, false) };
     407                     result: this._wrapObject(this._evaluateOn(evalFunction, object, objectGroup, expression, isEvalOnCallFrame, injectCommandLineAPI), objectGroup, returnByValue) };
    410408        } catch (e) {
    411409            return this._createThrownValue(e, objectGroup);
     
    638636            return this._toString(obj);
    639637
    640         if (subtype === "node") {
    641             var description = obj.nodeName.toLowerCase();
    642             switch (obj.nodeType) {
    643             case 1 /* Node.ELEMENT_NODE */:
    644                 description =  "<" + description + ">";
    645                 break;
    646             case 10 /*Node.DOCUMENT_TYPE_NODE */:
    647                 description = "<!DOCTYPE " + description + ">";
    648                 break;
    649             }
    650             return description;
    651         }
    652 
    653638        var className = InjectedScriptHost.internalConstructorName(obj);
    654639        if (subtype === "array") {
     
    694679 * @param {string=} objectGroupName
    695680 * @param {boolean=} forceValueType
    696  * @param {boolean=} generatePreview
    697  */
    698 InjectedScript.RemoteObject = function(object, objectGroupName, forceValueType, generatePreview)
     681 */
     682InjectedScript.RemoteObject = function(object, objectGroupName, forceValueType)
    699683{
    700684    this.type = typeof object;
     
    715699
    716700    this.objectId = injectedScript._bind(object, objectGroupName);
    717     var subtype = injectedScript._subtype(object);
     701    var subtype = injectedScript._subtype(object)
    718702    if (subtype)
    719703        this.subtype = subtype;
    720704    this.className = InjectedScriptHost.internalConstructorName(object);
    721705    this.description = injectedScript._describe(object);
    722 
    723     if (generatePreview && (this.type === "object" || injectedScript._isHTMLAllCollection(object)))
    724         this.preview = this._generatePreview(/** @type {!Object} */ object);
    725706}
    726707
    727 InjectedScript.RemoteObject.prototype = {
    728     /**
    729      * @param {!Object} object
    730      */
    731     _generatePreview: function(object)
    732     {
    733         var preview = [];
    734         var isArray = this.subtype === "array";
    735         var elementsToDump = isArray ? 100 : 5;
    736  
    737         var propertyNames = Object.getOwnPropertyNames(object);
    738         var lossless = true;
    739         var overflow = false;
    740 
    741         try {
    742             for (var i = 0; i < propertyNames.length; ++i) {
    743                 if (preview.length >= elementsToDump) {
    744                     overflow = true;
    745                     lossless = false;
    746                     break;
    747                 }
    748                 var name = propertyNames[i];
    749                 if (isArray && name === "length")
    750                     continue;
    751 
    752                 var descriptor = Object.getOwnPropertyDescriptor(object, name);
    753                 if (!("value" in descriptor) || !descriptor.enumerable) {
    754                     lossless = false;
    755                     continue;
    756                 }
    757 
    758                 var value = descriptor.value;
    759                 if (value === null) {
    760                     preview.push([name, "null"]);
    761                     continue;
    762                 }
    763    
    764                 const maxLength = 100;
    765                 var type = typeof value;
    766 
    767                 if (InjectedScript.primitiveTypes[type]) {
    768                     if (type === "string" && value.length > maxLength) {
    769                         value = this._abbreviateString(value, maxLength, true);
    770                         lossless = false;
    771                     }
    772                     preview.push([name, type, value + ""]);
    773                     continue;
    774                 }
    775    
    776                 lossless = false;
    777 
    778                 if (type === "function")
    779                     continue;
    780 
    781                 var subtype = injectedScript._subtype(value);
    782                 preview.push([name, type, this._abbreviateString(injectedScript._describe(value), maxLength, subtype === "regexp"), subtype]);
    783             }
    784             if (!preview.length)
    785                 return undefined;
    786 
    787             if (!lossless)
    788                 preview.push("lossy");
    789             if (overflow)
    790                 preview.push("overflow");
    791             return preview;
    792         } catch (e) {
    793             return undefined;
    794         }
    795     },
    796 
    797     /**
    798      * @param {string} string
    799      * @param {number} maxLength
    800      * @param {boolean=} middle
    801      * @returns
    802      */
    803     _abbreviateString: function(string, maxLength, middle)
    804     {
    805         if (string.length <= maxLength)
    806             return string;
    807         if (middle) {
    808             var leftHalf = maxLength >> 1;
    809             var rightHalf = maxLength - leftHalf - 1;
    810             return string.substr(0, leftHalf) + "\u2026" + string.substr(string.length - rightHalf, rightHalf);
    811         }
    812         return string.substr(0, maxLength) + "\u2026";
    813     }
    814 }
    815708/**
    816709 * @constructor
  • trunk/Source/WebCore/inspector/InspectorConsoleAgent.cpp

    r125046 r125079  
    8484    if (m_expiredConsoleMessageCount) {
    8585        ConsoleMessage expiredMessage(OtherMessageSource, LogMessageType, WarningMessageLevel, String::format("%d console messages are not shown.", m_expiredConsoleMessageCount), "", 0, "");
    86         expiredMessage.addToFrontend(m_frontend, m_injectedScriptManager, false);
     86        expiredMessage.addToFrontend(m_frontend, m_injectedScriptManager);
    8787    }
    8888
    8989    size_t messageCount = m_consoleMessages.size();
    9090    for (size_t i = 0; i < messageCount; ++i)
    91         m_consoleMessages[i]->addToFrontend(m_frontend, m_injectedScriptManager, false);
     91        m_consoleMessages[i]->addToFrontend(m_frontend, m_injectedScriptManager);
    9292}
    9393
     
    282282        m_consoleMessages.append(consoleMessage);
    283283        if (m_frontend && m_state->getBoolean(ConsoleAgentState::consoleMessagesEnabled))
    284             m_previousMessage->addToFrontend(m_frontend, m_injectedScriptManager, true);
     284            m_previousMessage->addToFrontend(m_frontend, m_injectedScriptManager);
    285285    }
    286286
  • trunk/Source/WebCore/inspector/front-end/ConsoleMessage.js

    r125046 r125079  
    226226                formattedResult.appendChild(document.createTextNode(parameters[i].description));
    227227            else
    228                 formattedResult.appendChild(this._formatParameter(parameters[i], false, true));
     228                formattedResult.appendChild(this._formatParameter(parameters[i]));
    229229            if (i < parameters.length - 1)
    230230                formattedResult.appendChild(document.createTextNode(" "));
     
    235235    /**
    236236     * @param {boolean=} forceObjectFormat
    237      * @param {boolean=} includePreview
    238237     */
    239     _formatParameter: function(output, forceObjectFormat, includePreview)
     238    _formatParameter: function(output, forceObjectFormat)
    240239    {
    241240        var type;
     
    255254        var span = document.createElement("span");
    256255        span.className = "console-formatted-" + type + " source-code";
    257         formatter.call(this, output, span, includePreview);
     256        formatter.call(this, output, span);
    258257        return span;
    259258    },
     
    264263    },
    265264
    266     _formatParameterAsObject: function(obj, elem, includePreview)
    267     {
    268         this._formatParameterAsArrayOrObject(obj, obj.description, elem, includePreview);
    269     },
    270 
    271     /**
    272      * @param {WebInspector.RemoteObject} obj
    273      * @param {string} description
    274      * @param {Element} elem
    275      * @param {boolean} includePreview
    276      */
    277     _formatParameterAsArrayOrObject: function(obj, description, elem, includePreview)
    278     {
    279         var titleElement = document.createElement("span");
    280         if (description)
    281             titleElement.createTextChild(description);
    282         if (includePreview && obj.previewProperties) {
    283             titleElement.addStyleClass("console-object-preview");
    284             var lossless = this._appendObjectPreview(obj, description, titleElement);
    285             if (lossless) {
    286                 elem.appendChild(titleElement);
    287                 return;
    288             }
    289         }
    290         var section = new WebInspector.ObjectPropertiesSection(obj, titleElement);
     265    _formatParameterAsObject: function(obj, elem)
     266    {
     267        var section = new WebInspector.ObjectPropertiesSection(obj, obj.description);
    291268        section.enableContextMenu();
    292269        elem.appendChild(section.element);
    293     },
    294 
    295     /**
    296      * @param {WebInspector.RemoteObject} obj
    297      * @param {string} description
    298      * @param {Element} titleElement
    299      * @return {boolean} true iff preview captured all information.
    300      */
    301     _appendObjectPreview: function(obj, description, titleElement)
    302     {
    303         var preview = obj.previewProperties;
    304         var isLosslessPreview = true;
    305         var isArray = obj.subtype === "array";
    306 
    307         if (description)
    308             titleElement.createTextChild(" ");
    309         titleElement.createTextChild(isArray ? "[" : "{");
    310         for (var i = 0; i < preview.length; ++i) {
    311             var property = preview[i];
    312             if (property === "lossy") {
    313                 isLosslessPreview = false;
    314                 continue;
    315             }
    316             if (property === "overflow") {
    317                 titleElement.createChild("span").textContent = "\u2026";
    318                 break;
    319             }
    320 
    321             var name = property[0];
    322             var type = property[1];
    323             var value = property[2];
    324 
    325             if (i > 0)
    326                 titleElement.createTextChild(", ");
    327 
    328             if (!isArray || name != i) {
    329                 titleElement.createChild("span", "name").textContent = name;
    330                 titleElement.createTextChild(": ");
    331             }
    332 
    333             var span = titleElement.createChild("span", "console-formatted-" + type);
    334             switch (type) {
    335             case "object":
    336                 var subtype = property[3];
    337                 if (subtype === "node")
    338                     span.addStyleClass("console-formatted-preview-node");
    339                 else if (subtype === "regexp")
    340                     span.addStyleClass("console-formatted-string");
    341                 span.textContent = value;
    342                 break;
    343             case "string":
    344                 span.textContent = "\"" + value.replace(/\n/g, "\u21B5") + "\"";
    345                 break;
    346             case "null":
    347             case "undefined":
    348                 span.textContent = type;
    349                 break;
    350             default:
    351                 span.textContent = String(value);
    352             }
    353         }
    354         titleElement.createTextChild(isArray ? "]" : "}");
    355         return isLosslessPreview;
    356270    },
    357271
     
    363277                // Sometimes DOM is loaded after the sync message is being formatted, so we get no
    364278                // nodeId here. So we fall back to object formatting here.
    365                 this._formatParameterAsObject(object, elem, false);
     279                this._formatParameterAsObject(object, elem);
    366280                return;
    367281            }
     
    380294    _formatParameterAsArray: function(array, elem)
    381295    {
    382         if (array.previewProperties) {
    383             this._formatParameterAsArrayOrObject(array, "", elem, true);
    384             return;
    385         }
    386 
    387296        const maxFlatArrayLength = 100;
    388297        if (array.arrayLength() > maxFlatArrayLength)
     
    444353            if (i < length - 1)
    445354                elem.appendChild(document.createTextNode(", "));
    446         }
     355        }       
    447356        appendUndefined(elem, length);
    448357
     
    453362    {
    454363        // Prevent infinite expansion of cross-referencing arrays.
    455         return this._formatParameter(output, output.subtype && output.subtype === "array", false);
     364        return this._formatParameter(output, output.subtype && output.subtype === "array");
    456365    },
    457366
     
    462371        function parameterFormatter(force, obj)
    463372        {
    464             return this._formatParameter(obj, force, false);
     373            return this._formatParameter(obj, force);
    465374        }
    466375
  • trunk/Source/WebCore/inspector/front-end/DOMExtension.js

    r125046 r125079  
    254254
    255255/**
    256  * @param {string} text
    257  */
    258 Element.prototype.createTextChild = function(text)
    259 {
    260     var element = this.ownerDocument.createTextNode(text);
    261     this.appendChild(element);
    262     return element;
    263 }
    264 
    265 DocumentFragment.prototype.createTextChild = Element.prototype.createTextChild;
    266 
    267 /**
    268256 * @return {number}
    269257 */
  • trunk/Source/WebCore/inspector/front-end/ObjectPropertiesSection.js

    r125046 r125079  
    2929 * @extends {WebInspector.PropertiesSection}
    3030 * @param {WebInspector.RemoteObject=} object
    31  * @param {string|Element=} title
     31 * @param {string=} title
    3232 * @param {string=} subtitle
    3333 * @param {string=} emptyPlaceholder
     
    4646    this.skipProto = false;
    4747
    48     WebInspector.PropertiesSection.call(this, title || "", subtitle);
     48    WebInspector.PropertiesSection.call(this, title, subtitle);
    4949}
    5050
  • trunk/Source/WebCore/inspector/front-end/PropertiesSection.js

    r125046 r125079  
    3131 * @constructor
    3232 * @extends {WebInspector.Section}
    33  * @param {string|Element} title
    3433 * @param {string=} subtitle
    3534 */
  • trunk/Source/WebCore/inspector/front-end/RemoteObject.js

    r125046 r125079  
    3636 * @param {*} value
    3737 * @param {string=} description
    38  * @param {Array=} previewProperties
    39  */
    40 WebInspector.RemoteObject = function(objectId, type, subtype, value, description, previewProperties)
     38 */
     39WebInspector.RemoteObject = function(objectId, type, subtype, value, description)
    4140{
    4241    this._type = type;
     
    4746        this._description = description;
    4847        this._hasChildren = true;
    49         this._previewProperties = previewProperties;
    5048    } else {
    5149        // Primitive or null object.
     
    107105    console.assert(typeof payload === "object", "Remote object payload should only be an object");
    108106
    109     return new WebInspector.RemoteObject(payload.objectId, payload.type, payload.subtype, payload.value, payload.description, payload.preview);
     107    return new WebInspector.RemoteObject(payload.objectId, payload.type, payload.subtype, payload.value, payload.description);
    110108}
    111109
     
    155153    {
    156154        return this._hasChildren;
    157     },
    158 
    159     /** @return {Array|undefined} */
    160     get previewProperties()
    161     {
    162         return this._previewProperties;
    163155    },
    164156
  • trunk/Source/WebCore/inspector/front-end/Section.js

    r125046 r125079  
    3030/**
    3131 * @constructor
    32  * @param {string|Element} title
    3332 * @param {string=} subtitle
    3433 */
  • trunk/Source/WebCore/inspector/front-end/inspector.css

    r125046 r125079  
    10261026    color: black;
    10271027    font-weight: normal;
    1028     line-height: 13px;
    10291028}
    10301029
     
    10871086.console-formatted-null, .console-formatted-undefined {
    10881087    color: rgb(128, 128, 128);
    1089 }
    1090 
    1091 .console-formatted-preview-node,
    1092 .section .console-formatted-node {
    1093     color: rgb(136, 18, 128);
    1094 }
    1095 
    1096 .console-object-preview {
    1097     font-style: italic;
    10981088}
    10991089
     
    15911581}
    15921582
    1593 .section .properties .name, .event-properties .name, .console-formatted-object .name {
     1583.section .properties .name, .event-properties .name {
    15941584    color: rgb(136, 19, 145);
    15951585}
Note: See TracChangeset for help on using the changeset viewer.