This tests that the navigator object of a deleted frame is disconnected properly. Accessing fields or methods shouldn't crash the browser.
 Check Navigator
navigator.appCodeName is OK
navigator.appName is OK
navigator.appVersion is OK
navigator.canShare() is OK
navigator.clipboard is OK
navigator.contacts is OK
navigator.cookieEnabled is OK
navigator.credentials is OK
navigator.getStorageUpdates() is OK
navigator.isLoggedIn() is OK
navigator.javaEnabled() is OK
navigator.language is OK
navigator.languages is OK
navigator.maxTouchPoints is OK
navigator.mediaCapabilities is OK
navigator.mediaSession is OK
navigator.mimeTypes is OK
navigator.onLine is OK
navigator.permissions is OK
navigator.platform is OK
navigator.plugins is OK
navigator.product is OK
navigator.productSub is OK
navigator.requestMediaKeySystemAccess() is OK
navigator.sendBeacon() threw err TypeError: Not enough arguments
navigator.serviceWorker is OK
navigator.setLoggedIn() is OK
navigator.setLoggedOut() is OK
navigator.share() is OK
navigator.storage is OK
navigator.userAgent is OK
navigator.vendor is OK
navigator.vendorSub is OK
navigator.webdriver is OK
navigator.xr is OK
navigator.appCodeName is OK
navigator.appName is OK
navigator.appVersion is OK
navigator.canShare() is OK
navigator.clipboard is OK
navigator.contacts is OK
navigator.cookieEnabled is OK
navigator.credentials is OK
navigator.getStorageUpdates() is OK
navigator.isLoggedIn() is OK
navigator.javaEnabled() is OK
navigator.language is OK
navigator.languages is OK
navigator.maxTouchPoints is OK
navigator.mediaCapabilities is OK
navigator.mediaSession is OK
navigator.mimeTypes is OK
navigator.onLine is OK
navigator.permissions is OK
navigator.platform is OK
navigator.plugins is OK
navigator.product is OK
navigator.productSub is OK
navigator.requestMediaKeySystemAccess() is OK
navigator.sendBeacon() threw err TypeError: Not enough arguments
navigator.serviceWorker is OK
navigator.setLoggedIn() is OK
navigator.setLoggedOut() is OK
navigator.share() is OK
navigator.storage is OK
navigator.userAgent is OK
navigator.vendor is OK
navigator.vendorSub is OK
navigator.webdriver is OK
navigator.xr is OK

