Страницы: 1
После обновления Firefox с версии 22 до версии 23.0.1 следующий код расширения (JS) перестал работать:
provider = Components.classes["@mozilla.org/geolocation;1"].getService(Components.interfaces.nsIDOMGeoGeolocation);
выдает ошибку:
Component returned failure code: 0x80570018 (NS_ERROR_XPC_BAD_IID) [nsIJSCID.getService]" nsresult: "0x80570018 (NS_ERROR_XPC_BAD_IID)" location: ...
Проверено на нескольких компьютерах. Сразу после обновления код перестает работать.
Есть идеи?
----
И еще один момент. В 23 версии все http запросы из расширения сопровождаются вот такой записью в логе:
Invalid chrome URI: /a
хотя запрос проходит нормально.
Отредактировано pssupport (21-08-2013 08:34:35)
Отсутствует
Тема перенесена из форума «Firefox» в форум «Разработка».
Do you feel lucky, punk?
Отсутствует
pssupport
Полагаю из-за Bug 850442 - Convert Geolocation to WebIDL
Также см. https://github.com/mozilla/r2d2b2g/pull/438
Отредактировано banbot (21-08-2013 10:43:43)
Do you feel lucky, punk?
Отсутствует
Спасибо большое!
Также см. https://github.com/mozilla/r2d2b2g/pull/438
Это то, что нужно.
Если кто то столкнется, решение:
Разработчиками было принято решение сделать интерфейс nsIDOMGeoGeolocation недоступным для скриптов, поэтому с 23 версии обращаться из JS к нему нельзя. Взамен нужно использовать интерфейс nsISupports.
Вот такой код работает нормально на 23 версии и младше:
provider = Components.classes["@mozilla.org/geolocation;1"].getService(Components.interfaces.nsISupports);
Единственное, разработчикам не мешало бы это добавить в документацию:
https://developer.mozilla.org/ms/docs/Using_geolocation
Отредактировано pssupport (21-08-2013 11:34:53)
Отсутствует
Страницы: 1