Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 var gClient;
5 var gActors;
7 /**
8 * The purpose of these tests is to verify that it's possible to add actors
9 * both before and after the DebuggerServer has been initialized, so addons
10 * that add actors don't have to poll the object for its initialization state
11 * in order to add actors after initialization but rather can add actors anytime
12 * regardless of the object's state.
13 */
14 function run_test()
15 {
16 DebuggerServer.addActors("resource://test/pre_init_global_actors.js");
17 DebuggerServer.addActors("resource://test/pre_init_tab_actors.js");
19 DebuggerServer.init(function () { return true; });
20 DebuggerServer.addBrowserActors();
22 DebuggerServer.addActors("resource://test/post_init_global_actors.js");
23 DebuggerServer.addActors("resource://test/post_init_tab_actors.js");
25 add_test(init);
26 add_test(test_pre_init_global_actor);
27 add_test(test_pre_init_tab_actor);
28 add_test(test_post_init_global_actor);
29 add_test(test_post_init_tab_actor);
30 add_test(test_stable_global_actor_instances);
31 add_test(close_client);
32 run_next_test();
33 }
35 function init()
36 {
37 gClient = new DebuggerClient(DebuggerServer.connectPipe());
38 gClient.connect(function onConnect() {
39 gClient.listTabs(function onListTabs(aResponse) {
40 gActors = aResponse;
41 run_next_test();
42 });
43 });
44 }
46 function test_pre_init_global_actor()
47 {
48 gClient.request({ to: gActors.preInitGlobalActor, type: "ping" },
49 function onResponse(aResponse) {
50 do_check_eq(aResponse.message, "pong");
51 run_next_test();
52 }
53 );
54 }
56 function test_pre_init_tab_actor()
57 {
58 gClient.request({ to: gActors.preInitTabActor, type: "ping" },
59 function onResponse(aResponse) {
60 do_check_eq(aResponse.message, "pong");
61 run_next_test();
62 }
63 );
64 }
66 function test_post_init_global_actor()
67 {
68 gClient.request({ to: gActors.postInitGlobalActor, type: "ping" },
69 function onResponse(aResponse) {
70 do_check_eq(aResponse.message, "pong");
71 run_next_test();
72 }
73 );
74 }
76 function test_post_init_tab_actor()
77 {
78 gClient.request({ to: gActors.postInitTabActor, type: "ping" },
79 function onResponse(aResponse) {
80 do_check_eq(aResponse.message, "pong");
81 run_next_test();
82 }
83 );
84 }
86 // Get the object object, from the server side, for a given actor ID
87 function getActorInstance(connID, actorID) {
88 return DebuggerServer._connections[connID].getActor(actorID);
89 }
91 function test_stable_global_actor_instances()
92 {
93 // Consider that there is only one connection,
94 // and the first one is ours
95 let connID = Object.keys(DebuggerServer._connections)[0];
96 let postInitGlobalActor = getActorInstance(connID, gActors.postInitGlobalActor);
97 let preInitGlobalActor = getActorInstance(connID, gActors.preInitGlobalActor);
98 gClient.listTabs(function onListTabs(aResponse) {
99 do_check_eq(postInitGlobalActor, getActorInstance(connID, aResponse.postInitGlobalActor));
100 do_check_eq(preInitGlobalActor, getActorInstance(connID, aResponse.preInitGlobalActor));
101 run_next_test();
102 });
103 }
105 function close_client() {
106 gClient.close(() => run_next_test());
107 }