mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-06 07:17:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
106
dom/plugins/test/mochitest/test_crash_notify.xul
Normal file
106
dom/plugins/test/mochitest/test_crash_notify.xul
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<?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"?>
|
||||
<window title="Basic Plugin Tests"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
|
||||
<script type="application/javascript" src="plugin-utils.js"></script>
|
||||
<script type="application/javascript">
|
||||
setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
|
||||
</script>
|
||||
<body xmlns="http://www.w3.org/1999/xhtml" onload="runTests()">
|
||||
<embed id="plugin1" type="application/x-test" width="200" height="200"></embed>
|
||||
</body>
|
||||
<script class="testbody" type="application/javascript">
|
||||
<![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var success = false;
|
||||
|
||||
var observerFired = false;
|
||||
|
||||
var testObserver = {
|
||||
observe: function(subject, topic, data) {
|
||||
observerFired = true;
|
||||
ok(true, "Observer fired");
|
||||
is(topic, "plugin-crashed", "Checking correct topic");
|
||||
is(data, null, "Checking null data");
|
||||
ok((subject instanceof Components.interfaces.nsIPropertyBag2), "got Propbag");
|
||||
ok((subject instanceof Components.interfaces.nsIWritablePropertyBag2), "got writable Propbag");
|
||||
|
||||
var id = subject.getPropertyAsAString("pluginDumpID");
|
||||
isnot(id, "", "got a non-empty crash id");
|
||||
let directoryService =
|
||||
Components.classes["@mozilla.org/file/directory_service;1"].
|
||||
getService(Components.interfaces.nsIProperties);
|
||||
let profD = directoryService.get("ProfD", Components.interfaces.nsIFile);
|
||||
profD.append("minidumps");
|
||||
let dumpFile = profD.clone();
|
||||
dumpFile.append(id + ".dmp");
|
||||
ok(dumpFile.exists(), "minidump exists");
|
||||
let extraFile = profD.clone();
|
||||
extraFile.append(id + ".extra");
|
||||
ok(extraFile.exists(), "extra file exists");
|
||||
// cleanup, to be nice
|
||||
dumpFile.remove(false);
|
||||
extraFile.remove(false);
|
||||
},
|
||||
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsIObserver) ||
|
||||
iid.equals(Components.interfaces.nsISupportsWeakReference) ||
|
||||
iid.equals(Components.interfaces.nsISupports))
|
||||
return this;
|
||||
throw Components.results.NS_NOINTERFACE;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
function onPluginCrashed(aEvent) {
|
||||
ok(true, "Plugin crashed notification received");
|
||||
ok(observerFired, "Observer should have fired first");
|
||||
is(aEvent.type, "PluginCrashed", "event is correct type");
|
||||
|
||||
var pluginElement = document.getElementById("plugin1");
|
||||
is (pluginElement, aEvent.target, "Plugin crashed event target is plugin element");
|
||||
|
||||
ok(aEvent instanceof PluginCrashedEvent,
|
||||
"plugin crashed event has the right interface");
|
||||
|
||||
is(typeof aEvent.pluginDumpID, "string", "pluginDumpID is correct type");
|
||||
isnot(aEvent.pluginDumpID, "", "got a non-empty dump ID");
|
||||
is(typeof aEvent.pluginName, "string", "pluginName is correct type");
|
||||
is(aEvent.pluginName, "Test Plug-in", "got correct plugin name");
|
||||
is(typeof aEvent.pluginFilename, "string", "pluginFilename is correct type");
|
||||
isnot(aEvent.pluginFilename, "", "got a non-empty filename");
|
||||
// The app itself may or may not have decided to submit the report, so
|
||||
// allow either true or false here.
|
||||
ok("submittedCrashReport" in aEvent, "submittedCrashReport is a property of event");
|
||||
is(typeof aEvent.submittedCrashReport, "boolean", "submittedCrashReport is correct type");
|
||||
|
||||
var os = Components.classes["@mozilla.org/observer-service;1"].
|
||||
getService(Components.interfaces.nsIObserverService);
|
||||
os.removeObserver(testObserver, "plugin-crashed");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
var os = Components.classes["@mozilla.org/observer-service;1"].
|
||||
getService(Components.interfaces.nsIObserverService);
|
||||
os.addObserver(testObserver, "plugin-crashed", true);
|
||||
|
||||
document.addEventListener("PluginCrashed", onPluginCrashed, false);
|
||||
|
||||
var pluginElement = document.getElementById("plugin1");
|
||||
try {
|
||||
pluginElement.crash();
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</window>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue