Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News A Developer’s View on Microsoft Edge

A Developer’s View on Microsoft Edge

This item in japanese

Microsoft Edge started as a IE fork but later departed considerably from it in an attempt to break with the past and legacy Internet technologies, removing 200K LoC but adding other 300K. Microsoft says they want “better interoperability with other modern browsers, improved performance, security & reliability, and reduced code complexity.”

Edge will run on all Windows devices with different form factors and input types, mouse, touch and pen. While IE11 will be included in Windows 10 for legacy purposes, the main browser will be Edge. Microsoft recommends developers to target only Edge for new projects.

There are two Chakra binaries now: the old one (jscript9.dll) provides backwards compatibility for enterprise applications, and the new one (chakra.dll) will provide interoperability from this point onwards, eliminating document modes and MS-specific extensions, ever green being supported by regular updates, and promises to be faster and follow web standards.

EdgeHTML is the new rendering engine, having started as a fork of Trident but moving away from it. Trident development is stopped, and only security fixes and major reliability issues will be addressed.

Edge won’t support plug-ins other than a built-in PDF reader and Flash which will be updated through the Windows Update mechanism. In other words, no Silverlight, no Java. Also, no ActiveX, Browser Helper Objects, VML, VBScript, IE8 layout, DirectX Filters nor Transitions.

The following extensibility points will be replaced with modern ones: Pluggable Protocols, Shell Helper API, Active Documents, Custom Download Managers, Custom Security Managers, MIME Filters, Custom Print Handlers, Explorer Bars, Custom Context Menus (via registry), Timers, Accelerators, and others. Over 200 APIs have been removed, some related to vendor prefixes which are no longer supported by Microsoft, except for some legacy cases. Microsoft is in talks with other browser vendors to introduce experimental APIs as a solution for testing the waters with new features until they become standards, at which point they are implemented by all browsers. This would eliminate the need for vendor prefixes. More details can be found out from this Web Compatibility Summit 2015 video (min. 31).

Edge has implemented a number of ES6 features, including: Classes, Numeric Literals, Math, Number, Object, RegExp and String Built-ins, Promises, __proto__, and Proxies. A number of features are under consideration: Modules and Subclassing.

Asm.js has been one of the top 10 features requested by developers and expressed through the Edge User Voice group. And Microsoft added support for Asm.js in Chakra starting with build 10074 of Windows 10 Insider Preview. Because of Asm.js, Edge is 3 times faster on Unity Benchmark and twice as fast on a zlib test compared to IE11, according to Microsoft.

After the initial launch this summer, Microsoft plans to add other features to Edge, such as Object RTC, Pointer lock, more support for Cortana and extensions. There is little detail on the later other than they will be based on HTML and JS, but Microsoft showed the Reddit Enhancement Suite Chrome extension running on Edge, mentioning that it required minimal changes to make it run on their browser.

In terms of speed, Edge performs better than Chrome and Firefox on JetStream and Octane 2.0 benchmarks, according to Microsoft.

The Edge Status page shows the current status of ~45 features implemented, in development, or under investigation. The Edge Dev website is a good starting point for finding out more about this browser.

The RemoteIE site enables developers to test their website on the latest (dev channel) Edge running on Windows 10 Technical Preview for Enterprise. 

The Stack Overflow edge forum is dedicated to questions and answers on Microsoft’s browser.

Rate this Article