Hola a todos,
El mes pasado, con algunas ideas que tenía en mente, escribí unos scripts para modificar el comportamiento de los foros de EOL que acabaron por convertirse en una extensión totalmente funcional y que he subido a la Chrome Web Store. Tenéis más información en el hilo que creé para ello.
EOLium para ChromeEl caso es que tras algunas peticiones de usuario me he propuesto portarla a Firefox pero he llegado a un callejón sin salida del que no consigo salir, a ver si alguno de por aquí se le ha dado el caso.
Necesito tener un sistema de preferencias para establecer cambios en la página cada vez que esta se recarga. Firefox dispone de una API (
page-mod) para inyectar código JS (ContentScript) y CSS (ContentStyle) en una página. Sin embargo dicho código no dispone de acceso al resto de API de Firefox, sólo se permite el intercambio de mensajes entre la extensión y los ContentScripts a través de eventos con la API, lo cual no me sirve ya que el código se debe cargar siempre al recargar la web.
Usar locaStorage tampoco me sirve ya que el dominio de la extensión (resource://) es distinto al de los ContentScript que se ejecutan bajo el de la página.
La única manera que se me ocurre es embeber el código HTML de la página de opciones en la web, pero no me parece una forma limpia de hacerla aunque no me va a quedar mas remedio parece.
¿Se le ocurre alguna solución a alguien?
Actualización:Al final he pasado por el aro y he tirado de mensajes usando los worker de Firefox. Me he implementado una clase para manejar los mensajes y guardarlos mediante la API "simple-storage". Si a alguien le interesa como hacerlo he colgado la extensión en Github.
Repositorio