Open Bug 767635 Opened 9 years ago Updated 8 years ago

Simplify nsObjectLoadingContent plugin start/stop (InitializePluginInstance/SyncStartPluginInstance/PlayPlugin/AsyncStartPluginInstance/StopPluginInstance/DoStopPlugin/DoDelayedStop) code


(Core :: Plug-ins, defect)

Not set





(Reporter: johns, Assigned: johns)


(Blocks 1 open bug)


We likely don't need seven functions to start and stop a plugin, and some of this code was written to handle complexity that no longer exists
Blocks: 767636
The sad thing is that the current state of starting/stopping plugins is already a big simplification over the previous code (pre-90268). I think a lot of the remaining complexity is from our being unsure about changing certain nsObjectLoadingContent behavior, which your rewrite should help with.
Blocks: 764480
Another issue with this -

We tear down plugin prototypes in the plugin stop code, which, in a delayed plugin stop, may be after the <object> tag has moved on. Could cause a race condition with trashing a reloaded-plugins proto. This code also all needs comments to explain how we hook/unhook the proto.
No longer blocks: 764480
Blocks: 781482
Blocks: 782644
No longer blocks: 781482
No longer blocks: 767636, 782644
Blocks: 790244
This is blocking bug 810082 from landing in FF18, which is a requirement for using CTP for Flash in that version of Firefox. Any updates here?
A few high priority things distracted me here, I should have a patch here in the next day or so
No longer blocks: 810082
Another issue for this is that nsPluginInstanceOwner is associated with the content, and if we're allowing delayed stops, multiple plugins could refer to the same content, which needs to be sanity checked (and made a non-weak pointer probably)
This should also-also address the nsPluginHost code that pulls instances out from under us and then tries to respawn them by reflowing...
This is no longer blocking bug 810082, and probably wont be uplifted.
Blocks: 818785
Depends on: 851378
You need to log in before you can comment on or make changes to this bug.