The video on the page above doesn't start playing until the window is resized. <rdar://problem/8006102>
Created attachment 56652 [details] patch
Comment on attachment 56652 [details] patch > diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp > index 96fa9e4..baef667 100644 > --- a/WebCore/plugins/win/PluginViewWin.cpp > +++ b/WebCore/plugins/win/PluginViewWin.cpp > @@ -610,6 +610,9 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect) > if (context->paintingDisabled()) > return; > > + // Ensure that we have called SetWindow before we try to paint. > + setNPWindowRect(frameRect()); Plugins may do significant work every time setWindow() is called. Can we be smarter about detecting when it needs to be called (e.g .by remembering the last frameRect that we called it with)?
(In reply to comment #2) > (From update of attachment 56652 [details]) > > diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp > > index 96fa9e4..baef667 100644 > > --- a/WebCore/plugins/win/PluginViewWin.cpp > > +++ b/WebCore/plugins/win/PluginViewWin.cpp > > @@ -610,6 +610,9 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect) > > if (context->paintingDisabled()) > > return; > > > > + // Ensure that we have called SetWindow before we try to paint. > > + setNPWindowRect(frameRect()); > > Plugins may do significant work every time setWindow() is called. Can we be smarter about detecting when it needs to be called (e.g .by remembering the last frameRect that we called it with)? I'm not sure why setNPWindowRect() doesn't already do this, but I'm wary about changing that. To fix this bug, it should only be necessary to call setNPWindowRect here if we haven't called NPP_SetWindow yet. I'll update the patch to do that.
Created attachment 56661 [details] patch v2
Landed in r59904.