Diff
Modified: trunk/Source/WebKit2/ChangeLog (88439 => 88440)
--- trunk/Source/WebKit2/ChangeLog 2011-06-09 10:06:17 UTC (rev 88439)
+++ trunk/Source/WebKit2/ChangeLog 2011-06-09 10:26:49 UTC (rev 88440)
@@ -1,3 +1,60 @@
+2011-06-09 Eunmi Lee <[email protected]>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [EFL][WK2] Add PageClientImpl and WebPageProxyEfl for efl port
+ https://bugs.webkit.org/show_bug.cgi?id=62363
+
+ * UIProcess/API/efl/PageClientImpl.cpp: Added.
+ (WebKit::PageClientImpl::PageClientImpl):
+ (WebKit::PageClientImpl::~PageClientImpl):
+ (WebKit::PageClientImpl::createDrawingAreaProxy):
+ (WebKit::PageClientImpl::setViewNeedsDisplay):
+ (WebKit::PageClientImpl::displayView):
+ (WebKit::PageClientImpl::scrollView):
+ (WebKit::PageClientImpl::viewSize):
+ (WebKit::PageClientImpl::isViewWindowActive):
+ (WebKit::PageClientImpl::isViewFocused):
+ (WebKit::PageClientImpl::isViewVisible):
+ (WebKit::PageClientImpl::isViewInWindow):
+ (WebKit::PageClientImpl::processDidCrash):
+ (WebKit::PageClientImpl::didRelaunchProcess):
+ (WebKit::PageClientImpl::pageClosed):
+ (WebKit::PageClientImpl::toolTipChanged):
+ (WebKit::PageClientImpl::setCursor):
+ (WebKit::PageClientImpl::setViewportArguments):
+ (WebKit::PageClientImpl::registerEditCommand):
+ (WebKit::PageClientImpl::clearAllEditCommands):
+ (WebKit::PageClientImpl::canUndoRedo):
+ (WebKit::PageClientImpl::executeUndoRedo):
+ (WebKit::PageClientImpl::convertToDeviceSpace):
+ (WebKit::PageClientImpl::convertToUserSpace):
+ (WebKit::PageClientImpl::windowToScreen):
+ (WebKit::PageClientImpl::doneWithKeyEvent):
+ (WebKit::PageClientImpl::createPopupMenuProxy):
+ (WebKit::PageClientImpl::createContextMenuProxy):
+ (WebKit::PageClientImpl::setFindIndicator):
+ (WebKit::PageClientImpl::didChangeScrollbarsForMainFrame):
+ (WebKit::PageClientImpl::didCommitLoadForMainFrame):
+ (WebKit::PageClientImpl::didFinishLoadingDataForCustomRepresentation):
+ (WebKit::PageClientImpl::customRepresentationZoomFactor):
+ (WebKit::PageClientImpl::setCustomRepresentationZoomFactor):
+ (WebKit::PageClientImpl::flashBackingStoreUpdates):
+ (WebKit::PageClientImpl::findStringInCustomRepresentation):
+ (WebKit::PageClientImpl::countStringMatchesInCustomRepresentation):
+ (WebKit::PageClientImpl::userSpaceScaleFactor):
+ * UIProcess/API/efl/PageClientImpl.h: Added.
+ (WebKit::PageClientImpl::create):
+ (WebKit::PageClientImpl::viewObject):
+ (WebKit::PageClientImpl::page):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/efl/WebPageProxyEfl.cpp: Added.
+ (WebKit::WebPageProxy::viewObject):
+ (WebKit::WebPageProxy::standardUserAgent):
+ (WebKit::WebPageProxy::getEditorCommandsForKeyEvent):
+ (WebKit::WebPageProxy::saveRecentSearches):
+ (WebKit::WebPageProxy::loadRecentSearches):
+
2011-06-08 John Sullivan <[email protected]>
Reviewed by Darin Adler.
Added: trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp (0 => 88440)
--- trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp 2011-06-09 10:26:49 UTC (rev 88440)
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "PageClientImpl.h"
+
+#include "DrawingAreaProxyImpl.h"
+#include "NativeWebKeyboardEvent.h"
+#include "NotImplemented.h"
+#include "WebContext.h"
+#include "WebContextMenuProxy.h"
+#include "WebPageProxy.h"
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PageClientImpl::PageClientImpl(WebContext* context, WebPageGroup* pageGroup, Evas_Object* viewObject)
+ : m_viewObject(viewObject)
+{
+ m_page = context->createWebPage(this, pageGroup);
+ m_page->initializeWebPage();
+}
+
+PageClientImpl::~PageClientImpl()
+{
+}
+
+// PageClient
+PassOwnPtr<DrawingAreaProxy> PageClientImpl::createDrawingAreaProxy()
+{
+ return DrawingAreaProxyImpl::create(m_page.get());
+}
+
+void PageClientImpl::setViewNeedsDisplay(const WebCore::IntRect& rect)
+{
+ evas_object_image_data_update_add(m_viewObject, rect.x(), rect.y(), rect.width(), rect.height());
+}
+
+void PageClientImpl::displayView()
+{
+ notImplemented();
+}
+
+void PageClientImpl::scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset)
+{
+ setViewNeedsDisplay(scrollRect);
+#define USE_EWK_TOUCH 1
+#if USE_EWK_TOUCH
+ evas_object_move(m_viewObject, 0, 0);
+#endif
+}
+
+WebCore::IntSize PageClientImpl::viewSize()
+{
+ int width, height;
+ evas_object_geometry_get(m_viewObject, 0, 0, &width, &height);
+ return IntSize(width, height);
+}
+
+bool PageClientImpl::isViewWindowActive()
+{
+ notImplemented();
+ return true;
+}
+
+bool PageClientImpl::isViewFocused()
+{
+ notImplemented();
+ return true;
+}
+
+bool PageClientImpl::isViewVisible()
+{
+ notImplemented();
+ return true;
+}
+
+bool PageClientImpl::isViewInWindow()
+{
+ notImplemented();
+ return true;
+}
+
+void PageClientImpl::processDidCrash()
+{
+ notImplemented();
+}
+
+void PageClientImpl::didRelaunchProcess()
+{
+ notImplemented();
+}
+
+void PageClientImpl::pageClosed()
+{
+ notImplemented();
+}
+
+void PageClientImpl::toolTipChanged(const String&, const String&)
+{
+ notImplemented();
+}
+
+void PageClientImpl::setCursor(const Cursor& cursor)
+{
+ notImplemented();
+}
+
+void PageClientImpl::setViewportArguments(const WebCore::ViewportArguments&)
+{
+ notImplemented();
+}
+
+void PageClientImpl::registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo)
+{
+ notImplemented();
+}
+
+void PageClientImpl::clearAllEditCommands()
+{
+ notImplemented();
+}
+
+bool PageClientImpl::canUndoRedo(WebPageProxy::UndoOrRedo)
+{
+ notImplemented();
+ return false;
+}
+
+void PageClientImpl::executeUndoRedo(WebPageProxy::UndoOrRedo)
+{
+ notImplemented();
+}
+
+FloatRect PageClientImpl::convertToDeviceSpace(const FloatRect& viewRect)
+{
+ notImplemented();
+ return viewRect;
+}
+
+FloatRect PageClientImpl::convertToUserSpace(const FloatRect& viewRect)
+{
+ notImplemented();
+ return viewRect;
+}
+
+IntRect PageClientImpl::windowToScreen(const IntRect& rect)
+{
+ notImplemented();
+ return IntRect();
+}
+
+void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled)
+{
+ notImplemented();
+}
+
+PassRefPtr<WebPopupMenuProxy> PageClientImpl::createPopupMenuProxy(WebPageProxy*)
+{
+ notImplemented();
+ return 0;
+}
+
+PassRefPtr<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy*)
+{
+ notImplemented();
+ return 0;
+}
+
+void PageClientImpl::setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut)
+{
+ notImplemented();
+}
+
+void PageClientImpl::didChangeScrollbarsForMainFrame() const
+{
+ notImplemented();
+}
+
+void PageClientImpl::didCommitLoadForMainFrame(bool useCustomRepresentation)
+{
+ notImplemented();
+}
+
+void PageClientImpl::didFinishLoadingDataForCustomRepresentation(const String& suggestedFilename, const CoreIPC::DataReference&)
+{
+ notImplemented();
+}
+
+double PageClientImpl::customRepresentationZoomFactor()
+{
+ notImplemented();
+ return 0;
+}
+
+void PageClientImpl::setCustomRepresentationZoomFactor(double)
+{
+ notImplemented();
+}
+
+void PageClientImpl::flashBackingStoreUpdates(const Vector<IntRect>&)
+{
+ notImplemented();
+}
+
+void PageClientImpl::findStringInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount)
+{
+ notImplemented();
+}
+
+void PageClientImpl::countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount)
+{
+ notImplemented();
+}
+
+float PageClientImpl::userSpaceScaleFactor() const
+{
+ return 0.0;
+}
+
+} // namespace WebKit
Added: trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h (0 => 88440)
--- trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h 2011-06-09 10:26:49 UTC (rev 88440)
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PageClientImpl_h
+#define PageClientImpl_h
+
+#include "PageClient.h"
+#include <Evas.h>
+
+namespace WebKit {
+
+class PageClientImpl : public PageClient {
+public:
+ static PassOwnPtr<PageClientImpl> create(WebContext* context, WebPageGroup* pageGroup, Evas_Object* viewObject)
+ {
+ return adoptPtr(new PageClientImpl(context, pageGroup, viewObject));
+ }
+ ~PageClientImpl();
+
+ Evas_Object* viewObject() const { return m_viewObject; }
+
+ WebPageProxy* page() const { return m_page.get(); }
+
+private:
+ PageClientImpl(WebContext*, WebPageGroup*, Evas_Object*);
+
+ // PageClient
+ virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
+ virtual void setViewNeedsDisplay(const WebCore::IntRect&);
+ virtual void displayView();
+ virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset);
+ virtual WebCore::IntSize viewSize();
+ virtual bool isViewWindowActive();
+ virtual bool isViewFocused();
+ virtual bool isViewVisible();
+ virtual bool isViewInWindow();
+
+ virtual void processDidCrash();
+ virtual void didRelaunchProcess();
+ virtual void pageClosed();
+
+ virtual void toolTipChanged(const String&, const String&);
+
+ virtual void setCursor(const WebCore::Cursor&);
+ virtual void setViewportArguments(const WebCore::ViewportArguments&);
+
+ virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
+ virtual void clearAllEditCommands();
+ virtual bool canUndoRedo(WebPageProxy::UndoOrRedo);
+ virtual void executeUndoRedo(WebPageProxy::UndoOrRedo);
+ virtual WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&);
+ virtual WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&);
+ virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&);
+
+ virtual void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled);
+
+ virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
+ virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
+
+ virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut);
+
+ virtual void didChangeScrollbarsForMainFrame() const;
+
+ virtual void didCommitLoadForMainFrame(bool useCustomRepresentation);
+ virtual void didFinishLoadingDataForCustomRepresentation(const String& suggestedFilename, const CoreIPC::DataReference&);
+ virtual double customRepresentationZoomFactor();
+ virtual void setCustomRepresentationZoomFactor(double);
+
+ virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
+ virtual void findStringInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount);
+ virtual void countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount);
+
+ virtual float userSpaceScaleFactor() const;
+
+private:
+ RefPtr<WebPageProxy> m_page;
+ Evas_Object* m_viewObject;
+};
+
+} // namespace WebKit
+
+#endif // PageClientImpl_h
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (88439 => 88440)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2011-06-09 10:06:17 UTC (rev 88439)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2011-06-09 10:26:49 UTC (rev 88440)
@@ -57,6 +57,9 @@
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
+#if PLATFORM(EFL)
+#include <Evas.h>
+#endif
namespace CoreIPC {
class ArgumentDecoder;
@@ -313,6 +316,9 @@
#if PLATFORM(GTK)
GtkWidget* viewWidget();
#endif
+#if PLATFORM(EFL)
+ Evas_Object* viewObject();
+#endif
#if ENABLE(TILED_BACKING_STORE)
void setActualVisibleContentRect(const WebCore::IntRect& rect);
#endif
@@ -657,7 +663,7 @@
void executeSavedCommandBySelector(const String& selector, bool& handled);
#endif
-#if PLATFORM(GTK)
+#if PLATFORM(GTK) || PLATFORM(EFL)
void getEditorCommandsForKeyEvent(Vector<String>&);
#endif
Added: trunk/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp (0 => 88440)
--- trunk/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp (rev 0)
+++ trunk/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp 2011-06-09 10:26:49 UTC (rev 88440)
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebPageProxy.h"
+
+#include "NotImplemented.h"
+#include "PageClientImpl.h"
+
+#include <sys/utsname.h>
+
+namespace WebKit {
+
+Evas_Object* WebPageProxy::viewObject()
+{
+ return static_cast<PageClientImpl*>(m_pageClient)->viewObject();
+}
+
+String WebPageProxy::standardUserAgent(const String& applicationNameForUserAgent)
+{
+ WTF::String platform;
+ WTF::String version;
+ WTF::String osVersion;
+
+#if PLATFORM(X11)
+ platform = "X11";
+#else
+ platform = "Unknown";
+#endif
+ version = makeString(String::number(WEBKIT_USER_AGENT_MAJOR_VERSION), '.',
+ String::number(WEBKIT_USER_AGENT_MINOR_VERSION), '+');
+ struct utsname name;
+ if (uname(&name) != -1)
+ osVersion = WTF::String(name.sysname) + " " + WTF::String(name.machine);
+ else
+ osVersion = "Unknown";
+
+ return makeString("Mozilla/5.0 (", platform, "; ", osVersion, ") AppleWebKit/", version)
+ + makeString(" (KHTML, like Gecko) Version/5.0 Safari/", version);
+}
+
+void WebPageProxy::getEditorCommandsForKeyEvent(Vector<WTF::String>& commandsList)
+{
+ notImplemented();
+}
+
+void WebPageProxy::saveRecentSearches(const String&, const Vector<String>&)
+{
+ notImplemented();
+}
+
+void WebPageProxy::loadRecentSearches(const String&, Vector<String>&)
+{
+ notImplemented();
+}
+
+} // namespace WebKit