mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 12:37:37 +00:00
37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
const ALLOW_ACTION = SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION;
|
|
const DENY_ACTION = SpecialPowers.Ci.nsIPermissionManager.DENY_ACTION;
|
|
const UNKNOWN_ACTION = SpecialPowers.Ci.nsIPermissionManager.UNKNOWN_ACTION;
|
|
const PROMPT_ACTION = SpecialPowers.Ci.nsIPermissionManager.PROMPT_ACTION;
|
|
|
|
/**
|
|
* Dispatches |handler| to |element|, as if fired in response to |event|.
|
|
*/
|
|
function send(element, event, handler) {
|
|
function unique_handler() { return handler.apply(this, arguments) }
|
|
element.addEventListener(event, unique_handler, false);
|
|
try { sendMouseEvent({ type: event }, element.id) }
|
|
finally { element.removeEventListener(event, unique_handler, false) }
|
|
}
|
|
|
|
/**
|
|
* Because it's not nice to leave popup windows open after the tests are
|
|
* finished, we need a foolproof way to close some/all window.opened windows.
|
|
*/
|
|
(function(originalOpen) {
|
|
var wins = [];
|
|
(window.open = function() {
|
|
var win = originalOpen.apply(window, arguments);
|
|
if (win)
|
|
wins[wins.length] = win;
|
|
return win;
|
|
}).close = function(n) {
|
|
if (arguments.length < 1)
|
|
n = wins.length;
|
|
while (n --> 0) {
|
|
var win = wins.pop();
|
|
if (win) win.close();
|
|
else break;
|
|
}
|
|
};
|
|
})(window.open);
|