How we built it

Intervention: Throttle rendering pipeline based on viewport visibility

As an intervention, stop running Blink's rendering pipeline (including requestAnimationFrame callbacks) for content which isn't visible in the viewport. This helps to avoid doing unnecessary work for animations which aren't going to be seen by the user.


In hopes of making this change web compatible, the throttling will only be done for documents in cross-origin frames. Because cross-origin frames cannot synchronously communicate with the outside world, there isn't a direct of observing the exact timing of the requestAnimationFrame callbacks within the frame. Also, note that pages already have to deal with requestAnimationFrame callbacks stopping completely for background tabs.



Established standard

Status in Chromium

Enabled by default (launch bug) in:

  • Chrome for desktop release 52
  • Chrome for Android release 52
  • Android WebView release 52
  • Opera release 39
  • Opera for Android release 39

Consensus & Standardization

  • Shipped
  • No public signals
  • Shipped
  • No signals


Last updated on 2016-09-07