Changeset 103544 in webkit


Ignore:
Timestamp:
Dec 22, 2011 7:38:42 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[EFL] Missing plugins support for efl port
https://bugs.webkit.org/show_bug.cgi?id=44505

Patch by Mariusz Grzegorczyk <mariusz.g@samsung.com> on 2011-12-22
Reviewed by Anders Carlsson.

Source/JavaScriptCore:

Add define of ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for efl port.

  • wtf/Platform.h:

Source/WebCore:

Basic functionality of plugins for efl port.

Template version, so no new tests are needed.

  • PlatformEfl.cmake:
  • plugins/PluginView.h:
  • plugins/efl/PluginDataEfl.cpp: Added. Copied from plugins/gtk/PluginDataGtk.cpp.

(WebCore::PluginData::initPlugins): Fill mime/description/extension maps for plugins.
(WebCore::PluginData::refresh): Refresh plugin's database.

  • plugins/efl/PluginPackageEfl.cpp: Added. Copied from plugins/gtk/PluginPackageGtk.cpp.

(WebCore::PluginPackage::fetchInfo): Get info from plugin's library about name and mime supported.
(WebCore::PluginPackage::NPVersion):
(WebCore::PluginPackage::load): Load plugin.

  • plugins/efl/PluginViewEfl.cpp: Added. Copied from plugins/gtk/PluginViewGtk.cpp.

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleFocusInEvent):
(WebCore::PluginView::handleFocusOutEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::setFocus):
(WebCore::PluginView::show):
(WebCore::PluginView::hide):
(WebCore::PluginView::paint):
(WebCore::PluginView::setParent):
(WebCore::PluginView::setNPWindowRect):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::setParentVisible):
(WebCore::PluginView::handlePostReadFile):
(WebCore::PluginView::platformGetValueStatic):
(WebCore::PluginView::platformGetValue):
(WebCore::PluginView::invalidateRect):
(WebCore::PluginView::invalidateRegion):
(WebCore::PluginView::forceRedraw):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::platformDestroy):

Source/WebKit/efl:

Implementation of ewk_frame_plugin_create() - creating PluginView.

  • ewk/ewk_frame.cpp:

(ewk_frame_plugin_create):

