Microsoft Edge: Everything you need to know
- select the contributor at the end of the page -
In case you missed it, Microsoft Edge is now the default browser for Windows-based operating systems. This means that even if us developers and site owners don’t use Edge, it’s highly likely that many of our site visitors and users will. And that fact alone makes it important to understand the impact this will have on our sites and applications.
While the Edge team went to great lengths to ensure that the impact to existing sites and applications would be minimal, there are certain changes that will affect older applications. We’ll dive deeper into that in a moment, but first let’s take a closer look at Edge.
What is Microsoft Edge?
It’s important to note that IE 11 is available on Windows 10 for compatibility. IE may be accessed from Edge’s option menu, or the user can be prompted to open a site in it (when a site is listed in either the compatibility list maintained by Microsoft or one maintained at local network level).
For more information on this, head here.
Changes to note
The main changes that will likely impact existing sites include:
- User agent string changes
- Removal of support for legacy technologies
- No Extension model (at time of writing)
- New technology support
- Edge Web Driver
User agent string
Ideally, this shouldn’t impact too many sites, but I strongly suspect that some sites still perform different logic dependent on the browser/browser version detected (browser sniffing). For example, IE 6 users would be sent to a reduced functionality version of a site. But this approach doesn’t work so well when new versions of the browser are released, which do support the functionality.
The user agent string for IE 11 on Windows 8.1 has changed to this:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
And here’s Edge’s user agent string:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.<OS build number>
Edge’s user agent string contains a number of other browsers’ rendering engines in an attempt to camouflage it from browser sniffing logic. This change means that if you have based any logic on the IE user agent string it won’t work—this is probably a good thing as Edge supports most modern APIs and standards.
Edge drops support for a number of legacy technologies, the majority of which now have better standards-based alternatives available. Unfortunately, some of these technologies are still in use, especially in intranet scenarios (particularly in banks and government agencies).
Edge no longer supports the following:
- Active X: Out of all the technologies removed I think this one will probably have the biggest impact
- Silverlight & Java
- Browser Helper Objects: BHOs are used in extensions such as browser toolbars, Accelerators and Web Slices
- VBScript: Yep, no one will miss this one!
- attachEvent/removeEvent: These are APIs supported in IE 8, but IE9 and up uses the standards-based attachEventListener
- Many of the MS prefixed versions for technologies (such as full screen api, pointer events) have also had their prefix removed
A number of less commonly used technologies and APIs were also removed; check here for further info.
In an effort to render it as the original designer or developer intended in the good old days, a document mode told IE how to render a page by attempting to interpret the page as it might have worked in previous browsers. But Edge doesn’t have a concept of document modes; it has just one living and evolving model. As Edge is regularly updated this will continuously change, but all Edge users will have the same version—subject to Edge being able to update. If you’re using conditional document code/headers, this will become unnecessary for Edge users and you’ll want to check how your site renders in Edge.
At the time of this writing Edge doesn’t support an extension model, which also means it doesn’t support Silverlight or Java. However, Microsoft has said that a new unified model is coming.
Since Edge is an evergreen browser it will continually evolve anything. So, for the most up-to-date list of technologies supported, head over to the Edge platform status page here.
Here are some highlights from the current list:
- Arrow functions (a shorthand way of writing functions), Promises (represent the result of an async operation) and Rest parameters (allow an unspecified number of arguments available as an array)
- Srcset & Picture: New functionality to allow different image sizes to be served up dependent on factors such as resolution; picture has a similar purpose
- Video Tracks: Useful for specifying subtitles and different languages
- Object RTC : Real time communication functionality; some refer to it as the evolution of WebRTC, and Object RTC will reportedly be backward compatible with WebRTC
- Touch events: Events aimed at touchscreen-based devices
- Asm.js: Low-level optimizable set of JS, often used as target of compilation from other languages
Web Driver support
Here’s some great news: Edge now has an officially supported Web Driver, meaning it’s possible to automate the testing of your site in Edge. For more details and a “hello world” example, head here.
As you can see, Edge removes support for a number of legacy technologies and APIs to produce a lean, mean modern browser. The Edge team has attempted to ensure that the majority of changes will not impact modern sites and applications but, as it goes with any big change, there are exceptions. For sites that are impacted it’s important to remember that IE 11 is also available on Windows 10 and may be utilized for legacy scenarios.