Greasemonkey: Reconsidérer GM.registerMenuCommand (le polyfill dépend de l'API qui va disparaître)

Créé le 29 avr. 2020  ·  7Commentaires  ·  Source: greasemonkey/greasemonkey

Parce qu'aucun autre moteur de navigateur ne s'est soucié de le prendre en charge, Firefox a, depuis un certain temps déjà, un bogue ouvert pour supprimer la capacité de modification du menu contextuel sur laquelle repose la partie registerMenuCommand du polyfill.

Il semble y avoir quelqu'un maintenant intéressé à le faire "réparer" (c'est-à-dire supprimer le support), donc ce serait probablement une bonne idée de reconsidérer que GM4 ne fournit pas son propre support pour cela.

Je l'utilise suffisamment pour des choses comme le lancement de mes interfaces utilisateur de configuration que, si aucun remplacement approprié n'est fourni, je devrai simplement abandonner la prise en charge de GreaseMonkey et indiquer aux utilisateurs que, pour des raisons techniques, je ne peux prendre en charge que ViolentMoney et TamperMonkey car Je ne considère pas qu'il soit acceptable pour l'UX d'encombrer le site avec de tels boutons d'interface utilisateur de configuration "définissez-le une fois et ne le modifiez presque jamais".

Tous les 7 commentaires

+1
J'aime beaucoup les menus contextuels HTML 5, mais si/quand ils disparaissent, j'espère aussi récupérer GM.registerMenuCommand. Je ne me vois pas maintenir une autre solution maison pour les scripts utilisateur multi-sites.

Avez-vous des suggestions pour une interface utilisateur/API qui existera encore et que vous aimeriez utiliser ?

Je suppose que nous serons obligés d'enregistrer des choses dans le menu des singes?

C'est ainsi que TamperMonkey et ViolentMonkey procèdent.

Je suppose que l'autre option serait d'explorer la faisabilité d'approximer ce que fait le polyfill en utilisant browser.menus.create pour pousser tous les éléments de menu enregistrés par userscript dans un sous-menu du menu contextuel ... bien que ce soit sous- optimale sans un moyen de les étendre aux contextes, car les gens s'attendent généralement à ce que le menu contextuel soit contextuel.

(Et, idéalement, il serait toujours bon d'avoir un moyen de mettre des entrées "configurer ce script utilisateur" dans le menu singe plutôt que dans le menu contextuel, de la même manière que le gestionnaire d'addons de Firefox fonctionne.)

Ce dernier est vraiment un "explorer la faisabilité" cependant. Cela fait si longtemps que je n'ai pas consulté l'API WebExtensions que je ne me souviens plus de ses limites à cet égard. (J'écris des scripts utilisateur parce qu'ils sont plus portables et pour protester contre la signature d'extension obligatoire.)

@arantius

Je suppose que nous serons obligés d'enregistrer des choses dans le menu des singes?

Même si le menu contextuel n'avait pas été obsolète par rapport aux spécifications, son utilisation à la place de GM_registerMenuCommand présente les inconvénients suivants :

  • Il est toujours inséré dans le menu contextuel du navigateur, ce qui gêne la navigation
  • Parce qu'il s'insère dans un contexte non sécurisé (DOM du côté de la page Web), peut entraîner des problèmes de confidentialité et de sécurité
  • Indisponible si le menu contextuel est bloqué par le côté page Web.

Le tronc de Firefox vient de débarquer un correctif pour désactiver l'accès à <menuitem> avec un jalon de publication cible de Firefox 85.

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

(Plus précisément, il le place derrière une préférence dom.menuitem.enabled qui par défaut est false.)

@arantius L'implémentation de GM.registerMenuCommand() est devenue un problème urgent.

Cette API a été implémentée dans Violemntmonkey et Tampermonkey, ainsi que dans Greasemonkey 3.x. Il n'est remplaçable d'aucune autre manière, comme mentionné ci-dessus, et est important pour la compatibilité.

J'ai répondu à toutes les préoccupations précédentes concernant la mise en œuvre dans la mise à jour https://github.com/greasemonkey/greasemonkey/pull/2770 . Pourquoi cela ne peut-il pas être fusionné?

Cette page vous a été utile?
0 / 5 - 0 notes