Internet

Sådan fik Microsofts browser kant

En større kode-rengøring ligger bag Microsofts nye browser, Edge, som dropper specifikke Internet Explorer-features og omfavner webstandarder.

Efter 20 års tro browser-tjeneste bliver Internet Explorer nu langsomt faset ud og erstattet af Microsofts nye browser, Edge, der blev lanceret sammen med Windows 10. Internet Explorer 11 er stadig en del af det nye styresystem, men Microsoft lægger ikke skjul på, at det er Edge-browseren, som er fremtidens browser. Edge startede sit liv under projektnavnet Spartan som en fork, en kopi, af kodebasen for Internet Explorer. Centralt i enhver browser er en rendering engine, der blandt andet tager markup-indhold i form af HTML og formateringsinformation som CSS og præsenterer det formaterede indhold i browseren. I Internet Explorer hedder den engine Trident, og det var Trident-koden, som blev forket for at få fundamentet til Edges rendering engine, EdgeHTML.

220.000 linjers kode slettet

Ifølge Jacob Rossi, Senior Program Manager hos Microsoft, tog det 45 minutter at lave en fork af Trident-koden i Microsofts kode-repository. Efterfølgende gik et længere oprydningsarbejde i gang. Der blev slettet kode. Meget kode. Mere end 220.000 linjer.
Kodelinjer, som understøttede diverse features, der ikke er del af de gængse webstandarder, blev fjernet, og resultatet var en ren og slank engine. Eller som Microsoft-mantraet lyder, når Edge  beskrives: ”en moderne webplatform bygget med interoperabilitet og standarder som kerne”.
Den nye EdgeHTML-engine blev møjsommeligt formet af Microsoft-udviklerne, efterhånden som de skrællede lag efter lag af gammel kode væk; som en billedhugger, der langsomt finder frem til figuren gemt inde i stenen. ActiveX-teknologien blev revet ud. Browser Helper Objects blev likvideret, og support af diverse IE8-layout-særheder blev fjernet. VBScript blev elimineret. Document-modes forsvandt. Support af Vector Markup Language (VML) gik også til de evige bit-marker.

Web-crawler efter mønstre

I modsætning til starten af dette årtusinde, hvor Internet Explorer nærmest havde monopol på browser-markedet, er Microsoft i dag meget fokuseret på at følge åbne webstandarder og sikre, at websider kan anvendes med forskellige browsere som Edge, Chrome, Firefox og Opera.
Førhen tjekkede Microsoft, at Internet Explorer kunne vise de 9.000 mest besøgte websites i verden. Var renderingen af de websites ikke optimal, blev der oprettet fejlrapporter. Men da der er omkring 44 milliarder websites i verden med i alt 33 billioner websider, var den test-strategi i bedste fald mangelfuld, i værste fald arrogant. Utilfredse brugere og udviklere af mindre velbesøgte websites skumlede, når Internet Explorer ikke formåede at vise deres websider korrekt. Derfor har Microsoft skiftet strategi. Edge-browseren blev automatiseret og besøgte mange af de 44 milliarder websites, som Microsoft har kendskab til via søgemaskinen Bing. Diverse data blev opsamlet, så Microsoft-udviklerne kunne se, hvordan Edge håndterede de mange milliarder forskellige websites.

300.000 kodelinjer tilføjet

Den øvelse har indtil nu identificeret mere end 4.200 problemer, som er blevet fikset ved at ændre og tilføje kode. Derudover er der introduceret 49 af, hvad Microsoft beskriver som vigtige browser-features. Det er ting som understøttelse af Web Audio, HTTP/2 og Web RTC (Real-Time Communication). I alt blev der tilføjet mere end 300.000 linjers ny kode. Så selvom EdgeHTML startede som en fork af Trident, er der i dag meget lidt lighed mellem de to engines. Microsoft betegner forskellen på Tridents og EdgeHTML's kodebaser som større end forskellen på WebKit-enginen og Googles Blink-engine, som blev forket fra  WebKit i 2013.

God performance, extensions efterlyses

Kode-oprydningen har hjulpet markant og gjort Edge til en hurtig browser. I nogle benchmarks-tests, blandt andet i Googles egen Octane 2.0 benchmark, fejer Edge konkurrenterne Chrome og Firefox af banen.
Brugere har dog udtrykt skuffelse over, at Edge ikke havde en extension-teknologi klar ved lanceringen af den nye browser. Brugere kan ikke tilføje ekstra funktionalitet som blokering af reklamer og website-tracking, password-managers og lignende. I Internet Explorer var det muligt med teknologier som ActiveX og Browser Helper Objects. Microsoft har lovet, at Edge vil understøtte Chrome-lignende extensions bygget i HTML og Javascript, men har ikke meldt ud, hvornår det sker.