Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№121-08-2013 07:38:43

pssupport
Участник
 
Группа: Members
Зарегистрирован: 21-08-2013
Сообщений: 2
UA: Firefox 23.0

Firefox 23 - перестал работать geo location из расширения

После обновления 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)

Отсутствует

 

№221-08-2013 10:39:33

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5293

Re: Firefox 23 - перестал работать geo location из расширения

Тема перенесена из форума «Firefox» в форум «Разработка».


Do you feel lucky, punk?

Отсутствует

 

№321-08-2013 10:40:33

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5293
UA: Firefox 26.0

Re: Firefox 23 - перестал работать geo location из расширения

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?

Отсутствует

 

№421-08-2013 11:31:43

pssupport
Участник
 
Группа: Members
Зарегистрирован: 21-08-2013
Сообщений: 2
UA: Firefox 23.0

Re: Firefox 23 - перестал работать geo location из расширения

Спасибо большое!

banbot пишет

Также см. 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)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]