Extensão Chrome (MV3) com popup que envia PING ao background e exibe o horário retornado; content script que destaca links no domínio permitido. Inclui testes E2E com Playwright, execução containerizada via Docker/Compose e pipeline automatizado no GitHub Actions que gera artefatos de distribuição.
- Manifest V3 (Chrome 114+)
- Popup (
action.default_popup) com UI simples - Background com service worker em
background.service-worker - Content script (ativado para
https://developer.chrome.com/*) - Princípio do menor privilégio: usa
storagee host restrito - Teste E2E com Playwright (relatórios HTML/JSON, screenshots e vídeos em falhas)
- Execução em Docker (Playwright container)
- CI/CD (GitHub Actions): build, testes (nativo e Docker) e artefatos (ZIP da extensão, relatório Playwright, resultados JSON,
dist/)
.
├─ src/
│ ├─ popup/
│ │ ├─ popup.html
│ │ ├─ popup.js
│ │ └─ popup.css
│ ├─ content/
│ │ └─ content.js
│ ├─ background/
│ │ └─ service-worker.js
│ ├─ options/
│ │ └─ options.html
│ └─ styles/
│ └─ global.css
├─ icons/
│ ├─ icon16.png
│ ├─ icon32.png
│ ├─ icon48.png
│ └─ icon128.png
├─ docs/ # Página simples p/ GitHub Pages (opcional)
│ └─ index.html
├─ tests/ # Playwright
│ ├─ extension.spec.ts
│ └─ playwright.config.ts
├─ scripts/
│ └─ build-extension.mjs
├─ .github/workflows/
│ └─ ci.yml
├─ dist/ # Gerado no build
├─ Dockerfile
├─ docker-compose.yml
├─ package.json
├─ manifest.json
├─ README.md
└─ LICENSE
- Node.js 18+
- (Opcional) Docker e Docker Compose
- Chrome/Chromium (para desenvolvimento local)
# Instalar dependências
npm install
# Instalar navegadores do Playwright (se necessário)
npx playwright install chromium
# Build da extensão
npm run build
# Carregar no Chrome:
# 1) Acesse chrome://extensions
# 2) Ative "Developer mode"
# 3) Clique em "Load unpacked" e selecione a pasta dist/# Rodar todos os testes
npm test
# Apenas E2E
npm run test:e2e
# UI mode
npx playwright test --ui
# Ver relatório
npm run report
# ou
npx playwright show-report# Build da imagem
docker compose build
# Executar testes no container
docker compose run --rm e2e
# Ver relatórios (montados via volume)
npx playwright show-reportPipeline em .github/workflows/ci.yml:
-
Testes nativos e em Docker
-
Artefatos gerados automaticamente:
- extension-zip – pacote pronto para instalação no Chrome
- playwright-report – relatório HTML com logs e screenshots
- test-results – resultados em JSON
- extension-dist – build completo da extensão
-
Cache de dependências NPM para builds mais rápidos
{
"build": "Build para a pasta dist/",
"test:e2e": "Testes E2E com Playwright",
"test": "Build + testes",
"ci": "Pipeline local (instalação + testes)",
"dev": "Testes com navegador visível",
"report": "Abre o relatório do Playwright"
}- Ative em Settings → Pages: branch
main, pasta/docs - A landing page simples fica em
docs/index.html - Opcional: vincular uma Release com o
.zipgerado pela Action
- Manifest Version: 3
- Permissions:
storage - Content Scripts:
matches: ["https://developer.chrome.com/*"] - Background: service worker
- CSP padrão (scripts locais, sem
eval)
# Rodar com navegador visível
npm run dev
# Filtrar por teste específico
npx playwright test --grep "popup" --headed --debug
# Gerar trace de todos os testes
npx playwright test --trace onMIT — veja o arquivo LICENSE.
Construído com ❤️ para o Bootcamp II — integrando desenvolvimento de extensões Chrome com testes automatizados, containerização e entrega contínua.
-
Faça um fork do repositório
-
Crie uma feature branch:
git checkout -b minha-feature
-
Faça suas alterações
-
Rode os testes:
npm test -
Envie um pull request 🚀
Para dúvidas e problemas:
- Verifique os Issues no GitHub
- Consulte a documentação do Playwright
- Veja o guia oficial de Extensões Chrome MV3