Crie Extensões Chrome em 3 Passos: Guia Completo para Iniciantes

As extensões de navegador funcionam como complementos que potencializam as capacidades do seu navegador. Essencialmente, elas adicionam funcionalidades extras à experiência básica de navegação.

Mas, qual a vantagem de uma extensão em relação a um aplicativo web? Bem, uma extensão tem acesso a todas as APIs do navegador, o que lhe concede um controle mais amplo sobre ele.

Com uma extensão, você pode:

✅ Modificar a interface do seu navegador e as abas.

✅ Incluir novos atalhos para ações dentro do navegador.

✅ Monitorar seu navegador e a atividade na web de forma mais eficiente.

O Google Chrome oferece uma loja virtual onde você pode disponibilizar suas extensões para outros usuários. Embora possa parecer complexo, o desenvolvimento de uma extensão do Chrome é baseado em tecnologias web familiares: HTML, CSS e JavaScript.

Sim, você pode criar sua extensão do Chrome usando JavaScript e outras ferramentas simples da web. Vamos a um tutorial prático!

Desenvolvendo uma extensão para Chrome

Neste tutorial, vamos construir uma extensão para Chrome que examina seu histórico de navegação e o exibe em um pop-up.

Arquivos Necessários

O único arquivo indispensável para uma extensão do Chrome é o manifest.json. O restante do código segue os mesmos princípios de desenvolvimento de um aplicativo web.

Criando o Arquivo manifest.json

Este arquivo define as configurações e funcionalidades da extensão. Veja um exemplo de um arquivo manifest comum:

{
  "manifest_version": 3,
  "name": "Histórico",
  "description": "Visualizar Histórico de Navegação",
  "version": "0.1",
  "action": {
    "default_popup": "index.html"
  }
}

A versão mais recente do arquivo de manifesto, no momento da escrita, é a v3 que, conforme o próprio Chrome indica, traz melhorias de segurança, privacidade e desempenho para as extensões, permitindo o uso de tecnologias web abertas, como service workers e promessas.

Você também encontra a propriedade “action” no arquivo de manifesto. Ela determina qual arquivo HTML será aberto no pop-up quando o usuário clicar no ícone da extensão. Há também a opção “default_icon” para definir o ícone da extensão.

Desenvolvendo o Aplicativo

Agora é hora de criar o aplicativo que será exibido como um pop-up. Ele não tem segredos para quem já trabalha com desenvolvimento web. É um aplicativo web comum.

Primeiro, crie um arquivo que será o ponto de entrada, referenciado na propriedade “default_popup” do manifesto. Neste exemplo, vamos usar o arquivo index.html.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Extensão do Chrome</title>
    <link rel="stylesheet" href="https://wilku.top/how-to-create-a-chrome-extension-from-scratch-in-3-steps/style.css">
</head>
<body>
    <h2>Histórico de Navegação</h2>
    <ul class="list"></ul>
    <script src="./app.js"></script>
</body>
</html>

Incluí um arquivo de estilo para deixar a página adequada a um pop-up, e um arquivo JavaScript para a lógica da extensão.

function searchHistory() {
    chrome.history.search({
        text: '',
        startTime: new Date("2023-10-01").getMilliseconds()
    }, (results) => {
        for (const result of results) {
            let liItem = document.createElement("li")
            let link = document.createElement("a")
            link.innerText = result.title
            link.href = result.url
            liItem.appendChild(link)
            document.querySelector(".list").appendChild(liItem)
        }
    })
}

document.addEventListener("DOMContentLoaded", () => {
    searchHistory()
})

Este script usa a API de Histórico do Chrome para buscar o histórico de navegação e mostrá-lo no pop-up. Quando o usuário clica no ícone da extensão, o evento DOMContentLoaded é disparado e chama a função searchHistory, que contém a lógica principal.

O método de pesquisa na API de histórico recebe como parâmetro obrigatório um texto, que serve como filtro na busca do histórico. Ao passar uma string vazia, o histórico é retornado sem filtros.

O parâmetro startTime também é útil. Ele filtra os resultados do histórico com base no tempo decorrido desde o momento inicial especificado. Por exemplo, ao fornecer uma data de uma semana atrás, você obtém o histórico da última semana. É um parâmetro opcional, e o padrão é as últimas 24 horas.

A API retorna uma função de callback que fornece os resultados em um array. Você pode percorrer este array e criar uma lista a partir dele.

for (const result of results) {
    let liItem = document.createElement("li")
    let link = document.createElement("a")
    link.innerText = result.title
    link.href = result.url
    liItem.appendChild(link)
    document.querySelector(".list").appendChild(liItem)
}

A API de histórico do Chrome requer a permissão “history”, que deve ser definida no nosso arquivo manifest.

{
    "manifest_version": 3,
    "name": "Histórico",
    "description": "Visualizar Histórico de Navegação",
    "version": "0.1",
    "action": {
      "default_popup": "index.html"
    },
    "permissions": [
        "history"
    ]
}

Executando a Extensão

Esta é a etapa mais simples: acessar as configurações de extensões do Chrome. Clique nos três pontos verticais na barra de ações do Chrome, navegue para “Mais Ferramentas” e depois em “Extensões”. Você também pode digitar chrome://extensions/ diretamente na barra de endereços.

Ative o “Modo de desenvolvedor” no canto superior direito, caso não esteja ativo.

Clique em “Carregar sem compactação” e selecione a pasta onde você criou a extensão. Sua extensão aparecerá na lista.

Para executá-la, clique no ícone da extensão na barra de ferramentas do Chrome.

Pronto! Você acaba de criar uma extensão simples para o Chrome. Para mais exemplos, confira os exemplos de extensões do Chrome no repositório oficial do Google.

Para publicar sua extensão na Chrome Web Store, siga este guia e pague uma taxa para registrar sua extensão na loja.

Considerações Finais

Criar uma extensão do Chrome é fácil se você tem conhecimento básico em desenvolvimento web. Basta criar o arquivo manifest e transformar seu aplicativo em uma extensão.

Agora que você sabe como criar uma extensão do Chrome, procure as melhores extensões para desenvolvedores para otimizar ainda mais sua experiência.