blob: c711d9ed42bb032c549ccaa65787807e29670832 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<?xml version="1.0"?>
<bindings id="chromeTestBindings" xmlns="http://www.mozilla.org/xbl">
<binding id="testBinding" bindToUntrustedContent="true">
<implementation implements="nsIObserver">
<constructor>
<![CDATA[
// This binding gets applied to a content object, and thus is actually
// running in a content XBL scope.
var win = XPCNativeWrapper.unwrap(window);
var SpecialPowers = win.SpecialPowers;
var ok = SpecialPowers.unwrap(SpecialPowers.wrap(window).parent.ok);
ok(win != window, "Should be running in an XBL scope with Xrays");
// Generate an XPCWrappedJS for the reflector. We need to do this
// explicitly with a testing helper, because we're converging on
// removing XPConnect from the web, which means that it won't be
// possible to generate an XPCWrappedJS from content (or XBL) code.
var scope = {};
var holder = SpecialPowers.Cu.generateXPCWrappedJS(this, scope);
// Now, QI |this|, which will generate an aggregated native.
this.QueryInterface(Components.interfaces.nsIObserver);
ok(true, "Didn't assert or crash");
SpecialPowers.wrap(window).parent.SimpleTest.finish();
]]>
</constructor>
<method name="observe">
<parameter name="aSubject"/>
<parameter name="aTopic"/>
<parameter name="aData"/>
<body><![CDATA[]]></body>
</method>
</implementation>
</binding>
</bindings>
|