Diff
Modified: trunk/Source/WebKit2/ChangeLog (124460 => 124461)
--- trunk/Source/WebKit2/ChangeLog 2012-08-02 15:56:21 UTC (rev 124460)
+++ trunk/Source/WebKit2/ChangeLog 2012-08-02 16:03:46 UTC (rev 124461)
@@ -1,3 +1,27 @@
+2012-08-02 Hyerim Bae <[email protected]>
+
+ [EFL][WK2]Add ewk_view_ui_client.
+ https://bugs.webkit.org/show_bug.cgi?id=89864
+
+ Reviewed by Kentaro Hara.
+
+ Add ewk_view_ui_client.h / cpp files for wrapping WKPageSetPageUIClient,
+ add close, createNewPage callback member to WKPageSetPageUIClient.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_page_close):
+ (ewk_view_page_create):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp: Added.
+ (toEwkView):
+ (closePage):
+ (createNewPage):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/ewk_view_ui_client_private.h: Added.
+
2012-08-02 Carlos Garcia Campos <[email protected]>
[GTK] No main resource in WebView on load committed when page has been loaded from history cache
Modified: trunk/Source/WebKit2/PlatformEfl.cmake (124460 => 124461)
--- trunk/Source/WebKit2/PlatformEfl.cmake 2012-08-02 15:56:21 UTC (rev 124460)
+++ trunk/Source/WebKit2/PlatformEfl.cmake 2012-08-02 16:03:46 UTC (rev 124461)
@@ -59,6 +59,7 @@
UIProcess/API/efl/ewk_view_loader_client.cpp
UIProcess/API/efl/ewk_view_policy_client.cpp
UIProcess/API/efl/ewk_view_resource_load_client.cpp
+ UIProcess/API/efl/ewk_view_ui_client.cpp
UIProcess/API/efl/ewk_web_error.cpp
UIProcess/API/efl/ewk_web_resource.cpp
Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp (124460 => 124461)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp 2012-08-02 15:56:21 UTC (rev 124460)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp 2012-08-02 16:03:46 UTC (rev 124461)
@@ -37,6 +37,7 @@
#include "ewk_view_policy_client_private.h"
#include "ewk_view_private.h"
#include "ewk_view_resource_load_client_private.h"
+#include "ewk_view_ui_client_private.h"
#include "ewk_web_resource.h"
#include <Ecore_Evas.h>
#include <Edje.h>
@@ -667,6 +668,7 @@
ewk_view_loader_client_attach(wkPage, ewkView);
ewk_view_policy_client_attach(wkPage, ewkView);
ewk_view_resource_load_client_attach(wkPage, ewkView);
+ ewk_view_ui_client_attach(wkPage, ewkView);
ewk_view_theme_set(ewkView, DEFAULT_THEME_PATH"/default.edj");
@@ -1297,3 +1299,19 @@
return true;
}
+
+void ewk_view_page_close(Evas_Object* ewkView)
+{
+ evas_object_smart_callback_call(ewkView, "close,window", 0);
+}
+
+WKPageRef ewk_view_page_create(Evas_Object* ewkView)
+{
+ Evas_Object* newEwkView = 0;
+ evas_object_smart_callback_call(ewkView, "create,window", &newEwkView);
+
+ if (!newEwkView)
+ return 0;
+
+ return static_cast<WKPageRef>(WKRetain(ewk_view_page_get(newEwkView)));
+}
Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h (124460 => 124461)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h 2012-08-02 15:56:21 UTC (rev 124460)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h 2012-08-02 16:03:46 UTC (rev 124461)
@@ -26,6 +26,8 @@
*
* The following signals (see evas_object_smart_callback_add()) are emitted:
*
+ * - "close,window", void: window is closed.
+ * - "create,window", Evas_Object**: a new window is created.
* - "download,cancelled", Ewk_Download_Job*: reports that a download was effectively cancelled.
* - "download,failed", Ewk_Download_Job_Error*: reports that a download failed with the given error.
* - "download,finished", Ewk_Download_Job*: reports that a download completed successfully.
Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h (124460 => 124461)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h 2012-08-02 15:56:21 UTC (rev 124460)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h 2012-08-02 16:03:46 UTC (rev 124461)
@@ -61,6 +61,8 @@
void ewk_view_load_provisional_started(Evas_Object* ewkView);
void ewk_view_navigation_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision);
void ewk_view_new_window_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision);
+void ewk_view_page_close(Evas_Object* ewkView);
+WKPageRef ewk_view_page_create(Evas_Object* ewkView);
void ewk_view_title_changed(Evas_Object* ewkView, const char* title);
void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Error* error);
void ewk_view_resource_load_finished(Evas_Object* ewkView, uint64_t resourceIdentifier);
Added: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp (0 => 124461)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp 2012-08-02 16:03:46 UTC (rev 124461)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics. All rights reserved.
+ *
+ * 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 "ewk_view_private.h"
+#include "ewk_view_ui_client_private.h"
+
+static inline Evas_Object* toEwkView(const void* clientInfo)
+{
+ return static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
+}
+
+static void closePage(WKPageRef, const void* clientInfo)
+{
+ ewk_view_page_close(toEwkView(clientInfo));
+}
+
+static WKPageRef createNewPage(WKPageRef, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void* clientInfo)
+{
+ return ewk_view_page_create(toEwkView(clientInfo));
+}
+
+void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
+{
+ WKPageUIClient uiClient;
+ memset(&uiClient, 0, sizeof(WKPageUIClient));
+ uiClient.version = kWKPageUIClientCurrentVersion;
+ uiClient.clientInfo = ewkView;
+ uiClient.close = closePage;
+ uiClient.createNewPage = createNewPage;
+ WKPageSetPageUIClient(pageRef, &uiClient);
+}
Added: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client_private.h (0 => 124461)
--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client_private.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client_private.h 2012-08-02 16:03:46 UTC (rev 124461)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics. All rights reserved.
+ *
+ * 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 ewk_view_ui_client_private_h
+#define ewk_view_ui_client_private_h
+
+#include <Evas.h>
+#include <WebKit2/WKBase.h>
+
+void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView);
+
+#endif // ewk_view_ui_client_private_h