Feedback #22: composer de Gmail en blanco; la consola solo muestra el apps-picker de Google bloqueado #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reportado desde el panel (reason: bugs) el 2026-11-04 15:48, tras desinstalar la 0.1.1. Texto íntegro (el formulario lo corta):
Qué es ese error
csp.withgoogle.com/csp/apps-picker/v2es el endpoint de configuración del apps picker de Google ycs.jses su content script, no el nuestro: el de Carbon Copy compila acontent-scripts/gmail.jsy no aparece ni una vez en el volcado.Diagnóstico
ERR_BLOCKED_BY_CLIENTlo emite el navegador cuando un bloqueador (uBlock, AdGuard, Brave Shields) o una extensión condeclarativeNetRequestcancela la petición.manifest.jsonconstruido conpermissions: ["sidePanel","storage"], sinhost_permissions, sindeclarative_net_requesty sinweb_accessible_resources. En el repo no hay ninguna regla de red.Lo que no queda descartado
El composer en blanco podría ser coste del observer (la 0.1.1 ya lo acota a mutaciones dentro de diálogos) o algo ajeno a la extensión. Discriminante pendiente: ¿ocurre también con Carbon Copy desinstalada?
Criterio de cierre
Pausar en Gmail, y adjuntar un perfil de rendimiento de la pestaña (DevTools → Performance, 10 s abriendo un compose).Feedback #22
Relacionado con el síntoma reportado en el chat: "si ya están puestas las cuentas, ¿para qué abrir el panel de contactos?".
La 0.1.2 cambia la inserción: la dirección se pega (evento
pasteconDataTransfer) en vez de teclearse. Gmail convierte una dirección pegada en chip sin abrir el autocompletado de contactos, y se elimina el caso en que una sugerencia se quedaba con el Enter y comprometía otra cuenta.Verificado con el bundle real en Chromium (DOM con forma de Gmail, manejador de
pastedelegado que crea el chip): un solopastepor dirección, chip creado, campo vacío, sin repetición en la pasada siguiente.Sigue pendiente el discriminante del composer en blanco: ¿ocurre con la extensión desinstalada?
Feedback #23:
Uncaught TypeError: Cannot read properties of null (reading 'focus')enm=cm(módulo de compose de Gmail), sin un solo frame decontent-scripts/gmail.js.Ese
focus()sobre null es de Gmail, pero la hipótesis es que lo provoca nuestra inserción: al revelar Cc/Bcc con un clic o al escribir mientras el usuario aún tiene el foco en el campo de destinatarios, Gmail intenta enfocar un nodo que ya no existe.La 0.1.3 cambia tres cosas:
userIsAddressing(): no se toca el composer si el foco está en un campo de destinatarios o si hay una dirección a medio escribir (input.valueno vacío). Antes elinput.valuecontaba como destinatario confirmado y disparaba la regla a media palabra.currentRecipients()solo cuenta chips yaria-label, nunca texto a medio escribir.Verificado con el bundle real en Chromium: pasada 1 revela Cc y pega, pasada 2 revela Cco y pega, no repite; con texto en el campo de destinatarios no se crea ni el campo Cc.
Sigue pendiente el discriminante original: el compositor en blanco con la extensión desinstalada.
Captura de DevTools del usuario: la consola muestra
main_gmail_auto_bcc,fn_get_state_from_local_storage: g_do_not_show_gmail_auto_bcc_splash_screen,fn_apply_index_response: rules=4 is_user_paid=false,fn_get_email_suggestions,calling update_cc_and_bccyThreadRowViewDriver never became ready.Eso no es Carbon Copy:
grepde esas cadenas ensrc publicdevuelve 0, el bundle no las contiene y el fichero de la traza escontent.js, nocontent-scripts/gmail.js.Son los logs de Auto BCC for Gmail (cloudHQ), la extensión de referencia, aún instalada con 4 reglas. Es ella la que abre el panel de contactos (
fn_get_email_suggestions), llama aupdate_cc_and_bccy dejaThreadRowViewDriver never became ready(compositor en blanco).Siguiente paso: desinstalar esa extensión y probar Carbon Copy sola. Si sin ninguna de las dos el compositor sigue en blanco, el issue se cierra como no atribuible.
Diagnóstico final (vídeo + captura de consola del 5-nov)
El log repetía
leidos ... -> 0 Cc y 0 Cco pendientescon la fila Cc vacía. La lectura de "destinatarios presentes" contaba:div[name=cc|bcc]lo que hubo en borradores anteriores; con chips borrados el valor sigue ahí, y la regla creía tener sus direcciones ya colocadas → no añadía nada. De ahí el "funciona a veces": borrador nuevo sin estado residual funcionaba, borrador reutilizado se quedaba bloqueado.aria-labela toda la ventana cogía-alicante@lowcostparking.esdel selector De.tania@pradaautomocion.com, sin resolver) y basura de autocompletado a medias dentro del input (javi LCP maria.prada@..., la fila del final del vídeo).Fix 0.2.2 (
588fa6d):div[name=to|cc|bcc](atributos y su nombre accesible) y el valor de inputs visibles. Inputs ocultos y alias del De quedan fuera.paste+ clipboard): Gmail convierte una dirección pegada en chip sin abrir autocompletado; Enter queda solo como fallback, y una fila con texto a medias de una escritura anterior se limpia antes de pegar.Verificado: 44 tests jsdom (los 4 nuevos codifican fantasmas/alias/basura/paste) + bundle real en Chromium con dos arneses: (a) fila Cc oculta con valores fantasma + alias del De → los 4 chips entran en <2,5 s sin tocar Para; (b) fila Cc abierta con la basura del vídeo → se limpia y entran los 2 que faltaban; cero errores y cero repeticiones.
v0.2.2 publicada (
validaterun 29 verde, release con asset,/updates/carbon-copy.xmlya sirve 0.2.2). El issue queda abierto hasta la confirmación de JJ en Gmail real.