Rubriky: Doplňky Firefox

Další vývoj architektury Electrolysis – podruhé


V srpnu jsme psali poprvé o plánu na další vývoj Electrolysis (e10s) – Firefoxu s více procesy. Sören Hentzschel na svém blogu sepsal další vyčerpávající článek, kam bude vývoj pokračovat dál. Fungování se bude s každou letošní vydanou verzí Firefoxu zlepšovat, u některých vydání až překvapivě výrazně.

Firefox 51: současný stav

Dnes Firefox používá dva, respektive tři procesy. Jeden pro zásuvné moduly NPAPI (ten byl zaveden dávno jako plugin-container), jeden pro uživatelské rozhraní a jeden pro obsah všech panelů.

Používání více procesů můžete mít v některých případech vypnuté. Mezi možné důvody patří doplněk, který jeho autor označil jako nekompatibilní, operační systém Windows XP, nástroje pro čtení obrazovky a nebo Linux s nastaveným jazykem psaným zprava doleva (RTL).

Firefox 52: Linux a RTL jazyky, userContent.css, kompatibilita doplňků

Více procesů zprovoznila Mozilla pro jazyky psané zprava doleva ve verzi 50 pro Windows a macOS. Verze 52 tuto podporu přidá i na Linuxu.

Firefox má integrovaný velmi silný nástroj pro úpravu vzhledu webových stránek. Je to soubor userContent.css, se kterým lze na webech libovolně upravovat CSS styly. S e10s zatím toto nefunguje a Firefox 52 vše opět napraví. Pokud toto chcete využívat nyní, velmi dobrou alternativou je doplněk Stylish.

V verzi 52 dojde ještě k jednomu kroku, a to zapnutí e10s pro větší počet uživatelů s doplňky. V tuto chvíli Mozilla testuje kompatibilitu doplňků v betaverzích. Ve Firefoxu 52 nebo 53 bude e10s zapnutá i se všemi doplňky s výjimkou těch, které jejich autoři explicitně označí jako nekompatibilní.

Firefox 52 ESR

Firefox 52 vyjde také ve verzi rozšířenou podporou, která bude nadále dostávat jenom bezpečnostní aktualizace. Aby Mozilla předešla případným problémům, výše vztahované změny se do ní většinou nedostanou a z pohledu e10s bude vše ve stavu z Firefoxu 50. Výjimka bude pouze v ruské verzi, která měla do verze 51 e10s kvůli problémům vypnutou. V ESR verzi tedy bude ESR i ve Firefoxu v ruštině.

Firefox 52 bude také poslední verze pro Windows XP a Vista a všichni uživatelé budou převedeni na aktualizační kanál ESR. Ani v této verzi se ale na Windows XP víceprocesové architektury nedočkáme – zkrátka na Windows XP e10s nikdy nebude.

Firefox 53: GPU proces, nové doplňky

V nočních verzích Mozilla otestovala samostatný proces, do kterého vyčlenila veškerou interakci s GPU. Spíše než o e10s jde vlastně o součást projektu Quantum – postupné začleňování hotových věcí z experimentálního jádra Servo. Ve výchozím nastavení by se tento proces měl povolit alespoň uživatelům systému Windows.

V době vydání Firefoxu 53 také Mozilla přestane schvalovat doplňky založené na technologii XUL. Doplňky nově přidávané na oficiální server, ať ke stažení nebo pro podepsání, budou moci používat jenom WebExtensions API. Pro doplňky, které už byly na server nahrané dříve, se nic nemění až do listopadu do vydání Firefoxu 57, který bude podporovat výhradně WebExtensions.

Firefox 54: fungování s nástroji pro přístupnost, více procesů pro obsah a sandbox

Používání nástrojů pro přístupnost (typicky čtečka obrazovky) zatím znamená automatické vypnutí e10s. I na ně dojde a od Firefoxu 54 bude e10s fungovat i s nimi.

V nočních verzích také Mozilla testuje větší počet procesů pro zobrazování obsahu. Zatím jsou dva a časem by mohl počet vzrůst na osm. S minimálně dvěma procesy se počítá nejpozději na Firefox 55. Podobně je na tom sandboxování procesů. Na něm se pracuje delší dobu a ve verzi pro Windows už základ funguje. Pokud chcete o obojím vědět více, podívejte se na přednášku z DevConf.cz (záznam, slajdy).

Firefox 57: WebExtensions doplňky, e10s pro všechny

Firefox 57 nebude podporovat jiné doplňky než WebExtensions. To znamená, že doplňky přestanou patřit mezi důvody pro případné vypnutí e10s. Pro uživatele bety k tomuto omezení může dojít ve verzi 56. Všechna řešení, která se snažila o alespoň nějaké fungování současných doplňků na úkor výkonu tak budou moci být odstraněna. V nočních verzích se předpokládá, že v červnu zmizí možnost e10s vypnout. Jestli tato změna dojde ve verzi 57 až do finálního vydání jisté není.

Firefox.next: procesy kam se podíváš

