Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: true
 - Manifest: docshell/test/chrome/chrome.toml
 
<?xml version="1.0"?>
<!--
-->
  <!-- test code goes here -->
  <script type="application/javascript">
  <![CDATA[
  SimpleTest.waitForExplicitFinish();
function test() {
  var progressListener = {
    add(docShell, callback) {
      this.callback = callback;
      this.docShell = docShell;
      docShell.
            QueryInterface(Ci.nsIInterfaceRequestor).
            getInterface(Ci.nsIWebProgress).
            addProgressListener(this, Ci.nsIWebProgress.NOTIFY_STATE_WINDOW);
    },
    finish() {
      this.docShell.
            QueryInterface(Ci.nsIInterfaceRequestor).
            getInterface(Ci.nsIWebProgress).
            removeProgressListener(this);
      this.callback();
    },
    onStateChange (webProgress, req, flags) {
      if (req.name.startsWith("data:application/vnd.mozilla.xul")) {
        if (flags & Ci.nsIWebProgressListener.STATE_STOP)
          this.finish();
      }
    },
    QueryInterface: ChromeUtils.generateQI([
      "nsIWebProgressListener",
      "nsISupportsWeakReference",
    ]),
  }
  var systemPrincipal = Cc["@mozilla.org/systemprincipal;1"]
                          .getService(Ci.nsIPrincipal);
  var webNav = SpecialPowers.Services.appShell.createWindowlessBrowser(true);
  var docShell = webNav.docShell;
  docShell.createAboutBlankDocumentViewer(systemPrincipal, systemPrincipal);
  var win = docShell.docViewer.DOMDocument.defaultView;
  progressListener.add(docShell, function(){
    is(win.document.documentURI, "data:application/xhtml+xml;charset=utf-8,<window/>");
    webNav.close();
    SimpleTest.finish();
  });
  win.location = "data:application/xhtml+xml;charset=utf-8,<window/>";
}
addLoadEvent(function onLoad() {
  test();
});
  ]]>
  </script>
  <!-- test results are displayed in the html:body -->
  </body>
</window>