Index: third_party/WebKit/LayoutTests/geolocation-api/clear-watch-invalid-id-crash.html |
diff --git a/third_party/WebKit/LayoutTests/geolocation-api/clear-watch-invalid-id-crash.html b/third_party/WebKit/LayoutTests/geolocation-api/clear-watch-invalid-id-crash.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..11efa3263a1851be95dab5e7a5cc25f03e632c05 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/geolocation-api/clear-watch-invalid-id-crash.html |
@@ -0,0 +1,29 @@ |
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
+<html> |
+<head> |
+<script src="../resources/js-test.js"></script> |
+<script src="../resources/mojo-helpers.js"></script> |
+<script src="resources/geolocation-mock.js"></script> |
+</head> |
+<body> |
+<script> |
+description("Tests for a crash when clearWatch() is called with a zero ID.<br><br>We call clearWatch() with a request in progress then navigate the page. This accesses the watchers map during cleanup and triggers the crash. This page should not be visible when the test completes."); |
+ |
+if (!window.testRunner) |
+ debug('This test can not run without testRunner'); |
+ |
+document.body.onload = function() { |
+ geolocationServiceMock.then(mock => { |
+ mock.setGeolocationPermission(true); |
+ mock.setGeolocationPosition(51.478, -0.166, 100); |
+ |
+ navigator.geolocation.watchPosition(function() {}); |
+ navigator.geolocation.clearWatch(0); |
+ location = "../resources/notify-success.html"; |
+ }); |
+} |
+ |
+window.jsTestIsAsync = true; |
+</script> |
+</body> |
+</html> |