 Mě chcete teraz ani jeden tej tento, no to je to lepší človek, kdo nám musí děžit velce. No. Co zbukáma, vyspíte mnou vení. No dobra, tak jo, tak vycháme tej tento popení. Co jste tohle? Ty jo, úbece. Mám jednou, že to bude. To nevím, stáje do BVGAčko, ty otyf. Je to na výsledě, to je srečtě sa narovní. Vysledně si je 27,25 a 21 jako níc. Jak my nepas nejde. 1,2,3. Počkujiho mě, čestí to, na third day of devcon. The desktop tag will start with a talk about the Firefox development roadmap for this year. The speakers are Michal Stanké, who is a Mozilla community representative for the Czech Republic. And Martin Stancký, who is a Firefox developer. I'm Martin Stancký a I do some development on Firefox on Linux. And I'm going to talk today about some future development of Firefox and what we can expect. As you may know, Mozilla is not in very good shape today because there are Google and Chrome. Firefox is dropping market share, so Mozilla is doing everything to just be back in business to produce some good browser. There are some ways how to manage that. And my things, I believe, are multiprocess and also sandboxes as Chrome des and also some speed up. You may know that the main new thing in Firefox is actually the Rust, which is new programming language. And the Rust is something like, I don't know, if it's really focused on parallelism and safe memory handling. And this whole project of moving Firefox or some parts of Firefox to Rust, the name is Project Oxidation. So some small parts are moving to Rust and bigger and bigger and bigger than. So another big thing from Mozilla point of view, of course, is multiprocess Firefox. When Firefox uses more than one process like in past. And recently Firefox has, I think, one process for the content. And the latest nightly has two processes for content, for web content. And another process is for plugins and media plugins like video players, sorry, video decoders like Adobe and so. Well, sandboxes and the whole project, how to keep with competitors has named Project Quantum. So those are priorities from Mozilla point of view. Also, we as Red Hat, a company, we have also priorities, which are the GTK3 flatback to distribute Firefox in, I think, GNOME native, future native format or free container format. So Wayland and especially from Enterprise Linux, we want Firefox to be more friendly to enterprise customers. So better configuration, the fleet commander project, care barrels and so. Firefox 52 is, I think, some kind of milestone from Mozilla point of view, because Firefox 52 requires Rust. And no more plugins will be allowed, I think. And PAPI plugins like Java accept Flash. Flash is going to be here, I think, long because from telemetry, Flash is used by, I think, 40 millions of users. So Mozilla is not going to kill Flash because it has huge user base. Also on Linux, no Kyro, on Firefox no more. Firefox is going to skia library from GNOME and also GTK2 is going to be removed. So I think it's kind of milestone. Well, I think everything interesting in Firefox has happened just in a nightly, which is the open version of Firefox. It requires Rust. Rust is used for media detection and reading the media containers. And also parsing URL, internet addresses, the multiprocess issues there, and also sandboxes. There are sandboxes on Firefox. Sorry, I will talk later about the sandboxes. Why the whole thing about Rust and server? I have a screen here. You can see that this is just the regular gecko. And this is a benchmark of loading and calculating the flow and styles of Wikipedia page. So you can see the recent implementation of those things are pretty slow. And server, which is the future implementation in Rust, is much faster even in parallel in threads. So this is the reason why Mozilla tries to speed up and do that better. Well, the multiprocess Firefox has, as I said, content purchases, media plugins, and plugins like Flash in containers, and sandboxes. This is just the default sandbox in Firefox. You can see the main process. This is the main process, the gecko, which has access to file system network and so. And Mozilla uses only sandboxes to sandbox to child processes, like the web content and the plugins. So if the plugin or web content breaks this sandbox, it has complete access to system. But we in Red Hat want to do the sandbox complete over the whole browser. So even if the web breaks to the main process, the whole browser will be sandboxed. Right now it could be done as a Linux, but in future we want to do that by Flatpak. And yes, I think I'm going to show you some demos because I think it's much better than talking. Well, yes. So first of all I'm going to show you just the sandbox on the Linux. This is just, you can launch Firefox, Incentbox by SLI, by this command. And it runs Firefox in a complete environment, which is isolated from the system. So I will run it. So there is no profile. So it's completely empty environment. So I will create just some profile. And launch it. So I will try to open some files. So there is just the file system. I think it could be accessed by the sandbox. But the home is empty. Sorry. The sandbox, unfortunately the sandbox is not complete because the application could access X system. And when you have access to X, you have access to root window and also to all other windows. So this is why we want to use Wayland and do the isolation complete of Firefox. So if you visit some broken pages or want to try Flash and so, you can use this sandbox in Fedora. Also I have presentation of the processes. So here is Firefox. Nightly. Nightly Firefox. I will open some pages. I don't know. I need some page with Flash. OK, I will open more. I don't know. So I have five tabs. OK. So you can see there is the Nightly Firefox. And there are two processes for the content, for web. And one for the plugin container. If I killed content from some pages. This is the page which was killed by the user. So I think this Nightly works pretty well. But it's not finished in the recent Firefox, which is 51. But it works pretty well in the Nightly. So I hope it's going to be in the development or in the production. And the last thing which I have is the Wayland demo. This is our recent project in Red Hat. We try to make Firefox run in Wayland. Because the Wayland is faster than it's more secure. And because the application has only access to its window. There is no access to whole area. And much more, just new and better. So this is our recent Wayland development version. I hope it's going to start. So this is our Wayland version. There are some interesting bugs in the recent compositor. That the pages are not very thorough perfectly. So you can see some flipping between pages and between graphics. So as you see, this is back in Motor Compositor. So not everything perfect, but seems to be working at least somehow. Well, lot work to do. OK, so this is our recent Wayland port. OK, thank you. And I'm going to pass Mike to Michal. Thank you, Martin. So as you have heard, my name is Michal Stanke. And I'm here for the Czech Mozilla community. But I'm going to tell you more about what's coming, as Martin mentioned, Rust. In Rust Mozilla research started to build completely new web engine called Cervo. Today Cervo is more community-based than Mozilla. Less Mozilla paid people as Mozasta for working actually on it. But they still keep an eye. And found out that in Cervo they have made good progress, especially in the speed of rendering the pages. Basically what they have done in Cervo, they paralyzed whatever can be paralyzed. Starting with CSS to compositing DOM, everything. Project Quantum has been mentioned and has been announced, I think it was in December. They are going this year to port some cool stuff from Cervo back to Gecko and merge it. It's basically about parallelizing everything. And one thing that they have already started and experimented in nightly on Windows. And some subset of GPU cards that have been supported is GPU offloading. That means they have put everything, what interacts with the GPU to a standalone process. I actually have some numbers on my laptop. I will look at them and tell you. They have done some measurement and there has been about 50% fewer crashes caused by GPU drivers. On the other hand, there has been about 25% more crashes caused by flash. Because flash does not work well in general in Firefox. And that's why they are going to reduce it as well. They even think about using PepeRAPI for flash instead of NPAPI. Which seems to be more stable and basically use the same version of flash as Chrome does. This was the first experiment. It's not running anymore again and they are now summing up what to do and when to ship it. But this year they have three main things. They want to ship in Firefox written in Rust. One of them is Quantum CSS, the first one. Which is also codenamed Stylo. That's a library for CSS. Currently it's server, there is just about 120 CSS properties supported. But the aim is to support everything what now the CSS library in Gecko does. And replace the current implementation by the Stylo written in Rust. They are testing it on top 500 pages from the Alexa rank. And they do not see there any regressions. Except some they decided they are allowed, let's say. They will ship it. Then there is renderer. They are going to port web renderer and compositor from server to Gecko also. And that's the part that should paralyze everything that can be paralyzed. And use as much GPU as can be for the rendering. Currently it's unstable due to the drivers, photographic cards. So it doesn't even work well in server now unfortunately. The compositor is composing the pieces together on the page. I have mentioned also the DOM and Flow. Those should be the latest ones. DOM project is about unloading tabs which are not active. They want to detect what tabs you have open in Firefox. They do not need to run the JavaScript when they are not active and you do not have open them directly. For example, they want to detect, for example, the Google mail you probably want to see the notifications or some changes in the title bar when there arrives a new email. And maybe some more pages. But from the common web pages you don't need this. And they can stop the JavaScript from running and just do not use it. The decision has been made because they have started with electrolysis and trying to run as much processes for the content as possible. And the outcome is it doesn't make much sense to use more than eight processes because there is kind of overhead with the memory to run each process. So they decided to run four or eight processes and inside of them use some smart scheduling and standalone threads to render each tab you have. The last one mentioned is Flow. I found it recently on the Mozilla Wiki and Flow is about UI and everything else, what can be written in Rust and ported from Servo. The drawback is those are massive changes to the code base. So Firefox needs to drop something which is not compatible. One of the things is NPAP, so no more plugins except Flash and I think Google's Widevine will be supported. I'm not sure if Google Widevine actually uses NPAP, but it should be one of the plugins that will still work. And they are also dropping support for Windows Vista and older. That should happen starting Firefox 53 that cannot be, that wouldn't be able to run on old windows. And the last major thing that they are deprecating Zool advance. So basically the advance you know the older ones and moving to web extensions API that is in Chrome, Opera and partially in Edge. Zool advance should be dropped in Firefox 57. They will still work in extended support release, 52 for about a year, year and two months maybe, but then the Zool will be gone definitely. I wanted to show you Servo originally how it runs, but I wasn't able to connect my computer, so no Servo demo, but you can stop by the booth, which is next to the entrance to this building, and we will show you there directly. And now something completely different. We have been talking about backend stuff that user actually won't see directly. And I want to show you that Mozilla is also testing some new features. And they are not testing in any nightly special builds. You can install them and test even on release, even older release versions. That's test pilot. Test pilot contains, I think now it's six experimental add-ons built directly by Mozilla. And when you install them, you can try some features and Mozilla will unfortunately collect some data, which they need to know how you use the feature, if it's actually used and how you interact with it. If the features are successful and from the data they see that you want to use it and it's helpful, it will be built into Firefox eventually. If they do not see much interest, they will either kill it or upload it on addonsmozilla.org and make it a regular add-on. I can show you some of the experiments now, if it will work here, but here should be up-to-date version. So if I open test pilot, Firefox.com, it's in Czech, so I will switch it for you to English. Now it's in English. And first I need to install the test pilot add-on. It has been installed and now I see the experiments here. There are some kind of geeky experiments like when you hit a four or four page, it's going to check the archive.org if there's some older version of it. You might be interested, maybe in TAP center, but basically move the TAPs aside. So I just click enable, it will download the add-on and move the TAPs aside and there's some wizard how to use it. And it can be hidden this way, you can even search here. So here it will show me the TAPs here and some next TAPs, other TAPs. One of my favorites is actually there are two. It's Minwit. I've heard that this feature is in Opera already. When I enable Minwit and visit some YouTube video, let's open YouTube and go, for example, to Defconn. I can actually try to, when I enable Minwit, watch myself visit and yeah, some demo effects here. Let's open some other video, maybe if I put something, several browser, maybe it's another one. OK, now. Yes, this works. Who here has just rushed? I can see the video here in some small windows. I can even close the original TAP, it will stay here. I can hide Firefox, and I will see the windows still over the other windows. So this is the title of the talk. Now you can see the TAP is not here with the video, but there is still an icon, so I can turn it back to a standard TAP and put it back in the browser again. And one more interesting is a page shot, which is in English, who cares, if I enable it. I see a new button here. If I click it, I can make a screenshot. I can either track and select the era or I can just hit some text. I have turned it off. And it will select the HTML element automatically for me. I can download the screenshots, or I can hit Save, which will immediately upload the screenshot to the Mozale servers and copy the URL to share to the keyboard. The advantage of using this service is that the uploaded screenshots are automatically deleted from the servers by default after 14 days, but I can change it from 10 minutes to indefinitely to keep it there. I can go and delete it right now. And if I now paste the link, it won't be there. Maybe I should show you, it will be there before. I can't... Yeah, it detects, so I cannot take a screenshot of this page shot. Interesting. And this is the pilot. If everything goes well, there will be more experiments coming. One of them is, for example, container tabs. And if you ask me if it's about running tabs in Docker, it's not. Container tabs are about... if each time you open a new tab, either it is blank tab or open a link in a tab, you will be able to choose what kind of cookies and things should be accessible for it tab and what should be sent. By default, there are predefined tabs for personal browsing for banking, shopping, social networks and stuff. And it will allow you to be locked in to a single page with three or five accounts at the same time in different tabs and they won't know about each other. Currently, it's, by default, enabled in Nightly. You can enable it by preference in the developer edition for sure, but they want to enable it for testing to broader audience via the test pilot and get some statistics how it's used, if people use it what tabs and containers will be useful because you can add your own containers. And that's it. So that's all for me, but if you have any questions, please raise your hand. Yeah, the question was that we talk about desktop and if there is desktop is the main focus. The truth is that in the few years in the past they put a lot of effort into Firefox OS and they realize they are not successful and decided to kill it. And then they saw, okay, Chrome did for the years they Google developed Chrome into a very fast browser. So now they are like going to get on par with Chrome, at least. But there is also focus on mobile web browsers. Recently there has been a release of Firefox focus for iOS. Firefox focus is a very simple browser for iOS with some added features like tracking protection which blocks some ads and tracking elements including Google Analytics and similar stuff for you. And there is also an experimental tabs app called Prox which aggregates stuff from things like TripAdvisor and such and show the interesting restaurants and sites around you including the reviews from all known sites through the API. Actually threads are using Firefox Firefox is like 20 or 30 threads but threads have shared memory so all threads share the same memory and can write everything so actually it's not secure the threads are not secure so this is the reason so you say that Chrome processes are not secure it has sandboxes in the nightly Firefox and it's going to have more sandboxes so the processes are used to have the sandbox so this is the reason Actually on Windows there is also already some basic sandbox release and even in the release there are sandboxes for the content processes for Linux they will follow and in the next few releases they want to harden the sandboxes so the content process cannot do what it should not do Yeah, the question there How many tabs do you have open? Yeah, okay Yeah, that's true Currently enabling the EtonS which split UI and the content I think the increase was about 10% of the memory currently in 90 data think 2 processes I don't know the numbers someone did some measurement how much the number of how much the memory consumptions raise with enabling more content processes I think it was something like 20% or 40% when you double up the number of the processes but I've also heard about people that run but I've heard about people they have enabled about 100 content processes on 8 GB machine but they run nightly it should be slightly optimized but as I said, as quantum they know that it won't scale much and the limit currently the estimate is 8 content processes and inside of them they will use threads for rendering the tabs Yeah It will be easier compared with Chrome if you open I just did Well I did some testing with Chrome and Lightest Nightly yesterday and when I open some 5 5 different pages some video Sorry Well Just for testing because Chrome uses different processes for different domains so I opened some different domains and in Chrome it was 1 and 5 gigs and in multi-process Firefox the Lightest Nightly it was 700 megabytes so Well it could be better but it's still something I think it's still good and it really depends on the page Yeah There was a question about universal factor authorization right? If it's going to be supported in Firefox the answer is I don't know I haven't heard about for Firefox WebAssembly has been added to Nightly right? Usually when they add something to Nightly they wait for 3 cycles to make it work without too much crashes and they move to developer edition which is basically alpha then to beta beta is a very broad audience a huge number of users so in beta it could stay 2 cycles and then it probably will go to release so if I sum it up it's something like 6-7 releases that's about a year maybe to make it to release version Yeah The question was if there is any plan to support multiple profiles on Firefox for Firefox account I'm not aware of currently you cannot run cannot connect to multiple accounts at the same time for synchronization but you can log in into a different account for example if you log in to addonsmusel.org you can use different account then Firefox uses for synchronization so if any service decide to use Firefox account for login you can use different account than you have in the browser directly Yeah, the first question You can download Yeah, the question was where to get Nightly Yeah, actually I think you are talking about Linux, right? So there is a problem that the Nightly built by Mozilla doesn't work on Fedora because there is different SSL version so you need to buy it by yourself but I think we are going to provide some pre-built Fedora version in Flatpak or maybe in Copper but there is plan to provide the Nightly by users But if you want to compile it takes about 40 minutes yeah The question was or question comment Firefox looks much more like Chrome than Firefox looks like itself in the past that's true probably that's what the majority of the users wants to have the browser as simply as possible Still you can use stuff like Seamunkey for example which is another extreme that's basically Mozilla Suite put on top of the current Core, current Gecko version Yeah, right The question was about that Firefox is dropping the Zool add-ons and how much effort is put to port the current add-ons and make them work The answer is every single add-on developer has to do it on their own there is some documentation about web extensions up on mdn and currently they have done some measurements about how many how many add-ons from the Chrome Store are already compatible with the Nightly version of Firefox it was something around already able to run in Firefox if you repack them but there is no need to change in the code and about 11% of them won't be able to run without rewriting because Mozilla is not going to implement some already deprecated APIs and of course they are not going to implement some Chrome specific APIs for example and stuff like that and the recent info is that the Zool add-ons are going to be deprecated in like in time like end of this year or so so next year only web extensions are going to be support in Firefox this is the recent plan well it's because yeah the question is why there is no wrapper for the existing extensions well the answer is because Mozilla wants to get rid of the existing Zool extensions because they are too intrusive to the browser and they are too much powerful and Mozilla is just they cannot do much changes in the browser to move it forward to do big changes in the core so they just want to get rid of those dependencies and move faster forward to do bigger changes in the Firefox and make all extensions more compatible with their electrolysis so there are big changes in the core of Firefox yeah this is yeah the question is if there are any features that Firefox is better than Chrome for example what I have from the back was for example profiles in Chrome there is something like you can switch either TTs or stuff like that on the top right corner in Firefox actually you can run multiple Firefox instances next to each other having completely different data using completely different profiles and by profile I mean different directory different addons, different everything basically in your home directory you will find a place called by profile you have seen it when Martin started the demo he had to create a profile in the sandbox and those are completely separate they do not share anything anything yeah yeah the question was about is addressing the question that Zule is much more powerful than web extensions and if the web extensions are going to be more powerful probably in the future the answer is not that much they are working and talking with Google and Opera together to make web extensions kind of standard to standardize it and then Mozilla promised to get and gather feedback from the developers what API and they are missing or what features they would like to implement as an addon and it's not possible recently they have already shipped in Nightly a new API for themes because themes will be affected by Zule deprecation also but it won't be that powerful probably never that powerful as Zule because Zule was with Zule have access to everything in Firefox well if you have API you are limited to the API so you would need to yeah we are out of time probably sorry so if there are more questions just we have the booth you can you can go there and ask us anything and we will do our best to answer you so thank you I've got an announcement for you so if you've come for the GTK32 GTK4 talk I've got bad news for you we got a message from the speaker that he cannot make it because he's sick so we will have to cancel the next talk and we'll see you in one hour four yeah sure you can