Sunday, July 21, 2013

Interview: Why Microsoft decided to put WebGL into Internet Explorer

Interview: Why Microsoft decided to put WebGL into Internet Explorer

Interview: Why Microsoft decided to put WebGL into Internet Explorer

In the last few years, Microsoft has gone from ignoring the web browser and web standards, to embracing standards and seeing the browser as a way to outdo other platforms.

Internet Explorer head Dean Hachamovitch is as bullish about the strengths of Internet Explorer 11 as you'd expect, claiming that "The best experience of the web is on a Windows device with IE 11". And the fact that you can't get IE on Mac or Linux or Android or iOS devices? That's good news for Windows, in his opinion.

"Other browsers run here, there and everywhere. They don't run with excellence in any one particular place or on any one particular device - and that is an opportunity.

"When you put an old browser and an old browser interface on any of these shiny new devices - on a tablet, on a hybrid - you're going to run into some problems. You're going to run into a little bit of fail. You're going to notice when you browse with these other devices and other browsers that you don't have the responsiveness you have in IE 11, that you don't have the performance you want."

Multitasking in IE 11

And then there's that whole 'post-PC' thing where people want to use touch and tablets. "There are all these sites that don't quite work with touch. They work great with mouse but they don't quite work well with touch. It's really hard to u se sites and apps together on these other things - in fact it's really hard just to see two web pages at the same time, which is disappointing.

"Tabs are limited, not just in how many you can have but in what you can do with them, how you can interact with them. And it just gets more disappointing when you jack in a keyboard and mouse because it just doesn't do what you expect from a notebook, from a full PC."

Why WebGL and EME are supported in IE 11

If you want to do more than look at one website at a time, Hachamovitch thinks IE 11 and Windows 8.1 beat the competition. "IE 11 does more than one thing at a time, it does pages side by side. Si tes and apps work well together, you can go back and forth. You can have 100 tabs without really costing you battery or performance or memory in a significant way."

And if you just want to use a tablet? "It's absolutely perfect for touch. It's got stick-to-your-finger responsiveness. And it makes sure that you can do with touch everything you want to do with touch."

Why WebGL is now in

With Windows versions coming out more often, IE versions can come out more often, which should mean faster support for standards. The IE team is picky about standards though, and for a long time it rejected WebGL, using the GPU only for hardware acceleration.

The hardware acceleration gets even better in IE 11, Hachamovitch claims. "There are a lot of firsts in IE 11, around using the GPU for panning and zooming and for images. The stuff we're offloading to the GPU in IE 11, we can do now because of what we learned in IE 10."

Why WebGL and EME are supported in IE 11

But IE 11 also adds support for WebGL, and he admits he was the one the team had to convince to put that into the browser. The issue was security. "There is a very interesting security exploit that involved WebGL and Firefox for Mac; basically you went to a malicious site and it could read everything on your screen. It reads the Word document you have in another window. That's a great example of the kind of security vulnerability we were concerned about."

It wasn't until the standard changed that he would consider it. "The WebGL specification now includes technology called CORS that effectively prevents image stealing attacks."

Why WebGL and EME are supported in IE 11

The IE team also put in a lot of extra work to improve security. "We did a lot of analysis of vulnerabilities, we did threat modelling, and we have essentially a pre-screening stage. Think of it like SmartScreen for WebGL content; we screen WebGL content for dangerous and suspicious patterns."

It's also another way that IE relies on Windows. "Running WebGL on top of the latest DirectX technology provides additional security. On other devices and operating systems it's possible to overwhelm the GPU and get all sorts of bad things happenning. On the DirectX architecture there is time-out detection and recovery. If you overwhelm the GPU, instead of taking down the whole system, it will just reset the GPU. So we feel we have defence in depth and, with the changes in the standard, that makes it saf e to implement."

Caution advised

He still sounds a note of caution about WebGL, because of the complexity of programming and the possible impact on performance. "Try to imagine being a developer on Halo; try to imagine being a developer for Call of Duty or Forza where you're worried about all your image assets.

