Bug 980742 - Update Shumway to version 0.8.271. r=till

This commit is contained in:
Yury Delendik 2014-03-07 14:25:03 -06:00
Родитель 2f2f5dd033
Коммит 4543644062
9 изменённых файлов: 11711 добавлений и 10281 удалений

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичные данные
browser/extensions/shumway/content/playerglobal/playerglobal.abcs Normal file

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -4010,7 +4010,7 @@ for (var i = 0; i < 288; ++i)
bitLengths[i] = i < 144 || i > 279 ? 8 : i < 256 ? 9 : 7;
var fixedLiteralTable = makeHuffmanTable(bitLengths);
function makeHuffmanTable(bitLengths) {
var maxBits = max.apply(null, bitLengths);
var maxBits = Math.max.apply(null, bitLengths);
var numLengths = bitLengths.length;
var size = 1 << maxBits;
var codes = new Uint32Array(size);
@ -4042,7 +4042,14 @@ function createInflatedStream(bytes, outputLength) {
available: 0,
completed: false
};
var state = {};
var state = {
header: null,
distanceTable: null,
literalTable: null,
sym: null,
len: null,
sym2: null
};
do {
inflateBlock(stream, output, state);
} while (!output.completed && stream.pos < stream.end);
@ -4050,7 +4057,7 @@ function createInflatedStream(bytes, outputLength) {
}
var InflateNoDataError = {};
function inflateBlock(stream, output, state) {
var header = state.header !== undefined ? state.header : state.header = readBits(stream.bytes, stream, 3);
var header = state.header !== null ? state.header : state.header = readBits(stream.bytes, stream, 3);
switch (header >> 1) {
case 0:
stream.align();
@ -4066,10 +4073,7 @@ function inflateBlock(stream, output, state) {
var begin = pos + 4;
var end = stream.pos = begin + len;
var sbytes = stream.bytes, dbytes = output.data;
splice.apply(dbytes, [
output.available,
len
].concat(slice.call(sbytes, begin, end)));
dbytes.set(sbytes.subarray(begin, end), output.available);
output.available += len;
break;
case 1:
@ -4077,7 +4081,7 @@ function inflateBlock(stream, output, state) {
break;
case 2:
var distanceTable, literalTable;
if (state.distanceTable !== undefined) {
if (state.distanceTable !== null) {
distanceTable = state.distanceTable;
literalTable = state.literalTable;
} else {
@ -4130,13 +4134,13 @@ function inflateBlock(stream, output, state) {
literalTable = state.literalTable = makeHuffmanTable(bitLengths);
}
inflate(stream, output, literalTable, distanceTable, state);
delete state.distanceTable;
delete state.literalTable;
state.distanceTable = null;
state.literalTable = null;
break;
default:
fail('unknown block type', 'inflate');
}
delete state.header;
state.header = null;
output.completed = !(!(header & 1));
}
function readBits(bytes, stream, size) {
@ -4165,22 +4169,22 @@ function inflate(stream, output, literalTable, distanceTable, state) {
var pos = output.available;
var dbytes = output.data;
var sbytes = stream.bytes;
var sym = state.sym !== undefined ? state.sym : readCode(sbytes, stream, literalTable);
var sym = state.sym !== null ? state.sym : readCode(sbytes, stream, literalTable);
while (sym !== 256) {
if (sym < 256) {
dbytes[pos++] = sym;
} else {
state.sym = sym;
sym -= 257;
var len = state.len !== undefined ? state.len : state.len = lengthCodes[sym] + readBits(sbytes, stream, lengthExtraBits[sym]);
var sym2 = state.sym2 !== undefined ? state.sym2 : state.sym2 = readCode(sbytes, stream, distanceTable);
var len = state.len !== null ? state.len : state.len = lengthCodes[sym] + readBits(sbytes, stream, lengthExtraBits[sym]);
var sym2 = state.sym2 !== null ? state.sym2 : state.sym2 = readCode(sbytes, stream, distanceTable);
var distance = distanceCodes[sym2] + readBits(sbytes, stream, distanceExtraBits[sym2]);
var i = pos - distance;
while (len--)
dbytes[pos++] = dbytes[i++];
delete state.sym2;
delete state.len;
delete state.sym;
state.sym2 = null;
state.len = null;
state.sym = null;
}
output.available = pos;
sym = readCode(sbytes, stream, literalTable);
@ -5827,7 +5831,7 @@ function readTags(context, stream, swfVersion, final, onprogress, onexception) {
var tag = null;
if (context._readTag) {
tag = context._readTag;
delete context._readTag;
context._readTag = null;
}
try {
while (stream.pos < stream.end) {
@ -5951,7 +5955,14 @@ function CompressedPipe(target, length) {
this.state = {
bitBuffer: 0,
bitLength: 0,
compression: {}
compression: {
header: null,
distanceTable: null,
literalTable: null,
sym: null,
len: null,
sym2: null
}
};
this.output = {
data: new Uint8Array(length),

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -1,2 +1,2 @@
0.8.6
4728574
0.8.271
2717b0c

Просмотреть файл

@ -80,6 +80,11 @@ function fallback() {
FirefoxCom.requestSync('fallback', null)
}
var playerglobalInfo = {
abcs: SHUMWAY_ROOT + "playerglobal/playerglobal.abcs",
catalog: SHUMWAY_ROOT + "playerglobal/playerglobal.json"
};
function runViewer() {
var flashParams = JSON.parse(FirefoxCom.requestSync('getPluginParams', null));
FileLoadingService.setBaseUrl(flashParams.baseUrl);
@ -222,7 +227,7 @@ var FileLoadingService = {
case "open": this.onopen(); break;
case "close":
this.onclose();
delete FileLoadingService.sessions[sessionId];
FileLoadingService.sessions[sessionId] = null;
console.log('Session #' + sessionId +': closed');
break;
case "error":
@ -258,6 +263,9 @@ var FileLoadingService = {
};
function parseSwf(url, movieParams, objectParams) {
var enableVerifier = Shumway.AVM2.Runtime.enableVerifier;
var EXECUTION_MODE = Shumway.AVM2.Runtime.EXECUTION_MODE;
var compilerSettings = JSON.parse(
FirefoxCom.requestSync('getCompilerSettings', null));
enableVerifier.value = compilerSettings.verifier;
@ -274,7 +282,7 @@ function parseSwf(url, movieParams, objectParams) {
FirefoxCom.request('endActivation', null);
}
createAVM2(builtinPath, playerGlobalPath, avm1Path,
createAVM2(builtinPath, playerglobalInfo, avm1Path,
compilerSettings.sysCompiler ? EXECUTION_MODE.COMPILE : EXECUTION_MODE.INTERPRET,
compilerSettings.appCompiler ? EXECUTION_MODE.COMPILE : EXECUTION_MODE.INTERPRET,
function (avm2) {