10000 Updates for the new debugger server API by past · Pull Request #7 · firebug/httpmonitor · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Updates for the new debugger server API #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/httpmonitor/remote/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ var Cu = Components.utils;

try
{
Cu["import"]("resource:///modules/devtools/dbg-client.jsm");
Cu["import"]("resource://gre/modules/devtools/dbg-client.jsm");
}
catch (err)
{
Expand Down
14 changes: 3 additions & 11 deletions content/httpmonitor/remote/protocol.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,6 @@ Protocol.prototype =
return this.currentTab ? this.currentTab.actor : null;
},

getNetActor: function(tabActor, callback)
{
this.connection.sendPacket(tabActor, "networkMonitorActor", true, callback);
},

subscribe: function(netActor, callback)
{
if (this.currentNetActor)
Expand Down Expand Up @@ -139,13 +134,10 @@ Protocol.prototype =

// A tab has been selected so, subscribe to the Net monitor actor. The callback
// will receive events about any HTTP traffic within the target tab.
this.getNetActor(tabActor.id, function(packet)
{
self.subscribe(packet.actor, netEvent);
self.subscribe(tabActor.networkMonitorActor, netEvent);

// Also register callback for 'tabNavigated' events.
self.connection.addCallback(tabActor.id, tabNavigated, false);
});
// Also register callback for 'tabNavigated' events.
self.connection.addCallback(tabActor.id, tabNavigated, false);
},

onTabUnselected: function(tabActor)
Expand Down
4 changes: 3 additions & 1 deletion content/httpmonitor/remote/remoteProxy.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,21 @@ RemoteProxy.prototype = Obj.extend(Proxy,
if (FBTrace.DBG_REMOTENETMONITOR)
FBTrace.sysout("remotenet; RemoteProxy.getTabs()");

var self = this;
this.protocol.getTabList(function(packet)
{
var result = [];
self.protocol.traceActor = packet.traceActor;
var tabs = packet.tabs;
for (var i=0; i<tabs.length; ++i)
{
var tab = tabs[i];
result.push({
id: tab.actor,
label: tab.title ? tab.title : tab.url,
networkMonitorActor: tab.networkMonitorActor
})
}

callback(result);
});
},
Expand Down
28 changes: 9 additions & 19 deletions content/httpmonitor/server/httpServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,39 +37,30 @@ var HttpServer =
TabCacheModel.initialize();
TabCacheModel.initializeUI();

// TODO: this initialization is happening way too soon. The server
// should be started when the user 10000 launches the tool from the UI.
try
{
Components.utils.import("resource:///modules/devtools/dbg-server.jsm");
Components.utils.import("resource://gre/modules/devtools/dbg-server.jsm");

// RemoteDebugger object should exist on Fennec so, use it if the server
// is running on Fennec
// https://bugzilla.mozilla.org/show_bug.cgi?id=739966
if (typeof(RemoteDebugger) != "undefined")
{
RemoteDebugger._start();
RemoteDebugger.init();
}
// Otherwise initialize the browser debugger.
else if (!DebuggerServer.initialized)
else
{
// Initialize the server (e.g. appends script debugger actors)
DebuggerServer.init();

try
{
// Only available on Fennec
DebuggerServer.addActors("chrome://browser/content/dbg-browser-actors.js");
}
catch (err)
if (!DebuggerServer.initialized)
{
// This should happen for Firefox
// Initialize the server (e.g. appends script debugger actors)
DebuggerServer.init();
DebuggerServer.addBrowserActors();
}

// Open a TCP listener
// xxxHonza: what about a pref for the port number and true/false for
// loopback device? What if the script debugger already opened that
// listener?
DebuggerServer.openListener(2929, false);
DebuggerServer.openListener(Services.prefs.getIntPref("devtools.debugger.remote-port"));
}
}
catch (ex)
Expand All @@ -82,7 +73,6 @@ var HttpServer =
{
FBTrace.sysout("HttpServer; shutdown");

// xxxHonza: what if there are other tools sharing the connection?
DebuggerServer.closeListener();
},
}
Expand Down
25 changes: 1 addition & 24 deletions content/httpmonitor/server/netMonitorActor.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,30 +211,7 @@ NetworkMonitorActor.prototype.requestTypes =
"sendRequest": NetworkMonitorActor.prototype.onSendRequest,
};

// ********************************************************************************************* //
// Network Monitor Actor Handler

function networkMonitorActorHandler(tab, request)
{
// Reuse a previously-created actor, if any.
if (tab.networkMonitorActor)
return tab.networkMonitorActor.grip();

var actor = new NetworkMonitorActor(tab);
tab.networkMonitorActor = actor;

// xxxHonza: this needs to be reviewed by Panos
// If it's added into the tabActorPool, disconnect is not executed for the actor.
//tab.tabActorPool.addActor(actor);
tab.conn.addActor(actor);

if (FBTrace.DBG_NETACTOR)
FBTrace.sysout("networkMonitorActorHandler ", {tab: tab, request: request});

return actor.grip();
}

DebuggerServer.addTabRequest("networkMonitorActor", networkMonitorActorHandler);
DebuggerServer.addTabActor(NetworkMonitorActor, "networkMonitorActor");

// ********************************************************************************************* //
});
28 changes: 1 addition & 27 deletions content/httpmonitor/server/traceActor.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,33 +124,7 @@ TraceActor.prototype.requestTypes =
"detach": TraceActor.prototype.onDetach,
};

// ********************************************************************************************* //
// Trace Actor Handler

function traceActorHandler(rootActor, request)
{
// Reuse a previously-created actor, if any.
if (rootActor.traceActor)
return rootActor.traceActor.grip();

var actor = new TraceActor(rootActor);
rootActor.traceActor = actor;
rootActor.conn.addActor(actor);

return actor.grip();
}

// xxxHonza: I believe this should be part of dbg-browser-actor.js
if (typeof(DebuggerServer.addRequest) == "undefined")
{
DebuggerServer.addRequest = function DS_addRequest(aName, aFunction) {
DebuggerServer.BrowserRootActor.prototype.requestTypes[aName] = function(aRequest) {
return aFunction(this, aRequest);
}
};
}

DebuggerServer.addRequest("traceActor", traceActorHandler);
DebuggerServer.addGlobalActor(TraceActor, "traceActor");

// ********************************************************************************************* //
});
0