Title: [111673] trunk/Source
Revision
111673
Author
[email protected]
Date
2012-03-22 05:43:03 -0700 (Thu, 22 Mar 2012)

Log Message

[EFL] Add PageClientEfl to WebCoreSupport.
https://bugs.webkit.org/show_bug.cgi?id=80748

Patch by Hyowon Kim <[email protected]> on 2012-03-22
Reviewed by Noam Rosenthal.

Source/WebCore:

* platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
(WebCore):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::platformGetValue): Use PageClientEfl.

Source/WebKit:

* PlatformEfl.cmake: Add WebCore/platform/graphics/efl to the include path
and PageClientEfl.cpp to the source list.

Source/WebKit/efl:

This patch adds PageClientEfl for implementaion of accelerated compositing.

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::platformPageClient):
* WebCoreSupport/PageClientEfl.cpp: Added.
(WebCore):
(WebCore::PageClientEfl::PageClientEfl):
(WebCore::PageClientEfl::~PageClientEfl):
(WebCore::PageClientEfl::createEvasObjectForAcceleratedCompositing):
Just call ewk_view_accelerated_compositing_object_create().
(WebCore::PageClientEfl::acceleratedCompositingContext):
Just call ewk_view_accelerated_compositing_context_get().
* WebCoreSupport/PageClientEfl.h: Added.
(WebCore):
(PageClientEfl):
(WebCore::PageClientEfl::view): Return ewkView.
* ewk/ewk_private.h:
(WebCore):
(EWKPrivate):
* ewk/ewk_view.cpp:
(_Ewk_View_Private_Data): Add OwnPtr<PageClientEfl>.
(_ewk_view_priv_new): Create a new PageClientEfl.
(ewk_view_accelerated_compositing_object_create): Not implemented.
(ewk_view_accelerated_compositing_context_get): Not implemented.
(EWKPrivate::corePageClient): Return the PageClientEfl pointer.
(EWKPrivate):

Source/WTF:

* wtf/Platform.h: Disable accelerated compositing. It's not ready yet.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (111672 => 111673)


--- trunk/Source/WTF/ChangeLog	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WTF/ChangeLog	2012-03-22 12:43:03 UTC (rev 111673)
@@ -1,3 +1,12 @@
+2012-03-22  Hyowon Kim  <[email protected]>
+
+        [EFL] Add PageClientEfl to WebCoreSupport.
+        https://bugs.webkit.org/show_bug.cgi?id=80748
+
+        Reviewed by Noam Rosenthal.
+
+        * wtf/Platform.h: Disable accelerated compositing. It's not ready yet.
+
 2012-03-21  Beth Dakin  <[email protected]>
 
         https://bugs.webkit.org/show_bug.cgi?id=80322

Modified: trunk/Source/WTF/wtf/Platform.h (111672 => 111673)


--- trunk/Source/WTF/wtf/Platform.h	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WTF/wtf/Platform.h	2012-03-22 12:43:03 UTC (rev 111673)
@@ -1062,7 +1062,7 @@
 #endif
 
 /* Accelerated compositing */
-#if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(QT) || (PLATFORM(WIN) && !OS(WINCE) && !PLATFORM(WIN_CAIRO)) || PLATFORM(EFL)
+#if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(QT) || (PLATFORM(WIN) && !OS(WINCE) && !PLATFORM(WIN_CAIRO))
 #define WTF_USE_ACCELERATED_COMPOSITING 1
 #endif
 

Modified: trunk/Source/WebCore/ChangeLog (111672 => 111673)


