forked from mirrors/gecko-dev
This is split from the previous changeset since if we include dom/ the file size is too large for phabricator to handle. This is an autogenerated commit to handle scripts loading mochitest harness files, in the simple case where the script src is on the same line as the tag. This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170 using the `--part 2` argument. Differential Revision: https://phabricator.services.mozilla.com/D27457 --HG-- extra : moz-landing-system : lando
220 lines
8.2 KiB
HTML
220 lines
8.2 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test link policy attribute for Bug 1264165</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
|
|
<!--
|
|
Testing that link referrer attributes are honoured correctly
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1264165
|
|
-->
|
|
|
|
<script type="application/javascript">
|
|
|
|
const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
|
|
const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"];
|
|
|
|
const testCases = [
|
|
{ACTION: ["generate-link-policy-test"],
|
|
TESTS: [
|
|
{ATTRIBUTE_POLICY: 'unsafe-url',
|
|
NAME: 'prefetch-unsafe-url-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-unsafe-url with origin in meta",
|
|
RESULT: 'full'},
|
|
{ATTRIBUTE_POLICY: 'origin',
|
|
NAME: 'prefetch-origin-with-unsafe-url-in-meta',
|
|
META_POLICY: 'unsafe-url',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin with unsafe-url in meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'no-referrer',
|
|
NAME: 'prefetch-no-referrer-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-no-referrer with origin in meta",
|
|
RESULT: 'none'},
|
|
{ATTRIBUTE_POLICY: 'same-origin',
|
|
NAME: 'prefetch-same-origin-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-same-origin with origin in meta",
|
|
RESULT: 'full'},
|
|
{NAME: 'prefetch-no-referrer-in-meta',
|
|
META_POLICY: 'no-referrer',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-no-referrer in meta",
|
|
RESULT: 'none'},
|
|
|
|
// Downgrade.
|
|
{ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
|
|
NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta downgrade in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
RESULT: 'none'},
|
|
{ATTRIBUTE_POLICY: 'strict-origin',
|
|
NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta strict-origin in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
RESULT: 'none'},
|
|
{ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
RESULT: 'none'},
|
|
|
|
// No downgrade.
|
|
{ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
|
|
NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta downgrade in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'https',
|
|
RESULT: 'full'},
|
|
|
|
{ATTRIBUTE_POLICY: 'origin',
|
|
NAME: 'prefetch-origin-with-no-meta',
|
|
META_POLICY: '',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin with no meta",
|
|
RESULT: 'origin'},
|
|
|
|
{ATTRIBUTE_POLICY: 'strict-origin',
|
|
NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta strict-origin in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'https',
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
|
|
META_POLICY: 'origin',
|
|
DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
|
|
REL: 'prefetch',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'https',
|
|
RESULT: 'full'},
|
|
|
|
// Cross origin
|
|
{ATTRIBUTE_POLICY: 'origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-when-cross-origin-with-no-meta',
|
|
META_POLICY: '',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin-when-cross-origin with no meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-when-cross-origin-with-no-referrer-in-meta',
|
|
META_POLICY: 'no-referrer',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin-when-cross-origin with no-referrer in meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-when-cross-origin-with-unsafe-url-in-meta',
|
|
META_POLICY: 'unsafe-url',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin-when-cross-origin with unsafe-url in meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'origin-when-cross-origin',
|
|
NAME: 'prefetch-origin-when-cross-origin-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
SCHEME_FROM: 'https',
|
|
SCHEME_TO: 'http',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-origin-when-cross-origin with origin in meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
|
|
NAME: 'prefetch-strict-origin-when-cross-origin-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
SCHEME_FROM: 'http',
|
|
SCHEME_TO: 'https',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-strict-origin-when-cross-origin with origin in meta",
|
|
RESULT: 'origin'},
|
|
{ATTRIBUTE_POLICY: 'same-origin',
|
|
NAME: 'prefetch-same-origin-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
SCHEME_FROM: 'http',
|
|
SCHEME_TO: 'https',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-same-origin with origin in meta",
|
|
RESULT: 'none'},
|
|
|
|
// Invalid
|
|
{ATTRIBUTE_POLICY: 'default',
|
|
NAME: 'prefetch-default-with-no-meta',
|
|
META_POLICY: '',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-default with no meta",
|
|
RESULT: 'full'},
|
|
{ATTRIBUTE_POLICY: 'something',
|
|
NAME: 'prefetch-something-with-no-meta',
|
|
META_POLICY: '',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-something with no meta",
|
|
RESULT: 'full'},
|
|
]},
|
|
|
|
{ACTION: ["generate-link-policy-test-set-attribute"],
|
|
TESTS: [
|
|
{ATTRIBUTE_POLICY: 'unsafe-url',
|
|
NEW_ATTRIBUTE_POLICY: 'no-referrer',
|
|
NAME: 'prefetch-no-referrer-unsafe-url-set-attribute-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-no-referrer-set-attribute (orginally unsafe-url) with origin in meta",
|
|
RESULT: 'none'},
|
|
{ATTRIBUTE_POLICY: 'origin',
|
|
NEW_ATTRIBUTE_POLICY: 'unsafe-url',
|
|
NAME: 'prefetch-unsafe-url-origin-set-attribute-with-no-referrer-in-meta',
|
|
META_POLICY: 'no-referrer',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-unsafe-url-set-attribute(orginally origin) with no-referrer in meta",
|
|
RESULT: 'full'},
|
|
]},
|
|
|
|
{ACTION: ["generate-link-policy-test-property"],
|
|
TESTS: [
|
|
{ATTRIBUTE_POLICY: 'no-referrer',
|
|
NEW_ATTRIBUTE_POLICY: 'unsafe-url',
|
|
NAME: 'prefetch-unsafe-url-no-referrer-property-with-origin-in-meta',
|
|
META_POLICY: 'origin',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-unsafe-url-property (orginally no-referrer) with origin in meta",
|
|
RESULT: 'full'},
|
|
{ATTRIBUTE_POLICY: 'origin',
|
|
NEW_ATTRIBUTE_POLICY: 'unsafe-url',
|
|
NAME: 'prefetch-unsafe-url-origin-property-with-no-referrer-in-meta',
|
|
META_POLICY: 'no-referrer',
|
|
REL: 'prefetch',
|
|
DESC: "prefetch-unsafe-url-property (orginally origin) with no-referrer in meta",
|
|
RESULT: 'full'},
|
|
]},
|
|
];
|
|
|
|
</script>
|
|
<script type="application/javascript" src="/tests/dom/base/test/referrer_helper.js"></script>
|
|
</head>
|
|
<body onload="tests.next();">
|
|
<iframe id="testframe"></iframe>
|
|
</body>
|
|
</html>
|