mirror of
https://github.com/younesaassila/ttv-lol-pro.git
synced 2025-04-29 22:14:27 +02:00
Merge pull request #274 from younesaassila/v2.2.2
🔖 Release version 2.2.2
This commit is contained in:
commit
ca8af228ef
1369
package-lock.json
generated
1369
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
18
package.json
18
package.json
@ -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
|
||||
|
@ -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(
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
14
src/background/handlers/onTabReplaced.ts
Normal file
14
src/background/handlers/onTabReplaced.ts
Normal 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."));
|
||||
}
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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({
|
||||
|
Loading…
x
Reference in New Issue
Block a user