diff --git a/toolkit/components/pdfjs/content/build/pdf.js b/toolkit/components/pdfjs/content/build/pdf.js --- a/toolkit/components/pdfjs/content/build/pdf.js +++ b/toolkit/components/pdfjs/content/build/pdf.js @@ -1073,11 +1073,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isNodeJS = void 0; -const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +const isNodeJS = false; exports.isNodeJS = isNodeJS; /***/ }), /* 4 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { @@ -1340,11 +1340,11 @@ source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; } const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", { docId, - apiVersion: '2.14.224', + apiVersion: '2.14.257', source: { data: source.data, url: source.url, password: source.password, disableAutoFetch: source.disableAutoFetch, @@ -3360,13 +3360,13 @@ } } } -const version = '2.14.224'; +const version = '2.14.257'; exports.version = version; -const build = '2be19e828'; +const build = 'da4f7dfcd'; exports.build = build; /***/ }), /* 5 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { @@ -4392,10 +4392,12 @@ var _pattern_helper = __w_pdfjs_require__(11); var _image_utils = __w_pdfjs_require__(12); +var _is_node = __w_pdfjs_require__(3); + var _display_utils = __w_pdfjs_require__(5); const MIN_FONT_SIZE = 16; const MAX_FONT_SIZE = 100; const MAX_GROUP_SIZE = 4096; @@ -4693,25 +4695,69 @@ } } } +function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { + const [a, b, c, d, tx, ty] = ctx.mozCurrentTransform; + + if (b === 0 && c === 0) { + const tlX = destX * a + tx; + const rTlX = Math.round(tlX); + const tlY = destY * d + ty; + const rTlY = Math.round(tlY); + const brX = (destX + destW) * a + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destY + destH) * d + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); + ctx.setTransform(a, b, c, d, tx, ty); + return [rWidth, rHeight]; + } + + if (a === 0 && d === 0) { + const tlX = destY * c + tx; + const rTlX = Math.round(tlX); + const tlY = destX * b + ty; + const rTlY = Math.round(tlY); + const brX = (destY + destH) * c + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destX + destW) * b + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth); + ctx.setTransform(a, b, c, d, tx, ty); + return [rHeight, rWidth]; + } + + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); + const scaleX = Math.hypot(a, b); + const scaleY = Math.hypot(c, d); + return [scaleX * destW, scaleY * destH]; +} + function compileType3Glyph(imgData) { + const { + width, + height + } = imgData; + + if (!COMPILE_TYPE3_GLYPHS || width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { + return null; + } + const POINT_TO_PROCESS_LIMIT = 1000; const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - const width = imgData.width, - height = imgData.height, - width1 = width + 1; - let i, ii, j, j0; - const points = new Uint8Array(width1 * (height + 1)); - const lineSize = width + 7 & ~7, - data0 = imgData.data; - const data = new Uint8Array(lineSize * height); - let pos = 0; - - for (i = 0, ii = data0.length; i < ii; i++) { - const elem = data0[i]; + const width1 = width + 1; + let points = new Uint8Array(width1 * (height + 1)); + let i, j, j0; + const lineSize = width + 7 & ~7; + let data = new Uint8Array(lineSize * height), + pos = 0; + + for (const elem of imgData.data) { let mask = 128; while (mask > 0) { data[pos++] = elem & mask ? 0 : 255; mask >>= 1; @@ -4797,11 +4843,17 @@ if (count > POINT_TO_PROCESS_LIMIT) { return null; } const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - const outlines = []; + let path, outlines, coords; + + if (!_is_node.isNodeJS) { + path = new Path2D(); + } else { + outlines = []; + } for (i = 0; count && i <= height; i++) { let p = i * width1; const end = p + width; @@ -4811,11 +4863,16 @@ if (p === end) { continue; } - const coords = [p % width1, i]; + if (path) { + path.moveTo(p % width1, i); + } else { + coords = [p % width1, i]; + } + const p0 = p; let type = points[p]; do { const step = steps[type]; @@ -4832,37 +4889,52 @@ } else { type = pp & 0x33 * type >> 4; points[p] &= type >> 2 | type << 2; } - coords.push(p % width1, p / width1 | 0); + if (path) { + path.lineTo(p % width1, p / width1 | 0); + } else { + coords.push(p % width1, p / width1 | 0); + } if (!points[p]) { --count; } } while (p0 !== p); - outlines.push(coords); + if (!path) { + outlines.push(coords); + } + --i; } + data = null; + points = null; + const drawOutline = function (c) { c.save(); c.scale(1 / width, -1 / height); c.translate(0, -height); - c.beginPath(); - - for (let k = 0, kk = outlines.length; k < kk; k++) { - const o = outlines[k]; - c.moveTo(o[0], o[1]); - - for (let l = 2, ll = o.length; l < ll; l += 2) { - c.lineTo(o[l], o[l + 1]); - } - } - - c.fill(); + + if (path) { + c.fill(path); + } else { + c.beginPath(); + + for (const o of outlines) { + c.moveTo(o[0], o[1]); + + for (let l = 2, ll = o.length; l < ll; l += 2) { + c.lineTo(o[l], o[l + 1]); + } + } + + c.fill(); + } + c.beginPath(); c.restore(); }; return drawOutline; @@ -5627,12 +5699,12 @@ const cord2 = _util.Util.applyTransform([width, height], maskToCanvas); const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); - const drawnWidth = Math.ceil(rect[2] - rect[0]); - const drawnHeight = Math.ceil(rect[3] - rect[1]); + const drawnWidth = Math.round(rect[2] - rect[0]) || 1; + const drawnHeight = Math.round(rect[3] - rect[1]) || 1; const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight, true); const fillCtx = fillCanvas.context; const offsetX = Math.min(cord1[0], cord2[0]); const offsetY = Math.min(cord1[1], cord2[1]); fillCtx.translate(-offsetX, -offsetY); @@ -5646,11 +5718,11 @@ cache.set(cacheKey, scaled); } } fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(fillCtx.mozCurrentTransform, img.interpolate); - fillCtx.drawImage(scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); + drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); fillCtx.globalCompositeOperation = "source-in"; const inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]); fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor; @@ -6845,29 +6917,21 @@ const count = img.count; img = this.getObject(img.data, img); img.count = count; const ctx = this.ctx; - const width = img.width, - height = img.height; const glyph = this.processingType3; - if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { - if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { - glyph.compiled = compileType3Glyph({ - data: img.data, - width, - height - }); - } else { - glyph.compiled = null; - } - } - - if (glyph?.compiled) { - glyph.compiled(ctx); - return; + if (glyph) { + if (glyph.compiled === undefined) { + glyph.compiled = compileType3Glyph(img); + } + + if (glyph.compiled) { + glyph.compiled(ctx); + return; + } } const mask = this._createMaskCanvas(img); const maskCanvas = mask.canvas; @@ -6927,11 +6991,11 @@ maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); ctx.save(); ctx.transform.apply(ctx, image.transform); ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); ctx.restore(); } this.compose(); } @@ -7002,20 +7066,20 @@ } const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse); ctx.imageSmoothingEnabled = getImageSmoothingEnabled(ctx.mozCurrentTransform, imgData.interpolate); - ctx.drawImage(scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); + const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); if (this.imageLayer) { const position = this.getCanvasPosition(0, -height); this.imageLayer.appendImage({ imgData, left: position[0], top: position[1], - width: width / ctx.mozCurrentTransformInverse[0], - height: height / ctx.mozCurrentTransformInverse[3] + width: rWidth, + height: rHeight }); } this.compose(); this.restore(); @@ -7036,11 +7100,11 @@ for (let i = 0, ii = map.length; i < ii; i++) { const entry = map[i]; ctx.save(); ctx.transform.apply(ctx, entry.transform); ctx.scale(1, -1); - ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); if (this.imageLayer) { const position = this.getCanvasPosition(entry.x, entry.y); this.imageLayer.appendImage({ imgData, @@ -7260,19 +7324,21 @@ exports.TilingPattern = exports.PathType = void 0; exports.getShadingPattern = getShadingPattern; var _util = __w_pdfjs_require__(1); +var _is_node = __w_pdfjs_require__(3); + const PathType = { FILL: "Fill", STROKE: "Stroke", SHADING: "Shading" }; exports.PathType = PathType; function applyBoundingBox(ctx, bbox) { - if (!bbox || typeof Path2D === "undefined") { + if (!bbox || _is_node.isNodeJS) { return; } const width = bbox[2] - bbox[0]; const height = bbox[3] - bbox[1]; @@ -12636,14 +12702,14 @@ var _svg = __w_pdfjs_require__(23); var _xfa_layer = __w_pdfjs_require__(21); -const pdfjsVersion = '2.14.224'; -const pdfjsBuild = '2be19e828'; +const pdfjsVersion = '2.14.257'; +const pdfjsBuild = 'da4f7dfcd'; ; })(); /******/ return __webpack_exports__; /******/ })() ; }); \ No newline at end of file diff --git a/toolkit/components/pdfjs/content/build/pdf.scripting.js b/toolkit/components/pdfjs/content/build/pdf.scripting.js --- a/toolkit/components/pdfjs/content/build/pdf.scripting.js +++ b/toolkit/components/pdfjs/content/build/pdf.scripting.js @@ -4954,13 +4954,13 @@ } })); var _initialization = __w_pdfjs_require__(1); -const pdfjsVersion = '2.14.224'; -const pdfjsBuild = '2be19e828'; +const pdfjsVersion = '2.14.257'; +const pdfjsBuild = 'da4f7dfcd'; })(); /******/ return __webpack_exports__; /******/ })() ; }); \ No newline at end of file diff --git a/toolkit/components/pdfjs/content/build/pdf.worker.js b/toolkit/components/pdfjs/content/build/pdf.worker.js --- a/toolkit/components/pdfjs/content/build/pdf.worker.js +++ b/toolkit/components/pdfjs/content/build/pdf.worker.js @@ -115,11 +115,11 @@ let terminated = false; let cancelXHRs = null; const WorkerTasks = []; const verbosity = (0, _util.getVerbosityLevel)(); const apiVersion = docParams.apiVersion; - const workerVersion = '2.14.224'; + const workerVersion = '2.14.257'; if (apiVersion !== workerVersion) { throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); } @@ -1730,11 +1730,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isNodeJS = void 0; -const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +const isNodeJS = false; exports.isNodeJS = isNodeJS; /***/ }), /* 5 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { @@ -2490,22 +2490,21 @@ } return this.bytes[this.pos++]; } - getBytes(length, forceClamped = false) { + getBytes(length) { const bytes = this.bytes; const pos = this.pos; const strEnd = this.end; if (!length) { if (strEnd > this.progressiveDataLength) { this.ensureRange(pos, strEnd); } - const subarray = bytes.subarray(pos, strEnd); - return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + return bytes.subarray(pos, strEnd); } let end = pos + length; if (end > strEnd) { @@ -2515,12 +2514,11 @@ if (end > this.progressiveDataLength) { this.ensureRange(pos, end); } this.pos = end; - const subarray = bytes.subarray(pos, end); - return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + return bytes.subarray(pos, end); } getByteRange(begin, end) { if (begin < 0) { begin = 0; @@ -3428,11 +3426,11 @@ getByte() { (0, _util.unreachable)("Abstract method `getByte` called"); } - getBytes(length, forceClamped = false) { + getBytes(length) { (0, _util.unreachable)("Abstract method `getBytes` called"); } peekByte() { const peekedByte = this.getByte(); @@ -3442,12 +3440,12 @@ } return peekedByte; } - peekBytes(length, forceClamped = false) { - const bytes = this.getBytes(length, forceClamped); + peekBytes(length) { + const bytes = this.getBytes(length); this.pos -= bytes.length; return bytes; } getUint16() { @@ -3472,11 +3470,11 @@ getByteRange(begin, end) { (0, _util.unreachable)("Abstract method `getByteRange` called"); } getString(length) { - return (0, _util.bytesToString)(this.getBytes(length, false)); + return (0, _util.bytesToString)(this.getBytes(length)); } skip(n) { this.pos += n || 1; } @@ -3540,29 +3538,27 @@ } return this.bytes[this.pos++]; } - getBytes(length, forceClamped = false) { + getBytes(length) { const bytes = this.bytes; const pos = this.pos; const strEnd = this.end; if (!length) { - const subarray = bytes.subarray(pos, strEnd); - return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + return bytes.subarray(pos, strEnd); } let end = pos + length; if (end > strEnd) { end = strEnd; } this.pos = end; - const subarray = bytes.subarray(pos, end); - return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + return bytes.subarray(pos, end); } getByteRange(begin, end) { if (begin < 0) { begin = 0; @@ -10654,11 +10650,11 @@ let imgData, args; if (imageMask) { const interpolate = dict.get("I", "Interpolate"); const bitStrideLength = w + 7 >> 3; - const imgArray = image.getBytes(bitStrideLength * h, true); + const imgArray = image.getBytes(bitStrideLength * h); const decode = dict.getArray("D", "Decode"); if (this.parsingType3Font) { imgData = _image.PDFImage.createRawMask({ imgArray, @@ -17131,11 +17127,11 @@ } return this.buffer[this.pos++]; } - getBytes(length, forceClamped = false) { + getBytes(length) { const pos = this.pos; let end; if (length) { this.ensureBuffer(pos + length); @@ -17157,12 +17153,11 @@ end = this.bufferLength; } this.pos = end; - const subarray = this.buffer.subarray(pos, end); - return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray; + return this.buffer.subarray(pos, end); } reset() { this.pos = 0; } @@ -40366,11 +40361,11 @@ maxLineHeight = Math.max(maxLineHeight, img.height); } const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; const imgHeight = currentY + maxLineHeight + IMAGE_PADDING; - const imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4); + const imgData = new Uint8Array(imgWidth * imgHeight * 4); const imgRowSize = imgWidth << 2; for (let q = 0; q < count; q++) { const data = argsArray[iFirstPIIXO + (q << 2)][0].data; const rowSize = map[q].w << 2; @@ -40883,11 +40878,10 @@ switch (fnArray[i]) { case _util.OPS.paintInlineImageXObject: case _util.OPS.paintInlineImageXObjectGroup: case _util.OPS.paintImageMaskXObject: const arg = argsArray[i][0]; - ; if (!arg.cached && arg.data && arg.data.buffer instanceof ArrayBuffer) { transfers.push(arg.data.buffer); } @@ -41206,19 +41200,15 @@ let data, i; if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) { data = imgArray; } else if (!inverseDecode) { - data = new Uint8ClampedArray(actualLength); - data.set(imgArray); - } else { - data = new Uint8ClampedArray(computedLength); + data = new Uint8Array(imgArray); + } else { + data = new Uint8Array(computedLength); data.set(imgArray); - - for (i = actualLength; i < computedLength; i++) { - data[i] = 0xff; - } + data.fill(0xff, actualLength); } if (inverseDecode) { for (i = 0; i < actualLength; i++) { data[i] ^= 0xff; @@ -41514,11 +41504,10 @@ const numComps = this.numComps; const originalWidth = this.width; const originalHeight = this.height; const bpc = this.bpc; const rowBytes = originalWidth * numComps * bpc + 7 >> 3; - let imgArray; if (!forceRGBA) { let kind; if (this.colorSpace.name === "DeviceGray" && bpc === 1) { @@ -41527,19 +41516,11 @@ kind = _util.ImageKind.RGB_24BPP; } if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) { imgData.kind = kind; - imgArray = this.getImageBytes(originalHeight * rowBytes); - - if (this.image instanceof _decode_stream.DecodeStream) { - imgData.data = imgArray; - } else { - const newArray = new Uint8ClampedArray(imgArray.length); - newArray.set(imgArray); - imgData.data = newArray; - } + imgData.data = this.getImageBytes(originalHeight * rowBytes, {}); if (this.needsDecode) { (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale."); const buffer = imgData.data; @@ -41559,17 +41540,23 @@ imageLength *= 3; case "DeviceRGB": case "DeviceCMYK": imgData.kind = _util.ImageKind.RGB_24BPP; - imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true); + imgData.data = this.getImageBytes(imageLength, { + drawWidth, + drawHeight, + forceRGB: true + }); return imgData; } } } - imgArray = this.getImageBytes(originalHeight * rowBytes); + const imgArray = this.getImageBytes(originalHeight * rowBytes, { + internal: true + }); const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight; const comps = this.getComponents(imgArray); let alpha01, maybeUndoPreblend; if (!forceRGBA && !this.smask && !this.mask) { @@ -41607,11 +41594,13 @@ const width = this.width; const height = this.height; const bpc = this.bpc; const rowBytes = width * numComps * bpc + 7 >> 3; - const imgArray = this.getImageBytes(height * rowBytes); + const imgArray = this.getImageBytes(height * rowBytes, { + internal: true + }); const comps = this.getComponents(imgArray); let i, length; if (bpc === 1) { length = width * height; @@ -41639,16 +41628,28 @@ for (i = 0; i < length; ++i) { buffer[i] = scale * comps[i]; } } - getImageBytes(length, drawWidth, drawHeight, forceRGB = false) { + getImageBytes(length, { + drawWidth, + drawHeight, + forceRGB = false, + internal = false + }) { this.image.reset(); this.image.drawWidth = drawWidth || this.width; this.image.drawHeight = drawHeight || this.height; this.image.forceRGB = !!forceRGB; - return this.image.getBytes(length, true); + const imageBytes = this.image.getBytes(length); + + if (internal || this.image instanceof _decode_stream.DecodeStream) { + return imageBytes; + } + + (0, _util.assert)(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported "imageBytes" type.'); + return new Uint8Array(imageBytes); } } exports.PDFImage = PDFImage; @@ -42293,11 +42294,11 @@ if (obj instanceof _name_number_tree.NameTree) { for (const [key, value] of obj.getAll()) { const dest = fetchDestination(value); if (dest) { - dests[key] = dest; + dests[(0, _util.stringToPDFString)(key)] = dest; } } } else if (obj instanceof _primitives.Dict) { obj.forEach(function (key, value) { const dest = fetchDestination(value); @@ -42720,11 +42721,11 @@ for (const [key, value] of nameTree.getAll()) { if (!xfaImages) { xfaImages = new _primitives.Dict(this.xref); } - xfaImages.set(key, value); + xfaImages.set((0, _util.stringToPDFString)(key), value); } } return (0, _util.shadow)(this, "xfaImages", xfaImages); } @@ -42760,11 +42761,11 @@ if (obj instanceof _primitives.Dict && obj.has("JavaScript")) { const nameTree = new _name_number_tree.NameTree(obj.getRaw("JavaScript"), this.xref); for (const [key, value] of nameTree.getAll()) { - appendIfJavaScriptDict(key, value); + appendIfJavaScriptDict((0, _util.stringToPDFString)(key), value); } } const openAction = this._catDict.get("OpenAction"); @@ -43353,11 +43354,13 @@ if (dest) { if (dest instanceof _primitives.Name) { dest = dest.name; } - if (typeof dest === "string" || Array.isArray(dest)) { + if (typeof dest === "string") { + resultObj.dest = (0, _util.stringToPDFString)(dest); + } else if (Array.isArray(dest)) { resultObj.dest = dest; } } } @@ -43411,13 +43414,15 @@ } if (obj.has("Kids")) { const kids = obj.get("Kids"); - for (let i = 0, ii = kids.length; i < ii; i++) { - const kid = kids[i]; - + if (!Array.isArray(kids)) { + continue; + } + + for (const kid of kids) { if (processed.has(kid)) { throw new _util.FormatError(`Duplicate entry in "${this._type}" tree.`); } queue.push(kid); @@ -43474,11 +43479,11 @@ if (key < xref.fetchIfRef(limits[0])) { r = m - 1; } else if (key > xref.fetchIfRef(limits[1])) { l = m + 1; } else { - kidsOrEntries = xref.fetchIfRef(kids[m]); + kidsOrEntries = kid; break; } } if (l > r) { @@ -62405,13 +62410,13 @@ } })); var _worker = __w_pdfjs_require__(1); -const pdfjsVersion = '2.14.224'; -const pdfjsBuild = '2be19e828'; +const pdfjsVersion = '2.14.257'; +const pdfjsBuild = 'da4f7dfcd'; })(); /******/ return __webpack_exports__; /******/ })() ; }); \ No newline at end of file diff --git a/toolkit/components/pdfjs/content/web/images/toolbarButton-openFile.svg b/toolkit/components/pdfjs/content/web/images/toolbarButton-openFile.svg deleted file mode 100644 --- a/toolkit/components/pdfjs/content/web/images/toolbarButton-openFile.svg +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/toolkit/components/pdfjs/content/web/viewer.html b/toolkit/components/pdfjs/content/web/viewer.html --- a/toolkit/components/pdfjs/content/web/viewer.html +++ b/toolkit/components/pdfjs/content/web/viewer.html @@ -118,93 +118,90 @@ @@ -218,38 +215,35 @@
-
-
- +
- - - - - + Current View
@@ -257,15 +251,15 @@ Tools
-
-