Gecko:Moving Plugins To Content
Jump to navigation
Jump to search
Christian Biesinger <cbiesinger@web.de> will probably work on this
The Plan
Steps:
- Move nsPluginInstanceOwner to its own file
- Make it implement a new interface nsPIPluginInstanceOwner which has all the methods needed for objectframe<->instanceowner communication
- Extend nsIObjectFrame with methods the instance owner needs to call (if any)
- Make the instance owner own a content node rather than a frame (probably)
- Provide method NS_NewPluginInstanceOwner or something. also takes care of Init
- Move that file to content (or, directly add it in content)
- ...
- Create the owner on the content node. Provide a method on nsIObjectFrame to tell it that the plugin instance owner changed. provide a method to get the current instance owner. (Similar to how nsIImageLoadingContent works)
Plugins without frames
What should happen with plugins that have no frame?
Possibilities, that I can think of right now:
- They have a widget that's clipped to an empty rect
- They have no widget. NPP_SetWindow is called with something that indicates no window (NULL window arg, or null aWindow->window, whatever)
Other questions
- Who owns the widget? The instance owner, or the frame?