Let finishPaintTask in pdf_page_view.js return a promise instead, to avoid having to throw in the paintTask.promise rejection handler, and don't reject the PDFPageView_draw promise when rendering is cancelled

As mentioned on IRC yesterday, we currently throw even when rendering is `cancelled`, which is annoying when the devtools are active. Furthermore, since `cancelled` isn't really an error, rejecting the `PDFPageView_draw` promise seems somewhat strange in that case.
This commit is contained in:
Jonas Jenwald 2016-11-18 21:52:25 +01:00
parent 017e9b98d1
commit 73e0daed6c

View File

@ -423,7 +423,7 @@ var PDFPageView = (function PDFPageViewClosure() {
if (error === 'cancelled') {
self.error = null;
return;
return Promise.resolve(undefined);
}
self.renderingState = RenderingStates.FINISHED;
@ -459,6 +459,11 @@ var PDFPageView = (function PDFPageViewClosure() {
pageNumber: self.id,
cssTransform: false,
});
if (error) {
return Promise.reject(error);
}
return Promise.resolve(undefined);
};
var paintTask = this.renderer === RendererType.SVG ?
@ -468,7 +473,7 @@ var PDFPageView = (function PDFPageViewClosure() {
this.paintTask = paintTask;
var resultPromise = paintTask.promise.then(function () {
finishPaintTask(null);
return finishPaintTask(null).then(function () {
if (textLayer) {
pdfPage.getTextContent({
normalizeWhitespace: true,
@ -477,9 +482,9 @@ var PDFPageView = (function PDFPageViewClosure() {
textLayer.render(TEXT_LAYER_RENDER_DELAY);
});
}
});
}, function (reason) {
finishPaintTask(reason);
throw reason;
return finishPaintTask(reason);
});
if (this.annotationLayerFactory) {