Bug 587523: update test_referrer.js to include pbmode tests r=valentin

MozReview-Commit-ID: FXUMi9Q3S3P

--HG--
extra : rebase_source : 5fabbd2ed3aa04eb68d4e1e43ef0b710125ffee5
This commit is contained in:
Luke Crouch 2018-01-16 15:25:09 -06:00
parent 111ae8a75d
commit a102c64ea0
2 changed files with 22 additions and 4 deletions

View File

@ -1567,6 +1567,9 @@ HttpBaseChannel::GetReferrer(nsIURI **referrer)
NS_IMETHODIMP
HttpBaseChannel::SetReferrer(nsIURI *referrer)
{
if (mLoadInfo->GetOriginAttributes().mPrivateBrowsingId > 0) {
return SetReferrerWithPolicy(referrer, NS_GetDefaultReferrerPolicy(true));
}
return SetReferrerWithPolicy(referrer, NS_GetDefaultReferrerPolicy());
}

View File

@ -1,14 +1,13 @@
Cu.import("resource://gre/modules/NetUtil.jsm");
Cu.import("resource://gre/modules/Services.jsm");
function getTestReferrer(server_uri, referer_uri) {
function getTestReferrer(server_uri, referer_uri, isPrivate=false) {
var uri = NetUtil.newURI(server_uri)
let referrer = NetUtil.newURI(referer_uri);
let triggeringPrincipal = Services.scriptSecurityManager.createCodebasePrincipal(referrer, {});
let principal = Services.scriptSecurityManager.createCodebasePrincipal(referrer, {privateBrowsingId: isPrivate ? 1 : 0});
var chan = NetUtil.newChannel({
uri: uri,
loadingPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
triggeringPrincipal: triggeringPrincipal,
loadingPrincipal: principal,
contentPolicyType: Ci.nsIContentPolicy.TYPE_OTHER
});
@ -63,6 +62,22 @@ function run_test() {
Assert.equal(getTestReferrer(server_uri, referer_uri), referer_uri);
Assert.equal(null, getTestReferrer(server_uri_2, referer_uri_https));
// tests for referer.defaultPolicy
prefs.setIntPref("network.http.referer.defaultPolicy.pbmode", 0);
Assert.equal(null, getTestReferrer(server_uri, referer_uri, true));
prefs.setIntPref("network.http.referer.defaultPolicy.pbmode", 1);
Assert.equal(null, getTestReferrer(server_uri, referer_uri, true));
Assert.equal(getTestReferrer(server_uri, referer_uri_2, true), referer_uri_2);
prefs.setIntPref("network.http.referer.defaultPolicy.pbmode", 2);
Assert.equal(null, getTestReferrer(server_uri, referer_uri_https, true));
Assert.equal(getTestReferrer(server_uri_https, referer_uri_https, true), referer_uri_https);
Assert.equal(getTestReferrer(server_uri_https, referer_uri_2_https, true), "https://bar.examplesite.com/");
Assert.equal(getTestReferrer(server_uri, referer_uri_2, true), referer_uri_2);
Assert.equal(getTestReferrer(server_uri, referer_uri, true), "http://foo.example.com/");
prefs.setIntPref("network.http.referer.defaultPolicy.pbmode", 3);
Assert.equal(getTestReferrer(server_uri, referer_uri, true), referer_uri);
Assert.equal(null, getTestReferrer(server_uri_2, referer_uri_https, true));
// tests for referer.spoofSource
prefs.setBoolPref("network.http.referer.spoofSource", true);
Assert.equal(getTestReferrer(server_uri, referer_uri), server_uri);