Page 1 of 1

3.6.6에서 Geolocation 사용 시 내부 자바스크립트 오류

Posted: 2010 06 28 10:35 53
by daybreaker
오늘 아침에 3.6.6으로 업데이트되었는데 이 버전도 그렇고 이전에 쓰던 3.6.4 버전에서도 모두 발생하는 문제입니다. navigator.geolocation.getCurrentPosition(successHandler, failureHandler) 함수를 사용하면 사용 환경(특히 유선 네트워크만 사용하는 경우)에 따라

오류: location is undefined
소스 파일: file:///C:/Program%20Files%20(x86)/Mozilla%20Firefox/components/NetworkGeolocationProvider.js
행: 91

이런 오류가 발생합니다.

이미 해외에서는 보고된 사례가 있는데 정식으로 버그 보고가 되었는지는 모르겠습니다.
http://forums.mozillazine.org/viewtopic ... &t=1715025
제 경우 failureHandler 인자를 지정해서 주어도 그 함수가 실행되는 것이 아니라(정상적이라면 W3C Geolocation API 스펙에 의해 이 함수에 인자로 전달된 오브젝트의 code 속성에 숫자 2가 들어가서 사용 가능한 위치 정보가 없음을 알려주어야 합니다) 아예 위와 같은 예외를 발생시키고 있어서 API 스펙에 맞춰 오류 처리를 해도 스크립트가 더 이상 실행되지 못합니다.

해당 코드 내용은 WifiGeoPositionObject 이 함수에서 location 인자가 항상 null이나 undefined가 아님을 가정하고 있는데 이에 대한 오류 처리가 포함되면 해결될 것 같습니다.

ps. 제가 테스트해본 결과 똑같이 유선 네트워크만 쓰는 PC더라도 사용 지역에 따라 위치 정보를 근사적으로 가져오는 경우도 있고 못 가져오는 경우도 있습니다. 따라서 사용하시는 환경에 따라 오류 재현이 안 될 가능성도 있습니다. 참고로 이 오류가 난 지역은 KAIST 기숙사 네트워크입니다. -_-;