<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Bug 1229639 - Percent encoded CSP path matching.</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> </head> <body> <p id="display"></p> <div id="content" style="display: none"></div> <iframe style="width:200px;height:200px;" id='cspframe'></iframe> <script class="testbody" type="text/javascript"> // This is used to watch the blocked data bounce off CSP and allowed data // get sent out to the wire. function examiner() { SpecialPowers.addObserver(this, "csp-on-violate-policy", false); SpecialPowers.addObserver(this, "specialpowers-http-notify-request", false); } examiner.prototype = { observe: function(subject, topic, data) { if (data === 'http://mochi.test:8888/tests/dom/security/test/csp/%24.js') { is(topic, "specialpowers-http-notify-request"); this.remove(); SimpleTest.finish(); } }, // must eventually call this to remove the listener, // or mochitests might get borked. remove: function() { SpecialPowers.removeObserver(this, "csp-on-violate-policy"); SpecialPowers.removeObserver(this, "specialpowers-http-notify-request"); } } window.examiner = new examiner(); SimpleTest.waitForExplicitFinish(); // save this for last so that our listeners are registered. // ... this loads the testbed of good and bad requests. document.getElementById('cspframe').src = 'file_bug1229639.html'; </script> </pre> </body> </html>