Changeset 50064 in webkit


Ignore:
Timestamp:
Oct 26, 2009 9:10:06 AM (14 years ago)
Author:
eric@webkit.org
Message:

2009-10-26 Keishi Hattori <casey.hattori@gmail.com>

Reviewed by Pavel Feldman.

Fix for Console not showing repeat count when repeatedly logging an Event
https://bugs.webkit.org/show_bug.cgi?id=30324

  • inspector/console-tests-expected.txt:

2009-10-26 Keishi Hattori <casey.hattori@gmail.com>

Reviewed by Pavel Feldman.

Fix for Console not showing repeat count when repeatedly logging an Event
https://bugs.webkit.org/show_bug.cgi?id=30324

  • inspector/ConsoleMessage.cpp: (WebCore::ConsoleMessage::addToConsole): (WebCore::ConsoleMessage::updateRepeatCountInConsole): Added.
  • inspector/ConsoleMessage.h:
  • inspector/InspectorController.cpp: (WebCore::InspectorController::addConsoleMessage): Calls updateRepeatCountInConsole if it is a repeating message.
  • inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::addConsoleMessage): Renamed WebCore::InspectorFrontend::addMessageToConsole (WebCore::InspectorFrontend::updateConsoleMessageRepeatCount): Added. Called when repeatCount is incremented.
  • inspector/InspectorFrontend.h:
  • inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.addMessage): Removed calls to msg.isEqual. (WebInspector.ConsoleView.prototype.updateMessageRepeatCount): Added. (WebInspector.ConsoleView.prototype._incrementErrorWarningCount): Added. Updates the error/warning count. (WebInspector.ConsoleView.prototype.clearMessages): (WebInspector.ConsoleMessage): (WebInspector.ConsoleMessage.prototype.toMessageElement): Use ConsoleMessage._updateRepeatCount (WebInspector.ConsoleMessage.prototype._updateRepeatCount):
  • inspector/front-end/inspector.js: (WebInspector.addConsoleMessage): Renamed WebInspector.addMessageToConsole. (WebInspector.updateConsoleMessageRepeatCount): Added.
Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r50063 r50064  
     12009-10-26  Keishi Hattori  <casey.hattori@gmail.com>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Fix for Console not showing repeat count when repeatedly logging an Event
     6        https://bugs.webkit.org/show_bug.cgi?id=30324
     7
     8        * inspector/console-tests-expected.txt:
     9
    1102009-10-26  Eric Carlson  <eric.carlson@apple.com>
    211
  • trunk/LayoutTests/inspector/console-tests-expected.txt

    r49760 r50064  
    1717console-tests.html:11warn console-message console-js-source console-warning-level
    1818console-tests.html:12error console-message console-js-source console-error-level
    19 console-tests.html:14repeated console-message console-js-source console-log-level
     195console-tests.html:14repeated console-message console-js-source console-log-level repeated-message
    2020console-tests.html:16count: 1 console-message console-js-source console-log-level
    2121console-tests.html:16count: 2 console-message console-js-source console-log-level
  • trunk/WebCore/ChangeLog

    r50062 r50064  
     12009-10-26  Keishi Hattori  <casey.hattori@gmail.com>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Fix for Console not showing repeat count when repeatedly logging an Event
     6        https://bugs.webkit.org/show_bug.cgi?id=30324
     7
     8        * inspector/ConsoleMessage.cpp:
     9        (WebCore::ConsoleMessage::addToConsole):
     10        (WebCore::ConsoleMessage::updateRepeatCountInConsole): Added.
     11        * inspector/ConsoleMessage.h:
     12        * inspector/InspectorController.cpp:
     13        (WebCore::InspectorController::addConsoleMessage): Calls updateRepeatCountInConsole if it is a repeating message.
     14        * inspector/InspectorFrontend.cpp:
     15        (WebCore::InspectorFrontend::addConsoleMessage): Renamed WebCore::InspectorFrontend::addMessageToConsole
     16        (WebCore::InspectorFrontend::updateConsoleMessageRepeatCount): Added. Called when repeatCount is incremented.
     17        * inspector/InspectorFrontend.h:
     18        * inspector/front-end/ConsoleView.js:
     19        (WebInspector.ConsoleView.prototype.addMessage): Removed calls to msg.isEqual.
     20        (WebInspector.ConsoleView.prototype.updateMessageRepeatCount): Added.
     21        (WebInspector.ConsoleView.prototype._incrementErrorWarningCount): Added. Updates the error/warning count.
     22        (WebInspector.ConsoleView.prototype.clearMessages):
     23        (WebInspector.ConsoleMessage):
     24        (WebInspector.ConsoleMessage.prototype.toMessageElement): Use ConsoleMessage._updateRepeatCount
     25        (WebInspector.ConsoleMessage.prototype._updateRepeatCount):
     26        * inspector/front-end/inspector.js:
     27        (WebInspector.addConsoleMessage): Renamed WebInspector.addMessageToConsole.
     28        (WebInspector.updateConsoleMessageRepeatCount): Added.
     29
    1302009-10-26  Chris Fleizach  <cfleizach@apple.com>
    231
  • trunk/WebCore/inspector/ConsoleMessage.cpp

    r48430 r50064  
    9191    jsonObj.set("groupLevel", static_cast<int>(m_groupLevel));
    9292    jsonObj.set("repeatCount", static_cast<int>(m_repeatCount));
    93     frontend->addMessageToConsole(jsonObj, m_frames, m_wrappedArguments,  m_message);
     93    frontend->addConsoleMessage(jsonObj, m_frames, m_wrappedArguments,  m_message);
     94}
     95
     96void ConsoleMessage::updateRepeatCountInConsole(InspectorFrontend* frontend)
     97{
     98    frontend->updateConsoleMessageRepeatCount(m_repeatCount);
    9499}
    95100#endif // ENABLE(INSPECTOR)
  • trunk/WebCore/inspector/ConsoleMessage.h

    r48430 r50064  
    5050#if ENABLE(INSPECTOR)
    5151        void addToConsole(InspectorFrontend* frontend);
     52        void updateRepeatCountInConsole(InspectorFrontend* frontend);
    5253#endif
    5354        void incrementCount() { ++m_repeatCount; };
  • trunk/WebCore/inspector/InspectorController.cpp

    r49963 r50064  
    375375        m_previousMessage->incrementCount();
    376376        delete consoleMessage;
     377        if (windowVisible())
     378            m_previousMessage->updateRepeatCountInConsole(m_frontend.get());
    377379    } else {
    378380        m_previousMessage = consoleMessage;
    379381        m_consoleMessages.append(consoleMessage);
    380     }
    381 
    382     if (windowVisible())
    383         m_previousMessage->addToConsole(m_frontend.get());
     382        if (windowVisible())
     383            m_previousMessage->addToConsole(m_frontend.get());
     384    }
    384385}
    385386
  • trunk/WebCore/inspector/InspectorFrontend.cpp

    r49615 r50064  
    7979}
    8080
    81 void InspectorFrontend::addMessageToConsole(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message)
    82 {
    83     OwnPtr<ScriptFunctionCall> function(newFunctionCall("addMessageToConsole"));
     81void InspectorFrontend::addConsoleMessage(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message)
     82{
     83    OwnPtr<ScriptFunctionCall> function(newFunctionCall("addConsoleMessage"));
    8484    function->appendArgument(messageObj);
    8585    if (!frames.isEmpty()) {
     
    9191    } else
    9292        function->appendArgument(message);
     93    function->call();
     94}
     95
     96void InspectorFrontend::updateConsoleMessageRepeatCount(const int count)
     97{
     98    OwnPtr<ScriptFunctionCall> function(newFunctionCall("updateConsoleMessageRepeatCount"));
     99    function->appendArgument(count);
    93100    function->call();
    94101}
  • trunk/WebCore/inspector/InspectorFrontend.h

    r49615 r50064  
    6464
    6565        void didCommitLoad();
    66         void addMessageToConsole(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message);
     66        void addConsoleMessage(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message);
     67        void updateConsoleMessageRepeatCount(const int count);
    6768        void clearConsoleMessages();
    6869
  • trunk/WebCore/inspector/front-end/ConsoleView.js

    r50039 r50064  
    202202    {
    203203        if (msg instanceof WebInspector.ConsoleMessage && !(msg instanceof WebInspector.ConsoleCommandResult)) {
    204             msg.totalRepeatCount = msg.repeatCount;
    205             msg.repeatDelta = msg.repeatCount;
    206 
    207             var messageRepeated = false;
    208 
    209             if (msg.isEqual && msg.isEqual(this.previousMessage)) {
    210                 // Because sometimes we get a large number of repeated messages and sometimes
    211                 // we get them one at a time, we need to know the difference between how many
    212                 // repeats we used to have and how many we have now.
    213                 msg.repeatDelta -= this.previousMessage.totalRepeatCount;
    214 
    215                 if (!isNaN(this.repeatCountBeforeCommand))
    216                     msg.repeatCount -= this.repeatCountBeforeCommand;
    217 
    218                 if (!this.commandSincePreviousMessage) {
    219                     // Recreate the previous message element to reset the repeat count.
    220                     var messagesElement = this.currentGroup.messagesElement;
    221                     messagesElement.removeChild(messagesElement.lastChild);
    222                     messagesElement.appendChild(msg.toMessageElement());
    223 
    224                     messageRepeated = true;
    225                 }
    226             } else
    227                 delete this.repeatCountBeforeCommand;
    228 
    229             // Increment the error or warning count
    230             switch (msg.level) {
    231             case WebInspector.ConsoleMessage.MessageLevel.Warning:
    232                 WebInspector.warnings += msg.repeatDelta;
    233                 break;
    234             case WebInspector.ConsoleMessage.MessageLevel.Error:
    235                 WebInspector.errors += msg.repeatDelta;
    236                 break;
    237             }
     204            this._incrementErrorWarningCount(msg);
    238205
    239206            // Add message to the resource panel
     
    246213            this.commandSincePreviousMessage = false;
    247214            this.previousMessage = msg;
    248 
    249             if (messageRepeated)
    250                 return;
    251215        } else if (msg instanceof WebInspector.ConsoleCommand) {
    252216            if (this.previousMessage) {
    253217                this.commandSincePreviousMessage = true;
    254                 this.repeatCountBeforeCommand = this.previousMessage.totalRepeatCount;
    255218            }
    256219        }
     
    280243    },
    281244
     245    updateMessageRepeatCount: function(count) {
     246        var msg = this.previousMessage;
     247        var prevRepeatCount = msg.totalRepeatCount;
     248       
     249        if (!this.commandSincePreviousMessage) {
     250            msg.repeatDelta = count - prevRepeatCount;
     251            msg.repeatCount = msg.repeatCount + msg.repeatDelta;
     252            msg.totalRepeatCount = count;
     253            msg._updateRepeatCount();
     254            this._incrementErrorWarningCount(msg);
     255        } else {
     256            msgCopy = new WebInspector.ConsoleMessage(msg.source, msg.type, msg.level, msg.line, msg.url, msg.groupLevel, count - prevRepeatCount);
     257            msgCopy.totalRepeatCount = count;
     258            msgCopy.setMessageBody(msg.args);
     259            this.addMessage(msgCopy);
     260        }
     261    },
     262
     263    _incrementErrorWarningCount: function(msg) {
     264        switch (msg.level) {
     265            case WebInspector.ConsoleMessage.MessageLevel.Warning:
     266                WebInspector.warnings += msg.repeatDelta;
     267                break;
     268            case WebInspector.ConsoleMessage.MessageLevel.Error:
     269                WebInspector.errors += msg.repeatDelta;
     270                break;
     271        }
     272    },
     273
    282274    clearMessages: function(clearInspectorController)
    283275    {
     
    297289
    298290        delete this.commandSincePreviousMessage;
    299         delete this.repeatCountBeforeCommand;
    300291        delete this.previousMessage;
    301292    },
     
    618609    this.groupLevel = groupLevel;
    619610    this.repeatCount = repeatCount;
     611    this.repeatDelta = repeatCount;
     612    this.totalRepeatCount = repeatCount;
    620613    if (arguments.length > 7)
    621614        this.setMessageBody(Array.prototype.slice.call(arguments, 7));
     
    625618    setMessageBody: function(args)
    626619    {
     620        this.args = args;
    627621        switch (this.type) {
    628622            case WebInspector.ConsoleMessage.MessageType.Trace:
     
    720714    toMessageElement: function()
    721715    {
    722         if (this.propertiesSection)
    723             return this.propertiesSection.element;
     716        if (this._element)
     717            return this._element;
    724718
    725719        var element = document.createElement("div");
     
    727721        element.className = "console-message";
    728722
     723        this._element = element;
     724
    729725        switch (this.source) {
    730726            case WebInspector.ConsoleMessage.MessageSource.HTML:
     
    766762        }
    767763       
    768         if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup) {
     764        if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup)
    769765            element.addStyleClass("console-group-title");
    770         }
    771766
    772767        if (this.elementsTreeOutline) {
     
    774769            element.appendChild(this.elementsTreeOutline.element);
    775770            return element;
    776         }
    777 
    778         if (this.repeatCount > 1) {
    779             var messageRepeatCountElement = document.createElement("span");
    780             messageRepeatCountElement.className = "bubble";
    781             messageRepeatCountElement.textContent = this.repeatCount;
    782 
    783             element.appendChild(messageRepeatCountElement);
    784             element.addStyleClass("repeated-message");
    785771        }
    786772
     
    807793        element.appendChild(messageTextElement);
    808794
     795        if (this.repeatCount > 1)
     796            this._updateRepeatCount();
     797
    809798        return element;
     799    },
     800
     801    _updateRepeatCount: function() {
     802        if (!this.repeatCountElement) {
     803            this.repeatCountElement = document.createElement("span");
     804            this.repeatCountElement.className = "bubble";
     805   
     806            this._element.insertBefore(this.repeatCountElement, this._element.firstChild);
     807            this._element.addStyleClass("repeated-message");
     808        }
     809        this.repeatCountElement.textContent = this.repeatCount;
    810810    },
    811811
  • trunk/WebCore/inspector/front-end/inspector.js

    r50039 r50064  
    11751175}
    11761176
    1177 WebInspector.addMessageToConsole = function(payload)
     1177WebInspector.addConsoleMessage = function(payload)
    11781178{
    11791179    var consoleMessage = new WebInspector.ConsoleMessage(
     
    11871187    consoleMessage.setMessageBody(Array.prototype.slice.call(arguments, 1));
    11881188    this.console.addMessage(consoleMessage);
     1189}
     1190
     1191WebInspector.updateConsoleMessageRepeatCount = function(count)
     1192{
     1193    this.console.updateMessageRepeatCount(count);
    11891194}
    11901195
Note: See TracChangeset for help on using the changeset viewer.