Merge inbound to mozilla-central. a=merge

This commit is contained in:
Ciure Andrei 2018-06-25 12:49:17 +03:00
Родитель f1b87018df 7815b4e5f6
Коммит 4852c1abab
4 изменённых файлов: 168 добавлений и 85 удалений

Просмотреть файл

@ -1,5 +1,5 @@
This is the PDF.js project output, https://github.com/mozilla/pdf.js
Current extension version is: 2.0.602
Current extension version is: 2.0.625
Taken from upstream commit: 3b07147d
Taken from upstream commit: e8b50883

Просмотреть файл

@ -123,8 +123,8 @@ return /******/ (function(modules) { // webpackBootstrap
"use strict";
var pdfjsVersion = '2.0.602';
var pdfjsBuild = '3b07147d';
var pdfjsVersion = '2.0.625';
var pdfjsBuild = 'e8b50883';
var pdfjsSharedUtil = __w_pdfjs_require__(1);
var pdfjsDisplayAPI = __w_pdfjs_require__(6);
var pdfjsDisplayTextLayer = __w_pdfjs_require__(18);
@ -825,11 +825,6 @@ var Util = function UtilClosure() {
var romanStr = romanBuf.join('');
return lowerCase ? romanStr.toLowerCase() : romanStr;
};
Util.extendObj = function extendObj(obj1, obj2) {
for (var key in obj2) {
obj1[key] = obj2[key];
}
};
Util.inherit = function Util_inherit(sub, base, prototype) {
sub.prototype = Object.create(base.prototype);
sub.prototype.constructor = sub;
@ -4155,10 +4150,10 @@ function getDocument(src) {
params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
}
if (typeof params.disableRange !== 'boolean') {
params.disableRange = _api_compatibility.apiCompatibilityParams.disableRange || false;
params.disableRange = false;
}
if (typeof params.disableStream !== 'boolean') {
params.disableStream = _api_compatibility.apiCompatibilityParams.disableStream || false;
params.disableStream = false;
}
if (typeof params.disableAutoFetch !== 'boolean') {
params.disableAutoFetch = false;
@ -4228,7 +4223,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
}
return worker.messageHandler.sendWithPromise('GetDocRequest', {
docId,
apiVersion: '2.0.602',
apiVersion: '2.0.625',
source: {
data: source.data,
url: source.url,
@ -4565,7 +4560,7 @@ var PDFPageProxy = function PDFPageProxyClosure() {
resolve(textContent);
return;
}
_util.Util.extendObj(textContent.styles, value.styles);
Object.assign(textContent.styles, value.styles);
textContent.items.push(...value.items);
pump();
}, reject);
@ -5362,8 +5357,6 @@ var WorkerTransport = function WorkerTransportClosure() {
get loadingParams() {
let params = this._params;
return (0, _util.shadow)(this, 'loadingParams', {
disableRange: params.disableRange,
disableStream: params.disableStream,
disableAutoFetch: params.disableAutoFetch,
disableCreateObjectURL: params.disableCreateObjectURL,
disableFontFace: params.disableFontFace,
@ -5569,8 +5562,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
}();
var version, build;
{
exports.version = version = '2.0.602';
exports.build = build = '3b07147d';
exports.version = version = '2.0.625';
exports.build = build = 'e8b50883';
}
exports.getDocument = getDocument;
exports.LoopbackPort = LoopbackPort;
@ -10067,7 +10060,7 @@ var renderTextLayer = function renderTextLayerClosure() {
capability.resolve();
return;
}
_util.Util.extendObj(styleCache, value.styles);
Object.assign(styleCache, value.styles);
this._processItems(value.items, styleCache);
pump();
}, capability.reject);

Просмотреть файл

@ -123,8 +123,8 @@ return /******/ (function(modules) { // webpackBootstrap
"use strict";
var pdfjsVersion = '2.0.602';
var pdfjsBuild = '3b07147d';
var pdfjsVersion = '2.0.625';
var pdfjsBuild = 'e8b50883';
var pdfjsCoreWorker = __w_pdfjs_require__(1);
exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
@ -327,7 +327,7 @@ var WorkerMessageHandler = {
var cancelXHRs = null;
var WorkerTasks = [];
let apiVersion = docParams.apiVersion;
let workerVersion = '2.0.602';
let workerVersion = '2.0.625';
if (apiVersion !== workerVersion) {
throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
}
@ -1364,11 +1364,6 @@ var Util = function UtilClosure() {
var romanStr = romanBuf.join('');
return lowerCase ? romanStr.toLowerCase() : romanStr;
};
Util.extendObj = function extendObj(obj1, obj2) {
for (var key in obj2) {
obj1[key] = obj2[key];
}
};
Util.inherit = function Util_inherit(sub, base, prototype) {
sub.prototype = Object.create(base.prototype);
sub.prototype.constructor = sub;
@ -6466,14 +6461,36 @@ var XRef = function XRefClosure() {
}
trailerDict.assignXref(this);
this.trailer = trailerDict;
var encrypt = trailerDict.get('Encrypt');
let encrypt;
try {
encrypt = trailerDict.get('Encrypt');
} catch (ex) {
if (ex instanceof _util.MissingDataException) {
throw ex;
}
(0, _util.warn)(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`);
}
if ((0, _primitives.isDict)(encrypt)) {
var ids = trailerDict.get('ID');
var fileId = ids && ids.length ? ids[0] : '';
encrypt.suppressEncryption = true;
this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);
}
if (!(this.root = trailerDict.get('Root'))) {
let root;
try {
root = trailerDict.get('Root');
} catch (ex) {
if (ex instanceof _util.MissingDataException) {
throw ex;
}
(0, _util.warn)(`XRef.parse - Invalid "Root" reference: "${ex}".`);
}
if ((0, _primitives.isDict)(root) && root.has('Pages')) {
this.root = root;
} else {
if (!recoveryMode) {
throw new _util.XRefParseException();
}
throw new _util.FormatError('Invalid root reference');
}
},
@ -6734,7 +6751,7 @@ var XRef = function XRefClosure() {
break;
}
}
startPos += contentLength;
startPos = endPos;
}
let content = buffer.subarray(position, position + contentLength);
var xrefTagOffset = skipUntil(content, 0, xrefBytes);
@ -6755,7 +6772,7 @@ var XRef = function XRefClosure() {
this.startXRefQueue.push(xrefStms[i]);
this.readXRef(true);
}
var dict;
let trailerDict;
for (i = 0, ii = trailers.length; i < ii; ++i) {
stream.pos = trailers[i];
var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);
@ -6763,16 +6780,29 @@ var XRef = function XRefClosure() {
if (!(0, _primitives.isCmd)(obj, 'trailer')) {
continue;
}
dict = parser.getObj();
let dict = parser.getObj();
if (!(0, _primitives.isDict)(dict)) {
continue;
}
let rootDict;
try {
rootDict = dict.get('Root');
} catch (ex) {
if (ex instanceof _util.MissingDataException) {
throw ex;
}
continue;
}
if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) {
continue;
}
if (dict.has('ID')) {
return dict;
}
trailerDict = dict;
}
if (dict) {
return dict;
if (trailerDict) {
return trailerDict;
}
throw new _util.InvalidPDFException('Invalid PDF structure');
},
@ -8115,7 +8145,7 @@ var Lexer = function LexerClosure() {
var ch = this.currentChar;
var eNotation = false;
var divideBy = 0;
var sign = 1;
var sign = 0;
if (ch === 0x2D) {
sign = -1;
ch = this.nextChar();
@ -8123,10 +8153,7 @@ var Lexer = function LexerClosure() {
ch = this.nextChar();
}
} else if (ch === 0x2B) {
ch = this.nextChar();
}
if (ch === 0x2E) {
divideBy = 10;
sign = 1;
ch = this.nextChar();
}
if (ch === 0x0A || ch === 0x0D) {
@ -8134,9 +8161,18 @@ var Lexer = function LexerClosure() {
ch = this.nextChar();
} while (ch === 0x0A || ch === 0x0D);
}
if (ch === 0x2E) {
divideBy = 10;
ch = this.nextChar();
}
if (ch < 0x30 || ch > 0x39) {
if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) {
(0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.');
return 0;
}
throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);
}
sign = sign || 1;
var baseValue = ch - 0x30;
var powerValue = 0;
var powerValueSign = 1;
@ -18802,7 +18838,7 @@ var OperatorList = function OperatorListClosure() {
}
},
addOpList(opList) {
_util.Util.extendObj(this.dependencies, opList.dependencies);
Object.assign(this.dependencies, opList.dependencies);
for (var i = 0, ii = opList.length; i < ii; i++) {
this.addOp(opList.fnArray[i], opList.argsArray[i]);
}

Просмотреть файл

@ -3206,10 +3206,6 @@ const defaultOptions = {
value: './images/',
kind: OptionKind.VIEWER
},
locale: {
value: typeof navigator !== 'undefined' ? navigator.language : 'en-US',
kind: OptionKind.VIEWER
},
maxCanvasPixels: {
value: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216,
kind: OptionKind.VIEWER
@ -3263,11 +3259,11 @@ const defaultOptions = {
kind: OptionKind.API
},
disableRange: {
value: _pdfjsLib.apiCompatibilityParams.disableRange || false,
value: false,
kind: OptionKind.API
},
disableStream: {
value: _pdfjsLib.apiCompatibilityParams.disableStream || false,
value: false,
kind: OptionKind.API
},
isEvalSupported: {
@ -3299,6 +3295,7 @@ const defaultOptions = {
kind: OptionKind.WORKER
}
};
;
const userOptions = Object.create(null);
class AppOptions {
constructor() {
@ -6349,7 +6346,7 @@ class PDFViewer extends _base_viewer.BaseViewer {
return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this.viewer);
}
_scrollIntoView({ pageDiv, pageSpot = null }) {
if (!pageSpot) {
if (!pageSpot && !this.isInPresentationMode) {
const left = pageDiv.offsetLeft + pageDiv.clientLeft;
const right = left + pageDiv.clientWidth;
const { scrollLeft, clientWidth } = this.container;
@ -6410,15 +6407,57 @@ class PDFViewer extends _base_viewer.BaseViewer {
location: this._location
});
}
_regroupSpreads() {
const container = this._setDocumentViewerElement,
pages = this._pages;
while (container.firstChild) {
container.firstChild.remove();
get _isScrollModeHorizontal() {
return this.isInPresentationMode ? false : this.scrollMode === _base_viewer.ScrollMode.HORIZONTAL;
}
setScrollMode(mode) {
if (mode === this.scrollMode) {
return;
}
super.setScrollMode(mode);
this.eventBus.dispatch('scrollmodechanged', { mode });
this._updateScrollModeClasses();
if (!this.pdfDocument) {
return;
}
const pageNumber = this._currentPageNumber;
if (isNaN(this._currentScaleValue)) {
this._setScale(this._currentScaleValue, true);
}
this.scrollPageIntoView({ pageNumber });
this.update();
}
_updateScrollModeClasses() {
const { scrollMode, viewer } = this;
if (scrollMode === _base_viewer.ScrollMode.HORIZONTAL) {
viewer.classList.add('scrollHorizontal');
} else {
viewer.classList.remove('scrollHorizontal');
}
if (scrollMode === _base_viewer.ScrollMode.WRAPPED) {
viewer.classList.add('scrollWrapped');
} else {
viewer.classList.remove('scrollWrapped');
}
}
setSpreadMode(mode) {
if (mode === this.spreadMode) {
return;
}
super.setSpreadMode(mode);
this.eventBus.dispatch('spreadmodechanged', { mode });
this._regroupSpreads();
}
_regroupSpreads() {
if (!this.pdfDocument) {
return;
}
const viewer = this.viewer,
pages = this._pages;
viewer.textContent = '';
if (this.spreadMode === _base_viewer.SpreadMode.NONE) {
for (let i = 0, iMax = pages.length; i < iMax; ++i) {
container.appendChild(pages[i].div);
viewer.appendChild(pages[i].div);
}
} else {
const parity = this.spreadMode - 1;
@ -6427,10 +6466,10 @@ class PDFViewer extends _base_viewer.BaseViewer {
if (spread === null) {
spread = document.createElement('div');
spread.className = 'spread';
container.appendChild(spread);
viewer.appendChild(spread);
} else if (i % 2 === parity) {
spread = spread.cloneNode(false);
container.appendChild(spread);
viewer.appendChild(spread);
}
spread.appendChild(pages[i].div);
}
@ -6554,7 +6593,9 @@ class BaseViewer {
if (this.removePageBorders) {
this.viewer.classList.add('removePageBorders');
}
this._updateScrollModeClasses();
if (this.scrollMode !== ScrollMode.VERTICAL) {
this._updateScrollModeClasses();
}
}
get pagesCount() {
return this._pages.length;
@ -6858,9 +6899,10 @@ class BaseViewer {
if (!currentPage) {
return;
}
let hPadding = this.isInPresentationMode || this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;
let vPadding = this.isInPresentationMode || this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;
if (this.scrollMode === ScrollMode.HORIZONTAL) {
const noPadding = this.isInPresentationMode || this.removePageBorders;
let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;
let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;
if (!noPadding && this._isScrollModeHorizontal) {
const temp = hPadding;
hPadding = vPadding;
vPadding = temp;
@ -7030,6 +7072,9 @@ class BaseViewer {
focus() {
this.container.focus();
}
get _isScrollModeHorizontal() {
throw new Error('Not implemented: _isScrollModeHorizontal');
}
get isInPresentationMode() {
return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;
}
@ -7082,7 +7127,7 @@ class BaseViewer {
}
forceRendering(currentlyVisiblePages) {
let visiblePages = currentlyVisiblePages || this._getVisiblePages();
let scrollAhead = this.scrollMode === ScrollMode.HORIZONTAL ? this.scroll.right : this.scroll.down;
let scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;
let pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);
if (pageView) {
this._ensurePdfPageLoaded(pageView).then(() => {
@ -7156,30 +7201,17 @@ class BaseViewer {
});
}
setScrollMode(mode) {
if (mode !== this.scrollMode) {
this.scrollMode = mode;
this._updateScrollModeClasses();
this.eventBus.dispatch('scrollmodechanged', { mode });
const pageNumber = this._currentPageNumber;
if (isNaN(this._currentScaleValue)) {
this._setScale(this._currentScaleValue, this.isInPresentationMode);
}
this.scrollPageIntoView({ pageNumber });
this.update();
if (!Number.isInteger(mode) || !Object.values(ScrollMode).includes(mode)) {
throw new Error(`Invalid scroll mode: ${mode}`);
}
this.scrollMode = mode;
}
_updateScrollModeClasses() {
const mode = this.scrollMode,
{ classList } = this.viewer;
classList.toggle('scrollHorizontal', mode === ScrollMode.HORIZONTAL);
classList.toggle('scrollWrapped', mode === ScrollMode.WRAPPED);
}
_updateScrollModeClasses() {}
setSpreadMode(mode) {
if (mode !== this.spreadMode) {
this.spreadMode = mode;
this.eventBus.dispatch('spreadmodechanged', { mode });
this._regroupSpreads();
if (!Number.isInteger(mode) || !Object.values(SpreadMode).includes(mode)) {
throw new Error(`Invalid spread mode: ${mode}`);
}
this.spreadMode = mode;
}
_regroupSpreads() {}
}
@ -8176,16 +8208,38 @@ class SecondaryToolbar {
}
_bindScrollModeListener(buttons) {
this.eventBus.on('scrollmodechanged', function (evt) {
buttons.scrollVerticalButton.classList.toggle('toggled', evt.mode === _base_viewer.ScrollMode.VERTICAL);
buttons.scrollHorizontalButton.classList.toggle('toggled', evt.mode === _base_viewer.ScrollMode.HORIZONTAL);
buttons.scrollWrappedButton.classList.toggle('toggled', evt.mode === _base_viewer.ScrollMode.WRAPPED);
buttons.scrollVerticalButton.classList.remove('toggled');
buttons.scrollHorizontalButton.classList.remove('toggled');
buttons.scrollWrappedButton.classList.remove('toggled');
switch (evt.mode) {
case _base_viewer.ScrollMode.VERTICAL:
buttons.scrollVerticalButton.classList.add('toggled');
break;
case _base_viewer.ScrollMode.HORIZONTAL:
buttons.scrollHorizontalButton.classList.add('toggled');
break;
case _base_viewer.ScrollMode.WRAPPED:
buttons.scrollWrappedButton.classList.add('toggled');
break;
}
});
}
_bindSpreadModeListener(buttons) {
this.eventBus.on('spreadmodechanged', function (evt) {
buttons.spreadNoneButton.classList.toggle('toggled', evt.mode === _base_viewer.SpreadMode.NONE);
buttons.spreadOddButton.classList.toggle('toggled', evt.mode === _base_viewer.SpreadMode.ODD);
buttons.spreadEvenButton.classList.toggle('toggled', evt.mode === _base_viewer.SpreadMode.EVEN);
buttons.spreadNoneButton.classList.remove('toggled');
buttons.spreadOddButton.classList.remove('toggled');
buttons.spreadEvenButton.classList.remove('toggled');
switch (evt.mode) {
case _base_viewer.SpreadMode.NONE:
buttons.spreadNoneButton.classList.add('toggled');
break;
case _base_viewer.SpreadMode.ODD:
buttons.spreadOddButton.classList.add('toggled');
break;
case _base_viewer.SpreadMode.EVEN:
buttons.spreadEvenButton.classList.add('toggled');
break;
}
});
}
open() {