From ca99fef55445cdf9ab06c6cef2bd32cd2ae40e99 Mon Sep 17 00:00:00 2001 From: Lorans Chirko Date: Fri, 19 Jan 2018 11:50:53 +0200 Subject: [PATCH 1/4] fixed Youtube embedded bug #44 --- background.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/background.js b/background.js index 967878f..6332227 100644 --- a/background.js +++ b/background.js @@ -178,6 +178,7 @@ chrome.browserAction.onClicked.addListener(function(e) { chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), status = DataStorage.get('status'); @@ -191,19 +192,19 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { break; case 'started': - if(lastPlayingTabId && sender.tab.id != lastPlayingTabId) { - chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}); + var isFrameIdChanged = (lastPlayingFrameId && sender.frameId != lastPlayingFrameId); + if(lastPlayingTabId && sender.tab.id != lastPlayingTabId || isFrameIdChanged) { + chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}, {frameId: lastPlayingFrameId}); } DataStorage.set('lastPlayingTabId', sender.tab.id); + DataStorage.set('lastPlayingFrameId', sender.frameId); DataStorage.set('status', 'playing'); chrome.browserAction.setIcon({path: STOP_ICON}); - if (request.title) { chrome.browserAction.setTitle({title: "Playing: " + request.title}); } else { chrome.browserAction.setTitle({title: "Playing: " + sender.tab.title}); } - break; case 'paused': From ded60bfe483205fde748043b547a2772c34229d0 Mon Sep 17 00:00:00 2001 From: Lorans Chirko Date: Fri, 19 Jan 2018 14:38:01 +0200 Subject: [PATCH 2/4] added lastPausedFrameId for correct work playback/pause button --- background.js | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/background.js b/background.js index 6332227..2a618da 100644 --- a/background.js +++ b/background.js @@ -158,19 +158,25 @@ chrome.storage.onChanged.addListener(function(changes, namespace) { chrome.browserAction.onClicked.addListener(function(e) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')), status = DataStorage.get('status'); switch(status) { case "playing": if(lastPlayingTabId) { - chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}); + if(!lastPlayingFrameId) + lastPlayingFrameId = 0; + chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}, {frameId: lastPlayingFrameId}); } break; case "paused": if(lastPlayingTabId) { - chrome.tabs.sendMessage(lastPlayingTabId, {action: 'play'}); + if(!lastPausedFrameId) + lastPausedFrameId = 0; + chrome.tabs.sendMessage(lastPausedTabId, {action: 'play'}, {frameId: lastPausedFrameId}); } break; } @@ -192,8 +198,10 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { break; case 'started': - var isFrameIdChanged = (lastPlayingFrameId && sender.frameId != lastPlayingFrameId); + var isFrameIdChanged = (lastPlayingTabId && lastPlayingFrameId && sender.frameId != lastPlayingFrameId); if(lastPlayingTabId && sender.tab.id != lastPlayingTabId || isFrameIdChanged) { + if(!lastPlayingFrameId) + lastPlayingFrameId = 0; chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}, {frameId: lastPlayingFrameId}); } DataStorage.set('lastPlayingTabId', sender.tab.id); @@ -209,6 +217,7 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { case 'paused': DataStorage.set('lastPausedTabId', sender.tab.id); + DataStorage.set('lastPausedFrameId', sender.frameId); DataStorage.set('status', 'paused'); chrome.browserAction.setIcon({path: PLAY_ICON}); chrome.browserAction.setTitle({title: "StoPlay" }); @@ -227,20 +236,26 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { chrome.commands.onCommand.addListener(function(command) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')), status = DataStorage.get('status'); + if(!lastPausedFrameId) + lastPausedFrameId = 0; if(lastPlayingTabId) { var action = (status == 'playing') ? 'pause' : 'play'; - chrome.tabs.sendMessage(lastPlayingTabId, {action: action}); + chrome.tabs.sendMessage(lastPlayingTabId, {action: action}, {frameId: lastPausedFrameId}); } }); chrome.tabs.onRemoved.addListener(function(tabId){ var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), - lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')); - + lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')); + if(!lastPausedFrameId) + lastPausedFrameId = 0; if(tabId == lastPlayingTabId) { DataStorage.set('lastPlayingTabId', null); if(lastPausedTabId != tabId) { - chrome.tabs.sendMessage(lastPausedTabId, {action: 'play'}); + chrome.tabs.sendMessage(lastPausedTabId, {action: 'play'}, {frameId: lastPausedFrameId}); } } }); + From bcfbb669a827a76a4574bd02f33aafc2d19e4c01 Mon Sep 17 00:00:00 2001 From: Lorans Chirko Date: Fri, 19 Jan 2018 15:51:53 +0200 Subject: [PATCH 3/4] code-review fixes #44 --- background.js | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/background.js b/background.js index 2a618da..04379ed 100644 --- a/background.js +++ b/background.js @@ -158,24 +158,20 @@ chrome.storage.onChanged.addListener(function(changes, namespace) { chrome.browserAction.onClicked.addListener(function(e) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), - lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')), + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) | 0, lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')), + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0, status = DataStorage.get('status'); switch(status) { case "playing": if(lastPlayingTabId) { - if(!lastPlayingFrameId) - lastPlayingFrameId = 0; chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}, {frameId: lastPlayingFrameId}); } break; case "paused": if(lastPlayingTabId) { - if(!lastPausedFrameId) - lastPausedFrameId = 0; chrome.tabs.sendMessage(lastPausedTabId, {action: 'play'}, {frameId: lastPausedFrameId}); } break; @@ -184,7 +180,7 @@ chrome.browserAction.onClicked.addListener(function(e) { chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), - lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')), + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) | 0, lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), status = DataStorage.get('status'); @@ -198,10 +194,8 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { break; case 'started': - var isFrameIdChanged = (lastPlayingTabId && lastPlayingFrameId && sender.frameId != lastPlayingFrameId); + var isFrameIdChanged = (lastPlayingTabId && sender.frameId != lastPlayingFrameId); if(lastPlayingTabId && sender.tab.id != lastPlayingTabId || isFrameIdChanged) { - if(!lastPlayingFrameId) - lastPlayingFrameId = 0; chrome.tabs.sendMessage(lastPlayingTabId, {action: 'pause'}, {frameId: lastPlayingFrameId}); } DataStorage.set('lastPlayingTabId', sender.tab.id); @@ -236,10 +230,8 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { chrome.commands.onCommand.addListener(function(command) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')), + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0, status = DataStorage.get('status'); - if(!lastPausedFrameId) - lastPausedFrameId = 0; if(lastPlayingTabId) { var action = (status == 'playing') ? 'pause' : 'play'; chrome.tabs.sendMessage(lastPlayingTabId, {action: action}, {frameId: lastPausedFrameId}); @@ -248,9 +240,7 @@ chrome.commands.onCommand.addListener(function(command) { chrome.tabs.onRemoved.addListener(function(tabId){ var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')); - if(!lastPausedFrameId) - lastPausedFrameId = 0; + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0; if(tabId == lastPlayingTabId) { DataStorage.set('lastPlayingTabId', null); if(lastPausedTabId != tabId) { From f486c8494ceb21a836eb99610b3e8834b440ded8 Mon Sep 17 00:00:00 2001 From: Lorans Chirko Date: Tue, 23 Jan 2018 14:42:25 +0200 Subject: [PATCH 4/4] code review fixes --- background.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/background.js b/background.js index 04379ed..dd2b8bc 100644 --- a/background.js +++ b/background.js @@ -158,9 +158,9 @@ chrome.storage.onChanged.addListener(function(changes, namespace) { chrome.browserAction.onClicked.addListener(function(e) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), - lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) | 0, + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) || 0, lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0, + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) || 0, status = DataStorage.get('status'); switch(status) { @@ -180,7 +180,7 @@ chrome.browserAction.onClicked.addListener(function(e) { chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), - lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) | 0, + lastPlayingFrameId = parseInt(DataStorage.get('lastPlayingFrameId')) || 0, lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), status = DataStorage.get('status'); @@ -230,7 +230,7 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { chrome.commands.onCommand.addListener(function(command) { var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0, + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) || 0, status = DataStorage.get('status'); if(lastPlayingTabId) { var action = (status == 'playing') ? 'pause' : 'play'; @@ -240,7 +240,7 @@ chrome.commands.onCommand.addListener(function(command) { chrome.tabs.onRemoved.addListener(function(tabId){ var lastPlayingTabId = parseInt(DataStorage.get('lastPlayingTabId')), lastPausedTabId = parseInt(DataStorage.get('lastPausedTabId')), - lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) | 0; + lastPausedFrameId = parseInt(DataStorage.get('lastPausedFrameId')) || 0; if(tabId == lastPlayingTabId) { DataStorage.set('lastPlayingTabId', null); if(lastPausedTabId != tabId) {