- uBlock Origin Lite teve a distribuição pela Firefox Add-ons Store interrompida, e o criador Raymond Hill moveu a extensão para hospedagem própria
- No início de setembro, a equipe de revisão da Mozilla marcou todas as versões como violando políticas, apontando coleta de dados de usuários e a presença de “minified, concatenated or otherwise machine-generated code”
- Hill rebateu dizendo que essa alegação não faz sentido para quem tem entendimento básico de JavaScript e classificou o processo de revisão como “nonsensical and hostile”
- Mais tarde, a Mozilla reconheceu o erro e pediu desculpas em um e-mail incluído em uma issue do GitHub, mas o uBlock Origin Lite ainda não pode ser encontrado em addons.mozilla.org
- Usuários do Firefox precisam baixar a versão mais recente no GitHub, enquanto o uBlock Origin for Firefox tradicional continua disponível e com suporte
Distribuição na Firefox Add-ons Store encerrada
- O criador do uBlock Origin Lite, Raymond Hill, encerrou o suporte à loja do Firefox após passar várias vezes pelo que chamou de processo de revisão “nonsensical and hostile” da equipe da Firefox Add-ons Store
- No início de setembro, a Mozilla marcou todas as versões do uBlock Origin Lite como violando políticas
- Os revisores concluíram que a extensão parecia coletar dados de usuários
- Também apontaram como problema a presença de “minified, concatenated or otherwise machine-generated code”
- Hill rebateu dizendo que qualquer pessoa com compreensão básica de JavaScript perceberia em segundos que essa alegação não faz sentido
Mudança para hospedagem própria e impacto para usuários
- Hill retirou a extensão da Firefox Add-ons Store e a transferiu para uma versão hospedada pelo próprio autor
- Usuários que quiserem continuar usando o uBlock Origin Lite no Firefox precisam baixar a versão mais recente no GitHub
- Essa versão pode se atualizar automaticamente por conta própria
- A mensagem final desta issue do GitHub, já encerrada, inclui um e-mail em que a Mozilla reconhece o erro e pede desculpas
- Ainda assim, o uBlock Origin Lite segue removido da Mozilla Add-ons Store e não pode mais ser encontrado em addons.mozilla.org
Contexto do uBlock Origin e das versões do Manifest
- O uBlock Origin for Firefox tradicional continua disponível e com suporte
- A versão Lite é uma extensão baseada em Manifest V3, com uso mais leve e eficiente de recursos como processador e memória
- Hill já havia recomendado a migração para o uBlock Origin Lite depois que o Chrome passou a marcar o uBlock Origin como uma extensão sem suporte
- A Mozilla não planeja encerrar no futuro próximo o suporte a extensões baseadas em Manifest V2, então o uBlock Origin continuará existindo e funcionando no Firefox e em navegadores com suporte a MV2
1 comentários
Opiniões no Hacker News
No trabalho, gerencio uma extensão de navegador de porte médio, que também era oferecida para Firefox, mas passei o último ano tentando voltar à loja da Mozilla depois de uma revisão manual.
Estou nos EUA, e parece haver apenas uns dois revisores na Europa, talvez na Romênia; os tempos de resposta são longos e é muito frustrante levar duas semanas para resolver erros simples, como não perceberem algo que já existe (“é necessária uma política de privacidade”), olharem para o artefato de build e dizerem que é “código gerado por máquina/ofuscado”, ou não seguirem as instruções e dizerem, a partir do diretório errado, que “não é possível reproduzir o código-fonte”.
Eles exigem builds reproduzíveis, mas não conseguem instalar a versão correta do yarn, nem seguir etapas básicas de configuração como o comando exato de instalação escrito várias vezes em negrito no README, o procedimento para instalar a versão do Node ou scripts de automação.
Fica ainda mais complicado quando uma empresa privada faz a “loucura” de usar módulos NPM privados. Mesmo oferecendo acesso a uma conta previamente configurada ou permissões de uma conta para revisão, a Mozilla diz que “é difícil usar contas externas durante a revisão”.
O simples fato de precisar interagir com a equipe de revisão do navegador é um grande motivo pelo qual já não recomendo mais o Firefox. Na melhor das hipóteses, são incompetentes; parecem apenas tentando extrair o máximo possível da receita do contrato de busca com o Google, sem levar a sério a oferta de um navegador alternativo e seguro.
Só que a extensão tem uma estrutura que compila um arquivo wasm a partir de Rust e, depois de algumas idas e vindas, chegamos à conclusão de que esse wasm não precisava ser reproduzível. Mesmo ele sendo o núcleo da extensão e contendo 99% da lógica.
Não sei qual é o sentido de reproduzir o JS se é possível esconder dentro do wasm qualquer código potencialmente malicioso.
Por um tempo, cheguei a considerar seriamente colocar um wasm pré-compilado no pacote de fontes ou no npm só para simplificar os “builds reproduzíveis” do AMO, mas isso ficaria ainda mais distante do processo real de build.
Já ouvi dizer que, em alguns casos, revisores reutilizam máquinas virtuais ou nem sequer as usam.
Eu imaginava que o formulário de revisão teria um campo para colar um link do git, e que haveria um pipeline automatizado bem documentado que criaria uma VM com memória e disco especificados, clonaria o git e executaria
docker build -t ./docker/review/Dockerfile.É surpreendente que os próprios revisores não tenham pressionado fortemente a organização por esse tipo de ferramenta, até por satisfação no trabalho. É difícil imaginar o quanto devem ser importunados por donos de apps irritados.
No fim, como o uso era baixo e a revisão era dolorosa demais, a empresa reduziu a frequência das atualizações da extensão para Firefox. Como eu era o único engenheiro, talvez o único funcionário, que usava Firefox naquela empresa, achei triste.
É um trabalho que exige certo nível técnico, mas ao mesmo tempo é bastante tedioso, e essas tarefas mais interessantes provavelmente também pagam melhor.
Trabalho na Mozilla, mas estou bem distante de Add-ons, então não sei que tipo de pressão eles enfrentam por lá.
Ainda assim, se eu estivesse no comando, o interlocutor agora é o gorhill. Eu simplesmente o tornaria um revisor de complementos com permissões totais e diria que ele pode revisar apenas a própria extensão.
Não é preciso verificar sua competência ou confiabilidade. Há muito mais dados históricos a favor dele do que a favor de qualquer contratado ou funcionário.
Ele também não é um caso único. A Mozilla já não é tão centrada em voluntários quanto antes, mas muitas contribuições importantes ainda vêm de voluntários, e pelo menos na equipe do SpiderMonkey não há uma barreira entre contribuidores externos e contribuidores pagos.
Não vejo motivo para não tornar o gorhill um membro formal da equipe de revisão. Dada a situação atual, não acho que ele aceitaria imediatamente, mas isso faz mais sentido do que conceder alguma exceção especial que poderia ser dada a outras pessoas ou organizações.
Ele já contribui muito para a capacidade e o sucesso do Firefox, então deixem que contribua também para a revisão, que já existe e tem valor. Acho que bastaria ele revisar a si mesmo.
Agora preciso descobrir quem incomodar no Slack.
Mesmo que seja uma superestrela, é preciso que outra pessoa olhe o código para evitar que as práticas de segurança fiquem frouxas.
Se esse privilégio for permitido, outras superestrelas na fronteira também vão querer a mesma permissão.
Na publicação científica, mesmo que alguém seja editor-chefe, seu próprio artigo é revisado por outra pessoa, e o processo decisório ocorre sem que a pessoa tenha acesso a ele. Isso é bom para a ciência.
Pode ser uma boa ideia, mas a Mozilla poderia receber uma nova reclamação de que não avalia reputação de forma consistente.
https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Reviewing
Em vez disso, é preciso usar as versões ESR/Developer/Nightly e definir
xpinstall.signatures.requiredcomo false, o que reduz muito a segurança.Acho que ele volta em uma semana; é importante porque, no Firefox, isso pode economizar bateria em relação ao uBlock Origin comum.
Se entendi corretamente a linha do tempo, parece que o gorhill reagiu de forma exagerada. Vejo assim mesmo partindo de uma posição que, em geral, é duramente crítica a quase tudo que a Mozilla fez nos últimos mais de 5 anos
Realisticamente, é difícil para a Mozilla revisar manualmente, com segurança e dentro do prazo, todas as revisões de complementos; no fim, ela teria que escolher entre automação e longos atrasos. Na automação, falsos positivos são inevitáveis
Qual seria a alternativa? Acabar totalmente com a revisão antes do lançamento? Como usuário, espero que não. Há até confirmação de que ataques sofisticados à cadeia de suprimentos estão sendo executados em ambiente real
A política de revisão também protege o próprio gorhill. Se alguém o ameaçar para inserir spyware, o fato de haver uma chance de isso ser detectado antes do lançamento reduz um pouco o apelo de torná-lo alvo de coerção física
Gorhill e outros desenvolvedores de extensões de destaque entregam valor real ao Firefox e demonstraram bom comportamento por anos
Isso não significa que devam poder publicar o que quiserem, mas, se um revisor pretende rejeitar um plugin famoso, uma segunda pessoa deveria avaliar. Este erro certamente teria sido detectado
Parece mais um exemplo de que “o Firefox investe pouco em relações com desenvolvedores”. Considerando o quanto dependem deles, isso surpreende
Se o uBlock Origin Lite tem 8,4 milhões de usuários, é difícil entender como gorhill não tem um contato dedicado na Mozilla. Se houver um problema com a extensão, é algo para avisar por telefone
É bem provável que a ferramenta de varredura automática usada pela Mozilla tenha identificado “isso é Google Tag Manager” e emitido o aviso normalmente enviado a complementos que incluem scripts suspeitos
Porém, o e-mail diz claramente que “a equipe Mozilla Add-ons revisou manualmente”
Ou isso é mentira, ou o revisor manual não entendeu que a ferramenta automática que ele executou poderia ter falsos positivos
Não há problema em uma plataforma como a Mozilla fazer detecção automática de abuso, mas não deveria mentir na comunicação. Ou então deveria contratar alguém que saiba o que está fazendo ao lidar com bloqueios de complementos
Mesmo sendo uma extensão auto-hospedada, é preciso passar pela revisão no envio e esperar um tempo arbitrário; e, quando regras de filtragem são empacotadas na extensão, o tempo importa. Segundo ele, ao receber a notificação de aprovação, ainda é preciso baixar manualmente de novo o arquivo da extensão, renomeá-lo, enviá-lo ao GitHub e corrigir manualmente o
update_urlpara a nova versãoDepois de enviar a
2024.9.12.1004, levou 5 dias para obter a aprovação para auto-hospedagem e, no momento da escrita, a2024.9.22.986ainda não havia sido aprovadaNão parece nada divertido de fazer como hobby
https://github.com/uBlockOrigin/uBOL-home/issues/197
Ele é um desenvolvedor individual que mantém o uBlock como hobby e nem aceita doações, então não nos deve nada
Ele tem o direito de decidir se o processo de revisão é fluido o suficiente para merecer seu tempo e energia; desta vez, simplesmente decidiu que não era
Como ele tornou a extensão open source, qualquer pessoa pode publicar o uBlock Origin Lite no lugar dele
https://github.com/uBlockOrigin/uBOL-home/issues/197
Isso não foi uma revisão automática, foi uma revisão manual ruim
O autor também explicou adicionalmente o que envolve o processo de revisão do AMO e disse que não quer lidar com esse estresse. Também mencionou que uma versão um tanto prejudicial do plugin continua disponível
Não querer lidar com o estresse é uma reação totalmente compreensível
É muito irritante que, para distribuir a usuários comuns, seja preciso submeter a extensão a um porteiro
Como o gorhill disse no GitHub, até a aprovação da versão auto-hospedada levou alguns dias, e isso é inaceitável
Imagine ter que obter aprovação da Microsoft para distribuir software. Nem o Android é tão fechado assim
A imposição de assinatura e a remoção do XUL foram as piores coisas que a Mozilla fez. O Google faz o mesmo, e pior, mas isso é algo que se espera do Google, não da Mozilla
Sei disso porque mantive o VimFx por um tempo depois da remoção do XUL. Era difícil acompanhar as APIs internas que mudavam, mas, como eles precisam desenvolver o produto, eu não podia culpá-los por isso
O verdadeiro motivo que me fez desistir da manutenção do VimFx foi a imposição de assinatura. Eles continuaram apertando o cerco até impedir que até “meu código” fosse executado com uma experiência de usuário razoável
A direção que eu queria era oferecer WebExtensions como a abordagem recomendada, com compatibilidade e garantia de descontinuação, não se preocupar com a compatibilidade de outras APIs e continuar permitindo extensões externas de “acesso total” que usam APIs internas
Mesmo que a loja avisasse “esta extensão usa APIs não suportadas, portanto pode quebrar a qualquer momento e roubar todos os seus dados pessoais” e deixasse o botão de instalação em vermelho vivo, ainda assim deveria permitir
Também deveriam ter continuado a dar suporte a extensões distribuídas de forma independente que usam chaves de assinatura e URLs de atualização gerenciadas pelo desenvolvedor
Como essas APIs não teriam garantia de compatibilidade, isso não teria exigido tanto trabalho adicional. Seria só um pouco de trabalho de UI para adicionar avisos assustadores e a manutenção do código de atualização fora da loja
Cada vez mais plataformas estão indo nessa direção, e eu não ficaria surpreso se o Windows também acabasse seguindo por esse caminho
No mobile, parece que instalar extensões fora do repositório da Mozilla exige uma build Nightly, o que sugere que o pensamento deles está sendo contaminado pelo restante do ecossistema móvel
Antes de tomar uma medida extrema como remover um complemento da loja, a Mozilla deveria entrar em contato primeiro se tiver perguntas ou preocupações na revisão
Se você não for uma pessoa famosa, não tiver muitos seguidores ou seu app/extensão não for muito popular, é difícil esperar que isso seja resolvido a tempo
O uBlock Origin completo do Gorhill talvez seja praticamente o único argumento de venda que resta para o Firefox
Com a quantia absurda de dinheiro que a alta direção da Mozilla recebeu recentemente, eles poderiam, em vez disso, ter montado uma equipe com profissionais de primeira linha dedicada a fazer tudo de que o Sr. Gorhill precisasse
Mais recentemente, adicionaram o recurso privacy preserving attribution, que nenhum usuário pediu
Não sei por que essa extensão existe no AMO. Segundo o artigo, é a “versão Lite/Manifest v3”; por que alguém instalaria uma edição inferior para navegadores antigos em vez da versão que bloqueia anúncios direito no Firefox?
Listas declarativas de domínios são fáceis de armazenar em cache e reduzem ativações desnecessárias de extensões. Com menos permissões, o impacto também é muito menor se uma versão infectada por malware aparecer na loja no futuro
O mecanismo de regras do uBlock é muito poderoso, a ponto de um conjunto de regras personalizado conseguir injetar código em qualquer site. Isso vale não só para regras personalizadas, mas também para regras embutidas cujas contas ou hospedagem podem ser hackeadas ou vendidas posteriormente
Claro que isso não significa que eu vá usar a versão Lite, nem que eu concorde com a escolha do Google. Eles mataram a API de bloqueio de anúncios sem oferecer uma API alternativa
De todo modo, como o código está disponível e ainda há pessoas que continuam usando o Google Chrome, essa versão também pode ser oferecida no Firefox
A pergunta melhor é: se o Firefox recusa o que eu quero, por que eu usaria o Firefox?
Isso parece bem duro. A Mozilla errou, pediu desculpas, corrigiu o erro e talvez até tenha melhorado o processo, mas o autor mesmo assim removeu a extensão e criticou a Mozilla
Na minha opinião, ou o autor levou isso para o lado pessoal demais, ou quis mandar uma mensagem forte para exigir melhorias no processo de análise. No meio disso, a visibilidade do projeto acabou sofrendo um pouco
https://github.com/gorhill/uBlock/issues/38#issuecomment-918...
Então é previsível que ele também se canse do processo de análise da Mozilla e diga que vai parar
Naquela época, ele entregou o projeto a uma pessoa aleatória e sem escrúpulos, que logo tentou monetizá-lo, e Raymond odiou o resultado, teve de criticar seu próprio projeto anterior e acabou praticamente voltando ao ponto de partida, só que depois de muito trabalho extra no meio do caminho
Projetos assim funcionam bem quando o autor sente que está dando um presente valioso à comunidade, e que a comunidade o aceita e agradece por isso
Ter de submeter sua própria criação a um processo de “análise” impessoal e ser rejeitado de uma forma que deixa claro que ninguém olhou direito não é só desmotivador, é um insulto
Eu também teria ido embora
Ela nem deu ao autor qualquer garantia de que o add-on não seria removido novamente sem comunicação prévia de mão dupla
A Mozilla tem uma página de comunicados à imprensa, então poderia ter deixado claro publicamente o que deu errado e o que mudaria daqui para frente. Também poderia ter reconhecido que essa extensão é excelente e contribuído com financiamento para que ela continuasse disponível aos usuários
Em vez disso, depois que o revisor cometeu um erro enorme, fizeram apenas o mínimo possível para salvar as aparências. Os motivos dados na primeira análise eram obviamente errados, em um nível que até um desenvolvedor JS iniciante perceberia
Até um revisor de IA teria feito melhor. O ChatGPT 4o mini avaliou que esse arquivo não parecia código ofuscado, não era uma forma minificada com espaços, quebras de linha e comentários removidos, e que, por ter comentários, indentação e funções estruturadas, não apresentava características de código ofuscado
Não poderiam ser frios e impessoais como as pessoas que operam a “loja” do Firefox?
Mesmo que eu ache que teria agido de outro jeito no lugar dele, chega uma hora em que basta
E a Mozilla não pediu desculpas. Não quero bancar a polícia do pedido de desculpas, mas aquilo foi só uma frase formal de atendimento ao cliente com a palavra “apologize” no meio
Isso já é suficiente, e ninguém espera mais que isso, mas dá para reconhecer aquilo pelo que é
É uma reação justificada. O uBO é uma extensão matadora, e a Mozilla, se quer insistir em um processo horrível de análise de extensões conduzido por máquinas, no estilo do Google, parece não ter pensado que pelo menos uma das extensões mais importantes existentes deveria ser tratada como exceção
Mesmo que a Mozilla tenha “percebido o erro”, é compreensível que o gorhill tenha ficado completamente furioso com tudo isso e se recuse a cooperar
O erro deles foi presumir que ele, como muitos desenvolvedores de extensões e de open source, toleraria trabalho burocrático em troca de pouca gratidão e exigências crescentes
O resultado está longe de ser ideal, mas infelizmente a responsabilidade é inteiramente da Mozilla
A extensão principal está sempre mais atualizada no Firefox do que no Chrome/Edge
Assim eles lidariam com os bloqueadores de anúncios. Como já têm amplo controle sobre o Chromium, a única alternativa real que sobra é o Safari, que é muito mais difícil de atacar
O Google não pode impedir as extensões de bloqueio de anúncios do Firefox, mas pode incentivar a Mozilla a tocar o Firefox praticamente como software abandonado até ele morrer
É vergonhoso que a Mozilla Foundation tenha arruinado tanto sua própria posição, e é difícil atribuir essas ações apenas à incompetência
Se o Firefox não o suportasse, eu estaria usando outro navegador. Se a Mozilla continua fazendo cada vez menos coisas direito, deveria tratar o gorhill com todo cuidado possível
Eu realmente espero que Raymond Hill não tome a mesma medida em relação ao uBlock Origin, ou seja, à versão Manifest v2
Não é tão confortável recomendar que outras pessoas instalem uma extensão hospedada por conta própria
É uma pena que a Mozilla e Raymond Hill não possam ou não queiram resolver esse problema juntos. Entendo que uma extensão dessas não deveria ter passado por esse tipo de análise, e também entendo que ele não queira mais se preocupar com isso, mas me preocupo com o impacto que essa situação pode ter na estabilidade de longo prazo do projeto uBlock Origin
A situação toda certamente não parece saudável
https://github.com/uBlockOrigin/uBOL-home/issues/197#issueco...
É absurdo insinuar que o projeto está em risco só porque uma plataforma menor está sendo teimosa
Já faz cerca de uma semana desde o lançamento, mas a versão mais recente disponível no site de complementos do Firefox é a 1.59