From 6b6e74b5a027f03d9fc354712f3c47489092b21d Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Mon, 29 Jul 2019 15:42:14 -0400 Subject: [PATCH] Added popup as an info menu that is opened on the side. --- content.css | 12 +++ content.js | 100 ++++++++++++++++++-- firefox_manifest.json | 3 +- icons/PlayerInfoIconSponsorBlocker256px.png | Bin 0 -> 15797 bytes manifest.json | 4 +- popup.css | 2 +- popup.js | 45 +++++---- 7 files changed, 133 insertions(+), 33 deletions(-) create mode 100644 icons/PlayerInfoIconSponsorBlocker256px.png diff --git a/content.css b/content.css index c4e8e7bf..933eb40f 100644 --- a/content.css +++ b/content.css @@ -1,3 +1,15 @@ +.popup { + z-index: 10; + width: 100%; + height: 500px; +} + +.smallLink { + font-size: 10px; + text-decoration: underline; + cursor: pointer; +} + .playerButtonImage { height: 60%; top: 0; diff --git a/content.js b/content.js index dd75b772..e41cefc8 100644 --- a/content.js +++ b/content.js @@ -32,6 +32,10 @@ var showingStartSponsor = true; //should the video controls buttons be added var hideVideoPlayerControls = false; +//becomes true when isInfoFound is called +//this is used to close the popup on YouTube when the other popup opens +var popupInitialised = false; + //should view counts be tracked var trackViewCount = false; chrome.storage.sync.get(["trackViewCount"], function(result) { @@ -55,7 +59,6 @@ chrome.storage.sync.get(["dontShowNoticeAgain"], function(result) { chrome.runtime.onMessage.addListener( // Detect URL Changes function(request, sender, sendResponse) { - console.log(request.message) //message from background script if (request.message == "ytvideoid") { videoIDChange(request.id); @@ -63,7 +66,7 @@ chrome.runtime.onMessage.addListener( // Detect URL Changes //messages from popup script if (request.message == "sponsorStart") { - sponsorMessageStarted(); + sponsorMessageStarted(sendResponse); } if (request.message == "isInfoFound") { @@ -72,7 +75,14 @@ chrome.runtime.onMessage.addListener( // Detect URL Changes found: sponsorDataFound, sponsorTimes: sponsorTimes, UUIDs: UUIDs - }) + }); + + if (popupInitialised && document.getElementById("sponsorBlockPopupContainer") != null) { + //the popup should be closed now that another is opening + closeInfoMenu(); + } + + popupInitialised = true; } if (request.message == "getVideoID") { @@ -286,6 +296,7 @@ function removePlayerControlsButton() { //adds or removes the player controls button to what it should be function updateVisibilityOfPlayerControlsButton() { addPlayerControlsButton(); + addInfoButton(); addSubmitButton(); if (hideVideoPlayerControls) { removePlayerControlsButton(); @@ -293,6 +304,9 @@ function updateVisibilityOfPlayerControlsButton() { } function startSponsorClicked() { + //it can't update to this info yet + closeInfoMenu(); + toggleStartSponsorButton(); //send back current time with message @@ -329,6 +343,32 @@ function toggleStartSponsorButton() { changeStartSponsorButton(!showingStartSponsor, true); } +//shows the info button on the video player +function addInfoButton() { + if (document.getElementById("infoButton") != null) { + //it's already added + return; + } + + //make a submit button + let infoButton = document.createElement("button"); + infoButton.id = "infoButton"; + infoButton.className = "ytp-button playerButton"; + infoButton.setAttribute("title", "Open SponsorBlock Popup"); + infoButton.addEventListener("click", openInfoMenu); + + let infoImage = document.createElement("img"); + infoImage.id = "infoButtonImage"; + infoImage.className = "playerButtonImage"; + infoImage.src = chrome.extension.getURL("icons/PlayerInfoIconSponsorBlocker256px.png"); + + //add the image to the button + infoButton.appendChild(infoImage); + + let referenceNode = document.getElementsByClassName("ytp-right-controls")[0]; + referenceNode.prepend(infoButton); +} + //shows the submit button on the video player function addSubmitButton() { if (document.getElementById("submitButton") != null) { @@ -357,6 +397,50 @@ function addSubmitButton() { referenceNode.prepend(submitButton); } +function openInfoMenu() { + if (document.getElementById("sponsorBlockPopupContainer") != null) { + //it's already added + return; + } + + popupInitialised = false; + + //hide info button + document.getElementById("infoButton").style.display = "none"; + + let popup = document.createElement("div"); + popup.id = "sponsorBlockPopupContainer"; + + let popupFrame = document.createElement("iframe"); + popupFrame.id = "sponsorBlockPopupFrame" + popupFrame.src = chrome.extension.getURL("popup.html"); + popupFrame.className = "popup"; + + //close button + let closeButton = document.createElement("div"); + closeButton.innerText = "Close Popup"; + closeButton.classList = "smallLink"; + closeButton.setAttribute("align", "center"); + closeButton.addEventListener("click", closeInfoMenu); + + popup.appendChild(closeButton); + popup.appendChild(popupFrame); + + let parentNode = document.getElementById("secondary"); + + parentNode.prepend(popup); +} + +function closeInfoMenu() { + let popup = document.getElementById("sponsorBlockPopupContainer"); + if (popup != null) { + popup.remove(); + + //show info button + document.getElementById("infoButton").style.display = "unset"; + } +} + //Opens the notice that tells the user that a sponsor was just skipped function openSkipNotice(UUID){ if (dontShowNotice) { @@ -593,14 +677,13 @@ function dontShowNoticeAgain() { closeAllSkipNotices(); } -function sponsorMessageStarted() { +function sponsorMessageStarted(callback) { let v = document.querySelector('video'); //send back current time - chrome.runtime.sendMessage({ - message: "time", + callback({ time: v.currentTime - }); + }) //update button toggleStartSponsorButton(); @@ -612,6 +695,9 @@ function submitSponsorTimes() { return; } + //it can't update to this info yet + closeInfoMenu(); + let currentVideoID = getYouTubeVideoID(document.URL); let sponsorTimeKey = 'sponsorTimes' + currentVideoID; diff --git a/firefox_manifest.json b/firefox_manifest.json index 4c2a0bad..0fb7e834 100644 --- a/firefox_manifest.json +++ b/firefox_manifest.json @@ -26,7 +26,8 @@ "icons/PlayerUploadIconSponsorBlocker256px.png", "icons/PlayerUploadFailedIconSponsorBlocker256px.png", "icons/upvote.png", - "icons/downvote.png" + "icons/downvote.png", + "icons/PlayerInfoIconSponsorBlocker256px.png" ], "permissions": [ "tabs", diff --git a/icons/PlayerInfoIconSponsorBlocker256px.png b/icons/PlayerInfoIconSponsorBlocker256px.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0e44a7eda60e65bb5334d306a83f8a757882df GIT binary patch literal 15797 zcmXYYWmFtp)9v6e=-{qNa0~7(NzmZ#3GNQTHCS*7?(XjH8r+>hf_t#9pZDG$ENE8G znd;LeyLRmpuB0G?4kiYJKp^x_vXWmxAQ<3J7#L(k;8!w>SKohEPG4ojL6wuFN5BRA zcQJV}5U3^w_1OpkxJI#;)p7!X5G(%sf#JZ(Y6kvEtZLzGZ3dFF`);RVZ)fXd z=O}J%XJTdM_z~N;-x0Wp@V}c>?7lg>89ADP?2RmJomp(noGCe3*jcz=6i^O9AR(Af zl47dv`llJ;@p>9Rpf5ahCEfj;Sdn8({SuVjzfuO?;eGQ#-T}&P_L8vWC5< zv&W3KcDGG0sEW&RhtCgRXy%WXjLnwbSRbG3-xsCvxd_0T~0t$P5_zszK)3Z!^Lj~>lLFENHR_&+-@%~yKN-R?lCcn%yM@?H0+z% z-7k50`7Tj2^Q6x;we|JR!a63SSc7`f_<3?Th3KN_zf#GropcYJcmR87Lg`xOqAn(=9Rdiq{V zR9WeMYGNW|GD%;?n2Cw0eNY-N%Ie4W@6eca^PX4&&Ee+m0R&duZYquCS-9%}k6wEC zYh;lY#2yGbJ~hVva+_21XeO=B3TerAGqZj4y=77vlyv@d;UE9V;wmsgMd)~z!3G){ z8Y8`Rt*!q;G}1{2Fs`v_g0%Kd%W!aT?ssT;#Od5Lk?{!#x_XREfHmj{GHMG7`uQC9 zhTlKE=#ah9#w2nM-!INknx@=8_>lNGqKor&M;_$r0dLQ$W@39eLYWq1Bof&xFlB+F z%j08ZZEpU62fnU5Jv|jUIyvzQa@aHf=Hc`OCHh>*%<|m``qn7?MeCnf*CFl8 zfxrWcLezt8h(CI9kVT>qQ{xQI7;Nu)t?%3G`HtcuVFEVcmEM4O1Z=Cwgx8s_i70}$ zA#V$9^yincA5V8e!ra`hS*km^^eJeJO@9gRCMPG!B2jnyo7tn0Fv$gzqnyFpvRK=s z#;K`US-#1VBg%4Un3!F^pDu=nkMd+<3cqQ39Zpl>v)mL zerJX{n57fBaXZSP=6}MR4Y5d&FUReshxBp|)b@XT-{Y1a%be&_I_;#T6|66*`Hxp{ zX!gz>qw8}iGIPJS}kDRfef7IqtQ>Q zDPePa#AIZ8qlNb5za;4L{;KH)v)ZP(ot&H)Bt4+t2Le zeN#}=(BM(xL-56SL1cTj=OGjEd498pSQ{D|3WWZald;Xn>0ACX!7XRTuhq;~uB<%uT{mv_qf?5#8{hg6XEm6t~2m_N8k}~LL>TMPP1iET@o$z3peBLw^`XC=xFP; zn15?@@bPqxM0i7c?v9p$oQ@M3EkSIt=UA|ea-5MA`4E(P$0--9jp9QyarCobG}|Be zC0^pyA7}yudxQiECl{JCdoWYsO6wkuj#rZ00VsZmTY@Bu>uqiZtW_*FSWs~0pg0VX z+-HfH3P$V(mWjm7?Hyg!`YnCwf*kxcCWeU`@gt5sxD^yh(nUgz{+8bkMWt*Zn{Hd1 zB@>KE?~_XMrAx-0@`pr6Y#BMe3M$2onBv#6M-$x%)2aUOMtYT#hyBR(_mTH}wVpUA zQlF(>U5D7{z38qz{1L~fGD#7Ug%u$oekp6+qQYl04`=5a`;kLjHf+wTVOcX10vb}W zY;pMlvoZv+(yh;|6RI^J4(mrvO$HaqinN1aff5Awt!{t29cX|C1`x>tB)9L%xt)%c z>rq3{oZZ~+G1=BcGNa@pFZi_XuP?bP&mms?U|E*pU zhF42&XLcBon7y`!-8NJIA~3@D&IFC!G4#8^aTV7O<0j7ui;e?Sf}=Mx)`rFbE|u94 z8*6R-_RwsC^uy}jnt{phh?hd?wbjXr+K`c0a&9iM7Q^3F2&V1aUXHQnQFTs6WaDMz zFdJGuIr6$XT3^0=sme3^usFhq9o#3zP((>HxaOK3Xy(U_zPhrKIl8FoZl0>2bJ&oY*WJyqrp6JO`b9pa z4C0!a?8-6b2`mZO3eK;^P(-q|$5q?5)2^_^8UHLiLh=`;@5{Ye;YkM3s(I11iwg@Z*_A?pRWrSxF|m#o%B!f128t#HIzPnO z-y{>et2Vf-xuO}og^?+xVAbCoDtL_BORgHp z9rbN<@(Kh#Qk|S$l3TP3u9}YuZ_9_K286J~Z>sHeyU_w?57sG0A~E;1JPO7e@aJ{h zo0e8q_m0dxUU_}WnwkeKiOC-4`p&dw-DY^fk?ME!B{$?lh$(s1wNtSj1#wEH?L3UOG*E)d7V?vz zrbih*RP+Z^*%Y+YtpbZl(wC-451mCGaw z1)4PnZJC?DhXQnpr>mVHZw?yzZVm!@7vhvc~G9r>~oKX&faF zhy3A?I!D~vXd0s(L5Z$Zl^m=$aIX!fLh62=3skwuy&DE?&3-vUKHidG!F>ygU*WO0 zbK7(r?%w44BDIc?eP!Cvx=i9N+5Fnts}5>Uh|Rg8*>5___6usA%UxmdzxKF{#i)$s zI1j|FRE8PpX=&Q`-e`rbt*v_fg3Vt`mhX0vw`XK1UT7e7-=LEj6y0-1>g`Uvq&nGO zb#Sc~%73RR3!eOY@5!$nB~nj1L2Zn13tl7L+@9{Sa9C3LQJlvx|DzNdA?x}e!q5c` zqCK{r`m5pq17qogx4B&%D8$!*Y7_I`sZF^qzRB%;BeonA`bO-}GeLr8&s$qv{i|tJ zlZ-$tC&%&_o7j58acyB^_v%BN4S-+|E654IL~ z5#3+~igEXmDK2Ple|d=9>o3jM3RTLkyKr{}O=#ULD6Kzk6L!19Vy6p&NQfT65ubtd ziiq5Bfsg;3 zaHlnvmr)ZVqd)44c^zE2DfBD(TN(w>fIT*1L5Bs3oIE@{)Ypx6*4DbgS;kd=wTImD zdOUb~uatm7&e4~Io=@Y-_IY)hyt;39u7W+flf8HK2f_htAh1*^;4=euGytHRr#=XS zsmwCu6`7fxt-F4>+&v#sL@2xXFjUPRnIito*ef{D$G$AfYYgL3hCNaa>(Z#v?9bSOi_s(yT(B1>+6##EGp^>sCqxU zYDKmy$i;PgFB_<7H%{+jZVx~5eee14+5jsy{X!SSL5*cWsVV?MPFJ~B^V_hq@%Db^ z_GWJT>DyvLoK5w>@Mlkx+kw2dy7A#!=rbHh4BWxJl#`>O})W% z^`7b4HdR;K3pI(qCnAGAUh;Vt1L4d!z>ZCyTU^ZAW${zCQfx!@Td)w79L*dU7(lgc zrkG$qMMOgC>S}NQD-8!r>?iy#3UbRLYGZR6@|=NV+PyfiDLM_h36s?d)c19lR{#^<_J3I63SqxD7(CGymX~DfV{j|CEC!9S6WgzHYAiuc z+pcNdSin&daV7KrX5$<9`o8(zFt&fml&zd5JH}-azfiz zs=5bHFIsIaX0CIne8x4mTh>FnW1;Whq?uqycpzPu1d^ z=F1LNk$~6TUppYyCWgz#5a(*3SU+fpIed$sP#N~gHn><`5d$7~rhp9=oqA&s#y+_{ zb`bl3oF8x1ZAgmCAaW3_aw)ly) zOb)51&f$^=OHf<6G?bUE|2f*gAN6EwpL-lio-)!pP66BfRF{j$o+EJ_ zcu_`-Zal_}`L!__#g>f3<%@i+7hYW>V(IE$nU~(5$%Ae$Mn^}ve2h?bx8C=?r9-`r z{90XLXH@(xp5nsx-?eqb^uJXC@jZ?g9o{89t(lMjGu+c7RvFv>_3;Rk8N|%Q^saP7 zx}v`r54>?f8U63AwR13O0ohk);TqdNkyu%!XHdM~F|OfuL<-?ifHqg4 zlGtWXQ7ADwr1Z&29^x_{&rXHT0$%43kcPO67QoP zvMG>mz6qDtk{TP~bh}T9vimJuJ`WBK>b!uHDg*#3N9}QCmO#E|sgRL#asM%0gjWbG z@S|nTK^~4KB92Y1N-q*Bo)ebROuwpah-)ZENzRJ<2G_$@aEJ*{CB)Ki)*l$ctQ3Cb z>W+ZkZQ`?ye6sc41?Q@>l7o-WgWT-Qvx{xHH8nLA6Yy(yy?R3i{g^|-)Z0ozOv%Y# z?s=Z7+9u~g0R{Y6bJNooj1YS5=_lX5D$3>7nVFfG_d=VS;3kIn>As>)zjo>>duF(f zdy1#vkp&}$Yu|y@+~DsvSa>vZ__(p@*^?AWLv?+wyZ+gCcXwH%yZ+{`cz@6iUY;%? z9?0wK>o2K5@7jLHKRk!mRW0d~l1yN&6O~u9v9Y1}6g)Nv>|xtCL4$~RpqU;578Pux zq2?3I$VwinW4zD1@=^ejr+(rPT#x-dIfR~{_dI6T)IdjP6^fdJ>5phQ$ttM4esgov zarHBxyIvCMhOeu7xp}rov8y0u5w1SOLrKF5h~whxzAJZEuwnZQ5^O1|I5R%wSA=SiGLKyxWZt!4DT4+YWs_tSG5&R$w89^ES z950yJA#30CoQdPk&m4mkAj6oHl=O2_6V7G#1soaGcL?qKWOgi)t@6fKV*Um(Yb-#F#v+`5syAbr#exb!la96s{@Ht?0tTYl=ZIjkI-2Kp?<6Q2UDgT1DevI7LvcDjOKKgG=&3M--Qlv4 z^;wz9DN^)f>i7#aHnJj7xNK?85d+5h3pi}S#m((av;7Ogn!xvhTU0ATpuv)^`(6@M zME}xT?jo2l@R4$(APv}OJ>*)*@kyAh0zN+eMti0o-(c?j`IC zsvnA^0Gb%4X?t?{w0%RS=Z;UX_%84HkYH_ggpXLZ@!A=IZN-<_R%tBNy69T+>dsCd zGb%URdUJGt^Tr$HMWp@92=fFa%3^M`+|;kQ*yD)?cZ^uXNS8J*FE1sX;EX2WP_9P* zkkh__e6~P$g)N$!uuvX458(nFxf6H)Dp!~dO%^MlryJcR$Z0Wp^i`N{C5;`5qNKd0 zPU0`lQmkO>>dkf-s1Jxd>K41P_l>R^1Uo)ITsEmtP*3!|>Pjw;^vGURSm++E1|4gT)@4^}h_`amYsvzb!N6CsfcA*cvC-dzFN4p`8mW|d6Efxg$5rdgSE*EayPy==BiRJOG}8L-2S<6ejJjmKIjaox~?&8S~N&KbOXR!n+`PkY6?rT;F~nAqJj!V@npFKekMXW`4UR-zXX%x0mhx*LlEnx_FQfkp9nl$^!(9a_fH`N>drBo=hM|b+gwmk zFcrpA;-BY;aS9QnDPEIqL-$90j1_7|YviU*0`p=H$`pH0-}gt{;%f2r2!gFXA@8jI zaU~-;o(2aLir2yUVF=#e?xaz{GxTbCn>W3SY(;p?2U;BZuE<4RG)%945}DB+&Z;q1 zOs>kJqVGlS@nE1YLBwLB0Z4#bg+L+dt8Z*WFCl^i$aWy?SWz}oFD*$h2K3A*>W964 ziI$#AJ{-nxfa|Wh8~YN!duN}v;89O-U0GFC7TJ``1ntyDd#e)Nivm-^!NILcy~7fw zrA7$7cI!f0Y#tnxE?waNiM*#(W}t7W3ly9%cNP2QlxRw#nYHnb`g&90nFyn{8DUC> zS#l4-Uz{cIF)=Z|>#TM1(WSWqj)wgXkh>itwGIm{t#*1kT}hdO7a{l&ZEv} z+QMDA+p<9q z8^^E?6gFy8e}eLMH?rIEKRhOw72nd*!tpT80#AGz{~leMiKr`*n=i~!jaN;8NayJM z{M-tF)e3*M$vUoDbK&}+eGka<7kM(w&B`RMgUCN2g4$G21X$&agN&3EB`v>!=?6w2 zhZrzWBjhzT-CK0Yar0>}LRh~dg)|F>6Kdb8ojhPnv?^(fk^9WC>VF93Yp9`-OIui2 zD1zY9Xwy*6;o`=wZSev2#IzWjKhr=^f=c_Szp}aCcNl#5t($h+2e8Cb|AP5YLfstt zH4?J1)gA{%_LNG5-|6E^%9-vIAsH0398D z-G|89QI!av^=r5l=;nX@W0!j>>5g9YE#q7&T0nMgY3ZmtoMSfP*1of=>ls!{`VtyF zxCCo%bCcrp6Q)W!L4Snm4lzh5ed=joY!6(5SF8rw;e+9{AEa-))2?CCuApWi{3%PB zX7ckB#1&H9*tpPK@l{qAE<5z6kk94EmihU4l7WbJ2?2EE005~&<_nltq@I}EJB@vO zGWp;9vkjlMC1HE=@FF%``aSlydIEFq-sl4#idOPd0h=jV`LZz7F!Is%@w7NpqAD#m z#^Oh#CK_M5{Q1HzDKTR($9AQ8iy$@a{vJ~>U6EXTrrpr~h&jM!0r$B@R@)C6dU`f< zkx?Y$N38m57NA>8^?t{I?;F<%eEul8w>$1qlqjl~LkjXbLojdI}7BR1nN>){*uj?PEJ>XJb(+vvK zboKP~y4+*6b>R$=cBY{OJn<%dRQh}9r>|WL$4LuaU;NTPcVHzJeEsj4Z>E|nv1n7} zzO@0LBn|md(zT|l{o2n3bM!d}Ml_TBD&qG@RAi(ell~sU???WFH)$!Z5+~Q|H+f#S zi}n%ug5VM3ahogt^j_UpE1y*2J<3M;X!%0&8&DT9A)&iBKwkG89UXZA;~)32fB*h9 zJZO}oOVD$I=umZo8Wjlgk18@TAH~Yv6qQ7x3hyuFvIK1vzkC_v*ilqi!m+SPvZ$nr ziC@(BI<5F`^=LAIJ242Ww&s$Kj!uae&E(j|#zsJ@Ka)l#+FSk^1>WCBRua}In=1m}fpXP-0nZQ^0SHfp?jWgTx4rC` zpL{NWNl8ol_r2=@fiKJ^es?e2WH!|j%@1qA2vUP|h4+ybC8%|n+Birjlsbtng`Dhi zOey~4{G5lpoDQFuIz@Ez7+9j)nSQPVhHg`4AVRXoUeCrpSp@+y_Nn;gZA`iIkW=_; z1KIG4PS-dm-$oUyKCX~Cyv+aqa^yBVO%)ZBxrP|HQ&%!_HRj^HGuNN8?)BHMwj_X) zuUJT_{<6UFNwsifW@f(Kk(vqQOu385t6)q-%;ws2xsV;Azob@nucWBr2sk>;05Zz) zSspbu`Q$2)kfW|$^$|W$`)|$s1YSyfrmAE1J!-+*gi)Ql@=Y`1)>rejc~+kfL$L|& zv4j9yCD>R=EMz0wb4xfq2VHQDuxYC&7;^+1!Ny3*mD38tNyr!jYP7EY_doiy&R_ z757|&Q34Jtc3@hqdtz*Ocz79G6u0dg7Z+Ct9resi>E(ZOK>GjL3_yR$ii+&%kdN>I z3qG3dbe_6!_Vj;8UUt4alJbQSgd1`^LpwWZ@gf_=lwsafSN#cHBg4WVxC(h>*L2Mg zKfp%X3K|fnT-6pAgVIpsLPI~UZ~bZ4n3$2}W&0F59#K6i<|jos&DfWZvwLgA-M{rp zI6?pK3qDoBn7d8$4lFPY(`>5U@mFk>h+K+bRWuk1rX6yEQV(2V0BcYz))1Q?ZRcfyEnl#s>H}4be6kthXssMOs+}~8RY+&LKWo+DuyeyxU%rNv@e5xZIk-r#T-_2$ z1n=Z9_+DrnKehMST8l3Cx}h^nR>TO9zTh zn|9uFU!WIt94Vo+P4YcLZ>FAPr2V#1zj47FGi<6odbiY{ZxH0f27-;U>CEhXTs_G+ zxO3%G#K@SKYi*l(dsBP+3o%6o{m;uEvO@?-{MuI>);>0$|cODnQ ziTIm0H}$Or5_UhL28VOd2}fBU%t}X$I#d4r_UG(h0^z>k8q&Y#fvbshQpVIL>Deuf ztyx+eo&t9AW~s`v3UlzAf#dl`M-6#@>?z4fFvTe4cGL-}#Sj;W{F=U%q`I`!5~N=? zT^Y3;S#KgyHt-$C=v2Olo0NWL)t{@G-cM%9iHebtF$Z&+&}wnT z7~#C)SK_OvIi0Dy`@=dlJ~DYx3!4IoFqCI;lAwylbvAt50K;hL0(#Xd~bkD;MHl0DQ|zoo#IGCf2ua{>5q z=NMdXzthrwx^TwXt>JF*bfu=G7*>%myh(B6Ybw?^e!OrGw#Gw*6)~74Z~qbrbjsgQ z6e;UzDXFEE>`A1U@S`b2UVZ*UNA*jCV+6C2Brv8ip!3^^_z{4I{UO^P7OV}jQ!}@F zF%yEs_SOJQYiJNHR^>%R7$kq*CG9aL3FssWb%%vqltFR2$+!p06E^R(Qpy&CIGgQ*jdenz-U_&4MfXPWD zfUig;o6s>aNeK97KezCJ4nMVseiM2wl2{>9+_VtWQs10zYj1ycfuNdtd#B4Jpw>OO z@d2etGBR7aMWde@N1ehCL#U@NlXXBQ5?xfe5(c0Ff`}h8_?!-!fCO$r z;{VkNf1^}1lMC2mZkcc#8GN`XFiu27ggPqKpV0x>=hg`T3)=#LILeDEAxsZNGz6&I z-v3yvMONVtJe-`kt6X>7(julXYwp;Is6P=5p4&+8&agX0tP6-I&SC^LDt#oOGwMbNwU81l_cSA6av>{&z zwDn#)J3B)q`;qN<@oI*H=E3FN7axsb+%dFFg+uCEfBG*r%Xl;_*W zKq2!St$^8D%Q)fkahT@q=SZ^1oXDXN4xLmo3y3c4kz(qgOviH+2#?WTuotwJ-fQ^_j@vj>l+)@AMs$L0w1{Rm(n+Z#VkR;Xmc=r z*t8}k;m>n7q9iCQ_|N01m0hmP&E1rTi0+5tEoxS03mdN z*yQyL4j9atf7Q8Um`_lF^CQ2idg-lnP$ksX)r~B;Z(817`ETmUwK}F+JIgR#5W>Gd zkVS}4%*xTdTXTc}^cGz^8ibq}JFEYmo{EIB{(NcS1Pw=^cn6)m@KN7*{~UaHX!hL9 zvi~v_kA~>->4(3$Wi}q=M3hKMjKNZi6BJ2uJnYU#9LHRZHC@o->T?%tj>BKB545x@ zKm29+I6(kjv6CE;DfJwhe_CDYGCiNFWzFRiBjb-zIA?$`veY-ivVjjF5E}RNvO>Xq zJfh6|dq!OCQ0X%qiv=vETSPyV;s1!j$6&3KwBNr;`rBlOKX-cWi^PwNe@8&i#^4Im zycD}NT!Bw$-s^Y8&DP`N>LG)%J$=MOt2jA5eTj8X=AQ=1Jq9l?6g0qedp{Xgij`5vMO-&gX2_fSY z-!CAZud-SXHNS3|%#<8PSjQV#qR>Hq()Ztg?L(Wp26V@8N3cVHYr5~wnCJDZFrO0>bXFKwpo~7 zb8fRnxQ|koEZ9te+#Q@YaAD?@H_1uTYJf-veoHKv^d_C9Dv|a;pTxd%hr9M9V4cm7mBd=ca&|4>w z=WR@id@xrLE}=&hpe&l|VeTOt+#I@gk^N~Ak@h%kXNy3$+qG3!qE${d4}pjd6V*Gc<2_`HQ$+)qjX_FDM(rSp*hlbg$%MkciNU(Cv>hVb{~0qA z(ygTCa>9bW^B$t&FHSht9-ZydwO)m_%&$QI>oS}PElC2fOCsh4(&e_okM^Qgc210C zP=>&tuy63woU+jhEcMCC>SPvsQTt!~(Cv1kkf(;Pm z%cf{%=hXR+#%R<~hl(*uk*S*U9v!?Cj83FHLbX?uvP2o$^#&v+LF; z>Ch9HB83d_4`chXzMDP0l*Iwh9$9)G(9`|7NMz>4sn2<>%NjUJMW*kdT!g%+ccq+` zD3S@Qbj(wkgN?0vJ))5aZGG;(WY^)WuF^ejMvND8hbBqQF*JSkH!q963a z%hS_6?PH^Jfkdm%l$V5H_FpZ%{!ban1qJW(q?iIie(J>U10f(DjHC)u6aQqAqd-SK z6{$mnWYoM^)h*>P6hq>gf-v1cTnE7~WA0L%F{H&G1r3OjX?&uxyzd zfdrq1_`Pmogm-dk>P^u*iVOW{r}8ZFOxkBb^I=7= zKRrwT^!_YaCs%6_u;bNp)|b}H7{Y;Xa2~=s*k)%8aDVBr?T4Lu-iZ72l7>6EygADF z#uC(Q&Ub$_;kcm{?5Ek0wr*_tLY^P0ZPe?kAl)3mxKo1-&1}fZ+nk-9H7KsAAXE5f zubj>nL->t7E7SZRC8lu=)R&KrV`>}E(w$rMw+!8hI@s0>M(slbV-ev8or=*bts88H z4mcfi^`D3zp26nn(Zn_#9UY2!-9yG$TqsJ_F|IByLIlZFag;J}EH9aSO-o{0$|Mi( zywwHf_j28qS)ccN53rTaZX;5_3=ZZlwKhG^*DhzLPk3|9Wcp3$LKEn+Wyvl7I-8q| zEji=;f>Vvm?d&$409+8WRn+hKR1v+9oN}N~w-Y?%!0y?CQKj4$Xhm%cZ*hwQani;3 zBU3>oYt`4N;?Fw;*2QRe+Tm@qJh?cwskc~KS<#Lf<;^k;6zzJ%=#1dG+$w5UeUKlz zSC0Q!einpCqUU=xr=ob79cvkdLW5db(w5_k)y^jNJG+sw#2deFZlv5E)*i35uI~E# zL)zlcn)%Ch*)9?!BqTRO?OTS4z??smssJCnFh8Hsz4`rFwcwHDZRq<0lNsHZjj)^m zxkRAX{{#cmCvW^DOF@L>-r*|>|uYJry ztFOby=KcQ9x`_g`z5nT)8i#kJsI%GhWGy$_bV+Az4Gp*6jGW^RF_2}_8_f>4Ln&TO zPD_2Y$Zn$|kSM$_@>Z;x*jNRP@+c+iLq6pO%ydJ>XGFF%x--U3feB9K)M9jKg*5qC z+Cm`$2?{qp^>HrAmjbjJGz}L&^bp@zVulyA^p<*+N0J zcE~A+=6hX$UQJW$3eiQ}nkD~zy|TyQbk1UbglO}iq}4q2aah1YDFaah=c;6DTbu9J zCny0Ytc>yl&TPD5ok_aK28=~@l6<6KVCFLfUIJaRe0(CO#$8O3Oj*oRJL9-+em4Xe z>hdGg`E@(YkD>k%sH*i6&UGP5SkQL)4i=;+1p?u6ew2g~0wD{I#?oU91l8ON6~oIw zm5}ov=Ux;z%6M2R25Tv}^?{pfYisU%!?7{DQ*lIiY%Hn@;_odpfB$AYl*$`6DMK|M zfx{HE&vR9dQ;8rj@V@*37>`4urmtUX=+#3VlCL2TXkEhy5Q23Kg@l9zJZ_r}3K$S& ztYlL3PjihEB+Iga6A|fyvQx(^%;algT3>mz$;ikQ!-{Eae|4_4s$_vs>&Uxf2ji|( zjfJ!Ea)G9lo)d8@TfBopq`=j*yBet5e*?>J1mE>nf2WCs{Z+IO;e%C|cAsbcbz%+u zB|fOB_To&Gb!384h5ynhk=||d$9>UN1Eviscn<}m08$mIn8AN*`>a}x=zm^F%1xxap^8|G8=#!HDxfFC zV=3eU$RK0Sn?DZ^4{)@KnR1dh3K%Q z^qvEDb$vqWTn5U)qrot!go8idi4|c0>-@q(G&eVQAr8%>&vTy(=xELzg=UtwN{2uQ~1S(5Oj7qq6K@v zKQ6Y!T)sIrB%_8?R~{tk*gm!|Xvflcq!0|pzcDQ5g?QN2?M%^UpSsr4OxdSQZirru z4;Syh$NIfANklf%!$BR#Y`GM%TKwoZHzXlOeJ0Dn9U6js;Jn~gfBgt>j-%yB(E;q- z-0H!YC+#FPoS0KztR&ZBU4I$q;^s$*a=CZHQ7jIHjLLA~UK-A*1(?5CkZMK9&z+ z2~nc)&zNv=9wA4`C*zguQF_Gu)o8V+D;F}4}1l}>r{E~+DR(6M$Jk!C|gZ6-1df}){OiTpP z@8b~nJm=-*g?dElw%aGr)RXWC3){Mgy(fWL{qli3 z=Nl22ysF628pfiQSp6iLM{t$S3zB)_rtK5Wlmgee+W37?>6QxvI48r%dqr3y7^OZ+ z$^5O4csbjQR!7B#leABefRz;ET)%r{> zrdgspn0~71PcR<)-_IibjONj+3*{`&MeFKdi;=1f)P!j{KV^ zg4SIFc@vx5XY25+hxPW|fy8+C#t)gL6dU=yr>^J0k$CnJ5`Rt?_Q)oN$dZk8e#)PMUB_o`mFj%2bC@Y;tPDsw*0gu}R zcN6sXYT=F)M63hZBxetDKjP#}JI`M-x)LZa`k^$mOqz5{eams*VD8HR_)p%qIPJ9c zA6dqhuJ95rj`2vO?u|~iSltR4PNVW}9zB=Ez-L1nlSq9Qhe5BnmF9gn*rwtY?RRY( zq8wm_-oAw*ul?L0y{EhH_6`%3Sl%aCt3*ajFU%1ZU0>Bu|3y5_6{UG}6VOk6@kZB! z>C22UzJ+&FnywdwAkfJ(|c(ZJ9s$- zP__?iWYJ4o;i9W~#X(5no?c!QgNxHb1WhfyOmc$=1Z%n04LuP*{r&w<8<9Mb?feVD z4etB)xEOZ_92^`)`PSP0pK(X9-kSmVkpgWNIXGA*Cy(g{GCGXyh{Eonrm>_C%IP~@FZ?+6x-Rt>oNr04HbRlL&E;yg#i++G4q zQlA~LSA*9!P_1&k80W%~+g$xa`quxP$nr2{7Y7OS{xxxu`p*fZyrWcy%{Z}s4^Txj z9TvG$fZbL6n}tXYGU02;F5Y#vj-JzDG=HAbpJnWIwHN6ClB3X$8r_z>s}1F-0*no= zWX1^&H@Q*hGwH;d)0B|!2Yo)$0XPCA8)h^cal9Qs4eU!`K%*vnOggu)aMmCs5u-2C z7s$IK53GT(+l}Wnr6JI)cWis;g3Fb=h3#2}alN5ArvuD|ec+_=2Lq)zj3Q< z$MfVSa4^kopX18i+`P~W5KU`xUnJRg#vDzlJP`AdV#t(kp)^%HIkGTt^YFZp8mQ>7 z6LPC=WEhd~XTC-lGfr>I3a!CG^&1mBtSH;k20hpp1*T6Zk_@%uM@%u;ZTba5^PI&z zph-)tz2t{Rn5%#OT%mR1dvkWPO)JsfUe)>61x3UIfzoz4kN!xukHFd(Rx3XgD>)}2 zrMyK&9@KMeJ5a%PW;=XNXSFA)XkI`TjriZ`&8RAm6R}4YVit5KY)7191l~mbP`GSi z(^J$SJwci|p5dV*-ZN=AIXO+8&l^Dzsmf=H_Pn3*ZL^dg2g(@k?B#O`3kw;-U!4AF z0gSp$nNmI8V3Y$cD;dVnes-p6cJ67o@nz_$g#$D8*VypBAEgLhovVG#dtPZf_PAVg zYp7NxhBz#>IqW6*SD3G=8p6U~h)S_SYsTB~^vCwm+;~Z;49^8f<3HJ3;;3tAobL`B zT3i3^1Y~VhyU^c<#W2I04_$zuW|FP(;f0Wh=*aEvkt`ZHn|$W$*~{UCqSrjb%lPD^ zE!+6RamX`<3~4p(z99d&$3O2LgkC@&v-JP?4qQ#-djo>TZ@;0595+);{2tM0y0aa;#z$~J)jh)(-g_K9On+9q) zez&q1FR!T3TLL&=&Qmntl;R~>G-vN<_^787aO$^eXKAX4q8=Z2Khrm~PZ^}-%LstN z&b7tGds$$*CJ#&(05X%y?n0>Mb_>#V&GU-c@eH4}-(dEAGW`+z_0;nzZvQ9at4Ph{ XYrt~VQ9f{B8uUp@L9$ZZFyQ|HNY0ng literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json index 9e4720b3..42a9bc0e 100644 --- a/manifest.json +++ b/manifest.json @@ -26,7 +26,9 @@ "icons/PlayerUploadIconSponsorBlocker256px.png", "icons/PlayerUploadFailedIconSponsorBlocker256px.png", "icons/upvote.png", - "icons/downvote.png" + "icons/downvote.png", + "icons/PlayerInfoIconSponsorBlocker256px.png", + "popup.html" ], "permissions": [ "tabs", diff --git a/popup.css b/popup.css index fd3d33d3..d8053170 100644 --- a/popup.css +++ b/popup.css @@ -8,7 +8,7 @@ h1 { body { font-size: 14px; - width: 300px; + min-width: 300px; background-color: #ffd9d9; } diff --git a/popup.js b/popup.js index f0618f52..98fb095d 100644 --- a/popup.js +++ b/popup.js @@ -220,35 +220,34 @@ function sendSponsorStartMessage() { }, tabs => { chrome.tabs.sendMessage( tabs[0].id, - {from: 'popup', message: 'sponsorStart'} + {from: 'popup', message: 'sponsorStart'}, + startSponsorCallback ); }); } -chrome.runtime.onMessage.addListener(function (request, sender, callback) { - if (request.message == "time") { - let sponsorTimesIndex = sponsorTimes.length - (startTimeChosen ? 1 : 0); +function startSponsorCallback(response) { + let sponsorTimesIndex = sponsorTimes.length - (startTimeChosen ? 1 : 0); - if (sponsorTimes[sponsorTimesIndex] == undefined) { - sponsorTimes[sponsorTimesIndex] = []; - } - - sponsorTimes[sponsorTimesIndex][startTimeChosen ? 1 : 0] = request.time; - - let sponsorTimeKey = "sponsorTimes" + currentVideoID; - chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes}); - - updateStartTimeChosen(); - - //display video times on screen - displaySponsorTimes(); - - //show submission section - document.getElementById("submissionSection").style.display = "unset"; - - showSubmitTimesIfNecessary(); + if (sponsorTimes[sponsorTimesIndex] == undefined) { + sponsorTimes[sponsorTimesIndex] = []; } -}); + + sponsorTimes[sponsorTimesIndex][startTimeChosen ? 1 : 0] = response.time; + + let sponsorTimeKey = "sponsorTimes" + currentVideoID; + chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes}); + + updateStartTimeChosen(); + + //display video times on screen + displaySponsorTimes(); + + //show submission section + document.getElementById("submissionSection").style.display = "unset"; + + showSubmitTimesIfNecessary(); +} //display the video times from the array function displaySponsorTimes() {