Il team di Firefox sta via via integrando il nuovo motore di rendering Servo nelle ultime build del "Panda Rosso". Servo è composto da diversi moduli e uno di essi è WebRender, il GPU renderer 2D per i Web content.
In questi giorni il team di sviluppatori ha pubblicato un articolo su WebRender nel blog dedicato allo sviluppo dei componenti di Servo. In questo post i developer descrivono anche come i vari browser per la navigazione Internet disegnano le pagine web. Prima di tutto bisogna osservare il risultato della layout computation che è come un albero di elementi posizionati nella pagina chiamato frame tree.
- Dal frame tree viene generata la maggior parte della flat list per i drawing commands che viene chiamata display list.
- Le porzioni della display list vengono disegnate nei layers, quest'ultima parte viene svolta solitamente da librerie come Cairo, Skia o Direct2D.
- I layers vengono combinati assieme per generare l'immagine finale (compositing phase).
In Firefox i layers vengono disegnati durante l'elaborazione dei contenuti, ovvero prima del processo del compositor. Tuttavia esistono anche approcci diversi da questo, simili a quello usato nel progetto Chromium, i developer Google infatti bypassano la creazione del display list e passano direttamente al disegno dei layers.
Entrambi gli approcci hanno aspetti negativi e positivi, inoltre diversi browser delegano al sistema operativo il compito di eseguire il processo di rendering 2D, ciò avviene ad esempio in soluzioni proprietarie come Microsoft Edge e Apple Safari. Quest'ultimo approccio sembra essere la scelta che adotterà anche Google Chrome su Windows per le prossime build di testing.