EdgeHTML
# EdgeHTML

EdgeHTML ist ein von Microsoft entwickelter proprietärer HTML-Renderer für den Microsoft-Edge-Webbrowser. Es ist ein Fork von Trident, dem alle Legacy-Codes von älteren Versionen von Internet Explorer entfernt und die Mehrheit des Quellcodes mit neuen Web-Standards neu geschrieben wurde. Die Interoperabilität mit anderen modernen Browsern wurde dabei auch größtenteils entfernt. Die Rendering-Engine, welche zunächst als „experimentell“ veröffentlicht worden war, ist seit Windows 10 Technical Preview 9879 Teil des Betriebssystems und wurde als Microsoft Edge zusammen mit Internet Explorer veröffentlicht.
Im Dezember 2018 kündigte Microsoft an, dass zukünftige Versionen von Edge nicht mehr EdgeHTML als Renderer benutzen werden, sondern auf Chromium basieren sollen. Seit Januar 2020 steht der neue Chromium-basierte Edge-Browser in Windows 10 ab Version 1803 zur Verfügung.
Am Update-Dienstag im April 2021 wird für Windows 10 ein Update veröffentlicht, mit dessen Anwendung EdgeHTML deinstalliert und der neue Edge installiert wird. Dies gilt auch für das Preview-Update im März.

## Benutzung unter Windows

EdgeHTML ist als Softwarekomponente entworfen worden, um Softwareentwicklern die Möglichkeit zu bieten, ihren Applikationen Webbrowsing-Funktionalität zu geben. Es hat eine COM-Schnittstelle für den Zugriff und die Editierung der Webseiten mit jeder Ausstattung für COM-Support, wie z. B. C++ und .Net-Framework. Damit kann man z. B. eine Webbrowser-Komponente zu einem C++ Programm hinzufügen und dann die Seite, die gerade angezeigt wird, und Eigenschaften der Elemente abrufen. Ereignisse können damit auch aufgefangen werden. EdgeHTML wird auch dafür verwendet, WinRT-Applikationen, die auf Web-Technologien basieren, zu rendern.

## Versionsgeschichte

| EdgeHTML | Edge | Release-Datum | Release-Notes |
| 12.10240 | 20.10240 | 15. Juli 2015 | Erstes Release, basiert auf Trident 7.0. Teil von Windows seit Windows 10 Technical Preview build 10049. Es ist nun performanter und unterstützt HTML5, CSS3 und ECMAScript 6. |
| 13.10586 | 25.10586 | 5. Nov. 2015 | Erstes Platform-Update, enthält weitere Verbesserungen für ECMAScript 6, Unterstützung für HTML5 und Unterstützung für Object RTC. |
| 14.14393 | 38.14393 | 2. Aug. 2016 | Unterstützung für Web-Benachrichtigungen, WebRTC 1.0, verbesserte HTML5, CSS3, ECMAScript 6 und 7 Unterstützung. |
| 15.15063 | 40.15063 | 20. März 2017 | Unterstützung für die Payment Request API, WebVR und CSS Custom Properties. |
| 16.16299 | 41.16299 | 26. Sep. 2017 | Verbesserte Entwicklerwerkzeuge (über F12 aufrufbar). |

## EdgeHTML 12

Microsoft hat EdgeHTML erstmals als Teil von Internet Explorer 11 in der Windows 10 Technical Preview Build 9879 am 12. November, 2014 veröffentlicht. Microsoft plante, EdgeHTML in Internet Explorer und Projekt Spartan (welches später zu Microsoft Edge umbenannt wurde) zu nutzen. In Internet Explorer würde es unter der Trident 7 Engine existieren, um Kompatibilitätsprobleme zu beheben. Jedoch entschied sich Microsoft, den Internet Explorer 11 in Windows 10 so wie in Windows 8.1 mitzuliefern. EdgeHTML wird daher nur in Microsoft Edge benutzt.
EdgeHTML unterstützt im Gegenteil zu Trident kein ActiveX. Es unterstützt auch keinen X-UA-kompatiblen Header, welcher in Trident benutzt wurde, um die Version festzustellen, in der eine Webseite gerendert werden sollte. Auch benutzt EdgeHTML nicht mehr die Kompatibilitätsansicht-Listen. Edge wird automatisch feststellen, ob eine Seite eine der entfernten Technologien benötigt, um richtig gerendert zu werden und würde den Benutzer empfehlen, die Seite in Internet Explorer zu öffnen. Außerdem wurde der User Agent String geändert, welcher angibt Google Chrome oder Apple Safari zu sein, jedoch auch kompatibel mit KHTML und Gecko zu sein, damit Server Edge die vollen Versionen einer Webseite senden, statt Seiten mit reduzierter Funktionalität. EdgeHTML hat auch große Performance-Verbesserungen gegenüber Trident, wodurch Benchmark-Ergebnisse oft besser sind.

