1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Check extension-added tab actor lifetimes.
*/
var gTab1 = null;
var gTab1Actor = null;
var gClient = null;
function test()
{
DebuggerServer.addActors("chrome://mochitests/content/browser/browser/devtools/debugger/test/testactors.js");
let transport = DebuggerServer.connectPipe();
gClient = new DebuggerClient(transport);
gClient.connect(function (aType, aTraits) {
is(aType, "browser", "Root actor should identify itself as a browser.");
get_tab();
});
}
function get_tab()
{
gTab1 = addTab(TAB1_URL, function() {
attach_tab_actor_for_url(gClient, TAB1_URL, function(aGrip) {
gTab1Actor = aGrip.actor;
ok(aGrip.testTabActor1, "Found the test tab actor.")
ok(aGrip.testTabActor1.indexOf("testone") >= 0,
"testTabActor's actorPrefix should be used.");
gClient.request({ to: aGrip.testTabActor1, type: "ping" }, function(aResponse) {
is(aResponse.pong, "pong", "Actor should respond to requests.");
close_tab(aResponse.actor);
});
});
});
}
function close_tab(aTestActor)
{
removeTab(gTab1);
try {
gClient.request({ to: aTestActor, type: "ping" }, function (aResponse) {
is(aResponse, undefined, "testTabActor1 didn't go away with the tab.");
finish_test();
});
} catch (e) {
is(e.message, "'ping' request packet has no destination.",
"testTabActor1 should have gone away with the tab.");
finish_test();
}
}
function finish_test()
{
gClient.close(function () {
finish();
});
}
|