Greasemonkey: configurar privacy.firstparty.isolate interrompe o armazenamento de script

Criado em 9 jul. 2019  ·  23Comentários  ·  Fonte: greasemonkey/greasemonkey

Olá a todos,

se alguém ler antes de atualizar para FF 68: crie um backup de seus scripts.

Após a atualização automática, todos os meus scripts desapareceram. As exceções ainda estão incluídas (portanto, o GM parece puxar algumas das minhas configurações anteriores), mas todos os scripts estão ausentes.

Onde a GM está armazenando os dados atualmente? Dentro da pasta browser-extension-data, o arquivo GM não foi alterado. Ainda investigando, mas isso parece ser totalmente estranho.

Comentários muito úteis

Pronto, encontrei.

O problema é a configuração "privacy.firstparty.isolate;true". Normalmente, o GM armazena suas configurações nessas 2 pastas:

  • profile\storage\default\moz-extension+++MYGMID
  • profile\storage\default\moz-extension+++MYGMID^userContextId=MYCONTID

Se o isolamento de terceiros estiver habilitado e você atualizar para FF 68, uma pasta de terceiros será criada:

  • profile\storage\default\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Se você desabilitar o isolamento de 1ª parte ("privacy.firstparty.isolate;false") e, em seguida, excluir a 3ª pasta criada mencionada acima, seus scripts ficarão visíveis novamente.

Todos 23 comentários

Então eu vi isso e verifiquei minha versão agora: 67. Mas tinha uma atualização para aplicar, então eu fiz. Agora estou em 68 e todos os meus scripts estão no lugar muito bem.

Os scripts são armazenados em IndexedDB. Não há uma resposta simples para isso, há IDs aleatórios envolvidos (além do nosso controle).

OK, então parece que não é um problema geral.

A única coisa que mudei após a atualização foi atualizar configurações > segurança > personalizado > bloquear rastreadores de identificação (não sei a tradução exata em inglês). Mas mudar de volta não trouxe de volta meus scripts :/

Procurará o local IndexedDB (eu conheço o ID de about:support, mas não o diretório) e alguns dos meus backups.

"profile > storage > default > about+newtab^firstPartyDomain=about.MYGMID > idb > 3312185054sbndi_pspte.sqlite" --> arquivo não alterado há um mês de acordo com o registro de data e hora do arquivo

"perfil > armazenamento > permanente > moz-safe-about+home^firstPartyDomain=about.MYGMID > idb > 818200132aebmoouht.sqlite" --> arquivo não alterado há um mês de acordo com o registro de data e hora do arquivo

Mas também nenhum desses arquivos contém mais meus scripts.

Isso acabou de acontecer comigo também. Firefox 68.0 no macOS. Problema confirmado com perfis diferentes.

Isso acabou de acontecer comigo também. Firefox 68.0 no macOS. Problema confirmado com perfis diferentes.

Descobri que simplesmente copiar um perfil antigo para o FF 68 não restaurará seus scripts. Eu tive que baixar o FF 67 Portable, copiar meu backup de perfil antigo para lá e exportar os scripts do FF 67 (não tentei reimportar para o FF68). Portanto, parece que o FF armazena os scripts em algum lugar dentro da pasta do perfil, mas o FF68 não pode ler isso ou não migra corretamente do FF67.

Atualização: o GM salva os scripts em "profile\storage\default\moz-extension+++MYGMID\idb\XXX.sqlite". Este é um ID diferente do mostrado em about:support. Parece que todos os scripts ainda estão lá, agora seria interessante porque o FF68 não pode mais lê-los para algumas configurações;)

Atualização 2: também posso reproduzir regularmente com meu perfil de backup. Infelizmente não posso compartilhar este perfil e não consegui reproduzir com uma instalação portátil FF limpa.

@daleeidd Você tem uma descrição mais detalhada ou perfil "vazio" que você pode compartilhar para tornar isso reproduzível para arantius também?

Acho que devemos investigar. Este é o pior caso e não deve acontecer, mesmo que seja apenas para 1% dos usuários.

Parece que o ID do complemento pode ter mudado entre as atualizações.

Verificado que em about:debugging : ainda mostra o mesmo ID de complemento e UUID interno.

Pronto, encontrei.

O problema é a configuração "privacy.firstparty.isolate;true". Normalmente, o GM armazena suas configurações nessas 2 pastas:

  • profile\storage\default\moz-extension+++MYGMID
  • profile\storage\default\moz-extension+++MYGMID^userContextId=MYCONTID

Se o isolamento de terceiros estiver habilitado e você atualizar para FF 68, uma pasta de terceiros será criada:

  • profile\storage\default\moz-extension+++MYGMID^firstPartyDomain=MYGMID

Se você desabilitar o isolamento de 1ª parte ("privacy.firstparty.isolate;false") e, em seguida, excluir a 3ª pasta criada mencionada acima, seus scripts ficarão visíveis novamente.

