Merge branch 'fallback-fix'

Conflicts:
	src/core.js
This commit is contained in:
Yury Delendik 2013-05-09 08:44:42 -05:00
commit cddb5ea0bb
3 changed files with 30 additions and 15 deletions

View File

@ -137,6 +137,10 @@ var Page = (function PageClosure() {
var self = this;
var promise = new Promise();
function reject(e) {
promise.reject(e);
}
var pageListPromise = new Promise();
var pdfManager = this.pdfManager;
@ -150,7 +154,7 @@ var Page = (function PageClosure() {
this.idCounters);
var dataPromises = Promise.all(
[contentStreamPromise, resourcesPromise]);
[contentStreamPromise, resourcesPromise], reject);
dataPromises.then(function(data) {
var contentStream = data[0];
var resources = data[1];
@ -161,7 +165,8 @@ var Page = (function PageClosure() {
opListPromise.then(function(data) {
pageListPromise.resolve(data);
});
}
},
reject
);
});
@ -195,9 +200,9 @@ var Page = (function PageClosure() {
PartialEvaluator.optimizeQueue(pageQueue);
promise.resolve(pageData);
});
});
});
}, reject);
}, reject);
}, reject);
return promise;
},

View File

@ -694,16 +694,26 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
deferred.resolve(results);
return deferred;
}
function reject(reason) {
if (deferred.isRejected) {
return;
}
results = [];
deferred.reject(reason);
}
for (var i = 0, ii = promises.length; i < ii; ++i) {
var promise = promises[i];
promise.then((function(i) {
return function(value) {
if (deferred.isRejected) {
return;
}
results[i] = value;
unresolved--;
if (unresolved === 0)
deferred.resolve(results);
};
})(i));
})(i), reject);
}
return deferred;
};
@ -784,12 +794,8 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
},
then: function Promise_then(callback, errback, progressback) {
if (!callback) {
error('Requiring callback' + this.name);
}
// If the promise is already resolved, call the callback directly.
if (this.isResolved) {
if (this.isResolved && callback) {
var data = this.data;
callback.call(null, data);
} else if (this.isRejected && errback) {
@ -797,9 +803,12 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
var exception = this.exception;
errback.call(null, error, exception);
} else {
this.callbacks.push(callback);
if (errback)
if (callback) {
this.callbacks.push(callback);
}
if (errback) {
this.errbacks.push(errback);
}
}
if (progressback)

View File

@ -137,7 +137,8 @@ var WorkerMessageHandler = {
javaScript: results[6]
};
loadDocumentPromise.resolve(doc);
});
},
parseFailure);
};
var parseFailure = function parseFailure(e) {
@ -261,7 +262,7 @@ var WorkerMessageHandler = {
var onSuccess = function(doc) {
handler.send('GetDoc', { pdfInfo: doc });
pdfManager.ensureModel('traversePages', []);
pdfManager.ensureModel('traversePages', []).then(null, onFailure);
};
var onFailure = function(e) {