representing the message to send. * If this is a string, it will be expanded into an object with the string as the * `type` field. If this is an object, it will be sent as is. */ function post(win, typeOrMessage) { // When running unit tests on XPCShell, there is no window to send messages to. if (!win) { return; } let message = typeOrMessage; if (typeof typeOrMessage == "string") { message = { type: typeOrMessage, }; } win.postMessage(message, "*"); } function request(win, type) { const done = wait(win, type + REQUEST_DONE_SUFFIX); post(win, type); return done; } exports.wait = wait; exports.post = post; exports.request = request; PK