mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
6515f97bcb
This is an autogenerated commit to handle scripts loading mochitest harness files, in the simple case where the script src is on the same line as the tag. This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170 using the `--part 1` argument. Differential Revision: https://phabricator.services.mozilla.com/D26812 --HG-- extra : moz-landing-system : lando
83 lines
2.8 KiB
XML
83 lines
2.8 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
|
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=760802
|
|
-->
|
|
<window title="Mozilla Bug 760802"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
|
|
|
<!-- test results are displayed in the html:body -->
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=760802"
|
|
target="_blank">Mozilla Bug 760802</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"/>
|
|
<iframe id="iframe_not_editable" width="300" height="150"
|
|
src="data:text/html,<html><body></body></html>"/><br/>
|
|
</body>
|
|
|
|
<!-- test code goes here -->
|
|
<script type="application/javascript"><![CDATA[
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
function getBaseWindowInterface(win) {
|
|
return win.docShell
|
|
.treeOwner
|
|
.nsIBaseWindow;
|
|
}
|
|
|
|
function getBaseWindowInterfaceFromDocShell(win) {
|
|
return win.docShell.QueryInterface(Ci.nsIBaseWindow);
|
|
}
|
|
|
|
function shouldThrowException(fun, exception) {
|
|
try {
|
|
fun.call();
|
|
return false;
|
|
} catch (e) {
|
|
$("display").innerHTML += "<br/>OK thrown: "+e.message;
|
|
return (e instanceof Components.Exception &&
|
|
e.result === exception)
|
|
}
|
|
}
|
|
function doesntThrowException(fun) {
|
|
return !shouldThrowException(fun);
|
|
}
|
|
|
|
var baseWindow = getBaseWindowInterface(this);
|
|
var nativeHandle = baseWindow.nativeHandle;
|
|
$("display").innerHTML = "found nativeHandle for this window: "+nativeHandle;
|
|
|
|
var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
|
|
var win = wm.getMostRecentWindow("navigator:browser");
|
|
let docShell = getBaseWindowInterfaceFromDocShell(win);
|
|
|
|
ok(
|
|
shouldThrowException(function(){docShell.nativeHandle;},
|
|
Cr.NS_ERROR_NOT_IMPLEMENTED),
|
|
"nativeHandle should not be implemented for nsDocShell"
|
|
);
|
|
|
|
ok(typeof(nativeHandle) === "string", "nativeHandle should be a string");
|
|
ok(nativeHandle.match(/^0x[0-9a-f]+$/), "nativeHandle should have a memory address format");
|
|
|
|
var iWin = document.getElementById("iframe_not_editable").contentWindow;
|
|
is(getBaseWindowInterface(iWin).nativeHandle, nativeHandle,
|
|
"the nativeHandle of an iframe should be its parent's nativeHandle");
|
|
|
|
var dialog = win.openDialog("data:text/plain,this is an active window.", "_blank",
|
|
"chrome,dialog=yes,width=100,height=100");
|
|
|
|
isnot(getBaseWindowInterface(dialog).nativeHandle, "",
|
|
"the nativeHandle of a dialog should not be empty");
|
|
|
|
dialog.close();
|
|
|
|
todo(false, "the nativeHandle of a window without a mainWidget should be empty"); // how to build a window without a mainWidget ?
|
|
|
|
SimpleTest.finish();
|
|
]]></script>
|
|
</window>
|