Title: [225046] trunk/Tools
Revision
225046
Author
[email protected]
Date
2017-11-20 01:51:07 -0800 (Mon, 20 Nov 2017)

Log Message

[WPE] Build C API tests
https://bugs.webkit.org/show_bug.cgi?id=179817

Reviewed by Michael Catanzaro.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/PlatformWPE.cmake:
* TestWebKitAPI/PlatformWebView.h:
* TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
(TestWebKitAPI::Util::URLForNonExistentResource):
(TestWebKitAPI::Util::isKeyDown):
* TestWebKitAPI/wpe/PlatformWebViewWPE.cpp: Added.
(TestWebKitAPI::PlatformWebView::PlatformWebView):
(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):
(TestWebKitAPI::PlatformWebView::page const):
(TestWebKitAPI::PlatformWebView::resizeTo):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (225045 => 225046)


--- trunk/Tools/ChangeLog	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/ChangeLog	2017-11-20 09:51:07 UTC (rev 225046)
@@ -1,5 +1,30 @@
 2017-11-20  Carlos Garcia Campos  <[email protected]>
 
+        [WPE] Build C API tests
+        https://bugs.webkit.org/show_bug.cgi?id=179817
+
+        Reviewed by Michael Catanzaro.
+
+        * TestWebKitAPI/CMakeLists.txt:
+        * TestWebKitAPI/PlatformGTK.cmake:
+        * TestWebKitAPI/PlatformWPE.cmake:
+        * TestWebKitAPI/PlatformWebView.h:
+        * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
+        (TestWebKitAPI::Util::URLForNonExistentResource):
+        (TestWebKitAPI::Util::isKeyDown):
+        * TestWebKitAPI/wpe/PlatformWebViewWPE.cpp: Added.
+        (TestWebKitAPI::PlatformWebView::PlatformWebView):
+        (TestWebKitAPI::PlatformWebView::~PlatformWebView):
+        (TestWebKitAPI::PlatformWebView::initialize):
+        (TestWebKitAPI::PlatformWebView::page const):
+        (TestWebKitAPI::PlatformWebView::resizeTo):
+        (TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
+        (TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
+        (TestWebKitAPI::PlatformWebView::simulateRightClick):
+        (TestWebKitAPI::PlatformWebView::simulateMouseMove):
+
+2017-11-20  Carlos Garcia Campos  <[email protected]>
+
         [WPE] Add env var WPE_USE_HEADLESS_VIEW_BACKEND
         https://bugs.webkit.org/show_bug.cgi?id=173770
 

Modified: trunk/Tools/TestWebKitAPI/CMakeLists.txt (225045 => 225046)


--- trunk/Tools/TestWebKitAPI/CMakeLists.txt	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/TestWebKitAPI/CMakeLists.txt	2017-11-20 09:51:07 UTC (rev 225046)
@@ -22,6 +22,60 @@
         WebKit
         gtest
     )
+
+    set(test_webkit_api_SOURCES
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/AboutBlankLoad.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/CanHandleRequest.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/CookieManager.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/DocumentStartUserScriptAlertCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/DOMWindowExtensionBasic.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/DOMWindowExtensionNoCache.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/DownloadDecideDestinationCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/EnumerateMediaDevices.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/EvaluateJavaScript.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/FailedLoad.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/Find.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ForceRepaint.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/FrameMIMETypeHTML.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/FrameMIMETypePNG.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/Geolocation.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/GetInjectedBundleInitializationUserDataCallback.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/HitTestResultNodeHandle.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleBasic.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleFrameHitTest.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleInitializationUserDataCallbackWins.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadAlternateHTMLStringWithNonDirectoryURL.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadCanceledNoServerRedirectCallback.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadPageOnCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/MouseMoveAfterCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFrames.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/PageLoadBasic.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ParentFrame.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/PendingAPIRequestURL.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/PreventEmptyUserAgent.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ProvisionalURLAfterWillSendRequestCallback.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ReloadPageAfterCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ResizeWindowAfterCrash.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/RestoreSessionStateContainingFormData.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/ShouldGoToBackForwardListItem.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/UserMedia.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/UserMessage.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WillSendSubmitEvent.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPageCopySessionStateWithFiltering.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPageGetScaleFactorNotZero.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPreferences.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKRetainPtr.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKString.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKStringJSString.cpp
+        ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKURL.cpp
+    )
+
     list(APPEND TestWebKitAPI_LIBRARIES
         WebKit
     )

Modified: trunk/Tools/TestWebKitAPI/PlatformGTK.cmake (225045 => 225046)


--- trunk/Tools/TestWebKitAPI/PlatformGTK.cmake	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/TestWebKitAPI/PlatformGTK.cmake	2017-11-20 09:51:07 UTC (rev 225046)
@@ -70,60 +70,12 @@
     ${GTK3_LIBRARIES}
 )
 
