Quantum (Mozilla)
Quantum adalah sebuah proyek yang dijalankan Mozilla yang meliputi beberapa upaya pengembangan perangkat lunak yang bertujuan untuk "membangun mesin web generasi selanjutnya untuk para pengguna Firefox". Proyek ini mencakup banyak perbaikan untuk mesin peramban web Firefox, Gecko, di mana sebagian besar perbaikan tersebut berasal dari proyek percobaan Servo. Selain itu, Quantum juga mencakup penyempurnaan antarmuka pengguna dan interaksi.[1][2]
Firefox 57, versi yang dirilis pada bulan November 2017, merupakan versi pertama dengan komponen Servo telah diaktifkan. Mozilla memberi julukan Firefox versi ini dan beberapa rilis yang direncanakan di masa yang akan datang sebagai "Firefox Quantum".[3][4]
Latar Belakang
Gecko sudahlah matang, mesin peramban web yang berawal di Netscape pada tahun 1997. Mesin peramban web ini ditulis dalam bahasa pemrograman C++ .[5]
Pada tahun 2013, Mozilla memulai proyek eksperimental Servo, sebuah mesin yang dirancang dari awal kembali dengan tujuan meningkatkan konkurensi dan paralelisme sekaligus juga mengurangi kerentanan keamanan memori. Salah satu faktor pentingnya adalah dengan menulis Servo dalam bahasa pemrograman Rust, sebuah bahasa pemrograman yang juga dibuat oleh Mozilla dan dirancang untuk menghasilkan kode terkompilasi dengan keamanan memori, konkurensi, dan paralelisme yang lebih baik dari kode C++ terkompilasi.
Sampai April 2016, Servo telah membutuhkan setidaknya beberapa tahun pengembangan untuk menjadi sebuah mesin peramban web berfitur lengkap.[6] Hingga keputusan untuk memulai proyek Quantum pun diambil untuk membawa porsi stabil Servo ke Firefox.
Komponen
Proyek Quantum terdiri dari beberapa subproyek.
- CSS
- Sistem style sheet parallel Servo terintegrasi dengan Gecko. Benchmark menunjukkan bahwa kinerja berbanding lurus dengan jumlah core CPU.[7] Komponen ini telah dirilis bersama dengan Firefox 57.
- Render
- Arsitektur rendering milik Servo, WebRender, terintegrasi ke Gecko. WebRender menggantikan model menggambar immediate mode dengan model retained mode yang lebih mudah dipercepat oleh GPU dengan memanfaatkan kesamaan CSS/DOM ke scene graph. Per-render-an pada skenario terburuk dalam pengujian melebihi 60 frame per sekon.[8]
- Compositor
- Compositor memiliki prosesnya sendiri, mengisolasi tab peramban web dari kegagalan driver grafis. Karena kegagalan compositor tidak akan mengganggu proses konten peramban web, proses dari compositor dapat dimulai ulang secara transparan tanpa harus kehilangan data pengguna. Ini telah dirilis pada Firefox 53.[9]
- DOM
- Terinspirasi oleh arsitektur konstelasi Servo[10] dan Opera's Presto,[11] Quantum DOM menggunakan thread terjadwal kooperatif di dalam DOM untuk meningkatkan responsifitas tanpa meningkatkan jumlah proses dan penggunaan memori.
- Flow
- Payung untuk peningkatan kinerja yang terlihat pengguna didorong oleh sebuah tim yang bekerja di komponen - komponen Gecko. Saat ini difokuskan pada perbaikan kinerja penggunaan nyata pada webapps, terutama G Suite dan Facebook.[12]
- Photon
- Sebuah penyegaran UI dari keseluruhan aplikasi, dengan fokus yang kuat pada peningkatan kinerja UI. Diperlakukan sebagai sister-project untuk Quantum Flow.[13] Ini telah dirilis pada Firefox 57.
- Network
- Meningkatkan kinerja Necko, Lapisan jaringan dari Gecko, dengan memindahkan lebih banyak aktivitas jaringan dari thread utama, bergantung pada konteks prioritas dari berkas jaringan, dan racing lapisan cache dengan jaringan.[14]
- ^ "Quantum". Mozilla Wiki. Diakses tanggal 2017-04-20.
- ^ Cimpanu, Catalin. "Mozilla Announces Quantum, a New Browser Engine for Firefox". softpedia. Diakses tanggal 2017-02-17.
- ^ https://www.mozilla.org/en-US/firefox/57.0/releasenotes/
- ^ https://blog.mozilla.org/blog/2017/11/14/introducing-firefox-quantum/
- ^ Bergstrom, Lars; et al. (May 2016). "Engineering the Servo Web Browser Engine using Rust" (PDF). Proceedings of the International Conference on Software Engineering. CS1 maint: Explicit use of et al. (link)
- ^ "Servo remaining work". GitHub. Diakses tanggal 2017-02-17.
- ^ "The Changelog". The Changelog. Diakses tanggal 2017-03-28.
- ^ "Bay Area Rust Meetup February 2016". Air Mozilla. Diakses tanggal 2017-03-28.
- ^ "Firefox faster and more stable with the first big bytes of Project Quantum, simpler with compact themes and permissions redesign". Mozilla Blog. Diakses tanggal 2017-04-27.
- ^ "Servo Architecture". Youtube. Diakses tanggal 2017-03-28.
- ^ "Mozilla's Quantum Project". Bill McCloskey's Blog. Diakses tanggal 2017-03-28.
- ^ "Quantum Flow". Mozilla Wiki. Diakses tanggal 2017-03-28.
- ^ dolske (2017-05-18). "Photon Engineering Newsletter #1". Dolske's blog. Diakses tanggal 2017-07-04.
- ^ "TPE Necko/Projects - MozillaWiki". wiki.mozilla.org (dalam bahasa Inggris). Diakses tanggal 2017-07-04.