minioctt, (edited ) to webdev Italian

Sono praticamente 36 ore che non posto e lo so che siete in astinenza, ma avevo https://octospacc.altervista.org/2024/03/26/pwtorturaaaa/ di risolvere quel #problema con le #PWA una volta per tutte. E ora, nonostante un’altra frazione di sanità mentale sottrattami dagli spiritelli del silicio, dolori perché sto seduta per ore alla scrivania e tutta storta, e sonno perché ieri sera ho perso un sacco di tempo a debuggare un errore stupidissimo rimanendo sveglia fino alle 2 per poi arrendermi perché stavo veramente morendo, quantomeno ce l’ho fatta… 🤯️

Cercando con estrema #disperazione ieri mattina, mi accorgo di una cosa documentata alla bene e meglio, trovando prima una menzione su MDN ad un permesso webRequestFilterResponse.serviceWorkerScript, che servirebbe a regola per permettere alle #estensioni di intercettare i caricamenti dei Service Worker, e poi un thread bugzilla (#1636629) che pare abbia portato proprio all’introduzione di questa separazione di permessi. Ho scaricato il #codice dimostrativo per il bug, l’ho un attimo sistemato per tenere conto di questa misura di sicurezza poi introdotta e, certo abbastanza, il coso riusciva a fare quello che io volevo dall’inizio, senza ricorrere a bruttissime e fragilissime #hack (che a questo punto io nemmeno divulgo visto che non ho dovuto implementarle, per non sporcarmi la reputazione come developer, che già è molto bassa visto che prediligo il #webdev). 🔮️

A questo punto era quasi solo questione di rifiniture, un po’ creare il popup per le impostazioni della mia #estensione (che però mi ha richiesto diverse ore di design e implementazione fatti in contemporanea, perché volevo farle bene, non buttarci dentro bottoni a cazzo per il gusto di), e un po’ capire come #programmare il worker che gestisce #cache e richieste di rete #offline. Solo che qui ho sclerato perché… inizialmente con il codice preso da Chrome for Developers non andava, e pensavo fosse un problema mio, ma invece sembra proprio colpa loro, le loro demo non vanno proprio in #Firefox (ma non ho testato nemmeno in Chromium)… quindi ho provato quello offerto da MDN, ma anche qui nada, solo che ormai stavo crollando e quindi vado a mimir… stamattina vedo meglio e quest’ultima implementazione in effetti scopro che funziona, ma a me non andava perché, nel modo in cui iniettavo il #ServiceWorker trasformandolo da oggetto a stringa, una variabile che referenziavo non era accessibile nel contesto di esecuzione effettivo dello script, e quindi l’accesso alla cache falliva, ma io non me ne sono accorta subito perché già gli strumenti di #debugging del #browser sono mezzi scassati per questi casi speciali, ma io poi avevo pure un try-catch di mezzo che quindi sopprimeva gli errori alzati dall’interprete… la #pazzia. 😫️ 😩️

C’è un #casino di mezzo con la pubblicazione di #addon per #Mozilla, quindi praticamente ora il mio è in revisione, ma se tutto va bene dovrebbe prossimamente apparire sulla pagina https://addons.mozilla.org/en-US/firefox/addon/offline-caching/; in ogni caso, chi volesse usarlo da subito (come me sul telefono in primis) può scaricare da qui il file firmato da installare a mano. Edit: un’oretta dopo, l’estensione è approvata! 💖️

https://octospacc.altervista.org/wp-content/uploads/2024/03/img_20240328_1323201462313101815308817-960x1280.jpgBtw, mi serviva un’icona per l’add-on, perché tenere quella generica mi da fastidio (così come per quando creo app Android), e quindi ecco qui, letteralmente #OfflineCaching scritto a manina con uno stile un po’ buffo. Graphic design is my passion, ma non è roba mia, non son proprio capace. Penso comunque sia meglio di niente, quindi l’ho usata… (quella in basso sul foglio, che è stata la seconda; ho fatto prima quella in alto, ma poi non mi è piaciuta) 😬️https://octospacc.altervista.org/2024/03/28/pwgoduriaaaa/

