AnimeUnity Popup Blocker
Blocca popup, popunder, overlay-trap e redirect pubblicitari su AnimeUnity. Il player continua a funzionare.
Novità della 1.1.3 — il player non riparte più da zero
Due difetti che rallentavano il caricamento degli episodi invece di proteggerlo.
- Niente più ricaricamento del frame video. Mettere un iframe in sandbox ha effetto solo alla navigazione successiva, e per farlo valere subito l'estensione rinavigava il frame. Su un player già partito questo buttava via il caricamento in corso e faceva ripartire il video da capo. Ora un frame già in caricamento tiene l'attributo per dopo e non viene toccato: i popup che ne escono restano comunque intercettati dalla chiusura schede.
- Controllo dei frame non più a ogni mutazione del DOM. Il controllo attraversa origini diverse e ogni accesso negato solleva un'eccezione: su una pagina video, dove il DOM cambia in continuazione, era CPU bruciata per nulla. Ora viene raggruppato in un passaggio per frame e saltato quando il numero di frame non cambia.
Novità della 1.1.2 — il player non viene più rallentato
Quattro regole di rete cercavano parametri molto generici (wmb=, crid=, zid=, submit_form_request) anche nelle richieste XHR e negli script. Un video HLS scarica centinaia di segmenti via XHR: se l'URL di un segmento conteneva per caso uno di quei parametri, veniva bloccato, il player riprovava, e il caricamento diventava lento a singhiozzo. Le stesse regole valevano su qualunque sito, non solo su AnimeUnity.
Ora quelle quattro regole agiscono solo sulle navigazioni (main_frame, sub_frame), cioè sulle schede e sui frame che si aprono: è lì che stanno i popup. Nessuna richiesta video può più finirci dentro. Il blocco dei popup resta identico.
Novità della 1.1.1 — il bug che rendeva inutile la 1.1.0
La 1.1.0 teneva in memoria l'elenco delle schede AnimeUnity. Ma il service worker di un'estensione Manifest V3 viene terminato da Chrome dopo circa 30 secondi di inattività, e con lui muore ogni variabile. Un paio di minuti dentro un episodio, quell'elenco era vuoto: la chiusura dei popup non riconosceva più le tue schede e non faceva nulla. In silenzio.
- Nessuno stato in memoria. L'identità della scheda viene ricavata da capo a ogni evento, con
tabs.get(). Il riavvio del worker ora è ininfluente. - Blocco per forma dell'URL, senza bisogno del genitore. Un popup con
rel="noopener"arriva senza scheda di origine: viene riconosciuto lo stesso dai parametri di campagna (utm_campaign=pu_,wmb=,bnid=land_,crID/zID,submit_form_request). - Chiude anche la scheda che il tuo ad blocker ha già svuotato. Se AdGuard blocca il contenuto, la scheda resta lì aperta: è comunque una scheda che non hai chiesto.
- Registro eventi nel pannello. Per ogni scheda: chiusa, sorvegliata o consentita, con l'URL e il motivo. Se qualcosa passa ancora, si legge invece di indovinare.
Domini aggiunti alle liste: epicgameshubham.com, big7.com, fhvfd.com.
⌘+click.
Installazione
Chrome, Edge, Brave, Opera, Vivaldi
- Scarica lo .zip e scompattalo in una cartella che non cancellerai (l'estensione viene caricata da lì).
- Apri
chrome://extensions(su Edgeedge://extensions, su Bravebrave://extensions). - Attiva Modalità sviluppatore in alto a destra.
- Clicca Carica estensione non pacchettizzata e seleziona la cartella scompattata.
- Apri AnimeUnity e ricarica la pagina.
tabs: serve a vedere l'indirizzo di una scheda appena aperta e decidere se chiuderla. Senza, la chiusura dei popup agirebbe alla cieca. Niente esce dal browser: l'estensione non ha nessun server a cui parlare.
chrome://extensions e premi Ricarica sulla scheda dell'estensione. I permessi sono cambiati, quindi Chrome può chiedere di riconfermare.
Firefox
- Apri
about:debugging#/runtime/this-firefox. - Carica componente aggiuntivo temporaneo → seleziona il file .xpi.
xpinstall.signatures.required su false in about:config, poi installa l'.xpi da about:addons → ingranaggio → Installa componente da file.
Safari, o installazione permanente senza sbatti
Usa la versione userscript con Tampermonkey: si installa in modo permanente ovunque, incluso Safari. Icona di Tampermonkey → Crea nuovo script → incolla il file → ⌘S.
Cosa blocca
| Schede popup, qualunque sia il trucco | Una scheda aperta da AnimeUnity verso un sito esterno, senza un tuo click su un link, viene chiusa dal browser. È l'unica difesa che copre anche l'iframe del player. |
window.open('pubblicità') | Sostituita e bloccata a livello di proprietà: la pagina non può ripristinare quella originale. Passa solo verso animeunity, con un gesto utente recente. |
| Link invisibile sopra al player | Riconosciuto dalla geometria e annullato; il click viene inoltrato all'elemento sotto, così il play parte al primo colpo. |
| Click sintetici su link creati al volo | HTMLElement.prototype.click intercettata. |
| Popup generati dentro l'iframe del player | L'iframe perde allow-popups e allow-top-navigation: non può aprire finestre né dirottare la scheda. Il video continua a funzionare. |
| Richieste alle reti pubblicitarie | 44 domini bloccati a livello di rete, prima del download. |
| "Sei sicuro di voler uscire?" | Neutralizzato. |
| Hijack del tasto indietro | history.pushState limitato a 6 chiamate ogni 3 secondi. |
| Richieste di notifiche push | Negate in automatico. |
Uso
Il numero sull'icona conta i blocchi della scheda corrente. Cliccandola vedi il dettaglio per tipo e gli interruttori delle singole difese.
Se cambia dominio
AnimeUnity ruota i TLD. L'estensione copre .so .to .tv .it .net .org .com .co .club .me .xyz .live .biz. Se il sito finisce altrove, va aggiunto il dominio in manifest.json; lo userscript invece usa una regex e li prende tutti.