沉浸式翻译 provoca que la barra de progreso de vídeos en X/Twitter deje de funcionar: causa raíz, hotfix y PR

En el Chrome de esta máquina investigué un conflicto real de interacción relacionado con Immersive Translate:

Síntomas:

  • Tras activar Immersive Translate, la barra de progreso inferior del reproductor de vídeo de X/Twitter no se puede hacer clic ni arrastrar
  • A nivel de sensación parece que el reproductor está roto, pero en realidad hay una capa adicional de subtítulos superpuesta por encima de la página que se traga los eventos de clic

Hallazgos:

  • Extensión: Immersive Translate
  • ID de la extensión: bpoadfkcbjbfhfodiogcnhhhpibjhbnh
  • Directorio actualmente en uso en esta máquina: 1.26.6_1
  • La causa raíz está en el attach_subtitle.css inyectado por la extensión
  • En él, .imt-caption-window usa pointer-events: auto;; en X/Twitter llega a cubrir la zona de controles inferior, haciendo que el clic de seek en la barra de progreso sea interceptado

Enfoque de la corrección:

  • Cambiar .imt-caption-window a pointer-events: none;
  • A la vez, mantener .imt-captions-text y .imt-cue como pointer-events: auto;
  • Así, el área en blanco de los subtítulos deja de interceptar clics, y el texto del subtítulo en sí sigue siendo interactivo

Acciones en esta máquina:

  • Ya se completó un parche en caliente de los archivos de la extensión dentro del directorio de instalación actual de Chrome
  • Se forzó el reinicio de Chrome para que la instancia en ejecución volviera a cargar los archivos de la extensión ya corregidos
  • También se organizó el parche en un repositorio independiente, para evitar distribuir directamente los artefactos compilados de la extensión

PR:

El repositorio contiene:

  • Script de parche reutilizable
  • Script para forzar el reinicio de Chrome
  • Explicación en chino del problema y de la corrección

Más adelante, si una actualización de la extensión sobrescribe content_script.js, basta con volver a ejecutar el script de parche.