diff --git a/background.js b/background.js index 07743435..04e644af 100644 --- a/background.js +++ b/background.js @@ -3,32 +3,38 @@ var previousVideoID = null //the id of this user, randomly generated once per install var userID = null; -chrome.tabs.onUpdated.addListener( // On tab update - function(tabId, changeInfo, tab) { - if (changeInfo != undefined && changeInfo.url != undefined) { - let id = getYouTubeVideoID(changeInfo.url); - if (changeInfo.url && id) { // If URL changed and is youtube video message contentScript the video id - videoIDChange(id); +//when a new tab is highlighted +chrome.tabs.onActivated.addListener( + function(activeInfo) { + chrome.tabs.get(activeInfo.tabId, function(tab) { + let id = getYouTubeVideoID(tab.url); - chrome.tabs.sendMessage( tabId, { - message: 'ytvideoid', - id: id - }); + //if this even is a YouTube tab + if (id) { + videoIDChange(id, activeInfo.tabId); } - } + }) } ); +//when a tab changes URLs +chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + if (changeInfo != undefined && changeInfo.url != undefined) { + let id = getYouTubeVideoID(changeInfo.url); + + //if URL changed and is youtube video message contentScript the video id + if (changeInfo.url && id) { + videoIDChange(id, tabId); + } + } +}); + chrome.runtime.onMessage.addListener(function (request, sender, callback) { if (request.message == "submitTimes") { submitTimes(request.videoID, callback); //this allows the callback to be called later by the submitTimes function return true; - } else if (request.message == "ytvideoid") { - if (previousVideoID != request.videoID) { - videoIDChange(request.videoID); - } } else if (request.message == "addSponsorTime") { addSponsorTime(request.time); } else if (request.message == "getSponsorTimes") { @@ -147,7 +153,13 @@ function submitTimes(videoID, callback) { }); } -function videoIDChange(currentVideoID) { +function videoIDChange(currentVideoID, tabId) { + //send a message to the content script + chrome.tabs.sendMessage(tabId, { + message: 'ytvideoid', + id: currentVideoID + }); + //warn them if they had unsubmitted times if (previousVideoID != null) { //get the sponsor times from storage diff --git a/content.js b/content.js index 238f6f19..e17aeb77 100644 --- a/content.js +++ b/content.js @@ -1,11 +1,5 @@ if(id = getYouTubeVideoID(document.URL)){ // Direct Links videoIDChange(id); - - //tell background.js about this - chrome.runtime.sendMessage({ - message: "ytvideoid", - videoID: id - }); } //was sponsor data found when doing SponsorsLookup