Location:
trunk/Source
Files:
4 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r103522 r103544  
     12011-12-22  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
     2
     3        [EFL] Missing plugins support for efl port
     4        https://bugs.webkit.org/show_bug.cgi?id=44505
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Add define of ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for efl port.
     9
     10        * wtf/Platform.h:
     11
    1122011-12-22  Wei Charles  <charles.wei@torchmobile.com.cn>
    213
  • trunk/Source/JavaScriptCore/wtf/Platform.h

    r103240 r103544  
    10601060#endif
    10611061
    1062 #if !ENABLE(NETSCAPE_PLUGIN_API) || (ENABLE(NETSCAPE_PLUGIN_API) && ((OS(UNIX) && (PLATFORM(QT) || PLATFORM(WX))) || PLATFORM(GTK)))
     1062#if !ENABLE(NETSCAPE_PLUGIN_API) || (ENABLE(NETSCAPE_PLUGIN_API) && ((OS(UNIX) && (PLATFORM(QT) || PLATFORM(WX))) || PLATFORM(GTK) || PLATFORM(EFL)))
    10631063#define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH 1
    10641064#endif
  • trunk/Source/WebCore/ChangeLog

    r103541 r103544  
     12011-12-22  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
     2
     3        [EFL] Missing plugins support for efl port
     4        https://bugs.webkit.org/show_bug.cgi?id=44505
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Basic functionality of plugins for efl port.
     9
     10        Template version, so no new tests are needed.
     11
     12        * PlatformEfl.cmake:
     13        * plugins/PluginView.h:
     14        * plugins/efl/PluginDataEfl.cpp: Added. Copied from plugins/gtk/PluginDataGtk.cpp.
     15        (WebCore::PluginData::initPlugins): Fill mime/description/extension maps for plugins.
     16        (WebCore::PluginData::refresh): Refresh plugin's database.
     17        * plugins/efl/PluginPackageEfl.cpp: Added. Copied from plugins/gtk/PluginPackageGtk.cpp.
     18        (WebCore::PluginPackage::fetchInfo): Get info from plugin's library about name and mime supported.
     19        (WebCore::PluginPackage::NPVersion):
     20        (WebCore::PluginPackage::load): Load plugin.
     21        * plugins/efl/PluginViewEfl.cpp: Added. Copied from plugins/gtk/PluginViewGtk.cpp.
     22        (WebCore::PluginView::dispatchNPEvent):
     23        (WebCore::PluginView::handleFocusInEvent):
     24        (WebCore::PluginView::handleFocusOutEvent):
     25        (WebCore::PluginView::handleKeyboardEvent):
     26        (WebCore::PluginView::handleMouseEvent):
     27        (WebCore::PluginView::updatePluginWidget):
     28        (WebCore::PluginView::setFocus):
     29        (WebCore::PluginView::show):
     30        (WebCore::PluginView::hide):
     31        (WebCore::PluginView::paint):
     32        (WebCore::PluginView::setParent):
     33        (WebCore::PluginView::setNPWindowRect):
     34        (WebCore::PluginView::setNPWindowIfNeeded):
     35        (WebCore::PluginView::setParentVisible):
     36        (WebCore::PluginView::handlePostReadFile):
     37        (WebCore::PluginView::platformGetValueStatic):
     38        (WebCore::PluginView::platformGetValue):
     39        (WebCore::PluginView::invalidateRect):
     40        (WebCore::PluginView::invalidateRegion):
     41        (WebCore::PluginView::forceRedraw):
     42        (WebCore::PluginView::platformStart):
     43        (WebCore::PluginView::platformDestroy):
     44
    1452011-12-22  Pavel Podivilov  <podivilov@chromium.org>
    246
  • trunk/Source/WebCore/PlatformEfl.cmake

    r102480 r103544  
    66LIST(APPEND WebCore_INCLUDE_DIRECTORIES
    77  "${JAVASCRIPTCORE_DIR}/wtf/gobject"
     8  "${WEBCORE_DIR}/accessibility/efl"
     9  "${WEBCORE_DIR}/page/efl"
    810  "${WEBCORE_DIR}/platform/efl"
     11  "${WEBCORE_DIR}/platform/graphics/efl"
    912  "${WEBCORE_DIR}/platform/text/efl"
    10   "${WEBCORE_DIR}/platform/graphics/efl"
    11   "${WEBCORE_DIR}/page/efl"
    12   "${WEBCORE_DIR}/accessibility/efl"
     13  "${WEBCORE_DIR}/plugins/efl"
    1314  "${WEBKIT_DIR}/efl/WebCoreSupport"
    1415  "${WEBKIT_DIR}/efl/ewk"
    15   "${DERIVED_SOURCES_DIR}"
    1616)
    1717
     
    7373  platform/posix/FileSystemPOSIX.cpp
    7474  platform/text/efl/TextBreakIteratorInternalICUEfl.cpp
    75   plugins/PluginDataNone.cpp
    76   plugins/PluginPackageNone.cpp
    77   plugins/PluginViewNone.cpp
    78 )
     75)
     76
     77IF (ENABLE_NETSCAPE_PLUGIN_API)
     78  LIST(APPEND WebCore_SOURCES
     79    plugins/PluginDatabase.cpp
     80    plugins/PluginDebug.cpp
     81    plugins/PluginPackage.cpp
     82    plugins/PluginStream.cpp
     83    plugins/PluginView.cpp
     84
     85    plugins/efl/PluginDataEfl.cpp
     86    plugins/efl/PluginPackageEfl.cpp
     87    plugins/efl/PluginViewEfl.cpp
     88  )
     89ELSE ()
     90  LIST(APPEND WebCore_SOURCES
     91    plugins/PluginDataNone.cpp
     92    plugins/PluginPackageNone.cpp
     93    plugins/PluginViewNone.cpp
     94  )
     95ENDIF ()
    7996
    8097LIST(APPEND WebCore_USER_AGENT_STYLE_SHEETS
  • trunk/Source/WebCore/plugins/PluginView.h

    r102923 r103544  
    379379#endif
    380380
    381 #if ((PLATFORM(QT) || PLATFORM(WX)) && OS(WINDOWS)) || defined(XP_MACOSX)
     381#if ((PLATFORM(QT) || PLATFORM(WX)) && OS(WINDOWS)) || defined(XP_MACOSX) || PLATFORM(EFL)
    382382        // On Mac OSX and Qt/Windows the plugin does not have its own native widget,
    383383        // but is using the containing window as its reference for positioning/painting.
  • trunk/Source/WebKit/efl/ChangeLog

    r103525 r103544  
     12011-12-22  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
     2
     3        [EFL] Missing plugins support for efl port
     4        https://bugs.webkit.org/show_bug.cgi?id=44505
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Implementation of ewk_frame_plugin_create() - creating PluginView.
     9
     10        * ewk/ewk_frame.cpp:
     11        (ewk_frame_plugin_create):
     12
    1132011-12-22  Eunmi Lee  <eunmi15.lee@samsung.com>
    214
  • trunk/Source/WebKit/efl/ewk/ewk_frame.cpp

    r103252 r103544  
    16761676WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* ewkFrame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually)
    16771677{
     1678#if ENABLE(NETSCAPE_PLUGIN_API)
     1679    DBG("ewkFrame=%p, size=%dx%d, element=%p, url=%s, mimeType=%s",
     1680        ewkFrame, pluginSize.width(), pluginSize.height(), element,
     1681        url.string().utf8().data(), mimeType.utf8().data());
     1682
     1683    EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, sd, 0);
     1684
     1685    // TODO: emit signal and ask webkit users if something else should be done.
     1686    // like creating another x window (see gtk, it allows users to create
     1687    // GtkPluginWidget.
     1688
     1689    WTF::RefPtr<WebCore::PluginView> pluginView = WebCore::PluginView::create
     1690        (sd->frame, pluginSize, element, url, paramNames, paramValues,
     1691        mimeType, loadManually);
     1692
     1693    if (pluginView->status() == WebCore::PluginStatusLoadedSuccessfully)
     1694        return pluginView.release();
     1695#endif // #if ENABLE(NETSCAPE_PLUGIN_API)
    16781696    return 0;
    16791697}
Note: See TracChangeset for help on using the changeset viewer.