-add_executable(TestWebKit
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/AboutBlankLoad.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/CanHandleRequest.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/CookieManager.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/DocumentStartUserScriptAlertCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/DOMWindowExtensionBasic.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/DOMWindowExtensionNoCache.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/DownloadDecideDestinationCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/EnumerateMediaDevices.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/EvaluateJavaScript.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/FailedLoad.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/Find.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ForceRepaint.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/FrameMIMETypeHTML.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/FrameMIMETypePNG.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/Geolocation.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/GetInjectedBundleInitializationUserDataCallback.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/HitTestResultNodeHandle.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleBasic.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleFrameHitTest.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/InjectedBundleInitializationUserDataCallbackWins.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadAlternateHTMLStringWithNonDirectoryURL.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadCanceledNoServerRedirectCallback.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/LoadPageOnCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/MouseMoveAfterCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFrames.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/PageLoadBasic.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ParentFrame.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/PendingAPIRequestURL.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/PreventEmptyUserAgent.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ProvisionalURLAfterWillSendRequestCallback.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ReloadPageAfterCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ResizeWindowAfterCrash.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/RestoreSessionStateContainingFormData.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/ShouldGoToBackForwardListItem.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/UserMedia.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/UserMessage.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WillSendSubmitEvent.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPageCopySessionStateWithFiltering.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPageGetScaleFactorNotZero.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKPreferences.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKRetainPtr.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKString.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKStringJSString.cpp
-    ${TESTWEBKITAPI_DIR}/Tests/WebKit/WKURL.cpp
+list(APPEND test_webkit_api_SOURCES
     ${TESTWEBKITAPI_DIR}/Tests/WebKit/gtk/InputMethodFilter.cpp
 )
 
+add_executable(TestWebKit ${test_webkit_api_SOURCES})
+
 target_link_libraries(TestWebKit ${test_webkit_api_LIBRARIES})
 add_test(TestWebKit ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit/TestWebKit)
 set_tests_properties(TestWebKit PROPERTIES TIMEOUT 60)

Modified: trunk/Tools/TestWebKitAPI/PlatformWPE.cmake (225045 => 225046)


--- trunk/Tools/TestWebKitAPI/PlatformWPE.cmake	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/TestWebKitAPI/PlatformWPE.cmake	2017-11-20 09:51:07 UTC (rev 225046)
@@ -15,6 +15,7 @@
 include_directories(
     ${FORWARDING_HEADERS_DIR}
     ${FORWARDING_HEADERS_DIR}/_javascript_Core
+    ${TOOLS_DIR}/wpe/HeadlessViewBackend
 )
 
 include_directories(SYSTEM
@@ -32,6 +33,12 @@
     ${TESTWEBKITAPI_DIR}/wpe/PlatformUtilitiesWPE.cpp
 )
 
+set(webkit_api_harness_SOURCES
+    ${TESTWEBKITAPI_DIR}/glib/UtilitiesGLib.cpp
+    ${TESTWEBKITAPI_DIR}/wpe/PlatformUtilitiesWPE.cpp
+    ${TESTWEBKITAPI_DIR}/wpe/PlatformWebViewWPE.cpp
+)
+
 # TestWTF
 
 list(APPEND TestWTF_SOURCES
@@ -63,8 +70,24 @@
 set_tests_properties(TestWebCore PROPERTIES TIMEOUT 60)
 set_target_properties(TestWebCore PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebCore)
 
+# TestWebKit
+
+list(APPEND test_webkit_api_LIBRARIES
+    WPEHeadlessViewBackend
+)
+
+add_executable(TestWebKit ${test_webkit_api_SOURCES})
+
+target_link_libraries(TestWebKit ${test_webkit_api_LIBRARIES})
+add_test(TestWebKit ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit/TestWebKit)
+set_tests_properties(TestWebKit PROPERTIES TIMEOUT 60)
+set_target_properties(TestWebKit PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit)
+
 if (COMPILER_IS_GCC_OR_CLANG)
     WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebCore -Wno-sign-compare
                                             -Wno-undef
                                             -Wno-unused-parameter)
+    WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebKit -Wno-sign-compare
+                                           -Wno-undef
+                                           -Wno-unused-parameter)
 endif ()

Modified: trunk/Tools/TestWebKitAPI/PlatformWebView.h (225045 => 225046)


--- trunk/Tools/TestWebKitAPI/PlatformWebView.h	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/TestWebKitAPI/PlatformWebView.h	2017-11-20 09:51:07 UTC (rev 225046)
@@ -47,6 +47,11 @@
 #elif PLATFORM(GTK)
 typedef WKViewRef PlatformWKView;
 typedef GtkWidget *PlatformWindow;
