From 2db19711900e0a87ee8cb97df2d8645375a24413 Mon Sep 17 00:00:00 2001 From: Ajay Date: Wed, 29 Dec 2021 00:30:24 -0500 Subject: [PATCH 1/6] Don't change countdown speed with playback speed Fix #1067 --- src/components/NoticeComponent.tsx | 12 +----------- src/components/SkipNoticeComponent.tsx | 1 - 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/components/NoticeComponent.tsx b/src/components/NoticeComponent.tsx index d7307bca..c3128e72 100644 --- a/src/components/NoticeComponent.tsx +++ b/src/components/NoticeComponent.tsx @@ -16,8 +16,6 @@ export interface NoticeProps { timed?: boolean, idSuffix?: string, - videoSpeed?: () => number, - fadeIn?: boolean, startFaded?: boolean, firstColumn?: React.ReactElement, @@ -51,7 +49,6 @@ export interface NoticeState { class NoticeComponent extends React.Component { countdownInterval: NodeJS.Timeout; - intervalVideoSpeed: number; idSuffix: string; @@ -259,10 +256,6 @@ class NoticeComponent extends React.Component { const countdownTime = Math.min(this.state.countdownTime - 1, this.state.maxCountdownTime()); - if (this.props.videoSpeed && this.intervalVideoSpeed != this.props.videoSpeed()) { - this.setupInterval(); - } - if (countdownTime <= 0) { //remove this from setInterval clearInterval(this.countdownInterval); @@ -325,10 +318,7 @@ class NoticeComponent extends React.Component { setupInterval(): void { if (this.countdownInterval) clearInterval(this.countdownInterval); - const intervalDuration = this.props.videoSpeed ? 1000 / this.props.videoSpeed() : 1000; - this.countdownInterval = setInterval(this.countdown.bind(this), intervalDuration); - - if (this.props.videoSpeed) this.intervalVideoSpeed = this.props.videoSpeed(); + this.countdownInterval = setInterval(this.countdown.bind(this), 1000); } resetCountdown(): void { diff --git a/src/components/SkipNoticeComponent.tsx b/src/components/SkipNoticeComponent.tsx index 002218b6..da771853 100644 --- a/src/components/SkipNoticeComponent.tsx +++ b/src/components/SkipNoticeComponent.tsx @@ -177,7 +177,6 @@ class SkipNoticeComponent extends React.Component= NoticeVisbilityMode.FadedForAutoSkip && this.autoSkip)} timed={true} maxCountdownTime={this.state.maxCountdownTime} - videoSpeed={() => this.contentContainer().v?.playbackRate} style={noticeStyle} biggerCloseButton={this.contentContainer().onMobileYouTube} ref={this.noticeRef} From 12bc10ea1f48d9ecdf34cbb6f50b49b209ca247c Mon Sep 17 00:00:00 2001 From: Ajay Date: Wed, 29 Dec 2021 00:35:33 -0500 Subject: [PATCH 2/6] Make youtube settings in front of skip notice --- public/content.css | 5 +++++ src/components/SubmissionNoticeComponent.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/public/content.css b/public/content.css index bcc755ea..b9f19080 100644 --- a/public/content.css +++ b/public/content.css @@ -26,6 +26,11 @@ height: 100%; } +/* Make sure settings are upfront */ +.ytp-settings-menu { + z-index: 6000 !important; +} + /* Preview Bar page hacks */ .ytp-tooltip:not(.sponsorCategoryTooltipVisible) .sponsorCategoryTooltip { diff --git a/src/components/SubmissionNoticeComponent.tsx b/src/components/SubmissionNoticeComponent.tsx index 5b5bd005..82aa0cca 100644 --- a/src/components/SubmissionNoticeComponent.tsx +++ b/src/components/SubmissionNoticeComponent.tsx @@ -73,7 +73,7 @@ class SubmissionNoticeComponent extends React.Component + zIndex={5000}> {/* Text Boxes */} {this.getMessageBoxes()} From 07e3117e22215ec0c2e7fd1541aed8f32f6a5871 Mon Sep 17 00:00:00 2001 From: CyberPhoenix90 Date: Thu, 30 Dec 2021 15:05:09 +0100 Subject: [PATCH 3/6] fix leak that was killing performance over long periods --- src/utils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index bdb441e7..3aee2b6f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -26,7 +26,10 @@ export default class Utils { /** Function that can be used to wait for a condition before returning. */ async wait(condition: () => T | false, timeout = 5000, check = 100): Promise { return await new Promise((resolve, reject) => { - setTimeout(() => reject("TIMEOUT"), timeout); + setTimeout(() => { + clearInterval(interval); + reject("TIMEOUT") + }, timeout); const intervalCheck = () => { const result = condition(); From 8763d173bda7b68dbadbcf57bf29e3053f00ec13 Mon Sep 17 00:00:00 2001 From: CyberPhoenix90 Date: Thu, 30 Dec 2021 15:22:02 +0100 Subject: [PATCH 4/6] fix missing semi colon --- src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index 3aee2b6f..661ca0bb 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -28,7 +28,7 @@ export default class Utils { return await new Promise((resolve, reject) => { setTimeout(() => { clearInterval(interval); - reject("TIMEOUT") + reject("TIMEOUT"); }, timeout); const intervalCheck = () => { From b758cbb25f5a2c7c45a54d9f579d9ccb6e8e799f Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Thu, 30 Dec 2021 17:20:11 -0500 Subject: [PATCH 5/6] bump version --- manifest/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest/manifest.json b/manifest/manifest.json index be6129f3..fcb22641 100644 --- a/manifest/manifest.json +++ b/manifest/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_fullName__", "short_name": "SponsorBlock", - "version": "3.7", + "version": "3.7.1", "default_locale": "en", "description": "__MSG_Description__", "homepage_url": "https://sponsor.ajay.app", From 0336157673855d86e0c7e4a830d638db4c092ee8 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Fri, 31 Dec 2021 16:34:29 -0500 Subject: [PATCH 6/6] Fixed minute to day conversion --- src/popup.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/popup.ts b/src/popup.ts index 84607e15..14d22dd8 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -739,7 +739,7 @@ async function runThePopup(messageListener?: MessageListener): Promise { */ function getFormattedHours(minutes) { minutes = Math.round(minutes * 10) / 10; - const days = Math.floor(minutes / 3600); + const days = Math.floor(minutes / 1440); const hours = Math.floor(minutes / 60) % 24; return (days > 0 ? days + chrome.i18n.getMessage("dayAbbreviation") + " " : "") + (hours > 0 ? hours + chrome.i18n.getMessage("hourAbbreviation") + " " : "") + (minutes % 60).toFixed(1); }