Microsoft Explains Legacy App Support in Microsoft's Upcoming Spartan Browser
Microsoft shed some light about its upcoming Spartan Web browser this week.
The new browser, code-named "Project Spartan," is being built for Windows 10, although it isn't part of the latest Windows 10 preview release (build 9926). Spartan will exist alongside IE 11 when the finished Windows 10 product gets released, which is expected to occur sometime in the latter part of this year. A preview of Spartan is expected to arrive in a coming Windows 10 preview release.
Many of Microsoft's answers about Spartan were at the technical level for developers in a Twitter #AskIE thread on Tuesday. However, Jacob Rossi, a senior engineer on the Microsoft Web platform team, provided more general details in a Smashingmagazine.com post this week.
Spartan and Legacy Support
Rossi shed more light on how Microsoft plans to deliver a new Spartan Web browser while also permitting organizations dependent on older Internet Explorer technologies to retain compatibility with their legacy Web apps and intranet sites.
The Spartan browser will have a new rendering engine, called "EdgeHTML," which is the result of Microsoft forking of the Trident engine code used for Internet Explorer. Spartan will contain both engines, the new EdgeHTML one as well as the legacy Trident engine called "MSHTML."
Organizations will be able to use the Spartan browser even if they have legacy IE support issues to address. When legacy support needs arise, Spartan will be capable of running the old IE Trident engine via Enterprise Mode. Microsoft's Enterprise Mode technology is an IE 11 solution that emulates earlier IE browser technologies all of the way back to IE 5 for compatibility purposes.
"We want enterprises to be able to use Spartan too," Rossi explained. "For them, Trident compatibility (e.g. with legacy line of business sites) is critical. So Spartan can load Trident through Enterprise Mode for those sites. That helps keep their mission critical stuff working while the web gets the latest modern engine, EdgeHTML."
Rossi added that "we will not be getting rid of Trident." It'll be around to support legacy enterprise sites. "This dual-engine approach enables businesses to update to a modern engine for the web while running their mission critical applications designed for IE of old, all within the same browser."
IE also will contain both rendering engines, so the natural question is, Why would Microsoft be planning to sustain two browsers? Why not just stick with Spartan, going forward? Microsoft's engineers did not answer that question directly, although the heavy suggestion in their comments is that Spartan will let Microsoft jettison a lot of old IE code, producing a more lightweight browser. A Microsoft blog post pointed to a blog post by Justin Rogers, a developer on the Spartan project, who highlighted that idea. Rogers suggested that Spartan will allow Microsoft to remove so-called "undead code" that can lead to browser crashes.
Rossi explained that the launch of Spartan will highlight Microsoft's efforts in supporting Web standards. IE tends to remind developers of Microsoft's older and quirky implementations, he added. Spartan does away with the old document-mode support approach in IE, for instance. Spartan also drops support for VBScript, X-UA-Compatible strings, currentStyle and attachEvent legacy coding, he added. Spartan comes with a "new user agent string" that results in "surprisingly positive results in compatibility," according to Rossi. He put in a familiar Microsoft plug that Web site developers should just avoid using user agent sniffing approaches to enable browser compatibility "at all costs." Microsoft's engineering team is aiming to "ensure that developers don't have to deal with cross-browser inconsistencies" with the new Spartan approach, Rossi added.
Microsoft is planning to expand standards support with Spartan "in the near future" with support for "Web Audio, Image srcset, @supports, Flexbox updates, Touch Events, ES6 generators, and others," Rossi stated. More distant plans include support for "Web RTC 1.1 (ORTC) and Media Capture (getUserMedia() for webcam/mic access)."
Questions and Answers
Additional Spartan plans were described in Microsoft's Twitter session today. For instance, the dev team confirmed that it plans to add support in Spartan for browser extensions (also called "plug-ins").
"Yes, we're working on a plan for extensions for a future update to Project Spartan," the team stated.
The team was asked, "What are exactly and precisely the rules to trigger the old IE engine?" It's based on Enterprise Mode in IE ("EMIE"), according to the team.
"Will only honor custom docmodes for intranet sites, sites on Enterprise CV list, and when in EMIE," the team stated. "EdgeHTML will be default for the Internet and X-UA-Compatible will be ignored on internet sites."
The team was asked how frequently Spartan's engine will get updated, answering that the "exact cadence is still TBD, but our intent is to keep regularly updated along with Windows 10 as a whole."
The team was asked if Spartan would be made available for Windows 7. "Spartan is currently targeted at Win10," the team stated. "We're focused on getting ppl [people] upgraded (free) but will watch Win7 demand."
One questioner asked if Spartan would "replace" IE on Windows 10 machines. "Consumers on Windows 10 will get Spartan by default," the team stated. "IE will be available for Windows 10 and can be enabled by the user."
Microsoft's dev team was asked if the Spartan browser would be "uncoupled from Windows and be cross-platform." The team responded that "cross-plat not planned. Spartan has been designed and built to be a great showcase for features of Windows 10, like Cortana."
The team got a developer question about whether Spartan would use a different vendor prefix.
"[The Spartan] EdgeHTML engine will have a lot of ms prefixes removed; we want to use prefixes very sparingly if ever," the team stated. "We've built about:flags for experimental APIs to reduce or eliminate the need for prefixes," the team added. "More ideas being discussed."
Rossi noted that Windows 10 testers can currently try experimenting with the EdgeHTML engine without having the Spartan browser. That's done by "navigating to about:flags and enabling 'Experimental Web Platform Features," he wrote. Microsoft also has the EdgeHTML engine in its RemoteIE browser version. RemoteIE is Microsoft's browser-as-a-service implementation that's mostly designed to help developers test Microsoft's browser technologies on non-Windows machines.
Developers trying out IE in the Windows 10 preview are getting some updated F12 dev tools, according to Microsoft's announcement today. Those tools also will become available for the Spartan browser when it gets released.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.