DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>

<window title="Popup Prevent Default Tests"
  onload="setTimeout(runTest, 0);"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <title>Popup Prevent Default Tests</title>

<!--
  This tests checks that preventDefault can be called on a popupshowing
  event or popuphiding event to prevent the default behaviour.
  -->

<script>

var gBlockShowing = true;
var gBlockHiding = true;
var gShownNotAllowed = true;
var gHiddenNotAllowed = true;

function runTest()
{
  document.getElementById("menu").open = true;
}

function popupShowing(event)
{
  if (gBlockShowing) {
    event.preventDefault();
    gBlockShowing = false;
    setTimeout(function() {
                 gShownNotAllowed = false;
                 document.getElementById("menu").open = true;
               }, 3000, true);
  }
}

function popupShown()
{
  window.opener.wrappedJSObject.SimpleTest.ok(!gShownNotAllowed, "popupshowing preventDefault");
  document.getElementById("menu").open = false;
}

function popupHiding(event)
{
  if (gBlockHiding) {
    event.preventDefault();
    gBlockHiding = false;
    setTimeout(function() {
                 gHiddenNotAllowed = false;
                 document.getElementById("menu").open = false;
               }, 3000, true);
  }
}

function popupHidden()
{
  window.opener.wrappedJSObject.SimpleTest.ok(!gHiddenNotAllowed, "popuphiding preventDefault");
  window.opener.wrappedJSObject.SimpleTest.finish();
  window.close();
}
</script>

<button id="menu" type="menu" label="Menu">
  <menupopup onpopupshowing="popupShowing(event);"
             onpopupshown="popupShown();"
             onpopuphiding="popupHiding(event);"
             onpopuphidden="popupHidden();">
    <menuitem label="Item"/>
  </menupopup>
</button>


</window>