diff --git a/js/global.js b/js/global.js index 77bc5fd..8e858cd 100644 --- a/js/global.js +++ b/js/global.js @@ -125,6 +125,8 @@ function disableExtension() { }); chrome.tabs.onUpdated.removeListener(sendMessage); chrome.webRequest.onBeforeRequest.removeListener(processRequest); +// for (tabIds) +// chrome.tabs.sendMessage(tabId, {url: ""}); tabIds.clear(); } diff --git a/js/youtube_audio.js b/js/youtube_audio.js index b8354e4..5d41e0e 100644 --- a/js/youtube_audio.js +++ b/js/youtube_audio.js @@ -1,35 +1,40 @@ -function makeSetAudioURL(videoElement, url) { - function setAudioURL() { - if (videoElement.src != url) { - videoElement.pause(); - videoElement.src = url; - videoElement.currentTime = 0; - videoElement.play(); - } +var oldUrl; +var makeSetAudioURL = function(videoElement, url) { + if (oldUrl === undefined) { + oldUrl = videoElement.src; + } + if (videoElement.src != url) { + videoElement.pause(); + videoElement.src = url; + videoElement.currentTime = 0; + videoElement.play(); } - setAudioURL(); - return setAudioURL; -} +}; chrome.runtime.onMessage.addListener( function (request, sender, sendResponse) { - var url = request.url; - var videoElements = document.getElementsByTagName('video'); - var videoElement = videoElements[0]; + let url = request.url; + let videoElement = document.getElementsByTagName('video')[0]; videoElement.onloadeddata = makeSetAudioURL(videoElement, url); - if (document.getElementsByClassName('audio_only_div').length == 0) { - var extensionAlert = document.createElement('div'); + let audioOnlyDivs = document.getElementsByClassName('audio_only_div'); + if (audioOnlyDivs.length == 0) { + let extensionAlert = document.createElement('div'); extensionAlert.className = 'audio_only_div'; - var alertText = document.createElement('p'); + let alertText = document.createElement('p'); alertText.className = 'alert_text'; alertText.innerHTML = 'Youtube Audio Extension is running. It disables the video stream and uses only the audio stream' + ' which saves battery life and bandwidth / data when you just want to listen to just songs. If you want to watch' + ' video also, click on the extension icon and refresh your page.'; extensionAlert.appendChild(alertText); - var parent = videoElement.parentNode.parentNode; + let parent = videoElement.parentNode.parentNode; parent.appendChild(extensionAlert); } + else if (url == "") { + for(div in audioOnlyDivs) { + div.parentNode.removeChild(div); + } + } } ); diff --git a/manifest.json b/manifest.json index 009cff3..5811088 100644 --- a/manifest.json +++ b/manifest.json @@ -25,6 +25,7 @@ }, "content_scripts": [ { + "all_frames": true, "matches": [ "*://www.youtube.com/*", "*://m.youtube.com/*"