| OLD | NEW |
| 1 description("Verify that using invalid or detached documents on internal test me
thods does not crash."); | 1 description("Verify that using invalid or detached documents on internal test me
thods does not crash."); |
| 2 | 2 |
| 3 // The internals object and these test methods aren't available in production | 3 // The internals object and these test methods aren't available in production |
| 4 // builds, but they are exposed to fuzzers. | 4 // builds, but they are exposed to fuzzers. |
| 5 | 5 |
| 6 if (!window.testRunner || !window.internals) | 6 if (!window.testRunner || !window.internals) |
| 7 debug('This test can not run without testRunner or internals'); | 7 debug('This test can not run without testRunner or internals'); |
| 8 | 8 |
| 9 shouldThrow("internals.setGeolocationClientMock(null);"); | 9 shouldThrow("internals.setGeolocationClientMock(null);"); |
| 10 shouldThrow("internals.setGeolocationPosition(null, 1, 2, 3);"); | 10 shouldThrow("internals.setGeolocationPosition(null, 1, 2, 3);"); |
| 11 shouldThrow("internals.setGeolocationPermission(window.notThere, true);"); | 11 shouldThrow("internals.setGeolocationPermission(window.notThere, true);"); |
| 12 shouldThrow("internals.setGeolocationPositionUnavailableError(null, 'not availab
le');"); | 12 shouldThrow("internals.setGeolocationPositionUnavailableError(null, 'not availab
le');"); |
| 13 shouldThrow("internals.numberOfPendingGeolocationPermissionRequests(null)"); | 13 shouldThrow("internals.numberOfPendingGeolocationPermissionRequests(null)"); |
| 14 | 14 |
| 15 var ifr = document.getElementById("ifr"); | 15 var ifr = document.getElementById("ifr"); |
| 16 var iframe = ifr.contentWindow; | 16 var iframe = ifr.contentWindow; |
| 17 // Must access it first so it exists, we cannot get internals from a detached fr
ame window. |
| 18 var iframeInternals = iframe.internals; |
| 17 ifr.remove(); | 19 ifr.remove(); |
| 20 |
| 18 // Verify that detached documents do not crash. | 21 // Verify that detached documents do not crash. |
| 19 shouldBeUndefined("iframe.internals.setGeolocationClientMock(iframe.document)"); | 22 shouldBeUndefined("iframeInternals.setGeolocationClientMock(iframe.document)"); |
| 20 shouldBeUndefined("iframe.internals.setGeolocationPosition(iframe.document, 1, 2
, 3)"); | 23 shouldBeUndefined("iframeInternals.setGeolocationPosition(iframe.document, 1, 2,
3)"); |
| 21 shouldBeUndefined("iframe.internals.setGeolocationPermission(iframe.document, tr
ue)"); | 24 shouldBeUndefined("iframeInternals.setGeolocationPermission(iframe.document, tru
e)"); |
| 22 shouldBeUndefined("iframe.internals.setGeolocationPositionUnavailableError(ifram
e.document, 'not available')"); | 25 shouldBeUndefined("iframeInternals.setGeolocationPositionUnavailableError(iframe
.document, 'not available')"); |
| 23 shouldBe("iframe.internals.numberOfPendingGeolocationPermissionRequests(iframe.d
ocument)", "-1"); | 26 shouldBe("iframeInternals.numberOfPendingGeolocationPermissionRequests(iframe.do
cument)", "-1"); |
| OLD | NEW |