From deb526c415e25eb8f41fbca4956a7fd70b499a96 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 19:35:03 +0000 Subject: [PATCH 1/3] Settings: choose how Twitch GTA streams are handled New "Twitch" section on the settings page with two modes, saved as twitchMode: - warn (default): mark GTA streams red and warn before opening one - hide: remove GTA streams completely (the previous behaviour) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JwxKLiPRub6p8CfggHK7nR --- src/options/options.css | 2 ++ src/options/options.html | 9 +++++++++ src/options/options.js | 5 +++++ src/shared.js | 3 +++ 4 files changed, 19 insertions(+) diff --git a/src/options/options.css b/src/options/options.css index b6446b0..d466a90 100644 --- a/src/options/options.css +++ b/src/options/options.css @@ -9,3 +9,5 @@ small, .hint { color: var(--muted); } .hint { margin: 0 0 10px; font-size: 13px; } .actions { display: flex; align-items: center; gap: 12px; } #status { flex: 1; text-align: right; color: var(--muted); } +.choice { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; cursor: pointer; } +.choice input { margin: 4px 0 0; accent-color: var(--accent); flex: none; } diff --git a/src/options/options.html b/src/options/options.html index 4cb3cb4..1ec1c4e 100644 --- a/src/options/options.html +++ b/src/options/options.html @@ -22,6 +22,15 @@

GTA 6 Blocker settings

+
+

Twitch

+

What to do with streams playing Grand Theft Auto (any GTA category).

+ + +
+

Keywords

One per line, not case sensitive. Spaces also match dashes, dots and no space at all, so GTA 6 catches "GTA-6" and "gta6". Hashtags match by prefix, so GTA also catches #gtaonline.

