| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta http-equiv="Content-Security-Policy" content="img-src https:; script-src 'unsafe-inline'"> |
| <script> |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpAsText(); |
| } |
| |
| function test1() { |
| var img = document.createElement('img'); |
| img.onload = function () { |
| alert('FAIL (1/3)'); |
| test2(); |
| }; |
| img.onerror = function () { |
| alert('PASS (1/3)'); |
| test2(); |
| }; |
| img.src = "../resources/abe.png"; |
| } |
| |
| function test2() { |
| internals.registerURLSchemeAsBypassingContentSecurityPolicy('http'); |
| var img = document.createElement('img'); |
| img.onload = function () { |
| alert('PASS (2/3)'); |
| test3(); |
| }; |
| img.onerror = function () { |
| alert('FAIL (2/3)'); |
| test3(); |
| }; |
| img.src = "../resources/abe.png"; |
| } |
| |
| function test3() { |
| internals.removeURLSchemeRegisteredAsBypassingContentSecurityPolicy('http'); |
| var img = document.createElement('img'); |
| img.onload = function () { |
| alert('FAIL (3/3)'); |
| finishTesting(); |
| }; |
| img.onerror = function () { |
| alert('PASS (3/3)'); |
| finishTesting(); |
| }; |
| img.src = "../resources/abe.png"; |
| } |
| |
| function finishTesting() { |
| if (window.testRunner) { |
| setTimeout(function () { testRunner.notifyDone(); }, 0); |
| } |
| return true; |
| } |
| </script> |
| </head> |
| <body onload='test1();'> |
| <p> |
| This test ensures that registering a scheme as bypassing CSP actually bypasses CSP. |
| This test passes if three PASSes are generated. |
| </p> |
| </body> |
| </html> |