mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-15 07:57:09 +03:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fae7d921a7 | ||
|
|
60a2eff40a | ||
|
|
98a4a076bc | ||
|
|
a95020dda3 | ||
|
|
5e179cf9ff | ||
|
|
0b946d5ef7 | ||
|
|
f48c57b1c5 |
@@ -1,12 +1,156 @@
|
|||||||
{
|
{
|
||||||
"optional_permissions": [
|
"host_permissions": [
|
||||||
"declarativeContent",
|
"https://*.youtube.com/*",
|
||||||
"webNavigation"
|
"https://sponsor.ajay.app/*"
|
||||||
],
|
],
|
||||||
"background": {
|
"optional_host_permissions": [
|
||||||
"persistent": false
|
"*://*/*"
|
||||||
|
],
|
||||||
|
"web_accessible_resources": [{
|
||||||
|
"resources": [
|
||||||
|
"icons/LogoSponsorBlocker256px.png",
|
||||||
|
"icons/IconSponsorBlocker256px.png",
|
||||||
|
"icons/PlayerStartIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerStopIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerUploadIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerUploadFailedIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerCancelSegmentIconSponsorBlocker.svg",
|
||||||
|
"icons/clipboard.svg",
|
||||||
|
"icons/settings.svg",
|
||||||
|
"icons/pencil.svg",
|
||||||
|
"icons/check.svg",
|
||||||
|
"icons/check-smaller.svg",
|
||||||
|
"icons/upvote.png",
|
||||||
|
"icons/downvote.png",
|
||||||
|
"icons/thumbs_down.svg",
|
||||||
|
"icons/thumbs_down_locked.svg",
|
||||||
|
"icons/thumbs_up.svg",
|
||||||
|
"icons/help.svg",
|
||||||
|
"icons/report.png",
|
||||||
|
"icons/close.png",
|
||||||
|
"icons/skipIcon.svg",
|
||||||
|
"icons/refresh.svg",
|
||||||
|
"icons/beep.ogg",
|
||||||
|
"icons/pause.svg",
|
||||||
|
"icons/stop.svg",
|
||||||
|
"icons/skip.svg",
|
||||||
|
"icons/heart.svg",
|
||||||
|
"icons/visible.svg",
|
||||||
|
"icons/not_visible.svg",
|
||||||
|
"icons/sort.svg",
|
||||||
|
"icons/money.svg",
|
||||||
|
"icons/segway.png",
|
||||||
|
"icons/close-smaller.svg",
|
||||||
|
"icons/right-arrow.svg",
|
||||||
|
"icons/campaign.svg",
|
||||||
|
"icons/star.svg",
|
||||||
|
"icons/lightbulb.svg",
|
||||||
|
"icons/bolt.svg",
|
||||||
|
"icons/stopwatch.svg",
|
||||||
|
"icons/music-note.svg",
|
||||||
|
"icons/import.svg",
|
||||||
|
"icons/export.svg",
|
||||||
|
"icons/PlayerInfoIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerDeleteIconSponsorBlocker.svg",
|
||||||
|
"icons/dearrow.svg",
|
||||||
|
"popup.html",
|
||||||
|
"popup.css",
|
||||||
|
"content.css",
|
||||||
|
"shared.css",
|
||||||
|
"js/document.js",
|
||||||
|
"libs/Source+Sans+Pro.css",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2"
|
||||||
|
],
|
||||||
|
"matches": ["<all_urls>"]
|
||||||
|
}],
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"world": "MAIN",
|
||||||
|
"js": [
|
||||||
|
"./js/document.js"
|
||||||
|
],
|
||||||
|
"matches": [
|
||||||
|
"https://*.youtube.com/*",
|
||||||
|
"https://www.youtube-nocookie.com/embed/*"
|
||||||
|
],
|
||||||
|
"exclude_matches": [
|
||||||
|
"https://accounts.youtube.com/RotateCookiesPage*"
|
||||||
|
],
|
||||||
|
"all_frames": true,
|
||||||
|
"run_at": "document_start"
|
||||||
},
|
},
|
||||||
"permissions": [
|
{
|
||||||
"https://*.youtube.com/*"
|
"world": "ISOLATED",
|
||||||
]
|
"js": [
|
||||||
|
"./js/content.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"content.css",
|
||||||
|
"shared.css"
|
||||||
|
],
|
||||||
|
"matches": [
|
||||||
|
"https://*.youtube.com/*",
|
||||||
|
"https://www.youtube-nocookie.com/embed/*"
|
||||||
|
],
|
||||||
|
"exclude_matches": [
|
||||||
|
"https://accounts.youtube.com/RotateCookiesPage*"
|
||||||
|
],
|
||||||
|
"all_frames": true,
|
||||||
|
"run_at": "document_start"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": {
|
||||||
|
"default_title": "SponsorBlock",
|
||||||
|
"default_popup": "popup.html",
|
||||||
|
"default_icon": {
|
||||||
|
"16": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"32": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"64": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"128": "icons/IconSponsorBlocker128px.png"
|
||||||
|
},
|
||||||
|
"theme_icons": [
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"size": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"size": 32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"size": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker128px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker128px.png",
|
||||||
|
"size": 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker256px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker256px.png",
|
||||||
|
"size": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker512px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker512px.png",
|
||||||
|
"size": 512
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker1024px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker1024px.png",
|
||||||
|
"size": 1024
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"background": {
|
||||||
|
"service_worker": "./js/background.js"
|
||||||
|
},
|
||||||
|
"manifest_version": 3
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,9 +11,6 @@
|
|||||||
"background": {
|
"background": {
|
||||||
"persistent": false
|
"persistent": false
|
||||||
},
|
},
|
||||||
"permissions": [
|
|
||||||
"scripting"
|
|
||||||
],
|
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
"default_area": "navbar"
|
"default_area": "navbar"
|
||||||
}
|
}
|
||||||
|
|||||||
136
manifest/manifest-v2-extra.json
Normal file
136
manifest/manifest-v2-extra.json
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
{
|
||||||
|
"web_accessible_resources": [
|
||||||
|
"icons/LogoSponsorBlocker256px.png",
|
||||||
|
"icons/IconSponsorBlocker256px.png",
|
||||||
|
"icons/PlayerStartIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerStopIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerUploadIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerUploadFailedIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerCancelSegmentIconSponsorBlocker.svg",
|
||||||
|
"icons/clipboard.svg",
|
||||||
|
"icons/settings.svg",
|
||||||
|
"icons/pencil.svg",
|
||||||
|
"icons/check.svg",
|
||||||
|
"icons/check-smaller.svg",
|
||||||
|
"icons/upvote.png",
|
||||||
|
"icons/downvote.png",
|
||||||
|
"icons/thumbs_down.svg",
|
||||||
|
"icons/thumbs_down_locked.svg",
|
||||||
|
"icons/thumbs_up.svg",
|
||||||
|
"icons/help.svg",
|
||||||
|
"icons/report.png",
|
||||||
|
"icons/close.png",
|
||||||
|
"icons/skipIcon.svg",
|
||||||
|
"icons/refresh.svg",
|
||||||
|
"icons/beep.ogg",
|
||||||
|
"icons/pause.svg",
|
||||||
|
"icons/stop.svg",
|
||||||
|
"icons/skip.svg",
|
||||||
|
"icons/heart.svg",
|
||||||
|
"icons/visible.svg",
|
||||||
|
"icons/not_visible.svg",
|
||||||
|
"icons/sort.svg",
|
||||||
|
"icons/money.svg",
|
||||||
|
"icons/segway.png",
|
||||||
|
"icons/close-smaller.svg",
|
||||||
|
"icons/right-arrow.svg",
|
||||||
|
"icons/campaign.svg",
|
||||||
|
"icons/star.svg",
|
||||||
|
"icons/lightbulb.svg",
|
||||||
|
"icons/bolt.svg",
|
||||||
|
"icons/stopwatch.svg",
|
||||||
|
"icons/music-note.svg",
|
||||||
|
"icons/import.svg",
|
||||||
|
"icons/export.svg",
|
||||||
|
"icons/PlayerInfoIconSponsorBlocker.svg",
|
||||||
|
"icons/PlayerDeleteIconSponsorBlocker.svg",
|
||||||
|
"icons/dearrow.svg",
|
||||||
|
"popup.html",
|
||||||
|
"popup.css",
|
||||||
|
"content.css",
|
||||||
|
"shared.css",
|
||||||
|
"js/document.js",
|
||||||
|
"libs/Source+Sans+Pro.css",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2",
|
||||||
|
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2"
|
||||||
|
],
|
||||||
|
"permissions": [
|
||||||
|
"https://sponsor.ajay.app/*"
|
||||||
|
],
|
||||||
|
"optional_permissions": [
|
||||||
|
"*://*/*"
|
||||||
|
],
|
||||||
|
"browser_action": {
|
||||||
|
"default_title": "SponsorBlock",
|
||||||
|
"default_popup": "popup.html",
|
||||||
|
"default_icon": {
|
||||||
|
"16": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"32": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"64": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"128": "icons/IconSponsorBlocker128px.png"
|
||||||
|
},
|
||||||
|
"theme_icons": [
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker16px.png",
|
||||||
|
"size": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker32px.png",
|
||||||
|
"size": 32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker64px.png",
|
||||||
|
"size": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker128px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker128px.png",
|
||||||
|
"size": 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker256px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker256px.png",
|
||||||
|
"size": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker512px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker512px.png",
|
||||||
|
"size": 512
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"light": "icons/IconSponsorBlocker1024px.png",
|
||||||
|
"dark": "icons/IconSponsorBlocker1024px.png",
|
||||||
|
"size": 1024
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"background": {
|
||||||
|
"scripts":[
|
||||||
|
"./js/background.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"content_scripts": [{
|
||||||
|
"run_at": "document_start",
|
||||||
|
"matches": [
|
||||||
|
"https://*.youtube.com/*",
|
||||||
|
"https://www.youtube-nocookie.com/embed/*"
|
||||||
|
],
|
||||||
|
"exclude_matches": [
|
||||||
|
"https://accounts.youtube.com/RotateCookiesPage*"
|
||||||
|
],
|
||||||
|
"all_frames": true,
|
||||||
|
"js": [
|
||||||
|
"./js/content.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"content.css",
|
||||||
|
"shared.css"
|
||||||
|
]
|
||||||
|
}],
|
||||||
|
"manifest_version": 2
|
||||||
|
}
|
||||||
@@ -5,137 +5,6 @@
|
|||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"description": "__MSG_Description__",
|
"description": "__MSG_Description__",
|
||||||
"homepage_url": "https://sponsor.ajay.app",
|
"homepage_url": "https://sponsor.ajay.app",
|
||||||
"content_scripts": [{
|
|
||||||
"run_at": "document_start",
|
|
||||||
"matches": [
|
|
||||||
"https://*.youtube.com/*",
|
|
||||||
"https://www.youtube-nocookie.com/embed/*"
|
|
||||||
],
|
|
||||||
"all_frames": true,
|
|
||||||
"js": [
|
|
||||||
"./js/content.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"content.css",
|
|
||||||
"shared.css"
|
|
||||||
]
|
|
||||||
}],
|
|
||||||
"web_accessible_resources": [
|
|
||||||
"icons/LogoSponsorBlocker256px.png",
|
|
||||||
"icons/IconSponsorBlocker256px.png",
|
|
||||||
"icons/PlayerStartIconSponsorBlocker.svg",
|
|
||||||
"icons/PlayerStopIconSponsorBlocker.svg",
|
|
||||||
"icons/PlayerUploadIconSponsorBlocker.svg",
|
|
||||||
"icons/PlayerUploadFailedIconSponsorBlocker.svg",
|
|
||||||
"icons/PlayerCancelSegmentIconSponsorBlocker.svg",
|
|
||||||
"icons/clipboard.svg",
|
|
||||||
"icons/settings.svg",
|
|
||||||
"icons/pencil.svg",
|
|
||||||
"icons/check.svg",
|
|
||||||
"icons/check-smaller.svg",
|
|
||||||
"icons/upvote.png",
|
|
||||||
"icons/downvote.png",
|
|
||||||
"icons/thumbs_down.svg",
|
|
||||||
"icons/thumbs_down_locked.svg",
|
|
||||||
"icons/thumbs_up.svg",
|
|
||||||
"icons/help.svg",
|
|
||||||
"icons/report.png",
|
|
||||||
"icons/close.png",
|
|
||||||
"icons/skipIcon.svg",
|
|
||||||
"icons/refresh.svg",
|
|
||||||
"icons/beep.ogg",
|
|
||||||
"icons/pause.svg",
|
|
||||||
"icons/stop.svg",
|
|
||||||
"icons/skip.svg",
|
|
||||||
"icons/heart.svg",
|
|
||||||
"icons/visible.svg",
|
|
||||||
"icons/not_visible.svg",
|
|
||||||
"icons/sort.svg",
|
|
||||||
"icons/money.svg",
|
|
||||||
"icons/segway.png",
|
|
||||||
"icons/close-smaller.svg",
|
|
||||||
"icons/right-arrow.svg",
|
|
||||||
"icons/campaign.svg",
|
|
||||||
"icons/star.svg",
|
|
||||||
"icons/lightbulb.svg",
|
|
||||||
"icons/bolt.svg",
|
|
||||||
"icons/stopwatch.svg",
|
|
||||||
"icons/music-note.svg",
|
|
||||||
"icons/import.svg",
|
|
||||||
"icons/export.svg",
|
|
||||||
"icons/PlayerInfoIconSponsorBlocker.svg",
|
|
||||||
"icons/PlayerDeleteIconSponsorBlocker.svg",
|
|
||||||
"icons/dearrow.svg",
|
|
||||||
"popup.html",
|
|
||||||
"popup.css",
|
|
||||||
"content.css",
|
|
||||||
"shared.css",
|
|
||||||
"js/document.js",
|
|
||||||
"libs/Source+Sans+Pro.css",
|
|
||||||
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
|
|
||||||
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2",
|
|
||||||
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2",
|
|
||||||
"libs/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2"
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
"storage",
|
|
||||||
"https://sponsor.ajay.app/*"
|
|
||||||
],
|
|
||||||
"optional_permissions": [
|
|
||||||
"*://*/*"
|
|
||||||
],
|
|
||||||
"browser_action": {
|
|
||||||
"default_title": "SponsorBlock",
|
|
||||||
"default_popup": "popup.html",
|
|
||||||
"default_icon": {
|
|
||||||
"16": "icons/IconSponsorBlocker16px.png",
|
|
||||||
"32": "icons/IconSponsorBlocker32px.png",
|
|
||||||
"64": "icons/IconSponsorBlocker64px.png",
|
|
||||||
"128": "icons/IconSponsorBlocker128px.png"
|
|
||||||
},
|
|
||||||
"theme_icons": [
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker16px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker16px.png",
|
|
||||||
"size": 16
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker32px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker32px.png",
|
|
||||||
"size": 32
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker64px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker64px.png",
|
|
||||||
"size": 64
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker128px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker128px.png",
|
|
||||||
"size": 128
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker256px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker256px.png",
|
|
||||||
"size": 256
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker512px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker512px.png",
|
|
||||||
"size": 512
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"light": "icons/IconSponsorBlocker1024px.png",
|
|
||||||
"dark": "icons/IconSponsorBlocker1024px.png",
|
|
||||||
"size": 1024
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"scripts":[
|
|
||||||
"./js/background.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"icons": {
|
"icons": {
|
||||||
"16": "icons/IconSponsorBlocker16px.png",
|
"16": "icons/IconSponsorBlocker16px.png",
|
||||||
"32": "icons/IconSponsorBlocker32px.png",
|
"32": "icons/IconSponsorBlocker32px.png",
|
||||||
@@ -145,9 +14,12 @@
|
|||||||
"512": "icons/IconSponsorBlocker512px.png",
|
"512": "icons/IconSponsorBlocker512px.png",
|
||||||
"1024": "icons/IconSponsorBlocker1024px.png"
|
"1024": "icons/IconSponsorBlocker1024px.png"
|
||||||
},
|
},
|
||||||
|
"permissions": [
|
||||||
|
"storage",
|
||||||
|
"scripting"
|
||||||
|
],
|
||||||
"options_ui": {
|
"options_ui": {
|
||||||
"page": "options/options.html",
|
"page": "options/options.html",
|
||||||
"open_in_tab": true
|
"open_in_tab": true
|
||||||
},
|
}
|
||||||
"manifest_version": 2
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,6 @@
|
|||||||
"background": {
|
"background": {
|
||||||
"persistent": false
|
"persistent": false
|
||||||
},
|
},
|
||||||
"permissions": [
|
|
||||||
"scripting"
|
|
||||||
],
|
|
||||||
"optional_permissions": [
|
"optional_permissions": [
|
||||||
"webNavigation"
|
"webNavigation"
|
||||||
]
|
]
|
||||||
|
|||||||
Submodule maze-utils updated: 6212c29b9e...42888f800e
@@ -7,13 +7,9 @@ import { sendRealRequestToCustomServer, setupBackgroundRequestProxy } from "../m
|
|||||||
import { setupTabUpdates } from "../maze-utils/src/tab-updates";
|
import { setupTabUpdates } from "../maze-utils/src/tab-updates";
|
||||||
import { generateUserID } from "../maze-utils/src/setup";
|
import { generateUserID } from "../maze-utils/src/setup";
|
||||||
|
|
||||||
// Make the config public for debugging purposes
|
|
||||||
|
|
||||||
window.SB = Config;
|
|
||||||
|
|
||||||
import Utils from "./utils";
|
import Utils from "./utils";
|
||||||
import { getExtensionIdsToImportFrom } from "./utils/crossExtension";
|
import { getExtensionIdsToImportFrom } from "./utils/crossExtension";
|
||||||
import { isFirefoxOrSafari } from "../maze-utils/src";
|
import { isFirefoxOrSafari, waitFor } from "../maze-utils/src";
|
||||||
import { injectUpdatedScripts } from "../maze-utils/src/cleanup";
|
import { injectUpdatedScripts } from "../maze-utils/src/cleanup";
|
||||||
import { logWarn } from "./utils/logger";
|
import { logWarn } from "./utils/logger";
|
||||||
import { chromeP } from "../maze-utils/src/browserApi";
|
import { chromeP } from "../maze-utils/src/browserApi";
|
||||||
@@ -142,9 +138,16 @@ chrome.runtime.onInstalled.addListener(function () {
|
|||||||
}
|
}
|
||||||
}, 1500);
|
}, 1500);
|
||||||
|
|
||||||
// Only do this once the old version understands how to clean itself up
|
if (!isFirefoxOrSafari()) {
|
||||||
if (!isFirefoxOrSafari() && chrome.runtime.getManifest().version !== "5.4.13") {
|
|
||||||
injectUpdatedScripts().catch(logWarn);
|
injectUpdatedScripts().catch(logWarn);
|
||||||
|
|
||||||
|
waitFor(() => Config.isReady()).then(() => {
|
||||||
|
if (Config.config.supportInvidious) {
|
||||||
|
injectUpdatedScripts([
|
||||||
|
utils.getExtraSiteRegistration()
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}).catch(logWarn);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ setupVideoModule({
|
|||||||
updateVisibilityOfPlayerControlsButton();
|
updateVisibilityOfPlayerControlsButton();
|
||||||
},
|
},
|
||||||
resetValues,
|
resetValues,
|
||||||
documentScript
|
documentScript: chrome.runtime.getManifest().manifest_version === 2 ? documentScript : undefined
|
||||||
}, () => Config);
|
}, () => Config);
|
||||||
setupThumbnailListener();
|
setupThumbnailListener();
|
||||||
|
|
||||||
@@ -264,7 +264,9 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo
|
|||||||
// it will assume the page is not a video page and stop the refresh animation
|
// it will assume the page is not a video page and stop the refresh animation
|
||||||
sendResponse({ hasVideo: getVideoID() != null });
|
sendResponse({ hasVideo: getVideoID() != null });
|
||||||
// fetch segments
|
// fetch segments
|
||||||
|
if (getVideoID()) {
|
||||||
sponsorsLookup(false);
|
sponsorsLookup(false);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "unskip":
|
case "unskip":
|
||||||
@@ -1115,7 +1117,12 @@ async function sponsorsLookup(keepOldSubmissions = true) {
|
|||||||
const hashParams = getHashParams();
|
const hashParams = getHashParams();
|
||||||
if (hashParams.requiredSegment) extraRequestData.requiredSegment = hashParams.requiredSegment;
|
if (hashParams.requiredSegment) extraRequestData.requiredSegment = hashParams.requiredSegment;
|
||||||
|
|
||||||
const hashPrefix = (await getHash(getVideoID(), 1)).slice(0, 4) as VideoID & HashedValue;
|
const videoID = getVideoID()
|
||||||
|
if (!videoID) {
|
||||||
|
console.error("[SponsorBlock] Attempted to fetch segments with a null/undefined videoID.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const hashPrefix = (await getHash(videoID, 1)).slice(0, 4) as VideoID & HashedValue;
|
||||||
const response = await asyncRequestToServer('GET', "/api/skipSegments/" + hashPrefix, {
|
const response = await asyncRequestToServer('GET', "/api/skipSegments/" + hashPrefix, {
|
||||||
categories,
|
categories,
|
||||||
actionTypes: getEnabledActionTypes(),
|
actionTypes: getEnabledActionTypes(),
|
||||||
|
|||||||
15
src/globals.d.ts
vendored
15
src/globals.d.ts
vendored
@@ -1,19 +1,4 @@
|
|||||||
import { SBObject } from "./config";
|
import { SBObject } from "./config";
|
||||||
declare global {
|
declare global {
|
||||||
interface Window { SB: SBObject }
|
interface Window { SB: SBObject }
|
||||||
// Remove this once the API becomes stable and types are shipped in @types/chrome
|
|
||||||
namespace chrome {
|
|
||||||
namespace declarativeContent {
|
|
||||||
export interface RequestContentScriptOptions {
|
|
||||||
allFrames?: boolean;
|
|
||||||
css?: string[];
|
|
||||||
instanceType?: "declarativeContent.RequestContentScript";
|
|
||||||
js?: string[];
|
|
||||||
matchAboutBlanck?: boolean;
|
|
||||||
}
|
|
||||||
export class RequestContentScript {
|
|
||||||
constructor(options: RequestContentScriptOptions);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
38
src/utils.ts
38
src/utils.ts
@@ -2,7 +2,7 @@ import Config, { VideoDownvotes } from "./config";
|
|||||||
import { CategorySelection, SponsorTime, BackgroundScriptContainer, Registration, VideoID, SponsorHideType, CategorySkipOption } from "./types";
|
import { CategorySelection, SponsorTime, BackgroundScriptContainer, Registration, VideoID, SponsorHideType, CategorySkipOption } from "./types";
|
||||||
|
|
||||||
import { getHash, HashedValue } from "../maze-utils/src/hash";
|
import { getHash, HashedValue } from "../maze-utils/src/hash";
|
||||||
import { isFirefoxOrSafari, waitFor } from "../maze-utils/src";
|
import { waitFor } from "../maze-utils/src";
|
||||||
import { findValidElementFromSelector } from "../maze-utils/src/dom";
|
import { findValidElementFromSelector } from "../maze-utils/src/dom";
|
||||||
import { isSafari } from "../maze-utils/src/config";
|
import { isSafari } from "../maze-utils/src/config";
|
||||||
|
|
||||||
@@ -46,10 +46,7 @@ export default class Utils {
|
|||||||
*/
|
*/
|
||||||
setupExtraSitePermissions(callback: (granted: boolean) => void): void {
|
setupExtraSitePermissions(callback: (granted: boolean) => void): void {
|
||||||
const permissions = [];
|
const permissions = [];
|
||||||
if (!isFirefoxOrSafari()) {
|
if (isSafari()) {
|
||||||
permissions.push("declarativeContent");
|
|
||||||
}
|
|
||||||
if (!isFirefoxOrSafari() || isSafari()) {
|
|
||||||
permissions.push("webNavigation");
|
permissions.push("webNavigation");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,6 +64,17 @@ export default class Utils {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getExtraSiteRegistration(): Registration {
|
||||||
|
return {
|
||||||
|
message: "registerContentScript",
|
||||||
|
id: "invidious",
|
||||||
|
allFrames: true,
|
||||||
|
js: this.js,
|
||||||
|
css: this.css,
|
||||||
|
matches: this.getPermissionRegex()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers the content scripts for the extra sites.
|
* Registers the content scripts for the extra sites.
|
||||||
* Will use a different method depending on the browser.
|
* Will use a different method depending on the browser.
|
||||||
@@ -75,14 +83,7 @@ export default class Utils {
|
|||||||
* For now, it is just SB.config.invidiousInstances.
|
* For now, it is just SB.config.invidiousInstances.
|
||||||
*/
|
*/
|
||||||
setupExtraSiteContentScripts(): void {
|
setupExtraSiteContentScripts(): void {
|
||||||
const registration: Registration = {
|
const registration = this.getExtraSiteRegistration();
|
||||||
message: "registerContentScript",
|
|
||||||
id: "invidious",
|
|
||||||
allFrames: true,
|
|
||||||
js: this.js,
|
|
||||||
css: this.css,
|
|
||||||
matches: this.getPermissionRegex()
|
|
||||||
};
|
|
||||||
|
|
||||||
if (this.backgroundScriptContainer) {
|
if (this.backgroundScriptContainer) {
|
||||||
this.backgroundScriptContainer.registerFirefoxContentScript(registration);
|
this.backgroundScriptContainer.registerFirefoxContentScript(registration);
|
||||||
@@ -106,11 +107,6 @@ export default class Utils {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isFirefoxOrSafari() && chrome.declarativeContent) {
|
|
||||||
// Only if we have permission
|
|
||||||
chrome.declarativeContent.onPageChanged.removeRules(["invidious"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
chrome.permissions.remove({
|
chrome.permissions.remove({
|
||||||
origins: this.getPermissionRegex()
|
origins: this.getPermissionRegex()
|
||||||
});
|
});
|
||||||
@@ -135,8 +131,10 @@ export default class Utils {
|
|||||||
|
|
||||||
containsInvidiousPermission(): Promise<boolean> {
|
containsInvidiousPermission(): Promise<boolean> {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
let permissions = ["declarativeContent"];
|
const permissions = [];
|
||||||
if (isFirefoxOrSafari()) permissions = [];
|
if (isSafari()) {
|
||||||
|
permissions.push("webNavigation");
|
||||||
|
}
|
||||||
|
|
||||||
chrome.permissions.contains({
|
chrome.permissions.contains({
|
||||||
origins: this.getPermissionRegex(),
|
origins: this.getPermissionRegex(),
|
||||||
|
|||||||
@@ -1,12 +1,22 @@
|
|||||||
|
if (typeof (window) !== "undefined") {
|
||||||
window["SBLogs"] = {
|
window["SBLogs"] = {
|
||||||
debug: [],
|
debug: [],
|
||||||
warn: []
|
warn: []
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function logDebug(message: string) {
|
export function logDebug(message: string) {
|
||||||
|
if (typeof (window) !== "undefined") {
|
||||||
window["SBLogs"].debug.push(`[${new Date().toISOString()}] ${message}`);
|
window["SBLogs"].debug.push(`[${new Date().toISOString()}] ${message}`);
|
||||||
|
} else {
|
||||||
|
console.log(`[${new Date().toISOString()}] ${message}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function logWarn(message: string) {
|
export function logWarn(message: string) {
|
||||||
|
if (typeof (window) !== "undefined") {
|
||||||
window["SBLogs"].warn.push(`[${new Date().toISOString()}] ${message}`);
|
window["SBLogs"].warn.push(`[${new Date().toISOString()}] ${message}`);
|
||||||
|
} else {
|
||||||
|
console.warn(`[${new Date().toISOString()}] ${message}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,7 @@ const chromeManifestExtra = require("../manifest/chrome-manifest-extra.json");
|
|||||||
const safariManifestExtra = require("../manifest/safari-manifest-extra.json");
|
const safariManifestExtra = require("../manifest/safari-manifest-extra.json");
|
||||||
const betaManifestExtra = require("../manifest/beta-manifest-extra.json");
|
const betaManifestExtra = require("../manifest/beta-manifest-extra.json");
|
||||||
const firefoxBetaManifestExtra = require("../manifest/firefox-beta-manifest-extra.json");
|
const firefoxBetaManifestExtra = require("../manifest/firefox-beta-manifest-extra.json");
|
||||||
|
const manifestV2ManifestExtra = require("../manifest/manifest-v2-extra.json");
|
||||||
|
|
||||||
// schema for options object
|
// schema for options object
|
||||||
const schema = {
|
const schema = {
|
||||||
@@ -41,12 +42,14 @@ class BuildManifest {
|
|||||||
|
|
||||||
// Add missing manifest elements
|
// Add missing manifest elements
|
||||||
if (this.options.browser.toLowerCase() === "firefox") {
|
if (this.options.browser.toLowerCase() === "firefox") {
|
||||||
|
mergeObjects(manifest, manifestV2ManifestExtra);
|
||||||
mergeObjects(manifest, firefoxManifestExtra);
|
mergeObjects(manifest, firefoxManifestExtra);
|
||||||
} else if (this.options.browser.toLowerCase() === "chrome"
|
} else if (this.options.browser.toLowerCase() === "chrome"
|
||||||
|| this.options.browser.toLowerCase() === "chromium"
|
|| this.options.browser.toLowerCase() === "chromium"
|
||||||
|| this.options.browser.toLowerCase() === "edge") {
|
|| this.options.browser.toLowerCase() === "edge") {
|
||||||
mergeObjects(manifest, chromeManifestExtra);
|
mergeObjects(manifest, chromeManifestExtra);
|
||||||
} else if (this.options.browser.toLowerCase() === "safari") {
|
} else if (this.options.browser.toLowerCase() === "safari") {
|
||||||
|
mergeObjects(manifest, manifestV2ManifestExtra);
|
||||||
mergeObjects(manifest, safariManifestExtra);
|
mergeObjects(manifest, safariManifestExtra);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user