summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/forms/head.js
blob: 477663905442caa3ff5d0034d3e80700f13ec904 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function hideSelectPopup(selectPopup, mode = "enter", win = window) {
  let browser = win.gBrowser.selectedBrowser;
  let selectClosedPromise = SpecialPowers.spawn(browser, [], async function() {
    let { SelectContentHelper } = ChromeUtils.import(
      "resource://gre/actors/SelectChild.jsm",
      null
    );
    return ContentTaskUtils.waitForCondition(() => !SelectContentHelper.open);
  });

  if (mode == "escape") {
    EventUtils.synthesizeKey("KEY_Escape", {}, win);
  } else if (mode == "enter") {
    EventUtils.synthesizeKey("KEY_Enter", {}, win);
  } else if (mode == "click") {
    EventUtils.synthesizeMouseAtCenter(selectPopup.lastElementChild, {}, win);
  }

  return selectClosedPromise;
}