rilascio del browser web , così come Firefox 68.7 per la piattaforma Android. Inoltre, è in fase di sviluppo un aggiornamento con supporto a lungo termine . A breve passerà alla fase di che passerà alla versione Firefox 76, prevista per il 5 maggio (progetto a un ciclo di ).
:
- Per Linux è iniziato lo sviluppo in formato Flatpak.
- È stato aggiornato il design della barra degli indirizzi. Ora, facendo clic sulla barra degli indirizzi, appare senza bisogno di digitare subito un elenco a discesa dei link più comunemente utilizzati. I suggerimenti dei risultati di ricerca sono stati ottimizzati per un funzionamento migliore su schermi piccoli. Nell'area delle raccomandazioni contestuali, vengono forniti suggerimenti per risolvere problemi comuni che si possono incontrare durante l'uso del browser.
Non viene più visualizzato il protocollo https:// e il sottodominio «www.» nel menu a discesa dei link mostrato durante la digitazione nella barra degli indirizzi (ad esempio, i due indirizzi https://opennet.ru e https://www.opennet.ru diventeranno indistinguibili). Il protocollo http:// verrà mostrato nei risultati di ricerca senza modifiche.
- Per Linux è cambiato il comportamento del clic sulla barra degli indirizzi (ora come in Windows e macOS) — un clic singolo seleziona tutto il contenuto senza copiarlo negli appunti, un doppio clic seleziona una parola, un triplo clic seleziona tutto il contenuto e lo copia negli appunti.
- Implementato per non caricare le immagini che si trovano al di fuori dell'area visibile finché l'utente non scorre il contenuto della pagina nel punto immediatamente precedente all'immagine. Per gestire il caricamento ritardato delle immagini, è stato aggiunto l'attributo ««, che può assumere il valore «lazy». Si prevede che il caricamento ritardato riduca il consumo di memoria, diminuisca il traffico e aumenti la velocità di apertura iniziale delle pagine. Per gestire il caricamento ritardato nelle impostazioni about:config è stato aggiunto il parametro «dom.image-lazy-loading.enabled».
- supporto completo per WebGL in ambienti che utilizzano il protocollo Wayland. Fino ad ora, il livello di prestazioni di WebGL nelle versioni Linux di Firefox era insoddisfacente a causa della mancanza di supporto per l'accelerazione hardware, dovuta a problemi con i driver gfx per X11 e all'adozione di diversi standard. Con Wayland, la situazione è cambiata grazie all'arrivo del nuovo , che utilizza il meccanismo . Oltre all'accelerazione hardware per WebGL, il backend ha anche l'accelerazione nella decodifica video H.264 utilizzando VA-API (Video Acceleration API) e FFmpegDataDecoder (supporto per VP9 e altri formati video in Firefox 76). Per gestire l'abilitazione dell'accelerazione nelle impostazioni about:config sono stati proposti i parametri «widget.wayland-dmabuf-webgl.enabled» e «widget.wayland-dmabuf-vaapi.enabled».
- Per gli utenti del Regno Unito è stata attivata la visualizzazione di blocchi sponsorizzati sulla pagina iniziale nella sezione dei contenuti raccomandati dal servizio Pocket. I blocchi sono chiaramente contrassegnati come pubblicità e possono essere disattivati nelle impostazioni. In precedenza, la pubblicità era disponibile solo per gli utenti degli Stati Uniti.
- modalità di pulizia dei cookie e dei dati del sito quando si accede a siti con codice di tracciamento con cui l'utente non ha interagito. Questa modalità è progettata per combattere il tracciamento tramite reindirizzamenti.
- implementazione di finestre di dialogo modali collegate a singoli pannelli e non bloccanti per l'intero interfaccia.
- la possibilità di installare e aprire siti web come applicazioni (Apps), consentendo di gestire il sito come un programma da desktop normale. Per attivarlo in about:config è necessario aggiungere l'impostazione «browser.ssb.enabled=true», dopo di che nel menu contestuale delle azioni sulle pagine (i tre puntini nella barra degli indirizzi) apparirà la voce «Install Website as App», che consente di posizionare un collegamento per aprire separatamente il sito corrente sul desktop o nel menu delle applicazioni. Sviluppo sviluppo del concetto di «» (SSB), che prevede l'apertura del sito in una finestra separata senza menu, barra degli indirizzi e altri elementi dell'interfaccia del browser. Nella finestra attuale si aprono solo i collegamenti alle pagine del sito attivo, mentre il passaggio a collegamenti esterni porta alla creazione di una finestra separata con un normale browser.

