Detectar cuando cambia una preferencia del sistema


(Pochy) #1

Hola

Por estos días he estado desarrollando un complemento y he intentado escuchar cuando una preferencia del sistema cambia pero estado haciendolo con el módulo del SDK “on” de simple-pref pero solo me funciona con las preferencias creadas por mi complemento, pero necesito saber cuando una de las preferencia que trae por defecto firefox cambia su valor o resetea a por defecto.


(Fernando Agüero) #2

Quizás @jorgev te puede ayudar en esto.

Un saludo.


(Jorge) #3

Creo que en este caso habría que usar preferences/service para obtener la preferencia.


(Pochy) #4

Hola jorge gracias por la prontitud de la respuesta
Estado analizando los 2 módulos del SDK, simple-pref y preference/service, con el primero el método “on”, me permite tener un listener escuchando cuando cambia el valor de mis preferencias o sea de la preferencias creadas por mí para el addon en el package.json, pero no me funciona para las preferencias del sistema, sería un bug? o es que no está concebido que ese módulo lo haga para las preferencias del sistema. Por otra parte el módulo preference/service si lo uso para cambiar el valor que necesito cambiar y con el método “isSet” puedo saber si no tiene el valor por defecto alguna preferencia del sistema, eso lo tengo claro, pero lo que necesito sería poner como un listener a la preferencia del sistema en cuestión y luego ya pudiera hacer esa comprobación, lo otro que estuve analizando fue el módulo system_events pero no encuentro ningun evento que me indique cuando una preferencia a cambiado, o que escuche sobre una preferencia, si me podes dar alguna otra idea por donde seguir investigando te lo agradecería.


(Jorge) #5

Sí, parece que system/preferences no tiene soporte para on. En ese caso, creo que habría que usar el módulo chrome y acceder al servicio de preferencias, el cual tiene un método addObserver que permite seguir los cambios de cualquier preferencia.