Published 2012-02-12 10:27 by Leif Halvard Silli.
How Chrome Frame supports its own version of Microsoft’s conditional comments and X-UA-Compatible.
How long was Adam in Paradise? Very short, compared to how long Microsoft’s conditional comment was supported by only Microsoft products. But Adam and Microsoft are on a much more even footing when it comes to X-UA-Compatible..
You may not taste the
-webkit
The Web was not empty when Microsoft defined conditional comments (CC). But they really defined it: Any browser vendor could — if they wanted — themselves implement support for such comments. Example:
<!--[if VendorX]>Code for vendor X<![endif]-->
Then Microsoft defined X-UA-Compatible. And here too, they opened up for other vendors to take part. Example:
<meta content="Browser=Value" http-equiv="X-UA-Compatible" />
The social contract and plea for acceptance was: We are open — you can implement it too. But no other did implement it. Well, that, of course, is not true …
You are outta paradise, Adama!
How did evil enter Paradise? Well, the woman and the knowledge three was already present:
<meta content="Chrome=1" http-equiv="X-UA-Compatible" />
And so, Microsoft started to pay.
And while they were in the field, Cain attacked his brother Abel and killed him.
We have now reached the stage where Google realize that, hey, there is no contract! Example:
<!--[if IE 0.0001]><meta content="Chrome=1" http-equiv="X-UA-Compatible" /><![endif]--><!--[if ÆØÅ]><meta content="Chrome=1" http-equiv="X-UA-Compatible" /><![endif]--><meta content="Chrome=IE8" http-equiv="X-UA-Compatible" />The fact that <!--[if ÆØÅ]><![endif]--> works in Chrome Frame, is quite interesting: With the exception of HTML5’s data-foo attribute, it is probably the first example — in history — of a syntactic construct in HTML, where non-ASCII is allowed to play a role.
Because, if we consider <!--[if ÆØÅ]><![endif]--> as an ordinary HTML comment, then Chrome Frame should not read its content. And from the traditionally even side’s point of view as well: This is outside Microsoft’s syntax — they allowed only Aa to Zz.
Can one look at IE10 — with its lack of support for CCs and X-UA, without thinking that Microsoft must have been extra inspired to unsupport its own legacy syntax because of Google’s canibalizing of it?
(Though, I must check: In quirks-mode, IE10 still support these syntaxes: Does that mean that Chrome Frame works in IE10 quirks mode too?)
The proprietary, but still specified, CSS -webkit prefix, is on everyone’s lips these days: Should non-webkit vendors support it, or not?
Given an initiative on Github to remove unnecessary -webkit prefixes, I don’t know if it is correct to say that Google has started an effort to make Web developers not use -webkit when it is not necessary to use it. This – we must guess – in order to save -webkit and the prefix Jazz.
For the Microsoft specific syntaxes, there really were no contract: Microsoft decided, but offered competition to buy in. In the -webkit case, there is a contract, in CSS 2.1, which says that such syntaxes will never be part of official syntax.
From that angle, it seems worse to canibalize the -webkit syntax.
But syntax isn’t sinful. What is sinful, is to create this (unsystematic) need for all these extra syntaxes.
blog comments powered by Disqus« Logical conditional comments: <!--[If HTML5]> and <!--[if !HTML5]> | Quirky IE10 and uppercased source code »
© 2013 Leif Halvard Silli