@kekk Obrigado. Basta seguir suas instruções para recuperar os scripts para exportação. Bom trabalho!

Ótimo diagnóstico. Eu não tenho certeza do que fazer sobre isso de dentro do Greasemonkey, no entanto?

De alguma forma tinha a esperança de que houvesse uma solução na GM possível. Todas as minhas outras extensões que usam o mesmo armazenamento (por exemplo, https://addons.mozilla.org/de/firefox/addon/textnotes/?src=search ) não fizeram com que o FF criasse uma nova pasta durante a atualização, mesmo com a 1ª isolamento do partido ativado.

Essa extensão não usa IndexedDB.

Posso confirmar que desabilitar o isolamento primário (eu o habilitei por meio deste complemento , uma alternância simples) e reiniciar o FF fez com que meus scripts aparecessem novamente. Não precisei deletar nenhuma pasta.

Depois de exportar os scripts com segurança, reativar o isolamento primário e reimportar os scripts resolveu o problema, portanto, o FPI não parece quebrar o Greasemonkey de maneira persistente ou permanente. Talvez valha a pena notar que (se bem me lembro) é a mesma coisa que acontece com todos os dados de navegação (sem extensão) quando um usuário ativa inicialmente o isolamento primário, portanto, é possível que o FF68 tenha apenas estendido o comportamento normal do FPI para aplicar para extensões também.

Bisbilhotando um pouco, esse bug menciona a quebra de complemento com o FPI como um aparte - não foi possível encontrar outro bug confirmado especificamente para esse problema de relance.

Thx, mencionou o bug no bugzilla. Talvez https://bugzilla.mozilla.org/show_bug.cgi?id=1564593 também deva fazer referência ao FPI (o FPI foi introduzido como parte do TorBrowser Uplift e era tão grande para a Mozilla quanto a API UserScript)

Apenas uma nota de que nós (Mozilla) vimos isso. Eu acho que o bug Bugzilla mais relevante 1554805.

Infelizmente, não temos ninguém trabalhando ativamente nisso no momento, mas talvez possamos encontrar alguns ciclos para corrigir isso. Infelizmente, a 'correção' provavelmente excluirá tudo novamente; mas pelo menos ativar/desativar o FPI não mudará o armazenamento para a extensão ...

Não é o lugar para eu reclamar, pois não tenho GM instalado, mas aconteceu a mesma coisa comigo e nada funciona. Eu tinha o FPI instalado, mas desativado. Na atualização para FF 68, tanto o onetab quanto a caneta perderam dados.

Eu continuei sobre isso aqui: https://github.com/openstyles/stylus/issues/747

@kekkc que solução portátil FF 67 você usou? Eu tentei aplicativos portáteis FF e FF ESR, ambos dizem que não devo usar um perfil FF antigo ... e não tenho idéia de como substituir essa caixa de diálogo. De alguma forma, a atualização para o FF 68 fez algo no meu perfil e o FF 66.0.4 e mais antigos continuam dizendo para usar um novo perfil.

@b16r05 estava de férias, você provavelmente já percebeu. Acabei de copiar a pasta do perfil e não iniciei o FF 67 Portable antes. Lembro-me da mesma mensagem de erro, mas acho que esse método funcionou no final.

NÃO posso confirmar esse comportamento. Eu tenho (FF68) desativado.
Não consigo ver meus scripts, nem criar novos ou instalar nada.
Simplesmente não faz nada.

Quando instalo novos scripts, ele diz 'indefinido' na caixa de diálogo final.
Quando clico em "adicionar novo script", ele coloca as seguintes mensagens de erro no console:

IndexedDB UnknownErr: ActorsParent.cpp:581
Error opening user-scripts DB! <unavailable> user-script-registry.js:57:15
undefined
Error: undefined

Tentei desinstalá-lo, excluindo as pastas storage\default\moz* , renomeei a pasta gm_scripts , reinstalando: Ainda não funciona.

Parece que isso foi corrigido no FF71 https://bugzilla.mozilla.org/show_bug.cgi?id=1554805

Na atualização de FF70 para FF71, perdi todos os meus scripts e estilos de caneta pela segunda vez em 2019. privacy.firstparty.isolate está ativado. Mas desta vez fiz um backup do meu perfil antes de atualizar.

Eu poderia fazer o downgrade da minha instalação temporariamente de volta para 70, descompactar meu backup e exportar os scripts e estilos, que refiz desde a outra perda de dados anterior.

Isso me ensina a manter uma cópia externa de todo o meu trabalho. Então eu posso verificá-los em algum controle de versão e trabalhar neles em um editor adequado. Você pode recomendar alguma maneira fácil de implantar automaticamente meus arquivos alterados externamente no GM + Firefox, além de copiar e colar?

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