diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-29 12:18:48 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-29 12:18:57 +0100 |
commit | 4c01d0526ba4dd8cff0c0ff22a6f0ab5eb973064 (patch) | |
tree | bed2fe914fe0f7ec70abfb47d2d84af8a3604d09 /Source/WebCore/plugins | |
parent | 01485457c9a5da3f1121015afd25bb53af77662e (diff) | |
download | qtwebkit-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.cpp | 5 | ||||
-rw-r--r-- | Source/WebCore/plugins/PluginViewBase.h | 10 | ||||
-rw-r--r-- | Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp | 32 | ||||
-rw-r--r-- | Source/WebCore/plugins/gtk/PluginViewGtk.cpp | 7 | ||||
-rw-r--r-- | Source/WebCore/plugins/win/PluginDatabaseWin.cpp | 11 |
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; |