Gecko:Moving Plugins To Content: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 8: | Line 8: | ||
** Extend nsIObjectFrame with methods the instance owner needs to call (if any) | ** 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) | ** 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 = | = Plugins without frames = | ||
Revision as of 22:05, 2 January 2006
Christian Biesinger <cbiesinger@web.de> will probably work on this
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)