Changeset 52415 in webkit


Ignore:
Timestamp:
Dec 20, 2009 4:41:02 AM (14 years ago)
Author:
pfeldman@chromium.org
Message:

2009-12-20 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Darin Adler.

Web Inspector: Constrain the number of messages the inspector shows.

https://bugs.webkit.org/show_bug.cgi?id=20919

  • English.lproj/localizedStrings.js:
  • inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::addConsoleMessage): (WebCore::InspectorController::clearConsoleMessages): (WebCore::InspectorController::populateScriptObjects):
  • inspector/InspectorController.h:
  • inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::updateConsoleMessageExpiredCount):
  • inspector/InspectorFrontend.h:
  • inspector/front-end/inspector.js: (WebInspector.updateConsoleMessageExpiredCount):
Location:
trunk/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r52406 r52415  
     12009-12-20  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Web Inspector: Constrain the number of messages the inspector shows.
     6
     7        https://bugs.webkit.org/show_bug.cgi?id=20919
     8
     9        * English.lproj/localizedStrings.js:
     10        * inspector/InspectorController.cpp:
     11        (WebCore::InspectorController::InspectorController):
     12        (WebCore::InspectorController::addConsoleMessage):
     13        (WebCore::InspectorController::clearConsoleMessages):
     14        (WebCore::InspectorController::populateScriptObjects):
     15        * inspector/InspectorController.h:
     16        * inspector/InspectorFrontend.cpp:
     17        (WebCore::InspectorFrontend::updateConsoleMessageExpiredCount):
     18        * inspector/InspectorFrontend.h:
     19        * inspector/front-end/inspector.js:
     20        (WebInspector.updateConsoleMessageExpiredCount):
     21
    1222009-12-20  Andrei Popescu  <andreip@google.com>
    223
  • trunk/WebCore/inspector/InspectorController.cpp

    r52329 r52415  
    122122static const float minimumAttachedHeight = 250.0f;
    123123static const float maximumAttachedHeightRatio = 0.75f;
     124static const unsigned maximumConsoleMessages = 1000;
     125static const unsigned expireConsoleMessagesStep = 100;
    124126
    125127static unsigned s_inspectorControllerCount;
     
    129131    , m_client(client)
    130132    , m_page(0)
     133    , m_expiredConsoleMessageCount(0)
    131134    , m_scriptState(0)
    132135    , m_windowVisible(false)
     
    356359            m_previousMessage->addToConsole(m_frontend.get());
    357360    }
     361
     362    if (!windowVisible() && m_consoleMessages.size() >= maximumConsoleMessages) {
     363        m_expiredConsoleMessageCount += expireConsoleMessagesStep;
     364        for (size_t i = 0; i < expireConsoleMessagesStep; ++i)
     365            delete m_consoleMessages[i];
     366        m_consoleMessages.remove(0, expireConsoleMessagesStep);
     367    }
    358368}
    359369
     
    362372    deleteAllValues(m_consoleMessages);
    363373    m_consoleMessages.clear();
     374    m_expiredConsoleMessageCount = 0;
    364375    m_previousMessage = 0;
    365376    m_groupLevel = 0;
     
    653664        it->second->updateScriptObject(m_frontend.get());
    654665
     666    if (m_expiredConsoleMessageCount)
     667        m_frontend->updateConsoleMessageExpiredCount(m_expiredConsoleMessageCount);
    655668    unsigned messageCount = m_consoleMessages.size();
    656669    for (unsigned i = 0; i < messageCount; ++i)
     
    10421055    // thing by the Inspector. They should be made into distinct types.
    10431056    resource->setXMLHttpResponseText(ScriptString(sourceString));
    1044    
     1057
    10451058    if (windowVisible())
    10461059        resource->updateScriptObject(m_frontend.get());
  • trunk/WebCore/inspector/InspectorController.h

    r52294 r52415  
    324324    FrameResourcesMap m_frameResources;
    325325    Vector<ConsoleMessage*> m_consoleMessages;
     326    unsigned m_expiredConsoleMessageCount;
    326327    HashMap<String, double> m_times;
    327328    HashMap<String, unsigned> m_counts;
  • trunk/WebCore/inspector/InspectorFrontend.cpp

    r52154 r52415  
    7878}
    7979
     80void InspectorFrontend::updateConsoleMessageExpiredCount(unsigned count)
     81{
     82    ScriptFunctionCall function(m_scriptState, m_webInspector, "dispatch");
     83    function.appendArgument("updateConsoleMessageExpiredCount");
     84    function.appendArgument(count);
     85    function.call();
     86}
     87
    8088void InspectorFrontend::addConsoleMessage(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message)
    8189{
     
    94102}
    95103
    96 void InspectorFrontend::updateConsoleMessageRepeatCount(const int count)
     104void InspectorFrontend::updateConsoleMessageRepeatCount(unsigned count)
    97105{
    98106    ScriptFunctionCall function(m_scriptState, m_webInspector, "dispatch");
  • trunk/WebCore/inspector/InspectorFrontend.h

    r52157 r52415  
    6464
    6565        void didCommitLoad();
     66
     67        void updateConsoleMessageExpiredCount(unsigned count);
    6668        void addConsoleMessage(const ScriptObject& messageObj, const Vector<ScriptString>& frames, const Vector<ScriptValue> wrappedArguments, const String& message);
    67         void updateConsoleMessageRepeatCount(const int count);
     69        void updateConsoleMessageRepeatCount(unsigned count);
    6870        void clearConsoleMessages();
    6971
  • trunk/WebCore/inspector/front-end/inspector.js

    r52397 r52415  
    12361236    // Cleanup elements panel early on inspected page refresh.
    12371237    WebInspector.setDocument(null);
     1238}
     1239
     1240WebInspector.updateConsoleMessageExpiredCount = function(count)
     1241{
     1242    var message = String.sprintf(WebInspector.UIString("%d console messages are not shown."), count);
     1243    WebInspector.console.addMessage(new WebInspector.ConsoleTextMessage(message, WebInspector.ConsoleMessage.MessageLevel.Warning));
    12381244}
    12391245
Note: See TracChangeset for help on using the changeset viewer.