Living on the edge – our next step in helping the web just work


Today we are rolling out a new Windows 10 preview build with significant Internet Explorer interoperability updates. In line with our commitment to interoperability and compatibility, this update includes over 2000 fixes for interoperability issues, support for 20 new platform features, and our new architecture for advancing interoperability and compatibility. We’re excited to be sharing this work at such an early stage in our development process and we look forward to hearing your feedback. We’re also rolling out this preview build to users of our new RemoteIE service, available for Windows, Mac OS X, and other platforms.

Introducing the “living” Edge document mode

The cornerstone of this update to IE is the “Edge” mode platform—a new document mode designed with interoperability at its core. With this mode, we’re applying the highly successful interoperability strategy of Windows Phone 8.1 Update to Windows 10.

As we announced in August 2013, we are deprecating document modes as of IE11. With our latest platform updates, the need for legacy document modes is primarily limited to Enterprise legacy web apps. With new architectural changes, these legacy document modes will be isolated from changes in the “living” Edge mode, which will help to guarantee a much higher level of compatibility for customers who depend on those modes and help us move even faster on improvements in Edge. The next major version of IE will still honor document modes served by intranet sites, sites on the Compatibility View list, and when used with Enterprise Mode only.

Public Internet sites will be rendered with the new Edge mode platform (ignoring X-UA-Compatible).  It is our goal that Edge is the “living” document mode from here out and no further document modes will be introduced going forward. We need your help in testing this new mode so we are enabling it on by default for a small percentage of the Windows Insider user base and those of you that manually select the mode (see below).

Edge mode introduces an interoperable UA string designed to get today’s modern Web content, and to avoid old IE-only content. We’ve also spent a lot of time ensuring that the IE platform behaves like modern Web content expects.

In cases where these changes necessarily differ from standards, we’re following through with standards bodies and other browsers to update specs and implementations to reflect the interoperable behavior.

New features in preview

Also in Edge mode are early implementations of several in development features (we’ll blog more about these in depth soon):

CSS Preserve-3D – A popular developer request, this feature enables CSS transforms on multiple elements to be composed as a part of a 3D scene rather than flattened together.

Without preserve-3d  With preserve-3d

 

Content Security Policy 1.0 CSP is the next step forward since HTML5 Sandbox in preventing cross-site scripting. Pages provide a policy via the Content-Security-Policy header. This policy defines the origins from which resources on the page (JS, CSS, plugins, images, etc) are allowed to be loaded. This adds a defense-in-depth mechanism for preventing malicious content from being injected into the page. Resources blocked by CSP are reported through F12 tools and, optionally, as a report back to the server.

CSP violations reported in F12 Tools

CSS Interaction Media Queries (Level 4) – A key component in responsive design is responsive input handling. We’ve talked before about adapting UX for input types, and this feature gives Web developers a new tool to do just that. Stylesheets can now use pointer and hover media queries to adapt UI based on the general precision of the user’s input (fine/coarse) and whether the device supports hover.

Gamepad API First previewed earlier this year, Gamepad API is now in the preview for Windows 10. Plug in an Xbox One or Xbox 360 controller and check out our demo code on GitHub.

WAV Audio This audio format uses PCM audio for lossless quality. With this release, WAV is supported in the <audio> element and will eventually be supported with Web Audio in a future release.

Selection API– We’ve improved our interoperability for the Selection object by implementing APIs like Selection.extend(), containsNode(),and setBaseAndExtent(). We have also helped get the W3C Selection API specification to First Public Working Draft and ensured it covers all of these interoperable APIs.

ECMAScript 6 Features – New language features from the latest ES6 “Harmony” draft specification:

Classes – syntax for declaring classes in ES6.

Promises – allows easier and cleaner asynchronous coding. Adds the Promise constructor, along with the ‘all’ and ‘race’ utility methods to the language itself.

