Trabalhar em uma extensão da Web pode ser um pouco selvagem: por um lado, você está basicamente codificando um site e, por outro, está limitado ao que o navegador diz que você pode fazer no ambiente de execução da extensão. Uma mudança nesse ambiente está prevista para janeiro de 2023, obrigando as extensões a migrarem para a versão 3 do manifesto. Recentemente, fiquei curioso para saber se outras extensões populares haviam concluído a atualização da versão 3.
A execução do seguinte comando na página em segundo plano (manifesto versão 2) ou no service worker (versão 3) fornecerá ao senhor o manifesto da extensão:
chrome.runtime.getManifest()
O comando getManifest
retorna um objeto grande que detalha o manifesto da extensão. Aqui está o que o senhor veria para a extensão de navegador MetaMask:
{ "author": "https://metamask.io", "background": { "page": "background.html", "persistent": true }, "browser_action": { "default_icon": { "16": "images/icon-16.png", "19": "images/icon-19.png", "32": "images/icon-32.png", "38": "images/icon-38.png", "64": "images/icon-64.png", }, "default_popup": "popup.html", "default_title": "MetaMask" }, "commands": { "_execute_browser_action": { "suggested_key": { "chromeos": "Alt+Shift+M", "linux": "Alt+Shift+M", "mac": "Alt+Shift+M", "windows": "Alt+Shift+M" } } }, "content_scripts": [ { "all_frames": true, "js": [ "disable-console.js", "globalthis.js", "lockdown-install.js", "lockdown-run.js", "lockdown-more.js", "contentscript.js" ], "matches": [ "file://*/*", "http://*/*", "https://*/*" ], "run_at": "document_start" } ], "current_locale": "en_US", "default_locale": "en", "description": "An Ethereum Wallet in your Browser", "externally_connectable": { "ids": [ "*" ], "matches": [ "https://metamask.io/*" ] }, "icons": { "16": "images/icon-16.png", "19": "images/icon-19.png", "32": "images/icon-32.png", "38": "images/icon-38.png", "48": "images/icon-48.png", "64": "images/icon-64.png", }, "manifest_version": 2, "minimum_chrome_version": "66", "name": "MetaMask", "permissions": [ "storage", "unlimitedStorage", "clipboardWrite", "http://localhost:8545/", "https://*.infura.io/", "https://lattice.gridplus.io/*", "activeTab", "webRequest", "*://*.eth/", "notifications" ], "short_name": "MetaMask", "update_url": "https://clients2.google.com/service/update2/crx", "version": "10.16.1" }
Muitas das extensões da Web ainda estão usando a versão 2 do manifesto, portanto, muitos desenvolvedores de extensões estão se esforçando para concluir o trabalho da versão 3 do manifesto!