Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Jellyfin] Old browsers #112

Merged
merged 5 commits into from
Sep 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
BASE_DIR:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
DIST_DIR:=$(BASE_DIR)dist/libraries

GLOBAL_CFLAGS:=-O3
GLOBAL_CFLAGS:=-O3 -s ENVIRONMENT=web,webview

all: subtitleoctopus

Expand Down Expand Up @@ -334,6 +334,8 @@ dist/js/subtitles-octopus-worker-legacy.js: src/subtitles-octopus-worker.bc src/
--post-js src/post-worker.js \
-s WASM=0 \
-s LEGACY_VM_SUPPORT=1 \
-s MIN_CHROME_VERSION=27 \
-s MIN_SAFARI_VERSION=60005 \
$(EMCC_COMMON_ARGS)

dist/js/subtitles-octopus.js: dist/license/all src/subtitles-octopus.js
Expand Down
33 changes: 12 additions & 21 deletions src/post-worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,14 @@ function messageResender() {
}
}

function _applyKeys(input, output) {
var vargs = Object.keys(input);

for (var i = 0; i < vargs.length; i++) {
output[vargs[i]] = input[vargs[i]];
}
}

function onMessageFromMainEmscriptenThread(message) {
if (!calledMain && !message.data.preMain) {
if (!messageBuffer) {
Expand Down Expand Up @@ -562,11 +570,7 @@ function onMessageFromMainEmscriptenThread(message) {
var event = message.data.event;
var i = self.octObj.allocEvent();
var evnt_ptr = self.octObj.track.get_events(i);
var vargs = Object.keys(event);

for (const varg of vargs) {
evnt_ptr[varg] = event[varg];
}
_applyKeys(event, evnt_ptr);
break;
case 'get-events':
var events = [];
Expand Down Expand Up @@ -598,12 +602,7 @@ function onMessageFromMainEmscriptenThread(message) {
var event = message.data.event;
var i = message.data.index;
var evnt_ptr = self.octObj.track.get_events(i);

var vargs = Object.keys(event);

for (const varg of vargs) {
evnt_ptr[varg] = event[varg];
}
_applyKeys(event, evnt_ptr);
break;
case 'remove-event':
var i = message.data.index;
Expand All @@ -613,11 +612,7 @@ function onMessageFromMainEmscriptenThread(message) {
var style = message.data.style;
var i = self.octObj.allocStyle();
var styl_ptr = self.octObj.track.get_styles(i);
var vargs = Object.keys(style);

for (const varg of vargs) {
styl_ptr[varg] = style[varg];
}
_applyKeys(style, styl_ptr);
break;
case 'get-styles':
var styles = [];
Expand Down Expand Up @@ -663,11 +658,7 @@ function onMessageFromMainEmscriptenThread(message) {
var style = message.data.style;
var i = message.data.index;
var styl_ptr = self.octObj.track.get_styles(i);
var vargs = Object.keys(style);

for (const varg of vargs) {
styl_ptr[varg] = style[varg];
}
_applyKeys(style, styl_ptr);
break;
case 'remove-style':
var i = message.data.index;
Expand Down
43 changes: 43 additions & 0 deletions src/pre-worker.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
if (!String.prototype.startsWith) {
String.prototype.startsWith = function (search, pos) {
if (pos === undefined) {
pos = 0;
}
return this.substring(pos, search.length) === search;
};
}

if (!String.prototype.endsWith) {
String.prototype.endsWith = function(search, this_len) {
if (this_len === undefined || this_len > this.length) {
Expand All @@ -7,6 +16,40 @@ if (!String.prototype.endsWith) {
};
}

if (!String.prototype.includes) {
String.prototype.includes = function (search, pos) {
return this.indexOf(search, pos) !== -1;
};
}

if (!Uint8Array.prototype.slice) {
Object.defineProperty(Uint8Array.prototype, 'slice', {
value: function (begin, end)
{
return new Uint8Array(this.subarray(begin, end));
}
});
}

if (!Int16Array.from) {
// Doesn't work for String
Int16Array.from = function (source) {
var arr = new Int16Array(source.length);
arr.set(source, 0);
return arr;
};
}

if (!Int32Array.from) {
// Doesn't work for String
Int32Array.from = function (source) {
var arr = new Int32Array(source.length);
arr.set(source, 0);
return arr;
};
}


var hasNativeConsole = typeof console !== "undefined";

// implement console methods if they're missing
Expand Down