SDD 26 §7.bis: el camino de native messaging existe, con su sonda y su control
Antes de escribir el crate del host en tawasuyu había que saber si el mecanismo funciona en nuestro build. Funciona, y el cuadro deja las cuatro cosas que hacen falta para escribirlo: dónde va el manifiesto (/usr/lib/mozilla, no el appdir), qué instala de verdad la extensión (el escaneo de distribution/extensions, NO el install_url de la política), que el host tiene que ser un proceso largo, y que el único error que nombra la causa es el del puerto de connectNative. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NNFzrqFBEt6W7maGJKf2Xs
This commit is contained in:
@@ -816,6 +816,30 @@ proyecto nuevo. El binario vive en tawasuyu (es suite, no build system); `atuq`
|
||||
dep y le deja el manifiesto de native messaging en su sitio. **El nombre del crate se decide en
|
||||
tawasuyu y con su regla 10 puesta** — acá no se bautiza nada de allá.
|
||||
|
||||
### 7.bis El camino EXISTE, y tres cosas que no eran obvias (2026-09-07)
|
||||
|
||||
Antes de escribir un crate contra un mecanismo hay que saber si el mecanismo funciona en NUESTRO
|
||||
build —propio, rebrandeado, con `MOZ_REQUIRE_SIGNING` vacío—, así que se puso una **sonda**:
|
||||
extensión de diez líneas con permiso `nativeMessaging` y un host de tres que contesta `{"ok":true}`.
|
||||
Vive en `scripts/test-atuq-nativo.py`, con control negativo:
|
||||
|
||||
positivo MENSAJE {"ok":true}
|
||||
control DESCONECTADO No such native application puente_atuq
|
||||
|
||||
El control no sólo falla: **nombra la causa**, que es lo que confirma que la ruta del manifiesto es
|
||||
la que se probó. Lo que hay que saber para escribir el host:
|
||||
|
||||
| Qué | Medido |
|
||||
|---|---|
|
||||
| Dónde va el manifiesto | **`/usr/lib/mozilla/native-messaging-hosts/`**, NO el appdir. Sale de `XRESysNativeManifests`, un `/usr/lib/mozilla` compilado; el rebranding a `atuq` no lo mueve |
|
||||
| Cómo se instala la extensión | por el **escaneo de `distribution/extensions/`**. `ExtensionSettings.install_url` con `file://` no instala nada, ni con `force_installed` ni con el XPI dentro del appdir, y **sin una línea de log** |
|
||||
| Forma del host | un proceso **largo**: si escribe la respuesta y sale, Gecko cierra el puerto sin entregarla — `onDisconnect` «sin error y sin mensaje», el peor informe posible |
|
||||
| Con qué diagnosticar | el error del puerto de `connectNative`. `sendNativeMessage` devuelve «An unexpected error occurred» para todo y no distingue nada |
|
||||
|
||||
⚠ La tercera fila del cuadro corrige una lectura fácil de `policies.json`: los dos mecanismos
|
||||
apuntan a los mismos ficheros y se tapan uno al otro, así que la política PARECE ser la que instala.
|
||||
Fija y configura; instalar, no.
|
||||
|
||||
## 8. Plan, por unidades de trabajo
|
||||
|
||||
Cada una cierra sola, se commitea y se pushea. El orden no es preferencia: cada una destraba a la
|
||||
@@ -834,7 +858,7 @@ siguiente.
|
||||
| 4.e | **v0.3: página de inicio y pestaña nueva** por extensión de sistema; exigió `MOZ_REQUIRE_SIGNING` vacío | y con eso queda destrabada la unidad 6 (`sct`) | rebuild de firefox |
|
||||
| 4.f | **Los códecs, medidos** ✅ 2026-09-07 — H.264+AAC, VP9+Opus, AV1, MP3 y FLAC reproducen; arreglado el `LD_LIBRARY_PATH` que dejaba al RDD sin ffvpx (AV1 muerto en silencio) y nacido `scripts/test-atuq-codecs.sh` con control negativo | «se ve el vídeo», que ningún auditor de ELF podía responder | — |
|
||||
| 4.c | `MOZ_BUILD_DATE` determinista ✅ — `BuildID=19700101000001`, con guardián en install y **`why-differs` 56/56 sobre dos builds reales** | el invariante de reproducibilidad | — |
|
||||
| 5 | Host de native messaging (tawasuyu) | los verbos del §6 | 4 |
|
||||
| 5 | Host de native messaging (tawasuyu) — **camino COMPROBADO 2026-09-07** (§7.bis): sonda extensión↔proceso nativo con control negativo, y las tres trampas medidas (dónde va el manifiesto, qué instala de verdad, y que el host tiene que ser un proceso largo) | los verbos del §6 | 4 |
|
||||
| 6 | `sct` v1 (extensión + testigo) | el diferenciador que nadie tiene | 5 |
|
||||
| 7 | Descargas al CAS | 6.2, y alimenta 6.9 | 5 |
|
||||
| 8 | Archivo + RAG | 6.3 | 5, 7 |
|
||||
|
||||
Reference in New Issue
Block a user