Greasemonkey: Firefox < FF57 (por ejemplo, FF56 y 52ESR) no debe "actualizarse" automáticamente a Greasemonkey 4

Creado en 13 dic. 2017  ·  13Comentarios  ·  Fuente: greasemonkey/greasemonkey

El strict_min_version en GM 4.1 es 52.0 . Esto hace que las personas que usan versiones de Firefox que admiten extensiones heredadas (por ejemplo, FF56 y 52ESR) "actualicen" a 4.1. Muchas personas que usan FF 52ESR, o que continúan usando FF55/56, lo hacen específicamente para poder continuar usando extensiones heredadas.

La versión heredada de Greasemonkey es mucho más funcional que la versión 4.x y siempre lo será. Las personas que ejecutan versiones de Firefox < FF57 no deben "actualizarse" automáticamente a Greasemonkey 4.x.

Por lo tanto, manifest.json debería tener:

"strict_min_version": "57.0"

Si bien los usuarios pueden optar por deshabilitar las actualizaciones automáticas para GM o las extensiones en general (es decir, esta configuración strict_min_version se puede solucionar perfil por perfil), GM4 no es realmente una "actualización". La mayoría de los usuarios lo consideran una degradación. Los usuarios no deben actualizarse automáticamente a GM4 cuando no se requiere usar GM4 debido a la falta de soporte para extensiones heredadas en la versión de Firefox que están usando.

Comentario más útil

Creo que el impulso está en usted para instalar la versión de Greasemonkey que desea y luego desactivar la actualización automática.

Todos 13 comentarios

Creo que la configuración de la versión mínima es un artefacto del período de tiempo en el que la versión 3.x tiene una WebExtension integrada para facilitar la migración de secuencias de comandos. Sin bajarlo, no creo que el complemento se instale correctamente.

4.1 fue empujado con una versión mínima más baja, _oops?_. No creo que esto se haya hecho para 'obligar deliberadamente' a las personas a usar 4.x, y la hostilidad en la publicación es innecesaria.

@Sxderp No se pretendía hostilidad. Lamento que haya sonado de esa manera. Incluso releyendo lo que escribí, no estoy del todo seguro de qué parte(s) estás considerando hostil. Entonces, lo edité, adivinando (en parte) lo que sentías que era objetable.

Tenga en cuenta que si bien dije "forzado" (lo que pretendía solo como una descripción de lo que les sucede a los usuarios), no dije "forzado deliberadamente" (lo que habría indicado que estaba atribuyendo alguna intención detrás de la configuración, que era no tratar de hacer). [Me tienes dudando de mí mismo. No creo que dije "forzar a propósito", pero ahora que he editado el comentario original, no puedo verificarlo al 100%, porque como autor de la publicación no recibo un correo electrónico con el contenido. Si lo hice, lo siento. No fue intencionado.]

Nota: Si bien tengo sentimientos negativos hacia Mozilla en relación con el cambio a solo WebExtensions, siento que las personas involucradas con GM están manejando bien la situación en la que Mozilla los ha colocado. Eso incluye tener que lidiar con la gran cantidad de personas que culpan a los escritores de extensiones por cosas que son completamente culpa de Mozilla.

eyep, he "congelado" mi FF en v56 y ahora con GM4.1 recibo algunos errores oscuros como "Error: Permission denied to access property "nodeType"" en scripts muy simples.

Estoy obteniendo algunos errores oscuros como

Los scripts de usuario se ejecutan en un contexto de 'script de contenido'. Si los objetos / funciones se declaran en este contexto, deben clonarse en la ventana antes de que la ventana pueda acceder a ellos. Mozilla implementó esta función de seguridad y evita la filtración en el alcance de la página.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Sharing_content_script_objects_with_page_scripts

@Sxderp sí, ya leí en las notas de actualización que unsafeWindow funciona de alguna manera diferente y uno debería usar exportFunction() or cloneInto() y vincular el mismo artículo que hizo (que explica cómo escribir extensiones, no scripts de usuario )). Nadie está dando ningún ejemplo de cómo hacerlo realmente en los scripts de usuario. Pero eso no viene al caso. El punto es que FF<=56 no sufre todo este retraso, por lo que no hay razón para forzarlo.

Nadie está dando ningún ejemplo de cómo hacerlo realmente en los scripts de usuario.

Prácticamente exactamente lo mismo. Si alguien dice 'guión de contenido', reemplácelo con 'guión de usuario'. Proceda con normalidad.

Como por ejemplo, aquí hay algo que publiqué hace algún tiempo.

Además, si usa window.eval() el argumento se ejecutará directamente en el alcance de la página sin tener que lidiar con la exportación.

Gracias. en cuanto a eval() - eval es malvado y la primera regla para usar eval es "no usar eval".

@Spown IMO, exportFunction() y cloneInto() deben evitarse, porque son solo para Firefox. Un beneficio significativo tanto de los scripts de usuario como de WebExtensions es que se pueden ejecutar en varios navegadores diferentes. Hay una variedad de formas en las que puede ejecutar código en el contexto de la página. La forma en que lo hago tanto en scripts de usuario como en scripts de contenido es una función, executeInPage() , que puede encontrar en esta respuesta en Stack Overflow . Le permite pasar parámetros a la función que está llamando, clonando esos parámetros en el contexto de la página. Con una función simple que asigna el valor del parámetro pasado a una variable en el contexto de la ventana (por ejemplo window[variableName] ), puede hacer fácilmente lo que hace cloneInto() .

No es tan flexible como cloneInto() , ya que solo maneja Object , Array , function , RegExp , Date , y/u otras primitivas ( Boolean , null , undefined, Number , y String , pero no Symbol ).

@Sxderp , todo esto puede ser cierto, pero realmente no me importa, ya que elijo no participar en todo esto al no actualizar a FF> 56. Pero todavía se filtra como en este caso.

Por cierto, tratar de reutilizar el jQuery de la página en mi secuencia de comandos (que devuelve el error mencionado anteriormente) como lo hizo en su ejemplo aún produce el mismo error. nvm

Creo que el impulso está en usted para instalar la versión de Greasemonkey que desea y luego desactivar la actualización automática.

Si actualizo a Greasemonkey 4, ¿es posible instalar Greasemonkey 3 para bajar de categoría y continuar usándolo, si quiero? ¿O Greasemonkey 4 hace cambios que son irreversibles?

@garyking debería poder bajar de categoría sin problema. Los archivos de script deben permanecer.

¿Fue útil esta página
0 / 5 - 0 calificaciones