IE8 and Loosely-Coupled IE (LCIE)

Hi, my name is Andy Zeigler, and I’m a Program Manager on the Internet Explorer Foundations team. I’d like to tell you about a new IE8 feature called Loosely-Coupled IE, or LCIE for short.

Essentially, LCIE is a collection of internal architecture changes to Internet Explorer that improve the reliability, performance, and scalability of the browser. It also paves the way for future improvements in other areas, including security and usability. To do this, we’ve

isolated the browser frame and its tabs and changed them to use asynchronous communication between components.

In this post, I’ll walk you through the changes we’ve done in IE8 Beta 1.

You may have noticed that computers come pre-loaded with all sorts of software. While a lot of this software is useful and works well, some of it, including IE add-ons, can crash and interfere with your browsing experience. Internet Explorer 3rd-party add-ons are COM-based, which enables developers to write high-performance add-ons with powerful features. This also means that IE and running add-ons share the same process and memory address space, so when an add-on crashes, it causes the whole browser to crash. According to an analysis we did of our Windows Error Reporting data, over 70% of all IE hangs and crashes are caused by 3rd-party add-ons. We work closely with software vendors of the most frequently installed IE add-ons to help improve the quality of their add-ons. However, due to the large number available add-ons, it is difficult to provide outreach to every developer.

The IE Process Model

Part of what we’ve done with LCIE is to split the frame from the tabs, and allow them to function more autonomously. As a refresher, here’s a somewhat simplified view of the IE7 process model:

IE7 Process Model Diagram

In the IE7 model, each browser window (UI Frame) usually has its own process. There are a couple of exceptions. For example, if you press ctrl-n to open a new window, IE creates a new UI frame in the same process. The tabs, toolbar extensions, browser helper objects, and ActiveX controls all reside in the same process as the browser window. The problem with this model is that a single access violation, stack overflow, or any other type of failure will cause your entire browser, and all its tabs, to crash.

Below is a diagram of how we’ve changed the process model in IE8:

IE8 Process Model Diagram

There are a number of notable changes here:

  • Tabs are isolated from the frame, and are located in separate processes
    This gives IE the opportunity to isolate many failures to the tab process, thereby reducing the amount of damage done to the rest of your browsing session.
  • The frame and the broker object are located in the same process
    This is a win for startup performance. The broker object is responsible for examining a URL, and determining if it should be loaded under Protected Mode or not, and launching IE at the appropriate integrity level. We no longer have to wait for the protected mode broker object’s process to startup before loading the rest of the browser.
  • Low and Medium integrity tabs can reside in the same UI frame
    The Windows Integrity Mechanism operates on a per-process basis. Now that we can place tabs into their own processes, we can turn Protected Mode on or off on a per-tab basis. This is a big usability improvement. You no longer need separate browser windows to view sites in and out of protected mode.

See LCIE in Action

Although these are all internal architecture changes, you can see their effect in a few different ways.

For example, on a computer running Windows Vista, open Internet Explorer, browse to some websites, and then open an HTML page from your computer’s hard disk. Notice that the page will open in a tab in the same window, alongside the tabs that are already there. Previously, we would have shown a dialog that said, “Internet Explorer needs to display this webpage in a new window”. This is because Internet files must run in Protected Mode, and local files must open outside of Protected Mode, and a single process runs with only one integrity level. With LCIE, we simply create two tab processes: one with Protected Mode on for your Internet files, and one with Protected Mode off for your local files.That dialog box is history!

We also have a new feature called Automatic Crash Recovery that uses tab isolation to recover from crashes in a really new and exciting way. I’ll be blogging about that shortly.


Andy Zeigler
Program Manager

Edit: first image updated; enhanced explanation added in “See LCIE in Action” section

