Files
fn_registry/bash/functions/pipelines/reset_chrome_profiles.md
T
Egutierrez ae841ceedb feat(browser): CRUD de perfiles Chromium + pipeline reset_chrome_profiles
Cinco funciones nuevas (dominio browser, grupo navegator) que cierran los gaps
de gestión de perfiles, más un pipeline que las orquesta:

- backup_chrome_bookmarks / restore_chrome_bookmarks: backup y restore de los
  archivos Bookmarks (copia byte a byte verbatim para preservar el checksum
  interno; en Chromium 148 los bookmarks no están bajo el super_mac de Secure
  Preferences). Guard por user-data-dir (no global).
- delete_chrome_profile: borra la carpeta del perfil + limpia su entrada en
  Local State (info_cache, profiles_order, last_active_profiles, last_used).
- create_chrome_profile: lanza chromium headless (vía systemd-run) para que la
  managed policy instale la whitelist de extensiones, y asigna el nombre legible
  en Local State. Mata todo el árbol de chromium del udd antes de editar Local
  State (los hijos zygote/gpu no repiten --user-data-dir pero referencian la ruta).
- list_chrome_profile_extensions (Go): lista extensiones de un perfil con
  ID/name/version/location/enabled/fromPolicy. 7 unit tests.
- reset_chrome_profiles (pipeline): backup -> cerrar chromium -> delete -> create
  -> restore -> verify. Destructivo (--yes), --dry-run seguro.

Validado: unit tests Go verdes, backup/restore byte-idéntico, delete limpia Local
State, create instala la forcelist global (uBlock + web_proxy) en perfiles nuevos.
2026-06-06 01:24:21 +02:00

4.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
reset_chrome_profiles pipeline bash pipelines 1.0.0 impure reset_chrome_profiles --user-data-dir <dir> [--profile "<dir>=<legible>"]... [--backup-dir <dir>] [--base-port 9250] [--keep <ext_id>]... [--dry-run] [--yes] Pipeline de reset destructivo de perfiles de Chromium: hace backup de los bookmarks de todos los perfiles, cierra el chromium que use ese user-data-dir, borra los perfiles (carpeta + Local State), los recrea (la managed policy reinstala la whitelist de extensiones uBlock + web_proxy), restaura los bookmarks y verifica que cada perfil quedó solo con la whitelist. DESTRUCTIVO: se pierden cookies, logins, historial y contraseñas; solo los bookmarks se preservan. Requiere --yes en modo real.
launcher
navegator
chromium
pipeline
profile
reset
backup_chrome_bookmarks_bash_browser
delete_chrome_profile_bash_browser
create_chrome_profile_bash_browser
restore_chrome_bookmarks_bash_browser
false error_go_core
name desc
--user-data-dir <dir> Raíz del user-data-dir de Chromium cuyos perfiles se resetean (ej. ~/.config/chromium-cdp).
name desc
--profile <dir=legible> Perfil a resetear, formato carpeta=nombre-legible (repetible). Default los 4 reales: Default=Work, Personal=Personal, 'Profile 1'=Aurgi, Automation=Automation.
name desc
--backup-dir <dir> Directorio donde se guardan los backups de bookmarks. Default ~/.local/share/web_scraping/bookmarks-backups.
name desc
--base-port <N> Puerto CDP base para recrear perfiles (cada perfil usa base+i). Default 9250.
name desc
--keep <ext_id> ID de extensión esperada tras el reset (repetible). Default uBlock Origin Lite + web_proxy toggle. Solo se usa en la verificación final.
name desc
--dry-run Previsualiza los 6 pasos sin tocar el sistema.
name desc
--yes Confirma la operación destructiva (obligatorio en modo real).
Ejecuta backup → cerrar chromium → delete → create → restore → verify. Emite el progreso de cada paso y un resumen. Sale 0 si todo OK y cada perfil quedó solo con la whitelist; != 0 si falla algún paso o la verificación detecta extensiones fuera de la whitelist. false
bash/functions/pipelines/reset_chrome_profiles.sh

Ejemplo

# Previsualizar el reset de los 4 perfiles del chromium diario (no toca nada)
fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" --dry-run

# Reset real (destructivo): backup bookmarks, borrar+recrear los 4 perfiles, restaurar bookmarks
fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" --yes

# Reset de un solo perfil con nombre legible
fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" \
    --profile "Automation=Automation" --yes

Cuando usarla

Cuando quieras dejar los perfiles de un Chromium limpios desde cero conservando solo la whitelist de extensiones (uBlock + la de captura del web_proxy) y preservando los bookmarks, pero descartando todo el resto del estado (cookies, logins, historial). Útil para volver a un estado conocido de scraping/captura o para limpiar perfiles contaminados. La managed policy de /etc ya fuerza la whitelist, así que los perfiles recreados nacen correctos.

Gotchas

  • DESTRUCTIVO: cookies, logins, historial y contraseñas de los perfiles se pierden de forma irreversible. Solo los bookmarks se preservan (backup + restore byte a byte). Por eso requiere --yes en modo real.
  • Cierra el chromium del user-data-dir indicado (pkill por --user-data-dir), no cualquier chromium. Si tienes otro chromium con otro user-data-dir, no se toca.
  • Depende de la managed policy: los perfiles recreados solo tendrán uBlock + web_proxy si la policy de /etc/chromium/policies/managed/extensions.json las fuerza (ver apply_chromium_extension_policy_bash_browser). Si la policy no está, los perfiles nacen sin extensiones.
  • La verificación final comprueba las carpetas en <profile>/Extensions/; para una auditoría detallada (nombre, versión, enabled, fromPolicy) usar list_chrome_profile_extensions_go_browser.
  • Lanzar chromium desde el Bash tool da exit-144; create_chrome_profile usa systemd-run --user internamente para evitarlo.