From 237d3919fa6f07848f68927d96ab799f581d7979 Mon Sep 17 00:00:00 2001 From: redphx <96280+redphx@users.noreply.github.com> Date: Sun, 14 Jan 2024 16:15:42 +0700 Subject: [PATCH] Optimize class prototypes --- better-xcloud.user.js | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/better-xcloud.user.js b/better-xcloud.user.js index 607595f..e4bed26 100644 --- a/better-xcloud.user.js +++ b/better-xcloud.user.js @@ -3402,9 +3402,9 @@ class TouchController { const PREF_STYLE_STANDARD = PREFS.get(Preferences.STREAM_TOUCH_CONTROLLER_STYLE_STANDARD); const PREF_STYLE_CUSTOM = PREFS.get(Preferences.STREAM_TOUCH_CONTROLLER_STYLE_CUSTOM); - RTCPeerConnection.prototype.orgCreateDataChannel = RTCPeerConnection.prototype.createDataChannel; + const nativeCreateDataChannel = RTCPeerConnection.prototype.createDataChannel; RTCPeerConnection.prototype.createDataChannel = function() { - const dataChannel = this.orgCreateDataChannel.apply(this, arguments); + const dataChannel = nativeCreateDataChannel.apply(this, arguments); if (!TouchController.#enable || dataChannel.label !== 'message') { return dataChannel; } @@ -3485,9 +3485,9 @@ class Toast { } static setup() { - Toast.#$wrapper = createElement('div', {'class': 'bx-toast bx-offscreen'}, - Toast.#$msg = createElement('span', {'class': 'bx-toast-msg'}), - Toast.#$status = createElement('span', {'class': 'bx-toast-status'})); + Toast.#$wrapper = CE('div', {'class': 'bx-toast bx-offscreen'}, + Toast.#$msg = CE('span', {'class': 'bx-toast-msg'}), + Toast.#$status = CE('span', {'class': 'bx-toast-status'})); Toast.#$wrapper.addEventListener('transitionend', e => { const classList = Toast.#$wrapper.classList; @@ -8472,7 +8472,7 @@ function clearAllLogs() { function interceptHttpRequests() { - var BLOCKED_URLS = []; + let BLOCKED_URLS = []; if (PREFS.get(Preferences.BLOCK_TRACKING)) { // Clear Applications Insight buffers clearAllLogs(); @@ -8494,17 +8494,17 @@ function interceptHttpRequests() { } const xhrPrototype = XMLHttpRequest.prototype; - xhrPrototype.orgOpen = xhrPrototype.open; - xhrPrototype.orgSend = xhrPrototype.send; + const nativeXhrOpen = xhrPrototype.open; + const nativeXhrSend = xhrPrototype.send; xhrPrototype.open = function(method, url) { // Save URL to use it later in send() this._url = url; - return this.orgOpen.apply(this, arguments); + return nativeXhrOpen.apply(this, arguments); }; xhrPrototype.send = function(...arg) { - for (let blocked of BLOCKED_URLS) { + for (const blocked of BLOCKED_URLS) { if (this._url.startsWith(blocked)) { if (blocked === 'https://dc.services.visualstudio.com') { setTimeout(clearAllLogs, 1000); @@ -8513,7 +8513,7 @@ function interceptHttpRequests() { } } - return this.orgSend.apply(this, arguments); + return nativeXhrSend.apply(this, arguments); }; const PREF_PREFER_IPV6_SERVER = PREFS.get(Preferences.PREFER_IPV6_SERVER); @@ -8582,7 +8582,7 @@ function interceptHttpRequests() { for (const pair of clone.headers.entries()) { headers[pair[0]] = pair[1]; } - headers['authorization'] = `Bearer ${RemotePlay.XHOME_TOKEN}`; + headers.authorization = `Bearer ${RemotePlay.XHOME_TOKEN}`; const deviceInfo = RemotePlay.BASE_DEVICE_INFO; if (PREFS.get(Preferences.REMOTE_PLAY_RESOLUTION) === '720p') { @@ -8667,7 +8667,7 @@ function interceptHttpRequests() { for (const pair of clone.headers.entries()) { headers[pair[0]] = pair[1]; } - headers['authorization'] = `Bearer ${RemotePlay.XCLOUD_TOKEN}`; + headers.authorization = `Bearer ${RemotePlay.XCLOUD_TOKEN}`; const index = request.url.indexOf('.xboxlive.com'); request = new Request('https://wus.core.gssv-play-prod' + request.url.substring(index), { @@ -9535,7 +9535,7 @@ function patchVideoApi() { onStreamStarted(this); } - HTMLMediaElement.prototype.orgPlay = HTMLMediaElement.prototype.play; + const nativePlay = HTMLMediaElement.prototype.play; HTMLMediaElement.prototype.play = function() { LoadingScreen.reset(); @@ -9550,13 +9550,13 @@ function patchVideoApi() { }; } - return this.orgPlay.apply(this); + return nativePlay.apply(this); } this.addEventListener('playing', showFunc); injectStreamMenuButtons(); - return this.orgPlay.apply(this); + return nativePlay.apply(this); }; } @@ -9574,7 +9574,7 @@ function patchRtcCodecs() { const profilePrefix = codecProfile === 'high' ? '4d' : (codecProfile === 'low' ? '420' : '42e'); const profileLevelId = `profile-level-id=${profilePrefix}`; - RTCRtpTransceiver.prototype.orgSetCodecPreferences = RTCRtpTransceiver.prototype.setCodecPreferences; + const nativeSetCodecPreferences = RTCRtpTransceiver.prototype.setCodecPreferences; RTCRtpTransceiver.prototype.setCodecPreferences = function(codecs) { // Use the same codecs as desktop const newCodecs = codecs.slice(); @@ -9590,11 +9590,11 @@ function patchRtcCodecs() { }); try { - this.orgSetCodecPreferences.apply(this, [newCodecs]); + nativeSetCodecPreferences.apply(this, [newCodecs]); } catch (e) { // Didn't work -> use default codecs console.log(e); - this.orgSetCodecPreferences.apply(this, [codecs]); + nativeSetCodecPreferences.apply(this, [codecs]); } } } @@ -10166,9 +10166,9 @@ checkForUpdate(); // Monkey patches if (PREFS.get(Preferences.AUDIO_ENABLE_VOLUME_CONTROL)) { if (UserAgent.isSafari(true)) { - window.AudioContext.prototype.orgCreateGain = window.AudioContext.prototype.createGain; + const nativeCreateGain = window.AudioContext.prototype.createGain; window.AudioContext.prototype.createGain = function() { - const gainNode = this.orgCreateGain.apply(this); + const gainNode = nativeCreateGain.apply(this); gainNode.gain.value = (PREFS.get(Preferences.AUDIO_VOLUME) / 100).toFixed(2); STREAM_AUDIO_GAIN_NODE = gainNode; return gainNode; @@ -10182,11 +10182,11 @@ if (PREFS.get(Preferences.AUDIO_ENABLE_VOLUME_CONTROL)) { return ctx; } - HTMLAudioElement.prototype.orgPlay = HTMLAudioElement.prototype.play; + const nativePlay = HTMLAudioElement.prototype.play; HTMLAudioElement.prototype.play = function() { this.muted = true; - const promise = this.orgPlay.apply(this); + const promise = nativePlay.apply(this); if (STREAM_AUDIO_GAIN_NODE) { return promise; }