v0.2.0 — pestanyes, i després grups
Fins ara rumb tenia exactament una pàgina oberta, perquè el pont estava fet per a una. La v0.2.0 és el que passa quan en fas moltes.
Cada pestanya és el seu propi WebView de Servo, que pinta en el seu propi framebuffer fora de pantalla i exporta el seu propi dma-buf; el compositor dibuixa la que està activa. Aquest és el cost honest de les pestanyes en aquesta arquitectura — una pestanya no és un registre barat que guarda una URL, és un motor viu que reté memòria de GPU. Per això una pestanya que porta prou estona sense fer res es descarta: es destrueix el seu WebView, la memòria torna, i cridem malloc_trim perquè l'assignador la retorni de debò en comptes de quedar-se-la. Hi ha proteccions. Una pestanya que reprodueix contingut multimèdia, o que té un formulari a mitges, o que té un handler de beforeunload, no se't suspèn mai per sorpresa.
Després els grups, que van ser el que va portar més temps. Un grup té un nom i un color triat en hexadecimal o d'una carta de colors, es plega fins a quedar en una sola píndola i es dibuixa com un subratllat de color continu per sota de les seves pestanyes — un rail lateral, quan la barra és vertical. Les pestanyes s'arrosseguen cap a dins i cap a fora dels grups, i un grup sencer s'arrossega com una unitat.
El feedback de l'arrossegament va necessitar uns quants intents. Omplir la destinació amb un ressaltat t'indica més o menys on anirà a parar la cosa; una línia fina d'accent a la vora d'entrada de la pestanya que tens sota el punter t'indica exactament on. La segona és millor, i també és la que va destapar un off-by-one: els moviments cap a la dreta inserien una casella massa tard, de manera que reordenar només funcionava cap a l'esquerra.
La barra mateixa ara pot anar a qualsevol dels quatre costats, i la vertical s'arrossega per canviar-ne l'amplada, com un calaix.