martok / palefill

Inject Polyfills for various web technologies into pages requiring them
https://martok.github.io/palefill/
Mozilla Public License 2.0
79 stars 9 forks source link

polyfill for AudioWorklet(Node)? #92

Closed roytam1 closed 9 months ago

roytam1 commented 9 months ago

discord now uses AudioWorkletNode but it doesn't seem to be implemented in UXP in near future, I wonder if it is good to have a polyfill in palefill?

AroKol78 commented 9 months ago

maybe it will be useful to someone

Add this userscript to greasemonkey and discord will work again. Fix Discord on TenFourFox, Firefox 52 ESR, and other old browser versions https://forum.palemoon.org/viewtopic.php?f=70&t=30397#p244333

NS-Clone commented 9 months ago

maybe it will be useful to someone

а чего оно делает (чтоб понять как вправлять мозги другим сайтам) и куда его вставлять? @Feodor2 @zanud телепатирую

zanud commented 9 months ago

а чего оно делает (чтоб понять как вправлять мозги другим сайтам)

В JavaScript современных браузеров завёлся встроенный класс AudioWorkletNode для изощрённого воспроизведения звуков ("художественного свиста"). Для тех браузеров, у которых в JS его нет, предлагается самодельная замена (polyfill).

и куда его вставлять?

По тех пор, пока в palefill поддержки нет, предлагается вставлять в странички с помощью GreaseMonkey или его аналогов.

Главный вопрос: оно тебе надо?

NS-Clone commented 9 months ago

Главный вопрос: оно тебе надо?

вопрос чего делает тот код

// ==UserScript==
// @name        Fix Discord on TenFourFox, Firefox 52 ESR, and other old browser versions
// @description hhhhh morck
// @namespace   https://discord.com/
// @version     1
// @grant       none
// @match       https://discord.com/*
// ==/UserScript==
let script = document.createElement('script');
let script2 = document.createElement('script');
let script3 = document.createElement('script');
 script.src = "https://discord.com/assets/d7c70c292a77dd025eba.js"
script2.src = "https://discord.com/assets/9d3ff64602b4f78a60d8.js"
script3.src = "https://discord.com/assets/bb94134c7a50eb6067c2.js"
document.body.appendChild(script);
document.body.appendChild(script2);
document.body.appendChild(script3);
var cssLink = document.createElement("link");
cssLink.rel = "stylesheet";
cssLink.href = "https://discord.com/assets/0.acc5d19163086a0c4b13.css";
cssLink.integrity = "";
document.head.appendChild(cssLink);

GreaseMonkey

лол я всегда думал что это фаирфоксоподобный браузер :)

NS-Clone commented 9 months ago

тобешь до запуска https://discord.com/assets/d7c70c292a77dd025eba.js" https://discord.com/assets/9d3ff64602b4f78a60d8.js" https://discord.com/assets/bb94134c7a50eb6067c2.js" https://discord.com/assets/0.acc5d19163086a0c4b13.css не доходило но как нашли что именно их надо запустить?

и тобешь через неделю они это гaфнo "пересоберут" и у всего окажутсо новые имена?

zanud commented 9 months ago

вопрос чего делает тот код

Подгружает с сайта в страничку три скрипта и стиль. Но обрати внимание: подгружает с Discord и только для Discord-овых страничек.

тобешь до запуска [...] не доходило

Да, вполне вероятно, что JS-код страничек достаточно рано обламывался на отсутствии AudioWorkletNode, и до загрузки этих файлов дело не доходило.

но как нашли что именно их надо запустить?

Автора пытать надо.

NS-Clone commented 9 months ago

так мне непонятно почему нельзя подменить код проверки наличия 2 года назад искал как организовать долбанную подмену одного на другое на прямую но ничего толком нненашел...

его то проще найти а заменить "на лету" нечемм

хотя то они слали на мерзское "ой ой что то пошло не так" а щас вообще пустая страница... pукoжoпы

zanud commented 9 months ago

так мне непонятно почему нельзя подменить код проверки наличия

А представь, что этот код где-то внутри обфусцированного файла размером килобайт в 100-150. И скорее всего, что никакой проверки там нет - код просто создаёт экземпляр класса, а класса в браузере нет, и на этом всё обламывается и браузер прекращает исполнение всех скриптов.

его то проще найти а заменить "на лету" нечемм

Да, заменить "на лету" нечто существующее довольно тяжело. Иногда вообще невозможно. Добавить недостающее намного проще. Palefill для этого и существует.

martok commented 9 months ago

For the future: please post in english only.