Extensibility
See also: Component Object Model and Browser Helper ObjectInternet Explorer exposes a set of Component Object Model (COM) interfaces that allow other components to extend the functionality of the browser. Extensibility is divided into two types: Browser extensibility and Content extensibility. The browser extensibility interfaces can be used to plug in components to add context menu entries, toolbars, menu items or Browser Helper Objects (BHO). BHOs are used to extend the feature set of the browser, whereas the other extensibility options are used to expose the feature in the UI. Content extensibility interfaces are used by different content-type handlers to add support for non-native content formats. BHOs not only have unrestricted access to the Internet Explorer DOM and event model, they also can access the filesystem, registry and other OS components. Content extensibility can be either in terms of Active Documents (Doc Objects) (e.g., SVG or MathML) or ActiveX controls. ActiveX controls are used for content handlers that render content embedded within an HTML page (e.g., Adobe Flash or Microsoft Silverlight). Doc objects are used when the content type will not be embedded in HTML (e.g., Microsoft Word, PDF or XPS). In fact, the Trident rendering engine is itself exposed as a Doc object, so HTML in itself is treated as an Active Document.
Internet Explorer add-on components run with the same privileges as the browser itself, unlike client-side scripts that have a very limited set of privileges. Add-ons can be installed either locally, or directly by a web site. Since the add-ons have a more privileged access to the system, malicious add-ons can and have been used to compromise the security of the system. Internet Explorer 6 Service Pack 2 onwards provide various safeguards against this, including an Add-on Manager for controlling ActiveX controls and Browser Helper Objects and a "No Add-Ons" mode of operation as well as greater restrictions on sites installing add-ons.
Internet Explorer 9 introduced a new component — Add-on Performance Advisor. Add-on Performance Advisor shows a notification when one or more of installed add-ons exceed a pre-set performance threshold. The notification appears in the Notification Bar when the user launches the browser.
Internet Explorer itself can be hosted by other applications via a set of COM interfaces. This can be used to embed the browser functionality inside the application. Also, the hosting application can choose to host only the MSHTML.dll rendering engine, rather than the entire browser.
Read more about this topic: Internet Explorer