| <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(); |
| if (window.internals) |
| internals.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. Will be ~15kb out of the 20kb limit. |
| addIFrameWithContinuation("resources/quota-origin-continued-download-multiple-manifests-1.html", function(event) { |
| log(event.data); |
| addSecondIFrame(); |
| }); |
| } |
| |
| function addSecondIFrame() { |
| // Expected to succeed, due to automatically increasing the quota. |
| addIFrameWithContinuation("resources/quota-origin-continued-download-multiple-manifests-2.html", function(event) { |
| log(event.data); |
| finishTest(); |
| }); |
| } |
| |
| </script> |
| </head> |
| <body onload="startTest()"> |
| <p>This test checks that per-origin application cache quota works correctly with multiple manifests/caches per-origin.</p> |
| <p> |
| This test sets the quota for the origin to 20kb, and attempts to fill |
| it up with 2 different application caches about 15kb each. |
| |
| The first frame will cache successfully and fill up about 15kb of |
| the origin quota. |
| |
| The second frame will reach the quota, cause a delegate callback, |
| dump the totalSpaceNeeded. The space needed should be enough for both |
| iframe caches, so we would expect ~30kb bytes. The delegate will |
| automatically increase the quota and cause the second appcache |
| to succeed. |
| </p> |
| <pre id="console"></pre> |
| </body> |
| </html> |