| <html> |
| <body> |
| <p>Tests source origin difference for cached resources.</p |
| <p>This succeeds if not crashing after applying memory pressure (https://bugs.webkit.org/show_bug.cgi?id=163887).</p> |
| <div id="console"></div> |
| <div> |
| <iframe id="iframe1"></iframe> |
| <iframe id="iframe2"></iframe> |
| </div> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| window.addEventListener("message", function(event) { |
| document.getElementById('console').innerHTML += event.data + "<br/>"; |
| loadNextFrame(); |
| }); |
| |
| var iframeURL8000 = "http://localhost:8000/security/resources/cross-origin-cached-resource-iframe.html"; |
| var iframeURL8080 = "http://localhost:8080/security/resources/cross-origin-cached-resource-iframe.html"; |
| |
| var allowAllImage1 = "data:image/svg+xml;base64, " + |
| "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw" + |
| "Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIg" + |
| "aGVpZ2h0PSIxMDAlIiBmaWxsPSJMaWdodFNlYUdyZWVuIi8+PHJlY3QgeD0iMjAiIHk9IjIwIiB3" + |
| "aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJyZWQiLz48aW1hZ2UgeD0iMjAiIHk9IjIw" + |
| "IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4" + |
| "bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5" + |
| "emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUncNCk9pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwz" + |
| "aHNhVzVySWo0OGNtVmpkQ0I0UFNJd0lpQjVQU0l3SWlCM2FXUjBhRDBpTVRBd0pTSWcNCmFHVnBa" + |
| "MmgwUFNJeE1EQWxJaUJtYVd4c1BTSm5jbVZsYmlJdlBqeHlaV04wSUhnOUlqSXdJaUI1UFNJeU1D" + |
| "SWdkMmxrZEdnOUlqRXcNCk1DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ1ptbHNiRDBpY21Wa0lpOCtQ" + |
| "R2x0WVdkbElIZzlJakl3SWlCNVBTSXlNQ0lnZDJsa2RHZzkNCklqRXdNQ1VpSUdobGFXZG9kRDBp" + |
| "TVRBd0pTSWdlR3hwYm1zNmFISmxaajBpWkdGMFlUcHBiV0ZuWlM5emRtY3JlRzFzTzJKaGMyVTIN" + |
| "Ck5DeFFTRTR5V25sQ05HSlhlSFZqZWpCcFlVaFNNR05FYjNaTU0yUXpaSGsxTTAxNU5YWmpiV04y" + |
| "VFdwQmQwMURPWHBrYldOcFNVaG8NCmRHSkhOWHBQYm1oellWYzFjbEJUU205a1NGSjNEUXBQYVRo" + |
| "MlpETmtNMHh1WTNwTWJUbDVXbms0ZUU5VWF6Vk1NMmh6WVZjMWNrbHENCk5EaGpiVlpxWkVOQ05G" + |
| "QlRTWGRKYVVJMVVGTkpkMGxwUWpOaFYxSXdZVVF3YVUxVVFYZEtVMGxuRFFwaFIxWndXakpvTUZC" + |
| "VFNYaE4NClJFRnNTV2xDYldGWGVITlFVMHB6WVZka2IyUkZaSGxhVjFaMVNXazRLMUJJU214Wk0x" + |
| "Rm5aVVF3YVUxcVFXbEpTR3M1U1dwSmQwbHANClFqTmhWMUl3RFFwaFJEQnBUVlJCZDBwVFNXZGhS" + |
| "MVp3V2pKb01GQlRTWGhOUkVGc1NXbENiV0ZYZUhOUVUwcDVXbGRSYVV4Nk5EaGgNClZ6Rm9XakpW" + |
| "WjJWRU1HbE5ha0ZwU1Vock9VbHFTWGRKYVVJekRRcGhWMUl3WVVRd2FVMVVRWGRLVTBsbllVZFdj" + |
| "Rm95YURCUVUwbDQNClRVUkJiRWxwUWpSaVIyeDFZWHB3YjJOdFZtMVFVMHByV1ZoU2FFOXRiSFJa" + |
| "VjJSc1RETk9NbHA1ZERSaVYzYzNEUXBaYlVaNldsUloNCk1FeEdRa2xVYWtwaFpWVkpNRmxzWkRS" + |
| "a1YwNDJUVWRzYUZOR1NYZFpNRkoyWkd0M2VscEVUbXRsVkZWNlZGaHJNV1J0VG5SWk0xcE8NCllX" + |
| "dEdNMVJWVFRWbGJWSjBEUXBaTW14S1UwZG9NRmxyWXpGbGF6bDFZVWhPYUZaNlZubFZSazVMWWpK" + |
| "U1NWVnVZMDVEYXpsd1QwaGENCmEwMHlVWHBVUnpWcVpXdDRkRTlZYkdGbFZHZzBWREZTY2s1VmQz" + |
| "cGhTRTVvRFFwV2VsWjVVMWR2TUU5SFRuUldiWEJyVVRCSk1GVkcNClRrcGtNR3h3VVdwV1VWVXdi" + |
| "RE5UVjJ4RFRUSkdXRlZxUW1oU1JFSndWRlpTUW1Rd2NGUlRWMk5PUTIxR1NGWnVRbUZOYldkM0RR" + |
| "cFYNClJrNUtaVVV4UlZGWGVFcGhWVXAwV1Zaa05HTXhRbFJUYms1b1ZucEdjMVZxVGt0aVJuQllU" + |
| "a2RzVFdWcVVUUlpNakZYWVcxU1JGRnENClVsRlZNR3cxVkZWT1Nsb3lWbFZOUjJ4T0RRcGhhMFp3" + |
| "VTFWb2EyTkdjRWxWYlRoT1EyeENWRk5ZYUU1U1JVWnpVMWRzUTJJeGNGaGkNClJ6Vm9VMFpGTlZO" + |
| "WGNFWmtNREZFVmxkc1NsSXhjSGRaYTJRelQxVnNkVk50ZUdGUk1Hd3lEUXBWUjNBMFkwZEtXRkp0" + |
| "TldGVk1Fa3cNClZVWk9TbVZWTVVSVFYyUnNWa1JDY0ZSWGNFSmhWV3hKV2toQlRrTnNjRWxWYlRs" + |
| "UlZUQnNORlJWVWtKaVJXeHdVVzA1WVZZeWVIVloNClZXaFNEUXBQVld4eFVsaGtUbEV4Vm5CVFZX" + |
| "aHZZekpHV0U1WVNsQmlWMmcxVjJ4a1drOVZiSFJWYldoclVqQlZNbGxXWTNoaFJtOTUNClZsaGFh" + |
| "bEo2Vm5WVWVrcExZVWROZVZaVVNVNURhelZFRFFwbFNFSlhZVEJ3VVZaWE5XcGtNVTEzV2tjMWFV" + |
| "MUZXa05WVmxaSFZERlYNCmVGWnRPVk5XYkZwMVZWWldSMUZzU1hoU2EwcFNWbFZhUkZsVVFrOVJi" + |
| "R1JXVW10S1VsWlZiM3BVYTJoRERRcFdNVnBXVW10S1VsWlYNCldrTldNRlV4VmtaV2NWRnJiMDVE" + |
| "YkVaWlUyNXdUMUl3TUhsV1ZsWkhVV3hHVm1SRmRGUmlSWEJIVlcxNFYySkdVblZUYWtKT1VtdGEN" + |
| "ClIxWkhkRWRSYkVaV0RRcGlSRTVQVFVVMVJsZHRjRzVPVm05NVdYcEdVbUY2YTNwWmEyaEhXVlph" + |
| "Um1GR1VtbFhSa3AxVlZSQ2MySnMNClJsWlNiRTFPUTJ4S1ZsUnJTbEpOUlZwNVZsZDBSMkpzUmxo" + |
| "aVJYQmhEUXBOUlZwRFZsZDBWMUpHUmxaVWEwcG9UVlZ3UTFkcVFrZGoNClJrNVlXa1ZLVWxacmNF" + |
| "ZFZWRUpIVWtaR1dHUkdUbEpXTWxKRFdWWldjMkpzUmxaU2JFNVRWbFUxUTFWVVFrZGpiRlp5RFFw" + |
| "U2JUUk8NClEyeEdXR0pGY0dGTlJWcERWbGQwVjFKR1JsWlVhMHBvVFZWd1ExZHFRa2RqUms1WVdr" + |
| "VktVbFpyY0VkVlZFSkhVa1pHV0dSR1RsSlcNCk1sSkRXVlpXYzJKc1JsWlNiRTVURFFwV1ZUVkRW" + |
| "VlJDUjJOc1ZuSlNiVFZTVmpKNFMxZHFRa2RSYkZaeVZtdFJUa05zUmxaVWEwcG8NClRWVndRMWRx" + |
| "UWtkalJrNVlXa1ZLVWxacmNFZFZWRUpIVWtaR1dHUkdUbEpXTWxKRERRcFpWbFp6WW14R1ZsSnNU" + |
| "bE5XVlRWRFZWUkMNClIyTnNWbkpTYlRWU1ZqSlNTMVZzVmtkU2JGWnlWbXRTVWxaVk5VTlpWRVpM" + |
| "VVcxU2RWTnRNRTVEYlU1elZXeEtWVkpYVW05Vk1GSlANCkRRcGxSbXh5VW10S1VsWlZXa05WVjNS" + |
| "M1ZURmFWVlpyV21waVdGSk1WMnBLYTJKc1FsVk5SMnhSWVc1a01sbFdZM2hoUm05NVZsTjANClVW" + |
| "RjZiRFphUnpGcVN6QlNVbUl3TlVSYWVqQTVEUXBKYWpRNFRESnNkRmxYWkd4UWFuZDJZek5hYmxC" + |
| "blBUMGlQand2YVcxaFoyVSsNClBDOXpkbWMrIj48L2ltYWdlPjwvc3ZnPg=="; |
| |
| var counter = 0; |
| function loadNextFrame() |
| { |
| counter++; |
| // Four first tests try to load an image with a given origin and then the same image (in cache) with a different origin. |
| if (counter == 1) |
| document.getElementById('iframe1').src = iframeURL8000 + "#" + |
| encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage1, shouldPass:true, crossOrigin: "anonymous", id: 1})); |
| else if (counter == 2) |
| document.getElementById('iframe2').src = iframeURL8080 + "#" + |
| encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage1, shouldPass: true, crossOrigin: "anonymous", id: 2})); |
| else |
| endTest(); |
| } |
| |
| function endTest() |
| { |
| // Removing iframe2 and applying memory pressure should kick in SVG CachedImage clearing of observer |
| document.getElementById('iframe2').src = ""; |
| setTimeout(function() { |
| if (window.internals) { |
| internals.beginSimulatedMemoryPressure(); |
| internals.endSimulatedMemoryPressure(); |
| } |
| document.getElementById('console').innerHTML += "PASS applying memory pressure"; |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }); |
| } |
| |
| loadNextFrame(); |
| </script> |
| </body> |
| </html> |