--- trunk/Source/WebCore/ChangeLog	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebCore/ChangeLog	2012-03-22 12:43:03 UTC (rev 111673)
@@ -1,3 +1,17 @@
+2012-03-22  Hyowon Kim  <[email protected]>
+
+        [EFL] Add PageClientEfl to WebCoreSupport.
+        https://bugs.webkit.org/show_bug.cgi?id=80748
+
+        Reviewed by Noam Rosenthal.
+
+        * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
+        (WebCore):
+        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+        (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
+        * plugins/efl/PluginViewEfl.cpp:
+        (WebCore::PluginView::platformGetValue): Use PageClientEfl.
+
 2012-03-22  Kaustubh Atrawalkar  <[email protected]>
 
         blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees

Modified: trunk/Source/WebCore/platform/Widget.h (111672 => 111673)


--- trunk/Source/WebCore/platform/Widget.h	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebCore/platform/Widget.h	2012-03-22 12:43:03 UTC (rev 111673)
@@ -90,6 +90,11 @@
 #elif PLATFORM(BLACKBERRY)
 #include "PageClientBlackBerry.h"
 typedef PageClientBlackBerry* PlatformPageClient;
+#elif PLATFORM(EFL)
+namespace WebCore {
+class PageClientEfl;
+typedef PageClientEfl* PlatformPageClient;
+}
 #else
 typedef PlatformWidget PlatformPageClient;
 #endif

Modified: trunk/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp (111672 => 111673)


--- trunk/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp	2012-03-22 12:43:03 UTC (rev 111673)
@@ -139,7 +139,7 @@
         evas_gl_native_surface_get(m_evasGL, m_surface, &nativeSurface);
 
         // Create and specially set up a evas_object which act as the render targer surface.
-        if (!pageClient->createEvasObjectForAcceleratedCompositing(&nativeSurface, x, y, width, height))
+        if (!pageClient->createEvasObjectForAcceleratedCompositing(&nativeSurface, IntRect(x, y, width, height)))
             return false;
     }
 #endif

Modified: trunk/Source/WebCore/plugins/efl/PluginViewEfl.cpp (111672 => 111673)


--- trunk/Source/WebCore/plugins/efl/PluginViewEfl.cpp	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebCore/plugins/efl/PluginViewEfl.cpp	2012-03-22 12:43:03 UTC (rev 111673)
@@ -38,6 +38,7 @@
 #include "HostWindow.h"
 #include "MouseEvent.h"
 #include "NotImplemented.h"
+#include "PageClientEfl.h"
 #include "PluginPackage.h"
 #include "npruntime_impl.h"
 #include "runtime/JSLock.h"
