Greasemonkey: Reconsidere GM.registerMenuCommand (polyfill depende de la API que desaparecerá)

Creado en 29 abr. 2020  ·  7Comentarios  ·  Fuente: greasemonkey/greasemonkey

Debido a que ningún otro motor de navegador se ha molestado en admitirlo, Firefox ha tenido, desde hace un tiempo, un error abierto para eliminar la capacidad de modificación del menú contextual en la que se basa la parte registerMenuCommand del polyfill.

Parece que ahora hay alguien interesado en "arreglarlo" (es decir, eliminar el soporte), por lo que probablemente sería una buena idea reconsiderar que GM4 no proporciona su propio soporte para esto.

Hago un uso suficientemente intensivo de él para cosas como iniciar mis interfaces de usuario de configuración que, si no se proporciona un reemplazo adecuado, simplemente tendré que dejar el soporte para GreaseMonkey e instruir a los usuarios que, por razones técnicas, solo puedo admitir ViolentMoney y TamperMonkey porque No considero que sea aceptable una experiencia de usuario saturar el sitio con tales botones de interfaz de usuario de configuración "configúrelo una vez y casi nunca lo cambie".

Todos 7 comentarios

+1
Me gustan mucho los menús contextuales de HTML 5, pero si / cuando desaparecen, yo también espero que GM.registerMenuCommand vuelva. No me veo a mí mismo manteniendo otra solución casera para los scripts de usuario de varios sitios.

¿Alguna sugerencia para una interfaz de usuario / API que aún existirá y que le gustaría usar?

Supongo que nos veremos obligados a registrar cosas en el menú de los monos.

Así lo hacen TamperMonkey y ViolentMonkey.

Supongo que la otra opción sería explorar la viabilidad de aproximar lo que hace el polyfill usando browser.menus.create para empujar todos los elementos del menú registrados por el script de usuario en un submenú del menú contextual ... aunque eso sería un submenú óptimo sin alguna forma de adaptarlos a los contextos, ya que la gente generalmente espera que el menú contextual sea contextual.

(E, idealmente, aún sería bueno tener una forma de poner las entradas de "configurar este script de usuario" en el menú de mono en lugar del menú contextual, similar a cómo funciona el administrador de complementos de Firefox).

Sin embargo, este último es realmente un "explorar la viabilidad". Ha pasado tanto tiempo desde que revisé la API de WebExtensions que no puedo recordar sus limitaciones a ese respecto. (Escribo scripts de usuario porque son más portátiles y en protesta por la firma obligatoria de extensiones).

@arantius

Supongo que nos veremos obligados a registrar cosas en el menú de los monos.

Incluso si el menú contextual no se ha quedado obsoleto de la especificación, usarlo en lugar de GM_registerMenuCommand tiene las siguientes desventajas:

  • Siempre se inserta en el menú contextual del navegador, lo que dificulta la navegación.
  • Debido a que se inserta en un contexto inseguro (DOM del lado de la página web), podría causar problemas de privacidad y seguridad.
  • No disponible si el menú contextual está bloqueado por el lado de la página web.

El tronco de Firefox acaba de obtener un parche para deshabilitar el acceso a <menuitem> con un objetivo de lanzamiento de Firefox 85.

https://bugzilla.mozilla.org/show_bug.cgi?id=1680596#c11

(Específicamente, lo coloca detrás de un dom.menuitem.enabled pref que por defecto es falso).

@arantius La implementación de GM.registerMenuCommand () se convirtió en un problema urgente.

Esta API se ha implementado tanto en Violemntmonkey como en Tampermonkey, así como en Greasemonkey 3.x. No se puede reemplazar de ninguna otra manera, como se mencionó anteriormente, y es importante para la compatibilidad.

He abordado todas las preocupaciones anteriores sobre la implementación en la actualización https://github.com/greasemonkey/greasemonkey/pull/2770 . ¿Por qué no se puede fusionar?

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