|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 const URL = "data:text/html;charset=utf8,<p>JavaScript Profiler test</p>"; |
|
5 |
|
6 let temp = {}; |
|
7 |
|
8 Cu.import("resource://gre/modules/devtools/dbg-server.jsm", temp); |
|
9 let DebuggerServer = temp.DebuggerServer; |
|
10 |
|
11 Cu.import("resource://gre/modules/devtools/dbg-client.jsm", temp); |
|
12 let DebuggerClient = temp.DebuggerClient; |
|
13 let debuggerSocketConnect = temp.debuggerSocketConnect; |
|
14 |
|
15 Cu.import("resource:///modules/devtools/profiler/controller.js", temp); |
|
16 let ProfilerController = temp.ProfilerController; |
|
17 |
|
18 function test() { |
|
19 waitForExplicitFinish(); |
|
20 Services.prefs.setBoolPref(REMOTE_ENABLED, true); |
|
21 |
|
22 loadTab(URL, function onTabLoad(tab, browser) { |
|
23 DebuggerServer.init(function () true); |
|
24 DebuggerServer.addBrowserActors(); |
|
25 is(DebuggerServer._socketConnections, 0); |
|
26 |
|
27 DebuggerServer.openListener(2929); |
|
28 is(DebuggerServer._socketConnections, 1); |
|
29 |
|
30 let transport = debuggerSocketConnect("127.0.0.1", 2929); |
|
31 let client = new DebuggerClient(transport); |
|
32 client.connect(function onClientConnect() { |
|
33 let target = { isRemote: true, client: client }; |
|
34 let controller = new ProfilerController(target); |
|
35 |
|
36 controller.connect(function onControllerConnect() { |
|
37 // If this callback is called, this means listTabs call worked. |
|
38 // Which means that the transport worked. Time to finish up this |
|
39 // test. |
|
40 |
|
41 function onShutdown() { |
|
42 window.removeEventListener("Debugger:Shutdown", onShutdown, true); |
|
43 transport = client = null; |
|
44 finish(); |
|
45 } |
|
46 |
|
47 window.addEventListener("Debugger:Shutdown", onShutdown, true); |
|
48 |
|
49 client.close(function () { |
|
50 gBrowser.removeTab(tab); |
|
51 }); |
|
52 }); |
|
53 }); |
|
54 }); |
|
55 } |