- implementazione della modalità ««, attivabile tramite l'intestazione HTTP «X-Content-Type-Options», che ora disabilita anche la logica di rilevamento automatico dei MIME type per i documenti HTML, e non solo per JavaScript e CSS. Questa modalità aiuta a proteggersi da attacchi legati alla manipolazione dei MIME type. Per impostazione predefinita, il browser analizza il tipo di contenuto trattato e lo gestisce in base al tipo definito. Ad esempio, se un codice HTML viene salvato in un file «.jpg», all'apertura, questo file verrà trattato come HTML e non come immagine. Un attaccante può utilizzare un modulo di caricamento di immagini per file jpg contenente HTML con codice JavaScript, pubblicando poi un collegamento a questo file, di modo che all'apertura diretta del collegamento, il codice JavaScript venga eseguito nel contesto del sito da cui è stato caricato (si possono ottenere cookie e altri dati associati all'utente che ha aperto il collegamento).
- È stata implementata la memorizzazione nella cache locale di tutti i certificati PKI affidabili delle autorità di certificazione riconosciute da Mozilla, migliorando così la compatibilità con i server web configurati in modo errato.
- Nelle pagine aperte tramite HTTP non criptato è vietato l'uso delle API Web Crypto.
- Per Windows è stata implementata la modalità di composizione diretta (Direct Composition), che consente di migliorare le prestazioni e di avvicinare l'implementazione del sistema di composizione. , scritta in Rust e spostando le operazioni di rendering del contenuto della pagina su GPU.
- Per macOS è stata implementata una funzionalità sperimentale che consente l'uso di certificati client dal deposito di certificati di sistema (per attivare in about:config è necessario abilitare l'opzione security.osclientcerts.autoload). A partire da Firefox 72, questa funzionalità era disponibile solo per Windows.
- Dopo Linux, nelle build per macOS è stato attivato il meccanismo di isolamento , progettato per bloccare l'exploitation delle vulnerabilità nelle librerie di funzioni di terze parti. In questa fase, l'isolamento è abilitato solo per la libreria , responsabile del rendering dei caratteri. RLBox compila il codice C/C++ di una libreria isolata in codice intermedio WebAssembly a basso livello, che viene poi formalizzato in un modulo WebAssembly, i cui permessi sono limitati solo a questo modulo. Il modulo compilato opera in un'area di memoria separata e non ha accesso al resto dello spazio indirizzabile. In caso di sfruttamento di una vulnerabilità nella libreria, l'attaccante sarà limitato e non sarà in grado di accedere alle aree di memoria del processo principale o di trasferire il controllo al di fuori dell'ambiente isolato.
- L'attributo «type» nell'elemento ora può assumere solo il valore «text/css».
- In CSS sono state implementate funzioni , e .
- Per la proprietà CSS è stata implementata la supporto per il valore «all», che prescrive la rottura obbligatoria della linea di sottolineatura e barratura quando intersecate con i glifi di testo (il valore «auto» utilizzato in precedenza formava rotture in modo adattivo e non escludeva i contatti, con il valore all i contatti con il glifo sono completamente vietati).
- In JavaScript è inclusa la supporto per per le istanze delle classi JavaScript, che consentono di specificare proprietà predefinite, inizializzate al di fuori del costruttore.
class ClassWithStaticField {
static staticField = ‘static field’
} - È stata aggiunta la supporto per la classe , fornendo metodi per analizzare e gestire i parametri di lingua, regione e stile impostati dalla località, oltre alla lettura e scrittura di tag di estensione Unicode e al salvataggio delle preferenze locali in formato serializzato;
- L'implementazione della proprietà Function.caller è stata allineata all'ultima bozza della nuova specifica ECMAScript (anziché TypeError ora viene restituito null se la chiamata proviene da una funzione con l'attributo strict, async o generator).
- In HTMLFormElement è stato aggiunto il metodo , che avvia l'invio programmato dei dati del modulo, simile a un clic sul pulsante di invio. Questa funzione può essere utilizzata nello sviluppo di pulsanti di invio personalizzati per i quali la chiamata a form.submit() non è sufficiente poiché non attiva la verifica interattiva dei parametri, genera l'evento ‘submit’ e trasferisce i dati associati al pulsante di invio.
- L'evento submit è ora implementato come un oggetto di tipo SubmitEvent, e non Event. SubmitEvent include nuove proprietà che consentono di sapere quale elemento ha avviato l'invio del modulo. Ad esempio, SubmitEvent consente di utilizzare un singolo gestore per diversi pulsanti e link che portano all'invio del modulo.
- È stata implementata una corretta trasmissione dell'evento di clic quando si chiama il metodo click() per elementi sconnessi (non facenti parte dell'albero DOM).
- Nell'API è stata aggiunta l'opzione di legare un'animazione a un frame chiave iniziale o finale e il browser calcolerà autonomamente lo stato finale o iniziale (è sufficiente specificare solo il primo o l'ultimo frame chiave). Sono inclusi per impostazione predefinita Animation.timeline getter, Document.timeline, DocumentTimeline, AnimationTimeline, Document.getAnimations() e Element.getAnimations().
- È stata aggiunta l'opzione per attivare l'interfaccia di profilazione delle pagine senza installare un plug-in separato, premendo il pulsante «Enable Profiler Menu Button» sul sito. . È stata aggiunta una modalità di analisi delle prestazioni solo per la scheda attiva.
- Nella console web è disponibile una modalità di calcolo istantaneo delle espressioni, consentendo agli sviluppatori di identificare e correggere errori più rapidamente durante l'immissione di espressioni complesse grazie all'output del risultato provvisorio mentre si digita.
- In per la misurazione delle aree della pagina (Measuring Tool) è stata aggiunta la possibilità di ridimensionare il rettangolo (in precedenza, se si sollevava il tasto del mouse, il rettangolo non poteva essere ridimensionato e, in caso di puntamento impreciso, era necessario misurare da zero).
- Nell'interfaccia di ispezione della pagina è stata aggiunta la supporto per la ricerca di elementi tramite espressioni XPath oltre alla ricerca precedentemente disponibile tramite selettori CSS.
- È stata aggiunta la possibilità di filtrare i messaggi WebSocket tramite espressioni regolari (in precedenza venivano supportate solo maschere di testo).
- Nel debugger JavaScript è stata aggiunta la supporto per l'associazione di punti di interruzione ai gestori di eventi WebSocket.
- È stata effettuata una pulizia dell'interfaccia per l'analisi dell'attività di rete. È stata ottimizzata la visualizzazione delle tabelle in condizioni di gestione simultanea di un gran numero di connessioni. I separatori di colonna e i pulsanti per applicare filtri sono stati resi più contrastanti. Nel pannello di blocco delle richieste di rete è stata implementata la possibilità di utilizzare il carattere «*» nelle maschere URL (permette di valutare il comportamento del sito in caso di guasto nel caricamento delle risorse).
Oltre alle novità e alla correzione di bug, in Firefox 75 sono stati risolti , di cui alcune contrassegnate come critiche, ovvero possono portare all'esecuzione di codice dannoso aprendo pagine appositamente progettate. Attualmente, non sono disponibili informazioni dettagliate sui problemi di sicurezza corretti, si prevede che l'elenco delle vulnerabilità sarà pubblicato nelle prossime ore.
Fonte: opennet.ru

