From c8e205f9e6c1cb23da3fe500732b31ec4ba6be8d Mon Sep 17 00:00:00 2001 From: Gerben Date: Fri, 18 Oct 2019 23:22:29 +0530 Subject: [PATCH] Load content script only for audio files. --- app/manifest.json | 8 ++------ app/scripts/background.js | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/manifest.json b/app/manifest.json index 3db8ef3..dcef13b 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -8,12 +8,8 @@ "scripts/background.js" ] }, - "content_scripts": [{ - "matches": [""], - "js": ["scripts/contentscript.js"], - "run_at": "document_end" - }], "permissions": [ - "activeTab" + "", + "webRequest" ] } diff --git a/app/scripts/background.js b/app/scripts/background.js index e69de29..d2071d4 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -0,0 +1,21 @@ +async function onHeadersReceived({ responseHeaders, url, tabId }) { + const isAudio = responseHeaders.some(header => + header.name === 'Content-Type' && header.value.startsWith('audio/') + ); + + if (isAudio) { + browser.tabs.executeScript(tabId, { + runAt: 'document_end', + file: '/scripts/contentscript.js', + }); + } +} + +browser.webRequest.onHeadersReceived.addListener( + onHeadersReceived, + { + urls: [''], + types: ['main_frame'], + }, + ['responseHeaders'], +);