Bug 1576787 - Handle RemoteObjectProxies in instanceof r=bzbarsky

Differential Revision: https://phabricator.services.mozilla.com/D43559

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Paul Bone 2019-08-30 05:22:34 +00:00
Родитель 6772173be2
Коммит ead45f248b
3 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -2461,6 +2461,11 @@ bool InterfaceHasInstance(JSContext* cx, unsigned argc, JS::Value* vp) {
return true;
}
if (IsRemoteObjectProxy(instance, clasp->mPrototypeID)) {
args.rval().setBoolean(true);
return true;
}
return CallOrdinaryHasInstance(cx, args);
}

Просмотреть файл

@ -89,7 +89,6 @@ fail-if = fission # Bug 1573621: window.location access after cross-origin navig
[test_bug862380.html]
[test_bug865260.html]
[test_bug870423.html]
fail-if = fission # isinstance hooks for remote object proxies.
[test_bug871887.html]
[test_bug912322.html]
[test_bug916945.html]

Просмотреть файл

@ -16,6 +16,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=870423
function go() {
var sowin = $('soifr').contentWindow;
var xowin = $('xoifr').contentWindow;
var xosswin = $('xossifr').contentWindow;
check(window, sowin, 'HTMLBodyElement', function(win) { return win.document.body; });
check(window, sowin, 'HTMLDocument', function(win) { return win.document; });
@ -25,6 +26,10 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=870423
ok(xowin instanceof Window, "Cross-origin instanceof should work");
ok(xowin.location instanceof Location, "Cross-origin instanceof should work");
// cross-origin same-site.
ok(xosswin instanceof Window, "Cross-origin instanceof should work");
ok(xosswin.location instanceof Location, "Cross-origin instanceof should work");
SimpleTest.finish();
}
@ -45,6 +50,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=870423
</div>
<iframe id="soifr" src="file_empty.html"></iframe>
<iframe id="xoifr" src="http://example.org/tests/js/xpconnect/tests/mochitest/file_empty.html"></iframe>
<!-- cross origin, same site -->
<iframe id="xossifr" src="//test1.mochi.test:8888/tests/js/xpconnect/tests/mochitest/file_empty.html"></iframe>
<pre id="test">
</pre>
</body>