Notes
Outline
Plugin Codestock
Topics
New C++, XPCOM API
Backward Compatibility
LiveConnect
New API Basics
nsIPlugin
CreatePlugin(…,aMIMEType,...)
Initialize()
Shutdown()
GetMIMEDescription()
GetValue()
nsIPluginInstance
Initialize(nsIPluginInstancePeer)
GetPeer()
Start()
Stop()
Destroy()
SetWindow(nsPluginWindow)
NewStream(nsIPluginStreamListener)
Print(nsPluginPrint)
GetValue()
HandleEvent(nsPluginEvent,...)
nsIPluginStreamListener
OnStartBinding(nsIPluginStreamInfo)
OnDataAvailable()
OnFileAvailable()
OnStopBinding()
GetStreamType()
nsIPluginManager
GetURL(…, nsIPluginStreamListener, …)
PostURL(…, nsIPluginStreamListener, …)
GetValue(nsPluginManagerVariable, ...)
UserAgent()
nsIPluginInstancePeer
GetValue()
GetMIMEType()
GetMode(nsPluginMode)
NewStream(…, nsIOutputStream, …)
ShowStatus()
SetWindowSize()
nsIPluginStreamInfo
GetContentType()
IsSeekable()
GetLength()
GetLastModified()
GetURL()
RequestRead(nsByteRange, …)
nsIPluginTagInfo
GetAttributes()
GetAttribute()
Backward Compatibility
Two Aspects:
Letting 4x Plugins work in SeaMonkey
Letting 5x Plugins work in old browsers
LiveConnect
Problem: Old Plugin LC is dependent on JRI, which does not exist in SeaMonkey
So where’s the Code?
Mozilla/modules/plugin/public
Public interfaces
Mozilla/modules/plugin/nglsrc
Browser-side support code
Mozilla/modules/plugin/test
Sample plugin
Contact Info
Plugin Engineers:
Andrei Volkov (av@netscape.com)
QA:
http://bugzilla.mozilla.org
file bugs on “Plug-ins” component
Marketing:
Eric Krock (http://sites.netscape.net/ekrock/answers.html)