La semana pasada mencioné que, siguiendo el ejemplo de Steven Frank, eliminaría totalmente Flash Player de mi Mac.? Pero tengo un truco para las páginas web con contenidos Flash y que no disponen de contenidos alternativos que no requieran Flash. Estoy muy contento con esta forma de funcionar, así que se me ocurrió compartirla aquí con vosotros.
Anteriormente usaba y recomendaba el excelente plugin ClickToFlash para Safari. El ClickToFlash original es un plugin, no una extensión. Puede que suene algo pedante, pero seguid leyendo. A principios de este año, Safari 5 introdujo una nueva API para extensiones soportada oficialmente por Apple. Estas estensiones para Safari se parecen mucho a las extensiones para Firefox. Están programadas con JavaScript (y HTML y CSS para el interfaz, si es que lo necesitan). Las extensiones para Safari son aquellas que Apple recoge aquí, y que se gestionan desde la pestaña Extensiones en la ventana de preferencias de Safari. Los plugins para contenidos web no son algo nuevo — se remontan a Netscape a mediados de la década de 1990. Los plugins sirven para formatos de contenidos. Por ejemplo, si tienes instalado el plugin de QuickTime, entonces tu navegador puede reproducir películas QuickTime incrustadas en las páginas. Flash Player es un plugin.
El ClickToFlash original fue posible antes de que existiera siquiera el API de extensiones de Safari 5 porque es un plugin (el ClickToFlash original). Se presenta bajo la apariencia de un plugin que asegura ser capaz de reproducir contenidos Flash, y se impone sobre el verdadero plugin Flash Player. Entonces, cuando uno carga una página web que contiene Flash, el navegador permite que el plugin ClickToFlash controle el Flash incrustado. En lugar de cargar el contenido Flash, ClickToFlash muestra un rectángulo con un bonito logo “Flash”. Si el usuario hace clic en ese rectángulo, ClickToFlash le entrega el contenido al plugin Flash Player auténtico. De este modo, Flash Player está presente y funciona, pero sólo se carga después de que el usuario haga hecho clic en una caja de contenido Flash para permitir así su carga. Es aparatoso, pero funciona bien y apuesto a que muchos de vosotros lo usáis actualmente.
La confusión llega cuando uno descubre que también existe una extensión “ClickToFlash” para Safari 5 — un proyecto creado por Marc Hoyois que replica la mayoría de las funciones del plugin ClickToFlash usando el nuevo API de extensiones en lugar del clásico API de plugins. Parece interesante, y algunos lectores me han escrito para recomendármelo, pero no lo he probado en persona.
Esto es lo que hice la semana pasada.
En primer lugar, desactivé los plugins Flash Player y ClickToFlash. En mi sistema, Flash Player se encontraba en la ubicación por defecto: /Library/Internet Plug-Ins/. Saqué “Flash Player.plugin”, “flashplayer.xpt”, y “NP-PPC-Dir-Shockwave” de esa carpeta y los moví a una nueva carpeta que creé en el mismo sitio con el nombre “Internet Plug-Ins (Desactivados)”. Lo único que hay que hacer para desactivarlos es sacarlos de la carpeta /Library/Internet Plug-Ins/. También moví ClickToFlash (“ClickToFlash.webplugin”) a esta carpeta de plugins desactivados (ClickToFlash, si es que lo tenéis instalado, podría encontrarse en la carpeta Library/Internet Plug-Ins/ dentro de la carpeta del usuario, en lugar del directorio raíz del disco de arranque).
Tras salir y volver a entrar en mi cuenta de usuario, Flash Player ya no estaba disponible para Safari o Firefox. Así es más o menos como ahora viene por defecto Mac OS X. Para mí esto es mejor, y en algunos casos más honesto, que usar ClickToFlash. Sin Flash instalado, Safari realmente les dice a las páginas web que visitas: “mira, no tengo Flash instalado”, lo que permite a los sitios web enviar contenidos alternativos. Anuncios con imágenes estáticas en lugar de Flash, por ejemplo. Con ClickToFlash, Safari les dice a los sitios web que visitas: “sí, claro, tengo Flash instalado”, pero después no carga realmente los contenidos Flash. Ahora veo muchas menos cajas con el aviso “Flash no disponible” en las páginas web que cuando usaba ClickToFlash.
Siguiendo las recomendaciones de Frank, he instalado la magnífica extensión YouTube5 para Safari, creada por Connor McKay. Con esta extensión instalada, los vídeos de YouTube incustrados se modifican para utilizar el tag HTML5 de vídeo en lugar de Flash Player a la hora de reproducir el vídeo. Esto resulta posible porque todos los vídeos de YouTube están codificados con H.264.
Para la inmensa mayoría del tiempo que paso navegando por la web, esta nueva configuración funciona de miedo. La prefiero antes que la anterior, con el plugin ClickToFlash, porque Flash Player nunca se queda ejecutándose en segundo plano por culpa de una página de Safari no visible en la que hice clic para cargar contenidos Flash hace horas (o incluso días). También quiere decir que el plugin Flash nunca se carga en otras aplicaciones que casualmente usan WebKit — eliminando la principal causa de cuelgues para muchas de estas aplicaciones.
Pero esto no quiere decir que nunca me tope con contenidos Flash que quiero ver pero que no disponen de una alternativa en HTML5. Google Chrome ofrece una solución — Chrome incluye su propio plugin Flash Player. Eliminar Flash Player de /Library/Internet Plug-Ins/ evita que Safari y Firefox (y casi todos los demás navegadores para Mac) carguen contenidos Flash, pero no Chrome.
De esta forma, siempre que me encuentro con una página que tenga contenidos Flash que quiero ver, abro dicha página en Chrome. Tan pronto como he terminado de verlos, cierro Chrome, lo que garantiza que Flash Player no se queda funcionando en segundo plano.
También he añadido un atajo para abrir de forma rápida la página actual de Safari en Chrome. En primer lugar, si no lo habéis hecho ya, activad el menú Desarrollo de Safari (es una casilla de verificación en la pestaña “Avanzado” de la ventana de preferencias de Safari). El menú Desarrollo contiene un submenú llamado “Abrir página con”, que enumera todos los navegadores web instalados en el sistema. Usando la sección Funciones Rápidas de Teclado en Preferencias del Sistema, creé un atajo de teclado personalizado para el comando que abriría la página actual en Google Chrome. Siempre que esté en una página en Safari con contenidos Flash que quiero ver, invoco ese atajo de teclado, y listo, Chrome se abre y carga la página en cuestión (sugerencia: cuando creéis el atajo de teclado personalizado, y tengáis que introducir el nombre del elemento de menú, basta con escribir “Google Chrome” o “Google Chrome.app” (la que sea que aparezca en vuestro submenú Abrir Página Con)).
Siempre que menciono las mejoras en el rendimiento y la duración de la batería que se consiguen desactivando Flash Player (como esta evidencia irrefutable aparecida ayer), me llegan unas cuantas respuestas por correo electrónico y Twitter que me comentan que si los anunciantes diesen el salto de Flash a HTML5 para los molestos anuncios animados, dichas mejoras del rendimiento podrían verse contrarrestadas, y quizás incluso peor, no será igual de fácil bloquear animaciones HTML5 no deseadas en este hipotético futuro como resulta hoy en día bloquear animaciones Flash no deseadas, porque HTML5 no se muestra mediante un plugin.
Mi respuesta: ya cruzaremos ese río cuando lleguemos a él. A día de hoy se logran importantes mejoras en el rendimiento y la duración de la batería desactivando Flash Player en Mac OS X.