Greasemonkey: Reconsidere GM.registerMenuCommand (polyfill depende da API que está indo embora)

Criado em 29 abr. 2020  ·  7Comentários  ·  Fonte: greasemonkey/greasemonkey

Como nenhum outro mecanismo de navegador se preocupou em suportá-lo, o Firefox teve, por um tempo, um bug aberto para remover o menu de contexto que altera o recurso do qual a parte registerMenuCommand do polyfill depende.

Parece que agora há alguém interessado em "consertá-lo" (ou seja, remover o suporte), então provavelmente seria uma boa idéia reconsiderar o GM4 por não fornecer seu próprio suporte para isso.

Eu faço uso intenso dele para coisas como iniciar minhas interfaces de usuário de configuração que, se nenhuma substituição adequada for fornecida, terei apenas que cancelar o suporte para GreaseMonkey e instruir os usuários que, por razões técnicas, só posso oferecer suporte a ViolentMoney e TamperMonkey porque Não considero aceitável a UX confundir o site com botões de IU de configuração do tipo "configure uma vez e quase nunca mude".

Todos 7 comentários

+1
Gosto muito dos menus de contexto HTML 5, mas se / quando eles desaparecerem, também espero ter GM.registerMenuCommand de volta. Não consigo me imaginar mantendo outra solução caseira para scripts de usuário de vários sites.

Alguma sugestão para uma IU / API que ainda existirá e que você gostaria de usar?

Acho que seremos forçados a registrar coisas no menu do macaco?

É assim que TamperMonkey e ViolentMonkey fazem.

Suponho que a outra opção seria explorar a viabilidade de aproximar o que o polyfill faz usando browser.menus.create para empurrar todos os itens de menu registrados pelo script de usuário em um submenu do menu de contexto ... embora isso seja sub- ideal sem alguma forma de escopo para contextos, uma vez que as pessoas geralmente esperam que o menu de contexto seja contextual.

(E, idealmente, ainda seria bom ter uma maneira de colocar as entradas "configurar este script de usuário" no menu do macaco em vez do menu de contexto, semelhante ao funcionamento do gerenciador de complementos do Firefox.)

Este último é realmente um "explore a viabilidade". Já faz tanto tempo desde que eu cutuquei a API WebExtensions que não consigo me lembrar de suas limitações a esse respeito. (Eu escrevo scripts de usuário porque são mais portáteis e em protesto contra a assinatura de extensão obrigatória.)

@arantius

Acho que seremos forçados a registrar coisas no menu do macaco?

Mesmo que o menu de contexto não tenha se tornado obsoleto na especificação, usá-lo no lugar de GM_registerMenuCommand tem as seguintes desvantagens:

  • Está sempre inserido no menu de contexto do navegador, o que atrapalha a navegação
  • Porque se insere em um contexto não seguro (DOM do lado da página da Web), pode causar problemas de privacidade e segurança
  • Indisponível se o menu de contexto estiver bloqueado pelo lado da página da web.

O tronco do Firefox acabou de lançar um patch para desabilitar o acesso a <menuitem> com um marco de lançamento de destino do Firefox 85.

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

(Especificamente, ele o coloca atrás de um pref dom.menuitem.enabled cujo padrão é falso.)

@arantius A implementação do GM.registerMenuCommand () tornou-se um problema urgente.

Esta API foi implementada em Violemntmonkey e Tampermonkey, bem como em Greasemonkey 3.x. Não é substituível de nenhuma outra forma, conforme mencionado acima, e é importante para compatibilidade.

Abordei todas as preocupações anteriores sobre a implementação em https://github.com/greasemonkey/greasemonkey/pull/2770 update. Por que isso não pode ser mesclado?

Esta página foi útil?
0 / 5 - 0 avaliações