Changeset 64729 in webkit


Ignore:
Timestamp:
Aug 5, 2010 3:00:32 AM (14 years ago)
Author:
pfeldman@chromium.org
Message:

2010-08-05 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

DevTools: get rid of delayed command dispatching on front-end side.

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

  • public/WebDevToolsFrontendClient.h: (WebKit::WebDevToolsFrontendClient::sendFrontendLoaded):
  • src/WebDevToolsAgentImpl.cpp: (WebKit::WebDevToolsAgentImpl::attach): (WebKit::WebDevToolsAgentImpl::frontendLoaded):
  • src/WebDevToolsAgentImpl.h:
  • src/WebDevToolsFrontendImpl.cpp: (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend): (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
  • src/WebDevToolsFrontendImpl.h:
  • src/js/DevTools.js: (WebInspector.doLoadedDone):
  • src/js/Tests.js: (.uiTests.runTest):

2010-08-05 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

DevTools: get rid of delayed command dispatching on front-end side.

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

  • DumpRenderTree/chromium/DRTDevToolsAgent.cpp: (DRTDevToolsAgent::detach): (DRTDevToolsAgent::frontendLoaded):
  • DumpRenderTree/chromium/DRTDevToolsAgent.h:
  • DumpRenderTree/chromium/DRTDevToolsClient.cpp: (DRTDevToolsClient::~DRTDevToolsClient): (DRTDevToolsClient::sendFrontendLoaded):
  • DumpRenderTree/chromium/DRTDevToolsClient.h:
Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/inspector/front-end/InspectorBackendStub.js

    r64605 r64729  
    123123    {
    124124        var message = JSON.stringify(Array.prototype.slice.call(arguments));
    125         if (WebInspector._paramsObject && "page" in WebInspector._paramsObject)
    126             WebInspector.socket.send(message);
    127         else
    128             InspectorFrontendHost.sendMessageToBackend(message);
     125        InspectorFrontendHost.sendMessageToBackend(message);
    129126    }
    130127}
  • trunk/WebKit/chromium/ChangeLog

    r64656 r64729  
     12010-08-05  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        DevTools: get rid of delayed command dispatching on front-end side.
     6
     7        https://bugs.webkit.org/show_bug.cgi?id=43479
     8
     9        * public/WebDevToolsFrontendClient.h:
     10        (WebKit::WebDevToolsFrontendClient::sendFrontendLoaded):
     11        * src/WebDevToolsAgentImpl.cpp:
     12        (WebKit::WebDevToolsAgentImpl::attach):
     13        (WebKit::WebDevToolsAgentImpl::frontendLoaded):
     14        * src/WebDevToolsAgentImpl.h:
     15        * src/WebDevToolsFrontendImpl.cpp:
     16        (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
     17        (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
     18        * src/WebDevToolsFrontendImpl.h:
     19        * src/js/DevTools.js:
     20        (WebInspector.doLoadedDone):
     21        * src/js/Tests.js:
     22        (.uiTests.runTest):
     23        (.):
     24
    1252010-08-02  Kenneth Russell  <kbr@google.com>
    226
  • trunk/WebKit/chromium/public/WebDevToolsFrontendClient.h

    r64534 r64729  
    4141    WebDevToolsFrontendClient() { }
    4242
     43    virtual void sendFrontendLoaded() { }
    4344    virtual void sendMessageToBackend(const WebString&) { }
    4445    virtual void sendDebuggerCommandToAgent(const WebString& command) { }
  • trunk/WebKit/chromium/src/WebDevToolsAgentImpl.cpp

    r64646 r64729  
    247247        }
    248248    }
    249 
    250     setInspectorFrontendProxyToInspectorController();
    251249    m_attached = true;
    252250}
     
    267265void WebDevToolsAgentImpl::frontendLoaded()
    268266{
     267    v8::HandleScope scope;
     268    ScriptState* state = ScriptState::forContext(
     269        v8::Local<v8::Context>::New(m_utilityContext));
     270    InspectorController* ic = inspectorController();
     271    ic->connectFrontend(ScriptObject(state, m_utilityContext->Global()));
    269272}
    270273
     
    343346    WebCore::ScriptDebugServer::shared().setDebuggerScriptSource(
    344347        WebCore::String(debuggerScriptJs.data(), debuggerScriptJs.length()));
    345 }
    346 
    347 void WebDevToolsAgentImpl::setInspectorFrontendProxyToInspectorController()
    348 {
    349     v8::HandleScope scope;
    350     ScriptState* state = ScriptState::forContext(
    351         v8::Local<v8::Context>::New(m_utilityContext));
    352     InspectorController* ic = inspectorController();
    353     ic->connectFrontend(ScriptObject(state, m_utilityContext->Global()));
    354348}
    355349
  • trunk/WebKit/chromium/src/WebDevToolsAgentImpl.h

    r64646 r64729  
    112112    void initDevToolsAgentHost();
    113113    void createInspectorFrontendProxy();
    114     void setInspectorFrontendProxyToInspectorController();
    115114    void setApuAgentEnabled(bool enabled);
    116115
  • trunk/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp

    r64534 r64729  
    120120void WebDevToolsFrontendImpl::dispatchOnInspectorFrontend(const WebString& message)
    121121{
    122     if (!m_loaded) {
    123         m_pendingIncomingMessages.append(message);
    124         return;
    125     }
    126     executeScript(message);
    127 }
    128 
    129 void WebDevToolsFrontendImpl::frontendLoaded()
    130 {
    131     m_loaded = true;
    132 
    133     for (Vector<WebString>::iterator it = m_pendingIncomingMessages.begin();
    134          it != m_pendingIncomingMessages.end();
    135          ++it) {
    136         executeScript(*it);
    137     }
    138     m_pendingIncomingMessages.clear();
    139 }
    140 
    141 void WebDevToolsFrontendImpl::executeScript(const WebString& message)
    142 {
    143122    WebFrameImpl* frame = m_webViewImpl->mainFrameImpl();
    144123    v8::HandleScope scope;
     
    155134}
    156135
     136void WebDevToolsFrontendImpl::frontendLoaded()
     137{
     138    m_client->sendFrontendLoaded();
     139}
     140
    157141v8::Handle<v8::Value> WebDevToolsFrontendImpl::jsDebuggerPauseScript(const v8::Arguments& args)
    158142{
  • trunk/WebKit/chromium/src/WebDevToolsFrontendImpl.h

    r64534 r64729  
    7171
    7272private:
    73     void executeScript(const WebString& message);
    74 
    7573    static v8::Handle<v8::Value> jsDebuggerPauseScript(const v8::Arguments& args);
    7674
     
    7977    String m_applicationLocale;
    8078    bool m_loaded;
    81     Vector<WebString> m_pendingIncomingMessages;
    8279};
    8380
  • trunk/WebKit/chromium/src/js/DevTools.js

    r64534 r64729  
    8989    if ("page" in WebInspector._paramsObject) {
    9090        WebInspector.socket = new WebSocket("ws://" + window.location.host + "/devtools/page/" + WebInspector._paramsObject.page);
    91         WebInspector.socket.onmessage = function(message) { eval(message.data); }
     91        WebInspector.socket.onmessage = function(message) { devtools$$dispatch(message.data); }
    9292        WebInspector.socket.onerror = function(error) { console.err(error); }
    9393        WebInspector.socket.onopen = function() {
     
    9696                WebInspector.doLoadedDone();
    9797        };
     98        InspectorFrontendHost.sendMessageToBackend = WebInspector.socket.send.bind(WebInspector.socket);
     99        InspectorFrontendHost.loaded = WebInspector.socket.send.bind(WebInspector.socket, "loaded");
    98100    }
    99101})();
     
    112114    Preferences.profilerAlwaysEnabled = true;
    113115    Preferences.canEditScriptSource = true;
    114    
    115116    if ("page" in WebInspector._paramsObject) {
    116117        WebInspector.loadedDone = true;
     
    124125WebInspector.doLoadedDone = function() {
    125126    oldLoaded.call(this);
    126     InspectorFrontendHost.loaded();
    127127}
    128128
  • trunk/WebKit/chromium/src/js/Tests.js

    r64554 r64729  
    18461846uiTests.runTest = function(name)
    18471847{
    1848     new TestSuite().runTest(name);
    1849 };
    1850 
    1851 
     1848    if (uiTests._populatedInterface)
     1849        new TestSuite().runTest(name);
     1850    else
     1851        uiTests._pendingTestName = name;
     1852};
     1853
     1854(function() {
     1855var oldShowElementsPanel = WebInspector.showElementsPanel;
     1856WebInspector.showElementsPanel = function()
     1857{
     1858    oldShowElementsPanel.call(this);
     1859    uiTests._populatedInterface = true;
     1860    var name = uiTests._pendingTestName;
     1861    delete uiTests._pendingTestName;
     1862    if (name)
     1863        new TestSuite().runTest(name);
    18521864}
     1865
     1866})();
     1867
     1868}
  • trunk/WebKitTools/ChangeLog

    r64718 r64729  
     12010-08-05  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        DevTools: get rid of delayed command dispatching on front-end side.
     6
     7        https://bugs.webkit.org/show_bug.cgi?id=43479
     8
     9        * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
     10        (DRTDevToolsAgent::detach):
     11        (DRTDevToolsAgent::frontendLoaded):
     12        * DumpRenderTree/chromium/DRTDevToolsAgent.h:
     13        * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
     14        (DRTDevToolsClient::~DRTDevToolsClient):
     15        (DRTDevToolsClient::sendFrontendLoaded):
     16        * DumpRenderTree/chromium/DRTDevToolsClient.h:
     17
    1182010-08-04  Kenichi Ishibashi  <bashi@google.com>
    219
  • trunk/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp

    r64534 r64729  
    121121}
    122122
    123 void DRTDevToolsAgent::detach(DRTDevToolsClient* client)
     123void DRTDevToolsAgent::detach()
    124124{
    125125    ASSERT(m_drtDevToolsClient);
     
    128128        agent->detach();
    129129    m_drtDevToolsClient = 0;
     130}
     131
     132void DRTDevToolsAgent::frontendLoaded() {
     133    WebDevToolsAgent* agent = webDevToolsAgent();
     134    if (agent)
     135        agent->frontendLoaded();
    130136}
    131137
  • trunk/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h

    r64534 r64729  
    6868
    6969    void attach(DRTDevToolsClient*);
    70     void detach(DRTDevToolsClient*);
     70    void detach();
     71    void frontendLoaded();
    7172
    7273    bool evaluateInWebInspector(long callID, const std::string& script);
  • trunk/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp

    r64534 r64729  
    6262    m_callMethodFactory.RevokeAll();
    6363    if (m_drtDevToolsAgent)
    64         m_drtDevToolsAgent->detach(this);
     64        m_drtDevToolsAgent->detach();
     65}
     66
     67void DRTDevToolsClient::sendFrontendLoaded() {
     68    if (m_drtDevToolsAgent)
     69        m_drtDevToolsAgent->frontendLoaded();
    6570}
    6671
  • trunk/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h

    r64534 r64729  
    5656
    5757    // WebDevToolsFrontendClient implementation
     58    virtual void sendFrontendLoaded();
    5859    virtual void sendMessageToBackend(const WebKit::WebString&);
    5960    virtual void sendDebuggerCommandToAgent(const WebKit::WebString& command);
Note: See TracChangeset for help on using the changeset viewer.