From 0b0e18f05c1bccf91da558f02e3600603c9d6494 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Tue, 22 Nov 2016 21:55:06 +0100 Subject: [PATCH] Compatibility: disable range request for iOS Fixes #7815. --- web/compatibility.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/web/compatibility.js b/web/compatibility.js index 661241fde..cd8976750 100644 --- a/web/compatibility.js +++ b/web/compatibility.js @@ -470,7 +470,10 @@ if (typeof PDFJS === 'undefined') { // Range requests are broken in Chrome 39 and 40, https://crbug.com/442318 var isChromeWithRangeBug = /Chrome\/(39|40)\./.test(navigator.userAgent); - if (isSafari || isOldAndroid || isChromeWithRangeBug) { + // Range requests are broken in iOS 10, but likely also in prior versions. + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(navigator.userAgent); + + if (isSafari || isOldAndroid || isChromeWithRangeBug || isIOS) { PDFJS.disableRange = true; PDFJS.disableStream = true; } @@ -542,7 +545,7 @@ if (typeof PDFJS === 'undefined') { window.setTimeout(callback, 20); } - var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent); + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(navigator.userAgent); if (isIOS) { // requestAnimationFrame on iOS is broken, replacing with fake one. window.requestAnimationFrame = fakeRequestAnimationFrame; @@ -558,7 +561,7 @@ if (typeof PDFJS === 'undefined') { })(); (function checkCanvasSizeLimitation() { - var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent); + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(navigator.userAgent); var isAndroid = /Android/g.test(navigator.userAgent); if (isIOS || isAndroid) { // 5MP