Tag Archives: internet explorer

The Windows 10 web browser story: it’s complex

Microsoft’s Jason Weber has posted details of the web browser story in Windows 10.

There will be two browsers and two rendering engines in Windows 10:

  • Project Spartan is the “universal app” version of the browser, the successor to Metro IE.
  • Internet Explorer will remain.

The two rendering engines are EdgeHTML (new) and MSHTML (old). Both engines can be used in either browser, so even the “Project Spartan” browser has a compatibility mode. Both browsers default to the new rendering engine.

image

However, only Internet Explorer supports features such as ActiveX controls and Browser Helper Objects, so some legacy web sites and applications will only work properly in IE.

For details of what EdgeHTML supports, see the status page.

Microsoft has been plagued by the “coded for IE” problem, where sites deliver inferior content if IE is detected – even where IE is fully capable of rendering the up-to-date content. Hence this comment:

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.

It is unfortunate that Windows 10 will still have two web browsers, since this is a point of confusion for users. A lot will depend on presentation and defaults; if Microsoft can hide desktop IE so it is only used by those organisations that know they need it, that would be a good thing – presuming that Project Spartan offers a decent experience when used on the desktop.

There is a debate in the comments to Weber’s post about whether Microsoft should cease developing its own browser:

This looks like chrome. Please contribute to chrome if you want to make the web browser better. All this does is increase development costs by having to support another browser. Enough damage has been done by IE. Please stop development.

and the counter:

No, sane developers don’t want a single engine.

People want different engines that pushes each other forward, make things in a standard way (not like Chrome) and allows to check if the problem is their code or a bug in the browser.

My perspective on this is that Google already dominates web search and if Microsoft were to adopt its browser engine, there would be increased risk of Google dictating whatever standards suit its own purpose – just as Microsoft did in the dark days of stagnant IE development. Microsoft’s energetic development of IE is actually good for Google and for the rest of us.

A bug in embedded Internet Explorer in Windows 8

Long-time readers of this site may remember that I did some work on embedding Internet Explorer, and its core rendering component MSHTML, in .NET applications. The code is still online.

I noticed that it does not work properly in Windows 8 Consumer Preview. Specifically, plain HTML works but you can no longer apply external CSS stylesheets. I reported the bug here (sign-in required).  I did not use my own component, but rather the standard WebBrowser control. I have appended the code to reproduce the bug in case you cannot see the report.

Microsoft has now responded as follows:

We were able to validate your feedback. However, based on the limited impact this bug may have, we will not be able to address this bug during this release.

This status is also known as “won’t fix” and gives me pause for thought. How many other little bugs are there which Microsoft is not fixing, but which break a certain number of applications?

If you are one of those few people using embedded IE in an application, I suggest checking Windows 8 compatibility now to avoid any unpleasant surprises.

Perhaps it would be preferable to use WebKit or Gecko (Mozilla) rather than IE in any case. There is a thread on stackoverflow that discusses some options. OpenWebKitSharp looks promising.

Code to reproduce the bug:

Create a Windows Forms application in C# in VS 11. Add a Webbrowser control and two buttons, and an OpenFileDialog control. Also add a reference to the COM library Microsoft HTML Object Library.

Here is the code for the first button that loads some HTML:

string sHTML = "<html><head><title>Some title</title></head><body><p>Some text</p></body></html>";
this.webBrowser1.DocumentText = sHTML;

Here is the code for the second button that applies a stylesheet:

openFileDialog1.Filter = "CSS files|*.css";
if (openFileDialog1.ShowDialog() == DialogResult.OK)  {
mshtml.HTMLDocument doc = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
doc.createStyleSheet(openFileDialog1.FileName);
}

This is the stylesheet I am applying:

body
{
    font-family: Arial;
    font-size: 18pt;
}

To reproduce, run the application. Click the first button to load the HTML. Then click the second button to apply the stylesheet. In Windows 7 and earlier the stylesheet is applied. In Windows 8, the stylesheet is not applied.

UPDATE: It seems this bug was fixed in Windows 8 RTM, despite the “will not fix” designation. Good.

How Microsoft’s Office Web Apps were written in C# and compiled to JavaScript, maybe

While researching another product I came across this 2009 tweet from Microsoft’s Nikhil Kothari:

Office 2010 web apps – perhaps one of the most ambitious script# projects!

Script# is loosely equivalent to the Google Web Toolkit, but whereas GWT compiles Java to JavaScript, Script# compiles C# to JavaScript. According to the site:

Script# is used extensively by developers within Microsoft building Ajax experiences in Windows Live, Office to name just a couple, as well as by a external developers and companies including Facebook.

I had come across the project before, but was waiting to see if would evolve beyond what looks like a personal project for Kothari. It is hosted on http://projects.nikhilk.net rather than on an official Microsoft domain, and the latest release is 0.6.2. In other words, it does not have the look of a project that you would recommend for production work, interesting though it is. Nor is there much public activity around Script# that I can see, though there is a CodePlex site dedicated to improving its JQuery support.

Seeing Kothari’s tweet though raises several questions.

  • Did Microsoft really use it for Office Web Apps, a high profile project which is a key part of Microsoft’s cloud computing strategy?
  • Is there another, more up-to-date version of Script# that is used internally and which may one day burst into the public arena?
  • How might it impact the Silverlight vs HTML5 debate, if Microsoft comes up with a C# to JavaScript compiler in Visual Studio that lets developers code in .NET but deploy to cross-platform JavaScript?

I am sure there are readers of this blog who know more than I do, so by all means let me know.

Internet Explorer 9 Preview gets to 95% on Acid 3

Microsoft has released the fourth platform preview for Internet Explorer 9, which you can download here. This is the last preview before the beta release, expected in September.

When IE9 was first previewed, back in March, it scored only 55% on the Acid3 standards test – well ahead of IE8 which scores around 20%, but far short of rivals like Google Chrome and Apple Safari which achieve full marks. Mozilla Firefox is at 94%.

Acid 3

The new preview is at 95%. IE9 is now up there with them – but why not 100%?

According to UK Web Product Manager Mark Quirk, it is down to three features, two of which are related to SVG (Scalable Vector Graphics). Two points are lost because of SMIL (Synchronized Multimedia Integration Language) presentations, which Microsoft does not intend to support because a similar feature will be part of CSS in future. Two points are lost because of SVG fonts, which again Microsoft does not intend to support because it sees WOFF (Web Open Font Format) as the future standard here. One point is lost because of the inability to draw SVG fonts on a path, though there are other ways to draw fonts on a path.

The bottom line: IE9 will most likely stay at 95% right through to its final release.

Incidentally, IE9 JavaScript performance is wildly faster than IE8, thanks to the new “Chakra” engine. IE9 is on the left, Firefox 4 on the right :

image

So when will we get IE9? Although it is not long to September, there is a major difference between the preview and the coming beta, which is that the preview does not have a full user interface. It is mainly to show off the rendering and JavaScript engine. Therefore we can expect new features in the beta versus the preview. Despite that, Quirk says that Microsoft intends the beta to be “good quality for any user”, not just for brave developers and testers.

But how long before the final release? Microsoft is not saying, though when I suggested the first half of 2011 as a reasonable guess, Quirk reminded me that the beta will be high quality and that the release should therefore follow “not too long” after.

Since we will get much of HTML 5 in IE alongside the other popular browsers, do we still need Silverlight?

“As the number of the things you can implement with HTML clearly goes up, the need for Silverlight and Flash goes down,” said Quirk, though he added hastily, “The value that those players add needs to go higher.”

I’d add that even if IE9 is all that we hope, it will take years before older versions fall out of use. Recently the UK government said it will stick with IE6, and whatever you think of that decision, it shows how hard it is to get browsers upgraded everywhere. By contrast, plug-ins like Flash and Silverlight get updated rather fast. I noticed on Riastats today that over 50% of browsers now have the latest Silverlight, and 39% already have Flash 10.1 – over 90% have Flash 10 or higher.

image

If you combine that issue with things like video playback that are problematic even in HTML 5, it suggests that plug-ins will be with us for the foreseeable future, though it is quite possible that their use may decline.

Another factor is tool support, mature for Flash and Silverlight, but not for the newest features of HTML. After IE9 appears, will Microsoft come up with tools that properly support it, in Expression Web and Visual Studio? “We have to, it’s as simple as that,” says Quirk, though he adds, “we haven’t said when.”

Why we love to hate Microsoft

Mary Branscombe has an excellent ZDNet post on Why do we (love to) hate Microsoft, and asks:

What would Microsoft need to do and say to you for you to be happy to call yourself a fan?

In part she’s reacting to Frank Shaw’s Microsoft by the Numbers in which he highlights the success of Windows 7, and makes the point that Windows netbooks will likely outsell Apple iPads by 7 or 8 times in 2010, that Linux has not ousted Windows either on the desktop or the server, and that Nokia smartphones will likely outsell iPhones by 2.5 times in 2010.

