Recentemente Mozilla ha rilasciato uno strumento, che è stato rilasciato tramite un nuovo sito web (il collegamento è questo). Chiamato come Riproduci Firefox, Mozilla lo presenta come file nuovo strumento di debug che è già stato incluso nelle versioni Nightly di Firefox, ma al momento è disponibile solo per MacOS.
"Web Replay" è un progetto che consente ai processi di contenuto di Firefox di registrare il loro comportamento, riprodurlo in seguito e torna indietro agli stati precedenti. I processi di riproduzione mantengono lo stesso comportamento JS, strutture DOM, aggiornamenti grafici e la maggior parte degli altri comportamenti che si sono verificati durante la registrazione. Il debugger JS del browser può essere utilizzato per ispezionare e controllare la riproduzione.
Mozilla lo dice la timeline della funzione di riproduzione mostra vari punti in tempo reale, come eccezioni, eventi e richieste di rete, semplificando la "pausa e l'ispezione della riproduzione".
Inoltre, poiché si presume che la funzione di riproduzione dovrebbe essere utilizzata dagli sviluppatori, La registrazione della funzione di riproduzione può essere salvata e letta.
Poiché gli errori che si verificano nello sviluppo web non sono sempre facili da riprodurre, tendono ad essere difficili da verificare per gli altri e il lavoro di debug potrebbe non essere svolto lentamente, ma durante la registrazione l'operazione con la funzione di riproduzione e condivisione del record con altri, anche l'efficienza è eccellente.
Includendo strumenti come Firefox Replay, Mozilla potrebbe attirare più sviluppatori al tuo browser. Ciò aumenterà il numero di siti testati in Firefox.
Ciò fornirà un'esperienza migliore.a per i normali utenti di Firefox che altrimenti sarebbero passati a un browser rivale. Oltre a una panoramica della home page di Firefox Replay, è possibile trovare informazioni più dettagliate sul sito per sviluppatori Mozilla.
In pratica la riproduzione è consentita nelle seguenti aree:
- I componenti IPC e debugger possono eseguire allocazioni di heap e pertanto possono differire tra registrazione e riproduzione.
- Le build JS e altri stati interni sono influenzati dalla presenza del debugger e dai punti di connessione / interruzione attivi, quindi possono differire tra registrazione e riproduzione.
- Il debugger può assegnare elementi GC e l'assegnazione di altri elementi GC può differire in presenza del debugger. Ad esempio, la compilazione dello script implica la mappatura.
Inoltre, consente anche opzioni avanzate:
- devtools.recordreplay.enableRiavvolgimento Quando è disabilitato, Firefox registra una pagina molto più velocemente. valore predefinito true .
- devtools.recordreplay.fastLogpoints Quando è abilitato, Firefox Replay valuta i punti di log consecutivamente. I punti di registrazione non possono avere effetti collaterali o divergere dalla registrazione in nessun altro modo in questa modalità. per impostazione predefinita false.
- devtools.recordreplay.logging Se abilitato, Firefox registrerà le azioni di riproduzione interne nel terminale, il che è utile quando il debug si blocca e si arresta in modo anomalo. valore predefinito false
Finora Web Replay è stato incluso nelle versioni Nightly di Firefox, finché non è più stabile. Sebbene la funzione sia inclusa, è disabilitata per impostazione predefinita, ma può essere abilitato con la preferenza "devtools.recordreplay.enabled".
A quali funzioni si accede tramite il menu Strumenti -> Web Developer e tramite una nuova interfaccia di debug abilitata quando viene visualizzata una scheda di registrazione e riproduzione.
Come accennato all'inizio il lavoro di distribuzione finora è stato su macOS, ma Mozilla sta già lavorando per implementare lo strumento nelle sue versioni per Windows. Sebbene per Linux non sia stato menzionato nulla.
Bene Mozilla i commenti che funzionano per altri sistemi sono difficili da scoprire l'API della libreria di sistema impostata per intercettare, nel far funzionare la gestione della memoria e le parti di memoria sporche dell'infrastruttura di riavvolgimento e nel gestire i diversi percorsi grafici e IPC su piattaforme diverse.