From 6e018288de617d39e68159b0f5c57a41e1a3a95d Mon Sep 17 00:00:00 2001 From: lawl Date: Tue, 31 Mar 2020 17:31:12 +0200 Subject: [PATCH] cleanup worker migration --- app/worker-client.js | 5 +- app/worker.js | 11 --- .../mumble-client-codecs-browser+1.2.0.patch | 69 ++++++++++++++----- 3 files changed, 52 insertions(+), 33 deletions(-) diff --git a/app/worker-client.js b/app/worker-client.js index 02d6f7a..1939646 100644 --- a/app/worker-client.js +++ b/app/worker-client.js @@ -4,8 +4,6 @@ import EventEmitter from 'events' import { Writable, PassThrough } from 'stream' import toArrayBuffer from 'to-arraybuffer' import ByteBuffer from 'bytebuffer' -//import work from 'webworkify-webpack' -//import worker from './worker' import Worker from './worker' /** @@ -14,8 +12,7 @@ import Worker from './worker' */ class WorkerBasedMumbleConnector { constructor () { - this._worker = new Worker() //work(require.resolve('./worker')) - console.log(this._worker) + this._worker = new Worker() this._worker.addEventListener('message', this._onMessage.bind(this)) this._reqId = 1 this._requests = {} diff --git a/app/worker.js b/app/worker.js index cb6b2ba..704492a 100644 --- a/app/worker.js +++ b/app/worker.js @@ -8,23 +8,12 @@ import CodecsBrowser from 'mumble-client-codecs-browser' // Polyfill nested webworkers for https://bugs.chromium.org/p/chromium/issues/detail?id=31666 import 'subworkers' -// Monkey-patch to allow webworkify-webpack and codecs to work inside of web worker -/* global URL */ -//if (typeof window === 'undefined') global.window = {} -//window.URL = URL - -// Using require to ensure ordering relative to monkey-patch above -//let CodecsBrowser = require('mumble-client-codecs-browser') - - let sampleRate let nextClientId = 1 let nextVoiceId = 1 let voiceStreams = [] let clients = [] - console.log('worker created!') - function postMessage (msg, transfer) { try { self.postMessage(msg, transfer) diff --git a/patches/mumble-client-codecs-browser+1.2.0.patch b/patches/mumble-client-codecs-browser+1.2.0.patch index ea1646b..bd042df 100644 --- a/patches/mumble-client-codecs-browser+1.2.0.patch +++ b/patches/mumble-client-codecs-browser+1.2.0.patch @@ -29,7 +29,7 @@ index 3925f29..be9af92 100644 +export default null \ No newline at end of file diff --git a/node_modules/mumble-client-codecs-browser/lib/decoder-stream.js b/node_modules/mumble-client-codecs-browser/lib/decoder-stream.js -index 6cfda8b..eed6fa3 100644 +index 6cfda8b..28a9549 100644 --- a/node_modules/mumble-client-codecs-browser/lib/decoder-stream.js +++ b/node_modules/mumble-client-codecs-browser/lib/decoder-stream.js @@ -1,9 +1,5 @@ @@ -42,28 +42,47 @@ index 6cfda8b..eed6fa3 100644 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _stream = require('stream'); -@@ -20,9 +16,9 @@ var _toArraybuffer = require('to-arraybuffer'); +@@ -12,17 +8,11 @@ var _reusePool = require('reuse-pool'); + + var _reusePool2 = _interopRequireDefault(_reusePool); + +-var _webworkify = require('webworkify'); +- +-var _webworkify2 = _interopRequireDefault(_webworkify); +- + var _toArraybuffer = require('to-arraybuffer'); var _toArraybuffer2 = _interopRequireDefault(_toArraybuffer); -var _decodeWorker = require('./decode-worker'); -+//var _decodeWorker = require('./decode-worker'); - +- -var _decodeWorker2 = _interopRequireDefault(_decodeWorker); -+import _decodeWorker2 from './decode-worker'; ++import DecodeWorker from './decode-worker'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -@@ -33,7 +29,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen +@@ -33,7 +23,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var pool = (0, _reusePool2.default)(function () { - return (0, _webworkify2.default)(_decodeWorker2.default); -+ return new _decodeWorker2(); ++ return new DecodeWorker(); }); // Prepare first worker pool.recycle(pool.get()); -@@ -112,4 +108,5 @@ var DecoderStream = function (_Transform) { +@@ -48,11 +38,6 @@ var DecoderStream = function (_Transform) { + + _this._worker = pool.get(); + _this._worker.onmessage = function (msg) { +- if (_this._worker.objectURL) { +- // The object URL can now be revoked as the worker has been loaded +- window.URL.revokeObjectURL(_this._worker.objectURL); +- _this._worker.objectURL = null; +- } + _this._onMessage(msg.data); + }; + return _this; +@@ -112,4 +97,5 @@ var DecoderStream = function (_Transform) { return DecoderStream; }(_stream.Transform); @@ -104,7 +123,7 @@ index f7187ab..c2ebaa3 100644 +export default null \ No newline at end of file diff --git a/node_modules/mumble-client-codecs-browser/lib/encoder-stream.js b/node_modules/mumble-client-codecs-browser/lib/encoder-stream.js -index 021f131..853a99e 100644 +index 021f131..eeb9189 100644 --- a/node_modules/mumble-client-codecs-browser/lib/encoder-stream.js +++ b/node_modules/mumble-client-codecs-browser/lib/encoder-stream.js @@ -1,9 +1,5 @@ @@ -117,29 +136,43 @@ index 021f131..853a99e 100644 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _stream = require('stream'); -@@ -16,9 +12,10 @@ var _webworkify = require('webworkify'); +@@ -12,13 +8,7 @@ var _reusePool = require('reuse-pool'); - var _webworkify2 = _interopRequireDefault(_webworkify); + var _reusePool2 = _interopRequireDefault(_reusePool); +-var _webworkify = require('webworkify'); +- +-var _webworkify2 = _interopRequireDefault(_webworkify); +- -var _encodeWorker = require('./encode-worker'); -+//var _encodeWorker = require('./encode-worker'); - +- -var _encodeWorker2 = _interopRequireDefault(_encodeWorker); -+//var _encodeWorker2 = _interopRequireDefault(_encodeWorker); -+import _encodeWorker2 from './encode-worker' ++import EncodeWorker from './encode-worker' function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -@@ -29,7 +26,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen +@@ -29,7 +19,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var pool = (0, _reusePool2.default)(function () { - return (0, _webworkify2.default)(_encodeWorker2.default); -+ return new _encodeWorker2(); ++ return new EncodeWorker(); }); // Prepare first worker pool.recycle(pool.get()); -@@ -96,4 +93,5 @@ var EncoderStream = function (_Transform) { +@@ -46,11 +36,6 @@ var EncoderStream = function (_Transform) { + + _this._worker = pool.get(); + _this._worker.onmessage = function (msg) { +- if (_this._worker.objectURL) { +- // The object URL can now be revoked as the worker has been loaded +- window.URL.revokeObjectURL(_this._worker.objectURL); +- _this._worker.objectURL = null; +- } + _this._onMessage(msg.data); + }; + return _this; +@@ -96,4 +81,5 @@ var EncoderStream = function (_Transform) { return EncoderStream; }(_stream.Transform);