blob: 3ca44337a2e43e410fa11c859a62d171961f3354 (
plain)
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
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const TEST_URI =
"data:text/html;charset=utf-8,<!DOCTYPE html><p>Web Console test for " +
"observer notifications";
let created = false;
let destroyed = false;
add_task(async function () {
setupObserver();
await openNewTabAndConsole(TEST_URI);
await waitFor(() => created);
await closeTabAndToolbox(gBrowser.selectedTab);
await waitFor(() => destroyed);
ok(true, "We received both created and destroyed events");
});
function setupObserver() {
const observer = {
QueryInterface: ChromeUtils.generateQI(["nsIObserver"]),
observe: function observe(subject, topic) {
subject = subject.QueryInterface(Ci.nsISupportsString);
switch (topic) {
case "web-console-created":
Services.obs.removeObserver(observer, "web-console-created");
created = true;
break;
case "web-console-destroyed":
Services.obs.removeObserver(observer, "web-console-destroyed");
destroyed = true;
break;
}
},
};
Services.obs.addObserver(observer, "web-console-created");
Services.obs.addObserver(observer, "web-console-destroyed");
}
|