Criando extensão para Google Chrome

Atualmente o browser do nosso computador é um dos softwares mais utilizados diariamente, adicionalmente, temos inúmeras extensões que acrescentam funcionalidades extra. Um extensão é um pequeno software desenvolvido para adicionar funcionalidades extra a softwares maiores, como o exemplo dos browsers que utilizamos. As extensões podem-nos ajudar a automatizar pequenas tarefas no dia-a-dia ou até melhorar a nossa experiência enquanto utilizadores da web.
Neste artigo que vos trago hoje, vou explicar como podemos desenvolver a nossa própria extensão para o Google Chrome.
Antes de começarmos deverás ter como requisitos mínimos, os seguintes conhecimentos:
- HTML
- CSS
- JavaScript
Para que possamos começar a desenvolver, basta criar um novo diretório no nosso computador, abrir o nosso editor de texto preferido e voilá, estamos prontos!
Se alguma vez desenvolveste um Website ou aplicação Web, então vais habituar-te rapidamente ao desenvolvimento de plugins
Declarações
Devemos começar por criar um arquivo de manifesto, arquivo este que contém todas as informações do nosso plugin, chamado manifest.json. Este arquivo é nada mais nada menos do que um arquivo com o conteúdo em formato JSON.
Neste artigo vamos criar uma extensão para que nos informe quais as medidas do browser de uma forma simples. Para isso, criamos um arquivo manifest.json com o seguinte aspecto:
{
"manifest_version": 2,
"name": "Ruller",
"description": "Este plugin diz-nos quais as medidas atuais do nosso browser.",
"version": "1.0",
"icons": {
"16": "icons/16x16.png",
"48": "icons/48x48.png",
"128": "icons/128x128.png"
},
!
"browser_action": {
"default_icon": {
"19": "icons/19x19.png",
"38": "icons/38x38.png"
},
"default_title": "Ruller"
},
!
"background": {
"scripts": ["background.js"]
},
!
"content_scripts": [{
"matches": ["http://*/*", "https://*/*"],
"js": ["jquery.min.js", "content.js"]
}]
}!
Passando à explicação
manifest_version– É a versão do arquivomanifest.jsonque acabamos de criar, está atualmente na versão 2, sendo que arquivos na versão 1 não serão aceites pelos Google Chrome.name– Nome do nossa extensão, o que for definido neste campo será visível publicamente na página dos plugins do Chrome.description– Breve descrição da extensão, tal como o nome, a descrição será visível na página das extensões do Chrome.version– Versão atual do nossa extensão, deverá ser definido pelo programador.icons– Aqui definimos quais os arquivos a utilizar para as diversas dimensões dos ícones, os mesmos devem estar no directório criado anteriormente e deverão ser especificados nomanifest.json.browser_action– Aqui definimos o aspecto do ícone que está visível ao lado da omnibar do Chrome, especificando quais os ícones a utilizar bem como o título que será visível no tooltip por cima do ícone.background– Conjunto de páginas ou scripts a serem utilizados em plano de fundo. Mais para a frente irei regressar a este assunto.content_scripts– São os arquivos que fazem com que o nossa extensão funcione. Devemos ter atenção às dependências do nosso código, neste caso é necessário a framework jQuery, logo temos de importar primeiro o jQuery. Neste exemplo vamos usar o arquivo do jQuery e ocontent.js, arquivo que contém o código a ser desenvolvido. Aqui podemos acrescentar regras e carregar estes arquivos apenas em alguns websites, neste caso carregamos os arquivos para todos!
Background
O arquivo que definimos como background no manifesto, neste caso irá servir como “vigia”, estando à espera que o utilizador o chame. Neste arquivo colocamos o seguinte código:
chrome.browserAction.onClicked.addListener(function(tab)
{
chrome.tabs.getSelected(null, function(tab)
{
chrome.tabs.sendMessage(tab.id, "");
});
});
Explicando, estamos a dizer ao nosso background.js que assim que for feito um clique no ícone da extensão, este envia uma mensagem indicando que o clique foi efetuado. Na mensagem é obrigatório passarmos o id do tab em que estamos, bem como uma mensagem, que neste caso é uma string vazia.
Listener
Como vimos anteriormente, assim que o utilizador efetua o clique no botão do nossa extensão, é enviada uma mensagem. Mas para quem? É aqui que entra o arquivo content.js, que definimos no manifest.json. No content.js temos o seguinte código:
chrome.extension.onMessage.addListener(function() {
var width = $(window).width();
var height = $(window).height();
alert("Largura:" + width + "\nAltura: " + height);
});
O código acima, está à espera que seja enviada uma mensagem. Assim que a mesma é enviada este adiciona um listener, que vai fazer com que ele seja o receptor da mensagem, executando assim a sua função. Neste caso, irá mostrar-nos quais as medidas do nosso browser, no momento em que damos o clique no nossa extensão.
Utilização
Agora que temos o nossa extensão feito, vamos colocar o mesmo em funcionamento, mãos à obra!

Para isso, basta ativarmos o modo de programador do Google Chrome. Abrimos a página das extensões do Google Chrome e selecionamos a caixa que diz Modo de programador.
De seguida, clicamos em Carregar extensão descomprimida e indicamos onde está o diretório criado anteriormente. Assim que estiver concluído, podemos ver o nosso recém criada extensão ativado e pronto a utilizar.
Agora que está tudo terminado, podemos testar o nossa extensão!
Conclusões
Com este artigo aprendemos a dar os primeiros passos na criação da extensão para o Google Chrome.
