Introduction
Since its release in March 2009, Microsoft Internet Explorer 8 has made it easier than ever before for you to build and maintain sites that reach and maintain contact with your customers. Built-in developer tools make it efficient and easy to develop and debug your site. New extensibility capabilities let you differentiate your site and keep customers coming back.
- Create rich sticky experiences
- True and accurate standards support. Code once. Run everywhere
- Great tooling support right out of the box
In this paper, we will take a look at the enhanced Internet Explorer 8 feature set, compatibility with previous versions and some topics relevant to developers.
Enhancements in IE8
User Features at a Glance
Category | Feature | Description |
Performance | Accelerators | Help you quickly perform your everyday browsing tasks without navigating to other websites to get things done. |
| Search suggestions | New search capabilities in Internet Explorer 8 will offer relevant suggestions as you type words into the search box to help save time. |
| Visual suggestions | Search box has been updated to enable search providers to provide a “visual search”. |
| Find On Page | Redesigned Find On Page toolbar, The toolbar is integrated below the tab row, so that it does not obscure any content on the page. |
| Address Bar | New address bar will drop down with an Intellisense-like list of suggestions from the user’s history & favorites. |
| Faster | Faster startup, faster loading, faster rendering, faster script engine. |
Ease of Use | Web Slices | Keep up with frequently updated sites directly from the new Favorites Bar. If a Web Slice is available on a page, a green Web Slices icon will appear in the Command Bar. |
| Compatibility View | Internet Explorer 8 is a new release and some websites may not yet be ready for the new browser. Click the Compatibility View toolbar button to display the website as viewed in Internet Explorer. |
| Enhanced tabbed browsing | When one tab is opened from another, the new tab is placed next to the originating tab and color coded. |
| Improved favorites and history management | You can save Favorites, RSS Feeds, and Web Slices to the Favorites Bar that appears across the top of the browser. |
| Improved favorites and history management | You can save Favorites, RSS Feeds, and Web Slices to the Favorites Bar that appears across the top of the browser. |
| Redesigned New Tab page | The New Tab page loads quickly and provided links make it easier to get started on your next browsing activity. |
| Improved Zoom | Adaptive Page Zoom improves upon traditional zoom-in/zoom-out functionality in the browser by intelligently relaying out the page content and eliminating the need to scroll left and right. |
| A better back button | Now when you hit the back button, more pages will behave the way you expect. |
Safety | Stay Safer Online | Helps protect you from today's threats, including malware and phishing, as well as emerging threats that can compromise your computer without your knowledge. |
| SmartScreen | Set of technologies designed to help protect users from a malicious website by blocking either the entire site or the dangerous content.
The SmartScreen Filter provides protection for:
- Phishing Attacks
- Socially Engineered Malware Attacks
- Cross Site Scripting Attacks
- Includes out of the box, on by default, a cross-site scripting filter that can detect these types of attacks and disable harmful scripts.
- ClickJacking Attacks
- Allows website developers to protect their sites from these kinds of attacks by preventing their legitimate pages from being "framed."
|
| Domain highlighting | Highlighting the domain name in the address bar in black, and the remainder of the URL string in gray. |
| Data Execution Prevention (DEP) | Prevent damage to your computer from viruses and other security threats by preventing certain types of code from writing to executable memory space. |
| InPrivate Browsing | Prevent your browsing history, temporary Internet files, form data, cookies, and usernames and passwords from being retained by the browser. |
| InPrivate Filtering | Provides users an added level of control and choice about the information that third party websites can potentially use to track browsing activity. |
| Enhanced delete browsing history | Now when deleting browsing history, you can choose to preserve cookies and temporary Internet files for sites in your Favorites folder. |
| Automatic crash recovery | If a website or add-on causes a tab to crash in Internet Explorer 8, only that tab is affected. |
Being Compatible with Compatibility
When Internet Explorer 6 was released in 2001, it was considered a state of the art web browser that was more standards compliant than it's competition at the time. It gained widespread acceptance as the most used browser in the marketplace. Since then the browser market has changed drastically, and Internet Explorer 6 is barely considered a modern browser. While usage share of Internet Explorer 6 has dropped significantly, it is still used, and developers still have to work with it's many intricacies. In the resulting years since Internet Explorer 6 has been released, the browser vendors have evolved with standards and created more and more compliant browsers.
IE7 was released in 2006 and contained some highly anticipated features that enhanced the user experience, such as tabbed browsing, but also enhancements to better support web standards.
However, it wasn’t until the release of Internet Explorer 8, in which one of the major focuses was on a much stricter compliance with web standards, that it became fully compliant with the Cascading Style Sheets (CSS), Level 2 Revision 1 (CSS2.1) specification and now supports some features of CSS, Level 3 (CSS3).
Internet Explorer 8 Compatibility Features
Internet Explorer 8 introduced a new concept in web compatibility. Rather than forcing developers to update their sites with each new release of a browser, that fixed rendering or layout issues, Microsoft offered developers a way to choose from a known set of rendering engines. Internet Explorer 8 can render sites with it's new rendering engine, or they can choose from the Internet Explorer 7 rendering engine, and finally the Quirks mode engine.
Using this method, developers only need add a simple META tag to their page, or set the flag via an HTTP response header.
By default, Internet Explorer will always use the latest version of the rendering engine, and will only use one of the less standards compliant engines if it is told to by the user, the developer or by Microsoft.
As a web site developer, you can choose a method by which you ensure the compatibility and continued rendering of your site in the IE8 environment:
Ranking | Choice | Description |
Default Choice | No choice by user, developer or Microsoft |
- Internet Explorer 8 uses the Internet Explorer 8 rendering engine
|
Less Preferable | User choice |
- If the site fails to render as expected, the user can choose to click the "Compatibility View" button that forces Internet Explorer to use the Internet Explorer 7 rendering engine
- This requires the user to know and understand the site is broken because of rendering issues
|
Less Preferred | Microsoft Compatibility View List |
- Certain top sites world wide have been included on the Microsoft Compatibility View List and Internet Explorer renders those pages in Internet Explorer 7 mode
- Site owners can override this by using the X-UA-Compatible switch and can get off the list by contacting Microsoft
- You can see sites on the Compatibilty View List by viewing the page res://iecompat.dll/iecompatdata.xml in your Internet Explorer 8
|
Preferred | X-UA-Compatible |
- Declare explicitly via the meta tag which rendering engine to use
|
Best Practices for Compatibility Moving Forward
- Use the <meta> tag content attribute:
- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
- Use IE=EmulateIE7 for legacy and old websites
- Use IE=EmulateIE8 for new and actively maintained websites
- Test your site on Internet Explorer 8, 7, and 6
- Identify site elements that may not work the same in IE8, even with the compatibility tag
- XSS (Cross Site Scripting) Filter– prevents JScript from executing. The XSS Filter operates as an IE8 component with visibility into all requests / responses flowing through the browser. When the filter discovers likely XSS in a cross-site request, it identifies and neuters the attack if it is replayed in the server’s response. Users are not presented with questions they are unable to answer – IE simply blocks the malicious script from executing.
- JSON function calls
- DEP/NX option – Data Execution Prevention (DEP) or No-Execute (NX) prevents code from running in non-executable memory. This protection applies to both Internet Explorer and the add-ons it loads. With DEP/NX the Windows Kernel monitors a program's execution. If the Kernel detects an attempt to run code from a memory page that is not marked executable, the Kernel halts execution of the program, resulting in a "crash." This is a security measure to help ensure that memory-related vulnerabilities (for example, buffer overflows) in the application cannot be exploited in order to execute arbitrary code.
- ACT (Application Compatibility Toolkit) helps customers understand their application compatibility situation by helping identify which applications are compatible with Vista, IE7, and IE8 and which require further testing. ACT allows compatibility data to be uploaded from individual machines to a central location for analysis, grouping and reporting. Once an issue has been identified, help will be available on how to resolve a particular issue or create a workaround. Furthermore, partners and customers using ACT are able to post comments to the Online Application Community, where they can share data and information about application compatibility testing.
- The IE components of ACT are:
- Internet Explorer Compatibility Test Tool (IECTT). The IECTT helps identify your Web-based issues, shows your results in real time, and allows you to upload and view the data in the Application Compatibility Manager (ACM), a part of the ACT toolkit. As you test your application or site, the IECTT records events in real time when compatibility issues occur. For instance, if one of your sites injects JavaScript to another site and the IE8 Cross-site scripting (XSS) filter detects this as a reflection attack, a Cross-Site Scripting Filter event would be logged in the IECTT UI.
- Internet Explorer Compatibility Evaluators (IECE). The IECE can be deployed within an enterprise and will help identify Web-based issues in the background. As you test your application or site, the IECE records events in the background as they occur. You will be able to view the logged events in the ACM after you upload them.
Overall, these tools help customers lower their costs for application compatibility testing, prioritize their applications, and deploy Internet Explorer more quickly.
Just for the Developer
Category | Feature | Description |
Interface | Add On Manager | Single management interface for all ActiveX controls, toolbars, search providers, email providers, etc. |
Platform | Tabbed Isolation | A crash in one tab does not crash other tabs or browser instance. |
Performance | Connection Limits Increase |
- Broadband: 6
- Modem: 2
- Configurable via API’s
|
| Page Loads | Page will continue to load even if script load fails in pre-parser. |
| Jscript |
- DOM object look-ups are much faster
- Circular referenced objects are garbage collected
- Faster native JScript operations
- Function call performance
- String methods
- Array methods
- Read, write, and deleted Object methods
- Garbage collection algorithm
- Communication layer between DOM and JScript
|
DOM | Mutable DOM Prototypes |
- Add new methods
- Add new properties
- Override default built-in behavior for methods
- Override default built-in behavior for properties
|
| Methods |
- hasAttribute(“attrName”) (on Element)
- Supports “unspecified” attributes
- Case comparisons for HTML are case-insensitive
- Getters/setters behave consistently (return strings)
- ownerElement, contentDocument, and more
- getElementById() no longer includes ‘name’d elements
- Dynamic radio buttons and checkboxes now work properly
- getAttribute(for/style/class/[boolean]) fixed
- Boolean attributes properly returned
- HTML collections fixed
- Operation Aborted parsing error relegated to script error
- DataURI
|
| Selectors | Query the element tree using CSS selectors, either on the entire document or on specific element sub-tree. |
Data Transfer | Native JSON Support |
- Faster JSON access
- Uses JSON2 nomenclature
- 3rd party code no longer needed
|
Data Storage (Local) | W3C HTML5 local store | Two different stores, one that is shared across sessions (including tabs), and one that is unique to a session. |
Data Sharing | XDomainRequest | Used to transfer data between domains in different documents within the browser. |
Developer Tools | Debugging Environment |
- JavaScript debugger
- Set break points
- Watch variables
- Immediate window
- JavaScript Profiler
- One click start/stop of profiler
- Quickly see where application is spending time
- Function or Call Tree View
- Save Edits
- Notepad like editing & inline editing
- Add/Change attributes, classes & properties
- Make changes to HTML, CSS, and save to disk
- CSS and HTML debugger
|
Summary
Internet Explorer 8 is a major release in every sense of the term, across the board. Microsoft has incorporated popular features, adhered to leading standards, made security a priority and created a rich platform with developers in mind. Internet Explorer 8 makes it easier than ever for you to build and maintain sites that reach and connect with your customers like never before.
References