| <html> | |
| <head> | |
| <script> | |
| // Helpers. | |
| function log(message) { | |
| document.getElementById("console").innerHTML += message + "<br>"; | |
| } | |
| // Start and end. | |
| function startTest() { | |
| if (window.testRunner) { | |
| testRunner.clearAllApplicationCaches(); | |
| testRunner.dumpApplicationCacheDelegateCallbacks(); | |
| testRunner.disallowIncreaseForApplicationCacheQuota(); | |
| testRunner.setApplicationCacheOriginQuota(20*1024); | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| addFirstIFrame(); | |
| } | |
| function finishTest() { | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| } | |
| // Stages. | |
| function addIFrameWithContinuation(src, continuation) { | |
| window.onmessage = continuation; | |
| var iframe = document.createElement("iframe"); | |
| iframe.src = src; | |
| document.body.appendChild(iframe); | |
| } | |
| function addFirstIFrame() { | |
| // Expected to succeed. | |
| addIFrameWithContinuation("resources/quota-origin-iframe-1.html", function(event) { | |
| log(event.data); | |
| addSecondIFrame(); | |
| }); | |
| } | |
| function addSecondIFrame() { | |
| // Expected to fail, then increase the quota. | |
| addIFrameWithContinuation("resources/quota-origin-iframe-2.html", function(event) { | |
| log(event.data); | |
| testRunner.setApplicationCacheOriginQuota(100*1024); | |
| addThirdIFrame(); | |
| }); | |
| } | |
| function addThirdIFrame() { | |
| // Expected to succeed. | |
| addIFrameWithContinuation("resources/quota-origin-iframe-3.html", function(event) { | |
| log(event.data); | |
| finishTest(); | |
| }); | |
| } | |
| </script> | |
| </head> | |
| <body onload="startTest()"> | |
| <p>This test checks that per-origin application cache quotas are enforced.</p> | |
| <p> | |
| This test sets the quota for the origin to 20kb, and attempts to fill | |
| it up with 2 iframes that are 13kb each. The application cache download | |
| process should fail on the 2nd iframe and the UI Delegate should be | |
| informed of the exceeded quota. Increasing the size to 40kb. A 3rd | |
| iframe is added, which should succeed. | |
| </p> | |
| <pre id="console"></pre> | |
| </body> | |
| </html> |