Clear handlers consumed by eager initialization before DOMContentLoaded replay
Los mantenedores suelen responder en 8 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 88/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, typescript
- Área
- frontend
Línea de trabajo
Empieza en src/init.ts y compara el consumo inmediato de window._oca_viewer_handlers con el puente DOMContentLoaded en src/views/Viewer.vue. Verifica las pruebas de código fuente existentes para el registro inmediato, los handlers añadidos posteriormente a la cola, los Maps ausentes, los componentes no válidos y los IDs duplicados. La tarea estará terminada cuando las entradas consumidas no se reproduzcan de nuevo, las entradas posteriores sigan funcionando y los registros realmente no válidos o duplicados sigan siendo rechazados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Repository: https://github.com/nextcloud/viewer
src/init.ts eagerly registers handlers from window._oca_viewer_handlers, but leaves the Map populated. The DOMContentLoaded listener in src/views/Viewer.vue then registers those same handlers again. ViewerService rejects the duplicate IDs and logs errors during normal navigation.
Verified against the files in the Nextcloud v33.0.6 and v33.0.8 tags and stable33 revision c83b93333a27ca12f6f9c120e6e3079720716b1c. This concerns handlers present before eager initialization; it does not claim to cover every later registration sequence.
Reproduction:
- Put a valid viewer handler in the global Map before
viewer-initexecutes. - Execute eager initialization: the handler becomes available synchronously.
- Fire the existing
DOMContentLoadedbridge: the same ID is registered again and rejected.
Proposed change in src/init.ts:
if (window._oca_viewer_handlers) {
window._oca_viewer_handlers.forEach(handler => window.OCA.Viewer.registerHandler(handler))
+ window._oca_viewer_handlers.clear()
}
Clear the existing Map after consuming it, preserving its identity and accepting entries queued later. Genuine duplicate or invalid registrations must continue to be rejected.
Validation: extracted source tests cover eager registration, later queued handlers, missing Map, invalid components and genuine duplicate IDs. A Chromium navigation with this change plus independent Text/Theming corrections completed without the prior console errors. That was a local response-substitution comparison, not a rebuilt release test.
Related: https://github.com/nextcloud/viewer/pull/3068 discusses the eager-registration motivation; that PR is closed and unmerged as checked on 2026-09-07. This report addresses replay of already-consumed entries while preserving synchronous initialization.
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 122
- Forks
- 75
- Merge medio
- 8 d 13 h
- PR fusionados (30 d)
- 24
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/viewer
-
[Bug] Closing a file preview calls a missing Files Sidebar methodQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto3. to review bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 8 días
-
0. Needs triage bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 8 días
-
[Bug]: Image editor silently writes PNG data into .JPG files (uppercase extension breaks canvas.toBlob MIME)Quizá libre de nuevo @aniruddh18122006-cyber la tomó hace 15 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nextcloud/viewer#3424 · 3 comentarios ·
Los mantenedores suelen responder en 8 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
nextcloud/viewer#3196 · 2 comentarios ·
Los mantenedores suelen responder en 8 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 8 días
Todos los issues de nextcloud/viewer
Issues similares
-
help wanted kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
meshery/meshery.io#3112 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
refined-github/refined-github#10323 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
area:docs type:chore
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
bulkhead-labs/tailsuite#31 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
GTBitsOfGood/juno-dashboard#101 ·