| <!DOCTYPE html> | |
| <!-- | |
| | Try to load the same image over http: and https:. Set a policy to only allow | |
| | https: scheme for img-src. We should see only a single image occupy the | |
| | bottom half of the screen. | |
| --> | |
| <html> | |
| <head> | |
| <meta http-equiv="content-security-policy" content="img-src https:"> | |
| <style> | |
| div { | |
| height:180px; | |
| background-repeat:no-repeat; | |
| } | |
| </style> | |
| <script> | |
| if (window.testRunner) { | |
| window.testRunner.waitUntilDone(); | |
| } | |
| var images = [new Image(), new Image()]; | |
| var image_base = "www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"; | |
| var div_ids = ["insecure", "secure"]; | |
| var urls = ["http://" + image_base, "https://" + image_base]; | |
| var num_errors = 0; | |
| for (var i = 0; i < 2; i++) { | |
| var divname = div_ids[i]; | |
| var url = urls[i]; | |
| images[i].onload = function() { | |
| var item = document.getElementById(divname); | |
| item.style.backgroundImage = "url(" + url + ")"; | |
| // We only expect one image to load, so notify once that happens. | |
| if (window.testRunner) { | |
| window.testRunner.notifyDone(); | |
| } | |
| } | |
| images[i].onerror = function() { | |
| ++num_errors; | |
| console.log('Error loading: ' + this.src); | |
| if (num_errors >= 2) { | |
| console.log('More errors than expected!'); | |
| window.testRunner.notifyDone(); | |
| } | |
| } | |
| images[i].src = urls[i]; | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <div id=insecure></div> | |
| <div id=secure></div> | |
| </body> | |
| </html> |