Abrir con el sistema
La operación que resuelve la mitad de los casos sin ejecutar nada: pedirle al sistema que abra un fichero o una URL con lo que el usuario tenga. Y su único punto delicado.
Qué cubre
La tercera fila conecta con la fase V: abrir enlaces externos en el navegador del sistema era la conclusión del nivel 31.4, y ésta es la operación que lo hace.
El punto delicado
Y es uno solo: qué se abre.
Si el frontend puede pasar una cadena arbitraria a esta operación, tiene una vía para pedirle al sistema que abra cualquier cosa — y «cualquier cosa» incluye esquemas de URL que otras aplicaciones registran, y en algunos casos rutas a ejecutables.
El paso 3 elimina el problema en vez de acotarlo, y casi siempre es viable: las URLs que una aplicación abre son un puñado conocido, no un conjunto abierto.
Y el caso que sí necesita apertura arbitraria —un enlace que aparece dentro de contenido del usuario— merece dos cosas: comprobar el esquema y enseñarle al usuario a dónde va antes de abrirlo, que es lo que hace un navegador al pasar el ratón por encima de un enlace.
Abrir o mostrar
Una decisión pequeña con impacto en la experiencia:
- Abrir el fichero es lo correcto cuando el usuario quiere verlo: un PDF exportado, una imagen generada.
- Mostrarlo en el explorador es lo correcto cuando quiere hacer algo con él: moverlo, adjuntarlo a un correo, comprobar que existe.
- Y en la duda, mostrar: abrir algo con una aplicación que el usuario no esperaba es más molesto que abrirle una carpeta.
Ofrecer las dos cosas —un enlace que abre y un botón pequeño que muestra en la carpeta— es lo que hacen las aplicaciones cuidadas, y cuesta una línea más.