| <html manifest="resources/foreign-fallback.manifest"> | |
| <body> | |
| <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=44406">bug 44406</a>: | |
| Application Cache crash when a fallback document has a manifest URL.</p> | |
| <div id="result">Testing...</div> | |
| <script> | |
| if (window.testRunner) { | |
| testRunner.waitUntilDone(); | |
| testRunner.dumpAsText(); | |
| } | |
| applicationCache.addEventListener('cached', test, false); | |
| applicationCache.addEventListener('noupdate', test, false); | |
| function test() | |
| { | |
| var ifr = document.createElement("iframe"); | |
| ifr.setAttribute("src", "resources/foreign-fallback/does-not-exist.html"); | |
| document.body.appendChild(ifr); | |
| // I couldn't find any event that would fire on frame loading failure, so let's poll. | |
| setTimeout(frameDone, 100); | |
| } | |
| function frameDone() | |
| { | |
| try { | |
| var frameContent = frames[0].document.documentElement.innerHTML; | |
| if (frameContent.match("Not Found")) | |
| document.getElementById("result").innerHTML = "PASS"; | |
| else if (frameContent.match("FAIL")) | |
| document.getElementById("result").innerHTML = "FAIL"; | |
| else | |
| throw "Try again"; | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| } catch (ex) { | |
| // Not done yet. | |
| setTimeout(frameDone, 100); | |
| } | |
| } | |
| </script> | |
| <p>The frame below should display a Not Found error - the fallback entry is foreign, so it shouldn't be used for main resource.</p> | |
| </body> | |
| </html> |