diff --git a/public/popup.html b/public/popup.html index b1a241c4..fae41356 100644 --- a/public/popup.html +++ b/public/popup.html @@ -11,6 +11,10 @@
+ + diff --git a/src/content.ts b/src/content.ts index e16f71be..e9f800bc 100644 --- a/src/content.ts +++ b/src/content.ts @@ -217,6 +217,9 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo utils.addHiddenSegment(sponsorVideoID, request.UUID, request.type); updatePreviewBar(); break; + case "closePopup": + closeInfoMenu(); + break; } } @@ -1689,26 +1692,11 @@ function openInfoMenu() { popup.id = "sponsorBlockPopupContainer"; const frame = document.createElement("iframe"); - frame.width = "410"; - frame.height = "400"; + frame.width = "374"; + frame.height = "500"; frame.onload = () => frame.contentWindow.postMessage("", "*"); frame.src = chrome.extension.getURL("popup.html"); popup.appendChild(frame); - - - //close button - const closeButton = document.createElement("button"); - const closeButtonIcon = document.createElement("img"); - closeButtonIcon.src = chrome.extension.getURL("icons/close.png"); - closeButtonIcon.width = 15; - closeButtonIcon.height = 15; - closeButton.appendChild(closeButtonIcon); - closeButton.setAttribute("title", chrome.i18n.getMessage("closePopup")); - closeButton.classList.add("sbCloseButton"); - closeButton.addEventListener("click", closeInfoMenu); - - //add the close button - popup.prepend(closeButton); const parentNodes = document.querySelectorAll("#secondary"); let parentNode = null; diff --git a/src/messageTypes.ts b/src/messageTypes.ts index adabbee5..45941ee4 100644 --- a/src/messageTypes.ts +++ b/src/messageTypes.ts @@ -16,7 +16,8 @@ interface DefaultMessage { | "getChannelID" | "isChannelWhitelisted" | "submitTimes" - | "refreshSegments"; + | "refreshSegments" + | "closePopup"; } interface BoolValueMessage { diff --git a/src/popup.ts b/src/popup.ts index 32c4424a..b1bd8071 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -122,9 +122,16 @@ async function runThePopup(messageListener?: MessageListener): Promise { "sponsorTimesDonateContainer", "sbConsiderDonateLink", "sbCloseDonate", - "sbBetaServerWarning" + "sbBetaServerWarning", + "sbCloseButton" ].forEach(id => PageElements[id] = document.getElementById(id)); + PageElements.sbCloseButton.addEventListener("click", () => { + sendTabMessage({ + message: "closePopup" + }); + }); + // Hide donate button if wanted (Safari, or user choice) if (!showDonationLink()) { PageElements.sbDonate.style.display = "none"; @@ -588,6 +595,22 @@ async function runThePopup(messageListener?: MessageListener): Promise { chrome.runtime.sendMessage({ "message": "openHelp" }); } + function sendTabMessage(data: Message): Promise { + return new Promise((resolve) => { + messageHandler.query({ + active: true, + currentWindow: true + }, tabs => { + messageHandler.sendMessage( + tabs[0].id, + data, + (response) => resolve(response) + ); + } + ); + }); + } + //make the options username setting option visible function setUsernameButton() { PageElements.usernameInput.value = PageElements.usernameValue.innerText;