Greasemonkey: Firefox < FF57 (por exemplo, FF56 e 52ESR) não deve ser "atualizado" automaticamente para o Greasemonkey 4

Criado em 13 dez. 2017  ·  13Comentários  ·  Fonte: greasemonkey/greasemonkey

O strict_min_version no GM 4.1 é 52.0 . Isso faz com que as pessoas que usam versões do Firefox que suportam extensões legadas (por exemplo, FF56 e 52ESR) "atualizem" para 4.1. Muitas pessoas que estão no FF 52ESR, ou continuam a usar o FF55/56, estão fazendo isso especificamente para que possam continuar usando extensões legadas.

A versão legada do Greasemonkey é muito mais funcional do que a versão 4.x, e sempre será. Pessoas executando versões do Firefox < FF57 não devem ser "atualizadas" automaticamente para o Greasemonkey 4.x.

Assim, o manifest.json deve ter:

"strict_min_version": "57.0"

Embora os usuários possam optar por desabilitar as atualizações automáticas para GM, ou extensões em geral (ou seja, essa configuração strict_min_version pode ser contornada perfil a perfil), o GM4 não é realmente uma "atualização". A maioria dos usuários considera isso um downgrade. Os usuários não devem ser atualizados automaticamente para o GM4 quando o uso do GM4 não for necessário devido à falta de suporte para extensões legadas na versão do Firefox que estão usando.

Comentários muito úteis

Eu acho que o impulso está em você instalar a versão do Greasemonkey que você deseja e, em seguida, desativar a atualização automática.

Todos 13 comentários

Acho que a configuração da versão min é um artefato do período de tempo em que a versão 3.x tem uma WebExtension incorporada para facilitar a migração de scripts. Sem baixá-lo, não acredito que o complemento seja instalado corretamente.

4.1 foi empurrado com uma versão mínima inferior, _oops?_. Eu não acho que isso foi feito para 'forçar propositadamente' as pessoas para o 4.x, e a hostilidade no post é desnecessária.

@Sxderp Nenhuma hostilidade foi planejada. Lamento que tenha soado assim. Mesmo relendo o que escrevi, não tenho certeza de qual(is) parte(s) você está considerando hostil. Então, eu editei, adivinhando (em parte) o que você sentiu que era censurável.

Observe que, embora eu tenha dito "forçado" (que pretendia apenas como uma descrição do que acontece com os usuários), não disse "forçar propositalmente" (o que indicaria que eu estava atribuindo alguma intenção por trás da configuração, que eu estava não tentando fazer). [Você me fez duvidar de mim mesmo. Acho que não disse "forçar propositadamente", mas agora que editei o comentário original, não posso verificá-lo 100%, porque como autor do post não recebo um e-mail com o conteúdo. Se eu fiz, me desculpe. Não foi planejado.]

Nota: Embora eu tenha sentimentos negativos em relação à Mozilla em relação à transição para WebExtensions-only, sinto que as pessoas envolvidas com a GM estão lidando bem com a situação em que a Mozilla os colocou. Isso inclui ter que lidar com o grande número de pessoas que culpam os escritores de extensão por coisas que são completamente culpa da Mozilla.

eyep, eu "congelei" meu FF na v56 e agora com GM4.1 estou recebendo alguns erros obscuros como "Error: Permission denied to access property "nodeType"" em scripts muito simples.

Estou recebendo alguns erros obscuros como

Os scripts de usuário são executados em um contexto de 'script de conteúdo'. Se objetos / funções forem declarados neste contexto, eles precisam ser clonados na janela antes que a janela possa acessá-los. A Mozilla implementou esse recurso de segurança e evita vazamentos no escopo da página.

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

@Sxderp sim, eu já li nas notas de atualização que unsafeWindow funciona de alguma forma diferente e deve-se usar exportFunction() or cloneInto() e links para o mesmo artigo que você fez (que explica como escrever extensões, não scripts de usuário )). Ninguém está dando nenhum exemplo de como realmente fazer isso nos scripts de usuário. Mas isso não vem ao caso. O ponto é que FF<=56 não sofre com todo esse retardo, então não há razão para forçá-lo.

Ninguém está dando nenhum exemplo de como realmente fazer isso nos scripts de usuário.

Praticamente exatamente o mesmo. Se alguém disser 'script de conteúdo', substitua-o por 'userscript'. Proceda normalmente.

Por exemplo, aqui está algo que postei há algum tempo.

Além disso, se você usar window.eval() o argumento será executado diretamente no escopo da página sem ter que lidar com a exportação.

obrigado. quanto a eval() - eval é mau e a primeira regra de usar eval é "não use eval".

@Spown IMO, exportFunction() e cloneInto() devem ser evitados, porque são apenas Firefox. Um benefício significativo de scripts de usuário e WebExtensions é que eles podem ser executados em vários navegadores diferentes. Há várias maneiras de executar código no contexto da página. A maneira como faço isso em scripts de usuário e scripts de conteúdo é uma função, executeInPage() , que você pode encontrar nesta resposta no Stack Overflow . Ele permite que você passe parâmetros para a função que você está chamando, clonando esses parâmetros no contexto da página. Com uma função simples que atribui o valor do parâmetro passado a uma variável no contexto da janela (por exemplo window[variableName] ), você pode facilmente fazer o que cloneInto() faz.

Não é tão flexível quanto cloneInto() , pois lida apenas com Object , Array , function , RegExp , Date , e/ou outras primitivas ( Boolean , null , undefined, Number e String , mas não Symbol ).

@Sxderp tudo isso pode ser verdade, mas eu realmente não me importo, pois escolho não participar de tudo isso não atualizando para FF> 56. Mas ainda se infiltra como neste caso.

BTW, tentar reutilizar o jQuery da página no meu script (que retorna o erro mencionado acima) como você fez no seu exemplo ainda gera o mesmo erro. nvm

Eu acho que o impulso está em você instalar a versão do Greasemonkey que você deseja e, em seguida, desativar a atualização automática.

Se eu atualizar para o Greasemonkey 4, é possível instalar o Greasemonkey 3 para fazer o downgrade e continuar usando isso, se eu quiser? Ou o Greasemonkey 4 faz mudanças irreversíveis?

@garyking você deve poder fazer o downgrade sem problemas. Os arquivos de script devem permanecer.

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