+#elif PLATFORM(WPE)
+class HeadlessViewBackend;
+struct wpe_view_backend;
+typedef WKViewRef PlatformWKView;
+typedef HeadlessViewBackend *PlatformWindow;
 #endif
 
 namespace TestWebKitAPI {
@@ -77,12 +82,15 @@
 private:
 #if PLATFORM(MAC)
     void initialize(WKPageConfigurationRef, Class wkViewSubclass);
-#elif PLATFORM(GTK)
+#elif PLATFORM(GTK) || PLATFORM(WPE)
     void initialize(WKPageConfigurationRef);
 #endif
 
     PlatformWKView m_view;
     PlatformWindow m_window;
+#if PLATFORM(WPE)
+    struct wpe_view_backend* m_backend { nullptr };
+#endif
 };
 
 } // namespace TestWebKitAPI

Modified: trunk/Tools/TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp (225045 => 225046)


--- trunk/Tools/TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp	2017-11-20 09:47:56 UTC (rev 225045)
+++ trunk/Tools/TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp	2017-11-20 09:51:07 UTC (rev 225046)
@@ -60,5 +60,16 @@
     return WKURLCreateWithUTF8CString(resourceURI.get());
 }
 
+WKURLRef URLForNonExistentResource()
+{
+    return WKURLCreateWithUTF8CString("file:///does-not-exist.html");
+}
+
+bool isKeyDown(WKNativeEventPtr event)
+{
+    // FIXME: WKNativeEventPtr is not properly defined in WPE.
+    return false;
+}
+
 } // namespace Util
 } // namespace TestWebKitAPI

Added: trunk/Tools/TestWebKitAPI/wpe/PlatformWebViewWPE.cpp (0 => 225046)


--- trunk/Tools/TestWebKitAPI/wpe/PlatformWebViewWPE.cpp	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/wpe/PlatformWebViewWPE.cpp	2017-11-20 09:51:07 UTC (rev 225046)
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * 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 "PlatformWebView.h"
+
+#include "HeadlessViewBackend.h"
+#include <WebKit/WKRetainPtr.h>
+#include <WebKit/WKView.h>
+
+namespace TestWebKitAPI {
+
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
+    : m_window(nullptr)
+{
+    WKRetainPtr<WKPageConfigurationRef> configuration = adoptWK(WKPageConfigurationCreate());
+    WKPageConfigurationSetContext(configuration.get(), contextRef);
+    WKPageConfigurationSetPageGroup(configuration.get(), pageGroupRef);
+
+    initialize(configuration.get());
+}
+
+PlatformWebView::PlatformWebView(WKPageConfigurationRef configuration)
+    : m_window(nullptr)
+{
+    initialize(configuration);
+}
+
+PlatformWebView::PlatformWebView(WKPageRef relatedPage)
+    : m_window(nullptr)
+{
+    WKRetainPtr<WKPageConfigurationRef> configuration = adoptWK(WKPageConfigurationCreate());
+    WKPageConfigurationSetContext(configuration.get(), WKPageGetContext(relatedPage));
+    WKPageConfigurationSetPageGroup(configuration.get(), WKPageGetPageGroup(relatedPage));
+    WKPageConfigurationSetRelatedPage(configuration.get(), relatedPage);
+
+    initialize(configuration.get());
+}
+
+PlatformWebView::~PlatformWebView()
+{
+    if (m_backend)
+        wpe_view_backend_destroy(m_backend);
+
+    delete m_window;
+}
+
+void PlatformWebView::initialize(WKPageConfigurationRef configuration)
+{
+    const char* useHeadlessViewBackend = g_getenv("WPE_USE_HEADLESS_VIEW_BACKEND");
+    if (useHeadlessViewBackend && strcmp(useHeadlessViewBackend, "0"))
+        m_window = new HeadlessViewBackend;
+    else
+        m_backend = wpe_view_backend_create();
+
+    m_view = WKViewCreate(m_window ? m_window->backend() : m_backend, configuration);
+}
+
+WKPageRef PlatformWebView::page() const
+{
+    return WKViewGetPage(m_view);
+}
+
+void PlatformWebView::resizeTo(unsigned width, unsigned height)
+{
+    // FIXME: implement this.
+}
+
+void PlatformWebView::simulateSpacebarKeyPress()
+{
+    // FIXME: implement this.
+}
+
+void PlatformWebView::simulateAltKeyPress()
+{
+    // FIXME: implement this.
+}
+
+void PlatformWebView::simulateRightClick(unsigned x, unsigned y)
+{
+    // FIXME: implement this.
+}
+
+void PlatformWebView::simulateMouseMove(unsigned x, unsigned y, WKEventModifiers)
+{
+    // FIXME: implement this.
+}
+
+} // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to