summaryrefslogtreecommitdiff
path: root/Source/WebCore/plugins
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-29 12:18:48 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-29 12:18:57 +0100
commit4c01d0526ba4dd8cff0c0ff22a6f0ab5eb973064 (patch)
treebed2fe914fe0f7ec70abfb47d2d84af8a3604d09 /Source/WebCore/plugins
parent01485457c9a5da3f1121015afd25bb53af77662e (diff)
downloadqtwebkit-4c01d0526ba4dd8cff0c0ff22a6f0ab5eb973064.tar.gz
Imported WebKit commit c60cfe0fc09efd257aa0111d7b133b02deb8a63e (http://svn.webkit.org/repository/webkit/trunk@136119)
New snapshot that includes the fix for installing the QtWebProcess into libexec Change-Id: I01344e079cbdac5678c4cba6ffcc05f4597cf0d7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebCore/plugins')
-rw-r--r--Source/WebCore/plugins/PluginView.cpp5
-rw-r--r--Source/WebCore/plugins/PluginViewBase.h10
-rw-r--r--Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp32
-rw-r--r--Source/WebCore/plugins/gtk/PluginViewGtk.cpp7
-rw-r--r--Source/WebCore/plugins/win/PluginDatabaseWin.cpp11
5 files changed, 40 insertions, 25 deletions
diff --git a/Source/WebCore/plugins/PluginView.cpp b/Source/WebCore/plugins/PluginView.cpp
index 0466846d4..5d32c938f 100644
--- a/Source/WebCore/plugins/PluginView.cpp
+++ b/Source/WebCore/plugins/PluginView.cpp
@@ -440,7 +440,10 @@ void PluginView::performRequest(PluginRequest* request)
// PluginView, so we protect it. <rdar://problem/6991251>
RefPtr<PluginView> protect(this);
- m_parentFrame->loader()->load(request->frameLoadRequest().resourceRequest(), targetFrameName, false);
+ FrameLoadRequest frameRequest(m_parentFrame.get(), request->frameLoadRequest().resourceRequest());
+ frameRequest.setFrameName(targetFrameName);
+ frameRequest.setShouldCheckNewWindowPolicy(true);
+ m_parentFrame->loader()->load(frameRequest);
// FIXME: <rdar://problem/4807469> This should be sent when the document has finished loading
if (request->sendNotification()) {
diff --git a/Source/WebCore/plugins/PluginViewBase.h b/Source/WebCore/plugins/PluginViewBase.h
index e4a0c4943..f71306a32 100644
--- a/Source/WebCore/plugins/PluginViewBase.h
+++ b/Source/WebCore/plugins/PluginViewBase.h
@@ -30,11 +30,16 @@
#include "Widget.h"
#include <wtf/text/WTFString.h>
+#if USE(V8)
+struct NPObject;
+#endif
+#if USE(JSC)
namespace JSC {
class ExecState;
class JSGlobalObject;
class JSObject;
}
+#endif
namespace WebCore {
@@ -48,7 +53,12 @@ public:
virtual PlatformLayer* platformLayer() const { return 0; }
#endif
+#if USE(V8)
+ virtual NPObject* scriptableObject() { return 0; }
+#endif
+#if USE(JSC)
virtual JSC::JSObject* scriptObject(JSC::JSGlobalObject*) { return 0; }
+#endif
virtual void storageBlockingStateChanged() { }
virtual void privateBrowsingStateChanged(bool) { }
virtual bool getFormValue(String&) { return false; }
diff --git a/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp b/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
index f5478f08c..9acaa4ccc 100644
--- a/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
+++ b/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
@@ -490,22 +490,15 @@ void PluginView::handleTouchEvent(TouchEvent* event)
npTouchEvent.type = TOUCH_EVENT_DOUBLETAP;
else if (event->isTouchHold())
npTouchEvent.type = TOUCH_EVENT_TOUCHHOLD;
- else if (event->type() == eventNames().touchstartEvent)
- npTouchEvent.type = TOUCH_EVENT_START;
- else if (event->type() == eventNames().touchendEvent)
- npTouchEvent.type = TOUCH_EVENT_END;
- else if (event->type() == eventNames().touchmoveEvent)
- npTouchEvent.type = TOUCH_EVENT_MOVE;
else if (event->type() == eventNames().touchcancelEvent)
npTouchEvent.type = TOUCH_EVENT_CANCEL;
- else {
- ASSERT_NOT_REACHED();
+ else
return;
- }
TouchList* touchList;
- // The touches list is empty if in a touch end event. Use changedTouches instead.
- if (npTouchEvent.type == TOUCH_EVENT_DOUBLETAP || npTouchEvent.type == TOUCH_EVENT_END)
+ // The touches list is empty if in a touch end event.
+ // Since DoubleTap is ususally a TouchEnd Use changedTouches instead.
+ if (npTouchEvent.type == TOUCH_EVENT_DOUBLETAP)
touchList = event->changedTouches();
else
touchList = event->touches();
@@ -536,13 +529,6 @@ void PluginView::handleTouchEvent(TouchEvent* event)
if (dispatchNPEvent(npEvent))
event->setDefaultHandled();
- else if (npTouchEvent.type == TOUCH_EVENT_DOUBLETAP) {
- // Send Touch Up if double tap not consumed
- npTouchEvent.type = TOUCH_EVENT_END;
- npEvent.data = &npTouchEvent;
- if (dispatchNPEvent(npEvent))
- event->setDefaultHandled();
- }
}
void PluginView::handleMouseEvent(MouseEvent* event)
@@ -559,19 +545,17 @@ void PluginView::handleMouseEvent(MouseEvent* event)
mouseEvent.x = event->offsetX();
mouseEvent.y = event->offsetY();
- if (event->type() == eventNames().mousedownEvent) {
+ if (event->type() == eventNames().mousedownEvent)
mouseEvent.type = MOUSE_BUTTON_DOWN;
- parentFrame()->eventHandler()->setCapturingMouseEventsNode(node());
- } else if (event->type() == eventNames().mousemoveEvent)
+ else if (event->type() == eventNames().mousemoveEvent)
mouseEvent.type = MOUSE_MOTION;
else if (event->type() == eventNames().mouseoutEvent)
mouseEvent.type = MOUSE_OUTBOUND;
else if (event->type() == eventNames().mouseoverEvent)
mouseEvent.type = MOUSE_OVER;
- else if (event->type() == eventNames().mouseupEvent) {
+ else if (event->type() == eventNames().mouseupEvent)
mouseEvent.type = MOUSE_BUTTON_UP;
- parentFrame()->eventHandler()->setCapturingMouseEventsNode(0);
- } else
+ else
return;
mouseEvent.button = event->button();
diff --git a/Source/WebCore/plugins/gtk/PluginViewGtk.cpp b/Source/WebCore/plugins/gtk/PluginViewGtk.cpp
index 4006040d8..2e67bc67e 100644
--- a/Source/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/Source/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -883,6 +883,13 @@ void PluginView::platformDestroy()
XFreePixmap(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), m_drawable);
m_drawable = 0;
}
+
+ GtkWidget* widget = platformWidget();
+ if (widget) {
+ GtkWidget* parent = gtk_widget_get_parent(widget);
+ ASSERT(parent);
+ gtk_container_remove(GTK_CONTAINER(parent), widget);
+ }
}
} // namespace WebCore
diff --git a/Source/WebCore/plugins/win/PluginDatabaseWin.cpp b/Source/WebCore/plugins/win/PluginDatabaseWin.cpp
index 20b8af3cf..2460934b4 100644
--- a/Source/WebCore/plugins/win/PluginDatabaseWin.cpp
+++ b/Source/WebCore/plugins/win/PluginDatabaseWin.cpp
@@ -407,6 +407,16 @@ static inline void addMacromediaPluginDirectories(Vector<String>& directories)
#endif
}
+#if PLATFORM(QT)
+static inline void addQtWebKitPluginPath(Vector<String>& directories)
+{
+ Vector<String> qtPaths;
+ String qtPath(qgetenv("QTWEBKIT_PLUGIN_PATH").constData());
+ qtPath.split(UChar(';'), false, qtPaths);
+ directories.append(qtPaths);
+}
+#endif
+
Vector<String> PluginDatabase::defaultPluginDirectories()
{
Vector<String> directories;
@@ -421,6 +431,7 @@ Vector<String> PluginDatabase::defaultPluginDirectories()
addMacromediaPluginDirectories(directories);
#if PLATFORM(QT)
addJavaPluginDirectory(directories);
+ addQtWebKitPluginPath(directories);
#endif
return directories;