MCPcopy
hub / github.com/microsoft/playwright / Helper

Class Helper

browser_patches/firefox/juggler/Helper.js:7–171  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5const uuidGen = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
6
7export class Helper {
8 decorateAsEventEmitter(objectToDecorate) {
9 const { EventEmitter } = ChromeUtils.importESModule('resource://gre/modules/EventEmitter.sys.mjs');
10 const emitter = new EventEmitter();
11 objectToDecorate.on = emitter.on.bind(emitter);
12 objectToDecorate.addEventListener = emitter.on.bind(emitter);
13 objectToDecorate.off = emitter.off.bind(emitter);
14 objectToDecorate.removeEventListener = emitter.off.bind(emitter);
15 objectToDecorate.once = emitter.once.bind(emitter);
16 objectToDecorate.emit = emitter.emit.bind(emitter);
17 }
18
19 collectAllBrowsingContexts(rootBrowsingContext, allBrowsingContexts = []) {
20 allBrowsingContexts.push(rootBrowsingContext);
21 for (const child of rootBrowsingContext.children)
22 this.collectAllBrowsingContexts(child, allBrowsingContexts);
23 return allBrowsingContexts;
24 }
25
26 awaitTopic(topic) {
27 return new Promise(resolve => {
28 const listener = () => {
29 Services.obs.removeObserver(listener, topic);
30 resolve();
31 }
32 Services.obs.addObserver(listener, topic);
33 });
34 }
35
36 toProtocolNavigationId(loadIdentifier) {
37 return `nav-${loadIdentifier}`;
38 }
39
40 addObserver(handler, topic) {
41 Services.obs.addObserver(handler, topic);
42 return () => Services.obs.removeObserver(handler, topic);
43 }
44
45 addMessageListener(receiver, eventName, handler) {
46 receiver.addMessageListener(eventName, handler);
47 return () => receiver.removeMessageListener(eventName, handler);
48 }
49
50 addEventListener(receiver, eventName, handler, options) {
51 receiver.addEventListener(eventName, handler, options);
52 return () => {
53 try {
54 receiver.removeEventListener(eventName, handler, options);
55 } catch (e) {
56 // This could fail when window has navigated cross-process
57 // and we remove the listener from WindowProxy.
58 // Nothing we can do here - so ignore the error.
59 }
60 };
61 }
62
63 awaitEvent(receiver, eventName) {
64 return new Promise(resolve => {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…