diff --git a/web/compatibility.js b/web/compatibility.js index b603971e3c2a5..400a940eb3c01 100644 --- a/web/compatibility.js +++ b/web/compatibility.js @@ -495,17 +495,25 @@ if (typeof PDFJS === 'undefined') { } })(); -// Support: IE<10, Android<4.0, iOS<5.0 +// Support: IE<10, Android<4.0, iOS (function checkRequestAnimationFrame() { + function fakeRequestAnimationFrame(callback) { + window.setTimeout(callback, 20); + } + + var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent); + if (isIOS) { + // requestAnimationFrame on iOS is broken, replacing with fake one. + window.requestAnimationFrame = fakeRequestAnimationFrame; + return; + } if ('requestAnimationFrame' in window) { return; } window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || - (function fakeRequestAnimationFrame(callback) { - window.setTimeout(callback, 20); - }); + fakeRequestAnimationFrame; })(); (function checkCanvasSizeLimitation() {