Build a Browser by Kotlin Colin Lee Sebastian Kaspari

Total Page:16

File Type:pdf, Size:1020Kb

Build a Browser by Kotlin Colin Lee Sebastian Kaspari BUILD A BROWSER BY KOTLIN COLIN LEE SEBASTIAN KASPARI @colinmlee @Anti_Hype Copenhagen Denmark Feature Session Toolbar Downloads Contextmenu Customtabs Findinpage Webnotifications Reader View Search Sync Prompts Sendtab QR ... Browser Toolbar Engine-System Engine-Gecko Search Tabstray Menu ... Concept Engine Toolbar Storage Fetch Push Tabstray ... UI Service Support Lib Autocomplete ... ... ... State Crash ... Agenda ● Why? ● How? ● Live code a browser! ● Syntactic Sugar Why? Firefox for Android Firefox for Android Focus for Android Firefox for Android Firefox Rocket Firefox Lite Focus for Android Firefox for Android Firefox Rocket Firefox Lite Focus for Android Firefox for Fire TV Firefox for Echo Show Firefox for Android ? Firefox Rocket Firefox Lite Focus for Android ? Firefox for Fire TV ? Firefox for Echo Show Firefox for Android ? Firefox Rocket Firefox Lite Focus for Android ? Firefox for Fire TV This does not scale! ? Firefox for Echo Show Goals ● Share code between our apps ● Reduce the maintenance overhead ● Clear architecture boundaries ● Make it easier and faster to build new or experimental products. Solution: Build independent, reusable components to share code between existing projects and build new apps faster. Components? ● Independent open-source Android libraries ● “Android First” extensible application architecture ● Minimal cross-component and third-party dependencies ● Customizable and pluggable ● Distributed as AARs via a Maven repository Components? 100% Kotlin Components? 100% Kotlin Well, and some Rust How? Browser Engine HTML CSS Browser Engine JS Browser Engine WebView GeckoView Servo ... GeckoView GeckoView ● App developer in control of updates. ○ Only one version needs to be supported. No surprises. ● Multiprocess ● Separation of session (tab) and view ● Private mode ● WebExtensions ● Tracking Protection Engine Components browser-engine-system concept-engine browser-engine-gecko ... Toolbar Engine Components browser-toolbar concept-toolbar ... Done? What else? feature-downloads browser-contextmenu feature-media browser-awesomebar feature-readerview feature-downloads Feature Session Toolbar Downloads Contextmenu Customtabs Findinpage Webnotifications Reader View Search Sync Prompts Sendtab QR ... Browser Toolbar Engine-System Engine-Gecko Search Tabstray Menu ... Concept Engine Toolbar Storage Fetch Push Tabstray ... UI Service Support Lib Autocomplete ... ... ... State Crash ... LIVE CODING Syntactic Sugar Mozilla ❤ Kotlin null, null?, null!! Explicit nullability Handling state lib-state Store & State Store State data classes Modeling State data class BrowserState( val tabs: List<TabSessionState> = emptyList(), val selectedTabId: String? = null, val customTabs: List<..> = emptyList(), val extensions: Map<..> = emptyMap() ) : State lib-state Observing state Store State observes State Component / App lib-state Observing state @CheckResult(suggest = "observe") @Synchronized fun observeManually( observer: Observer<S> ): Subscription<S, A> { // .. } lib-state Observing state val subscription = store.observeManually { state -> // .. } subscription.unsubscribe() Extension functions Iterating on API @MainThread fun <..> Store<S, A>.observe( owner: LifecycleOwner, observer: Observer<S> ) { // .. } Extension functions Iterating on API @MainThread fun <..> Store<S, A>.observe( view: View, observer: Observer<S> ) { // .. } lib-state Dispatching actions Store State Action observes State dispatches Component / App Sealed classes Modeling Actions sealed class TabListAction : BrowserAction() { data class AddTabAction( val tab: TabSessionState, val select: Boolean = false ) : TabListAction() data class SelectTabAction( val tabId: String ) : TabListAction() // .. } lib-state Inside the store Store Action Reducer State State Functions & Sealed classes Reducing state fun reduce( state: BrowserState, action: TabListAction ): BrowserState { return when (action) { is TabListAction.AddTabAction -> { .. } is TabListAction.SelectTabAction -> { .. } // .. } } data classes Creating a new state val newState = state.copy( selectedTabId = "some-other-tab" ) Type aliases Observing state typealias Observer<S> = (S) -> Unit typealias Reducer<S, A> = (S, A) -> S Channels & Flow Channel Observing state sequentially @ExperimentalCoroutinesApi @MainThread fun <..> Store<S, A>.channel( owner: LifecycleOwner = ProcessLifecycleOwner.get() ): ReceiveChannel<S> { // .. } Flow Observing state @ExperimentalCoroutinesApi @MainThread fun <..> Store<S, A>.flow( owner: LifecycleOwner? = null ): Flow<S> { // .. } “Scoped flow” Observing state @ExperimentalCoroutinesApi @MainThread fun <..> Store<S, A>.flowScoped( owner: LifecycleOwner? = null, block: suspend (Flow<S>) -> Unit ): CoroutineScope { // .. } Operators for dealing with state updates Flow operators Only update UI if the state has changed fun <T> Flow<T>.ifChanged(): Flow<T> store .flow() .map { state -> state.selectedTab.title } .ifChanged() .collect { title -> // .. } Flow operators Only update UI if state changed partially fun <T, R> Flow<T>.ifChanged( transform: (T) -> R ): Flow<T> store .flow() .ifChanged { state -> state.selectedTab.title } .collect { state -> // .. } Flow operators fun <T, R> Flow<List<T>>.filterChanged( transform: (T) -> R ): Flow<T> store .flow() .map { state -> state.tabs } .filterChanged { tab -> tab.title } .collect { tab -> // .. } https://mozac.org https://mozilla.github.io/geckoview https://mozilla.github.io/application-services/ https://github.com/mozilla-mobile/ THANK YOU AND REMEMBER TO VOTE Colin Lee @colinmlee Sebastian Kaspari @Anti_Hype #KotlinConf.
Recommended publications
  • HTTP Cookie - Wikipedia, the Free Encyclopedia 14/05/2014
    HTTP cookie - Wikipedia, the free encyclopedia 14/05/2014 Create account Log in Article Talk Read Edit View history Search HTTP cookie From Wikipedia, the free encyclopedia Navigation A cookie, also known as an HTTP cookie, web cookie, or browser HTTP Main page cookie, is a small piece of data sent from a website and stored in a Persistence · Compression · HTTPS · Contents user's web browser while the user is browsing that website. Every time Request methods Featured content the user loads the website, the browser sends the cookie back to the OPTIONS · GET · HEAD · POST · PUT · Current events server to notify the website of the user's previous activity.[1] Cookies DELETE · TRACE · CONNECT · PATCH · Random article Donate to Wikipedia were designed to be a reliable mechanism for websites to remember Header fields Wikimedia Shop stateful information (such as items in a shopping cart) or to record the Cookie · ETag · Location · HTTP referer · DNT user's browsing activity (including clicking particular buttons, logging in, · X-Forwarded-For · Interaction or recording which pages were visited by the user as far back as months Status codes or years ago). 301 Moved Permanently · 302 Found · Help 303 See Other · 403 Forbidden · About Wikipedia Although cookies cannot carry viruses, and cannot install malware on 404 Not Found · [2] Community portal the host computer, tracking cookies and especially third-party v · t · e · Recent changes tracking cookies are commonly used as ways to compile long-term Contact page records of individuals' browsing histories—a potential privacy concern that prompted European[3] and U.S.
    [Show full text]
  • Features Guide [email protected] Table of Contents
    Features Guide [email protected] Table of Contents About Us .................................................................................. 3 Make Firefox Yours ............................................................... 4 Privacy and Security ...........................................................10 The Web is the Platform ...................................................11 Developer Tools ..................................................................13 2 About Us About Mozilla Mozilla is a global community with a mission to put the power of the Web in people’s hands. As a nonprofit organization, Mozilla has been a pioneer and advocate for the Web for more than 15 years and is focused on creating open standards that enable innovation and advance the Web as a platform for all. We are committed to delivering choice and control in products that people love and can take across multiple platforms and devices. For more information, visit www.mozilla.org. About Firefox Firefox is the trusted Web browser of choice for half a billion people around the world. At Mozilla, we design Firefox for how you use the Web. We make Firefox completely customizable so you can be in control of creating your best Web experience. Firefox has a streamlined and extremely intuitive design to let you focus on any content, app or website - a perfect balance of simplicity and power. Firefox makes it easy to use the Web the way you want and offers leading privacy and security features to help keep you safe and protect your privacy online. Mozilla continues to move the Web forward by pioneering new open source technologies such as asm.js, Emscripten and WebAPIs. Firefox also has a range of amazing built-in developer tools to provide a friction-free environment for building Web apps and Web content.
    [Show full text]
  • Giant List of Web Browsers
    Giant List of Web Browsers The majority of the world uses a default or big tech browsers but there are many alternatives out there which may be a better choice. Take a look through our list & see if there is something you like the look of. All links open in new windows. Caveat emptor old friend & happy surfing. 1. 32bit https://www.electrasoft.com/32bw.htm 2. 360 Security https://browser.360.cn/se/en.html 3. Avant http://www.avantbrowser.com 4. Avast/SafeZone https://www.avast.com/en-us/secure-browser 5. Basilisk https://www.basilisk-browser.org 6. Bento https://bentobrowser.com 7. Bitty http://www.bitty.com 8. Blisk https://blisk.io 9. Brave https://brave.com 10. BriskBard https://www.briskbard.com 11. Chrome https://www.google.com/chrome 12. Chromium https://www.chromium.org/Home 13. Citrio http://citrio.com 14. Cliqz https://cliqz.com 15. C?c C?c https://coccoc.com 16. Comodo IceDragon https://www.comodo.com/home/browsers-toolbars/icedragon-browser.php 17. Comodo Dragon https://www.comodo.com/home/browsers-toolbars/browser.php 18. Coowon http://coowon.com 19. Crusta https://sourceforge.net/projects/crustabrowser 20. Dillo https://www.dillo.org 21. Dolphin http://dolphin.com 22. Dooble https://textbrowser.github.io/dooble 23. Edge https://www.microsoft.com/en-us/windows/microsoft-edge 24. ELinks http://elinks.or.cz 25. Epic https://www.epicbrowser.com 26. Epiphany https://projects-old.gnome.org/epiphany 27. Falkon https://www.falkon.org 28. Firefox https://www.mozilla.org/en-US/firefox/new 29.
    [Show full text]
  • Mozilla Firefox Android Free Download
    Mozilla firefox android free download Continue Mozilla Firefox is one of the most popular browser options, offering high speed and displays versatility when adding plugins. The program is very easy on your computer resources. Experience a fast and reliable browser that is versatile and multi-commois when you use Mozilla Firefox. You've probably heard of Mozilla Firefox, one of the most used desktop browsers available. Firefox competes with other popular browsers such as Google Chrome and Opera Browser. Mozilla may offer the fastest speeds available for viewing on the Internet. Internet browsers are known for eating your computer's resources. This is especially noticeable in the consumption of Google Chrome almost all the RAM of the computer. However, Mozilla Firefox is easy, meaning that it won't consume all of your computer's resources. It uses thirty percent less memory than Chrome does. However, speed and performance are not sacrificed by this software to be easy. Your privacy is ensured when you use Mozilla Firefox, the security features in this program include anti-tracking to make sure your location remains hidden. However, you'll find that there are fewer extensions available for Firefox compared to Chrome. There's also no live support to answer any questions you may have. When you browse the Internet, you can save multiple websites, which is a great idea. However, you may regret it as bookmarks you have made are hard to find. If you don't organize the tab constantly you won't be able to browse the old bookmarks easily. But despite all the bad things in this application, it's speed and compatibility with most systems in making up for their flaws.
    [Show full text]
  • Lighting Application Suite
    Lighting Application Suite 7.0 System Manual Lighting Application Suite 7.0 System Manual (original version) Edition: 04.03.15 Published by: Traxon Technologies Europe GmbH Karl Schurz-Strasse 38 Paderborn, Germany ©2014, Traxon Technologies Europe GmbH All rights reserved Comments to: [email protected] Available for free download from www.traxontechnologies.com Subject to modification without prior notice. Typographical and other errors do not justify any claim for damages. All dimensions should be verified using an actual part. Except for internal use, relinquishment of the instructions to a third party, duplication in any type or form - also extracts - as well as exploitation and/or communication of the contents is not permitted. e:cue Lighting Application Suite: - Contents 1 Changes in LAS 7.0 9 1.1 Programmer .................................................................................................. 9 2 Introduction 11 2.1 The Lighting Application Suite ....................................................................... 11 2.2 About this book ............................................................................................. 11 3 How to use this manual 12 3.1 Previous knowledge ...................................................................................... 12 3.2 Levels............................................................................................................ 12 4 About the LAS 13 4.1 Objectives ....................................................................................................
    [Show full text]
  • Sylvestre Ledru
    Mozilla & Firefox Sylvestre Ledru March 13th 2017 N'hésitez pas à m'interrompre ! (désolé, c'est la seule phrase en Français) Who am I ? 36 Curriculum DEUG MIAS (first year) DUT informatique de gestion IUP MIAGE DESS informatique distribuée (Paris XII) Who am I ? Before Mozilla PhD in Australia & Paris XII (3 months) Worked for two years in a Geophysics company in Melbourne Who am I ? Before Mozilla Inria on Scilab (+ Digiteo + Scilab Enterprises) for 7 years Debian for 9 years – LLVM/Clang for 5/6 years Who am I ? Before Mozilla Mozilla for two year – Release manager Lead of the release management & stability teams – 10 people Lead of the Mozilla French branch About:Mozilla ● Adventure started by Netscape (~1994) ● Failed against Microsoft (Internet Explorer) ● Decided to open the sources of Netscape ● Documentary about this period: Code rush: https://www.youtube.com/watch?v=u404SLJj7ig About:Mozilla Brought by AOL in 1998 ● AOL gave some money to the Mozilla Foundation in 2003 ● Mozilla was nothing ● Massive refactorings ● Firefox 1.0 released 11 years ago · A game changer (popup blocker, tab, etc) About:Mozilla About 1050 employees 12 offices (Mountain View, SF, Toronto, Taipei, Paris, etc) ● Revenue of $423M (2015) · Mainly from the search deal · Google before 2015, now Yahoo and others (incl G again) ● Salaries ? · Important competition with Fb, Twitter, Google, etc · Bonus About:firefox About:Firefox ● Web browser with ~500 million users ● About 14.5M Lines of code ● Only (major) browser developed by a non-profit ● Support 4 operating systems: ● Microsoft Windows XP => 10 (32 & ~64 bit) ● GNU/Linux ● Mac OS X ● Android iOS – not based on Gecko About:Firefox ● Second or third browser in term of market share ● 12 to 22 % market share (don't trust them too much) ● Chrome started in 2008 About:Code Gecko is the based of Firefox And … Thunderbird, Seamonkey and Firefox OS (rip) ..
    [Show full text]
  • Firefox for Android Reviewer's Guide
    FIREFOX FOR ANDROID REVIEWER’S GUIDE Contact us: [email protected] FIREFOX FOR ANDROID TABLE OF CONTENTS About Mozilla for Android 1 Get Started 2 Type Less, Browse More 3 Get Up and Go 4 Customize and Go 6 Protecting Your Privacy 7 Favorite Features 8 The Cutting Edge 9 FIREFOX FOR ANDROID ABOUT MOZILLA Mozilla is a global, nonprofit organization dedicated to making the Web better. We believe in principle over profit, and that the Internet is a shared public resource to be cared for, not a commodity to be sold. We work with a worldwide community to create open source software like Mozilla Firefox, and to innovate for the benefit of the individual and the betterment of the Web. The result is great products built by passionate people and better choices for everyone. For more information, visit www.mozilla.org Mozilla Firefox for Android Mozilla Firefox introduces a new Web experience for Android (2.1 and above) devices. Based on the same open technology platform as the desktop version of Firefox, you have an easy, fast and customizable way to take your Firefox anywhere you go. Innovative features in Firefox make browsing the Web on Android devices easy and efficient so you can spend more time browsing and less time typing. Firefox Sync is integrated into Firefox, giving you access to your Awesome Bar history, bookmarks, open tabs and passwords across computers and mobile devices. Firefox respects your privacy and safeguards your security with features like end-to-end encryption in Firefox Sync and Do Not Track.. Firefox for Android enables you to personalize your Firefox with add-ons to change the look, features or functionality of Firefox to fit your needs.
    [Show full text]
  • Firefox Latest Version Full Download 2018 Firefox Release Notes
    firefox latest version full download 2018 Firefox Release Notes. Release Notes tell you what’s new in Firefox. As always, we welcome your feedback. You can also file a bug in Bugzilla or see the system requirements of this release. Download Firefox — English (US) Your system may not meet the requirements for Firefox, but you can try one of these versions: Download Firefox — English (US) Download Firefox Download Firefox Download Firefox Download Firefox Download Firefox Download Firefox Download Firefox Download Firefox Firefox for Android Firefox for iOS. September 5, 2018. Thank you to all of the new Mozillians who contributed to this release of Firefox! Firefox Home (the default New Tab) now allows users to display up to 4 rows of top sites, Pocket stories, and highlights. “Reopen in Container” tab menu option appears for users with Containers that lets them choose to reopen a tab in a different container. In advance of removing all trust for Symantec-issued certificates in Firefox 63, a preference was added that allows users to distrust certificates issued by Symantec. To use this preference, go to about:config in the address bar and set the preference "security.pki.distrust_ca_policy" to 2. Added FreeBSD support for WebAuthn. Improved graphics rendering for Windows users without accelerated hardware using Parallel-Off-Main-Thread Painting. Support for CSS Shapes, allowing for richer web page layouts. This goes hand in hand with a brand new Shape Path Editor in the CSS inspector. CSS Variable Fonts (OpenType Font Variations) support, which makes it possible to create beautiful typography with a single font file.
    [Show full text]
  • HTML5 Audio 1 HTML5 Audio
    HTML5 Audio 1 HTML5 Audio HTML • HTML and HTML5; HTML editor • Dynamic HTML • XHTML • XHTML Basic (Mobile) • XHTML Mobile Profile and C-HTML • HTML element • Span and div • HTML attribute • Character encodings; Unicode • Language code • Document Object Model • Browser Object Model • Style sheets and CSS • Font family and Web colors • HTML scripting and JavaScript • W3C, WHATWG, and validator • Quirks mode • HTML Frames • HTML5 Canvas, WebGL, and WebCL • HTML5 Audio and HTML5 video • Web storage • Web browser (layout) engine • Comparison of • document markup languages • web browsers • layout engine support for • HTML; Non-standard HTML • XHTML (1.1) • HTML5; HTML5 canvas, • HTML5 media (Audio, Video) • v • t [1] • e HTML5 Audio is a subject of the HTML5 specification, investigating audio input, playback, synthesis, as well as speech to text in the browser. HTML5 Audio 2 <audio> element The <audio> element represents a sound, or an audio stream.[2] It is commonly used to play back a single audio file within a web page, showing a GUI widget with play/pause/volume controls. Supported browsers • PC • Google Chrome • Internet Explorer 9 • Mozilla Firefox 3.5 • Opera 10.5 • Safari 3.1[3] • Mobile • Android Browser 2.3 • Blackberry Browser • Google Chrome for Android • Internet Explorer Mobile 9 • Mobile Safari 4 • Mozilla Firefox for Android • Opera Mobile 11 • Tizen Supported audio codecs This table documents the current support for audio codecs by the <audio> element. Browser Operating Formats supported by different web browsers system Ogg
    [Show full text]
  • A Framework for Purposeful Open Source
    Open Source Archetypes: A frameworkFramework For For Purposeful Open Source May 2018 Open Source Archetypes: A Framework For Purposeful Open Source Table of Contents Preface. 03 Introduction . 04 How to Use This Document. 05 Benefits of Open Source . 06 Open Source Project Archetypes. 10 Business-to-Business (B2B) Open Source . 11 Multi-Vendor Infrastructure . 12 Rocket Ship to Mars . 14 Controlled Ecosystem . 16 Wide Open. .. 17 Mass Market . 19 Specialty Library . 21 Trusted Vendor . 22 Upstream Dependency . 24 Bathwater . 25 Quick-Reference Comparison Of All Archetypes . 28 Practical Questions To Ask About A Project . 29 Basics of Open Source Licensing . 33 Methodology . 37 Acknowledgements . 38 Appendix – Work On ‘Openness’ At Mozilla . 38 BACK TO CONTENTS 02 Open Source Archetypes: A Framework For Purposeful Open Source Preface This report was originally commissioned by Mozilla for internal purposes. Mozilla wanted a shared framework for discussing its options in running open source projects, and requested a survey and comparative analysis of open source project archetypes — the various shapes that open source projects take in order to meet their various goals. For example, should a project prioritize development momentum over early collaborator acquisition, or vice versa? Should it optimize for individual contributors or for institutional partners? Different projects will have different answers to these and many other questions. The benefits of having a common vocabulary of archetypes extend beyond Mozilla, however, and the vocabulary is more useful and more easily improvable the more widely it is shared. Accordingly, Mozilla decided to release the report publicly. Very little has been changed from the original internal version: the Mozilla-specific orientation has been left intact, on the theory that the analysis will be clearer if tuned to a specific (and fortunately well-known) organization rather than rewritten for a hypothetical general audience.
    [Show full text]
  • NOTA TECNICA CORSI FAD Tutti I Collegamenti Con La Piattaforma
    NOTA TECNICA CORSI FAD Tutti i collegamenti con la piattaforma Cesform sono molto semplici ed assolutamente collaudati da migliaia di utenti e sicuri. Per eseguire con successo il collegamento all’aula virtuale del Cesform è necessario avere un computer collegato alla rete internet (ADSL, LAN, ecc) che abbia:un browser internet a scelta fra Explorer (minimo versione 8), FireFox, Chrome (il più veloce); il computer deve essere dotato delle casse o di un cuffia od auricolari per ascoltare l’audio. Rete LAN - Qualora il collegamento dovesse essere effettuato dall’interno di una LAN (la rete aziendale) è necessario che il vostro collegamento ad internet abbia aperte le porte 443 ovvero 1935; Vi accorgete di questa evenienza in quanto il sistema non vi consentirà l’accesso al video “guida uso corsi” che rappresenta quindi anche il collegamento test. Chiavette UMTS - L’efficacia delle connessioni tramite rete mobile è condizionata dalla sua capacità e dal livello del segnale locale e può generare problemi; inoltre aumentano i costi di connessione in considerazione della rilevante quantità di dati contenuti nel corso. Wi-Fi - la connessione ADSL wireless è condizionata dalla distanza del Router e dall’utilizzo contemporaneo da parte di più utenti; va quindi verificata con attenzione. Tablet e SmartPhone - la qualità della fruizione dei video potrebbe essere condizionata dal Browser utilizzato, per questo motivo consigliamo per i dispositivi iOS (iPad e iPhone) il Browser Chrome, mentre per i dispositivi Android il Browser Firefox (scaricabile dal play store con il nome "Firefox for Android"). Per una migliore fruizione su i-Pad si consiglia di utilizzare dolphin browser.
    [Show full text]
  • Wayland Support in Open Source Browsers
    static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; Wayland Support in Open /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, Source Browsers "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); Xavier Castaño García g_object_class_install_property (gobject_class, xcastanho at igalia dot com F_DO_BARNACLE_PROP_CODE, Myself, Igalia and Web Browsers ● Co-founder of Igalia in 2001. 65 engineers. Global ● Open Source consultancy: web browsers, multimedia, graphics, compilers, networking ● Igalia among the top contributors to upstream web browsers WebKit/JSC, Chromium/V8, Firefox/Servo/SpiderMonkey ● Working with the industry: automotive, tablets, phones, smart tv, set-top-boxes and several other embedded devices manufacturers Outline ● Part I: Brief review on Wayland support on Open Source Web Browsers ● Part II: Wayland support in Chromium ● Part III: WebKit and WPE ● Part IV: Conclusions Part I: Brief review on Wayland support on Open Source Web Browsers Motivation ● Wayland is a mature solution ● Demand from different industries – Automotive – Mobile – Desktop ● Current alternatives on the Open Source web browsers arena: – Mozilla: Firefox(Gecko/Servo) / SpiderMonkey – Chromium / Blink / V8 – WebKit / JSC Mozilla Gecko ● Powers the Firefox browser ● Embedding not officially supported. Monolithic architecture ● Several open source browsers moved away from Gecko to WebKit about 10 years ago ● Red Hat is working in Wayland support for Gecko. Basic functionality Mozilla Servo ● Next generation engine ● Designed for memory-safety, parallelism, embedding ● New set of tools and technologies: Rust ● Currently under heavy development. Too soon ● Preliminary Wayland support by Samsung Open Source Group Chromium ● Vertical solution, from low-level graphics to UX ● Very powerful and feature complete ● Engineered to power Chrome and Chrome OS ● Embedding, portability use cases are secondary.
    [Show full text]