Gecko:Moving Plugins To Content: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 14: | Line 14: | ||
* ... | * ... | ||
* 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) | * 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) | ||
* I considered making an nsMacPluginInstanceOwner, subclass of nsPluginInstanceOwner. All those #ifdef XP_MAC code would move there. Thoughts? | |||
= Plugins without frames = | = Plugins without frames = | ||
| Line 25: | Line 27: | ||
= Other questions = | = Other questions = | ||
* Who owns the widget? The instance owner, or the frame? | * Who owns the widget? The instance owner, or the frame? | ||
** Note that some functions (some listeners) require a widget. | |||
Revision as of 22:14, 2 January 2006
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)
- I considered making an nsMacPluginInstanceOwner, subclass of nsPluginInstanceOwner. All those #ifdef XP_MAC code would move there. Thoughts?
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?
- Note that some functions (some listeners) require a widget.