From 57626c5f3624b3b55d3b5a49118bca8a5baad8b3 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Mon, 3 Jun 2013 13:12:31 +0000 Subject: [Qt][Mac] Remove Carbon and QuickDraw support for plugins. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://bugs.webkit.org/show_bug.cgi?id=116619 Reviewed by Tor Arne Vestbø. They are only enabled for 32bit builds of QtWebKit and are rarely tested. Other browsers support them through a 32bit host process. PluginViewMac.mm is only used by Qt since the Wx port was removed. - Only support the Cocoa event model - Only support the CoreGraphics drawing model - Remove all NP_NO_CARBON and NP_NO_QUICKDRAW blocks in PluginViewMac.mm * plugins/PluginView.cpp: (WebCore::PluginView::setValue): (WebCore::PluginView::PluginView): * plugins/PluginView.h: * plugins/mac/PluginViewMac.mm: (WebCore::PluginView::platformStart): (WebCore::PluginView::platformDestroy): (WebCore::PluginView::platformGetValueStatic): (WebCore::PluginView::setFocus): (WebCore::PluginView::setNPWindowIfNeeded): (WebCore::PluginView::paint): (WebCore::PluginView::handleWheelEvent): (WebCore::PluginView::handleMouseEvent): (WebCore::PluginView::handleKeyboardEvent): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151106 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/WebCore/plugins/mac/PluginViewMac.mm Change-Id: Id4939dfe00a306299ab54c28b03f949ce4beb4d8 Reviewed-by: Allan Sandfeld Jensen --- Source/WebCore/plugins/PluginView.cpp | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'Source/WebCore/plugins/PluginView.cpp') diff --git a/Source/WebCore/plugins/PluginView.cpp b/Source/WebCore/plugins/PluginView.cpp index 8a31103af..861372f9d 100644 --- a/Source/WebCore/plugins/PluginView.cpp +++ b/Source/WebCore/plugins/PluginView.cpp @@ -646,11 +646,7 @@ NPError PluginView::setValue(NPPVariable variable, void* value) NPDrawingModel newDrawingModel = NPDrawingModel(uintptr_t(value)); switch (newDrawingModel) { case NPDrawingModelCoreGraphics: - m_drawingModel = newDrawingModel; return NPERR_NO_ERROR; -#ifndef NP_NO_QUICKDRAW - case NPDrawingModelQuickDraw: -#endif case NPDrawingModelCoreAnimation: default: LOG(Plugins, "Plugin asked for unsupported drawing model: %s", @@ -666,13 +662,8 @@ NPError PluginView::setValue(NPPVariable variable, void* value) NPEventModel newEventModel = NPEventModel(uintptr_t(value)); switch (newEventModel) { -#ifndef NP_NO_CARBON - case NPEventModelCarbon: -#endif case NPEventModelCocoa: - m_eventModel = newEventModel; return NPERR_NO_ERROR; - default: LOG(Plugins, "Plugin asked for unsupported event model: %s", prettyNameForEventModel(newEventModel)); @@ -860,10 +851,7 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p , m_window(0) #endif #if defined(XP_MACOSX) - , m_drawingModel(NPDrawingModel(-1)) - , m_eventModel(NPEventModel(-1)) , m_contextRef(0) - , m_fakeWindow(0) #endif #if defined(XP_UNIX) && ENABLE(NETSCAPE_PLUGIN_API) , m_hasPendingGeometryChange(true) -- cgit v1.2.1 From f64d11fc6fd0798fae2a1ecc7565b9d2efd385bc Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Mon, 3 Jun 2013 13:12:48 +0000 Subject: [Qt][Mac] Allow drawing plugins with QWindow by always using an intermediate bitmap. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://bugs.webkit.org/show_bug.cgi?id=116620 Reviewed by Tor Arne Vestbø. The isolation of QWidget along with QPA in Qt5 is abstracting away the native CGContext of a QWidget and we would need to create a non-public API to be able to achieve it. Instead of adding complexity to this rarely touched code, always draw into an intermediate bitmap that we then paint into our QPainter afterward. - Use CGBitmapContextCreate to allocate a buffer directly instead of creating a QPixmap and extract an CGContextRef out of it. - Get rid of the "if (platformPluginWidget())" code path since we don't paint directly into the QWidget's backing store anymore. - Always use m_contextRef to draw the plugin instead of alternating between direct and indirect drawing. * plugins/PluginView.cpp: (WebCore::PluginView::PluginView): * plugins/PluginView.h: * plugins/mac/PluginViewMac.mm: (WebCore::createBitmapContext): (WebCore::PluginView::platformStart): (WebCore::PluginView::platformDestroy): (WebCore::PluginView::setFocus): (WebCore::PluginView::setNPWindowIfNeeded): (WebCore::PluginView::updatePluginWidget): (WebCore::PluginView::paint): (WebCore::PluginView::invalidateRect): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151107 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/WebCore/plugins/PluginView.h Source/WebCore/plugins/mac/PluginViewMac.mm Change-Id: I1006dcf3c08c14ca0d144532372de33f815fbc23 Reviewed-by: Allan Sandfeld Jensen --- Source/WebCore/plugins/PluginView.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/WebCore/plugins/PluginView.cpp') diff --git a/Source/WebCore/plugins/PluginView.cpp b/Source/WebCore/plugins/PluginView.cpp index 861372f9d..cdf8a78bb 100644 --- a/Source/WebCore/plugins/PluginView.cpp +++ b/Source/WebCore/plugins/PluginView.cpp @@ -847,7 +847,7 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p , m_wmPrintHDC(0) , m_haveUpdatedPluginWidget(false) #endif -#if (PLATFORM(QT) && OS(WINDOWS)) || defined(XP_MACOSX) || PLATFORM(EFL) +#if (PLATFORM(QT) && OS(WINDOWS)) || PLATFORM(EFL) , m_window(0) #endif #if defined(XP_MACOSX) -- cgit v1.2.1