Merge pull request #274 from younesaassila/v2.2.2

🔖 Release version 2.2.2
This commit is contained in:
Younes Aassila 2023-12-09 19:57:15 +01:00 committed by GitHub
commit ca8af228ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 729 additions and 696 deletions

1369
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "ttv-lol-pro",
"version": "2.2.1",
"version": "2.2.2",
"description": "TTV LOL PRO removes most livestream ads from Twitch.",
"@parcel/bundler-default": {
"minBundles": 10000000,
@ -46,19 +46,19 @@
"ip": "^1.1.8"
},
"devDependencies": {
"@parcel/config-webextension": "^2.9.3",
"@types/chrome": "^0.0.246",
"@types/ip": "^1.1.1",
"@types/webextension-polyfill": "^0.10.4",
"@parcel/config-webextension": "^2.10.3",
"@types/chrome": "^0.0.254",
"@types/ip": "^1.1.3",
"@types/webextension-polyfill": "^0.10.7",
"buffer": "^6.0.3",
"os-browserify": "^0.3.0",
"parcel": "^2.9.3",
"postcss": "^8.4.31",
"parcel": "^2.10.3",
"postcss": "^8.4.32",
"prettier": "2.8.8",
"prettier-plugin-css-order": "^1.3.1",
"prettier-plugin-organize-imports": "^3.2.3",
"prettier-plugin-organize-imports": "^3.2.4",
"shx": "^0.3.4",
"typescript": "^5.2.2",
"typescript": "^5.3.3",
"webextension-polyfill": "^0.10.0"
},
"private": true

View File

@ -10,6 +10,7 @@ import onResponseStarted from "./handlers/onResponseStarted";
import onStartupStoreCleanup from "./handlers/onStartupStoreCleanup";
import onTabCreated from "./handlers/onTabCreated";
import onTabRemoved from "./handlers/onTabRemoved";
import onTabReplaced from "./handlers/onTabReplaced";
import onTabUpdated from "./handlers/onTabUpdated";
console.info("🚀 Background script loaded.");
@ -40,6 +41,7 @@ if (isChromium) {
browser.tabs.onCreated.addListener(onTabCreated);
browser.tabs.onUpdated.addListener(onTabUpdated);
browser.tabs.onRemoved.addListener(onTabRemoved);
browser.tabs.onReplaced.addListener(onTabReplaced);
} else {
// Block tracking pixels.
browser.webRequest.onBeforeRequest.addListener(

View File

@ -8,6 +8,9 @@ import { twitchTvHostRegex } from "../../common/ts/regexes";
import store from "../../store";
export default function onTabCreated(tab: Tabs.Tab): void {
if (store.readyState !== "complete")
return store.addEventListener("load", () => onTabCreated(tab));
const url = tab.url || tab.pendingUrl;
if (!url) return;
const host = getHostFromUrl(url);

View File

@ -4,6 +4,9 @@ import { clearProxySettings } from "../../common/ts/proxySettings";
import store from "../../store";
export default function onTabRemoved(tabId: number): void {
if (store.readyState !== "complete")
return store.addEventListener("load", () => onTabRemoved(tabId));
const index = store.state.openedTwitchTabs.findIndex(tab => tab.id === tabId);
if (index === -1) return;

View File

@ -0,0 +1,14 @@
import browser from "webextension-polyfill";
import onTabCreated from "./onTabCreated";
import onTabRemoved from "./onTabRemoved";
export default function onTabReplaced(
addedTabId: number,
removedTabId: number
): void {
onTabRemoved(removedTabId);
browser.tabs
.get(addedTabId)
.then(tab => onTabCreated(tab))
.catch(() => console.error("❌ Failed to get tab after replacement."));
}

View File

@ -16,6 +16,12 @@ export default function onTabUpdated(
changeInfo: Tabs.OnUpdatedChangeInfoType,
tab: Tabs.Tab
): void {
if (store.readyState !== "complete") {
return store.addEventListener("load", () =>
onTabUpdated(tabId, changeInfo, tab)
);
}
const isPageNavigation = changeInfo.url != null;
// We have to check for `changeInfo.status === "loading"` because
// `changeInfo.url` is incorrect when navigating from Twitch to another

View File

@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "TTV LOL PRO",
"description": "TTV LOL PRO removes most livestream ads from Twitch.",
"version": "2.2.1",
"version": "2.2.2",
"background": {
"service_worker": "background/background.ts",
"type": "module"

View File

@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "TTV LOL PRO",
"description": "TTV LOL PRO removes most livestream ads from Twitch.",
"version": "2.2.1",
"version": "2.2.2",
"background": {
"scripts": ["background/background.ts"],
"persistent": false

View File

@ -182,6 +182,12 @@ copyDebugInfoButtonElement.addEventListener("click", async e => {
? store.state.normalProxies
: anonymizeIpAddresses(store.state.normalProxies)
)}`,
isChromium
? `- Should extension be active: ${store.state.chromiumProxyActive}`
: "",
isChromium
? `- Number of opened Twitch tabs: ${store.state.openedTwitchTabs.length}`
: "",
`- Last ad log entry: ${
store.state.adLog.length
? JSON.stringify({