Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/docshell/test/chrome/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 6 kB image not shown  

Quelle  bug690056_window.xhtml   Sprache: unbekannt

 
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>

<window id="690056Test"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        width="600"
        height="600"
        onload="setTimeout(nextTest, 0);"
        title="bug 6500056 test">

  <script type="application/javascript" src= "chrome://mochikit/content/chrome-harness.js" />
  <script type="application/javascript" src="docshell_helpers.js" />
  <script type="application/javascript"><![CDATA[
    var tests = testIterator();

    function nextTest() {
      tests.next();
    }

    // Makes sure that we fire the visibilitychange events
    function* testIterator() {
      // Enable bfcache
      enableBFCache(8);

      TestWindow.getBrowser().docShellIsActive = true;

      // Load something for a start
      doPageNavigation({
        uri: 'data:text/html,<title>initial load</title>',
        onNavComplete: nextTest
      });
      yield undefined;

      // Now load a new page
      doPageNavigation({
        uri: 'data:text/html,<title>new load</title>',
        eventsToListenFor: [ "pageshow", "pagehide", "visibilitychange" ],
        expectedEvents: [ { type: "pagehide",
                            title: "initial load",
                            persisted: true },
                          { type: "visibilitychange",
                            title: "initial load",
                            visibilityState: "hidden",
                            hidden: true },
                          // No visibilitychange events fired for initial pageload
                          { type: "pageshow",
                            title: "new load",
                            persisted: false }, // false on initial load
                        ],
        onNavComplete: nextTest
      });
      yield undefined;

      // Now go back
      doPageNavigation({
        back: true,
        eventsToListenFor: [ "pageshow", "pagehide", "visibilitychange" ],
        expectedEvents: [ { type: "pagehide",
                            title: "new load",
                            persisted: true },
                          { type: "visibilitychange",
                            title: "new load",
                            visibilityState: "hidden",
                            hidden: true },
                          { type: "visibilitychange",
                            title: "initial load",
                            visibilityState: "visible",
                            hidden: false },
                          { type: "pageshow",
                            title: "initial load",
                            persisted: true },
                        ],
        onNavComplete: nextTest
      });
      yield undefined;

      // And forward
      doPageNavigation({
        forward: true,
        eventsToListenFor: [ "pageshow", "pagehide", "visibilitychange" ],
        expectedEvents: [ { type: "pagehide",
                            title: "initial load",
                            persisted: true },
                          { type: "visibilitychange",
                            title: "initial load",
                            visibilityState: "hidden",
                            hidden: true },
                          { type: "visibilitychange",
                            title: "new load",
                            visibilityState: "visible",
                            hidden: false },
                          { type: "pageshow",
                            title: "new load",
                            persisted: true },
                        ],
        onNavComplete: nextTest
      });
      yield undefined;

      waitForPageEvents({
        eventsToListenFor: [ "visibilitychange" ],
        expectedEvents: [ { type: "visibilitychange",
                            title: "new load",
                            visibilityState: "hidden",
                            hidden: true },
                        ],
        onNavComplete: nextTest
      });

      // Now flip our docshell to not active
      TestWindow.getBrowser().docShellIsActive = false;
      yield undefined;

      // And navigate back; there should be no visibility state transitions
      doPageNavigation({
        back: true,
        eventsToListenFor: [ "pageshow", "pagehide", "visibilitychange" ],
        expectedEvents: [ { type: "pagehide",
                            title: "new load",
                            persisted: true },
                          { type: "pageshow",
                            title: "initial load",
                            persisted: true },
                        ],
        unexpectedEvents: [ "visibilitychange" ],
        onNavComplete: nextTest
      });
      yield undefined;

      waitForPageEvents({
        eventsToListenFor: [ "visibilitychange" ],
        expectedEvents: [ { type: "visibilitychange",
                            title: "initial load",
                            visibilityState: "visible",
                            hidden: false },
                        ],
        onNavComplete: nextTest
      });

      // Now set the docshell active again
      TestWindow.getBrowser().docShellIsActive = true;
      yield undefined;

      // And forward
      doPageNavigation({
        forward: true,
        eventsToListenFor: [ "pageshow", "pagehide", "visibilitychange" ],
        expectedEvents: [ { type: "pagehide",
                            title: "initial load",
                            persisted: true },
                          { type: "visibilitychange",
                            title: "initial load",
                            visibilityState: "hidden",
                            hidden: true },
                          { type: "visibilitychange",
                            title: "new load",
                            visibilityState: "visible",
                            hidden: false },
                          { type: "pageshow",
                            title: "new load",
                            persisted: true },
                        ],
        onNavComplete: nextTest
      });
      yield undefined;

      // Tell the framework the test is finished.
      finish();
    }
  ]]></script>

  <browser type="content" primary="true" flex="1" id="content" remote="true" maychangeremoteness="true" manualactiveness="true" />
</window>

[ Dauer der Verarbeitung: 0.29 Sekunden  (vorverarbeitet)  ]