mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 05:37:11 +00:00
ebd6e6dc19
- Bug 1174323 - Disable screenClientXYConst subtest of pointerlock test on OS X. rs=KWierso (2d0db6d1b) - Bug 992096 - Implement Sub Resource Integrity [1/2]. r=baku,r=ckerschb (c30671ac0) - Bug 992096 - Implement Sub Resource Integrity [2/2]. r=ckerschb (0afc64d88) - Bug 1091883 - Added test, this is fixed by a fix to bug 1113438. r=sstamm CLOSED TREE (fd9a64b43) - Bug 1196740 - Consider redirects when looking for SRI-eligibility. r=ckerschb (5c749cdc9) - Bug 1202015 - Better document the SRI strings for translators. r=ckerschb (a7860e0fb) - Bug 1202027 - Make SRI require CORS loads for cross-origin resources. r=ckerschb (ea451323d) - bit of Bug 1202902 - Mass replace toplevel 'let' with 'var' (a6e8a587d) - Bug 1208629 - Properly support data: and blob: URIs with an integrity atribute. r=ckerschb (6b2018fe4) - Bug 1140129 - Don't clear tab title when location changes (r=Mossop) (ca1945ba8) - Bug 1073462: Send synthetic property with Content:LocationChange message. r=felipe (1aa418acf) - bug 1165017 - annotate content process URL on location change. r=mconley (cdca4fa75) - Bug 1157561 - Add webRequest-like API to Firefox (r=Mossop) (546a57822) - Bug 1163861 - Include windowID in all WebRequest notifications (r=Mossop) (c140af560) - Bug 1171248 - Add MatchPattern support to WebRequest module (r=Mossop) (b09a05658)
125 lines
4.8 KiB
HTML
125 lines
4.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<!-- Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
<html>
|
|
<head>
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script type="application/javascript">
|
|
function check_styles() {
|
|
var redText = document.getElementById('red-text');
|
|
var blueText = document.getElementById('blue-text-element');
|
|
var blackText1 = document.getElementById('black-text');
|
|
var blackText2 = document.getElementById('black-text-2');
|
|
var redTextColor = window.getComputedStyle(redText, null).getPropertyValue('color');
|
|
var blueTextColor = window.getComputedStyle(blueText, null).getPropertyValue('color');
|
|
var blackTextColor1 = window.getComputedStyle(blackText1, null).getPropertyValue('color');
|
|
var blackTextColor2 = window.getComputedStyle(blackText2, null).getPropertyValue('color');
|
|
ok(redTextColor == 'rgb(255, 0, 0)', "The first part should be red.");
|
|
ok(blueTextColor == 'rgb(0, 0, 255)', "The second part should be blue.");
|
|
ok(blackTextColor1 == 'rgb(0, 0, 0)', "The second last part should still be black.");
|
|
ok(blackTextColor2 == 'rgb(0, 0, 0)', "The last part should still be black.");
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
window.onload = function() {
|
|
check_styles();
|
|
SimpleTest.finish();
|
|
}
|
|
</script>
|
|
<script>
|
|
function good_correctHashLoaded() {
|
|
ok(true, "A stylesheet was correctly loaded when integrity matched");
|
|
}
|
|
function bad_correctHashBlocked() {
|
|
ok(false, "We should load stylesheets with hashes that match!");
|
|
}
|
|
|
|
function good_emptyIntegrityLoaded() {
|
|
ok(true, "A stylesheet was correctly loaded when the integrity attribute was empty");
|
|
}
|
|
function bad_emptyIntegrityBlocked() {
|
|
ok(false, "We should load stylesheets with empty integrity attributes!");
|
|
}
|
|
|
|
function good_incorrectHashBlocked() {
|
|
ok(true, "A stylesheet was correctly blocked, because the hash digest was wrong");
|
|
}
|
|
function bad_incorrectHashLoaded() {
|
|
ok(false, "We should not load stylesheets with hashes that do not match the content!");
|
|
}
|
|
|
|
function good_validBlobLoaded() {
|
|
ok(true, "A stylesheet was loaded successfully from a blob: URL with the right hash.");
|
|
}
|
|
function bad_validBlobBlocked() {
|
|
ok(false, "We should load stylesheets using blob: URLs with the right hash!");
|
|
}
|
|
function good_invalidBlobBlocked() {
|
|
ok(true, "A stylesheet was blocked successfully from a blob: URL with an invalid hash.");
|
|
}
|
|
function bad_invalidBlobLoaded() {
|
|
ok(false, "We should not load stylesheets using blob: URLs when they have the wrong hash!");
|
|
}
|
|
</script>
|
|
|
|
<!-- valid sha256 hash. should trigger onload -->
|
|
<link rel="stylesheet" href="style1.css"
|
|
integrity="sha256-qs8lnkunWoVldk5d5E+652yth4VTSHohlBKQvvgGwa8="
|
|
onerror="bad_correctHashBlocked()"
|
|
onload="good_correctHashLoaded()">
|
|
|
|
<!-- empty metadata. should trigger onload -->
|
|
<link rel="stylesheet" href="style2.css"
|
|
integrity=""
|
|
onerror="bad_emptyIntegrityBlocked()"
|
|
onload="good_emptyIntegrityLoaded()">
|
|
|
|
<!-- invalid sha256 hash. should trigger onerror -->
|
|
<link rel="stylesheet" href="style3.css"
|
|
integrity="sha256-bogus"
|
|
onerror="good_incorrectHashBlocked()"
|
|
onload="bad_incorrectHashLoaded()">
|
|
</head>
|
|
<body>
|
|
|
|
<!-- valid sha256 for a blob: URL -->
|
|
<script>
|
|
var blob = new Blob(['.blue-text{color:blue}'],
|
|
{type: 'text/css'});
|
|
var link = document.createElement('link');
|
|
link.rel = 'stylesheet';
|
|
link.href = window.URL.createObjectURL(blob);
|
|
link.setAttribute('integrity', 'sha256-/F+EMVnTWYJOAzN5n7/21idiydu6nRi33LZOISZtwOM=');
|
|
link.onerror = bad_validBlobBlocked;
|
|
link.onload = good_validBlobLoaded;
|
|
document.body.appendChild(link);
|
|
</script>
|
|
|
|
<!-- invalid sha256 for a blob: URL -->
|
|
<script>
|
|
var blob = new Blob(['.black-text{color:blue}'],
|
|
{type: 'text/css'});
|
|
var link = document.createElement('link');
|
|
link.rel = 'stylesheet';
|
|
link.href = window.URL.createObjectURL(blob);
|
|
link.setAttribute('integrity', 'sha256-/F+EMVnTWYJOAzN5n7/21idiydu6nRi33LZOISZtwOM=');
|
|
link.onerror = good_invalidBlobBlocked;
|
|
link.onload = bad_invalidBlobLoaded;
|
|
document.body.appendChild(link);
|
|
</script>
|
|
|
|
<p><span id="red-text">This should be red </span> and
|
|
<span class="blue-text" id="blue-text-element">this should be blue.</span>
|
|
However, <span id="black-text">this should stay black</span> and
|
|
<span class="black-text" id="black-text-2">this should also stay black.</span>
|
|
</p>
|
|
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
</div>
|
|
<pre id="test">
|
|
</pre>
|
|
</body>
|
|
</html>
|