How do I improve my website and add-ons?
User-Agent String and Version Vector
The User-Agent string—a browser's identity as reported to websites via HTTP traffic—and version vector—a mechanism for obtaining the Internet Explorer version number that is used in the evaluation of conditional comments—have the potential to impact site compatibility. Understanding the best practices for browser detection ensures that your site continues to operate as intended when viewed by Internet Explorer 8 clients.
Tip: A simple way to test if user-agent string or version vector detection causes a problem on your site is to press F12 to open the Internet Explorer Developer Tools and change the browser mode to Internet Explorer 7 using the Browser Mode menu. This tells Internet Explorer to report the user-agent string and version vector as Internet Explorer 7 would. Learn more about this feature.
Best Practices for the User Agent String:
Best Practices for Version Vector:
Versioning and Internet Explorer rendering modes enable Internet Explorer 8 to remain compatible with today's web content and provide a mechanism to introduce new features and stricter standards compliance. To learn more, see
Versioning & Internet Explorer Modes.
return to top
Compatibility View
The brand-new implementation of "standards mode" in Internet Explorer 8 offers the best viewing experience of webpages created according to the latest web standards. This implementation is enabled by default; however, you might encounter some existing webpages that have not been updated to account for the improved web standards support in Internet Explorer 8. To provide the best experience with these webpages, Internet Explorer 8 includes the Compatibility View feature.
Compatibility View enables Internet Explorer 8 to correctly display content written for older browsers. Users can make choices about the Compatibility View feature during Internet Explorer's first-run experience as well as in the Compatibility View Settings window. During the first-run experience, users can choose to use a list, provided by Microsoft, of websites that are best displayed in Compatibility View. The list is populated based on feedback from other Internet Explorer 8 users—specifically, high-volume sites other users chose to display in Compatibility View.
During the first-run experience, neither Use express settings nor Choose custom settings is selected by default. Users must choose one. The Compatibility View Settings window reflects the user's choice, and he or she can turn off updates to the list at any time.
When navigating to a website while the list is active, Internet Explorer checks the list to determine if the site should be shown in Compatibility View. If the site is on the list, Internet Explorer uses Compatibility View. If the site isn't on the list, Internet Explorer uses whatever setting the site indicates in its content. The presence of a <meta> tag or HTTP header in the site's content wins out over whatever mode Compatibility View would have resulted in. So, if a site starts on this list, and then its owner takes advantage of new web standards compliance in Internet Explorer 8 and now wants to be shown in standards-compliant mode, the site can specify it and override this list.
During the course of regular browsing, users may happen upon a site that isn't compatible with Internet Explorer 8. Users can try to manually fix the compatibility problem by switching the page to Compatibility View. A new user interface (UI) button, which is coupled with Group Policy settings, controls the feature. The button is located in the navigation bar, just to the right of the Address bar and next to the Refresh button.
There are cases where there is no action to take, so the Compatibility View button will not appear:
the user is viewing an internal-to-Internet Explorer page (such as about:InPrivate)
the user is viewing a page that has declared it's "ready" for Internet Explorer 8 through use of the versioning <meta> tag or HTTP header
the user is viewing an intranet page and has the Display intranet sites in Compatibility View checkbox selected in the Compatibility View Settings window
the user is viewing any webpage and has the Display all websites in Compatibility View checkbox selected in the Compatibility View Settings window
the user is viewing a webpage that is included on the Microsoft-supplied Compatibility View updates list and has the Include updated website lists from Microsoft checkbox selected in the Compatibility View Settings window
the user has toggled either the Document Mode or the Browser Mode settings via the Internet Explorer Developer Tools
Compatibility View is switched on demand, without requiring browser restart, although the user will see the page refresh. The scope of Compatibility View is limited to the domain being viewed when the button is clicked, not for each process or tab. Internet Explorer 8 remembers the user's button clicks: the next time the user visits a broken website, he or she will not have to click the button again.
In the Compatibility View Settings window, the user can override the default behavior and instead choose to display all intranet sites in Internet Explorer 8 mode (Compatibility View off). The user can also configure a policy where any website is viewed in Compatibility View mode. Finally, the user can pre-populate a list of websites that should always be viewed in Compatibility View.
Choosing Display all websites in Compatibility View forces Internet Explorer 8 to display webpage content in a manner similar to how Internet Explorer 7 handles standards mode webpages.
For more information, see Update your site to render in Internet Explorer 7 mode and Defining Document Compatibility.
return to top
Accessibility
Zoom Version 2
Page zoom lets you enlarge or reduce the view of a webpage to improve readability. The feature is particularly useful on really large and really small displays, allowing for scaling of content while maintaining the intended layout of the page. The second iteration of the zoom feature set (first shipped in Internet Explorer 7) focuses on improving the existing experience by providing a higher quality, more predictable, and persistent zooming experience. Primary features in this release include the elimination of horizontal scroll bars for the majority of mainstream scenarios and the introduction of persistent zoom states.
See Designing for Page Zoom in Internet Explorer 8 for more information.
Please check out W3C's ARIA (Accessible Rich Internet Applications) Support, UI Automation Support and Caret Browsing for more Accessibility features.
return to top
High DPI
You can use the Windows DPI Scaling feature to scale up Windows fonts and user interface (UI) elements (such as buttons, icons, input fields, and so on) by a given percentage. This is different from the scaling that occurs when you lower the display resolution because in the DPI Scaling case, Windows is providing fonts and UI elements that are drawn with more pixels, resulting in a larger, higher fidelity, and a sharper Windows experience.
Like Windows Vista, the Internet Explorer 8 user interface is entirely DPI Scaling aware, and all UI elements and fonts are scaled accordingly. Additionally, larger and higher-fidelity icons are used. Notice the difference in the Internet Explorer UI elements when Windows DPI Scaling is set to 96 dpi and 120 dpi, respectively:
Internet Explorer UI elements at 96 dpi
Internet Explorer chrome at 120 dpi
By default, Internet Explorer 8 will zoom the content of the web to match your Windows DPI Scaling settings. (Note that this is a change from Internet Explorer 7, which did not zoom to match Windows DPI Scaling settings.) For example, if you set your DPI Scaling to 120 dpi, Internet Explorer 8 will zoom the content of webpages by 125%.
For more information, especially for developers who want to take advantage of high dpi in their webpages and web browser controls (WebOCs), please see Making the Web Bigger .
return to top
Internet Explorer 8 Gallery
The Internet Explorer Gallery is a website for sharing, rating, and reviewing content designed for Internet Explorer. This showcase is the primary destination for Internet Explorer 8 users to discover new Accelerators, Web Slices, and Search Providers for personalizing their browsing experiences.
Featured Gallery add-ons are regularly updated through a Web Slice included with Internet Explorer 8. Users will also be able to access the Gallery from the new Manage Add-ons window. The Internet Explorer Gallery is available now in a number of languages, with more coming online in the future.
You can even upload your own Internet Explorer add-on to the gallery by following three simple steps:
- Go to http://www.ieaddons.com
- Create a user account.
- Follow the instructions for uploading your support files.
Now users from around the world will be able to view and download your scenario in the Internet Explorer Gallery!
return to top
ActiveX Control Improvements
Per-Site ActiveX Controls
Internet Explorer 8 gives users more control over where and in what context ActiveX controls will run. In Internet Explorer 8, ActiveX controls embedded as web objects are presented as add-ons. Through the new Manage Add-ons window, the registry, or ATL Site Lock, users can restrict add-ons to specific websites.
If an add-on is implemented on a website, the Information bar gives users the option of running an ActiveX control on all websites, or just the current one; this behavior is easily changed in the Manage Add-ons window.
Just as in Internet Explorer 7, to maintain an ideal user experience, common controls such as Adobe Flash will initially be permitted to run on all websites.
Per-user ActiveX Controls
For new ActiveX control packages, Internet Explorer 8 removes administrative involvement from the control installation process. This solution addresses issues raised by customers for previous versions of Internet Explorer, where administration of controls was not optimal. In Windows Vista, a standard user can install ActiveX controls to the user's own profile without administrative involvement. Should the user install a malicious ActiveX control, the system itself will not be affected. Because the installation will affect only the user's profile, the risk and cost of this modification is lowered significantly.
This solution relies on features found only in Windows Vista and is therefore not available in Windows XP. The benefits of administrator-free ActiveX installation include the following:
Developers and power users looking to test the conversion of per-machine controls to per-user ones are welcome to use the Per-User ActiveX Conversion toolkit to do so. This standalone application aims to break open, convert, and repackage controls for use as per-user applications within a testing environment. The toolkit can be downloaded from http://www.codeplex.com/pact.
ActiveX Application Channel Logging
For a smoother testing and deployment experience, logging events were added to the initialization, loading, and instantiation of ActiveX controls. Success and failure are raised for a number of steps in the process, enabling developers and enterprise administrators to perform efficient root cause analyses to determine the reason for control failure. These events are turned on when the Application Compatibility Toolkit (ACT) feature control key is set; the events can be accessed through the toolkit.
Deprecation of activex.microsoft.com
The ActiveX "homepage" has been removed from default Codebase lookup queries in Internet Explorer 8. This means that websites that do not specify a valid <codebase> tag will not forward to this webpage for fallback scenarios when downloading ActiveX controls.
return to top
Loosely-Coupled Internet Explorer (LCIE)
Loosely-coupled Internet Explorer (LCIE) is an architectural effort to improve the browser by separating its components and loosening their interdependence; most notably, it is an attempt to isolate the Internet Explorer frame and its tabs into separate processes. In Internet Explorer 8, this isolation brings about improved performance and scalability, as well as more potent methods to recover from problems like disk or system failure.
This feature may impact the compatibility of extensions—including ActiveX, Browser Helper Objects (BHOs), and UI Toolbar—that use certain programming techniques. Such extensions might be affected by the following changes:
-
Insertion of a new intermediate window between the UI frame and each tab
- Extensions that use window hierarchy techniques to locate frame and tab windows will have to account for this.
-
The Internet Explorer frame process runs at medium-integrity level
- Tab processes might run at low or medium but are always parent to this medium-integrity frame. Extensions that create a subclass of the frame from a low-integrity tab process might no longer function correctly.
-
The Internet Explorer frame and tabs run in separate processes.
- Extensions that use unsupported messaging techniques might no longer function correctly; those that use the standard COM interfaces will not be affected.
In Internet Explorer 8 we have improved reliability and performance with LCIE. Specifically, we have made the following changes:
-
Frame Process Merging
- To improve startup performance, the number of processes that get initialized whenever the browser is launched has been reduced from two—one for the frame and one for the tabs—to only one frame process for the first time the browser is launched. Subsequent launches will only start a new tab process or create a new tab in an existing tab process.
For users accustomed to viewing a website in several "sessions," such as by logging on to multiple e-mail websites simultaneously, they can specify the nomerge command-line option to disable this feature.
-
More tab processes
- Most Internet Explorer sessions use no more than three tabs; accordingly, there were three efficient tab processes. Contingent upon user experience, the more powerful the computer, the more processes will be added (up to a limit). The added processes will offer a significantly improved isolation in the event of a failure; if each tab has its own process, websites will be completely isolated from one another.
-
Virtual tabs.
- Process can now be hot-swapped from underneath a tab. In previous versions of Internet Explorer, Protected Mode worked on a per-process basis. For example, if in Internet Explorer 7 a website was added to the list of trusted websites, and if that website linked to one that was not trusted, the browser windows would switch when the link was clicked.
In Internet Explorer 8 with LCIE, the frame is split from the tabs to address this issue. With the split, a new tab is created in the same window so that a user is switched to that tab, as opposed to being "forced" to a new window.
Virtual tabs enable navigation across Protected Mode in the same tab, because the process is simply switched under the tab to the correct integrity level. This is really just a UI enhancement; other than to enable a more convenient transition between the on and off states of Protected Mode, virtual tabs do not impact security or Protected Mode in any way.
For more information, see Loosely-Coupled Internet Explorer.
return to top
DEP/NX Memory Protection
Internet Explorer 7 on Windows Vista introduced a new Internet Control Panel option—Enable memory protection to help mitigate online attacks. This option is also referred to as Data Execution Prevention (DEP) or No-Execute (NX). When enabled, it works with the processor to help prevent
buffer overflow attacks by blocking code execution from memory that is marked as non-executable.
In Internet Explorer 8 on Windows Vista Service Pack 1 (SP1) or later, this option is enabled by default.
While DEP/NX is not a panacea against all memory-based vulnerabilities, when combined with other technologies like Address Space Layout Randomization (ASLR), it helps prevent reliable exploitation of common buffer overflow vulnerabilities in Internet Explorer and the add-ons it loads.
No additional user interaction is required to provide this protection, and no new prompts are introduced.
DEP/NX Compatibility
For Internet Explorer 7, DEP/NX was disabled by default for
compatibility reasons. Several popular add-ons were not compatible with DEP/NX and would crash when Internet Explorer loaded them with DEP/NX enabled. The most common problem was that these add-ons were built using an older version of the
ATL library. Before ATL version 7.1 SP1, ATL relied upon dynamically generated code in a way not compatible with DEP/NX. While developers of many popular add-ons have since released updated extensions compatible with DEP/NX, some add-ons may not be updated before Internet Explorer 8 becomes available.
Fortunately, new DEP/NX APIs have been added to Windows service packs to enable use of DEP/NX while retaining compatibility with older ATL versions. These new APIs allow Internet Explorer to opt into DEP/NX
without causing add-ons built with older versions of ATL to crash.
In rare cases in which an add-on is not DEP/NX compatible for reasons other than outdated ATL usage, a group policy option will be available to enable an organization to opt out of DEP/NX for Internet Explorer until an updated version of the broken control can be deployed. Local administrators can control DEP/NX by running Internet Explorer as an administrator and clearing the Enable memory protection to help mitigate online attacks option in the Advance pane of Internet Options.
Developer Call to Action
If you build Internet Explorer add-ons, you can help ensure a smooth upgrade to Internet Explorer 8 by taking the following steps today:
- Rebuild older ATL code against ATL v7.1 SP1 or later (Visual Studio 2005 includes ATL 8.0).
- Set the /NXCompat linker option to indicate that your extension is compatible with DEP/NX.
- Test your code with DEP/NX enabled in Internet Explorer 7 on Windows Vista.
- Opt your code into
other available defenses like /GS, /SafeSEH, and ASLR.
return to top
Manage Add-ons
In Internet Explorer 8, the process of managing add-ons has been improved. Users can now more easily find, research, and manage the browser's toolbars and controls. Introduced in Windows XP Service Pack 2 (SP2), the Manage Add-ons window allows users to view, enable, and disable currently running add-ons.
Manage Add-ons tracks the following types of add-ons: ActiveX controls, Browser Helper Objects (BHOs), browser extensions, Explorer bars, and toolbars. In Internet Explorer 8, this list has been expanded to include search providers, accelerators, and settings for InPrivate mode. Controls do not need to be modified to run in Internet Explorer 8.
For more information, see Manage Add-ons.
return to top
Add-on Management Features
Toolbar Close Button
Internet Explorer 8 displays the Close button next to any third-party toolbar add-on that is installed and enabled.
Users of previous versions of Internet Explorer have clearly indicated the need for easy hiding and disabling of toolbar add-ons. Toolbars are a useful feature, but any add-on that runs in Internet Explorer will have an impact on the browser's startup time, new tab creation time and navigation speed. In general, the more add-ons that are enabled, the slower the browser runs.
In Internet Explorer 7, to hide a toolbar most users clicked the Tools button, and then cleared the desired toolbar from the Toolbar menu; or they used the browser frame shortcut menu. Although this hides the toolbar, the add-on's code continues to run and load the add-on and its toolbar every time a user starts the browser, thus affecting the latter's performance.
To permanently hide and disable the toolbar in Internet Explorer 7, a user had to click Manage Add-ons on the Tools menu, then click Enable or Disable Add-ons, and then, in the Manage Add-ons dialog box, click on the toolbar's name and select Disable. In addition, because most toolbars consist of two or more related add-ons that plug into Internet Explorer, the Manage Add-ons dialog box might display several entries for a toolbar, and the user might have to disable them as well. Thus, few Internet Explorer 7 users completely hid and disabled a toolbar, neutralizing its effect on performance.
Internet Explorer 8 simplifies this task. Clicking the Close button next to a toolbar opens the Disable Add-on dialog box:
This dialog box shows that there are two add-ons: the visible toolbar, and the related toolbar helper. Internet Explorer 8 automatically finds all related add-ons and checks whether they are installed in the same folder or share a DLL. The user has a choice to clear the option under Related add-ons that will also be enabled. In addition, clicking the Disable button will cause Internet Explorer to disable both types of add-ons and to free its resources for faster browsing.
The same dialog box may appear as shown next.
The above screenshot shows that in addition to the visible add-on, Internet Explorer has detected a related add-on, and both add-ons must be disabled to completely disable the toolbar. The browser has also found two other add-ons by the same publisher (in this case, the Chat Application Toolbar and the Chat Application Toolbar Helper) that may have to be disabled. Some installations of toolbars do not group all related components, so users are given the option to disable all add-ons from the same publisher.
A toolbar can be enabled by clicking the Tools button, and then clicking the desired toolbar from the Toolbar menu; or by using the browser frame or context menu. Internet Explorer 8 will find all the relevant add-ons required to enable the toolbar.
Toolbar Load Time
The Manage Add-ons window displays the load time for all enabled add-ons.
Load time describes how long (on average) it takes Internet Explorer to load the add-on and to wait for the add-on to finish initialization. The timing works as follows:
Add-ons are created and initialized (loaded) every time Internet Explorer 8 starts or when a user opens a new window or browser tab. If the browser appears to run slowly, the user can open the Manage Add-ons window to check for slower-running add-ons and disable the ones that are no longer needed. This action should speed up the loading of Internet Explorer 8 and the opening of new windows and browser tabs.
return to top