( TCH | 2022. 01. 15., szo – 13:12 )

Nem, itt a GUI-ról volt szó, nem a belsejéről, ami magukat a weblapokat jeleníti meg. Megpróbálom elmagyarázni, de sajnos szar tanár lennék, de azért igyekszem.

Szóval a browserek alapvetően két részre oszlanak. Az egyik a GUI (amin keresztül a júzer tkp. irányítja a motort), a másik maga a motor. (Ami egyébként megint csak két alapvető részből áll: az egyik a HTML+CSS-ből álló struktúrák rendermotorja, a másik meg a JS VM.) Ezekhez még kapcsolódhat több más cucc is, pl. multimédia, hálózat, stb. de alapvetően ahhoz, hogy egy "standard" (HTML+CSS+JS) weblapot megjeleníts - hogy magát a weblapot megjelenítsd - ahhoz erre a kettőre van szükség (a hálózat is opcionális; egy weblap lehet offline is: file:///home/locsemege/example.html).

A Chromium eleinte a WebKit motort használta, aztán a kugli forkolta és azóta Blink van benne. E motorok köré építettek fel először GTK2-ben, majd GTK3-ban egy GUI-t, annak a saját lehetőségeivel, kiterjesztéseivel és természetesen a hálózati, multimédiás és egyéb beleintegrált cuccaival.
Tehát a Chromium az egy Blink motoros böngésző, aminek saját GTK-s GUI-ja van, tehát nem egy weblap. Az összes Chromium-deriváns (Vivaldi, újkori Opera, Brave, Edge, stb.) tkp. ezt a kombót örökli meg és módosítgat rajta ezt-azt, de belül mind egy Blink motor + egy GTK-s GUI, meg a kapcsolódó hálózat/multimédia/stb. rétegek.

Az electronos appok, mint mondtam, úgy néznek ki, hogy fogják a Chromium motorját, arra rákúrják a NodeJS környezetet, ezt beleintegrálják a programodba és utána a programodban a GUI tulajdonképpen úgy néz ki, hogy elindul egy GUI-less browserwindow (illetve a GUI annyi, hogy egy darab renderwindow), amiben megjelenik a te programod GUI-ja. Egy weblap. Ez az Electron koncepciója. De ez nem egy Chromium, csak annak a motorja; a Chromiumhoz hozzátartozik a GUI, a network, a multimédia és a többi cucc is. Ez itt egy pure webpage renderer/VM, ami a Chromium motorját - a Blinket - használja, de ez nem ekvivalens az egész browserrel.

Namármost, a Midori korábban úgy nézett ki, hogy volt a WebKit browsermotor, ami köré GTK2-ben (illetve, amikor a 0.5.11 után kijött a 6.0 (igen), onnantól GTK3-ban) építettek egy saját GUI-t, annak a saját lehetőségeivel. És ezt állították át Electron alapokra, tehát itt már a GUI is egy weblap, viszont a benne megépített GUI-nak semmi köze a Chromium GUI-jához, hiszen a Chromiumé nemcsak, hogy teljesen más, de még csak nem is Electronos, hanem még mindig GTK-s. Azt nem tudom, hogy a browser motorját is lecserélték-e WebKit-ről Blinkre, de az mindegy, mert még attól sem lesz valami Chromium, hogy a motorja ugyanaz lesz, mint a Chromiumé; ld. Otter Browser, az nem csak WebKites, hanem Blinkes is tud lenni, mégsem Chromium, mert az összes többi teljesen más.

A Midori - és tkp. bármely electronos browser - úgy néz ki, hogy van egy GUI-less minimálböngésződ és abban futtatsz egy weblapokból álló böngészőt, ami belül weblapokat tud megjeleníteni. Ez történhet úgy is, GUI-t és a renderelendő weblapokat is ugyanaz a motor jeleníti meg, de akár úgy is, hogy kettő darab browsermotorod van, amiből az egyik a GUI-t intézi, a másik a megjelenítendő weblapokat. (Nem tudom, hogy a Midorinál ez hogy van, de nem is nagyon érdekel.) Egyszóval nem Chromium, csak annak a motorjával jeleníti meg a saját GUI-ját; a Chromium maga ilyet nem csinál.

Tehát electronos browser === browserben a browser, weblapban a weblap, vagy még pontosabban: browserben lévő weblapban a browser és abban a weblapok. Van még kérdés, hogy ezért miért járna atomrakétás tarkólövés?