The changes in https://bugs.webkit.org/show_bug.cgi?id=23917 assume that HTMLMediaElement::finishParsingChildren is always called before the plug-in gets instantiated and calls HTMLMediaElement::setMediaPlayerProxy. This is not true on all platforms because of threading latency, so MediaPlayer.cpp should cache the plug-in proxy so it can pass it to the media engine at a later time.
Created attachment 27817 [details] proposed patch
Comment on attachment 27817 [details] proposed patch > Index: WebCore/platform/graphics/MediaPlayer.cpp > =================================================================== > +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) > + virtual void setPoster(const String&) { } setPoster(const String& /*url*/) would be slightly clearer. > Index: WebCore/platform/graphics/MediaPlayer.h > =================================================================== > --- WebCore/platform/graphics/MediaPlayer.h (revision 41083) > +++ WebCore/platform/graphics/MediaPlayer.h (working copy) > @@ -149,6 +149,9 @@ private: > bool m_visible; > float m_rate; > float m_volume; > +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) > + WebMediaPlayerProxy* m_playerProxy; > +#endif Maybe add a comment to say that m_playerProxy is not owned and where it comes from?
Committed revision 41118.