Reliability and Privacy with Internet Explorer 8 Beta 2
Reliability and privacy are two must-have features for every Web user. To that end, Internet Explorer 8 Beta 2 introduces powerful and easy-to-use features that improve the dependability of your browsing experience and the security of your personally identifiable information. Read on for all the details.
For Internet Explorer, reliability means that the browser should always start quickly, perform well, connect to the Internet, and show websites without crashing or hanging. Most users want their browser to work, recover smoothly after a crash, and display the Web correctly. Users are not as concerned with what causes the problem, whether that be a poorly functioning add-on or poorly performing website. As part of Microsoft’s ongoing commitment to improve reliability, we have done a great deal of work in Internet Explorer 8 Beta 2 to make the browser more robust in all of these areas: performance, recovery and display. In particular, this article will discuss:
- Loosely-coupled Internet Explorer: An architectural feature that helps isolate different parts of the browser from each other for smoother browsing performance.
- Automatic Crash Recovery: A feature that is designed to get users back to browsing as quickly as possible after a crash.
Loosely-coupled Internet Explorer
One of the Internet Explorer team’s most significant investments is in a feature called Loosely-coupled Internet Explorer (“LCIE”), which is an architectural attribute that helps isolate different parts of the browser from each other, most notably, the frames from the tabs. LCIE is the foundation on which we have built several of our features, including Automatic Crash Recovery.
Have you ever wanted to take your Web browsing “off the record”?
In Internet Explorer 8 Beta 1, we isolated the frame window, which roughly corresponds to the “chrome,” from the tabs by putting them in their own separate processes so that a tab can now crash without bringing down the rest of your browser. Visually, this separation would look like Figure 1, with the frame area highlighted and the tab area dimmed.
Figure 1: A tab in Internet Explorer 8 Beta 2 with the separate processes dimmed for illustration.
Building on Internet Explorer 8 Beta 1, we have continued to develop LCIE in Internet Explorer 8 Beta 2 to further improve reliability and performance. For Beta 2, we added the following changes:
Frame Process Merging
To help improve startup performance, we have reduced the number of processes that Internet Explorer starts. Instead of firing up two processes every time you launch the browser (one for the frame and one for your tabs), we now only fire up one frame process the first time you launch Internet Explorer. Subsequent launches will only start a new tab process or make a new tab in an existing tab process.
For users that are accustomed to browsing websites in multiple “sessions”-for example if you want to log in to multiple e-mail sites simultaneously-you can specify the “-nomerge” command line option to disable this feature.
More Tab Processes
It turns out that the vast majority of all Internet Explorer sessions contain three or fewer tabs. Accordingly, in Internet Explorer 8 Beta 2 we try to give users three efficient tab processes. This is contingent on the user’s computer capabilities, but the more capable a computer is, the more processes Internet Explorer will use, up to a point. Adding more processes gives users much better isolation in the event of a failure. If each tab is in its own process, websites are completely isolated from each other.
We have also added the internal capability to “hot swap” the process from underneath a tab. Previously, Protected Mode worked on a per-process basis. For example, say you add a website to your trusted sites in Internet Explorer 7. If that site links to another site that is not in your trusted sites, it will cause you to switch browser windows when you click the link.
We improved this in Internet Explorer 8 Beta 1 with LCIE when we split the frame from the tabs. With the split, Internet Explorer can create a new tab in the same window and switch you to that tab as opposed to being “punted” to a new window.
Virtual tabs lets you navigate across Protected Mode in the same tab since Internet Explorer just switches the process under the tab to the correct integrity level. This is really just “UI-sugar”-virtual tabs do not impact security or protected mode in any way, other than to make it more convenient to transition between Protected Mode on and off.
LCIE’s ability to isolate different parts of the browser, coupled with more tab processes and virtual tabs, helps improve Internet Explorer’s performance and overall reliability.
Automatic Crash Recovery
In the event of a crash, Automatic Crash Recovery is designed to get you back to browsing as quickly as possible. It uses LCIE’s tab isolation to help localize the failure to your tab. If you experienced a crash in Internet Explorer 8 Beta 1, you may have noticed the bubble shown in Figure 2.
Figure 2: The “tab recovery experience” in Internet Explorer 8 Beta 2.
This is the “tab recovery experience.” The failure has been confined to your tab. Your browser never goes away and Internet Explorer gets you back to the site quickly.
What’s happening behind the scenes is that Internet Explorer is keeping track of an array of information about your tab. In Internet Explorer 8 Beta 1, the following data about each tab was stored:
- Current URI
- The travel log (your back/forward history)
- Tab order
- Which tab was active
When you crash, Internet Explorer tears down the old tab process, creates a new tab process, and recovers the stored data back into the tab. For many websites this works well; however, there are other websites, such as sites with Web forms, or sites that you need to log in to, that Internet Explorer 8 Beta 1 didn’t recover successfully.
In Internet Explorer 8 Beta 2, we improved this further by adding session cookie and form data recovery.
Session cookies are often used for authenticating the user to a website. Session cookies are temporary cookies that only persist for the lifetime of your browsing session. When you log in to a website, they usually give you a session cookie that contains a unique token that identifies you while you are logged in. As you navigate around the website, Internet Explorer sends your session cookie to the site, and the site can examine this token and determine that you are authenticated. Unlike persistent cookies, they are not written and retained on your hard disk.
In Internet Explorer 8 Beta 2, we recover your session cookies too, and still do not write them to disk! Internet Explorer stores copies of your session cookies in the frame process. When your tab crashes, Internet Explorer just copies them back from the frame into the tab, and the user is automatically logged back into the site they were using (Web-based e-mail, blog sites, social networking sites, etc.).
Note that session cookie recovery only takes place for tab crashes. If the whole browser crashes, the session cookies are lost; however, we do expect that the overwhelming majority of crashes will be isolated to the tabs as most crashes are caused by malfunctioning add-ons, which are now isolated to a tab process.
In Internet Explorer 8 Beta 2, we improved crash recovery further by adding session cookie and form data recovery.
In addition to keeping you logged in with session cookies, Internet Explorer can now recover your form data. If you typed information, such as an e-mail, blog post, comments, into an HTML form, Internet Explorer can now recover that information.
Leveraging LCIE’s tab isolation allows Automatic Crash Recovery to quickly restore the user to their browsing session without having to log back in to their sites or re-enter new data into forms. Combined, LCIE and Automatic Crash Recovery provide an innovative and graceful way to recovery from crashes.