Ending Expressions


Design criteria such as standard compliance, performance, reliability and security framed the design of IE8 as whole, for new as well as existing features. As a result, CSS expressions are no longer supported in IE8 standards mode. This change was announced previously on the IE blog, however, this post will provide a few more details about that decision. The following FAQ will give a quick overview of the feature, the rationale behind our design decision and what it may mean for your own site.

What is a CSS expression ?

Also known as ‘Dynamic Properties’, this proprietary CSS extension was introduced in Internet Explorer 5. Long before JavaScript libraries such as jQuery or Dojo were conceived, it allowed web developers to dynamically bind script to the page through CSS selectors. As an example, the following CSS declaration updates the background color of certain page blocks depending on the time of day :

div.title { background-color: expression( (new Date()).getHours()%2 ? “#B8D4FF” : “#F08A00″ ); }

Why end support for expressions ?

  • To comply with standards
    • Expressions are proprietary to Internet Explorer and as such not interoperable.
    • A common use-case for expressions was to fix IE bugs or to emulate those CSS 2.1 features not yet supported by the browser, for example, min-width and max-width. We have not only worked hard to fix these bugs in IE8 but our new layout engine supports the missing features natively.
  • To improve performance
  • To reduce the browser attack surface
    • Because they expose a script execution context, CSS expressions constitute a possible script injection attack vector.

Are expressions still available in IE7 and Quirks mode ?

Yes. For backward compatibility, CSS expressions are still executed in Quirks and IE7 Strict modes. But starting with IE8 Beta 2, they are ignored in IE8 Standards mode.

Pages on my web site depend on CSS expressions.  How does this affect me ?

Thanks to IE8’s new layout engine, most expressions written to work around CSS 2.1 bugs and shortcomings should no longer be needed; we expect unsupported or incorrectly interpreted properties to work in a standard, interoperable way. For those expressions supporting more specific purposes, anything they do is inherently achievable using standard JavaScript, usually interoperably and at lower runtime costs. The specifics will of course depend on your application. Based on your feedback to this post, we may visit examples in future installments.

Ending support for expressions – a feature often used to fix the very issues we have worked hard to address in this release – helps make IE8 more standard, faster and more secure for our users.

Sylvain Galineau
Program Manager

Comments (79)

  1. Sam says:

    Hurray! More interop and less proprietary! I’m staring to think that Miscrosoft isn’t so bad!

  2. Open Web Standards says:

    Don’t be so quick to celebrate, they’re just replacing one proprietary evil(haslayout, expressions and other IE only stuff) with another closed proprietary vendor lock-in evil, Silverlight.

  3. Ted says:

    OWS: yes, yes, microsoft is evil and kills puppies and so on… yawn… troll elsewhere?

    IE is making big strides in making the web platform richer…  if you don’t like silverlight, don’t use it…  if you want to uselessly whine about silverlight, at least target your complaints in the right direction.

  4. Ted the EPIC FAIL says:

    YAWN, Ted the EPIC FAIL opens his big fat mouth again.

    http://www.ecis.eu/news/2007_jan26.html

    "With XAML and OOXML Microsoft seeks to impose its own Windows-dependent standards and displace existing open cross-platform standards which have wide industry acceptance, permit open competition and promote competition-driven innovation. The end result will be the continued absence of any real consumer choice, years of waiting for Microsoft to improve – or even debug – its monopoly products, and of course high prices," said Thomas Vinje, counsel to ECIS and spokesman on the issue.

  5. Ted says:

    TTEF, "An industry consortium of Microsoft’s failed competitors complains about a Microsoft product."

    How is this remotely interesting?  If it at least referenced Silverlight at all, you could claim it was *relevent*, but it doesn’t even do that.  Quick, have someone from Adobe write up a new complaint and have ECIS sign it!

  6. Chas4 says:

    "To comply with standards",  yea

    Why Open the Web?

    http://my.opera.com/community/openweb/info/

  7. Keith Humm says:

    These should have been adopted into the CSS spec. Javascript is horrible, and basic layout is hideously easy when using dynamic expressions. CSS’ positioning is utterly absurd – clearly designed in an ivory tower.

    Unfortunately this is yet another good solid feature that’s been shunned by the sheep for being proprietary and is now being removed. What’s next, conditional comments? Yea gods we’ll have to resort to hacks to fix a standard that’s clearly very, very broken.

    No wonder I try to avoid CSS at work these days… At least with server-side development I can rely on standards that aren’t ridiculous.

  8. -TNO- says:

    @keith, An argument from ignorance is worthless, some people actually know how to use CSS; But at any rate, congratulations to the IE team on moving forward and removing a feature that is no longer needed. There is still a long way for you to go to catch up with your competitors, but at least steps are being made in the right direction

  9. Yert says:

    Silverlight has an OSS variant provided, unlike stuff like Flash. An open standard is still a standard, even if only one party controls the direction it goes in.

    Ignoring progress, such as those in some of the comments is almost as bad as not making it. Supporting progress when one who has historically ignored it (i.e. as some claim the IE project had done with version 6) is the only way to continue progress.

  10. Yert says:

    even when one has historically ignored it*

  11. Arnabc says:

    Thanks for the great work….I appreciate all your efforts…keep up the good work…

  12. IE8의 표준 랜더링 모드에서 CSS expression이 지원되지 않는답니다.

  13. I’m in shock and awe. Guys, you’re making a huge step to bringing better interoperability to the table. I’m very positively pleased with the things you are trying to accomplish with IE8.

    I know those are just words for now, words that can change any minute. But I keep my fingers crossed for all of this to happen.

  14. Jack says:

    Great work IE team!

    Could we please have a troll and off topic filter for the comments on this blog? :-)

  15. someone says:

    when will IE8 be released?

    i thought it was supposed to come at october, no?

  16. Stifu says:

    Good move.

    Keith Humm: JavaScript *was* bad, but it’s getting better and better, thanks to much improved browser implementations, as well as powerful libs like JQuery. MS even said JS was the number 1 competitor against Silverlight.

    And it seems you don’t understand what CSS is about…

  17. I think this is good news. Leave it up to scripting like javascript to render dynamic content.

  18. jbot says:

    I don’t Javascript has ever been bad. There have just been bad coders misusing it. I’m not entirely sure the new libraries are at all beneficial, since we now have a new wave of web developers who can’t programme actual JS but just regurgitate library-based code they’ve plagirised from various blogs.

  19. Juliano says:

    Sometimes I feel surprised with the things that anti-MS people says. Comparing CSS proprietary properties with Silverlight? That’s the most stupid affirmative I’ve ever heard.

  20. Mitch 74 says:

    Comments fly everywhere, it’s a bit dazzling.

    CSS is a presentational language; it MUST NOT be used as a programming language, and some may even consider pseudoclasses like :active, :focus and :hover as borderline (but they are used because it’s a reaction to user-induced action, and is actually passive).

    However, when correctly using boxes, one can actually create surprising applications and games.

    Using Javascript to change styles isn’t difficult, and is actually slightly easier than IE’s CSS expressions (you don’t have to switch from one file to the other) but also more flexible (the fastest way to change an element’s style is to do theobject.className = nameofCSSclass, with nameofCSSclass being the ‘new’ style, made with CSS).

    About Silverlight: personally I don’t/can’t use it (there’s no Silverlight 2 port for Linux), it’s merely an alternative to Flash (which does, by the way, have Free alternatives: swfdec and Gnash, which work surprisingly well); both fill a gap in current norms and still allow faster code execution.

    However: upcoming browsers have faster Javascript engines (making ActionScript and Silverlight’s equivalent lose its main interest: speed), better SVG renderers (making Flash/Silverlight vector graphics a bit redundant), and HTML’ <video> tag fills in the rest (please note that although ‘video’ is a static tag, nothing prevents you from rewriting said tag with Javascript…).

    Now, if MS could improve Jscript speed and IE’s DOM support, and add native SVG support, well, Silverlight would be anecdotal.

  21. Stifu says:

    jbot: as you just said yourself, even before libs appeared, there were already bad coders. Libs don’t change that. And JQuery is certainly remarkable, as many companies (including Microsoft!) rely on it.

  22. James S. says:

    I don’t understand:

    Q. Why are you removing this?

    A. To reduce the attack surface.

    Q. Will it be available in Quirks mode?

    A. Yes.

    In what way is the attack surface reduced, if all the bad guy has to do is use Quirks mode? Besides, are expressions JavaScript? JavaScript is already an attack surface.

    The only answer I can imagine is that it protects site designers who didn’t sanitize their input properly from another XSS vector, but that’s not really what you explain.

    I’m not a web developer, so if there’s some kind of obvious meaning, I’m missing it. Why don’t you explain things robustly enough to stand up to momentary scrutiny in the time it takes to read the article?

  23. JanM says:

    @James S.

    Quirksmode will be gone in a few years (I hope).

  24. Steve says:

    @James, correct, they are trying to protect against script injections via the style attribute.  Only IE suffers from this vector therefore they want to remove it (and I applaud them for that)

    Actually I applaud MSFT for this whole post!  Although I currently use CSS Expressions all over (to overcome IE bugs) I’m happy to remove them when serving up to IE8.

    I just need to go through and "exclude" IE8 from all the hacks.

    I feel cleaner already!

    PS I take it that the proprietary "behavior" CSS thing is still there? (I’m not complaining if it is, just trying to clarify the current status)

    Steve

  25. Sylvain Galineau [MSFT] says:

    @James S.

    The reasoning here is that the bad guy will always be in full control of his own web site; but this is one less avenue for him to try inject code in your users’ browser through your site. As most web sites today do render in standard mode, this should reduce the overall XSS attack surface over time as IE8 rolls out.

  26. for the love of standards says:

    For the love of standards!

    Can you please, please, please fix the mess with the "Compatability Mode" for intRAnet sites.

    ALL of my INTRANET sites are DESIGNED to Web Standards, serving up DOCTYPEs and all that jazz.

    In IE8 Beta 2, you’ve gone against your word and made QUIRKS not only the DEFAULT rendering, but LOCKED IT IN! so I can’t as a user (or developer) turn the IE7Quirks Mode off!

    If I were a conspiracy theorist, this would SCREAM of Shinanigans!

    So 2 questions:

    1.) How do I turn if off right now

    2.) Will this issue be fixed in Beta 3?

    Houston

  27. Sylvain Galineau [MSFT] says:

    @Steve

    Yes, behavior is still supported. But we do support and recommend a stricter syntax. See http://blogs.msdn.com/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx.

  28. sokzzuka says:

    Nice, but anyway, when will application/xhtml+xml mime type supported ?

  29. Sylvain Galineau [MSFT] says:

    @for the love of standards,

    You can easily turn this off through Tools-Compatibility View Settings, then uncheck ‘Display intranet sites in Compatibility View’.

    This can also be controlled through Group Policy.

  30. sokzzuka says:

    not to mention, that addEventListener() is still not supported,

  31. juan says:

    I’m wondering what is going to happen with behaviors, HTC? No one talks about these any more.

  32. tom says:

    So, what exactly does "ignored" mean?

    I have some inline CSS added to elements as follows:

    <div style="overflow-x:auto;width:100%;width:expression(‘0px’);">foo bar baz…</div>

    This is because IE6 and IE7 did a fail on 100% width with overflow-x set to auto.

    In essence, if I have 2 CSS settings for width, what will IE8 take as the result?

    div.testcase {

     width:100%;

     width:expression(…);

    }

    Is IE8 going to give me the 100% because that was the last valid setting made?

    Or is IE8 going to set 100%, then clear that, then realize that the second setting is invalid, thus not set a width?

    I hope it doesn’t reset/clear the previously set value.

  33. Daniel says:

    @juan: There’s still -ms-behaviour available, I hope this can be removed as well.

    @tom: According to CSS, an invalid property:value couply is completly ignored. This means in your case, width:100% is honored.

    For IE 8, width: expression(); will be the same as would width: red (which is nonsense) be in Firefox or other modern browsers.

    Whatever is unknown to an CSS engine does not influence previously set properties. There are completely ignored. That’s true for IE8b1

  34. And Clover says:

    Great! Good riddance to this ugly, slow and pathologically unreliable feature (and the one extra script injection possibility it brought with it).

  35. Brez says:

    Could you make IE 8 at least the second or third fastest browser

  36. Ain says:

    Even though this is going to break a whole load of sites built to work on IE, it’s a splendid move from Microsoft.

  37. What about application/xhtml+xml and doctypes says:

    I wonder if IE8 will do better than IE7 about the suppport for application/xhtml+xml and doctype declarations.

    I tested it on http://www.browsershots.org with my website, which have the following doctype :

    <!DOCTYPE html PUBLIC "-//GABSOFTWARE//DTD XHTML 1.1 Extended//EN" "http://gabsoftware.com/DTD/xhtml11extended.dtd&quot;

    [

    <!ENTITY user "webmaster">

    <!ENTITY domain "gabsoftware.com">

    <!ENTITY at "@">

    <!ENTITY mailto "mailto:">

    ]>

    That’s a very valid doctype.

    It seems that IE8 is badly displaying the website as IE7 do. I am disapointed and would ask you if you plan to fix this one day, as every other browser is able to display properly application/xhtml+xml mimetypes.

  38. h says:

    A nice move and much appreciated; although I have one concern here:

    <q>most expressions written to work around CSS 2.1 bugs and shortcomings should no longer be needed</q>

    That’s not entirely reassuring – do you have a list of the expression-hacked bugs that haven’t been fixed, so we know what we’re dealing with? That would be a useful lookup table for the transition.

  39. Cesar says:

    Hello! ja of anticipation I thank the help!

    I am Brazilian and I am using the google translator to write this letter!

    I am with my version of IE 60.2900.2180, I can not upgrade to a 7 to 8 very least, I do not know what vazer now my msn 8.1 update and asked for is not doing the upgrade, I think it has something related to the IE, I had to install the mozilla because IE does not open some pages that I wanted there to mozilla turned the main browser now that I did not choose any page I open it opens in more mozilla also opens a blank page in IE, without mentioning that when I go to Windows Update in the Start Menu appears he talking about that I have to upgrade to a higher version of IE to 5.

    if someone can help me I appreciate it.

    Atte. greylowers

  40. Pipo des Bois says:

    Thank you for all your efforts IE Team!

    It is sad that all Microsoft’s innovations are considered bad, and rejected automatically when submitted to standards body by MS (think XML HTTP and CSS filters, where the followers’ approach (Mozilla) was adopted instead – even if it arrived several years later.)

    Same with scrollbar styling – if Mozilla had submitted it, the W3C would have adopted it.

    IE’s original interpretation of CSS width, padding, margin and border makes sense – the one adopted is stupid: take an amazon cardboard box – 10 inches wide, but if you add padding inside, the box is no longer 10 inches wide, it is 12 inches wide, even if the box width is still 10 inches. So dum, and counter-intuitive. Anyway, end of rant.

    Thanks again for your efforts IE Team: even if some of the standards fall short or are plain silly, at least we are getting to the point where the norm is followed universally.

    On that point: I hope that IE7 will be forcibly pushed to all Windows XP users: I am tired of writing hacks just for IE6, when IE7 (more so IE8) works great.

    End of rant (really)

  41. Pipo des Bois says:

    By the way, when Microsoft creates open standards like OOXML, and these standards are approved by ISO, the "Open Standards" nazi resign, because open standards cannot come from Microsoft. Good riddance, I hope these anti-MS activist groups don’t get more power under the appearance of "Openness"

  42. -TNO- says:

    @Pipo, you should look at the reasons why people don’t consider it open nor standard:

    http://en.wikipedia.org/wiki/Ooxml#Criticism

    But that is off topic anyway

  43. Cooking says:

    This is good news. Leave it up to scripting like javascript to render dynamic content.

  44. Daniel says:

    @Pipo des Bois

    Actually, IE implemented the standard box model in IE4 (they tried at least), however, it was changed to the border-box model in IE5 because netscape was using this.

    So actually, the non-standard model was a Mozilla invention, but they foresaw that this was no good idea and changed, when they finally admitted to standards in 1998.

  45. Chris Quirke says:

    Reading the comments, I see folks comparing CSS with scripting, and the original blog post seems to imply "user scripting instead of CSS".

    If I’m browsing web sites, I want to take the acceptably small risk of viewing data, not the higher risk of allowing the site to program my system.  So I’d want to disable (or set to Prompt) all active content, to bloch scripts unless I choose to run them.

    Where does CSS fall, in this situation?  If it’s permitted, then I’d want it to be as safe as script-less HTML, and with the extensions facility in place, it may not be.  

    In which case, good riddance to those CSS extensions, though I hope this doesn’t mean sites that don’t actually need to script anything, don’t start chucking JavaScript around to do basic formatting.

    I’m writing this from the perspective of a web consumer.  Folks who write web pages may want as much power as possible, but from my perspective, I don’t trust web sites as far as I can throw them, so I’d want y’all in straitjackets  :-)

  46. webeame.net says:

    En el blog de Internet Explorer, anuncia que su próxima versión 8 no soportará las expressiones (&quot;expression&quot;) que se utilicen en las hojas de estilo para cumplir con los estándares, mejorar el rendimiento y evitar ataques contra el navegador

  47. Alastair Grant says:

    Good move… embedded javascript in CSS is bad. Makes XSS easier and is a performance overhead.

    @keith. Stick to frontpage mate.

    As for Silverlight best avoided.

  48. Internet explorer is getting standardized with version 8.

  49. geld verdienen says:

    Looking good, but fix the comments!

  50. speaking of proprietary hacks says:

    Speaking of Proprietary hacks – has the bug with -ms-filter:alpha() and z-index stacking been fixed in internal IE8 builds?

    It is still majorly broken in IE8 Beta 2 and is making it very hard to test sites when you can’t click on buttons or links, or into text boxes, select lists or textareas.

    I appreciate that you fixed the property name so that it matches the way the specs work (although using opacity or -ms-opacity would have been better) but this is the second beta released for IE8 that has failed on the opacity front.

    IE8 beta 1 – No Opacity support at all, worse yet any opacity == 0% opacity!

    IE8 beta 2 – Opacity returns (new format) but still fails with z-index stacking.  You can no longer have separate stacks, which is quite disturbing because that is one of the main uses of opacity (fade stuff in the background (e.g. 50% opacity, and float (non-transparent items above it)

    Was this discussed in the IE chat last week? I wasn’t able to attend.

    thanks dave

  51. Eghost says:

    @Sylvain

    How about ending the lock up of the UI? How about asking Dean to have a real discussion about the UI, not just the colors of tabs. How about just giving us back the ability to change the UI like we had in IE 6,5,4,3? What is so wrong with that? what is so wrong with wanting to be able to put my home button next to my address bar? Again DEAN WHY THE WALL? Sylvain, can you explain why the wall of silence, when it comes to the UI? Why have a beta at all? DEAN again why the WALL OF SILENCE?

  52. erictee says:

    Off topic: Dear IE team, do you check up the problem of highlighting text in zoomed page? although it is scarcely use,but I thinkn you should fix it

  53. Webdesign says:

    A nice move and much appreciated; although I have one concern here:

    <q>most expressions written to work around CSS 2.1 bugs and shortcomings should no longer be needed</q>

    That’s not entirely reassuring – do you have a list of the expression-hacked bugs that haven’t been fixed, so we know what we’re dealing with? That would be a useful lookup table for the transition.

  54. chester says:

    @erictee

    The text highlighting is only one of the issues when zoomed in.  The performance of IE when zoomed in degrades in orders of magnitude!

    Just press [CTRL] + [+] 2 or 3 times on the ‘about:tabs’ page it LITERALLY TAKES 10 SECONDS to re-render the page.

    PS the page should be "about:tabs", not "about:Tabs"  in case you were not aware that using uppercase makes this page look like a badly coded VB6 application in archaic deprecated objHuNGarIAN btnNoTATion.

    I’ll also second Eghost’s comments about the UI.  Not only is the current UI terrible, but the lack of customization makes it IMPOSSIBLE for IE to be ******MY****** Browser of choice.

    It can’t be "Mine", if I can’t make it "Mine".

    I can now move the reload/stop buttons to the correct location (good), and I can make the menu ALWAYS display (good), and I can make the menu appear above the address bar (via regedit hack) (good), but I can’t put multiple toolbars on one line, I can’t make the command menu cascade in the correct direction, I can’t close the last tab (e.g. go to about:blank) clicking the "feeds" tab of my favorites sidebar causes IE to crash.

    Many aspects of the UI haven’t been updated since before IE6, the chrome itself is from Windows 98, and with the new chrome applied in some spots on top there is no consistency whatsoever. (e.g. the Go, Reload, & Stop icons are all "aqua"-ish, but the commandbars, favorite buttons are all win98-ish, and the address bar dropdown is part win98, part XP, and the delete icon in the list looks like it was swiped from Borland controls)

    Why is Organize Favorites the must cumbersome UI ever invented when it should be the most intuitive?

    Why does Quick Tabs take longer than IE7 to render? and why are the thumbnails of such horrible quality (compared to IE7)

    Why does the Quick Tabs drop arrow cause my quick tabs to hide?

    Why does the Quick Tabs drop list not show the checkmark LEFT of the sites favicon?  The favicons are designed to make navigation a piece of cake by recognizing the sites logo/icon, but now I can’t even see it!

    Of all the "Program Managers" in MSFT’s IE team there must be at least one in charge of the UI chrome controls.  Who is it? and why haven’t they stepped up to the plate in the last 4 years to make **ANY** improvements?

  55. Ted says:

    Eghost: Please go away.  Your whining is pointless and annoying.

  56. georgia says:

    @Ted – you may interperet Eghost’s comments as whining and to you they may be annoying, but they certainly aren’t pointless.

    I have yet to meet an IE user that is "happy" with the new IE7 UI, and/or "excited" that the UI is locked down not only in IE7, but in the next releases to come.

    Are you the infamous "Ted" that trolls on any anti-ms/anti-ie comment? If so I think you should read your own comment, and "Please go away"

    The whole idea of this blog and the comments is to provide a basic forum to provide IE news and solicit feedback on IE development.

    Since IE suffers from UI, usability, & standards support in the browser marketplace I for one welcome all comments on IE, especially the ones that get MSFT to pay attention and ship better products.

    Now Ted, Please go away.

  57. Lenen Bkr says:

    Good step! It will hurt a little for some old sites that don’t comply, but there has to be a day you take this step, so why not today?

  58. O3noBLOG says:

    IEBlog的消息,CSS expression就是可以在CSS value裡面進行一些簡單運算,像是「10%+4px」這樣的長度設定,雖然記憶中W3C也曾經有過草稿,不過總之這就是不太有人使用的東西,所以一直以來也只有IE支援,然後這次IE Team終於決定要把它拿掉了,不過Ajaxian上的第一篇回文很XD: I can’t believe they’re doing such big changes and don’t want to rename their XMLHttpRequest

  59. Found another neat IE8 Beta 2 rendering glitch which will hopefully get fixed in Beta 3.

    view demo:

    http://www.youtube.com/watch?v=qJtl_3NYHtk

    In the video (sorry about the quality) there is a simple text box, and a textarea in (winXP SP3 IE8 Beta 2).

    When I move my mouse pointer over the text box, the vertical scrollbar on the text area "indents" by approximately the width of the scrollbar.  When I mouseout of the text box, the scrollbar restores.

    (note this is a hover event only, I’m not clicking anything)

    Additional Notes:

    - Rendering in IE8 Standards Mode

    - There is a :hover CSS style set on both the text field, and the textarea.

    - the text/nodes inbetween the elements are just plain div/b tags…

  60. Brez says:

    when opening a new tab sometimes a 2-3 sec pause occurs. This always seem to happen when creating the first new tabs after creating another second new tabs it quickly appear

  61. standards rule says:

    Good, now get rid of quirks mode, IE7 and lower modes AND most importantly convince your customers to upgrade away from the IE6 and IE7 mistakes of the past…

    Does IE8 already pass the acid tests ?

  62. bug 342 says:

    @Brez: – re slow new tab.

    Ah yes bug 342 http://webbugtrack.blogspot.com/2008/08/bug-342-connecting-in-ie7-ie8-takes-f-o.html

    It was slow enough in IE7 but its only gotten worse with each IE8 release.  I certainly hope that this is fixed in Beta 3.

    william jr.

  63. EricLaw [MSFT] says:

    When filing bugs, it’s helpful to put actionable data in them.

    In the case of your "342 bug" this is almost always entirely related by the load time of your browser extensions.  Start IE in no-addons mode, and you’ll likely find that new tabs appear almost instantly.

    In IE8 Beta2, you can click Tools / Manage Addons, and view the startup time for each addon.  Disable the slow ones, and check out the improvement.  

  64. william jr says:

    Uhm sure… zero addons installed on either a fully patched XPSP3 PC or a VPC Image (same specs)

    EVERY version of IE7 and IE8 suffers from this, regardless of any addons installed.

    I think every single IE chat, or post on this blog has mentioned this.

    On any IE7+ install you can open a new tab, and press paste (CTRL+V) 2 or 3 times and still not get the value into the address bar because it hasn’t rendered yet…. or worse yet, it gets merged with about:blank.

  65. TURN OFF THE DEFAULT MICROSOFT RESEARCH ADDON says:

    TURN OFF THE DEFAULT MICROSOFT RESEARCH ADDON

    It takes over a second to load on every tab, which is just plain dumb considering that NO ONE uses it!

    Why it is installed by default is beyond me.

  66. Brez says:

    Ok thanks for the tips indeed a add-on AVG safe search is slowing the new tabs. Are there any other way you could fix tab slow down without telling user to disable the slow add-ons.

  67. Ted says:

    The "Research" addon is from Office, not IE.  Go complain to them.

    Brez, please explain how Microsoft can make someone else’s code run faster??

  68. Brez says:

    Lately smart address bar autocomple started displaying .url or <this page has note set a title> instead of the website name and address.

  69. fr says:

    All browsers have some addons/plugins, but it seems to only be IE that has significantly slow tab opening issues.  So if addons are the whole cause of the issue the other browsers must have a better architecture where slow addons don’t prevent the user from using a new tab until they have loaded.

  70. EricLaw [MSFT] says:

    More users have more addons loaded in IE than in any other browser, and especially more that the user knows nothing about, owing to the fact that it’s much easier to *programmatically* install an IE extension, so many client applications do.

    For compatibility reasons, IE spins up new add-on instances for every tab. Because most add-ons are COM-based, and many of them are poorly written, this leads to significant overhead.  This is why in IE8, we’ve introduced the "Load time" column in Manage Addons– to help put the user in control of performance.

  71. Benoit Marchant says:

    I suppose the ability to apply a behavior through expression is being deprecated too:

    * {behavior: expression((function(anElement){//do something with anElement;anElement.runtimeStyle.behavior = ‘none';})(this));}

    Is IE8 going to expose prototypes of DOM elements allowing to extend these like it is possible with FireFox and WebKit? Are htcs still supported?

  72. EricLaw [MSFT] says:

    @Benoit: Yes, IE8 supports HTCs and mutable DOM prototypes.

  73. stan says:

    @EricLaw – all good points on the slow addon problem.  When I read the comments about how the other browsers don’t have this issue, and it is likely architecture related a "light bulb" went off.

    Is IE7/IE8 loading up all these addons when the loaded Tab’s location is:

    *****************************

       about:blank

       about:tabs

    *****************************

    If so, this would be the #1 quick fix for 99% of IE’s slow loading issues.

    on about:blank, I don’t need or want any addons to load.  I don’t need PDF support, I don’t need web slices, accellerators, behaviours, CSS expressions, clipboard access, pre-IE8 inline search addons, anti-virus addons, anti-spyware addons, SONIC (or similar) drive letter addons, Sun Java Console addons, SSV Helper class addon, MS Research (well this should actually NEVER be loaded by anyone, anywhere, anytime… runs like turtle, useful as fork when eating tomato soup), Discuss addon, Windows Messenger addon, InPrivate (allow/deny list), etc.

    and on the about:tabs url, 90% of the above is not needed either.

    Woot! I love it when a big problem has a simple solution!

  74. ieblog says:

    testing comments

  75. ieblog says:

    test comment

  76. Joe says:

    Did you guys ever try to close the browser?

    I know I can just wait a bit for IE to crash, but what about scenarios when I just want to close the browser?

    Seems that IE design team misplaced the "Restore tabs on next launch" button that was there in IE7.

    Can you plese fix it and send me a working version tomorrow?

  77. Matthew Raymond says:

    Pipo des Bois: "It is sad that all Microsoft’s innovations are considered bad, and rejected automatically when submitted to standards body by MS (think XML HTTP and CSS filters, where the followers’ approach (Mozilla) was adopted instead – even if it arrived several years later.)"

      XMLHTTP was an ActiveX object. It wasn’t even part of Javascript or implemented natively in ANY browser. All other browser vendors, including Mozilla, implemented a browser-native DOM API based on XMLHTTP called XMLHTTPRequest. After the fact, Microsoft hacked JScript to provide a similar interface in IE7. So if everyone else had standardized on XMLHTTP instead, they’d have had to implement ActiveX.

      (Note that W3C is working on an XMLHTTPRequest Level 2, while Microsoft has chosen to introduce their own proprietary solution: XDomainRequest.)

      As for filters, here are three examples of 50% opacity:

    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);

    filter: Alpha(opacity=50);

    opacity: 0.50;

      The first two examples are both taken from MSDN. The last example is how you do opacity according to W3C CSS3. Note that most browsers support the W3C method with the mere addition of a vendor prefex. Microsoft is the only major browser vendor that doesn’t support it.

      Now, granted, the condensed version of filter is better then the former, but not by much. Having only one property means that you have to define all your filters at once, so you use the cascade to composite filters. You’d really want every non-mutually-exclusive filter to have its own property. (I suspect that Microsoft chose not to implement the opacity property on top of their filter property code for this very reason.)  To make matters worse, if vendors implemented filter, they’d have to support the longer format as well or authors would refuse to use their "buggy" implementations.

      What’s more is that I can’t seem to find any information that suggests that Microsoft ever submitted "filter" to the W3C. Nor can I find any suggestion that Microsoft submitted XMLHTTPRequest for standardization. I can, on the other hand, provide several examples of W3C standards that WERE submitted by Microsoft. For instance, all of the following properties are in current CSS3 drafts:

      background-position-x

      background-position-y

      block-progression

      layout-grid

      layout-grid-char

      layout-grid-line

      layout-grid-mode

      layout-grid-type

      line-break

      line-grid-mode

      overflow-x

      overflow-y

      text-align-last

      text-autospace

      text-justify

      text-kashida-space

      text-overflow

      word-break

      word-wrap

      writing-mode

    Pipo des Bois: "Same with scrollbar styling – if Mozilla had submitted it, the W3C would have adopted it."

      The -ms-scrollbar-* properties are specific to a particular scroll bar presentation. Think about it. You have names like "3dlight", "arrow" and "track". What happens if you have a platform with a presentation those names don’t map to? In addition, vendors may have to implement their own scroll bar widgets rather than using the built-in OS widgets in order to support such a feature.

    Pipo des Bois: "IE’s original interpretation of CSS width, padding, margin and border makes sense – the one adopted is stupid: take an amazon cardboard box – 10 inches wide, but if you add padding inside, the box is no longer 10 inches wide, it is 12 inches wide, even if the box width is still 10 inches. So dum, and counter-intuitive. Anyway, end of rant."

      IE8 supports the CSS3 box-sizing property, which allows you to switch to the old IE box model. Why rant about something that’s already fixed?

  78. The IE8 will be released in octobre

    and I don’t thin that IE will compete

    with Firefox3!

  79. 董士亮 says:

    IE8标准模式不再支持CSS表达式(Expression)

    原文地址:EndingExpressions

    标准遵守情况、性能、可靠性和安全性等设计标准构成了IE8的设计整体,包括新的和已经存在功…