I’ve been spending a good amount of time this week planning changes to our NPAPI plugin architecture on Mac OS X. I have filed bugs and set up a wiki page to document this planning.
This first section of the wiki page describes improvements I hope to make to our plugin code for Gecko 1.9. Supporting NP_GetEntryPoints should make things easier for plugin authors and keep us in sync with WebKit. Using a slower idleEvent timer for plugins that are not in a foreground tab on the key window should help with CPU usage when people have lots of plugins in different tabs. Supporting Mac OS X NPAPI Drawing Models means we can support 64-bit plugins and allow 32-bit plugins to draw using CoreGraphics.
The second section points readers to the current revision of the Mac OS X NPAPI Drawing Models spec. It is not final, there will most likely be quite a few revisions and additions (in particular, an OpenGL Drawing Model). I have already started implementing some of it just to see how it goes, but I won’t be posting anything until the spec is final of course. This spec was originally created to solve the problem of 64-bit plugins on Mac OS X, but it actually also solves the more immediate problem of 32-bit plugins being able to use CoreGraphics and thus it has the general title of Mac OS X NPAPI Drawing Models. A separate proposal might eventually come out to modernize event handling data types, but that isn’t on the table yet.