From cf88b7b2123beec63dbc1907eaa79c66f84c4477 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Tue, 19 Dec 2017 14:57:08 +0100 Subject: [PATCH] Remove the `ImageData.set` polyfill This is only relevant for browsers that we don't intend to support with PDF.js version `2.0`. --- src/shared/compatibility.js | 54 ------------------------------------- 1 file changed, 54 deletions(-) diff --git a/src/shared/compatibility.js b/src/shared/compatibility.js index d65c7b4d0..e9e35a734 100644 --- a/src/shared/compatibility.js +++ b/src/shared/compatibility.js @@ -25,8 +25,6 @@ var globalScope = require('./global_scope'); var userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || ''; var isAndroid = /Android/.test(userAgent); -var isAndroidPre5 = /Android\s[0-4][^\d]/.test(userAgent); -var isChrome = userAgent.indexOf('Chrom') >= 0; var isIOSChrome = userAgent.indexOf('CriOS') >= 0; var isIE = userAgent.indexOf('Trident') >= 0; var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); @@ -75,58 +73,6 @@ PDFJS.compatibilityChecked = true; } })(); -// Support: IE<11, Chrome<21, Android<4.4, Safari<6 -(function checkSetPresenceInImageData() { - if (!hasDOM) { - return; - } - // IE < 11 will use window.CanvasPixelArray which lacks set function. - if (window.CanvasPixelArray) { - if (typeof window.CanvasPixelArray.prototype.set !== 'function') { - window.CanvasPixelArray.prototype.set = function(arr) { - for (var i = 0, ii = this.length; i < ii; i++) { - this[i] = arr[i]; - } - }; - } - } else { - // Old Chrome and Android use an inaccessible CanvasPixelArray prototype. - // Because we cannot feature detect it, we rely on user agent parsing. - var polyfill = false, versionMatch; - if (isChrome) { - versionMatch = userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); - // Chrome < 21 lacks the set function. - polyfill = versionMatch && parseInt(versionMatch[2]) < 21; - } else if (isAndroid) { - // Android < 4.4 lacks the set function. - // Android >= 4.4 will contain Chrome in the user agent, - // thus pass the Chrome check above and not reach this block. - polyfill = isAndroidPre5; - } else if (isSafari) { - versionMatch = userAgent. - match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//); - // Safari < 6 lacks the set function. - polyfill = versionMatch && parseInt(versionMatch[1]) < 6; - } - - if (polyfill) { - var contextPrototype = window.CanvasRenderingContext2D.prototype; - var createImageData = contextPrototype.createImageData; - contextPrototype.createImageData = function(w, h) { - var imageData = createImageData.call(this, w, h); - imageData.data.set = function(arr) { - for (var i = 0, ii = this.length; i < ii; i++) { - this[i] = arr[i]; - } - }; - return imageData; - }; - // this closure will be kept referenced, so clear its vars - contextPrototype = null; - } - } -})(); - // Support: Android, iOS (function checkCanvasSizeLimitation() { if (isIOS || isAndroid) {