1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-28 23:28:16 +02:00

Merge branch 'master' of git://github.com/mozilla/pdf.js.git into progress-indeterminate

Conflicts:
	extensions/firefox/components/PdfStreamConverter.js
This commit is contained in:
Yury Delendik 2012-08-23 15:23:44 -05:00
commit 296b98f977
3 changed files with 84 additions and 65 deletions

View file

@ -131,30 +131,28 @@ function PdfDataListener(length) {
}
PdfDataListener.prototype = {
set: function PdfDataListener_set(chunk, offset) {
if (this.length < 0) {
var willBeLoaded = this.loaded + chunk.length;
append: function PdfDataListener_append(chunk) {
var willBeLoaded = this.loaded + chunk.length;
if (this.length >= 0 && this.length < willBeLoaded) {
this.length = -1; // reset the length, server is giving incorrect one
}
if (this.length < 0 && this.data.length < willBeLoaded) {
// data length is unknown and new chunk will not fit in the existing
// buffer, resizing the buffer by doubling the its last length
if (this.data.length < willBeLoaded) {
var newLength = this.data.length;
for (; newLength < willBeLoaded; newLength *= 2) {}
var newData = new Uint8Array(newLength);
newData.set(this.data);
this.data = newData;
}
this.data.set(chunk, this.loaded);
this.loaded = willBeLoaded;
this.onprogress(this.loaded);
} else {
this.data.set(chunk, offset);
this.loaded = offset + chunk.length;
this.onprogress(this.loaded, this.length);
var newLength = this.data.length;
for (; newLength < willBeLoaded; newLength *= 2) {}
var newData = new Uint8Array(newLength);
newData.set(this.data);
this.data = newData;
}
this.data.set(chunk, this.loaded);
this.loaded = willBeLoaded;
this.onprogress(this.loaded, this.length >= 0 ? this.length : void(0));
},
getData: function PdfDataListener_getData() {
var data = this.length >= 0 ? this.data :
this.data.subarray(0, this.loaded);
var data = this.data;
if (this.loaded != data.length)
data = data.subarray(0, this.loaded);
delete this.data; // releasing temporary storage
return data;
},
@ -463,7 +461,7 @@ PdfStreamConverter.prototype = {
var binaryStream = this.binaryStream;
binaryStream.setInputStream(aInputStream);
this.dataListener.set(binaryStream.readByteArray(aCount), aOffset);
this.dataListener.append(binaryStream.readByteArray(aCount));
},
// nsIRequestObserver::onStartRequest