@@ -282,7 +283,8 @@
     }
 
     case NPNVnetscapeWindow: {
-        Evas_Object* widget = m_parentFrame->view()->hostWindow()->platformPageClient();
+        PageClientEfl* pageClient = static_cast<PageClientEfl*>(m_parentFrame->view()->hostWindow()->platformPageClient());
+        Evas_Object* widget = pageClient->view();
         Evas* evas = evas_object_evas_get(widget);
         Ecore_Evas* ecoreEvas = ecore_evas_ecore_evas_get(evas);
         *static_cast<XID*>(value) = static_cast<Window>(ecore_evas_window_get(ecoreEvas));

Modified: trunk/Source/WebKit/ChangeLog (111672 => 111673)


--- trunk/Source/WebKit/ChangeLog	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/ChangeLog	2012-03-22 12:43:03 UTC (rev 111673)
@@ -1,3 +1,13 @@
+2012-03-22  Hyowon Kim  <[email protected]>
+
+        [EFL] Add PageClientEfl to WebCoreSupport.
+        https://bugs.webkit.org/show_bug.cgi?id=80748
+
+        Reviewed by Noam Rosenthal.
+
+        * PlatformEfl.cmake: Add WebCore/platform/graphics/efl to the include path
+        and PageClientEfl.cpp to the source list.
+
 2012-03-20  Eric Seidel  <[email protected]>
 
         Move wtf/Platform.h from _javascript_Core to Source/WTF/wtf

Modified: trunk/Source/WebKit/PlatformEfl.cmake (111672 => 111673)


--- trunk/Source/WebKit/PlatformEfl.cmake	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/PlatformEfl.cmake	2012-03-22 12:43:03 UTC (rev 111673)
@@ -13,6 +13,7 @@
     "${_javascript_CORE_DIR}/wtf/gobject"
     "${WEBCORE_DIR}/platform/efl"
     "${WEBCORE_DIR}/platform/graphics/cairo"
+    "${WEBCORE_DIR}/platform/graphics/efl"
     ${Cairo_INCLUDE_DIRS}
     ${ECORE_X_INCLUDE_DIRS}
     ${EDJE_INCLUDE_DIRS}
@@ -80,6 +81,7 @@
     efl/WebCoreSupport/StorageTrackerClientEfl.cpp
     efl/WebCoreSupport/InspectorClientEfl.cpp
     efl/WebCoreSupport/NotificationPresenterClientEfl.cpp
+    efl/WebCoreSupport/PageClientEfl.cpp
 
     efl/ewk/ewk_auth.cpp
     efl/ewk/ewk_auth_soup.cpp

Modified: trunk/Source/WebKit/efl/ChangeLog (111672 => 111673)


--- trunk/Source/WebKit/efl/ChangeLog	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/efl/ChangeLog	2012-03-22 12:43:03 UTC (rev 111673)
@@ -1,3 +1,37 @@
+2012-03-22  Hyowon Kim  <[email protected]>
+
+        [EFL] Add PageClientEfl to WebCoreSupport.
+        https://bugs.webkit.org/show_bug.cgi?id=80748
+
+        Reviewed by Noam Rosenthal.
+
+        This patch adds PageClientEfl for implementaion of accelerated compositing.
+
+        * WebCoreSupport/ChromeClientEfl.cpp:
+        (WebCore::ChromeClientEfl::platformPageClient):
+        * WebCoreSupport/PageClientEfl.cpp: Added.
+        (WebCore):
+        (WebCore::PageClientEfl::PageClientEfl):
+        (WebCore::PageClientEfl::~PageClientEfl):
+        (WebCore::PageClientEfl::createEvasObjectForAcceleratedCompositing):
+        Just call ewk_view_accelerated_compositing_object_create().
+        (WebCore::PageClientEfl::acceleratedCompositingContext):
+        Just call ewk_view_accelerated_compositing_context_get().
+        * WebCoreSupport/PageClientEfl.h: Added.
+        (WebCore):
+        (PageClientEfl):
+        (WebCore::PageClientEfl::view): Return ewkView.
+        * ewk/ewk_private.h:
+        (WebCore):
+        (EWKPrivate):
+        * ewk/ewk_view.cpp:
+        (_Ewk_View_Private_Data): Add OwnPtr<PageClientEfl>.
+        (_ewk_view_priv_new): Create a new PageClientEfl.
+        (ewk_view_accelerated_compositing_object_create): Not implemented.
+        (ewk_view_accelerated_compositing_context_get): Not implemented.
+        (EWKPrivate::corePageClient): Return the PageClientEfl pointer.
+        (EWKPrivate):
+
 2012-03-19  Adam Barth  <[email protected]>
 
         Remove support for "magic" iframe

Modified: trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp (111672 => 111673)


--- trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp	2012-03-22 12:43:03 UTC (rev 111673)
@@ -339,7 +339,7 @@
 
 PlatformPageClient ChromeClientEfl::platformPageClient() const
 {
-    return m_view;
+    return EWKPrivate::corePageClient(m_view);
 }
 
 void ChromeClientEfl::scrollbarsModeDidChange() const

Added: trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.cpp (0 => 111673)


--- trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.cpp	                        (rev 0)
+++ trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.cpp	2012-03-22 12:43:03 UTC (rev 111673)
@@ -0,0 +1,49 @@
+/*
+    Copyright (C) 2012 Samsung Electronics
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include "config.h"
+#include "PageClientEfl.h"
+
+#include "ewk_private.h"
+
+namespace WebCore {
+
+PageClientEfl::PageClientEfl(Evas_Object* view)
+    : m_view(view)
+{
+    ASSERT(m_view);
+}
+
+PageClientEfl::~PageClientEfl()
+{
+}
+
+#if USE(ACCELERATED_COMPOSITING)
+bool PageClientEfl::createEvasObjectForAcceleratedCompositing(Evas_Native_Surface* nativeSurface, const IntRect& rect)
+{
+    return ewk_view_accelerated_compositing_object_create(m_view, nativeSurface, rect);
+}
+
+GraphicsContext3D* PageClientEfl::acceleratedCompositingContext()
+{
+    return ewk_view_accelerated_compositing_context_get(m_view);
+}
+#endif
+
+}

Added: trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.h (0 => 111673)


--- trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.h	                        (rev 0)
+++ trunk/Source/WebKit/efl/WebCoreSupport/PageClientEfl.h	2012-03-22 12:43:03 UTC (rev 111673)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef PageClientEfl_h
+#define PageClientEfl_h
+
+#include "IntRect.h"
+
+typedef struct _Evas_Native_Surface Evas_Native_Surface;
+typedef struct _Evas_Object Evas_Object;
+
+namespace WebCore {
+
+class GraphicsContext3D;
+
+class PageClientEfl {
+public:
+    PageClientEfl(Evas_Object* view);
+    virtual ~PageClientEfl();
+
+#if USE(ACCELERATED_COMPOSITING)
+    bool createEvasObjectForAcceleratedCompositing(Evas_Native_Surface*, const IntRect&);
+    GraphicsContext3D* acceleratedCompositingContext();
+#endif
+
+    Evas_Object* view() { return m_view; }
+
+protected:
+    Evas_Object* m_view;
+};
+
+} // namespace WebCore
+
+#endif // PageClientEfl_h

Modified: trunk/Source/WebKit/efl/ewk/ewk_private.h (111672 => 111673)


--- trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-03-22 12:43:03 UTC (rev 111673)
@@ -36,6 +36,9 @@
 #include "ewk_js.h"
 #include "ewk_view.h"
 #include <Evas.h>
+#if USE(ACCELERATED_COMPOSITING)
+#include <Evas_GL.h>
+#endif
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
 
@@ -74,6 +77,10 @@
 struct PopupMenuClient;
 struct ContextMenu;
 struct ContextMenuItem;
+#if USE(ACCELERATED_COMPOSITING)
+class GraphicsContext3D;
+class GraphicsLayer;
+#endif
 }
 
 struct Ewk_Window_Object_Cleared_Event {
@@ -87,6 +94,7 @@
 WebCore::Frame *coreFrame(const Evas_Object *ewkFrame);
 WebCore::Page *corePage(const Evas_Object *ewkView);
 WebCore::HistoryItem *coreHistoryItem(const Ewk_History_Item *ewkHistoryItem);
+WebCore::PlatformPageClient corePageClient(Evas_Object* ewkView);
 
 Evas_Object* kitFrame(const WebCore::Frame* coreFrame);
 
@@ -234,4 +242,9 @@
 void ewk_view_mixed_content_displayed_set(Evas_Object* ewkView, bool hasDisplayed);
 void ewk_view_mixed_content_run_set(Evas_Object* ewkView, bool hasRun);
 
+#if USE(ACCELERATED_COMPOSITING)
+bool ewk_view_accelerated_compositing_object_create(Evas_Object* ewkView, Evas_Native_Surface* nativeSurface, const WebCore::IntRect& rect);
+WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* ewkView);
+#endif
+
 #endif // ewk_private_h

Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (111672 => 111673)


--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2012-03-22 12:38:45 UTC (rev 111672)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2012-03-22 12:43:03 UTC (rev 111673)
@@ -45,6 +45,7 @@
 #include "JSDOMWindow.h"
 #include "JSLock.h"
 #include "LayoutTypes.h"
+#include "PageClientEfl.h"
 #include "PlatformMouseEvent.h"
 #include "PopupMenuClient.h"
 #include "ProgressTracker.h"
@@ -78,6 +79,10 @@
 #include "BatteryClientEfl.h"
 #endif
 
+#if USE(ACCELERATED_COMPOSITING)
+#include "NotImplemented.h"
+#endif
+
 static const float zoomMinimum = 0.05;
 static const float zoomMaximum = 4.0;
 
@@ -142,6 +147,7 @@
     WebCore::Frame* mainFrame;
     WebCore::ViewportArguments viewportArguments;
     Ewk_History* history;
+    OwnPtr<WebCore::PageClientEfl> pageClient;
     struct {
         Ewk_Menu menu;
         WebCore::PopupMenuClient* menuClient;
@@ -716,6 +722,8 @@
 
     priv->soupSession = WebCore::ResourceHandle::defaultSession();
 
+    priv->pageClient = adoptPtr(new WebCore::PageClientEfl(smartData->self));
+
     return priv;
 }
 
@@ -3924,6 +3932,20 @@
     priv->soupSession = session;
 }
 
+#if USE(ACCELERATED_COMPOSITING)
+bool ewk_view_accelerated_compositing_object_create(Evas_Object* ewkView, Evas_Native_Surface* nativeSurface, const WebCore::IntRect& rect)
+{
+    notImplemented();
+    return false;
+}
+
+WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* ewkView)
+{
+    notImplemented();
+    return 0;
+}
+#endif
+
 namespace EWKPrivate {
 
 WebCore::Page *corePage(const Evas_Object *ewkView)
@@ -3933,4 +3955,11 @@
     return priv->page.get();
 }
 
+WebCore::PlatformPageClient corePageClient(Evas_Object* ewkView)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
+    return priv->pageClient.get();
+}
+
 } // namespace EWKPrivate
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to