wvg/inject.js
FoxRefire 7eacc9ed5d Initial commit
Update README.md
2024-04-09 08:46:15 +09:00

23 lines
918 B
JavaScript

// Refactored conversion functions
const fromHexString = hexString => Uint8Array.from(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
const toHexString = bytes => bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');
// Refactored getPssh function
function getPssh(buffer) {
const bytes = fromHexString(toHexString(new Uint8Array(buffer)).match(/000000..70737368.*/)[0]);
return window.btoa(String.fromCharCode(...bytes));
}
// Refactored MediaKeySession.prototype.generateRequest
const originalGenerateRequest = MediaKeySession.prototype.generateRequest;
MediaKeySession.prototype.generateRequest = function(initDataType, initData) {
const result = originalGenerateRequest.call(this, initDataType, initData);
//Get PSSH and pass into content.js
document.dispatchEvent(new CustomEvent('pssh', {
detail: getPssh(initData)
}));
return result;
};