Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Plugins are shared libraries that users can install to display content that the application itself can't display natively. For example, the Adobe Flash plug-in is used to access Flash content (including videos and certain interactive applications), and the QuickTime and RealPlayer plugins are used to play special format videos in a web page.
Important: Plugins are now a legacy technology. They are not available on most mobile devices. Mozilla encourages website developers to avoid using plugins wherever possible. If there are plugin features which are not available in the web platform, we encourage developers to post their use cases to mozilla.dev.platform project list, so that Mozilla can prioritize web platform work to make those use cases possible.
Plugins are written using NPAPI, the cross-browser API for plugins. The main source of documentation for NPAPI is the NPAPI plugin API reference. To make your plugin scriptable from web pages, use npruntime.
Plug-in Basics
- How Plug-ins Are Used
- How Plug-ins Work
- Understanding the Runtime Model
- Plug-in Detection
- Overview of Plug-in Structure
- Windowed and Windowless Plug-ins
- The Default Plug-in
- Using HTML to Display Plug-ins
- Plug-in References
Plug-in Development Overview
- Writing Plug-ins
- Registering Plug-ins
- Drawing a Plug-in Instance
- Handling Memory
- Sending and Receiving Streams
- Working with URLs
- Getting Version and UI Information
- Displaying Messages on the Status Line
- Making Plug-ins Scriptable
- Building Plug-ins
- Installing Plug-ins
- Plug-in Installation and the Windows Registry
Initialization and Destruction
Drawing and Event Handling
Streams
- Receiving a Stream
- Telling the Plug-in When a Stream Is Created
- Telling the Plug-in When a Stream Is Deleted
- Finding Out How Much Data the Plug-in Can Accept
- Writing the Stream to the Plug-in
- Sending the Stream in Random-Access Mode
- Sending the Stream in File Mode
- Sending a Stream
- Creating a Stream
- Pushing Data into the Stream
- Deleting the Stream
- Example of Sending a Stream