"How many triangles do I need? You're making [low-level] decisions like 'can I have fewer triangles and higher resolution images or can I get by with lower resolution images and more triangles?' to get the skin of the car looking great.

Why WebGL and EME are supported in IE 11

"Think about an aeroplane where you can see the rivets in the skin; that stuff is just flat out hard. OpenGL wasn't particularly easy, OpenGL ES wasn't particularly easy. Making it avai lable to JavaScript didn't make it any easier. It's unlikely you're going to wake up in the morning and have some gorgeous WebGL working. It's hard."

Why doesn't IE 11 have support for WebRTC, the real-time chat and video standard Google is backing? "WebRTC has had so much flux over the last few months," says Hachamovitch. Will IE support it when it settles down? "I'll just say we're very involved in those groups," he notes.

EME is in too

One standard IE 11 does support that hasn't actually been approved by the World Wide Web Consortium (W3C) yet is Encrypted Media Extensions (EME), which is a sometimes contentious proposal for browsers to support some forms of DRM. At Build 2013, Microsoft sh owed Netflix streaming content working in IE 11 without needing a plug-in, using EME.

Hachamovitch believes the technologies in the standard aren't going to change, so it's safe to implement. "It seems to be on a good trajectory," he says. But some of the discussions aren't about how EME actually works, they're more about philosophy.

Why WebGL and EME are supported in IE 11

"If you look at the series of technologies involved there are three parts. MPEG DASH is great. You want to have adaptive steaming, you want to be able to adjust to the bit rate that you can muster. There is the web crypto, so that Netflix can go 'hey I want to make sure you really are generating a key for me so that we can do the handshake'.

"No one seems to mind the web crypto one, no one seems to mind the web streaming one. And the last one has a lot more to do with business reality. I don't know if I believe in rights management philosophically. I know Netflix has contractual agreements and I have a choice. I can enable it in the browser or I can condemn everyone to have to go get an app, or a plug-in."

Having a standard way to do protected video streaming would have advantages for users as well as for developers, he suggests. "If you told Netflix 'here is the rate at which browsers are going to be able to just play this content', think about all the time and energy they could save from writing all these apps. You buy a Samsung TV that comes with a sufficient browser that it can do Netflix. Or the browser in my device could take responsibility for handling the GPU so I could watch three movies before running out of battery."

Future for IE

With all the advances made in IE, is it frustrating that there are still sites that treat IE as a legacy browser? (We've seen this with Google, Flickr and other major sites.) "There are a bunch of sites that try to detect the browser and try to special case them. That's why you hear us talk about getting the same markup. When you hand IE the same markup as other browsers, you get great performance and interoperability.

"There are a bunch of sites that say 'oh, it's IE, I want a legacy mode; here's some code I wrote in the 90s.' Our approach to that has been to build a better browser, provide better developer tools - and we have this compatibility view mechanism. As we find sites with compatibility issues we have to shim them," he explains.

"A sufficiently motivated and technically savvy user can go into the developer tools and try other browser agent strings [to see if a site works]. We try to do some of that with the compatibility view list."

Why WebGL and EME are supported in IE 11

Ironically, the rise of Android is making things better. "It's been great that you have so many different devices come into existence because sites are having to do a better job of dealing with all the different things hitting them. And that becomes a benefit for IE."

If IE 11 is so good, will we see it on other version of Windows? After all, Steve Ballmer was busy on the first day of Build pushing Xbox and Windows Phone as part of the Windows family.

"We work very closely with the Xbox team and the phone team and you can expect everything you see here is working in a secret Batman cave somewhere in Redmond," joked Hachamovitch.

More seriously, he told TechRadar,  4;We've been very clear about our support for Windows 7. IE 11 will be available for Windows 7." But the one thing he wouldn't even hint at was a date for the Windows 7 version of IE 11.

Liked this? Then heck out Windows 8.1 release date, news and features


No comments:

Post a Comment

//PART 2