Para os senhores que não estão familiarizados com o mundo do desenvolvimento de extensões da Web, uma tempestade está se formando no Chrome. O Google interromperá o suporte à versão 2 do manifesto, que é o que a grande maioria das extensões da Web usa. A versão 3 do manifesto apresenta muitas alterações, mas a maior delas é a mudança de scripts persistentes em segundo plano para service workers. Essa… é… uma… grande… mudança.
As alterações da versão 2 para a versão 3 do manifesto incluem:
- Passagem de um script persistente em segundo plano para um service worker que pode morrer após 5 minutos
- Não há uso de
<iframe>
ou outras APIs DOM do trabalhador do serviço - Todas as APIs se tornaram baseadas em promessas
- Restrições de conteúdo da perspectiva do CSP
Uma função que as extensões da Web geralmente empregam é a execução de scripts a cada novo carregamento de página. Para uma extensão da Web como a MetaMask, precisamos fornecer um window.ethereum
global para os dApps usarem. Então, como fazemos isso com a versão 3 do manifesto?
A partir do Chrome v102, os desenvolvedores podem definir um world
com um valor de isolated
ou main
(na página) para scripts de conteúdo. Embora os desenvolvedores devam definir content_scripts
na seção manifest.json
da extensão, o main
realmente só funciona (devido a um bug do Chrome) quando o senhor o define programaticamente no service worker:
await chrome.scripting.registerContentScripts([ { id: 'inpage', matches: ['http://*/*', 'https://*/*'], js: ['in-page.js'], runAt: 'document_start', world: 'MAIN', }, ]);
No exemplo acima, in-page.js
é injetado e executado na guia de conteúdo principal sempre que uma nova página é carregada. Esse in-page.js
arquivo define window.ethereum
para todos os dApps usarem. Se o world
for undefined
ou isolated
, o script ainda seria executado, mas em um ambiente isolado.
O trabalho da versão 3 do manifesto é bastante árduo, portanto, abrace o desenvolvedor de extensões mais próximo. Há muitas mudanças estruturais enormes e navegar por essas mudanças é um esforço brutal!
jQuery Wookmark
A primeira coisa que acontece quando o senhor visita o Pinterest é: “Uau, as colunas têm a mesma largura e as fotos são cortadas para caber do jeito que deveriam”. Os usuários básicos da Web provavelmente não pensam nisso, mas, como desenvolvedor, posso apreciar a…
Crie botões no estilo do Twitter com o kit de ferramentas Dojo
Adoro o fato de os kits de ferramentas JavaScript tornarem incrivelmente fácil o aprimoramento de páginas da Web. Hoje, abordarei um efeito que já codifiquei com o MooTools: criando um botão “Sign In” animado no estilo do Twitter. Confira este tutorial de cinco minutos para que o senhor possa usar seu botão estático…