Chrome'i brauser on viidatud Skrifa fondimootorile, mis on kirjutatud Rustis

Google on viinud Chrome'i brauseri Skrifa teeki, mis on kirjutatud Rusti keeles ning pakub vÔimalusi OpenType formaadis fondide töötlemiseks. Skrifa rakendab FreeType fondimootori vajadustele vastavat alamhulka vÔimalustest, mis on hÀdavajalikud 2D Skia teegi jaoks, mida kasutatakse Chrome'is ja Chromiumis. Skia teegi vabastamiseks FreeType fondimootorist loodi uus Skrifa-pÔhine fondi tagumise plaani lahendus.

Chrome 128-s, kus Rustis kirjutatud tagumise plaani funktsioon oli sisse lĂŒlitatud eksperimendisĂŒsteemis harva kasutatavate fondivormingute, nagu CFF2 ja vĂ€rvilised fondid, jaoks. Alates Chrome 133 vĂ€ljalaskest on uus tagumise plaani lahendus kasutusel kĂ”igi veebifondide jaoks Linuxi, Androidi ja ChromeOS platvormide kogumites. Windows ja macOS platvormidel kasutatakse uut mootrit praegu varunduslahendusena ning seda rakendatakse juhul, kui sĂŒsteem ei toeta fondi formaati, mida brauser ĂŒritab kuvada.

Skrifa kood on loodud Google'i inseneride poolt Fontations tööriista raames ja see on avatud MIT ja Apache 2.0 litsentside alla. Skrifa Ă”ige toimimise kontrollimiseks on ette valmistatud umbes 700 ĂŒhikutesti. Teek toetab glĂŒĂŒfide dekodeerimist glyf, CFF, CFF2, COLRv0, COLRv1, EBDT, CBDT ja sbix formaatides, variatiivseid fonte glyf, CFF2 ja COLRv1 formaatides, ning glĂŒĂŒfide hinda glyf, CFF ja CFF2 formaatides.

Lisaks Skrifa teegile, mis pakub API-d fondi metainfot ja glĂŒĂŒfide kontuuride laadimist, sisaldab Fontations tööriist madala taseme teeke fondiandmete lugemiseks, analĂŒĂŒsiks, muutmiseks ja loomisel OpenType formaadis. Fontations on omakorda osa Oxidize projektist, mis on loodud utiliitide ja fonditööstuse teekide ĂŒleviimiseks Python (fonttools, fontmake, nanoemoji) ja C++ (HarfBuzz, FreeType) koostisosadest uutesse rakendustesse, mis on kirjutatud Rustis.

Komponentide arendamine Rustis algas, kuna fuzzing-testimise kaudu vigu avastada on ebapiisav tÔhusus, kuna fondiformaadid on liiga keerulised, et katta kÔiki vÔimalikke kombinatsioone. NÀiteks eelmisel nÀdalal avastati FreeType's kriitiline haavatavus, mis lubas koodi kÀivitada spetsiaalselt vormindatud fondide töötlemisel puhvriajamise kaudu. Lisaks FreeType mootori probleemidele vÔivad turvaprobleeme tekitada ka sÔltuvused, nagu bzip2, libpng ja zlib.

Rusti kasutamine on mÀrkimisvÀÀrselt vÀhendanud mÀluprobleemide tekkimise tÔenÀosust, parandanud koodi kvaliteeti, lakanud raiskamast aega turvaprobleemide parandamiseks ja kiirendanud parenduste tegemist Chrome'i fontide funktsioonides. Google'i ja Microsofti statistika kohaselt on umbes 70% ohtlikest haavatavustest pÔhjustatud mÀluprobleemidest, mida saaks vÀltida Rusti keele abil, kui vÀltida unsafe-plokke.

NĂ€iteks Rusti kasutamine oleks aidanud vĂ€ltida FreeType koodis varem tuvastatud probleeme, mis on seotud vabastatud mĂ€lu aladele juurdepÀÀsuga, puutumisega mĂ€lu piiridest vĂ€lja, massiivide juurde pÀÀsemisega ilma indeksite kontrollita, tĂ€isarvude ĂŒletĂ€itumisega, mitte-nullitud mĂ€lu alade vale kasutamisega ja tĂŒĂŒpide ĂŒleminekute vigadega.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster