Extensão Chrome (Manifest V3) para realizar auto-refresh na aba ativa com intervalo configurável.
- Renomeado para Auto Refresh Master D7
- Presets padronizados no Popup e na Options Page (30 seg, 1/2/5/10/20/30/60 min)
- Manter sessão (Keep-Alive) (repurpose do antigo "Soft Reload")
- Agora pode ser alternado no popup e na options page
- Padrão para novos usuários: ativado
- Implementação:
fetch(window.location.href)viachrome.scripting.executeScript(fallback para reload em páginas restritas)
- Ícones do toolbar via PNG (definidos no
manifest.json), removendo lógica de geração dinâmica por canvas
O controle principal fica no popup (UI estilo “Auto Refresh Page”):
- [Intervalo] Campo grande em segundos
- [Play/Pause] Inicia/para o auto-refresh na aba atual
- [Presets]
- 30 seg
- 1 min
- 2 min
- 5 min
- 10 min
- 20 min
- 30 min
- 60 min
- [Manter sessão] "Manter sessão (sem recarregar)" (keep-alive) — envia um
fetchsilencioso para manter a sessão ativa sem perder dados do formulário - [Atualizar agora] Força um refresh imediato
- Manifest: V3
- Service Worker: agenda e executa recarregamentos via
chrome.alarms.- Com Manter sessão ativo: injeta um
fetch(window.location.href)viachrome.scripting.executeScript(fallback para reload quando não permitido) - Caso contrário: executa reload padrão via
chrome.tabs.reload
- Com Manter sessão ativo: injeta um
- Persistência:
chrome.storage.local(config por aba + opções globais)
- O popup envia mensagens para o service worker (
chrome.runtime.sendMessage). - O service worker salva a configuração por aba e cria/atualiza um alarm.
- Quando o alarm dispara, o service worker recarrega a aba (ou todas as abas da janela, dependendo das opções).
- Ao fechar uma aba, a configuração associada é removida.
Dentro de autorefreshmaster/:
manifest.json- Define Manifest V3, permissões, action/popup, options page e service worker.
service-worker.js- Lógica de agendamento (
chrome.alarms) e execução do reload. - Handlers de mensagens do popup/options.
- Lógica de agendamento (
popup.html/popup.css/popup.js- UI e lógica do controle do auto-refresh da aba ativa.
options.html/options.css/options.js- Página de opções com layout avançado (toggles persistidos).
assets/icons/icon16.png,icon48.png,icon128.png(ícone Font Awesomearrows-rotate/ f021)
storage: salvar configurações por aba e opções globaisalarms: agendamento do auto-refreshtabs: identificar/recarregar abas, obter título/URL e recarregar em lote quando necessárioscripting: injetar o keep-alive (fetch(window.location.href)) quando Manter sessão estiver ativobrowsingData: limpar cache (opção avançada)notifications: mostrar notificação (opção avançada)
- Abra
chrome://extensions - Ative Developer mode
- Clique em Load unpacked
- Selecione a pasta:
c:\Temps\Minhas Extensoes Chrome\Auto Refresh Master D7\autorefreshmaster
Para aplicar mudanças no código:
- Volte em
chrome://extensionse clique em Reload na extensão.
- Abra qualquer site comum (
http:///https://). - Clique no ícone da extensão para abrir o popup.
- Selecione um preset ou digite o intervalo.
- Clique em Play para iniciar.
- Clique em Pause para parar.
O popup também exibe:
- Status (Ativo/Parado)
- Próxima atualização (horário estimado)
A options page existe para controlar e persistir opções globais (com UI recolhível).
Abrir:
chrome://extensions→ Details → Extension options
- Manter sessão (sem recarregar a página): mantém a sessão ativa sem recarregar a página (evita perda de dados em formulários).
- Padrão: ativado para novos usuários.
- Também pode ser alternado direto no popup.
- Intervalos de tempo aleatórios: aplica jitter ao agendamento (± ~30% do intervalo)
- Limpar cache: executa
chrome.browsingData.removeCache({ since: 0 })antes do reload - Mostrar notificação: dispara uma notificação a cada reload
- Atualizar todas as guias: recarrega todas as abas da mesma janela do tab alvo
- Todas as páginas
- Exibir contador longo
- Mostrar notificação (qualquer alteração)
- O Chrome não permite controlar/recarregar páginas internas como
chrome://...e a Chrome Web Store. - O comportamento de reload pode falhar em algumas páginas especiais/restritas; nesses casos o auto-refresh é desativado para aquela aba.
- Projeto “vanilla” (sem bundler): basta editar os arquivos.
- Recarregue a extensão em
chrome://extensionsapós mudanças.