Mozillas Herausforderung ist Firefox zu modifizieren und für die Zukunft fit zu machen. Firefox wird mit dem
Project Quantum generalüberholt. Über
Quantum werden Komponenten von
Servo in Firefox integriert.
Servo, ist eine moderne, hoch-performante Browser Engine, die für Anwendungs und Embedded-Nutzung entwickelt wurde und in
Rust geschrieben ist.
Servo ist ein Experiment und es war nicht vorgesehen, einen Browser daraus zu entwickeln, sondern nur um Dinge auszuprobieren und Ideen umzusetzen. Servo ist auch weit entfernt davon, für einen vollständigen Browser genutzt werden zu können.
Die Zukunft geht klar in die Richtung von CPUs mit mehreren Kernen/Threads, da das sich der Takt pro Kern nicht mehr wie früher steigern lässt. Die neue Render-Engine Servo ist von Beginn an auf Parallelität ausgelegt. Die
Roadmap zeigt auch, dass Teile wo möglich in Firefox integriert werden
Our long-term plan is to:
- Incrementally replace components in Firefox with ones written in Rust and shared with Servo.
- Determine product opportunities for a standalone Servo browser or embeddable library (e.g., for Android).
Our 2017 goals for Servo are:
- Explore new areas for performance improvements
- e.g., GPU CSS, SIMD layout, DOM wrapper fusion, transactional memory for better parallelism
- Ship Stylo in Firefox
- Ship WebRender in Firefox
- Improve web compatibility to the point where realistic benchmarking is possible
- Make Google docs usable
Zum Thema Add-Ons und WebExtensions
Die
Parallelisierung (
Nebenläufigkeit) von Prozessen/Threads ist mit dem bestehenden Kern und XUL nicht möglich. Was bei System on a Chip (SoC) bereits länger der Fall und seit Ryzen im Desktop angekommen ist, sind CPUs mit mehreren physischen Kernen/Threads. In den Themen wurde auch mehrfach gefordert, dass die Software dies unterstützen muss.
Es ist sehr komplex eine Anwendung für die
Parallelisierung (
Multitasking,
Nebenläufigkeit) von Prozessen/Threads zu entwickeln, da bei der
Parallelisierung Konflikte auftreten können. Aktuell kommt es bereits zu Problemen in Zusammenhang mit Add-Ons, die verschwinden, wenn das entsprechende Add-On deaktiviert wird. Das Risiko weiterhin in die Tiefen, wie dies mit XUL möglich ist, eingreifen zuzulassen und gleichzeitig
Parallelisierung (
Nebenläufigkeit) von Prozessen/Threads sicher zu stellen, ist extrem bzw. nicht möglich, da es schnell zu
Konflikten kommt.
Konflikte wikipedia.org schrieb:
Der
Kontext jedes
Programmteils muss vor unerwarteter
Veränderung durch andere Teile geschützt werden (
Synchronisierung). Soll ein gemeinsamer
Zugriff auf
Daten realisiert werden, wobei zumindest eine Partei schreibend/verändernd zugreifen möchte, dann muss der Zugriff synchronisiert werden, bspw. durch
gegenseitigen Ausschluss (
Mutex) unter Benutzung von
Monitoren oder von
Semaphoren. Alternativ kann auch verlangt werden, dass bestimmte Aktionen von zwei Prozessen
gemeinsam ausgeführt werden, mit so genannten
Rendezvous. Eine weitere sichere Art der Kommunikation sind
Warteschlangen. Diese Techniken lösen das Problem des gleichzeitigen Zugriffs auf
Ressourcen, verhindern jedoch keine Verklemmungen (ganz im Gegenteil).
Bereits jetzt verursachen Add-Ons Performance-Probleme, Abstürze, usw. Dies würde sich durch
Parallelisierung (
Nebenläufigkeit) von Prozessen/Threads potenzieren. Dies ist auch der Grund warum dies in Chromium von Anfang an nicht vorgesehen wurde.
Über die
WebExtensions wird eine standardisierte Schnittstelle (API) vorgegeben und es kann nicht mehr wie bei XUL in die tiefen Eingegriffen werden. Dies hat in logischer Konsequenz zur Folge, dass nur das umgesetzt werden kann, was die Schnittstelle anbietet / zulässt. Durch eine wohldefinierte Schnittstelle bleibt ein System aber über einen langen Zeitraum stabil, bis eine Methode als 'deprecated' (überholt) markiert und zu einem späteren Zeitpunkt ersetzt wird. Der Eingriff den XUL zulässt, kann zum Einen zur Instabilität bis zum Absturz führen und erfordert eine Anpassung sobald der Kern geändert wird. Wird ein Add-on nicht permanent gepflegt und an Änderungen angepasst, wird Firefox oder das Add-on nicht mehr korrekt oder gar nicht mehr funktionieren.
Einen (guten) Überblick über den aktuellen Stand der Add-ons ist hier zu finden:
Add-ons WebExtensions List.
Are we WebExtensions yet?
Mozilla ist nicht in der Position wie Google mit Chrome, die den Browser 'start from scratch' entwickeln konnten und über Android die Plattform haben/hatten, um ihn am Markt zu positionieren/durchzusetzen. Die Option wäre gewesen einen neuen Browser auf Basis von
Servo zu entwickeln und Firefox einzustellen, das Ergebnis wäre sicher nicht gut gewesen, da es schwierig ist, einen neuen unbekannten Browser zu etablieren.
Die hier schreiben sind ein kleiner Teil der Anwenderinnen/Anwendern, den normalen und damit allermeisten Anwenderinnen/Anwendern geht es um Geschwindigkeit und nicht um Add-ons.
Zu den Benutzerzahlen von Chrome:
Die meisten - fast alle in meinem Umfeld - verwenden Chrome, da er unter Android (in den allermeisten Fällen) der Standard-Browser ist. Hinzu kommt, dass er als Crapware installiert und als Standard-Browser eingestellt wurde/wird? Dies sorgt dafür, dass er verwendet wird, da nur wenige einen anderen Browser installieren. Interessant dabei ist, dass es den meisten egal ist, ob der Browser anpassbar ist und es Add-Ons gibt. Er wird verwendet wie er ist, so wie den meisten auch der Datenschutz egal ist. Daher haben im Prinzip alle bereits verloren, da Alphabet Inc. / Goolge ihre Marktmacht ausnutzten uns sie keiner daran hindert - aber die Rechnung kommt noch.
Vivaldi:
My friends at Google: it is time to return to not being evil
A monopoly both in search and advertising, Google, unfortunately, shows that they are not able to resist the misuse of power.
Über den Entscheidungen kann man diskutieren, aber alle die nicht Chrome verwenden, setzen ein klares Zeichen gegen die Dominanz von Alphabet inc. / Google, um ein freies und offenes Internet zu erhalten. Wer Chrom(e|ium) nutzt, unterstützt damit das Webkit/Google-Monopol. Da es in einem anderen Thema aufkam, Facebook ist bereits daraufhin optimiert. Wo das hinführt sollte jedem klar sein. Es gilt wer kämpft, kann verlieren, wer nicht kämpft, hat schon verloren.
Firefox ESR
Alle, die nicht auf Version 57 gehen wollen, sollten die ESR-Version verenden, da diese Sicherheits-Updates erhält. Dies funktioniert bis zum
02.07.2018.
RapidRelease/Calendar
[TABLE="class: cms_table"]
[TR]
[TD]quarter[/TD]
[TD]merge date[/TD]
[TD]central[/TD]
[TD]beta[/TD]
[TD]release date[/TD]
[TD]release[/TD]
[TD]ESR[/TD]
[/TR]
[TR]
[TD]Q4[/TD]
[TD]13.11.2017[/TD]
[TD]Firefox 59[/TD]
[TD]Firefox 58[/TD]
[TD]14.11.2017[/TD]
[TD]Firefox 57[/TD]
[TD]Firefox 52.5[/TD]
[/TR]
[TR]
[TD]Q1[/TD]
[TD]22.01.2018[/TD]
[TD]Firefox 60[/TD]
[TD]Firefox 59[/TD]
[TD]23.01.2018[/TD]
[TD]Firefox 58[/TD]
[TD]Firefox 52.6[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]12.03.2018[/TD]
[TD]Firefox 61[/TD]
[TD]Firefox 60[/TD]
[TD]13.03.2018[/TD]
[TD]Firefox 59[/TD]
[TD]Firefox 52.7; 59.0[/TD]
[/TR]
[TR]
[TD]Q2[/TD]
[TD]07.05.2018[/TD]
[TD]Firefox 62[/TD]
[TD]Firefox 61[/TD]
[TD]08.05.2018[/TD]
[TD]Firefox 60[/TD]
[TD]Firefox 52.8; 59.1[/TD]
[/TR]
[TR]
[TD]
[/TD]
[TD]
02.07.2018[/TD]
[TD]
Firefox 63[/TD]
[TD]
Firefox 62[/TD]
[TD]
03.07.2018[/TD]
[TD]
Firefox 61 [/TD]
[TD]
Firefox 59.2[/TD]
[/TR]
[/TABLE]
Mozilla: Firefox Extended Support Release FAQ
ESR Download
Vorgehen:
- Die ESR-Version parallel zur Release-Version installieren.
- Ein Backup vom Profil erstellen - es reicht kopieren und einfügen
- Die ESR-Version öffnen. Dabei wird das Profil geladen. Es kann sein das Add-ons manuell aktiviert werden müssen.
Es ist egal wie viele Versionen von Firefox installiert sind, dass wesentliche ist das Profil. Wird das Profil nicht beim Öffnen (mit -p -P) von Firefox angegeben, wird dasselbe Profil verwendet. Die Nutzung desselben Profils funktioniert normal reibungslos, eine Beschädigung kann aber dennoch nicht komplett ausgeschlossen werden. Verwende für die Nightly- und Release-Version, die sogar parallel laufen, ein eigenes Profil, da sich Einstellungen und Plugins, wie Widevine, der Versionen unterscheiden und bei jedem Wechsel umgestellt werden müssen.
Zu NoScript:
Dass Add-on ist leider nicht rechtzeitig fertig geworden:
development build
Before Firefox 57 is released in the stable channel, a pure WebExtension NoScript will be available an you'll be automatically migrated to it.
Zu Stylo für Firefox für Android
Stylo is built as default even if Fennec/Android
Hi, all.
You know, stylo (Quantum CSS) is turned on Firefox Desktop only. Stylo team is working very hard for Android too, then all reftests and mochitests are passed now even if Fennec/Android.
So I would like to turn on stylo build on Android of Nightly channel for feedback. Although the preference still keeps off as default on 58 cycle, it will be turned on 59 cycle.
After landing bug
1411802 [*1], you can enable stylo with layout.css.servo.enabled=true via about:config even if Android.
Also, this change is nightly channel only. Even if 58, beta and release channel for Fennec don't build stylo due to package size (incremented size is 1.6MB when using NDK11c's gcc).
And, developers don't require additional build config after this change. But you might require ./mach bootstrap if you don't install clang (for bindgen) yet. Of course, we can use --disable-stylo not to build sytlo.
If you want to know current status for Android/stylo, please watch bug
1366049 [*2] that is meta bug.
-- Makoto Kato
[*1]
1411802 Build stylo on Android as default - RESOLVED FIXED in Firefox 58
[*2]
1366049 enable Stylo for Android -
Siehe auch
Quantum/Stylo