summaryrefslogtreecommitdiffstats
path: root/WebCore/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/plugins')
-rw-r--r--WebCore/plugins/PluginView.cpp8
-rw-r--r--WebCore/plugins/PluginView.h5
-rw-r--r--WebCore/plugins/win/PluginMessageThrottlerWin.cpp4
-rw-r--r--WebCore/plugins/win/PluginViewWin.cpp17
4 files changed, 22 insertions, 12 deletions
diff --git a/WebCore/plugins/PluginView.cpp b/WebCore/plugins/PluginView.cpp
index ae1a0a9..42d98a8 100644
--- a/WebCore/plugins/PluginView.cpp
+++ b/WebCore/plugins/PluginView.cpp
@@ -65,10 +65,13 @@
#include "PluginMessageThrottlerWin.h"
#endif
+<<<<<<< HEAD
#if defined(ANDROID_PLUGINS)
#include "TouchEvent.h"
#endif
+=======
+>>>>>>> webkit.org at r60074
#if USE(JSC)
#include "JSDOMBinding.h"
#include "JSDOMWindow.h"
@@ -799,6 +802,7 @@ PassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance()
return 0;
#endif // NETSCAPE_PLUGIN_API
}
+<<<<<<< HEAD
#endif // JSC
#if USE(V8)
@@ -831,6 +835,9 @@ NPObject* PluginView::getNPObject() {
#endif // NETSCAPE_PLUGIN_API
}
#endif // V8
+=======
+#endif
+>>>>>>> webkit.org at r60074
void PluginView::disconnectStream(PluginStream* stream)
{
@@ -920,6 +927,7 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p
, m_isJavaScriptPaused(false)
, m_isHalted(false)
, m_hasBeenHalted(false)
+ , m_haveCalledSetWindow(false)
{
#if defined(ANDROID_PLUGINS)
platformInit();
diff --git a/WebCore/plugins/PluginView.h b/WebCore/plugins/PluginView.h
index 0849c59..f4474cc 100644
--- a/WebCore/plugins/PluginView.h
+++ b/WebCore/plugins/PluginView.h
@@ -70,8 +70,11 @@ namespace JSC {
}
}
#endif
+<<<<<<< HEAD
class NPObject;
+=======
+>>>>>>> webkit.org at r60074
namespace WebCore {
class Element;
@@ -434,6 +437,8 @@ private:
bool m_isHalted;
bool m_hasBeenHalted;
+ bool m_haveCalledSetWindow;
+
static PluginView* s_currentPluginView;
};
diff --git a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
index 46fee62..dd1f05b 100644
--- a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
+++ b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
@@ -45,9 +45,9 @@ static const double MessageThrottleTimeInterval = 0.016;
static const double MessageDirectProcessingInterval = 0.005;
PluginMessageThrottlerWin::PluginMessageThrottlerWin(PluginView* pluginView)
- : m_back(0)
+ : m_pluginView(pluginView)
+ , m_back(0)
, m_front(0)
- , m_pluginView(pluginView)
, m_lastMessageTime(0)
, m_messageThrottleTimer(this, &PluginMessageThrottlerWin::messageThrottleTimerFired)
{
diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp
index 96fa9e4..1765939 100644
--- a/WebCore/plugins/win/PluginViewWin.cpp
+++ b/WebCore/plugins/win/PluginViewWin.cpp
@@ -524,23 +524,14 @@ void PluginView::paintIntoTransformedContext(HDC hdc)
m_npWindow.type = NPWindowTypeDrawable;
m_npWindow.window = hdc;
- WINDOWPOS windowpos = { 0 };
+ WINDOWPOS windowpos = { 0, 0, 0, 0, 0, 0, 0 };
-#if OS(WINCE)
IntRect r = static_cast<FrameView*>(parent())->contentsToWindow(frameRect());
windowpos.x = r.x();
windowpos.y = r.y();
windowpos.cx = r.width();
windowpos.cy = r.height();
-#else
- IntPoint p = static_cast<FrameView*>(parent())->contentsToWindow(frameRect().location());
-
- windowpos.x = p.x();
- windowpos.y = p.y();
- windowpos.cx = frameRect().width();
- windowpos.cy = frameRect().height();
-#endif
NPEvent npEvent;
npEvent.event = WM_WINDOWPOSCHANGED;
@@ -610,6 +601,10 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect)
if (context->paintingDisabled())
return;
+ // Ensure that we have called SetWindow before we try to paint.
+ if (!m_haveCalledSetWindow)
+ setNPWindowRect(frameRect());
+
if (m_isWindowed) {
#if !OS(WINCE)
if (context->shouldIncludeChildWindows())
@@ -815,6 +810,8 @@ void PluginView::setNPWindowRect(const IntRect& rect)
m_plugin->pluginFuncs()->setwindow(m_instance, &m_npWindow);
setCallingPlugin(false);
+ m_haveCalledSetWindow = true;
+
if (!m_isWindowed)
return;