Changeset 38371 in webkit
- Timestamp:
- Nov 13, 2008 7:20:43 AM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r38366 r38371 1 2008-11-12 Tor Arne Vestbø <tavestbo@trolltech.com> 2 3 Reviewed by Simon Hausmann. 4 5 Inital implementation of PluginPackage and PluginView for Mac NPAPI support in WebCore 6 7 Currently only used by QtWebKit. See also: 8 9 https://bugs.webkit.org/show_bug.cgi?id=21427 10 11 * WebCore.pro: 12 * platform/qt/TemporaryLinkStubs.cpp: 13 (PluginView::userAgentStatic): 14 (PluginView::getValueStatic): 15 * plugins/PluginView.cpp: 16 (WebCore::PluginView::handleEvent): 17 (WebCore::PluginView::setValue): 18 (WebCore::PluginView::PluginView): 19 * plugins/PluginView.h: 20 (WebCore::PluginView::setPlatformPluginWidget): 21 * plugins/mac/PluginPackageMac.cpp: Added. 22 (WebCore::PluginPackage::determineQuirks): 23 (WebCore::readPListFile): 24 (WebCore::stringListFromResourceId): 25 (WebCore::PluginPackage::fetchInfo): 26 (WebCore::PluginPackage::load): 27 (WebCore::PluginPackage::hash): 28 (WebCore::PluginPackage::equal): 29 (WebCore::PluginPackage::compareFileVersion): 30 * plugins/mac/PluginViewMac.cpp: Added. 31 (WebCore::nativeWindowFor): 32 (WebCore::cgHandleFor): 33 (WebCore::topLevelOffsetFor): 34 (WebCore::PluginView::init): 35 (WebCore::PluginView::~PluginView): 36 (WebCore::PluginView::stop): 37 (WebCore::PluginView::getValueStatic): 38 (WebCore::PluginView::getValue): 39 (WebCore::PluginView::setParent): 40 (WebCore::PluginView::show): 41 (WebCore::PluginView::hide): 42 (WebCore::PluginView::setFocus): 43 (WebCore::PluginView::setParentVisible): 44 (WebCore::PluginView::setNPWindowRect): 45 (WebCore::PluginView::setNPWindowIfNeeded): 46 (WebCore::PluginView::updatePluginWidget): 47 (WebCore::PluginView::paint): 48 (WebCore::PluginView::invalidateRect): 49 (WebCore::PluginView::invalidateRegion): 50 (WebCore::PluginView::forceRedraw): 51 (WebCore::PluginView::handleMouseEvent): 52 (WebCore::PluginView::handleKeyboardEvent): 53 (WebCore::PluginView::nullEventTimerFired): 54 (WebCore::modifiersForEvent): 55 (WebCore::PluginView::globalMousePosForPlugin): 56 (WebCore::PluginView::dispatchNPEvent): 57 (WebCore::PluginView::userAgent): 58 (WebCore::PluginView::userAgentStatic): 59 (WebCore::PluginView::handlePostReadFile): 60 1 61 2008-11-12 Alexey Proskuryakov <ap@webkit.org> 2 62 -
trunk/WebCore/WebCore.pro
r38346 r38371 73 73 !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1 74 74 !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1 75 76 # HTML5 media support 75 77 contains(QT_CONFIG, phonon):DEFINES += ENABLE_VIDEO=1 76 78 else:DEFINES += ENABLE_VIDEO=0 77 79 78 unix|win32-*:!mac:!embedded:!wince*:!symbian { 80 # Nescape plugins support (NPAPI) 81 unix|win32-*:!embedded:!wince*:!symbian { 79 82 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1 80 unix: DEFINES += XP_UNIX81 83 } else { 82 84 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 … … 1105 1107 else: SOURCES += platform/qt/SystemTimeQt.cpp 1106 1108 1109 mac { 1110 SOURCES += \ 1111 platform/text/cf/StringCF.cpp \ 1112 platform/text/cf/StringImplCF.cpp 1113 } 1114 1107 1115 win32-* { 1108 1116 LIBS += -lgdi32 … … 1127 1135 contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=1) { 1128 1136 1129 SOURCES += plugins/npapi.cpp 1130 1131 unix:!mac { 1137 SOURCES += plugins/npapi.cpp 1138 1139 unix { 1140 mac { 1141 SOURCES += \ 1142 plugins/mac/PluginPackageMac.cpp \ 1143 plugins/mac/PluginViewMac.cpp 1144 OBJECTIVE_SOURCES += \ 1145 platform/text/mac/StringImplMac.mm \ 1146 platform/mac/WebCoreNSStringExtras.mm 1147 INCLUDEPATH += platform/mac 1148 # Note: XP_MACOSX is defined in npapi.h 1149 } else { 1132 1150 SOURCES += \ 1133 1151 plugins/qt/PluginPackageQt.cpp \ 1134 1152 plugins/qt/PluginViewQt.cpp 1153 DEFINES += XP_UNIX 1135 1154 } 1136 1137 win32-* { 1138 INCLUDEPATH += $$PWD/plugins/win 1139 1140 SOURCES += page/win/PageWin.cpp \ 1141 plugins/win/PluginDatabaseWin.cpp \ 1142 plugins/win/PluginPackageWin.cpp \ 1143 plugins/win/PluginMessageThrottlerWin.cpp \ 1144 plugins/win/PluginViewWin.cpp 1145 1146 LIBS += \ 1147 -ladvapi32 \ 1148 -lgdi32 \ 1149 -lshell32 \ 1150 -lshlwapi \ 1151 -luser32 \ 1152 -lversion 1153 } 1155 } 1156 1157 win32-* { 1158 INCLUDEPATH += $$PWD/plugins/win 1159 1160 SOURCES += page/win/PageWin.cpp \ 1161 plugins/win/PluginDatabaseWin.cpp \ 1162 plugins/win/PluginPackageWin.cpp \ 1163 plugins/win/PluginMessageThrottlerWin.cpp \ 1164 plugins/win/PluginViewWin.cpp 1165 1166 LIBS += \ 1167 -ladvapi32 \ 1168 -lgdi32 \ 1169 -lshell32 \ 1170 -lshlwapi \ 1171 -luser32 \ 1172 -lversion 1173 } 1154 1174 1155 1175 } -
trunk/WebCore/platform/qt/TemporaryLinkStubs.cpp
r38224 r38371 75 75 using namespace WebCore; 76 76 77 #if !defined(Q_WS_X11) && !defined(Q_WS_WIN)77 #if (!defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC32)) || defined(Q_OS_WINCE) 78 78 79 79 bool PluginPackage::fetchInfo() { notImplemented(); return false; } … … 84 84 void PluginView::setNPWindowRect(const IntRect&) { notImplemented(); } 85 85 const char* PluginView::userAgent() { notImplemented(); return 0; } 86 #if ENABLE(NETSCAPE_PLUGIN_API) 87 const char* PluginView::userAgentStatic() { notImplemented(); return 0; } 88 #endif 86 89 void PluginView::invalidateRect(NPRect*) { notImplemented(); } 87 90 void PluginView::invalidateRect(const IntRect&) { notImplemented(); } … … 99 102 NPError PluginView::handlePostReadFile(Vector<char>&, uint32, const char*) { notImplemented(); return NPERR_GENERIC_ERROR; } 100 103 NPError PluginView::getValue(NPNVariable, void*) { notImplemented(); return NPERR_GENERIC_ERROR; } 104 #if ENABLE(NETSCAPE_PLUGIN_API) 105 NPError PluginView::getValueStatic(NPNVariable, void*) { return NPERR_GENERIC_ERROR; } 106 #endif 101 107 PluginView::~PluginView() {} 102 108 #endif -
trunk/WebCore/plugins/PluginView.cpp
r38094 r38371 420 420 m_isTransparent = value; 421 421 return NPERR_NO_ERROR; 422 #if defined(XP_MACOSX) 423 case NPPVpluginDrawingModel: 424 return NPERR_NO_ERROR; 425 case NPPVpluginEventModel: 426 return NPERR_NO_ERROR; 427 #endif 422 428 default: 423 429 notImplemented(); … … 541 547 , m_paramNames(0) 542 548 , m_paramValues(0) 549 #if defined(XP_MACOSX) 550 , m_isWindowed(false) 551 #else 543 552 , m_isWindowed(true) 553 #endif 544 554 , m_isTransparent(false) 545 555 , m_haveInitialized(false) … … 555 565 , m_isCallingPluginWndProc(false) 556 566 #endif 557 #if PLATFORM(WIN_OS) && PLATFORM(QT)567 #if (PLATFORM(QT) && PLATFORM(WIN_OS)) || defined(XP_MACOSX) 558 568 , m_window(0) 559 569 #endif -
trunk/WebCore/plugins/PluginView.h
r37223 r38371 264 264 #endif 265 265 266 #if PLATFORM(WIN_OS) && PLATFORM(QT) 267 // Only under Qt on Windows, the plugin widget (HWND) does not match the native widget (QWidget). 268 PlatformPluginWidget m_window; // for windowed plug-ins 266 #if (PLATFORM(QT) && PLATFORM(WIN_OS)) || defined(XP_MACOSX) 267 // On Mac OSX and Qt/Windows the plugin does not have its own native widget, 268 // but is using the containing window as its reference for positioning/painting. 269 PlatformPluginWidget m_window; 269 270 public: 270 271 PlatformPluginWidget platformPluginWidget() const { return m_window; } 272 void setPlatformPluginWidget(PlatformPluginWidget widget) { m_window = widget; } 271 273 #else 272 274 public: … … 276 278 private: 277 279 280 #if defined(XP_MACOSX) 281 NP_CGContext m_npCgContext; 282 OwnPtr<Timer<PluginView> > m_nullEventTimer; 283 284 void setNPWindowIfNeeded(); 285 void nullEventTimerFired(Timer<PluginView>*); 286 Point globalMousePosForPlugin() const; 287 #endif 288 278 289 mutable IntRect m_clipRect; // The clip rect to apply to a windowed plug-in 279 290 mutable IntRect m_windowRect; // Our window rect.
Note: See TracChangeset
for help on using the changeset viewer.