Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  MozDomFullscreen_chrome.xhtml   Sprache: unbekannt

 
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<!--
  Test that "MozDOMFullscreen:*" events are dispatched to chrome on documents that use DOM fullscreen.

  Test Description:
  
  This chrome window has a browser. The browser's contentDocument (the "outer document")
  in turn has an iframe (the "inner document").
  
  We request fullscreen in the outer document, and check that MozDOMFullscreen:Entered and
  MozDOMFullscreen:NewOrigin are dispatched to chrome, targeted at the outer document.
  
  Then we request fullscreen in the inner document, and check that MozDOMFullscreen:NewOrigin
  is dispatched to chrome, targeted at the inner document.
  
  Then we cancel fullscreen in the inner document, and check that MozDOMFullscreen:NewOrigin is
  dispatched again to chrome, targeted at the outer document.
-->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="start();">

<script src="chrome://mochikit/content/chrome-harness.js"></script>
<script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>      
<script type="application/javascript"><![CDATA[

function ok(condition, msg) {
  window.arguments[0].ok(condition, msg);
}

function is(a, b, msg) {
  window.arguments[0].is(a, b, msg);
}

var gBrowser = null;
var gOuterDoc = null;
var gInnerDoc = null;

var gReceivedFullscreenEnteredEvent = false;
function firstEntry(event) {
  if (event.type == "MozDOMFullscreen:NewOrigin") {
    ok(false, "MozDOMFullscreen:NewOrigin shouldn't be triggered at first entry");
    return;
  }

  if (event.type != "MozDOMFullscreen:Entered") {
    ok(false, "Unknown event received");
    return;
  }

  ok(gOuterDoc.fullscreenElement != null, "Outer doc should be in fullscreen");
  is(event.target, gOuterDoc.body, "First MozDOMFullscreen:Entered should be targeted at outer body");
  ok(!gReceivedFullscreenEnteredEvent, "MozDOMFullscreen:Entered shouldn't have been triggered twice");
  gReceivedFullscreenEnteredEvent = true;
  window.removeEventListener("MozDOMFullscreen:Entered", firstEntry);
  window.removeEventListener("MozDOMFullscreen:NewOrigin", firstEntry);

  window.addEventListener("MozDOMFullscreen:NewOrigin", secondEntry);
  gInnerDoc = gOuterDoc.getElementById("innerFrame").contentDocument;
  gInnerDoc.defaultView.focus();
  gInnerDoc.body.requestFullscreen();
}

function secondEntry(event) {
  is(event.target, gInnerDoc, "Second MozDOMFullscreen:NewOrigin should be targeted at inner doc");
  ok(gInnerDoc.fullscreenElement != null, "Inner doc should be in fullscreen");
  window.removeEventListener("MozDOMFullscreen:NewOrigin", secondEntry);
  window.addEventListener("MozDOMFullscreen:NewOrigin", thirdEntry);
  gInnerDoc.exitFullscreen();
}

function thirdEntry(event) {
  is(event.target, gOuterDoc, "Third MozDOMFullscreen:NewOrigin should be targeted at outer doc");
  ok(gOuterDoc.fullscreenElement != null, "Outer doc return to fullscreen after cancel fullscreen in inner doc");
  window.removeEventListener("MozDOMFullscreen:NewOrigin", thirdEntry);
  window.removeEventListener("MozDOMFullscreen:Exited", earlyExit);
  window.addEventListener("MozDOMFullscreen:Exited", lastExit);
  gOuterDoc.exitFullscreen();
}

function earlyExit() {
  ok(false, "MozDOMFullscreen:Exited should only be triggered after cancel all fullscreen");
}

function lastExit(event) {
  is(event.target, gOuterDoc, "MozDOMFullscreen:Exited should be targeted at the last exited doc");
  ok(gOuterDoc.fullscreenElement == null, "Fullscreen should have been fully exited");
  window.arguments[0].done();
}

function start() {
  SimpleTest.waitForFocus(
    function() {
      gBrowser = document.getElementById("browser");
      gOuterDoc = gBrowser.contentDocument;
      gBrowser.contentWindow.focus();
      window.addEventListener("MozDOMFullscreen:Entered", firstEntry);
      window.addEventListener("MozDOMFullscreen:NewOrigin", firstEntry);
      gOuterDoc.body.requestFullscreen();
    });
}

]]>
</script>
<browser type="content" id="browser" width="400" height="400" src="file_MozDomFullscreen.html"/>

</window>

[ Dauer der Verarbeitung: 0.22 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge