tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bug299673.js (3507B)


      1 var popup;
      2 
      3 function OpenWindow() {
      4  log({}, ">>> OpenWindow");
      5  popup = window.open("", "Test");
      6 
      7  var output = "<html>";
      8 
      9  output += "<body>";
     10  output += "<form>";
     11  output +=
     12    "<input id='popupText1' type='text' onfocus='opener.log(event)' onblur='opener.log(event)'>";
     13  output += "</form>";
     14  output += "</body>";
     15  output += "</html>";
     16 
     17  popup.document.open();
     18  popup.document.write(output);
     19  popup.document.close();
     20 
     21  popup.document.onclick = function (event) {
     22    log(event, "popup-doc");
     23  };
     24  popup.document.onfocus = function (event) {
     25    log(event, "popup-doc");
     26  };
     27  popup.document.onblur = function (event) {
     28    log(event, "popup-doc");
     29  };
     30  popup.document.onchange = function (event) {
     31    log(event, "popup-doc");
     32  };
     33 
     34  var e = popup.document.getElementById("popupText1");
     35  popup.focus();
     36  e.focus();
     37  is(
     38    popup.document.activeElement,
     39    e,
     40    "input element in popup should be focused"
     41  );
     42  log({}, "<<< OpenWindow");
     43 }
     44 
     45 var result;
     46 
     47 function log(event, message) {
     48  if (event && event.eventPhase == 3) {
     49    return;
     50  }
     51  e = event.currentTarget || event.target || event.srcElement;
     52  var id = e ? (e.id ? e.id : e.name ? e.name : e.value ? e.value : "") : "";
     53  if (id) {
     54    id = "(" + id + ")";
     55  }
     56  result +=
     57    (e ? (e.tagName ? e.tagName : "") : " ") +
     58    id +
     59    ": " +
     60    (event.type ? event.type : "") +
     61    " " +
     62    (message ? message : "") +
     63    "\n";
     64 }
     65 
     66 document.onclick = function (event) {
     67  log(event, "top-doc");
     68 };
     69 document.onfocus = function (event) {
     70  log(event, "top-doc");
     71 };
     72 document.onblur = function (event) {
     73  log(event, "top-doc");
     74 };
     75 document.onchange = function (event) {
     76  log(event, "top-doc");
     77 };
     78 
     79 function doTest1_rest2(expectedEventLog, focusAfterCloseId) {
     80  try {
     81    is(
     82      document.activeElement,
     83      document.getElementById(focusAfterCloseId),
     84      "wrong element is focused after popup was closed"
     85    );
     86    is(result, expectedEventLog, "unexpected events");
     87    SimpleTest.finish();
     88  } catch (e) {
     89    if (popup) {
     90      popup.close();
     91    }
     92    throw e;
     93  }
     94 }
     95 function doTest1_rest1(expectedEventLog, focusAfterCloseId) {
     96  try {
     97    synthesizeKey("V", {}, popup);
     98    synthesizeKey("A", {}, popup);
     99    synthesizeKey("L", {}, popup);
    100    is(
    101      popup.document.getElementById("popupText1").value,
    102      "VAL",
    103      "input element in popup did not accept input"
    104    );
    105 
    106    var p = popup;
    107    popup = null;
    108    p.close();
    109 
    110    SimpleTest.waitForFocus(function () {
    111      doTest1_rest2(expectedEventLog, focusAfterCloseId);
    112    }, window);
    113  } catch (e) {
    114    if (popup) {
    115      popup.close();
    116    }
    117    throw e;
    118  }
    119 }
    120 
    121 function doTest1(expectedEventLog, focusAfterCloseId) {
    122  try {
    123    var select1 = document.getElementById("Select1");
    124    select1.focus();
    125    is(document.activeElement, select1, "select element should be focused");
    126    synthesizeKey("KEY_ArrowDown");
    127    synthesizeKey("KEY_Tab");
    128    SimpleTest.waitForFocus(function () {
    129      doTest1_rest1(expectedEventLog, focusAfterCloseId);
    130    }, popup);
    131  } catch (e) {
    132    if (popup) {
    133      popup.close();
    134    }
    135    throw e;
    136  }
    137 }
    138 
    139 function setPrefAndDoTest(expectedEventLog, focusAfterCloseId, prefValue) {
    140  var select1 = document.getElementById("Select1");
    141  select1.blur();
    142  result = "";
    143  log({}, "Test with browser.link.open_newwindow = " + prefValue);
    144  SpecialPowers.pushPrefEnv(
    145    { set: [["browser.link.open_newwindow", prefValue]] },
    146    function () {
    147      doTest1(expectedEventLog, focusAfterCloseId);
    148    }
    149  );
    150 }