1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-26 10:08:06 +02:00

Merge pull request #4752 from yurydelendik/refmsghdlr

Refactors MessageHandler.send to remove callbacks
This commit is contained in:
Jonas Jenwald 2014-05-13 22:47:04 +02:00
commit 44cd0f4a76
5 changed files with 175 additions and 215 deletions

View file

@ -214,7 +214,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
then(function(imageObj) {
var imgData = imageObj.createImageData(/* forceRGBA = */ false);
self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData],
null, [imgData.data.buffer]);
[imgData.data.buffer]);
}).then(null, function (reason) {
warn('Unable to decode image: ' + reason);
self.handler.send('obj', [objId, self.pageIndex, 'Image', null]);
@ -1612,7 +1612,7 @@ var OperatorList = (function OperatorListClosure() {
},
pageIndex: this.pageIndex,
intent: this.intent
}, null, transfers);
}, transfers);
this.dependencies = {};
this.fnArray.length = 0;
this.argsArray.length = 0;

View file

@ -31,14 +31,11 @@ var PDFImage = (function PDFImageClosure() {
var colorSpace = dict.get('ColorSpace', 'CS');
colorSpace = ColorSpace.parse(colorSpace, xref, res);
var numComps = colorSpace.numComps;
var resolvePromise;
handler.send('JpegDecode', [image.getIR(), numComps], function(message) {
var decodePromise = handler.sendWithPromise('JpegDecode',
[image.getIR(), numComps]);
return decodePromise.then(function (message) {
var data = message.data;
var stream = new Stream(data, 0, data.length, image.dict);
resolvePromise(stream);
});
return new Promise(function (resolve) {
resolvePromise = resolve;
return new Stream(data, 0, data.length, image.dict);
});
} else {
return Promise.resolve(image);

View file

@ -258,81 +258,64 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
}, onFailure);
});
handler.on('GetPageRequest', function wphSetupGetPage(data) {
var pageIndex = data.pageIndex;
pdfManager.getPage(pageIndex).then(function(page) {
handler.on('GetPage', function wphSetupGetPage(data) {
return pdfManager.getPage(data.pageIndex).then(function(page) {
var rotatePromise = pdfManager.ensure(page, 'rotate');
var refPromise = pdfManager.ensure(page, 'ref');
var viewPromise = pdfManager.ensure(page, 'view');
Promise.all([rotatePromise, refPromise, viewPromise]).then(
return Promise.all([rotatePromise, refPromise, viewPromise]).then(
function(results) {
var page = {
pageIndex: data.pageIndex,
return {
rotate: results[0],
ref: results[1],
view: results[2]
};
handler.send('GetPage', { pageInfo: page });
});
});
});
handler.on('GetPageIndex', function wphSetupGetPageIndex(data, deferred) {
handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
var ref = new Ref(data.ref.num, data.ref.gen);
var catalog = pdfManager.pdfDocument.catalog;
catalog.getPageIndex(ref).then(function (pageIndex) {
deferred.resolve(pageIndex);
}, deferred.reject);
return catalog.getPageIndex(ref);
});
handler.on('GetDestinations',
function wphSetupGetDestinations(data, deferred) {
pdfManager.ensureCatalog('destinations').then(function(destinations) {
deferred.resolve(destinations);
});
function wphSetupGetDestinations(data) {
return pdfManager.ensureCatalog('destinations');
}
);
handler.on('GetAttachments',
function wphSetupGetAttachments(data, deferred) {
pdfManager.ensureCatalog('attachments').then(function(attachments) {
deferred.resolve(attachments);
}, deferred.reject);
function wphSetupGetAttachments(data) {
return pdfManager.ensureCatalog('attachments');
}
);
handler.on('GetJavaScript',
function wphSetupGetJavaScript(data, deferred) {
pdfManager.ensureCatalog('javaScript').then(function (js) {
deferred.resolve(js);
}, deferred.reject);
function wphSetupGetJavaScript(data) {
return pdfManager.ensureCatalog('javaScript');
}
);
handler.on('GetOutline',
function wphSetupGetOutline(data, deferred) {
pdfManager.ensureCatalog('documentOutline').then(function (outline) {
deferred.resolve(outline);
}, deferred.reject);
function wphSetupGetOutline(data) {
return pdfManager.ensureCatalog('documentOutline');
}
);
handler.on('GetMetadata',
function wphSetupGetMetadata(data, deferred) {
Promise.all([pdfManager.ensureDoc('documentInfo'),
pdfManager.ensureCatalog('metadata')]).then(
function (results) {
deferred.resolve(results);
}, deferred.reject);
function wphSetupGetMetadata(data) {
return Promise.all([pdfManager.ensureDoc('documentInfo'),
pdfManager.ensureCatalog('metadata')]);
}
);
handler.on('GetData', function wphSetupGetData(data, deferred) {
handler.on('GetData', function wphSetupGetData(data) {
pdfManager.requestLoadedStream();
pdfManager.onLoadedStream().then(function(stream) {
deferred.resolve(stream.bytes);
return pdfManager.onLoadedStream().then(function(stream) {
return stream.bytes;
});
});
@ -340,16 +323,9 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
pdfManager.updatePassword(data);
});
handler.on('GetAnnotationsRequest', function wphSetupGetAnnotations(data) {
pdfManager.getPage(data.pageIndex).then(function(page) {
pdfManager.ensure(page, 'getAnnotationsData', []).then(
function(annotationsData) {
handler.send('GetAnnotations', {
pageIndex: data.pageIndex,
annotations: annotationsData
});
}
);
handler.on('GetAnnotations', function wphSetupGetAnnotations(data) {
return pdfManager.getPage(data.pageIndex).then(function(page) {
return pdfManager.ensure(page, 'getAnnotationsData', []);
});
});
@ -398,29 +374,25 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
});
}, this);
handler.on('GetTextContent', function wphExtractText(data, deferred) {
pdfManager.getPage(data.pageIndex).then(function(page) {
handler.on('GetTextContent', function wphExtractText(data) {
return pdfManager.getPage(data.pageIndex).then(function(page) {
var pageNum = data.pageIndex + 1;
var start = Date.now();
page.extractTextContent().then(function(textContent) {
deferred.resolve(textContent);
return page.extractTextContent().then(function(textContent) {
info('text indexing: page=' + pageNum + ' - time=' +
(Date.now() - start) + 'ms');
}, function (e) {
// Skip errored pages
deferred.reject(e);
return textContent;
});
});
});
handler.on('Cleanup', function wphCleanup(data, deferred) {
handler.on('Cleanup', function wphCleanup(data) {
pdfManager.cleanup();
deferred.resolve(true);
return true;
});
handler.on('Terminate', function wphTerminate(data, deferred) {
handler.on('Terminate', function wphTerminate(data) {
pdfManager.terminate();
deferred.resolve();
});
}
};