That last one is interesting. Why is Shaw puffing Nokia, when he is VP corporate communications for Microsoft? Well, the enemy of my enemy applies; it’s a jibe at Apple.

Unfortunately for Shaw, Nokia itself admits that Apple iPhone and Google Android are hurting its market share, or at least that is how I interpret this remark:

Nokia now expects its mobile device value market share to be slightly lower in 2010, compared to 2009. This update is primarily due to the competitive situation at the high-end of the market and shifts in product mix.

Nokia is being driven down-market. The same thing has happened to Microsoft in the laptop market, with the high-end going to Apple. This is a worry for both companies, since if a company becomes known as “the best” in a particular sector, it may well extend its market share simply by lowering prices or introducing cheaper product variants. This happened to some extent in the portable music player market – only to some extent, because Apple is still more expensive than most of its competitors, but its market share is now huge.

I digress. Here are a few observations on the ZDNet post. First, has Microsoft really changed as stated?

Microsoft is still paying for the bad old days of arrogance and dubious business practices. I think they’re the bad old days – I spend a lot of time talking to Microsoft insiders, partners and competitors and the attitudes I see have changed, inside and out.

The trouble is, Microsoft is so large and complex that it is hard to generalise. I think of it more as a set of united (or disunited) states than as a single corporate entity. This has always been the case – at least, as long as I can remember, and I don’t go back to the very early days.

I can believe that regulation has mitigated the worst practices of the past. But why on earth is Microsoft suing Salesforce.com (and getting itself counter-sued)? It’s terrible PR; it looks as if Microsoft wants to compete in the courts and not on product quality. If it wins and hurts Salesforce.com, what is the benefit to the industry? I realise Microsoft is not a charity, but we are talking business ethics here.

More broadly, there are two separate topics that need to be addressed. One is about the quality and prospects for Microsoft’s products and services, and the other is about how it is perceived and why.

I’ll take these in reverse order. Microsoft has history, as Mary Branscombe says, and more history than just Clippy. It’s the perceptions of the web community that are most visible to many of us, and the piece of history that counts for most is over the web browser. Microsoft beat off the competition, then froze development, an evil act that is particularly hard to forgive because of its cost in terms of devising workarounds for web pages. Yes, that’s changed now, and we have had IE7, IE8, and the promising IE9; but has Microsoft convinced the community that it would not do the same again if it had the opportunity?

There are other things I can think of. The whole Office Open XML (OOXML) saga, and hints that Microsoft is not following through on its promises. The BlueJ incident.

There is also the question of pricing, especially for business users. When I reviewed a Toshiba Netbook recently I figured that installing Windows Pro (to join a domain) and Office would cost more than the hardware. I suppose you cannot blame a company for charging what the market will bear; but when the commodity software costs more than the commodity hardware, you have to wonder whether monopolistic pricing is still present.

OK, what about product quality? I tend to agree that Microsoft often does better than it is given credit for. Windows 7 is good; Visual Studio 2010 is great; Silverlight 4 was a bit rushed but still impressive, to mention three offerings about which I know a good deal.

Nevertheless, Microsoft still had deep-rooted problems that I’ve not yet seen addressed. I’ll mention a couple.

First Microsoft still has an OEM problem. Going back to that Toshiba Netbook: it was nearly wrecked by poor OEM software additions and the user experience of a new Windows machine often remains poor. Many users do minimal customisation and as a result get a worse experience of Windows than they should. Apple will carry on winning if this is not addressed.

Second, Microsoft is conflicted, caught between the need to preserve its profits from Windows and Office, and the need to keep up with the new Cloud + Device model of computing. It is drifting towards the cloud; and developments like Office Web Apps and other one about which I am not allowed to tell you yet are encouraging (wait until next month). This issue will not go away though.

Third, mainly as a result of the above, Microsoft still does not convince when it comes to cross-platform. Silverlight is cross-platform, sure; except on the Mac you don’t have the COM integration or any equivalent, sorry, and on Linux, well there’s Moonlight or maybe we’ll work something out with Intel. It is the Windows company. Having said that, I put the Live Messenger app on the iPhone 4 I’ve been trying and it’s great; so yes, it sometimes gets it.

What can Microsoft do in order to be better liked? The key to it is this: ensure that our interactions with the company and its products are more often pleasurable than painful. Windows Phone 7 will be an interesting launch to watch, a product where Microsoft has made its best effort to break with past and deliver something users will love. We’ll see.