### User Agents

| EdgeHTML 12 | Mozilla/5.0 (Windows NT 10.0;) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240 |
| Trident 11 | Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko |
EdgeHTML ist stärker auf moderne Web-Standards und Interoperabilität statt Kompatibilität fokussiert. Bei der ersten Release-Version auf Windows 10 gab es mehr als 4000 Interoperatibilitätsverbesserungen.

## EdgeHTML 13

Am 18. August 2015 veröffentlichte Microsoft die erste Vorschau von EdgeHTML Version 13, als Teil von Windows 10.10525, es war jedoch noch Version 12 angegeben. In nachfolgenden Updates wurde die Unterstützung von HTML5 und Cascading Style Sheets (CSS3) mit neuen Elementen erweitert. Auch unterstützt EdgeHTML 13 nun Object RTC. Hauptsächlich wurde jedoch die Unterstützung von ECMAScript 6 verbessert und einige Funktionen von ECMAScript 7 hinzugefügt. Mit dem Update für Chakra stellt Edge, laut dem Kangax Benchmark, die beste Unterstützung für ECMAScript 6 zur Verfügung. Das Ergebnis liegt bei 84 % für Edge mit 90 % der Flags aktiviert, 13 % besser als Mozilla Firefox 42, die damals neueste Version von Firefox.
EdgeHTML 13.10586 wurde in mehreren Versionen von Windows veröffentlicht. Am 12. November 2015 wurde das New Xbox One Experience-Update für die Xbox One veröffentlicht, welches Internet Explorer 10 durch EdgeHTML 13.10586 ersetzte. Es wurde am selben Tag auf Windows 10 als Teil des Updates auf Version 1511 veröffentlicht. Am 18. November 2015 wurde das Update auf Windows 10 Mobile Insider Preview veröffentlicht. Dann veröffentlichte Microsoft das Update auf Windows Server 2016 als Teil der Technical Preview 4.

## EdgeHTML 14

Microsoft veröffentlichte am 16. Dezember 2015 Redstone Build 1. Im Januar und Februar 2016 folgten andere Builds, welche alle die fundamentale Arbeit für EdgeHTML 14 darstellten. Schließlich wurde die erste Version von EdgeHTML 14 am 18. Februar 2016 als Version 14.14267 veröffentlicht. Diese Version enthält nahezu keine Änderungen in der Standard-Unterstützung, jedoch fundamentale Arbeiten für Web Notifications und WebRTC 1.0. Außerdem wurde die Unterstützung für ECMAScript und CSS3 verbessert. Es enthielt auch einige neue Flags. Außerdem erwähnte Microsoft, dass sie an VP9, WOFF 2.0, Web Speech API, WebM, FIDO 2.0, Beacon sowie vielen anderen Technologien arbeiten.
Die Veröffentlichung der finalen Version 14.14393 erfolgte am 2. August 2016 als Teil des 2016er Anniversary Updates von Windows 10.

## Leistung

Eine Rezension des letzten Windows 10 Builds von AnandTech fand große Leistungsverbesserungen gegenüber Trident, vor allem die JavaScript-Engine Chakra verbesserte sich erheblich und ist nun gleich schnell wie V8 (JavaScript-Implementierung von Google), welche auch in Google Chrome benutzt wird. Andere Benchmarks, welche sich auf die Leistung des WebGL-APIs spezialisieren, fanden, dass EdgeHTML mehr leistete als Blink (Rendering-Engine von Google Chrome) und Gecko (Rendering-Engine von Firefox).

## Kompatibilität

EdgeHTML sollte mit der WebKit-Engine kompatibel sein, welche von Apple Safari und anderen Webbrowsern wie Chrome mit der Abspaltung Blink benutzt wird.
   “Any Edge-WebKit differences are bugs that we’re interested in fixing.”
   „Jeder Unterschied zwischen Edge und Webkit sind Bugs (Fehler), an deren Beseitigung wir interessiert sind.“

## Weblink

* Microsoft Edge Developer Guide. 2. Oktober 2018, abgerufen am 28. Dezember 2019 (englisch).