diff --git a/pdf.js b/pdf.js index f44fcb474..35b687063 100644 --- a/pdf.js +++ b/pdf.js @@ -3861,6 +3861,16 @@ var Catalog = (function catalogCatalog() { return constructor; })(); +/** + * The `PDFDocModel` holds all the data of the PDF file. Compared to the + * `PDFDoc`, this one doesn't have any job management code. + * Right now there exists one PDFDocModel on the main thread + one object + * for each worker. If there is no worker support enabled, there are two + * `PDFDocModel` objects on the main thread created. + * TODO: Refactor the internal object structure, such that there is no + * need for the `PDFDocModel` anymore and there is only one object on the + * main thread and not one entire copy on each worker instance. + */ var PDFDocModel = (function pdfDoc() { function constructor(arg, callback) { // Stream argument diff --git a/test/test_slave.html b/test/test_slave.html index ace21e133..9e5a054c6 100644 --- a/test/test_slave.html +++ b/test/test_slave.html @@ -13,7 +13,6 @@ - diff --git a/web/viewer.js b/web/viewer.js index 11db7cc79..7e5186073 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -181,7 +181,7 @@ var PDFView = { while (container.hasChildNodes()) container.removeChild(container.lastChild); - var pdf = new WorkerPDFDoc(data); + var pdf = new PDFDoc(data); var pagesCount = pdf.numPages; document.getElementById('numPages').innerHTML = pagesCount; document.getElementById('pageNumber').max = pagesCount; diff --git a/worker.js b/worker.js index 5f74d2daf..9aaf29410 100644 --- a/worker.js +++ b/worker.js @@ -66,6 +66,12 @@ var WorkerPage = (function() { return constructor; })(); +/** + * A PDF document and page is build up of many objects. E.g. there are objects + * for fonts, images, rendering code and such. These objects might get processed + * inside of a worker. The `PDFObjects` implements some basic functions to manage + * these objects. + */ var PDFObjects = (function() { function PDFObjects() { this.objs = {}; @@ -75,6 +81,7 @@ var PDFObjects = (function() { objs: null, /** + * Internal function. * Ensures there is an object defined for `objId`. Stores `data` on the * object *if* it is created. */ @@ -169,6 +176,15 @@ var PDFObjects = (function() { /** * "Promise" object. + * Each object that is stored in PDFObjects is based on a Promise object that + * contains the status of the object and the data. There migth be situations, + * where a function want to use the value of an object, but it isn't ready at + * that time. To get a notification, once the object is ready to be used, s.o. + * can add a callback using the `then` method on the promise that then calls + * the callback once the object gets resolved. + * A promise can get resolved only once and only once the data of the promise + * can be set. If any of these happens twice or the data is required before + * it was set, an exception is throw. */ var Promise = (function() { var EMPTY_PROMISE = {};