Comments (55)

  1. Mirronelli says:

    Does this mean that if an addon crashes in one tab that the other tabs remain open? Or you restart the browser and try to recover the session anyway.

    I have seen ie8 go down as a whole and then recover the tabs. So it was either caused by an ie bug (not an addon) or you really always restart the browser and recover the tabs?

    Nice work anyway. I heard a lot of people complaining that FF crash recovery is cool. Yours is now cool too.

    If the tabs are in separate processes why do we need to restart all ie windows when changing "emulate ie7" state?

  2. IEdude says:

    Have you any information on IE8 webbrowser control in general or related to this topic ? There is no information for IE webbrowser control since IE7 from you guys.

    Are you not allowed to talk about IE COM Interface ? Do you still support this interface for IE in the future or not ?

    I’ve evaluate the (piece of sh*t).NET wrapper for IE, and still waiting for something better.  

    .NET politics is so stupid, as you can see it with Windows Vista. Lessons learned, now give us a new IE8-COM control !

  3. How does the change in the process model affect the security of the browser or the browsers ability to maintain the security of the desktop?

  4. Mark Sowul says:

    If each tab is a separate process, shouldn’t each process in the second diagram have only one single tab?

  5. jessejacob says:

    Great, the browser is ready to recover gracefully from bad add-on crashes! Now that it’s safe to open the floodgates to potentially poorly-written add-ons, can we have some way to write managed code add-ons for the browser? I’d be happy with a supported shim from Microsoft (like the pre-VSTO Office add-in shims)! C’mon IE team, the time has come.

  6. David says:

    If the tabs are in separate processes why do we need to restart all ie windows when changing "emulate ie7" state?

    thats a vary good and well said ? i been wanting to no that too evere time i hit the emulate ie7 it dos not work for me  like why have some in if it dos not work?

  7. Can we make a tab run under a separate process if we want (or a specific domain)?

  8. Luc says:


    yes, if a tab crashes, the other tabs remain open

  9. pollyx says:

    I would also appreciate to get some information about a IE8 webbrowser control in NET Framework. With IE8 Beta 1 installed, .NET 2.0 SP1 still uses the IE7 engine for rendering at the moment.

  10. virtualblackfox says:

    I see a nice feature linked tot that in my IE8 on XP.

    While displaying the page it crash the tab (due to the google javascript on the right, as it also crash if i extract the code), then restore it, crash again.

    … And then it give up with the message "Internet Explorer has stopped trying to restore this website. It appears that the website continues to have a problem" and doesn’t enter an infinite loop.

    Nice (but the crash isn’t).

  11. Stifu says:

    virtualblackfox: I like how it’s the website that "continues to have a problem", and not IE. :p

  12. Richard says:

    Where is the list of known bugs in IE8 beta 1?

    I want to file some bug reports but I can’t find the list of "known issues" and I obviously don’t want to waste any time filing dups.

    Also when I try to log in to post a bug report in Connect I can’t.  It only shows me the bugs already entered, there is no link to add a new one, what gives?  I thought this was the public bug tracking tool?


  13. > You may have noticed that computers come pre-loaded with all sorts of software

    I think you mean “Windows computers”.

    > a lot of this software is useful and works well

    Ha ha ha ha! Aw, you guys.

  14. When debugging an ASP.NET project with Viusal Studio 2008, IE8 Beta 1 always tries to restore the tab I am debugging.

    Can this feature be turned off during debugging?

  15. Dave says:

    In a more polite way than IEdude, I’d also like to request information on how current client-developers using the WebBrowser control will be affected by IE8. I know a lot of things may still be up in the air, but *our* product depends on *your* product so we need plenty of advance notice to test it.

  16. Report a Webpage Problem Tool has a problem says:

    The Report a Webpage Problem Tool, has a problem.

    You can’t use the tool any time a modal dialog appears (e.g. alert, confirm, prompt, print, open file, save file, add favorite, organize favorites, web developer tools, internet options, delete browsing history, etc.

    I have a great idea though, how about you open up a public bug tracking database online somewhere, where testers, developers and users can enter a bug/ticket with information about buggy page, feature (or missing feature).  This system could enable users to upload a screenshot (using the tool of their choice), and even a simplified test case that would help the MS developers isolate the exact bug!

    Lets call this idea:



    heck, we’ll even let you patent that line (free of charge!)

    In case the sarcasm isn’t obvious, the community wants REAL bug tracking.  Stop doing a half-baked job of it, and open up a real system.

    I’m sure the folks at Bugzilla can give you a hand, or if FREE software is too good for you, the folks at Fog Creek have a pretty darn good one called FogBugz.  Better yet, they’ll host it for you, so you don’t need to worry about pestering the folks at Connect.

  17. Jack T. says:

    Bug Report: JT-016


    Scope: Browser UI User Interaction

    Synopsis: If a user types in a long fragment of text in a textarea (e.g. enough to cause scrolling), then when at the end of the text fragment (caret focus near or at the end of the text) if the user presses CTRL+A to "select all", the browser should NOT force a scroll to the top of the selection.  This behavior is distracting, and appears to the user that the content has changed.

  18. PilotBob says:

    How does this affect sessions. If I am correct in IE7 session data is the same within the same process. So, if a new IE window is stated from the start menu, it is a new process, but if it is started with Ctrl-N it is the same process.

    Since each tab will be a seperate process, does this mean that session data is no longer shared from tab to tab? If so, VERY BAD!


  19. Nick says:

    beta functionality wish list item:

    Drag the Emulate IE7 button to the New (empty, blank whatever you call it) Tab to open a new tab running the ie7 renderer.

    Alternate: Add an option to the tab context menu (right click on the tab) to switch between ie8 and ie7 modes.  When switching, use the tab recovery feature and reopen the tab in the other mode.

    Alternate: Right click option to "Open in new IE8 tab" or "Open in new ie7 tab"

    While I can see major benefits for normal use, this feature would be invaluable during the betas at least.

  20. Nick says:

    Another thought.  I’m not familiar with the internals at all, but would this new structure allow the embedding of a firefox renderer as a tab?

    Could prove very productive to developers

  21. Shawn Woods [Microsoft] says:



    The Web Browser Control (WebOC) is not impacted by the IE process model since it is a COM object instanciated in the caller’s process. It was not impacted by Protected Mode support in IE7 nor is it impacted by LCIE in IE8. LCIE only applies when executing IE as the browser application.

    As with IE7 Protected Mode, the initial IE8 iexplore.exe process launched may not be the process that navigates and displays the URL. The IE7 APIs and COM interfaces for starting/accessing IE as a stand alone application were enhanced to deal with this change and are supported in IE8. Though the process model underneath is different in IE8, the need and APIs for finding the process that navigates the URL has not.

    Specifically wrt LCIE, the IELaunchURL API has been updated in IE8 to return the tab process information (not the frame process).

  22. Bodero says:

    Am I to assume that this is why I can no longer drag a link from a page and drop it onto the address bar, or a tab? (You couldn’t drag a link to a tab in IE7 either FWIW).

  23. Alz says:

    This is all nice, but if it’s going to crawl, who cares? FF is pretty darned fast. Microsoft should really look at the speed issue.

  24. Shawn Woods [Microsoft] says:


    There are two types of "crashes" in IE8 with LCIE: a tab process crash and a frame process crash.

    When a tab crashes, it will take down all tabs running in its tab process. IE as a whole does not crash and will recover "in place" the tab(s) that crashed. Reliability here becomes a trade off between how many tabs and tab processes are used; clearly, running each tab in its own process is both the most reliable (one tab will not crash other tabs) and the most costly (in resources).

    Our design intention is to support multiple tab processes and distribution of tabs across those processes. However, this is not supported in IE8 Beta1.

    IE8 Beta1 uses a single tab process at any integrity level to contain all tabs for a frame process, so the "multiple tab processes" question is moot for Beta1. In Beta1 therefore, if a Protected Mode (low-IL) tab crashes, all tabs in Protected Mode for that frame will crash and be restored; tabs for the frame at medium-IL would not crash.

    If the frame process crashes, the frames as well as the tabs will be recovered. The crash will look essentially the same as IE7 or earlier crashing.

  25. Alz says:

    Adding on to me speed complaints, look at this:

    So if Microsoft spent some time optimizing the string functions, then the overall speed would be better.

  26. Shawn Woods [Microsoft] says:

    @Michael Janke

    The IE8 LCIE process model maintains the IE7 Protected Mode principles; Tabs that run at low-IL have the same sandboxing as in IE7.

    IE8 improves security of IE in two ways.

    First, since both low-IL and medium-IL tabs are now displayed in the same frame (a better user experience), corporations may find it more acceptable to run intranet sites with Protected Mode turned off. This would place intranet site pages into a different tab process (at medium-IL) from internet sites (in a low-IL process). This process and IL separation of intranet and internet sites may be desirable.

    Second, more of the browser’s control code runs isolated from the tabs (which execute script, extensions, et al) so that the frame process part of the browser is less susceptible to attack.

    On the engineering side, LCIE increases the surface area exposed to the low-IL browser code and we are taking steps to ensure the security of that exposed area.

  27. Shawn Woods [Microsoft] says:


    IE8 Beta1 places all tabs for a given IL for a started iexplore.exe into a single tab process, so the behavior of sessions/cookies is exactly the same as previous versions of IE. Sessions will not be shared across IL levels.

    If IE8 supports multiple tab processes at the same IL level in the future, the session/cookie issue will be addressed.

  28. Ted says:

    @Alz: they already did.  Run the test in IE8 and you find that it’s >300% faster.

  29. Jack T. says:

    Bug Report: JT-017


    Scope: HTML/CSS in Forms

    Synopsis: If an input type="text" element is placed within a block element (e.g. a div) with a background color, a rendering error will occur in the following scenario in IE8.

    Type in a word or two. Double click or press CTRL+A to select the text (it will colorize with your systems highlight color), now click anywhere else in the text box, the highlight will disapear, but the background from the div underneath the input box will render through the background of the text "span" within in the input box.

  30. Jack T. says:

    Can we please open up the bug tracking site? this is getting really annoying.

    I just ran some simple test pages in IE8 Standards mode and .setAttribute() / .getAttribute() is failing miserably for a "fixed" bug.

    Of 29 basic Elements, setting the "style" attribute failed on all of them for starters.


  31. Someone says:

    Please, PLEASE tell me that is will be possible to turn off this useless resource-hungry feature!!

  32. Rob J. says:

    I can’t believe you guys are working on IE8 – I am still struggling with the mess you made with IE7! What’s being done with the "scale-to-fit" debacle and not being able to force printing to 100% from JavaScript. Will you supply every one of my customers with a magnifying glass for the #2 font you render the pages in? Have you ever tried to print content in an iframe? I have a page with 7 pages of content in an iframe that I cannot print unless I select it all first. The users experience went from a one button click to a 3 or 4 keyboard strokes and a dialog with two drop downs to deal with – do you have anyone on the team that considers ergonomics before you willy-nilly implement things? How about usability testing – cut from the budget? I have disasters galore on my hands as a result of IE7 and Microsoft is off creating the next mess before they clean up the one at hand – how about putting all your efforts into a SP for IE7 that at least restores the functionality of IE6? And PLEASE – get rid of the fool phishing filter pop-up that shows up all the time no matter what I do to disable it. When I want it off I mean off – I don’t even want to see a disabled icon.

  33. Internet Explorer 8 Beta 1: First Impressions

  34. thacker says:

    The manner in which tabs are created and their respective order appears to be an improvement for usability and accessibility. Caveat: I can’t explicitly recall how IE7 managed tab order.

    In terms of accessibility, perhaps consider inheritance of the zoom setting for a new tab from its parent or process?


  35. Chris Quirke says:

    It would be good to have UI feedback on the tabs to indicate which tabs are in Protected Mode and which are not – e.g. tint the tab pink if not in Protected Mode.

    Risks of cross-tab exploits?

  36. DT blogi says:

    Ehkki IEBlog teatas juba möödunud nädala kolmapäeval, et IE8 esimene beta on väljas, polnud mul mahti sellega enne tänast tegeleda. Põhjuseks CeBIT 2008 ja sinna järgi kevadiste projektidega alustamine. Internet Explorer 8 esimene beta on mõ…

  37. Nidonocu says:

    People who think this feature is resource hungry need slapping.

    Anyway, one request to the IE guys, could you look in to the issue of pages hanging due to complex scripts or add-ins? These still cause the whole of IE8 to lock up (but not crash) due to their busy state. It would be nice to kill a hung tab as easily as a hung process in Windows.

  38. Shawn Woods [Microsoft] says:


    Thank you for your input. LCIE is an architectural change that underlies multiple current and possible future features or improvements, many of which do not involve a tradeoff between resources/performance and the feature. For example, the process model change in IE8 Beta1 eliminates the need for the IEUser.exe process, reducing some of the IE startup cost and resources on Vista and later operating systems.


    Thank you for your input. The process model change makes it feasible to better decouple the frame from the tabs for hangs as well as crashes and that is a reliability improvement that we are considering.

  39. IEBlog says:

    Developing technologies that work reliably on their own and as part of the computing ecosystem is core

  40. IEBlog says:

    We’re excited to release IE8 Beta 2 today for public download. You can find it at

  41. It was announced some time ago and right on time the IE team released the second beta of Internet Explorer

  42. ASPInsiders says:

    I happened to install Google Chrome (Alpha) the same day I installed Internet Explorer 8 (Beta). I noticed

  43. I happened to install Google Chrome (Alpha) the same day I installed Internet Explorer 8 (Beta). I noticed

  44. IEBlog says:

    Hi, my name is Helen Drislane, I am a program manager on the IE team responsible for some of the user

  45. EVOLUTION OF THE DESIGN AND ALGORITHM After shipping Internet Explorer 7, the IE team collected data

  46. Привет, меня зовут Хелен Дрислейн и я являюсь программным менеджером в команде IE, ответственным за некоторые

  47. IE8 beta1 introduced Loosely Coupled IE (LCIE) which gives tab a level of process isolation from the

  48. 이 글은 Internet Explorer 개발 팀 블로그 (영어)의 번역 문서입니다. 이 글에 포함된 정보는 Internet Explorer 개발 팀 블로그 (영어)가 생성된 시점의

  49. VS2005 does not debug with IE8 by default, due to IE8’s LCIE feature (

  50. ほけーっと眺めていると、はまる人が多そうな、少なさそうな情報が投稿されていたので、転載します。転載元は、「 Tips & Tricks for ASP.NET, IIS, and Visual

  51. IE8 и надежность Разработка технологий, которые надежны сами по себе и которые могут гарантировать надежную