← Proyectos
Extensión

CookieNuke

Extensión de Chrome que borra las cookies y los datos de un sitio en cuanto cierras su última pestaña o te vas de él. Puedes elegir los sitios que se limpian o limpiarlo todo menos los que protejas. Pensada para ordenadores que no son tuyos, donde no quieres dejar sesiones abiertas, y para que las webs y los algoritmos te sigan menos en el tuyo. Con limpieza manual de un clic o con Alt+Shift+K, periodo de gracia, cookies que se conservan por sitio y contador en el icono. Todo local, sin telemetría.

El popup de CookieNuke sobre un sitio vigilado, con la limpieza manual por tipo de almacenamiento, el botón Borrar Todo y las limpiezas recientes
La lista de vigilancia en las opciones, con el formulario para añadir un dominio y seis sitios, uno de ellos en pausaLa pantalla para activar el modo protección, con los sitios que tienen cookies, cuántas tiene cada uno y los que se van a proteger marcadosLos ajustes avanzados con el retraso antes de limpiar, el contador de cookies en el icono y el botón de los atajos de teclado
tipos de datos que borra
6
tipos de datos que borra
idiomas
14
idiomas
tests (Vitest)
783
tests (Vitest)
servidores y telemetría
0
servidores y telemetría

Qué hace

  • Limpia al irte. Cuando cierras la última pestaña de un sitio o navegas a otro, CookieNuke borra sus cookies y sus datos: almacenamiento local y de sesión, IndexedDB, service workers y caché.
  • Dos formas de elegir. O la lista de los sitios que quieres limpiar, o al revés: limpiar todo y proteger los sitios en los que quieres seguir con la sesión iniciada. Al activar este segundo modo no se borra nada, y te enseña los sitios que tienen cookies para que marques cuáles proteger.
  • Limpiar ahora. Un botón en el popup, el menú del clic derecho o Alt+Shift+K borran el sitio que tienes delante en ese momento. Es lo que uso antes de levantarme de un ordenador que no es mío.
  • No te cierra lo que estás usando. Si el sitio sigue abierto en otra pestaña, espera. Y las cookies de dominio padre, como .google.com, se quedan si las necesita otro sitio abierto o protegido.
  • Periodo de gracia opcional de 30 segundos a 15 minutos, cookies que se conservan por sitio (como el aviso de cookies o un wp_*), limpiezas programadas, reglas por ruta, contador de cookies en el icono, pausa global o por sitio e importación y exportación en JSON.
  • Todo en tu navegador. La configuración se guarda en chrome.storage.local. Ni cuentas, ni servidores, ni telemetría. En 14 idiomas.

Cómo está hecho

Escucha eventos, no sondea

No hay content scripts ni temporizadores que miren las pestañas cada cierto tiempo. El service worker reacciona a tres eventos: webNavigation.onBeforeNavigate (te vas a otro sitio), webNavigation.onCommitted (llegas a uno) y tabs.onRemoved (cierras la pestaña). Lo que sabe de cada pestaña lo guarda en storage.session, para no olvidarlo cuando Chrome duerme el worker.

Un objetivo por sitio

Cada vez que hay que decidir si se limpia, resolveCleanupTarget calcula el objetivo con el modo y las listas de ese momento: una entrada de la lista de vigilancia, un sitio suelto (en el modo protección) o nada. localhost, las IP y los nombres sin punto nunca son objetivo.

Cookies con la API, el resto en la página

Las cookies se borran con chrome.cookies, también las de todas las rutas y las particionadas (CHIPS). El resto se borra con un script inyectado en la pestaña o, si la pestaña ya no existe, con chrome.browsingData filtrado por origen, que nunca se usa en incógnito.

Problemas que resolví

  • Limpiezas que no pasaban. El estado de las pestañas vivía en memoria, y Chrome para el service worker tras unos 30 segundos sin actividad. Si cerrabas la pestaña después, no sabía qué sitio era. Ahora está en storage.session y se reconstruye al arrancar.
  • Cerrarte la sesión en la otra pestaña. Cerrar una de dos pestañas de un sitio borraba las cookies que estaba usando la otra. Ahora la limpieza espera a la última, solo contando pestañas del mismo tipo de ventana.
  • Cerrar una pestaña de incógnito borraba datos normales. browsingData no distingue el almacén de incógnito, así que nunca se usa para él.
  • Cookies que sobrevivían. Dos cookies con el mismo nombre en rutas distintas contaban como una, y las particionadas ni se consultaban.
  • .google.com y Gmail. En el modo protección, cerrar www.google.com habría borrado las cookies de .google.com que también usa mail.google.com, aunque estuviera protegido. Antes de publicar la 2.0, la limpieza aprendió a respetar las cookies de dominio padre que cubren un sitio protegido o abierto.

Stack

WXTManifest V3React 19TypeScriptTailwind CSS 4Chrome CookiesChrome Browsing DataChrome ScriptingChrome AlarmsStorage SessionVitest