| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <script> |
| var jsTestIsAsync = true; |
| description('This is a regression test for crbug.com/400476. It should not crash and then brag about it.') |
| |
| var root = document.documentElement; |
| var iframe = root.ownerDocument.createElement('iframe'); |
| iframe.onload = function() { |
| var defaultView = iframe.contentDocument.defaultView; |
| defaultView.onpageshow = onPageShow; |
| window.setTimeout(tryToCrash, 0); |
| }; |
| root.appendChild(iframe); |
| |
| function onPageShow() { |
| eventObj = arguments[0]; |
| } |
| |
| function tryToCrash() { |
| // Access of eventObj.path caused the crash. |
| // The test is somewhat flaky, in that the test may pass as correct |
| // despite the bug being the code. The exact conditions |
| // are unclear, but 1, asan helps detect the crash and 2, the |
| // preceding gc()s increase the likelihood of it occurring. |
| gc(); |
| gc(); |
| gc(); |
| gc(); |
| gc(); |
| var path = eventObj.path; |
| debug(path); |
| |
| testPassed('totally did not crash.'); |
| finishJSTest(); |
| } |
| </script> |
| </body> |
| </html> |