| <script src="../../resources/js-test.js"></script> |
| <iframe id="testFrame" src="about:blank"></iframe> |
| description("Tests that Navigator properties do not get GC'd before their Navigator object."); |
| var navigatorProperties = [ "geolocation", "mimeTypes", "plugins" ]; |
| if (navigator.serviceWorker) |
| navigatorProperties.push("serviceWorker"); |
| frameNavigator = document.getElementById("testFrame").contentWindow.navigator; |
| for (let navigatorProperty of navigatorProperties) |
| eval("frameNavigator." + navigatorProperty + ".foo = 1;"); |
| document.getElementById("testFrame").remove(); |
| for (let navigatorProperty of navigatorProperties) |
| shouldBe("frameNavigator." + navigatorProperty + ".foo", "1"); |
| for (let navigatorProperty of navigatorProperties) |
| shouldBe("frameNavigator." + navigatorProperty + ".foo", "1"); |
| for (let navigatorProperty of navigatorProperties) |
| shouldBe("frameNavigator." + navigatorProperty + ".foo", "1"); |