diff --git a/src/options/options.js b/src/options/options.js index a948063..b4ee63e 100644 --- a/src/options/options.js +++ b/src/options/options.js @@ -10,6 +10,8 @@ $('networkBlocking').checked = s.networkBlocking; $('keywords').value = (s.keywords || []).join('\n'); $('allowlist').value = (s.allowlist || []).join('\n'); + const mode = s.twitchMode === 'hide' ? 'hide' : 'warn'; + document.querySelector('input[name="twitchMode"][value="' + mode + '"]').checked = true; } function flash(msg) { @@ -21,6 +23,9 @@ $('enabled').addEventListener('change', (e) => setSettings({ enabled: e.target.checked }).then(() => flash('Saved'))); $('networkBlocking').addEventListener('change', (e) => setSettings({ networkBlocking: e.target.checked }).then(() => flash('Saved'))); + document.querySelectorAll('input[name="twitchMode"]').forEach((r) => + r.addEventListener('change', (e) => setSettings({ twitchMode: e.target.value }).then(() => flash('Saved')))); + $('save').addEventListener('click', async () => { const keywords = lines($('keywords').value); if (!keywords.length) return flash('Add at least one keyword.'); diff --git a/src/shared.js b/src/shared.js index d183423..ea6ffd2 100644 --- a/src/shared.js +++ b/src/shared.js @@ -40,6 +40,9 @@ networkBlocking: true, keywords: DEFAULT_KEYWORDS, allowlist: [], + // Twitch GTA streams: 'warn' = mark red + warning before opening, + // 'hide' = remove them completely. + twitchMode: 'warn', blockedTotal: 0 }; From 030a246e85bfdb75cd4ae1257497a4dca0e2c605 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 19:35:03 +0000 Subject: [PATCH 2/3] Twitch: mark GTA streams red and warn before they load In the default "warn" mode GTA streams are no longer silently removed: - Stream cards, sidebar channels and category cards in any GTA category get a red frame, red tint and a "GTA" badge. - Clicking a red stream shows a warning before the stream is opened ("Go back" stays on the list, "Watch anyway" opens it). - Opening a GTA stream directly (link, new tab, streamer switching to GTA) shows the warning in front of the paused, muted player. - "Watch anyway" is remembered per channel for the tab, and the stream keeps a red frame around the page while it is a GTA stream. The "hide" mode keeps the old behaviour (remove cards, block the page). Tests cover both modes and the settings page. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JwxKLiPRub6p8CfggHK7nR --- src/content.css | 34 ++++++++ src/content.js | 162 +++++++++++++++++++++++++++++++++++-- test/run-test.js | 55 ++++++++++++- test/twitch-directory.html | 2 +- 4 files changed, 245 insertions(+), 8 deletions(-) diff --git a/src/content.css b/src/content.css index ca3d263..815dfc0 100644 --- a/src/content.css +++ b/src/content.css @@ -33,3 +33,37 @@ html[data-gta6-page-blocked] body { font: 600 16px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; visibility: visible !important; } + +/* Twitch, "mark red and warn" mode: GTA streams stay visible but are + clearly marked, and opening one shows a warning first. */ +[data-gta6-flagged] { + position: relative !important; + outline: 3px solid #e5484d !important; + outline-offset: -3px; + background-color: rgba(229, 72, 77, 0.16) !important; + border-radius: 6px; +} +[data-gta6-flagged]::before { + content: "GTA"; + position: absolute; + top: 6px; + right: 6px; + z-index: 10; + padding: 2px 6px; + border-radius: 4px; + background: #e5484d; + color: #fff; + font: 700 11px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + letter-spacing: .04em; + pointer-events: none; +} + +/* A GTA stream the user chose to watch anyway: red frame around the page. */ +html[data-gta6-gta-stream]::after { + content: ""; + position: fixed; + inset: 0; + z-index: 2147483645; + border: 5px solid #e5484d; + pointer-events: none; +} diff --git a/src/content.js b/src/content.js index a74cf7b..73b6e90 100644 --- a/src/content.js +++ b/src/content.js @@ -63,7 +63,7 @@ 'div[data-e2e="recommend-list-item-container"]', 'article[data-e2e="recommend-list-item-container"]', 'div[data-e2e="feed-video"]', 'section[data-e2e="feed-video"]' ].join(','); - const BLOCKED_SEL = '[data-gta6-blocked],[data-gta6-covered]'; + const BLOCKED_SEL = '[data-gta6-blocked],[data-gta6-covered],[data-gta6-flagged]'; function isSnapFeed() { const h = location.hostname; @@ -122,6 +122,11 @@ // True on the extension's own GitHub repo, which is never blocked (see // isProjectUrl in shared.js). Re-checked on every SPA navigation. let exempt = false; + // Twitch: 'warn' marks GTA streams red and warns before one is opened, + // 'hide' removes them completely (settings page). + let twitchMode = 'warn'; + let warnHost = null; + let warnTimer = null; let blockedCount = 0; let pageBlocked = false; let overlayHost = null; @@ -228,6 +233,14 @@ function hide(el) { if (!el || el.nodeType !== 1 || el.closest(BLOCKED_SEL) || isEditable(el)) return; + if (isTwitch() && twitchMode === 'warn') { + const target = containerFor(el); + if (!target || target.contains(warnHost)) return; + target.setAttribute('data-gta6-flagged', ''); + blockedCount++; + reportCount(); + return; + } if (isSnapFeed()) { const player = playerFor(el); if (player) { @@ -313,7 +326,7 @@ // Open shadow roots (Reddit, some YouTube parts). if (root.querySelectorAll) { root.querySelectorAll('*').forEach((el) => { - if (el.shadowRoot && !el.shadowRoot.__gta6Observed) { + if (el.shadowRoot && el !== warnHost && !el.shadowRoot.__gta6Observed) { el.shadowRoot.__gta6Observed = true; scanText(el.shadowRoot); scanAttributes(el.shadowRoot); @@ -329,7 +342,7 @@ if (urlMatches(location.href)) return true; // Swipe feeds change the title per video; items are covered one by one instead. if (isSnapFeed()) return false; - if (twitchStreamIsGta()) return true; + if (twitchMode === 'hide' && twitchStreamIsGta()) return true; if (matches(document.title)) return true; const og = document.querySelector('meta[property="og:title"], meta[name="twitter:title"]'); if (og && matches(og.getAttribute('content'))) return true; @@ -408,12 +421,147 @@ reportCount(); } + // ---------- Twitch warning (twitchMode 'warn') ---------- + + const ALLOWED_KEY = 'gta6-twitch-allowed'; + + /** "shroud" for twitch.tv/shroud, "videos/123" for a VOD. */ + function twitchChannelKey(pathname) { + const parts = String(pathname || '').toLowerCase().split('/').filter(Boolean); + return parts[0] === 'videos' ? parts.slice(0, 2).join('/') : (parts[0] || ''); + } + + function allowedChannels() { + try { return JSON.parse(sessionStorage.getItem(ALLOWED_KEY) || '[]'); } catch (e) { return []; } + } + + function allowChannel(key) { + try { + const list = allowedChannels(); + if (!list.includes(key)) sessionStorage.setItem(ALLOWED_KEY, JSON.stringify(list.concat(key))); + } catch (e) { /* storage blocked: warn again next time */ } + } + + function isChannelAllowed(key) { + return allowedChannels().includes(key); + } + + /** Is this link a Twitch channel or video page (not directory, search, ...)? */ + function twitchStreamLink(a) { + let u; + try { u = new URL(a.getAttribute('href'), location.href); } catch (e) { return null; } + if (!/(^|\.)twitch\.tv$/.test(u.hostname)) return null; + if (/^\/(directory|search|settings|downloads|subscriptions|drops|inventory|wallet|prime|turbo|jobs|p)?(\/|$)/i.test(u.pathname)) return null; + return u; + } + + /** + * Full-screen warning in front of a GTA stream. The player is paused and + * muted while it is shown. "Watch anyway" remembers the channel for this + * tab, then runs onContinue (or simply reveals the stream). + */ + function showTwitchWarning(key, onContinue) { + if (warnHost && warnHost.isConnected) return; + warnHost = document.createElement('gta6-twitch-warning'); + const shadow = warnHost.attachShadow({ mode: 'open' }); + const iconUrl = ext.runtime.getURL('icons/icon-128.png'); + shadow.innerHTML = ` + +
+
+ +

Warning: GTA stream

+

This stream is playing Grand Theft Auto and may contain GTA 6 spoilers.

+
+ + +
+
+
`; + shadow.getElementById('gta6-back').addEventListener('click', () => { + if (onContinue) { hideTwitchWarning(); return; } // warned before navigating: just stay + if (history.length > 1) history.back(); + else location.href = 'https://www.twitch.tv/'; + }); + shadow.getElementById('gta6-continue').addEventListener('click', () => { + allowChannel(key); + hideTwitchWarning(); + if (onContinue) onContinue(); + }); + (document.body || document.documentElement).appendChild(warnHost); + if (!onContinue) { + // In front of the stream: keep the player paused until the user decides. + pauseAllMedia(); + warnTimer = setInterval(() => { + pauseAllMedia(); + if (warnHost && !warnHost.isConnected) (document.body || document.documentElement).appendChild(warnHost); + }, 400); + } + } + + function hideTwitchWarning() { + clearInterval(warnTimer); + warnTimer = null; + if (warnHost) warnHost.remove(); + warnHost = null; + } + + /** Channel page in warn mode: red frame, plus the warning until the user continues. */ + function updateTwitchStream() { + const html = document.documentElement; + const gta = enabled && !exempt && twitchMode === 'warn' && twitchStreamIsGta(); + if (!gta) { + html.removeAttribute('data-gta6-gta-stream'); + if (warnHost && !warnHost.__gta6Link) hideTwitchWarning(); + return; + } + html.setAttribute('data-gta6-gta-stream', ''); + const key = twitchChannelKey(location.pathname); + if (!isChannelAllowed(key)) showTwitchWarning(key, null); + } + + // Warn before a flagged (red) stream is even opened. + document.addEventListener('click', (e) => { + if (!enabled || exempt || twitchMode !== 'warn' || !isTwitch()) return; + if (e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return; // new tab: warned there + const t = e.target; + const a = t && t.closest && t.closest('a[href]'); + if (!a || !a.closest('[data-gta6-flagged]')) return; + const u = twitchStreamLink(a); + if (!u) return; + const key = twitchChannelKey(u.pathname); + if (isChannelAllowed(key)) return; + e.preventDefault(); + e.stopImmediatePropagation(); + hideTwitchWarning(); + showTwitchWarning(key, () => location.assign(u.href)); + warnHost.__gta6Link = true; + }, true); + function checkPage() { if (!enabled) return; if (exempt) { if (pageBlocked) unblockPage(); + updateTwitchStream(); return; } + if (isTwitch()) updateTwitchStream(); if (pageShouldBlock()) blockPage(); else if (pageBlocked) { unblockPage(); @@ -438,6 +586,9 @@ function clearMarks() { document.querySelectorAll('[data-gta6-blocked]').forEach((el) => el.removeAttribute('data-gta6-blocked')); + document.querySelectorAll('[data-gta6-flagged]').forEach((el) => el.removeAttribute('data-gta6-flagged')); + document.documentElement.removeAttribute('data-gta6-gta-stream'); + hideTwitchWarning(); document.querySelectorAll('[data-gta6-covered]').forEach((el) => el.removeAttribute('data-gta6-covered')); } @@ -483,7 +634,7 @@ for (const m of mutations) { if (m.type === 'childList') { m.addedNodes.forEach((n) => { - if (n.nodeType === 1 && n !== overlayHost) schedule(n); + if (n.nodeType === 1 && n !== overlayHost && n !== warnHost) schedule(n); else if (n.nodeType === 3 && n.parentElement) schedule(n.parentElement); }); if (m.target.nodeName === 'TITLE' || m.target.nodeName === 'HEAD') schedule(document.documentElement); @@ -520,6 +671,7 @@ enabled = !!s.enabled && !allowed; exempt = isProjectUrl(location.href); matcher = buildMatcher(s.keywords); + twitchMode = s.twitchMode === 'hide' ? 'hide' : 'warn'; if (!enabled) { stopObserver(); @@ -541,7 +693,7 @@ ext.storage.onChanged.addListener((changes, area) => { if (area !== 'local') return; - if (changes.enabled || changes.keywords || changes.allowlist) apply(); + if (changes.enabled || changes.keywords || changes.allowlist || changes.twitchMode) apply(); }); ext.runtime.onMessage.addListener((msg, _sender, sendResponse) => { diff --git a/test/run-test.js b/test/run-test.js index f4248c9..b71d715 100644 --- a/test/run-test.js +++ b/test/run-test.js @@ -118,12 +118,15 @@ const server = http.createServer((req, res) => { check('github: leaving the repo via SPA navigation blocks again', await isBlocked()); await page.unrouteAll(); - // Twitch: GTA streams (any GTA category) are hidden from the sidebar and - // directory, and a channel page streaming GTA is blocked. + // Twitch, "remove completely" mode: GTA streams (any GTA category) are + // hidden from the sidebar and directory, and a channel page streaming GTA + // is blocked. await page.route('https://www.twitch.tv/**', (route) => { const file = new URL(route.request().url()).pathname.startsWith('/directory') ? 'twitch-directory.html' : 'twitch-channel.html'; route.fulfill({ contentType: 'text/html', body: fs.readFileSync(path.join(__dirname, file)) }); }); + check('twitch: default mode is warn', (await sw.evaluate(() => globalThis.GTA6.getSettings())).twitchMode === 'warn'); + await sw.evaluate(() => chrome.storage.local.set({ twitchMode: 'hide' })); await page.goto('https://www.twitch.tv/directory/all'); await page.waitForTimeout(800); check('twitch: directory page not blocked', !(await isBlocked())); @@ -157,8 +160,56 @@ const server = http.createServer((req, res) => { }); await page.waitForTimeout(800); check('twitch: switching away from GTA unblocks', !(await isBlocked())); + + // Twitch, default "mark red and warn" mode. + await sw.evaluate(() => chrome.storage.local.set({ twitchMode: 'warn' })); + const warning = () => page.evaluate(() => !!document.querySelector('gta6-twitch-warning')); + const redFrame = () => page.evaluate(() => document.documentElement.hasAttribute('data-gta6-gta-stream')); + const flagged = (id) => page.$eval('#' + id, (el) => !!el.closest('[data-gta6-flagged]')); + await page.goto('https://www.twitch.tv/directory/all'); + await page.waitForTimeout(800); + for (const id of ['sn1', 'sn2', 'c1', 'c2', 'c3', 'g1']) { + check('twitch warn: marks ' + id + ' red', await flagged(id)); + check('twitch warn: does not hide ' + id, !(await twHidden(id))); + } + for (const id of ['sn3', 'c4', 'g2']) check('twitch warn: leaves ' + id + ' unmarked', !(await flagged(id))); + // Clicking a red stream warns before the stream is opened. + await page.click('#c2 a[href="/retrogamer"]'); + await page.waitForTimeout(500); + check('twitch warn: click on red stream shows warning first', await warning()); + check('twitch warn: stream not opened yet', page.url().endsWith('/directory/all')); + await page.click('#gta6-back'); + await page.waitForTimeout(300); + check('twitch warn: "Go back" stays on the list', !(await warning()) && page.url().endsWith('/directory/all')); + await page.click('#c2 a[href="/retrogamer"]'); + await page.waitForTimeout(300); + await Promise.all([page.waitForURL('**/retrogamer'), page.click('#gta6-continue')]); + await page.waitForTimeout(1000); + check('twitch warn: "Watch anyway" opens the stream without a second warning', !(await warning())); + check('twitch warn: stream shown with red frame', await redFrame()); + check('twitch warn: stream page not blocked', !(await isBlocked())); + // Opening a GTA stream directly: warning in front of the paused player. + await page.goto('https://www.twitch.tv/rpstreamer'); + await page.waitForTimeout(1000); + check('twitch warn: direct visit shows warning', await warning()); + check('twitch warn: direct visit red frame', await redFrame()); + await page.click('#gta6-continue'); + await page.waitForTimeout(300); + check('twitch warn: "Watch anyway" removes warning', !(await warning())); + await page.goto('https://www.twitch.tv/blockbuilder'); + await page.waitForTimeout(1000); + check('twitch warn: non-GTA stream has no warning or frame', !(await warning()) && !(await redFrame())); await page.unrouteAll(); + // Settings page: the Twitch choice is saved. + await page.goto('chrome-extension://' + new URL(sw.url()).host + '/options/options.html'); + await page.waitForTimeout(300); + check('options: warn selected by default', await page.isChecked('input[name="twitchMode"][value="warn"]')); + await page.check('input[name="twitchMode"][value="hide"]'); + await page.waitForTimeout(300); + check('options: "remove completely" saved', (await sw.evaluate(() => chrome.storage.local.get('twitchMode'))).twitchMode === 'hide'); + await sw.evaluate(() => chrome.storage.local.set({ twitchMode: 'warn' })); + // Turn off and confirm content comes back. await sw.evaluate(() => chrome.storage.local.set({ enabled: false })); await page.waitForTimeout(300); diff --git a/test/twitch-directory.html b/test/twitch-directory.html index 2421c5a..cbd8478 100644 --- a/test/twitch-directory.html +++ b/test/twitch-directory.html @@ -11,7 +11,7 @@
-

Niko Bellic story run

+ From 2ca57ccb2c1e7d18440738302c379ae72a3ea5b9 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 19:35:12 +0000 Subject: [PATCH 3/3] Release 1.3.0: README, changelog and Twitch screenshots Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JwxKLiPRub6p8CfggHK7nR --- CHANGELOG.md | 5 +++++ README.md | 3 ++- docs/screenshots/twitch-red.png | Bin 0 -> 32006 bytes docs/screenshots/twitch-warning.png | Bin 0 -> 40849 bytes package.json | 2 +- src/manifest.json | 2 +- 6 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 docs/screenshots/twitch-red.png create mode 100644 docs/screenshots/twitch-warning.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 3476c73..21216d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.3.0 (2026-11-11) + +- Twitch: GTA streams are now marked red instead of hidden, and opening one shows a warning before the stream plays ("Go back" or "Watch anyway"). After "Watch anyway" the stream keeps a red frame. +- New setting "Twitch": mark red and warn (default) or remove GTA streams completely (previous behaviour). + ## 1.2.0 (2026-11-11) - The extension's own GitHub repository is never blocked (hardcoded): pages, issues, raw files, zip and release downloads. diff --git a/README.md b/README.md index 6c0a8b0..8084fbd 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ Everything runs locally in your browser. No tracking, no analytics, no remote co | **Before they load** | Any GTA search (`gta 6`, `grand theft auto v`, `vice city`, `#gtaonline`...) on Google, Bing, DuckDuckGo, YouTube, Instagram, X etc., GTA hashtag pages, `rockstargames.com/VI` and other GTA pages on Rockstar's site, GTA fan sites (GTAForums, GTABase, the GTA wiki...) and embedded GTA iframes are stopped at the network level. | | **Search results** | Google, Bing, DuckDuckGo, Brave, Ecosia, Yahoo result cards. | | **Videos** | YouTube home, search, sidebar, Shorts shelves, comments and community posts; TikTok cards. | -| **Twitch** | Streams in any Grand Theft Auto category (GTA VI, V, IV, San Andreas, Vice City...) are hidden from the sidebar, front page and directory, and a channel page streaming GTA is blocked. If a streamer switches to GTA mid-stream, the stream is blocked right away. | +| **Twitch** | Streams in any Grand Theft Auto category (GTA VI, V, IV, San Andreas, Vice City...) are marked red in the sidebar, front page and directory, and opening one shows a warning before the stream plays (go back or watch anyway). Also when a streamer switches to GTA mid-stream. In the settings you can instead remove GTA streams completely. | | **Swipe feeds** | In the YouTube Shorts player, Instagram Reels, TikTok and Facebook Reels, a GTA video is covered with a block screen and muted, and you can keep scrolling to the next one. | | **Social posts** | Reddit, X/Twitter, Bluesky, Mastodon, Facebook and Instagram posts, captions, hashtags, grid tiles and comments. | | **Everything else** | Any element on any site whose text, link, image `alt`, `title` or `aria-label` matches a keyword, including content loaded later by infinite scroll. | @@ -80,6 +80,7 @@ Default keywords: `GTA`, `GTA 6`, `GTA VI`, `GTA 5`, `GTA V`, `GTA Online`, `Gra - "Block on this site" switch to allow a site - Badge counter showing how many items were hidden on the current tab - Editable keyword list and allowlist in the settings page +- Twitch setting: mark GTA streams red and warn (default), or remove them completely - This project's own GitHub repository (`github.com/Backware/gta6-blocker`, raw files, zip and release downloads) is never blocked, so you can always read the docs, report issues and update - No tracking, no network calls, no remote code. Settings stay in your browser. diff --git a/docs/screenshots/twitch-red.png b/docs/screenshots/twitch-red.png new file mode 100644 index 0000000000000000000000000000000000000000..600bfbf46c0d5d34a6b8dfeb272172b5d7fe678a GIT binary patch literal 32006 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/twitch-warning.png b/docs/screenshots/twitch-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..df3c2eeb6886a8d613733590f6e2e8d52e90e174 GIT binary patch literal 40849 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%0DnkHOVag(s7 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index a925cbf..86cf353 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gta6-blocker", - "version": "1.2.0", + "version": "1.3.0", "private": true, "description": "Browser extension that blocks GTA 6 / Grand Theft Auto VI content in Chrome and Safari.", "license": "MIT", diff --git a/src/manifest.json b/src/manifest.json index b7c8945..de21cad 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "GTA 6 Blocker", "short_name": "GTA6 Blocker", - "version": "1.2.0", + "version": "1.3.0", "description": "Blocks pages, searches, videos, Shorts, Reels and posts about GTA 6 and Grand Theft Auto. Spoiler- and hype-free browsing.", "icons": { "16": "icons/icon-16.png",