browser.browserAction.onClicked.addListener(() => { browser.tabs.create({ url: browser.runtime.getURL("player.html") }); }); browser.webRequest.onBeforeRequest.addListener( (details) => { const url = details.url.toLowerCase(); if (isSupportedMediaUrl(url)) { const playerUrl = browser.runtime.getURL("player.html") + "?media=" + encodeURIComponent(details.url); return { redirectUrl: playerUrl }; } return {}; }, { urls: [""], types: ["main_frame", "sub_frame"] }, ["blocking"] ); function isSupportedMediaUrl(url) { return url.match(/\.(669|amf|it|mod|mtm|mptm|s3m|stm|ult|uni|xm|umx)$/i) || url.match(/^(669|amf|it|mod|mtm|mptm|s3m|stm|ult|uni|xm|umx)\./i); }