Automated via data/update-extensions.sh script. --- .../jsr@javascriptrestrictor/update.js | 9 +--- .../assets/javascripts/helpers/reddit.js | 28 +++++----- .../assets/javascripts/helpers/twitter.js | 26 +++++++--- .../assets/javascripts/helpers/youtube.js | 26 ++++++++-- .../assets/javascripts/remove-twitter-sw.js | 18 ++++++- .../manifest.json | 29 +++++++++-- .../pages/background/background.js | 15 ++---- .../pages/options/options.html | 14 ++--- .../pages/options/options.js | 52 +++++++++---------- .../pages/popup/popup.html | 4 +- .../pages/popup/popup.js | 10 ++-- 11 files changed, 144 insertions(+), 87 deletions(-)
diff --git a/data/extensions/jsr@javascriptrestrictor/update.js b/data/extensions/jsr@javascriptrestrictor/update.js index 83ccbb8..df19c28 100644 --- a/data/extensions/jsr@javascriptrestrictor/update.js +++ b/data/extensions/jsr@javascriptrestrictor/update.js @@ -21,10 +21,6 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. // -let defaultNbsWhitelistDomain = "duckduckgo.com"; -let defaultNbsWhitelist = {}; -defaultNbsWhitelist[defaultNbsWhitelistDomain] = true; - async function installUpdate() { /** * 0.3+ storage @@ -367,7 +363,7 @@ async function installUpdate() { }; } item.fpDetectionOn = true; - item.nbsWhitelist = item.whitelistedHosts ? item.whitelistedHosts : defaultNbsWhitelist; + item.nbsWhitelist = item.whitelistedHosts ? item.whitelistedHosts : {}; delete item.whitelistedHosts; item.nbsSettings = { notifications: 1 @@ -482,7 +478,6 @@ async function installUpdate() { l.wasm = 1; } } - item.nbsWhitelist[defaultNbsWhitelistDomain] = true; item.version = 7; } @@ -529,7 +524,7 @@ async function checkAndSaveConfig(conf, check_default = true) { conf.__default__ = "2"; } checkExistAndType("domains", "object", {}); - checkExistAndType("nbsWhitelist", "object", defaultNbsWhitelist); + checkExistAndType("nbsWhitelist", "object", {}); checkExistAndType("nbsSettings", "object", {}); checkSettingRange("nbsSettings", "blocking", [0,1], 1); checkSettingRange("nbsSettings", "notifications", [0,1], 1); diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js index e37972b..9e7846c 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js @@ -8,20 +8,22 @@ const targets = [ ]; const redirects = [ // libreddit: privacy w/ modern UI - "https://safereddit.com", - "https://reddit.rtrace.io", - "https://libreddit.privacydev.net", - "https://l.opnxng.com", - "https://libreddit.projectsegfau.lt", - "https://discuss.whatever.social", - "https://snoo.habedieeh.re", - "https://redlib.pussthecat.org", - "https://redlib.northboot.xyz", - "https://redlib.kylrth.com", - "https://red.artemislena.eu", + "https://libredd.it", + "https://libreddit.spike.codes", + "https://libreddit.kavin.rocks", + "https://libreddit.insanity.wtf", + "https://libreddit.dothq.co", + "https://libreddit.silkky.cloud", + "https://libreddit.himiko.cloud", + "https://reddit.artemislena.eu", + "https://reddit.git-bruh.duckdns.org", + // teddit: privacy w/ old UI + "https://teddit.net", + "https://teddit.ggc-project.de", + "https://teddit.kavin.rocks", "https://old.reddit.com", // desktop - "http://red.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion", - "http://snoo.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion", + "https://i.reddit.com", // mobile + "https://snew.notabug.io", // anti-censorship ]; const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js index f57fb68..f520d76 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js @@ -4,8 +4,6 @@ when updating this list: */ const targets = [ - "x.com", - "mobile.x.com", "twitter.com", "www.twitter.com", "mobile.twitter.com", @@ -18,10 +16,26 @@ const targets = [ (const nitterInstances) when updating this list: */ const redirects = [ - "https://nitter.privacydev.net", - "https://xcancel.com", - "http://nitter.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", - "http://nitter.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion", + "https://nitter.net", + "https://nitter.snopyta.org", + "https://nitter.42l.fr", + "https://nitter.nixnet.services", + "https://nitter.pussthecat.org", + "https://nitter.dark.fail", + "https://nitter.tedomum.net", + "https://nitter.cattube.org", + "https://nitter.fdn.fr", + "https://nitter.1d4.us", + "https://nitter.kavin.rocks", + "https://tweet.lambda.dance", + "https://nitter.cc", + "https://nitter.vxempire.xyz", + "https://nitter.unixfox.eu", + "https://bird.trom.tf", + "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion", + "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion", + "http://nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd.onion", + "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion", ]; export default { diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js index 53aa099..df6dda4 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js @@ -8,7 +8,6 @@ const targets = [ "youtu.be", "s.ytimg.com", "music.youtube.com", - "piped.video", ]; /* Please remember to also update the manifest.json file @@ -16,8 +15,29 @@ const targets = [ when updating this list: */ const redirects = [ - "https://inv.nadeko.net", - "http://inv.nadekonw7plitnjuawu6ytjsl7jlglk2t6pyq6eftptmiv3dvqndwvyd.onion", + "https://invidious.snopyta.org", + "https://invidious.xyz", + "https://invidious.kavin.rocks", + "https://tube.connect.cafe", + "https://invidious.zapashcanon.fr", + "https://invidiou.site", + "https://vid.mint.lgbt", + "https://invidious.site", + "https://yewtu.be", + "https://invidious.tube", + "https://invidious.silkky.cloud", + "https://invidious.himiko.cloud", + "https://inv.skyn3t.in", + "https://tube.incognet.io", + "https://invidious.tinfoil-hat.net", + "https://invidious.namazso.eu", + "https://vid.puffyan.us", + "https://dev.viewtube.io", + "https://invidious.048596.xyz", + "http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion", + "http://qklhadlycap4cnod.onion", + "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", + "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion", ]; export default { diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js index f8d9e76..d431f1a 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js @@ -1,8 +1,22 @@ "use strict"; const nitterInstances = [ - "https://nitter.privacydev.net", - "https://nitter.lucabased.xyz" + "https://nitter.net", + "https://nitter.snopyta.org", + "https://nitter.42l.fr", + "https://nitter.nixnet.services", + "https://nitter.pussthecat.org", + "https://nitter.dark.fail", + "https://nitter.tedomum.net", + "https://nitter.cattube.org", + "https://nitter.fdn.fr", + "https://nitter.1d4.us", + "https://nitter.kavin.rocks", + "https://tweet.lambda.dance", + "https://nitter.cc", + "https://nitter.vxempire.xyz", + "https://nitter.unixfox.eu", + "https://bird.trom.tf" ]; let disableNitter; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json index d3bcec2..856e0dc 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json @@ -33,8 +33,6 @@ "content_scripts": [ { "matches": [ - "*://x.com/*", - "*://mobile.x.com/*", "*://twitter.com/*", "*://www.twitter.com/*", "*://mobile.twitter.com/*", @@ -48,8 +46,29 @@ }, { "matches": [ - "*://inv.nadeko.net/*", - "*://inv.nadekonw7plitnjuawu6ytjsl7jlglk2t6pyq6eftptmiv3dvqndwvyd.onion/*" + "*://invidious.snopyta.org/*", + "*://invidious.xyz/*", + "*://invidious.kavin.rocks/*", + "*://tube.connect.cafe/*", + "*://invidious.zapashcanon.fr/*", + "*://invidiou.site/*", + "*://vid.mint.lgbt/*", + "*://invidious.site/*", + "*://yewtu.be/*", + "*://invidious.tube/*", + "*://invidious.silkky.cloud/*", + "*://invidious.himiko.cloud/*", + "*://inv.skyn3t.in/*", + "*://tube.incognet.io/*", + "*://invidious.tinfoil-hat.net/*", + "*://invidious.namazso.eu/*", + "*://vid.puffyan.us/*", + "*://dev.viewtube.io/*", + "*://invidious.048596.xyz/*", + "*://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion/*", + "*://qklhadlycap4cnod.onion/*", + "*://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion/*", + "*://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/*" ], "js": [ "assets/javascripts/persist-invidious-prefs.js" @@ -70,4 +89,4 @@ "strict_min_version": "67.0" } } -} +} \ No newline at end of file diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js index c08d7b4..9b8c3a1 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js @@ -595,17 +595,10 @@ browser.webRequest.onBeforeRequest.addListener( redirect = { redirectUrl: redirectTwitter(url, initiator), }; -// -// Bibliogram has been discontinued. -// See <https://cadence.moe/blog/2022-09-01-discontinuing-bibliogram> -// We'll keep this code in case the project is resurrected, but for -// now we disable Bibliogram redirects and hide the associated UI. -// -// } else if (instagramDomains.includes(url.host)) { -// redirect = { -// redirectUrl: redirectInstagram(url, initiator, details.type), -// }; -// + } else if (instagramDomains.includes(url.host)) { + redirect = { + redirectUrl: redirectInstagram(url, initiator, details.type), + }; } else if (url.href.match(googleMapsRegex)) { redirect = { redirectUrl: redirectGoogleMaps(url, initiator), diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html index c5d0096..65f1e9a 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html @@ -76,7 +76,7 @@ </tbody> </table> </section> -<!-- <section class="settings-block"> + <section class="settings-block"> <table class="option" aria-label="Toggle Bibliogram redirects"> <tbody> <tr> @@ -97,7 +97,7 @@ </tr> </tbody> </table> - </section> --> + </section> <section class="settings-block"> <table class="option" aria-label="Toggle OpenStreetMap redirects"> <tbody> @@ -225,7 +225,7 @@ /> </div> </section> -<!-- <section class="settings-block"> + <section class="settings-block"> <h1 data-localise="__MSG_bibliogramInstance__">Bibliogram Instance</h1> <div class="autocomplete"> <input @@ -235,7 +235,7 @@ placeholder="Random instance (none selected)" /> </div> - </section> --> + </section> <section class="settings-block"> <h1 data-localise="__MSG_osmInstance__">OpenStreetMap Instance</h1> <div class="autocomplete"> @@ -252,7 +252,7 @@ <input id="reddit-instance" type="url" - placeholder="https://libreddit.de" + placeholder="https://libredd.it" /> </div> </section> @@ -543,7 +543,7 @@ </section> <hr> </div> -<!-- <button type="button" class="collapsible"> + <button type="button" class="collapsible"> Bibliogram </button> <div class="collapsible-content"> @@ -558,7 +558,7 @@ /> </section> <hr> - </div> --> + </div> </div> <div id="exceptions" class="tabcontent"> diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js index 8309aab..91e7ac0 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js @@ -21,7 +21,7 @@ const wikipediaInstances = wikipediaHelper.redirects; const autocompletes = [ { id: "nitter-instance", instances: nitterInstances }, { id: "invidious-instance", instances: invidiousInstances }, -// { id: "bibliogram-instance", instances: bibliogramInstances }, + { id: "bibliogram-instance", instances: bibliogramInstances }, { id: "osm-instance", instances: osmInstances }, { id: "reddit-instance", instances: redditInstances }, { @@ -35,7 +35,7 @@ const domparser = new DOMParser(); let nitterInstance = document.getElementById("nitter-instance"); let invidiousInstance = document.getElementById("invidious-instance"); -// let bibliogramInstance = document.getElementById("bibliogram-instance"); +let bibliogramInstance = document.getElementById("bibliogram-instance"); let osmInstance = document.getElementById("osm-instance"); let redditInstance = document.getElementById("reddit-instance"); let searchEngineInstance = document.getElementById("search-engine-instance"); @@ -45,7 +45,7 @@ let simplyTranslateInstance = document.getElementById( let wikipediaInstance = document.getElementById("wikipedia-instance"); let disableNitter = document.getElementById("disable-nitter"); let disableInvidious = document.getElementById("disable-invidious"); -// let disableBibliogram = document.getElementById("disable-bibliogram"); +let disableBibliogram = document.getElementById("disable-bibliogram"); let disableOsm = document.getElementById("disable-osm"); let disableReddit = document.getElementById("disable-reddit"); let disableSearchEngine = document.getElementById("disable-search-engine"); @@ -67,7 +67,7 @@ let theme = document.getElementById("theme"); let useFreeTube = document.getElementById("use-freetube"); let nitterRandomPool = document.getElementById("nitter-random-pool"); let invidiousRandomPool = document.getElementById("invidious-random-pool"); -// let bibliogramRandomPool = document.getElementById("bibliogram-random-pool"); +let bibliogramRandomPool = document.getElementById("bibliogram-random-pool"); let exceptions; window.browser = window.browser || window.chrome; @@ -136,7 +136,7 @@ browser.storage.sync.get( if (result.theme) document.body.classList.add(result.theme); nitterInstance.value = result.nitterInstance || ""; invidiousInstance.value = result.invidiousInstance || ""; -// bibliogramInstance.value = result.bibliogramInstance || ""; + bibliogramInstance.value = result.bibliogramInstance || ""; osmInstance.value = result.osmInstance || ""; redditInstance.value = result.redditInstance || ""; searchEngineInstance.value = @@ -145,7 +145,7 @@ browser.storage.sync.get( wikipediaInstance.value = result.wikipediaInstance || ""; disableNitter.checked = !result.disableNitter; disableInvidious.checked = !result.disableInvidious; -// disableBibliogram.checked = !result.disableBibliogram; + disableBibliogram.checked = !result.disableBibliogram; disableOsm.checked = !result.disableOsm; disableReddit.checked = !result.disableReddit; disableSearchEngine.checked = !result.disableSearchEngine; @@ -172,9 +172,9 @@ browser.storage.sync.get( invidiousRandomPool.value = result.invidiousRandomPool || commonHelper.filterInstances(invidiousInstances); -// bibliogramRandomPool.value = -// result.bibliogramRandomPool || -// commonHelper.filterInstances(bibliogramInstances); + bibliogramRandomPool.value = + result.bibliogramRandomPool || + commonHelper.filterInstances(bibliogramInstances); } ); @@ -284,14 +284,14 @@ const invidiousInstanceChange = debounce(() => { }, 500); invidiousInstance.addEventListener("input", invidiousInstanceChange); -// const bibliogramInstanceChange = debounce(() => { -// if (bibliogramInstance.checkValidity()) { -// browser.storage.sync.set({ -// bibliogramInstance: parseURL(bibliogramInstance.value), -// }); -// } -// }, 500); -// bibliogramInstance.addEventListener("input", bibliogramInstanceChange); +const bibliogramInstanceChange = debounce(() => { + if (bibliogramInstance.checkValidity()) { + browser.storage.sync.set({ + bibliogramInstance: parseURL(bibliogramInstance.value), + }); + } +}, 500); +bibliogramInstance.addEventListener("input", bibliogramInstanceChange); const osmInstanceChange = debounce(() => { if (osmInstance.checkValidity()) { @@ -357,9 +357,9 @@ disableInvidious.addEventListener("change", (event) => { browser.storage.sync.set({ disableInvidious: !event.target.checked }); }); -// disableBibliogram.addEventListener("change", (event) => { -// browser.storage.sync.set({ disableBibliogram: !event.target.checked }); -// }); +disableBibliogram.addEventListener("change", (event) => { + browser.storage.sync.set({ disableBibliogram: !event.target.checked }); +}); disableOsm.addEventListener("change", (event) => { browser.storage.sync.set({ disableOsm: !event.target.checked }); @@ -447,12 +447,12 @@ const invidiousRandomPoolChange = debounce(() => { }, 500); invidiousRandomPool.addEventListener("input", invidiousRandomPoolChange); -// const bibliogramRandomPoolChange = debounce(() => { -// browser.storage.sync.set({ -// bibliogramRandomPool: bibliogramRandomPool.value, -// }); -// }, 500); -// bibliogramRandomPool.addEventListener("input", bibliogramRandomPoolChange); +const bibliogramRandomPoolChange = debounce(() => { + browser.storage.sync.set({ + bibliogramRandomPool: bibliogramRandomPool.value, + }); +}, 500); +bibliogramRandomPool.addEventListener("input", bibliogramRandomPoolChange); theme.addEventListener("change", (event) => { const value = event.target.options[theme.selectedIndex].value; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html index 0f3792b..ada7e75 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html @@ -69,7 +69,7 @@ </tbody> </table> </section> -<!-- + <section class="settings-block"> <table class="option" aria-label="Toggle Bibliogram redirects"> <tbody> @@ -91,7 +91,7 @@ </tr> </tbody> </table> - </section> --> + </section> <section class="settings-block"> <table class="option" aria-label="Toggle OpenStreetMap redirects"> diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js index b4699ca..4309c60 100644 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js @@ -2,7 +2,7 @@ let disableNitter = document.querySelector("#disable-nitter"); let disableInvidious = document.querySelector("#disable-invidious"); -// let disableBibliogram = document.querySelector("#disable-bibliogram"); +let disableBibliogram = document.querySelector("#disable-bibliogram"); let disableOsm = document.querySelector("#disable-osm"); let disableReddit = document.querySelector("#disable-reddit"); let disableSearchEngine = document.querySelector("#disable-searchEngine"); @@ -28,7 +28,7 @@ browser.storage.sync.get( if (result.theme) document.body.classList.add(result.theme); disableNitter.checked = !result.disableNitter; disableInvidious.checked = !result.disableInvidious; -// disableBibliogram.checked = !result.disableBibliogram; + disableBibliogram.checked = !result.disableBibliogram; disableOsm.checked = !result.disableOsm; disableReddit.checked = !result.disableReddit; disableSearchEngine.checked = !result.disableSearchEngine; @@ -47,9 +47,9 @@ disableInvidious.addEventListener("change", (event) => { browser.storage.sync.set({ disableInvidious: !event.target.checked }); }); -// disableBibliogram.addEventListener("change", (event) => { -// browser.storage.sync.set({ disableBibliogram: !event.target.checked }); -// }); +disableBibliogram.addEventListener("change", (event) => { + browser.storage.sync.set({ disableBibliogram: !event.target.checked }); +}); disableOsm.addEventListener("change", (event) => { browser.storage.sync.set({ disableOsm: !event.target.checked }); -- 2.51.0
