Por que o Firefox teve que matar sua extensão favorita?
O Firefox 57, ou Quantum, está aqui e é uma grande melhoria. O Firefox finalmente alcançou o Chrome em termos de velocidade, a interface é muito mais limpa e há alguns ótimos recursos novos para inicializar. Não há muito o que reclamar aqui.
Só brincando. Na internet, sempre há algo para reclamar.
Com o Firefox Quantum, a reclamação de jour é que certas extensões não funcionam mais. Várias extensões de alto perfil, incluindo DownThemAll e Greasemonkey, não funcionam atualmente com a Quantum. Outros, incluindo Firebug e ScrapBook, provavelmente nunca mais funcionarão.
Isso é frustrante se você for usuário de um desses serviços, e você pode achar que isso é um pouco arbitrário. Não é. Goste ou não, a Mozilla sentiu que não tinha escolha a não ser abandonar o que chamou de add-ons “legados” para avançar. Aqui está o porquê.
Como as extensões herdadas do Firefox funcionaram
As extensões tradicionais do Firefox foram geralmente escritas em XML User Interface Language (XUL). Esta é a linguagem na qual a interface do usuário do Firefox é construída, e as extensões baseadas em XUL podem modificar essa interface diretamente. Esses complementos também tiveram acesso quase total ao XPCOM, o poderoso modelo de objeto de componente usado pelo Firefox.
Se isso passar por cima da sua cabeça, apenas saiba disso: as extensões do Firefox tinham uma capacidade total mais ou menos baixa de alterar seu navegador, e elas fizeram essas alterações diretamente. É por isso que essas extensões eram tão poderosas: não havia um conjunto prescrito de coisas que elas poderiam ou não poderiam mudar. É também por isso que essas extensões tendem a romper com os novos lançamentos do Firefox.
As extensões para o Chrome ou o Safari não funcionam desta forma. Esses navegadores oferecem aos desenvolvedores de extensões APIs específicas que podem usar, o que significa que há uma lista de coisas que as extensões podem e não podem controlar. Há dois anos, o Firefox oferece uma API semelhante chamada WebExtensions, que incentivou os desenvolvedores a adotar.
Extensões tradicionais feitas melhorar o Firefox difícil
O Firefox Quantam não é a primeira atualização a quebrar uma extensão: este tem sido um problema contínuo há anos. Como as extensões do Firefox podem afetar o Firefox de maneira tão direta, até mesmo pequenas alterações no próprio Firefox podem interromper completamente os complementos ou apenas introduzir erros que prejudicam o desempenho..
Os usuários do Firefox, sem saber que as extensões estavam causando o problema, presumiriam que a nova versão do Firefox é problemática e, do ponto de vista deles, era. A equipe do Firefox faria o possível para garantir que extensões populares estivessem funcionando antes de implementar uma nova versão, mas é fácil imaginar tudo isso atrasando o desenvolvimento.
A API WebExtensions torna tudo isso mais fácil definindo especificamente o que as extensões podem fazer e como podem fazê-lo. Isso significa que os desenvolvedores só precisam garantir que a API esteja funcionando corretamente e não se preocupe se um ajuste de desempenho ou uma alteração da interface do usuário interromper determinadas extensões. O resultado deve ser menos extensões quebrando a longo prazo, mas para tornar isso possível, a Mozilla precisou abandonar o antigo ecossistema de extensão.
A mudança também possibilita alguns dos melhores recursos do Quantam. A capacidade de vários processos, por exemplo, é uma grande parte do aumento de velocidade do Firefox Quantam. Quatro processos separados lidam com a interface e as guias do Firefox, o que significa que o Firefox pode usar todos os quatro núcleos do processador em vez de apenas um. Esta é uma realidade para a qual o ecossistema de extensão tradicional simplesmente não foi construído, e é difícil imaginar fazê-lo funcionar sem muitas camadas de abstração que inevitavelmente atrasariam as coisas. Muitas mudanças futuras no Firefox foram similarmente retidas por complementos legados, o que significa que o ecossistema teve que mudar para que o Firefox evoluísse.
Compatibilidade entre plataformas era um problema
Antigamente, os complementos davam às pessoas uma razão convincente para usar o Firefox no Chrome. Atualmente, o Chrome é, de longe, o líder em termos de complementos, enquanto o Firefox pode parecer um cemitério de extensões não mantidas de anos passados.
Claro, existem algumas extensões do Firefox que você não pode obter no Chrome, mas o Chrome tem o ecossistema maior de longe. A nova API do WebExtensions não corrigirá isso durante a noite, mas facilita muito a migração das extensões do Chrome para o Firefox, porque a linguagem usada para gravar as extensões é semelhante o suficiente para tornar a portabilidade superficial. Em muitos casos, são necessários apenas alguns ajustes para que uma extensão do Google Chrome seja executada no Firefox, o que significa que não há motivo para que suas extensões favoritas do Chrome não venham para o Firefox agora, se você perguntar ao desenvolvedor com bastante clareza. Isso deve levar a uma enxurrada de novas extensões em um ecossistema que poderia francamente usá-lo.
O Firefox já estava perdendo usuários
Alguns podem argumentar que o Firefox vai perder usuários por causa de extensões quebradas, mas vale a pena notar que o Firefox já estava perdendo usuários para o Chrome em um ritmo alarmante, e tem sido por anos. A velocidade comparativa e a falta de certos complementos não estavam ajudando nessa frente, e o Firefox Quantum visa corrigir esses dois problemas.
Existe uma chance de isso sair pela culatra? Certo. Algumas pessoas pularão de navio para o Chrome, e outras poderão procurar garfos antigos que mantenham o antigo ecossistema de extensão. Mas não é como se as coisas estivessem indo bem antes. O Firefox precisava evoluir para se manter relevante, e foi assim que eles decidiram fazer isso.
Desenvolvedores tiveram tempo de mudar para a nova API
Alguns usuários não notarão que essa opção ocorreu, porque as extensões com as quais trabalham já usam a API WebExtension. Outras extensões não mudaram.
Isso pode ter acontecido porque o desenvolvedor abandonou a extensão há muito tempo ou não se sente reescrito para usar a API. Em alguns casos, a API não oferece controle suficiente para recriar a extensão original, portanto, os desenvolvedores estão abandonando seus projetos. E, em muitos casos, a conversão simplesmente não é feita ainda.
Seja qual for o caso, as extensões não estão quebrando porque a Mozilla mudou algo de repente. O WebExtensions faz parte do Firefox há dois anos e o prazo para atualização de extensões foi anunciado há um ano:
Até o final de 2017, e com o lançamento do Firefox 57, passaremos para o WebExtensions exclusivamente e deixaremos de carregar qualquer outro tipo de extensão no desktop.
Ainda falta uma extensão da qual você depende? Este documento do Google acompanha várias extensões populares e fornece alternativas para várias outras comuns. Esta lista também é útil.