Changes

Jump to: navigation, search

Quantum

4,711 bytes added, 06:51, 27 October 2016
Created page
'''Quantum''' is not a new web browser. Quantum is Mozilla's project to build the next-generation web engine for Firefox users, building on the Gecko engine as a solid foundation. Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo to bring more parallelization and GPU offloading to Firefox.

As the project evolves we'll be adopting more of Servo's components, and leveraging the research that helped build them, to make Firefox faster and more reliable than ever. Servo is a research project and doesn’t yet have all the functionality users expect from a full-featured web browser. By taking an incremental approach and merging proven components from Servo to Gecko as they are ready, users won't have to wait long to start seeing dramatic improvements to Firefox stability and performance. We're going to ship major improvements in 2017, and we'll iterate from there.

See the [https://youtu.be/UGl9VVIOo3E video of Jack Moffitt’s Web Engines Hackfest presentation] for a preview of some of the Servo components that will be integrated into Firefox.

= Getting Involved =

Quantum is a big project that ties together several of Mozilla’s communities and codebases. The easiest way to get involved in the Quantum project is to dive into one of the projects listed below, to help us writing code, running tests and filing bugs.

If you're interested in contributing to Quantum or Servo, drop by the '''#quantum''' or '''#servo''' IRC channels on [https://wiki.mozilla.org/IRC Mozilla's IRC server].

The [https://starters.servo.org/ Servo Starters] site has a list of easy tasks that are good for beginning contributors to Rust or Servo.

== rust-bindgen ==

'''[https://github.com/servo/rust-bindgen bindgen]''' is a C++ bindings generator for the Rust language. Quantum uses bindgen to generate the glue code between Firefox’s C++ code and Servo’s Rust components. Check out the [https://github.com/servo/rust-bindgen/blob/master/CONTRIBUTING.md bindgen contributing guide] to get started.

Some bindgen bugs that are good for new contributors are tagged on GitHub as [https://github.com/servo/rust-bindgen/issues?q=is%3Aissue+is%3Aopen+label%3AE-easy “easy” bugs].

== Quantum CSS ==

Quantum CSS (aka '''[https://wiki.mozilla.org/Stylo Stylo]''') aims to integrate Servo's parallelized CSS style system into Gecko.

One front where you can help out is adding new properties to Servo's CSS parsing crate. This requires familiarity with Rust, but is otherwise a good way to dip your toes into Servo's style system. To get started, see [https://github.com/servo/servo/wiki/Property-hacking-guide Servo's CSS property hacking guide] for more information.

If you do not know Rust, you can help implement keyword properties. See the [https://github.com/servo/servo/wiki/Stylo-hacking-guide Stylo hacking guide] for more details. The Stylo hacking guide also has instructions for building Stylo if you wish to play with it yourself. If you know C++, [https://bugzilla.mozilla.org/show_bug.cgi?id=1277133 Firefox bug 1277133] has information about easy Gecko bugs that will assist Stylo's integration with Gecko.

Some Stylo bugs that are good for new Servo contributors are tagged on GitHub as [https://github.com/servo/servo/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AA-content%2Fcss%20label%3AE-easy “easy” bugs] and [https://github.com/servo/servo/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3AA-content%2Fcss%20label%3A%22E-less%20easy%22 “less-easy” bugs].

== Quantum Render ==

'''WebRender''' is Servo's next-generation renderer optimized for GPU rendering. The Quantum Render project aims to ship WebRender as the graphics backend for Firefox. See [https://github.com/servo/webrender WebRender's GitHub repo] for information on contributing to WebRender.

Some WebRender bugs that are good for new contributors are tagged on GitHub:

* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aeasy WebRender's “easy” bugs] do not require specific experience with graphics rendering or WebRender.
* [https://github.com/servo/webrender/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3Aless-easy WebRender's “less-easy” bugs] assume familiarity with Rust, graphics, and WebRender.

== Quantum DOM ==

The '''Quantum DOM''' project is researching how to improve UI responsiveness by aggressive throttling of CPU-heavy iframes and background tabs and smarter JavaScript garbage collection.

== Quantum Flow ==

The '''Quantum Flow''' project will explore performance improvements not covered by the other Quantum components, such as UI optimizations.
Confirm
3,324
edits

Navigation menu