72 lines
3.1 KiB
HTML
72 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF8">
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test() {
|
|
let testCases = [
|
|
{selector: "#stylesheet-without-whitespace", hash: "sha256-NW7+Fm6YV404pkklaopT0jgCBCmfOAn0K+NtIfyPN4A="},
|
|
{selector: "#stylesheet-with-whitespace", hash: "sha256-b5lOENncCyOGrTlLzIlify6a9ddSaiGTBFF/jcYcj0k="},
|
|
{selector: "#stylesheet-with-ignored-charset", hash: "sha256-Nyij5I3ne5qy0HQHZD8sKjbedAqMQDJ2riYqGniSYTc="},
|
|
{selector: "#script-without-whitespace", hash: "sha256-tVRjKJA9OYKEzYP5h7H2XbuSVgOjLD74/zqHyl+/xOM="},
|
|
{selector: "#script-with-whitespace", hash: "sha256-hSQRzSxNGYtVe272nNs1poXibikReR/Y+NfX6TsCqzo="},
|
|
{selector: "#script-with-unicode-code-point-00C5", hash: "sha256-YcKgriaBGkU6FsWZXgDLv4Wo5UZ5Qe5hNp6Psb3RJOE="},
|
|
{selector: "#script-with-unicode-code-point-212B", hash: "sha256-YcKgriaBGkU6FsWZXgDLv4Wo5UZ5Qe5hNp6Psb3RJOE="}, // Same hash as for script #script-with-unicode-code-point-00C5.
|
|
{selector: "#external-stylesheet", hash: undefined},
|
|
{selector: "#external-script", hash: undefined},
|
|
{selector: "#external-stylesheet", hash: undefined},
|
|
{selector: "#paragraph", hash: undefined},
|
|
];
|
|
|
|
WI.domManager.requestDocument(function(documentNode) {
|
|
for (let {selector, hash} of testCases) {
|
|
documentNode.querySelector(selector, function(nodeId) {
|
|
let domNode = WI.domManager.nodeForId(nodeId);
|
|
InspectorTest.log("");
|
|
InspectorTest.expectThat(domNode, `Got DOMNode for ${selector}`);
|
|
InspectorTest.expectThat(domNode.contentSecurityPolicyHash() === hash, `DOMNode has hash ${hash}`);
|
|
});
|
|
}
|
|
InspectorTest.completeTest();
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Test for Content Security Policy hash support on DOM.DOMNode.</p>
|
|
|
|
<!-- Elements that can have a Content Security Policy hash -->
|
|
<style id="stylesheet-without-whitespace">#test1 { background-color: blue; }</style>
|
|
<style id="stylesheet-with-whitespace">
|
|
#test2 {
|
|
background-color: yellow;
|
|
}
|
|
</style>
|
|
<style id="stylesheet-with-ignored-charset">
|
|
@charset "Big5"; /* This should be ignored. */
|
|
#test3 {
|
|
background-color: magenta;
|
|
}
|
|
</style>
|
|
|
|
<script id="script-without-whitespace">var thisIsAnInlineScript = true;</script>
|
|
<script id="script-with-whitespace">
|
|
var thisIsAnotherInlineScript = true;
|
|
</script>
|
|
<script id="script-with-unicode-code-point-00C5">
|
|
// Å
|
|
</script>
|
|
<!-- Hash of this script should be equivalent to hash of script script-with-unicode-code-point-00C5. -->
|
|
<script id="script-with-unicode-code-point-212B">
|
|
// Å
|
|
</script>
|
|
|
|
<!-- Elements that cannot have a Content Security Policy hash -->
|
|
<!-- FIXME: We should make this more comprehensive. -->
|
|
<link id="external-stylesheet" rel="stylesheet" href="">
|
|
<script id="external-script" src=""></script>
|
|
<p id="paragraph"></p>
|
|
</body>
|
|
</html>
|