¿Por qué sólo Safari tiene (casi) perfecto desplazamiento inercial en OS X?

Estoy bastante sorprendido de que Safari es el único browser en OS X que logra get (casi) el desplazamiento inercial perfecto.

  • Incluso con un montón de contenido flash en un website, el desplazamiento de Safari es suave.
  • Hay sitios web con mucho contenido para cargar y Safari continuará desplazándose sin problemas mientras el contenido se está cargando y renderizado.
  • La installation de varias extensiones no afecta al performance de desplazamiento.

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

  • Macbook Pro con Lion: desplazamiento vía trackpad vs. mouse
  • Cómo cambiar la position de la barra de desplazamiento en AppleScript?
  • Cambiar la dirección de desplazamiento del trackpad con AppleScript en Yosemite
  • León de montaña, toque para hacer clic y dos problemas de desplazamiento de dedo
  • Dirección de desplazamiento: Natural = Activado con trackpad, Desactivado con ratones
  • Deshabilitar barras de desplazamiento expandibles en Lion de montaña
    • Habilitar banderas como la composition de GPU en todas las páginas de Google Chrome ( chrome://flags ) o …
    • el desplazamiento suave en Firefox ( Options > Advanced ) no proporciona el performance de desplazamiento que Safari ofrece por defecto.

    Pregunta

    ¿Safari utiliza API privada para ofrecer un desplazamiento suave que los desarrolladores de Chrome / Firefox no pueden tener acceso? ¿Por qué el desplazamiento de Safari es mucho mejor y los competidores no logran entregar el desplazamiento no roto.

    Me pregunto especialmente sobre Chrome porque normalmente se adapta a las nuevas características de OS X realmente rápido.

  • ¿Desplazarse hacia arriba mientras está en una llamada?
  • iterm + tmux no me permite desplazarme con el ratón
  • El comportamiento de desplazamiento de macOS Sierra en Terminal es realmente extraño
  • ¿Cómo hago que Firefox abra un PDF en una pestaña en lugar de downloadlo?
  • Extraño post en el terminal cuando visita un website
  • Cómo conseguir que Silverlight funcione en Mac OS X Yosemite
  • One Solution collect form web for “¿Por qué sólo Safari tiene (casi) perfecto desplazamiento inercial en OS X?”

    La diferencia es probable que haga con la architecture y las opciones de comunicación entre processs de cada browser.

    Los browseres web modernos procesan páginas en processs separados. Apple tiene un marco llamado IOSurface que proporciona una manera simplificada para que un process pase una image a otro process. Este marco fue introducido en Mac OS X 10.6, también conocido como Snow Leopard, para la última versión de QuickTime.

    QuickTime utiliza IOSurface para download la deencoding de películas para separar processs. Sin necesidad de decodificar, la aplicación QuickTime Player se queda tratando únicamente con la interfaz de usuario y mostrando las imágenes proporcionadas por los processs de deencoding.

    Sospecho que Safari ha aprendido de QuickTime y está utilizando las mismas técnicas. Las páginas Web son descargadas a otros processs, procesadas y devueltas.

    Podría Chrome y Firefox hacer lo mismo, absolutamente. El desafío es asegurar que el hilo que trata con el usuario responda rápidamente y no se demore esperando que la prestación se actualice.

    Chrome utiliza processs separados y parece utilizar 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 Mac OS X 10.6+. Sin embargo, hay poca documentation y es específico de Mac.

    Todo esto es conjetura.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).