On WebKit1, the Geolocation permission query is not cancelled on cancelPermissionRequest: virtual void cancelPermissionRequest(WebCore::Geolocation*) OVERRIDE { }; (in WebGeolocationClient.h) The problem is we can have the WebKit layers calling Geolocation::setIsAllowed() after WebCore invoked cancelPermissionRequest(), which is incorrect. This could cause the Geolocation object to have erroneous permissions. The dialog does not have to be dismissed on cancelPermissionRequest(), but the WebGeolocationPolicyListener should be disconnected from its Geolocation object.