#addon #browser #cache #casino #codice #debugging #disperazione #estensione #estensioni #Firefox #hack #Mozilla #offline #OfflineCaching #pazzia #problema #programmare #PWA #ServiceWorker #webdev

minioctt, (edited ) to internet Italian

Credo che fare quello che volevo fare riguardo le , a maggior ragione ora che mi sto informando un po’, è più complicato di quanto credevo… ecco perché ai tempi cercai vie apparentemente più impegnative. Il lavoro di ieri è comunque valido e meglio di nulla, ma ho paura che la mancanza del supporto offline si possa sentire, perché quel metodo non la aggiunge magicamente, e riuscire a farlo appunto non è una passeggiata. 😤️

Per poter “funzionare ”, un sito web deve registrare un Service Worker che risponde ad un particolare evento restituendo risorse precedentemente cachate. Sarebbe abbastanza semplice, se non fosse che, per una scomodissima combinazione di requisiti di sicurezza e mancanza di nei browser, non c’è letteralmente alcun modo pratico di registrare uno di ‘sti cosi tramite estensioni, figurarsi userscript. Nello specifico, gli script per i ServiceWorker devono essere necessariamente serviti su protocollo https: (quindi niente blob: o data:, cosa che ci taglia via immediatamente gli inject con gli userscript, ma nemmeno file: o http:), per forza dallo stesso dominio della pagina (e quindi non si scappa ospitando per conto proprio solo quel file senza clonare il ), e come ho detto non ci sono API per iniettarne da . 😨️

Ovviamente, andando per la strada di creare un’estensione, in pura teoria non servirebbe nemmeno preoccuparsi di usare questo metodo, perché a quel punto si potrebbe direttamente usare l’estensione per intercettare il traffico, salvandolo quando è nuovo, per poi servirlo da una cache quando non c’è Internet. Le API sembravano proprio adatte, quindi mi sono messa a fare varie prove, per poi scoprire che… non riesco in alcun modo a visualizzare il contenuto restituito per una pagina se non c’è : la schermata di errore del prende precedenza, e nessuna delle cose che ho provato riesce a sovrastarla. E anche potenziali , come usare le API per modificare il contenuto della pagina di errore pur rimanendo sull’URL desiderato, col piffero che funzionano! (E no, sembra proprio che io non possa usare le richieste dell’estensione per servire una risposta fake ad un path da registrare come worker, l’evento viene triggerato ma il navigatore non si beve il risultato.) 😭️

In poche parole: ennesimo che mi sta completamente consumando, e anche molto velocemente, perché più trovo ostacoli alla mia più cerco di andare veloce per superarli, ma più ne incontro sempre di nuovi e più il cervellino ammuffito deve elaborare, ma ci sono aspetti del che sarebbe meglio non elaborare proprio. A questo punto, tutte le strade che posso prendere per risolvere il sono in ogni caso : ne ho in mente qualcuna rimanendo con un’estensione, che comporterebbe comunque un dietro le quinte estremamente bizantino ma nessun particolare compromesso di sicurezza o usabilità… oppure, ben due soluzioni ancora peggiori (e in parte simili), che spero vivamente di non dover usare; sarebbe anche peggio. Comunque, che cavolo, questa piattaforma di è piena di risorse, una maniera prima o poi si troverà. ☠️

https://octospacc.altervista.org/2024/03/26/pwtorturaaaa/

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • vwfavf
  • InstantRegret
  • Youngstown
  • ngwrru68w68
  • slotface
  • Durango
  • cisconetworking
  • tacticalgear
  • rosin
  • provamag3
  • everett
  • cubers
  • khanakhh
  • osvaldo12
  • mdbf
  • ethstaker
  • normalnudes
  • modclub
  • Leos
  • GTA5RPClips
  • tester
  • anitta
  • JUstTest
  • All magazines