b75bd7e154
Permite force-instalar extensiones self-hosted bajo managed policy indicando un update_url propio (p.ej. file:// a un update.xml local que apunta a un .crx). Necesario para cargar extensiones propias (como la de captura de web_proxy) cuando hay una managed policy activa y --load-extension queda desactivado en Chromium 137+. Forma simple '<id>' sigue usando el update_url por defecto.
6.2 KiB
6.2 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 | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| apply_chromium_extension_policy | function | bash | browser | 1.1.0 | impure | apply_chromium_extension_policy [--keep <ext_id[=update_url]>]... [--block <ext_id>]... [--policy-path <path>] [--update-url <url>] [--dry-run] | Escribe de forma idempotente la política managed de Chromium combinando ExtensionInstallForcelist (force-instala la whitelist --keep) y ExtensionInstallBlocklist (bloquea y desinstala la blocklist --block). No usa el comodín "*" blocked, por lo que NO afecta a las extensiones unpacked cargadas con --load-extension. Guarda backup fuera del directorio managed/ (que Chromium lee entero). Requiere sudo para escribir en /etc; en --dry-run no toca el sistema. |
|
false | error_go_core |
|
Escribe el JSON de política en policy-path y emite a stdout un resumen: extensiones forzadas, bloqueadas, ruta, backup creado y recordatorio de reinicio de Chromium. Sale 0 si la política se aplicó o ya estaba vigente. Sale != 0 en error. Requiere al menos un --keep o --block. | false | bash/functions/browser/apply_chromium_extension_policy.sh |
Ejemplo
# Dejar el perfil con solo uBlock Origin Lite: forzar uBlock + bloquear las 3 que estorban
# al scraping (Dark Reader, NoScript, OneTab). Proyecto web_scraping, regla 9.
source bash/functions/browser/apply_chromium_extension_policy.sh
apply_chromium_extension_policy \
--keep ddkjiahejlhfcafbddmgiahcphecmpfh \
--block eimadpbcbfnmbkopoojfekhnkhdbieeh \
--block doojmbjmlfjjnbmnoijecmcbfeoakpjm \
--block chphlpgkkbolifaimnlloiipkdnihall
# Previsualizar sin tocar el sistema (sin sudo)
apply_chromium_extension_policy --keep ddkjiahejlhfcafbddmgiahcphecmpfh --dry-run
# Ejecutar como root para el sudo no interactivo de este equipo
pass show claude/sudo | sudo -S bash bash/functions/browser/apply_chromium_extension_policy.sh \
--keep ddkjiahejlhfcafbddmgiahcphecmpfh --block eimadpbcbfnmbkopoojfekhnkhdbieeh
La policy por sí sola evita la reinstalación pero NO desinstala lo ya presente en un perfil concreto:
combínala con clean_chrome_profile_extensions_bash_browser (con Chromium cerrado) para purgar del
disco las extensiones ya instaladas.
Cuando usarla
Al preparar un PC nuevo o cambiar qué extensiones de Chrome Web Store deben estar (o no estar) en
cualquier perfil de Chromium del equipo. Reemplaza el paso manual de editar el JSON de policy con
sudo. --keep fuerza y fija las imprescindibles; --block elimina las molestas sin tocar el resto.
Gotchas
- El backup NUNCA va dentro de
managed/(lo gestiona la función, pero es la lección clave): Chromium lee todos los archivos del directoriopolicies/managed/sin filtrar por extensión de nombre. Unextensions.json.bak.YYYYMMDDdentro demanaged/se mergea con la policy efectiva y reinyecta las extensiones del backup (se ven comolocation=7external_policy_download y vuelven aunque las borres). Por eso la función guarda los backups enpolicies/policy-backups/, fuera demanaged/. Si encuentras backups antiguos dentro demanaged/, muévelos fuera. - No usa el comodín
"*": blocked: ese modo desinstala todo lo no-whitelist pero también bloquea las extensiones unpacked (--load-extension), rompiendo cosas como la extensión de captura deweb_proxycon el error "Loading of unpacked extensions is disabled by the administrator". Esta función bloquea solo los IDs de--block. --load-extensiony managed policy son incompatibles en Chromium 137+: con CUALQUIER managed policy presente, Chromium desactiva--load-extension("disabled by the administrator"). Para cargar una extensión local junto a una managed policy hay que empaquetarla (.crx + update_url) o usar--proxy-serverdirecto en el caso deweb_proxy.- Requiere sudo para escribir en
/etc/chromium/policies/managed/. En este equipo:pass show claude/sudo | sudo -S <cmd>. - Chrome cachea la política en memoria: cerrar TODOS los Chromium (
pkill -9 chromium) y relanzar, ochrome://policy→ "Reload policies". - Idempotente: si el archivo ya tiene el mismo contenido, no-op y sale 0.
- Referencia del sistema completo:
projects/web_scraping/CHROMIUM_SYSTEM.md.
Capability growth log
- v1.2.0 (2026-06-05) —
--keepacepta<id>=<update_url>para force-instalar extensiones self-hosted (p.ej. un.crxlocal víafile://a unupdate.xml), que es la forma de cargar una extensión propia cuando hay managed policy y--load-extensionestá desactivado. - v1.1.0 (2026-06-05) — añade
--block(ExtensionInstallBlocklist); reemplaza el modoExtensionSettings "*": blocked(rompía extensiones unpacked) por blocklist específica; mueve los backups fuera demanaged/(Chromium lee todo el directorio y un.bakahí reinyectaba extensiones). - v1.0.0 (2026-06-05) — baseline: ExtensionInstallForcelist con whitelist
--keep.