Neha Patil (Editor)

Trident (layout engine)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Microsoft

License
  
Proprietary

Written in
  
C++

Development status
  
Discontinued in favor of EdgeHTML

Type
  
Application framework, software component

Website
  
msdn.microsoft.com/en-us/library/aa741317.aspx

Trident (also known as MSHTML) is a proprietary layout engine for the Microsoft Windows version of Internet Explorer, developed by Microsoft.

Contents

It was first introduced with the release of Internet Explorer version 4.0 in October 1997; it has been steadily upgraded and remains in use today. For versions 7 and 8 of Internet Explorer, Microsoft made significant changes to the Trident layout engine to improve compliance with web standards and add support for new technologies. Since then, Microsoft intends to comply with many modern web standards, and also intends to significantly update the layout engine to be more competitive and modern compared to other current layout engines.

In the Microsoft Edge browser, Trident is superseded by its fork – EdgeHTML.

Use in software development

Trident was designed as a software component to allow software developers to easily add web browsing functionality to their own applications. It presents a COM interface for accessing and editing web pages in any COM-supported environment, like C++ and .NET. For instance, a web browser control can be added to a C++ program and Trident can then be used to access the page currently displayed in the web browser and retrieve element values. Events from the web browser control can also be captured. Trident functionality becomes available by linking the file mshtml.dll to the software project.

Use cases

All versions of Internet Explorer for Windows from 4.0 onwards use Trident, and it is also used by various other web browsers and software components (see Internet Explorer shells). In Windows 98, Windows Me, and Windows 2000, it is also used for the Windows file manager/shell, Windows Explorer. The Add/Remove Programs tool in Windows 2000 uses Trident to render the list of installed programs, and in Windows XP it is also used for the User Accounts Control Panel, which is an HTML Application. Trident however was not used by Internet Explorer for Mac (which used Tasman starting with version 5.0), nor by the early versions of Internet Explorer Mobile.

Some other Trident-based applications include:

  • AOL Explorer, a web browser
  • AOL Instant Messenger 6.x, which uses Trident to render conversation and profile windows, and advertisement panels
  • Avant Browser
  • Bento Browser (built into Winamp)
  • EA Link, incompatible with Trident as of Internet Explorer 7 RC2
  • Google Talk, which uses Trident to render chat windows and profile cards
  • GreenBrowser, which is also presented at the BrowserChoice.eu page
  • IE Tab, a Firefox and Google Chrome add-on used to render pages with Trident within the Firefox or Chrome user interface.
  • Impulse (content delivery), uses Trident to render "Explore" page, as well as several of the "Community" pages
  • KioWare Kiosk system software uses Trident to render web content.
  • LimeWire, which renders the page 'New@Lime'
  • Lunascape, developed by Lunascape Corporation
  • Maxthon, which uses the Trident engine while adding features not built into IE7
  • MediaBrowser, customized browsers, especially for Nintendo
  • MenuBox, a web browser
  • Microsoft Compiled HTML Help
  • Microsoft Encarta and related products
  • Microsoft InfoPath
  • Microsoft Outlook which uses Trident to render HTML Messages (prior to Outlook 2007) and the "Outlook Today" screen
  • Microsoft Outlook Express, which uses Trident to render HTML Messages
  • Microsoft Visual InterDev 6 uses Trident in editing mode as visual HTML designer
  • Microsoft Visual Studio 2002-2005 use Trident in editing mode to provide visual ASP.NET/HTML designer
  • Microsoft Visual Studio and Visual Basic to render the WebBrowser control
  • MSN Messenger, which uses it to produce Flash-based "winks" and games, and for all advertisements shown in the advertisement banner
  • NeoPlanet, a web browser
  • NetCaptor, a web browser
  • Netscape Browser (Netscape 8), which used Trident to render web pages in IE mode
  • Pyjamas, a python Widget set Toolkit. Embedding IWebBrowser2 as an Active-X component and accessing the COM interface, Pyjamas uses Trident for the Desktop version, through the python win32 "comtypes" library.
  • Phoenix Browser, a lightweight web browser
  • RealNetworks
  • SiteKiosk, a kiosk browser software
  • Sleipnir, a web browser
  • SlimBrowser, a web browser
  • Skype, software for VoIP that renders HTML data with Trident
  • TomeRaider, an ebook reader
  • Tencent Traveler, a web browser
  • ThreeTeeth Browser, a lightweight web browser
  • UltraBrowser, a web browser
  • Valve's Steam client, previous versions of which used Trident to render the "Store", "Update News" and "Community" sections as well as the Steam in-game browser and MOTD screens in Valve games. The Steam client was updated to use WebKit instead of Trident for these features. Then was updated further to use the Chromium Embedded Framework.
  • WebbIE, a web browser
  • Windows Live Writer, which uses Trident for its editor
  • Windows Media Player, which uses Trident to render the "Media Information" pages
  • 360 Secure Browser, a web browser in China
  • Standards compliance

    Current versions of Trident, as of Internet Explorer 9 have introduced support for CSS 3, HTML5, and SVG, as well as other modern web standards. Web standards compliance was gradually improved with the evolution of Trident. Although each version of IE has improved standards support, including the introduction of a "standards-compliant mode" in version 6, the core standards that are used to build web pages (HTML and CSS) were sometimes implemented in an incomplete fashion. For example, there was no support for the <abbr> element which is part of the HTML 4.01 standard prior to IE 8. There were also some CSS attributes missing from Trident, like min-height, etc. as of IE 6. As of Internet Explorer 8 CSS 2.1 is fully supported as well as some CSS 3.0 attributes. This lack of standards compliance has been known to cause rendering bugs and lack of support for modern web technologies, which often increases development time for web pages. Still rendering differences of HTML between standards-compliant browsers are not completely resolved yet.

    Microsoft alternatives

    Apart from Trident, Microsoft also has and uses several other layout engines. One of them, known as Tasman, was used in Internet Explorer 5 for Mac. Development of Internet Explorer for Mac was halted in roughly 2003, but development of Tasman continued to a limited extent, and was later included in Office 2004 for Mac. Office for Mac 2011 uses the open source WebKit engine. Microsoft's now defunct web design product, Expression Web as well as Visual Studio 2008 and later do not use Internet Explorer's Trident engine, but rather a different engine.

    In 2014, Trident was forked to create the engine EdgeHTML for Microsoft Edge on Windows 10. The new engine is "designed for interoperability with the modern web" and deprecates or removes a number of legacy components and behaviors, including document modes, ensuring that pure, standards-compliant HTML will render properly in browsers without the need for special considerations by web developers. This resulted in a completely new browser called Microsoft Edge, which replaces Internet Explorer as a stock browser of Windows and a base of Microsoft's web related services.

    References

    Trident (layout engine) Wikipedia