| <html> | |
| <head> | |
| <title>WebKit Bug 47314</title> | |
| <script> | |
| function runTest() | |
| { | |
| if (window.testRunner) | |
| testRunner.dumpAsText(); | |
| var frameset = document.getElementById("frameset"); | |
| var mouseClick = document.createEvent("MouseEvent"); | |
| mouseClick.initEvent("click", true, true); | |
| frameset.dispatchEvent(mouseClick); | |
| if (!window.testRunner) { | |
| // For some reason, when running this test by hand in release builds you must manually | |
| // click on the not-found image placeholder to cause a crash. Hence, we don't replace | |
| // the <frameset> and print a PASS message. | |
| return; | |
| } | |
| // As per the definition of the body element in section 3.1.4 the HTML 5 spec. | |
| // <http://www.w3.org/TR/html5/dom.html#the-body-element>, a document can either | |
| // have a <frameset> or a <body>, but not both, and a frameset does not provide | |
| // a means to print a PASS message. Therefore, we replace <frameset> with <body>. | |
| var htmlElement = document.getElementsByTagName("html")[0]; | |
| htmlElement.replaceChild(document.createElement("body"), frameset); | |
| document.body.appendChild(document.createTextNode("PASS, mouse event to <frameset> did not cause crash.")); | |
| } | |
| window.onload = runTest; | |
| </script> | |
| </head> | |
| <!-- This tests that we don't crash when clicking on a <frameset> that specifies the CSS content property. --> | |
| <!-- This test PASSED if you see the word "PASS" on the page. Otherwise, it FAILED. --> | |
| <!-- Note: If you are running this test by hand in a release build then try clicking on the not-found image placeholder to cause a crash. --> | |
| <frameset id="frameset" style="content:url(click-to-crash.jpg)"></frameset> | |
| </html> |