Iterators – enables iteration over iterable objects (including arrays, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.

Arrow Function – the arrow (=>) provides a shorthand for the function keyword with lexical ‘this’ binding.

Math, Number, Object, String Built-ins – dozens of new utility functions and properties for manipulating and inspecting data.

Object Literal Enhancements – adds computed properties, concise method definitions, and short-hand for properties whose value is initialized to a same-named variable.

Spread – the spread operator expands iterable expressions into individual arguments. For example, a.b(…array) is roughly the same as a.b.apply(a, array).

Template Strings – string literals that allow for expressions to be evaluated and concatenated with the string literal.

Symbols – allows properties to be added to existing objects without the possibility of interference with the existing properties, unintended visibility, or with other uncoordinated additions by any other code.

Proxies – enables JavaScript programmers to implement objects with new kinds of custom behavior.

Weak Set – a set of objects such that those objects will be collected if they are not referenced anywhere else.

 

Experimental Features

Also in this release is the introduction of a new experimental features dashboard, accessed by browsing to about:flags. Here you’ll find new platform experiments that you can enable to try out the very bleeding edge of what we’re working on. Future experiments may include new standards we’re working on, interoperability fixes we’re trying out, new performance or security architectures, and more.

Given the sheer volume of changes in Edge mode, we’re going to progressively roll out the new mode by choosing a random set of Windows Insiders to get Edge while the rest remain in 11 document mode. Our data science and quality engineering teams will leverage user feedback and anonymous telemetry to guide the roll out while we make tweaks to the platform in future preview builds accordingly.

If you’re a developer coding against new features or testing for compatibility, you can head over to about:flags and choose Edge mode explicitly by setting “Enable Experimental Web Platform Features” to “Enabled” (“Automatic” restores you to the default roll out and “Disabled” lets you compare with 11 mode).

New about:flags page for enabling experimental features

At any time, developers can identify the mode a page is in via F12 tools. Note that dynamically switching between Edge and other document modes from F12 isn’t yet supported (we told you these experiments may bite!). For now, use about:flags for switching when developing and testing.

Giving Feedback

We’re sharing our changes earlier in the process than ever so we can collect your feedback to help shape the product. Last month, we introduced the IE Platform Suggestion Box on UserVoice where developers can suggest and vote on improvements to the platform. In this release, we’re adding a feedback tool right in the top-level UI. Just click the smiley face icon to “send a frown” such as reporting a problem on a site. If the page is running in Edge mode, you can also try reloading in the “compatibility mode” (IE11 behavior). As always, you can also report issues through Connect or the Windows Feedback app in the Windows 10 Tech Preview.

Click the smiley to report a web site problem

We’re excited to share with you an early look at what we’ve been working on. Join our engineering team on Twitter at 11am PST Friday November 14 where we’ll be answering your #AskIE questions, and follow along with some of the other work we’re planning at status.modern.IE.

Jacob Rossi (@jacobrossi) – Senior Program Manager, Internet Explorer


Update 11/12/2014 : Added ES6 Proxies and WeakSet to the list of features in this preview build, removed RegExp built-ins (still in development)

Comments (58)

  1. Yannick says:

    Awesome changes! I'm updating right now, looking forward to try it out live! 🙂

  2. Ward says:

    What mode will web browser applications be run in?  Historically, these have been in a compatibility mode, though you can change to an edge mode with meta tags (though the Javascript agent string still shows it as compatibility mode).

  3. Talistar says:

    we will see this changes for Win 8.1?

  4. Anderson Aroeira says:

    Thank you! Now we are talking about web browsers!

  5. VirusKA says:

    IE finally caught up to HTML5 standards

  6. Generally Positive says:

    When will IE be good enough that you will find it necessary to enable the "Send a smile" menu option? Or, is positive IE feedback frowned upon?

  7. Ficholas Norneris says:

    Cool stuff! Can't wait to try it out. Keeping my fingers crossed that in a hundred years or less Internet Explorer will be considered a 'modern browser'.

  8. Generally Positive Too says:

    Generally Positive, perhaps you can send a frown about not being able to send a smile? 🙂

  9. Jacob Rossi [MSFT] says:

    @Ward – In this preview build, Edge is only supported/tested in the browser. Windows Store apps will have Edge support in a future preview build. Legacy WebOC hosts will continue to get compat mode by default and we're still working through whether we can support Edge in that environment. Stay tuned.

    @Talistar – still working through our release plans.  If you want to try these changes on Windows 8.1, you can try out RemoteIE (http://remote.modern.ie)

    @Generally Positive – ha, I already sent a frown about not being able to send a smile. 🙂  Finding the problems is our higher order bit at the moment, but we're working on UI for smiles too.  Feel free to send positive feedback to http://twitter.com/iedevchat

  10. Rob Zuber says:

    Hello,

    Please clarify this statement: "The next major version of IE will still honor document modes served by intranet sites, sites on the Compatibility View list, and when used with Enterprise Mode only"

    If we serve a website on the internet that depends on document modes, does this mean our clients will be required to use Enterprise Mode? Or did you mean Enterprise Mode OR they can put the site in the Compatibility View list?

    If only the compatibility view list is required, can the end user place the site into this list (as they can now)?

    Thanks

  11. m_gol says:

    Does the "Experimental Web Platform Features" flag only change the documentMode to Edge or does it also affect actual support for new APIs?

  12. DVD says:

    Are there plans to introduce a proper session manager??  …one that can be saved and restored at any time in the future …pleeease!!

  13. m_gol says:

    I fully updated my Windows 10 Technical Preview copy and navigating to about:flags still shows "Navigation to the webpage was canceled"

  14. Brion Vibber says:

    Thanks — I've been wanting more frequent IE development updates to test with for a long time, and it seems like the Windows Technical Preview is delivering!

    Looking forward to Web Audio landing; it'll let me remove the Flash audio dependency in the Ogg media JavaScript shim we're working on for Wikipedia. (Patented formats are hard for us to deal with for political reasons, so no MP3, AAC, or H.264.)

  15. Mathias says:

    We are an ISV that develops a web based financial accounting and controlling software. Our software is available as on premise solution and as a cloud solution that we host for our customers.

    If IE starts to ignore document modes, you will break our application for all of our customers that use our cloud based software.

  16. Madhu Rakhal Magar says:

    I really love the way IE working in the right track….

  17. dmpy says:

    really good

  18. stupidcar says:

    @Mathias — Why not just fix it to be compatible with modern browsers?

  19. Gervase Markham says:

    What is the new UA string?

  20. Leon Meijer says:

    Great news! Please support the Content-Type for JSON, i.e. don't initiate a download prompt. It works with all other browsers.

  21. Alex Grande says:

    Nice work keep it up!

  22. Lex Lavnikov says:

    How can we disable automatic opening of IE Technical Preview tab? So annoying

  23. Ben says:

    i'am impressed

  24. planetarian says:

    @Mathias: Then make your stuff standards-compliant.

  25. Mathias says:

    @stupidcar We are working on that. However, our software is a large enterprise application, not a simple web site. We first released our software about 10 years ago, so we have to move everything from IE 5 quirks mode to edge mode. That's not something you can do overnight, it's an effort of more than 500 developer days. So no, it's not something we can "just fix".

  26. Kevin says:

    I too am concerned about the loss of compatibility mode support.  We have older internally developed applications for which there is no value in spending developer time updating to be standard compliant just to upgrade the browser.  We also have older 3rd party apps which are no longer being supported and certainly don't have the staff to fix those apps.

    All this will do is delay our ability to adopt IE11 and will keep us on Windows 7.

  27. Brian LePore says:

    @Gervase Markham,

    According to whatsmyuseragentstring.com, the default UA string in remoteIE is:

    Mozilla/5.0 (Windows NT 6.4; WOW64; Trident/7.0; rv:11) like Gecko

    Hopefully that came out correct. I can't seem to copy/paste from the remoteIE window for some reason.

  28. NumbStill says:

    @Mathias –

    Well, you had a few years to do that. Keeping your application on a compatibility mode was a very, very wrong and confining (the user to a specific browser vendor) thing to do.

    Compatibility modes were declared as deprecated over more than a year ago. Internet Explorer 5 was released 15 years ago. If you chose not to spend time on making your application work with modern browsers (plural), then you basically screwed yourself up.

    @Kevin –

    I hope your application supports other browsers. I somehow guess it does not, or else modern Internet Explorer versions would have probably run your application like a charm (or almost, with minor fixes). If I am right and you chose to confine your users to a certain browser, then this is basically your fault. Your users will not be protected, you are only screwing your users, not Microsoft.

  29. ieblog says:

    @Rob Zuber – Enterprise Mode is the best mechanism to use if your site is internet accessible yet not compatible with Edge mode.  Allowing users to change which mode your site runs in (e.g. what we call the "local Compatibility View list") puts you in a bind when you're ready to move to a standards-based/interoperable site.  So, if you must use legacy doc modes, we highly encourage you to use EM rather than ask users to put your site in their CV list. In any case, your plan should also include a strategy for how you eventually move to Edge mode. This gives you a larger audience base (e.g. your site is more likely to work in other browsers), better performance, and greater capabilities.

    @m_gol – currently, this flag enables the new edge mode, which also includes support for the new APIs mentioned above.  In the future, we'll expand these flags to control experimental features on a more granular basis.

    @DVD – sounds like a feature suggestion to post over at windows.uservoice.com/…/87567-internet-explorer

    @Brion Vibber – great to hear! I'm pumped for WebAudio too.  For formats, would you be using WAV in IE then?

    @Mathias – We definitely understand that for some enterprise legacy web apps, moving to Edge is a tall order.  Glad to hear you're working on that! While you work to make that transition, your customers can use Enterprise Mode to run your site in the appropriate legacy doc mode.  We recently expanded Enterprise Mode Site List to include all legacy doc modes (there's even an easy tool to mange site lists), check out this post for more details: blogs.msdn.com/…/announcing-improvements-to-the-enterprise-mode-site-list.aspx

    @Kevin – see my comment above to Rob and Mathias. If your internally developed apps are running on the intranet, then there's no change for you–you can still use legacy doc modes as you do today.  If instead your apps are internet accessible, then Enterprise Mode will give you compatibility without investing developer time on those legacy apps. Moving to the latest version of IE (and using intranet sites and/or Enterprise Mode) gives your employees a better, faster, and safer browsing experience for all the other sites you visit–definitely valuable IMO!   If at any time you think something in IE is blocking you from upgrading, please reach out to us and we'll try to help. Getting everyone current is one of our top goals.

    @Gervase Markham, Brian LePore – That's the IE11 UA string. To get the new UA string, you either need to be randomly selected in our roll out or just manually opt-in through about:flags. The new string is: gist.github.com/…/c9699b27df2f4e97c0bd

  30. EzzyB says:

    Is there a way to disable the Edge changes external to IE?  Enabling via about:flags simply put IE into a death spiral on my machine.  I get an error "Internet Explorer has stopped working" dialog.  Clicking Close program simply causes IE to try and reload the page resulting in the same error, rinse, repeat.  The only way I can even close IE is by ending the task.  This is happening on the default Bing Home Page.  I need a registry entry or an ini file to hack to put it back into automatic mode.

  31. ieblog says:

    @EzzyB – yikes, sorry you had a poor experience. Try Internet Options > Advanced > Reset. If IE's crashing on launch, you can also get to this option by pressing Win + R and typing "inetcpl.cpl".  This should revert back to automatic mode. We're monitoring crash reports, so hopefully we'll get your issue corrected soon.

  32. Richard Brewer (richjane@cfaith.com) says:

    I started using computers when MS-Dos was the operating system. It takes time and energy to do a think the right way. I always heard if you want something done right do it yourself. If you think about that statement that is pride and selfishness talking. Too Microsoft and all the company employees and departments involved in making Windows a successful product, Starting in 1982 to the present day, with windows 1.0, I say BRAVO for the effort and many hours you have put into this project. You have become better and more proficient at your job by many years of practice. I believe with what I am seeing with Windows 10 Tech Preview that you have a winner hands down. I have been studying Linux Ubuntu and Mint both desktop distros and I feel these are very good working OS s. I believe that when all is said and done and because you have put your best into Windows 10 it will be the best Operating System ever put in a computer.

    Thank you for your hard work and God bless you all.

    Happy Thanksgiving,

    Richard Brewer

    Tyler, TX 75706

  33. arizdev says:

    ES6 classes are in, yay! However I am unable to extend classes (e.g.  class H extend String {} ). Also when trying to define classes in the console, it always says the class is undefined. I can see it registering, the constructor shows, however for me to get the classes to work, I have to set the class definition in a variable (var Y = class Z{})

    I presume you are still working on them.

  34. Kevin says:

    @ieblog – OK, so no change for intranet apps?  I guess I missed that.  I'm good, then.  Thanks for the clarification.

    @NumbStill – I don't know your organization/situation and you don't know mine.  Take your trolling and move along.

  35. Gabri says:

    @Kevin NumbStill is right.

    You had years to upgrade you platform so don't cry now…

  36. frank stankis says:

    Allows too much tracking and doesn't serve the purpose to better inform, but to better monitor activities. Like NSA inspired, let's be REAL, ISP's are now data happy and want to know everything about one's business and sex life. Maybe I will go to opera or version 9 that is less intrusive. Really, Mozilla might be the answer if they make that a mission, for their organization. Privacy is first and foremost. Get a warrant if you need more!!!!!

  37. David Brown says:

    Have there been any changes to the JsRT API to support the new ES6 features? It would also be nice if there was support for getting and setting the backing array pointer for ArrayBuffer objects.

  38. NumbStill says:

    @arizdev –

    I noticed that "classes are out of scope" issue as well. Assigning them to a variable is one way, the other way is to simply use them within the same console evaluation, instead of using two separate console evaluations (one for declaring a class and one for using it) –

    class p(){} var p = new p();

    Of course, this is very similar to your solution. 🙂

    I guess the class is evaluated in a scope of some sort by F12 Tools and it becomes private to that scope or something. If you try to use class in an actual script (not within the console, but on a page), does it work?

  39. NumbStill says:

    Also, @ieblog – yay for getting the no cookies issue in the remote application fixed! 🙂

    Now I can actually test websites. The lack of international keyboards is the remaining issue.

    This is exciting.

  40. Brian Terlson [MSFT] says:

    @arizdev / @NumbStill – you are correct, there is a bug with let-style declarations (let, const, class) in F12 – they show up as undefined after they are declared.

    Subclassing (extending) built-ins like Date, Array, etc. mostly depends on ES6 subclassing support which we unfortunately don't have yet due to recent ES6 spec churn. You can track our progress on subclassing at status.modern.ie: status.modern.ie/subclassinges6. Note that the keyword is "extends" not "extend" in case that was the source of your troubles above.

    Let me know what else you find! Feel free to reach out on twitter too: @bterlson. Thanks!

  41. Maxim-064044 says:

    @ieblog, when the expected version of Internet Explorer 12 for Windows 7?

  42. Unhappy Mike says:

    IE team promised us Vagrant boxes, but that was the promise made by IE team. so typical :S

  43. Vagrant from modern.ie says:

    @Unhappy Mike, head over to Corey Fowler's blog to find the Vagrant boxes from the modern.IE site. Just Virtual Box provider.

    http://blog.syntaxc4.net/

  44. Jonny says:

    Smooth and fast! and this is just a preview. I can't wait to get the final version.

  45. Unhappy Mike says:

    Thanks, but they need Hyper-V support and publish it on https://vagrantcloud.com/ (or windows azure).

  46. westworld says:

    Thanx for making the new ES6 features a fact!

  47. Ahmad says:

    In future release, please add options to disable -webkit- prefixes on desktop, since it would be degrading experience and promote developers to add -webkit- only CSS. So making others focus on prefixes free websites, please add this disable option in about:flags.

    Regards

  48. NumbStill says:

    Oh… I thought webkit prefixed properties were only added to the mobile edition… This is pretty weird and surprising (it was not mentioned anywhere, I think).

    Has this accidentally slipped through, or is this intentional?

  49. Jacob Rossi [MSFT] says:

    @NumbStill – with IE on Windows 10, we've brought the interoperability work, including webkit prefixed properties, to desktop IE as well.  Data shows that properties like -webkit-transform are actually still as or more popular than their standard unprefixed counterparts.  So this is intentional!

  50. Neil says:

    Installing windows 10 ( 9879 build ) went nice and easy. The print and the color of the desk top, seems to pop right off the monitor.  

  51. hujun123qwe says:

    这是一个很好的设计,希望能解决中华局域网问题

  52. Seer says:

    Oh dear, Microsoft once again seem to be saying a big f*ck you to small business owners who are once again expected to pay developers to 'fix' their websites to once again work with Internet Explorer.

    Just die IE…it's high past time. You're old and infirm and riddled with disease.

  53. Nathan says:

    The complete removal of document modes would be a big problem for us.

    We deliver LMS courses externally and because of fscommand changes in IE10 and useragent changes in 11 it beaks several of our courses.  Currently we run them in IE9 doc mode as that seems to run everything fine all the time and makes it so that random courses don't break with every new version of IE that comes out. Many of the courses where developed by third party companies and other course publishing tools for which we may not have the source projects, tools, or copyright to re-publish. I admin in the courses they where using bad version and or feature detection behavior but that's not something I have control over.  This would not be a problem for a few courses but we have close to 800+ and that will take a long time to verify which ones are a problem and fix.  I'm a big fan of the improvements you guys have been making with IE being more standards compliant.  I run edge mode everywhere else except inside of the portion of my site that runs the LMS courses.  It would be very beneficial to have a flag to enable the doc mode from the server for these type of edge cases.  I could care less about new features on this portion of the site if the doc mode is set.  Asking the client to do enable compatibility view would be a terrible solution especially since it would then run the entire domain in compatibility view.

  54. NumbStill says:

    @Nathan –

    Internet Explorer 10 was released in September, 2012 (where apparently the problem first showed up). You had more than two years to take care of that and you postponed it. I am not sure you can blame Microsoft when you decide to postpone fixing things.

    Alternatively, have you filed a Connect issue back when you discovered the issue? If so, what happened with it?

    Also, "fscommand" was deprecated (or discouraged) and replaced with "ExternalInterface" in Flash 8 (released in 2005), so you had ten years(!) to fix those courses and switch to "ExternalInterface", but you did not.

    So, really, it is your fault. Sorry.

  55. Nathan says:

    @NumbStill

    You seem very angry and confrontational maybe you should tone that down a little.

    All I'm saying is that we receive courses from third parties that where created with third party tools.

    The problem is not in code that we created.  All the courses that run in the tools we created work fine on any browser.  

    We are even running courses we created in our tool on Firefox and Linux at one location.

    I'm not blaming Microsoft for the problems. I totally understand why the changes where made so there would have been no reason to submit a bug report.  It was actually the vendor that created the course authoring software that did bad version detection stuff doing the best they could at the time to work around the differences in IE, Chrome, Firefox not knowing that those thing would change in the future.

    I'm all for the IE team continuing to improving IE they are doing a great job and they have made it a long ways since IE6.

    The majority of our course will be fine and several that would have had problems without the doc mode being set have already been updated but there will be a handful for which we don't have the source projects and the original author/subject matter expert  is not there anymore.  They will eventually get updated but that's not my department.  All I'm saying is that the functionality will still be there anyways for compat and enterprise mode it would be nice to be able to activate it from the server side for edge cases in specific places until we get them all updated.  

    It seems Microsoft is more interested in feedback from the public recently and that we had a unique situation worth mentioning.  

    I did not meant to sound as if the sky was falling we will make it work regardless of what Microsoft does like always.

  56. MSSucks says:

    The web has "just been working" for many years – it is IE that hasn't worked with it.

    Even now these types of things that should "just work" do not with IE10. It is very slightly less rubbish than previous versions and critical features that should be updated and included are still not. It seems MS think that releasing a pathetic new version every 4 years is fast and good enough and releasing this type of bull document telling everybody what they already now is good enough – though they can't actually use it within their rubbish IE browser.

    As proved with basically all Windows version and every piece of software released by MS, they are way, way, way out of touch with technology even though they profess to be at the forefront. Being the first (to release a major OS) does not mean you are the best, or know what you are doing. You get it consistently very wrong.

  57. MuradAzizov says:

    Nice job) Many functions are working)