From: Brendan Dahl Date: Fri, 2 Dec 2011 18:19:43 +0000 (-0800) Subject: Merge upstream and change to error parameter for callback. X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=e0c231eec73ce6e5ed9a470f7329a0976782183e;p=pdf.js.git Merge upstream and change to error parameter for callback. --- e0c231eec73ce6e5ed9a470f7329a0976782183e diff --cc src/core.js index f2977ec,6b7845e..284b3cb --- a/src/core.js +++ b/src/core.js @@@ -67,10 -63,6 +67,9 @@@ var Page = (function pagePage() }; this.xref = xref; this.ref = ref; + + this.ctx = null; + this.callback = null; - this.errorback = null; } constructor.prototype = { @@@ -173,10 -165,8 +172,10 @@@ try { self.display(gfx, self.callback); } catch (e) { - if (self.errorback) - self.errorback(e); - if (self.callback) self.callback(e.toString()); - throw e; ++ if (self.callback) ++ self.callback(e); + else + throw e; } }); }; @@@ -610,14 -590,6 +599,14 @@@ var PDFDoc = (function pdfDoc() } }.bind(this)); + messageHandler.on('page_error', function pdfDocError(data) { + var page = this.pageCache[data.pageNum]; - if (page.errorback) - page.errorback(data.error); ++ if (page.callback) ++ page.callback(data.error); + else + throw data.error; + }, this); + setTimeout(function pdfDocFontReadySetTimeout() { messageHandler.send('doc', this.data); this.workerReadyPromise.resolve(true); diff --cc test/driver.js index 48ac77e,c11cecf..ffaf0b5 --- a/test/driver.js +++ b/test/driver.js @@@ -162,11 -162,9 +162,11 @@@ function nextPage(task, loadError) page.startRendering( ctx, - function nextPageStartRendering() { - snapshotCurrentPage(task, false); - }, - function errorNextPageStartRendering(e) { - snapshotCurrentPage(task, 'render : ' + e.message); - function nextPageStartRendering(e) { - snapshotCurrentPage(task, (!failure && e) ? - ('render : ' + e) : failure); ++ function nextPageStartRendering(error) { ++ var failureMessage = false; ++ if (error) ++ failureMessage = 'render : ' + error.message; ++ snapshotCurrentPage(task, failureMessage); } ); } catch (e) { diff --cc web/viewer.js index 2ccb155,7b15ee5..d6f5dd9 --- a/web/viewer.js +++ b/web/viewer.js @@@ -263,13 -215,8 +263,13 @@@ var PDFView = var container = document.getElementById('viewer'); while (container.hasChildNodes()) container.removeChild(container.lastChild); - + - var pdf = new PDFJS.PDFDoc(data); + var pdf; + try { + pdf = new PDFJS.PDFDoc(data); + } catch (e) { + this.error('An error occurred while reading the PDF.', e); + } var pagesCount = pdf.numPages; document.getElementById('numPages').innerHTML = pagesCount; document.getElementById('pageNumber').max = pagesCount; @@@ -554,16 -505,11 +558,15 @@@ var PageView = function pageView(contai ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, (function pageViewDrawCallback() { - this.updateStats(); - if (this.onAfterDraw) - this.onAfterDraw(); - }).bind(this), textLayer); + this.content.startRendering(ctx, - (function pageViewDrawCallback() { ++ (function pageViewDrawCallback(error) { ++ if (error) ++ PDFView.error('An error occurred while rendering the page.', error); + this.updateStats(); + if (this.onAfterDraw) + this.onAfterDraw(); - }).bind(this), - function pageViewErrorback(e) { - PDFView.error('An error occurred while rendering the page.', e); - } ++ }).bind(this), textLayer + ); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true);