Dajbych.net


Projekt Spartan, 3. díl – nové jádro

, 5 minut čtení

Příští we­bový proh­lížeč od Mi­crosoftu bude mít přepra­co­vané já­dro. Jedná se o změnu, která v dějinách IE nikdy ne­nastala. Nové já­dro pot­lačí zpět­nou kom­pat­i­bil­itu ve prospěch stan­dardů. Uži­va­tel by neměl nic poz­nat, vývo­jář se neb­ude muset zabý­vat vykreslo­vacími režimy a správce sítě už neb­ude mít prob­lémy s kom­pat­i­bil­i­tou in­tranetu po up­gradu proh­lížeče. Ste­jné am­bice měl už In­ter­net Ex­plorer 7. Proč to tenkrát nevyšlo a proč si Mi­crosoft myslí, že to ten­tokrát vyjde?

min­ulém díle jsem psal o nástro­jích, které umožňují provést up­grade proh­lížeče ve firem­ním prostředí a za­cho­vat přitom kom­pat­i­bil­itu in­tranetu. V tomto díle se budu zabý­vat novým já­drem bu­doucího proh­lížeče.

EdgeHTML

Cílem pro­jektu Spar­tan je vytvoření nového já­dra we­bového proh­lížeče, které nahradí současný Tri­dent. Kni­hovna MSHTML.dll je zas­taralá a nahradí ji Edge­HTML.dll. Příči­nami jsem se zabý­val v prvním díle.

Pro domácího uži­vatele bude Edge­HTML to jed­iné, co bude moci použí­vat. Ve firem­ním prostředí bude možné pro určité domény z Inter­netu vynu­tit starší MSHTML. Současně se bude MSHTML použí­vat pro in­tranet.

V čem se liší?

Edge­HTML se od MSHTML odlišuje mno­hem více, než Blink od We­bK­itu.

Co všechno to rozbije?

Nic, pro­tože se Edge­HTML bude cho­vat jako moderní proh­lížeč. Se vším všudy. To zna­mená, že větve kódu nap­sané speci­ficky pro IE se neb­u­dou vykoná­vat. Od­s­traněno bylo přede­vším to, co vývo­jáři použí­vali k de­tekci IE. Takže věci jako tyto neb­u­dou fun­go­vat.

document.all document.compatMode navigator.userAgent.indexOf('MSIE') > -1

Tím se Edge­HTML zásadně liší od toho, s čím přišel IE 7. Ten sice opravil mnoho chyb, ale současně s tím stále fun­go­valy (špatné) de­tekce pro IE 6. Kdo použí­val pod­míněné ko­men­táře, toho to trápit ne­muselo. Fakt je ale takový, že web je plný chyb a chybná de­tekce proh­lížeče se pro­jevila v mo­mentě, kdy vyšel IE 7 a ne už ve chvíli, kdy se web testo­val na IE 6.

Proč Microsoft nepoužil WebKit?

Pro­tože vyjít z já­dra Tri­dent bylo mno­hem výhod­nější. Třeba už jen proto, že vývo­jáři IE Tri­dent moc dobře znají. Navíc před­s­tava, že Chrome a Sa­fari používají We­bKit, je velice mylná. Chrome používá Blink, což je fork We­bK­itu, a Sa­fari používá port We­bK­itu. Jak Chrome, tak i Sa­fari použí­vají vlastní javascriptové en­giny, které ale ne­mají tak do­brou pod­poru ES6, jakou má Chakra. Takže ke sjed­no­cení webu by to vůbec nepřis­pělo. Naopak by to mohlo zpo­ma­lit jeho vývoj, jako se stalo v dobách IE 6.

Je to definitivní konec verzování?

Zdá se, že ano. Web ve skutečnosti už dlouho fun­guje ji­nak. Nekon­troluje se číslo verze, ale pod­pora konkrétní tech­niky. Jak se ale může konkrétní tech­nika vyví­jet, opravo­vat, nebo vylepšo­vat? Jedn­oduše nemůže. Musí se při tom za­chová­vat zpětná kom­pat­i­bilita a ta staví poměrně úzké man­tinely. V dnešní době se stan­dard prak­ticky zakonz­ervuje v mo­mentě, kdy se začne masově použí­vat. V bu­doucnu nevznikne jeho nová verze, prostě se vymyslí něco jiného, co ho nahradí. Tak web dnes fun­guje a tomu se musí proh­lížeče přizpů­so­bit. A ne­jen ty, ale i výrobci pro­ce­sorů v zařízeních, na kterých běží we­bový proh­lížeč.

4. díl – vylepšení v JavaScriptu