¿Por qué solo Safari tiene (casi) un desplazamiento inercial perfecto en OS X?

18

Estoy bastante sorprendido de que Safari sea el único navegador en OS X que logra obtener (casi) un desplazamiento inercial perfecto.

  • Incluso con una gran cantidad de contenido flash en un sitio web, el desplazamiento de Safari es suave.
  • Hay sitios web con mucho contenido para cargar y Safari continuará desplazándose sin problemas mientras se carga y se procesa el contenido.
  • La instalación de varias extensiones no afecta el rendimiento del desplazamiento.

Los principales competidores del navegador Safari en OS X son Chrome y Firefox. Ambos no logran entregar el mismo desplazamiento suave como el que se usa en Safari:

  • Habilitar indicadores como composición de GPU en todas las páginas en Google Chrome ( chrome://flags ) o ...
  • desplazamiento suave en Firefox ( Options > Advanced ) no ofrece el rendimiento de desplazamiento que Safari ofrece por defecto.

Pregunta

¿Safari utiliza una API privada para ofrecer un desplazamiento suave al que los desarrolladores de Chrome / Firefox no pueden acceder? Por eso, el desplazamiento de Safari es mucho mejor y los competidores no logran entregar un desplazamiento sin interrupciones.

Me pregunto especialmente acerca de Chrome porque generalmente se adapta a las nuevas características de OS X muy rápido.

    
pregunta gentmatt 01.07.2012 - 12:11

1 respuesta

6

Es probable que la diferencia se haga con la arquitectura y las opciones de comunicación entre procesos de cada navegador.

Los navegadores web modernos representan páginas en procesos separados. Apple tiene un marco denominado IOSurface que proporciona una forma simplificada para Un proceso para pasar una imagen a otro proceso. Este marco se introdujo en Mac OS X 10.6, también conocido como Snow Leopard, para la última versión de QuickTime.

QuickTime usa IOSurface para descargar la decodificación de películas para procesos separados. Sin decodificación, la aplicación QuickTime Player se ocupa únicamente de la interfaz de usuario y muestra las imágenes proporcionadas por los procesos de decodificación.

Sospecho que Safari ha aprendido de QuickTime y está usando las mismas técnicas. Las páginas web se descargan a otros procesos, se representan y se devuelven.

Chrome y Firefox podrían hacer lo mismo, absolutamente. El desafío es garantizar que el hilo que trata con el usuario responda rápidamente y no se retrase esperando a que se actualice la representación.

Chrome usa procesos separados y parece que usa IOSurface en la Mac; este error habla de mejorar el uso de Chrome de IOSurface .

IOSurface es un marco público disponible para cualquier aplicación de Mac OS X 10.6+. Sin embargo, hay poca documentación y es específica de Mac.

Esto es todo conjeturas.

    
respondido por el Graham Miln 19.07.2012 - 16:54

Lea otras preguntas en las etiquetas