// Bug 622088 - Test that XHR gives the referrer corresponding to the
// dynamic script context.
const kOriginalLocation = location.href;
SimpleTest.waitForExplicitFinish();
var innerFinishedLoading = false;
function innerLoaded(inner) {
// Here, we're being called through inner's onload handler, so our referrer
// should be inner's URL. var referrer = inner.doXHR();
is (referrer, String(inner.document.location), 'Expected inner frame location');
// Now change the location of the inner frame. This should be reflected in
// the XHR's referrer.
inner.history.pushState('', '', Math.random());
referrer = inner.doXHR();
is (referrer, String(inner.document.location), 'Expected inner frame location after pushstate');
innerFinishedLoading = true;
}
var dataWindowFinishedLoading = false;
function dataWindowLoaded() {
dataWindowFinishedLoading = true;
}
function callXHR() {
if (innerFinishedLoading && dataWindowFinishedLoading) { var inner = document.getElementById('iframe').contentWindow; var referrer = inner.doXHR();
is (referrer, String(inner.document.location), 'Expected inner frame location when called from outer frame.');
var referrer = inner.doXHR(new XMLHttpRequest());
is (referrer, String(document.location), "Expected outer frame location when called with outer's XHR object.");
// Now do a request within the inner window using an XMLHttpRequest
// retrieved from a data: URI. The referrer should be this window, not the
// data: URI. var dataWindow = document.getElementById('dataWindow').contentWindow; var referrer = inner.doXHR(dataWindow.getXHRObject());
is (referrer, String(document.location), "Expected outer frame location when called with data's XHR object.");
// Now do that test again, but after having changed the outer window's URI.
// This currently fails, due to basically bug 631949. It's not even clear
// what the right behavior is. So marking as a todo for now.
history.replaceState('', '', Math.random());
var referrer = inner.doXHR(dataWindow.getXHRObject());
todo_is (referrer, String(document.location), "Expected outer frame location when called with data's XHR object " + "after replaceState.");
// In case you're temped, you probably don't want to do history.pushState
// here and test again with the outer frame. Calling pushState on the
// outer frame messes up Mochitest in subtle ways.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.