Z výše uvedeného je nadevše jasné, jak moc je letošní rok pro Firefox přelomový. Úsilí věnované dalšími vývoji a zdokonalení Electrolysis (e10s) je enormní. Za oběť mu padnou staré operační systémy Windows XP a Vista, zásuvné moduly a bohužel i stávající doplňky používající XUL. Nárůst výkonu a rychlost Firefoxu by tomu měl odpovídat a WebExtensions přinesou ještě jednu možnost, a to běh doplňků v samostatném procesu. Dohromady se sandboxem to znamená výrazné zvýšení bezpečnosti. Sandbox procesů už klepe na dveře, ale samostatné procesy pro doplňky asi do konce roku neuvidíme, i když kdo ví.

17 komentářů k článku “Další vývoj architektury Electrolysis – podruhé”

  1. Lukáš napsal(a)

    Bude někdy Firefox podporovat model 1 proces = 1 panel? Nová okna prakticky nepoužívám, ale v hlavním okně mám otevřeno třeba 20 panelů. A např. Facebook v jednom z nich dokáže vytížit CPU na 100 %, čímž zablokuje všechny ostatní.

    1. Michal Stanke napsal(a)

      V tuto chvíli to není na pořadu dne, protože overhead by byl moc veliký. Ale slyšel jsem od některých lidí, že mají povoleno třeba 100 procesů na 8 GB laptopu a funguje to (pomocí předvolby dom.ipc.processCount).

    2. Josef Krásný na Facebooku napsal(a)

      1 panel = 1 proces by se mi taky líbil. 🙂 Pro přehrávání videa další proces, pro každý aktivní doplněk taky další proces.

    3. Lukáš napsal(a)

      Tak jsem zkusil dom.ipc.processCount=8 v betě 52 a spadla mi čelist, běží to fantasticky, i když otevřu třeba 20 galerií na Facebooku. 🙂

    4. Matej napsal(a)

      Dobry den,

      chcem sa opytat, preco dom.ipc.processCount=x nieje povolene v defaulte, ked je to ta najlepsia vec, aka sa da zapnut a uplne bezproblemova aj pri xy doplnkoch?..

    5. Michal Stanke napsal(a)

      Matej: Zatím zkouší v nočních vezích dva procesy – není to vyladěné a každý proces navíc je i nějaká ta spotřebovaná paměť navíc.

    6. Matej napsal(a)

      p. Stanke,

      dakujem za reakciu. mam na stable channelu nastavenu hodnotu 100 s xy addonmi a vsetko bezi ovela hladsie bez akychkolvek viditelnych problemov. Pri dnesnych min. 8-16GB RAM je to to najmenej a rozdiel je „nepozorovatelny“). Trosku zamrzi, ze vyvoj takychto podstatnych veci, ktore konkurencia pouziva uz dlho, je v pripade firefoxu tak pomaly..

  2. Lukáš Darkman na Facebooku napsal(a)

    Electrolysis je nepoužitelná věc, šíleně se seká a nefungují doplňky…

    1. Michal Stanke na Facebooku napsal(a)

      Jaké doplňky vám nefungují?

      Pokud se Firefox seká, nejlepší místo je https://www.mozilla.cz/podpora/

    2. Lukáš Darkman na Facebooku napsal(a)

      LastPass určitě, další ještě nevím

    3. Mozilla.cz na Facebooku napsal(a)

      Lukáš Darkman Potom to prosím nahlaste podpoře LastPass (https://addons.mozilla.org/cs/firefox/addon/lastpass-password-manager/ a odkaz vpravo pod screenshoty).

    4. Lukáš Darkman na Facebooku napsal(a)

      Našel jsem tam HOUBY, pokud elektrolýzu zapnu FF je prostě NEPOUŽITELNEJ ŠROT, takže ji zase musím vypnout, aby se to dalo vůbec používat :-/

    5. Mozilla.cz na Facebooku napsal(a)

      Lukáš Darkman Pokud byla vypnutá, bylo to právě kvůli doplňkům, které máte. Zkuste ji v čistém profilu a uvidíte. https://support.mozilla.org/cs/kb/Profily

    6. Lukáš Darkman na Facebooku napsal(a)

      Tak už jsem na to kápnul, stačilo zakázat LastPass a běhá to všechno vpohodě… Jenom jsem se musel dost naštvat než jsem na to přišel…

    7. Lukáš Darkman na Facebooku napsal(a)

      Je docela divný že s tím ještě nic neudělali, ty problémy snad muselo mít hodně uživatelů ne???

    8. Mozilla.cz na Facebooku napsal(a)

      To je věc LastPassu. Na jejich fóru jsem v rychlosti žádné hlášení nenašel.

  3. Karel6666 napsal(a)

    Pokud vím, aktuální Lastpass byl označen jako nekompatibilní pro e10s. Změna příjde až s FF 53, kde je doplněk přepsán pro e10s.
    V starších verzích doplněk dobře nefunguje. Takže když příjde FF 53, bude nutné aktualizovat i Lastpass.