Changeset 64035 in webkit


Ignore:
Timestamp:
Jul 26, 2010 1:29:21 AM (14 years ago)
Author:
loislo@chromium.org
Message:

2010-07-26 Ilya Tikhonovsky <loislo@chromium.org>

Reviewed by Pavel Feldman.

Chromium DevTools: refactor query params, add basic
support for WebSocket-based backend.

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

  • src/js/DevTools.js: (devtools.ToolsAgent.prototype.dispatchOnClient_): (WebInspector.loaded): (WebInspector.doLoadedDone): (devtools.domContentLoaded):
  • src/js/InspectorControllerImpl.js:
Location:
trunk/WebKit/chromium
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/chromium/ChangeLog

    r64009 r64035  
     12010-07-26  Ilya Tikhonovsky  <loislo@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Chromium DevTools: refactor query params, add basic
     6        support for WebSocket-based backend.
     7
     8        https://bugs.webkit.org/show_bug.cgi?id=42893
     9
     10        * src/js/DevTools.js:
     11        (devtools.ToolsAgent.prototype.dispatchOnClient_):
     12        (WebInspector.loaded):
     13        (WebInspector.doLoadedDone):
     14        (devtools.domContentLoaded):
     15        * src/js/InspectorControllerImpl.js:
     16
    1172010-07-24  Pavel Feldman  <pfeldman@chromium.org>
    218
  • trunk/WebKit/chromium/src/js/DevTools.js

    r63549 r64035  
    9494devtools.ToolsAgent.prototype.dispatchOnClient_ = function(message)
    9595{
    96     var args = JSON.parse(message);
     96    var args = typeof message === "string" ? JSON.parse(message) : message;
    9797    var methodName = args[0];
    9898    var parameters = args.slice(1);
     
    130130var context = {};  // Used by WebCore's inspector routines.
    131131
     132(function() {
     133    WebInspector._paramsObject = {};
     134
     135    var queryParams = window.location.search;
     136    if (queryParams) {
     137        var params = queryParams.substring(1).split("&");
     138        for (var i = 0; i < params.length; ++i) {
     139            var pair = params[i].split("=");
     140            WebInspector._paramsObject[pair[0]] = pair[1];
     141        }
     142    }
     143    if ("page" in WebInspector._paramsObject) {
     144        WebInspector.socket = new WebSocket("ws://" + window.location.host + "/devtools/page/" + WebInspector._paramsObject.page);
     145        WebInspector.socket.onmessage = function(message) { eval(message.data); }
     146        WebInspector.socket.onerror = function(error) { console.err(error); }
     147        WebInspector.socket.onopen = function() {
     148            WebInspector.socketOpened = true;
     149            if (WebInspector.loadedDone)
     150                WebInspector.doLoadedDone();
     151        };
     152    }
     153})();
    132154///////////////////////////////////////////////////////////////////////////////
    133155// Here and below are overrides to existing WebInspector methods only.
     
    146168    Preferences.appCacheEnabled = false;
    147169
     170    if ("page" in WebInspector._paramsObject) {
     171        WebInspector.loadedDone = true;
     172        if (WebInspector.socketOpened)
     173            WebInspector.doLoadedDone();
     174        return;
     175    }
     176    WebInspector.doLoadedDone();
     177}
     178
     179WebInspector.doLoadedDone = function() {
    148180    oldLoaded.call(this);
    149 
    150181    InspectorFrontendHost.loaded();
    151 };
     182}
    152183
    153184devtools.domContentLoaded = function()
    154185{
    155     var queryParams = window.location.search;
    156     if (queryParams) {
    157         var params = queryParams.substring(1).split("&");
    158         var paramsObject = {};
    159         for (var i = 0; i < params.length; ++i) {
    160             var pair = params[i].split("=");
    161             paramsObject[pair[0]] = pair[1];
    162         }
    163         WebInspector.setAttachedWindow(paramsObject.docked === "true");
    164         if (paramsObject.toolbar_color && paramsObject.text_color)
    165             WebInspector.setToolbarColors(paramsObject.toolbar_color, paramsObject.text_color);
    166     }
     186    WebInspector.setAttachedWindow(WebInspector._paramsObject.docked === "true");
     187    if (WebInspector._paramsObject.toolbar_color && WebInspector._paramsObject.text_color)
     188        WebInspector.setToolbarColors(WebInspector._paramsObject.toolbar_color, WebInspector._paramsObject.text_color);
    167189}
    168190document.addEventListener("DOMContentLoaded", devtools.domContentLoaded, false);
  • trunk/WebKit/chromium/src/js/InspectorControllerImpl.js

    r64006 r64035  
    142142 * implementation.
    143143 */
    144 devtools.InspectorBackendImpl.prototype.callInspectorController_ = function(methodName, var_arg)
     144devtools.InspectorBackendImpl.prototype.callInspectorController_ = function()
    145145{
    146     var args = Array.prototype.slice.call(arguments, 1);
    147     args.unshift(methodName);
    148     RemoteToolsAgent.dispatchOnInspectorController(WebInspector.Callback.wrap(function(){}), JSON.stringify(args));
     146    var args = Array.prototype.slice.call(arguments);
     147    var message = JSON.stringify(args);
     148    var callbackId = WebInspector.Callback.wrap(function(){});
     149    if ("page" in WebInspector._paramsObject)
     150        WebInspector.socket.send(callbackId + " " + message);
     151    else
     152        RemoteToolsAgent.dispatchOnInspectorController(callbackId, message);
    149153};
    150154
Note: See TracChangeset for help on using the changeset viewer.