Title: [230557] trunk
Revision
230557
Author
zandober...@gmail.com
Date
2018-04-11 22:53:26 -0700 (Wed, 11 Apr 2018)

Log Message

[WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors
https://bugs.webkit.org/show_bug.cgi?id=184513

Reviewed by Michael Catanzaro.

Source/WebKit:

webkit_web_view_new*() constructors should always expect a non-null
WebKitWebViewBackend object, forcing the user to specify how the
wpe_view_backend object is managed for the WebKitWebView that's being
created.

webkitWebViewBackendCreateDefault() and the default
_WebKitWebViewBackend() constructor are removed. WPE-specific
webkit_web_view_new*() entrypoints are updated to bail if the passed-in
WebKitWebViewBackend object is null. Documentation is updated
accordingly.

* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed):
* UIProcess/API/wpe/WebKitWebViewBackend.cpp:
(webkitWebViewBackendCreateDefault): Deleted.
* UIProcess/API/wpe/WebKitWebViewBackendPrivate.h:
* UIProcess/API/wpe/WebKitWebViewWPE.cpp:
(webkit_web_view_new):
(webkit_web_view_new_with_context):
(webkit_web_view_new_with_related_view):
(webkit_web_view_new_with_settings):
(webkit_web_view_new_with_user_content_manager):

Tools:

Update the WPE-specific testWebViewWebBackend() test case, removing the
test that passes a null WebKitWebViewBackend object to the
webkit_web_view_new() call.

Helper createWebViewBackend() that's called via Test::createWebView()
variations is updated to, in case of not using the headless backend,
return a WebKitWebViewBackend instance that wraps around a
default wpe_view_backend object.

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewWebBackend):
* TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::createWebViewBackend):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (230556 => 230557)


--- trunk/Source/WebKit/ChangeLog	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Source/WebKit/ChangeLog	2018-04-12 05:53:26 UTC (rev 230557)
@@ -1,3 +1,33 @@
+2018-04-11  Zan Dobersek  <zdober...@igalia.com>
+
+        [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors
+        https://bugs.webkit.org/show_bug.cgi?id=184513
+
+        Reviewed by Michael Catanzaro.
+
+        webkit_web_view_new*() constructors should always expect a non-null
+        WebKitWebViewBackend object, forcing the user to specify how the
+        wpe_view_backend object is managed for the WebKitWebView that's being
+        created.
+
+        webkitWebViewBackendCreateDefault() and the default
+        _WebKitWebViewBackend() constructor are removed. WPE-specific
+        webkit_web_view_new*() entrypoints are updated to bail if the passed-in
+        WebKitWebViewBackend object is null. Documentation is updated
+        accordingly.
+
+        * UIProcess/API/glib/WebKitWebView.cpp:
+        (webkitWebViewConstructed):
+        * UIProcess/API/wpe/WebKitWebViewBackend.cpp:
+        (webkitWebViewBackendCreateDefault): Deleted.
+        * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h:
+        * UIProcess/API/wpe/WebKitWebViewWPE.cpp:
+        (webkit_web_view_new):
+        (webkit_web_view_new_with_context):
+        (webkit_web_view_new_with_related_view):
+        (webkit_web_view_new_with_settings):
+        (webkit_web_view_new_with_user_content_manager):
+
 2018-04-11  Fujii Hironori  <hironori.fu...@sony.com>
 
         [curl][WebKit] Implement NetworkDataTaskCurl

Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (230556 => 230557)


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp	2018-04-12 05:53:26 UTC (rev 230557)
@@ -623,10 +623,6 @@
 
     WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
     WebKitWebViewPrivate* priv = webView->priv;
-#if PLATFORM(WPE)
-    if (!priv->backend)
-        priv->backend = webkitWebViewBackendCreateDefault();
-#endif
     if (priv->relatedView) {
         priv->context = webkit_web_view_get_context(priv->relatedView);
         priv->isEphemeral = webkit_web_view_is_ephemeral(priv->relatedView);

Modified: trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp (230556 => 230557)


--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp	2018-04-12 05:53:26 UTC (rev 230557)
@@ -46,13 +46,6 @@
         ASSERT(notifyCallbackData);
     }
 
-    _WebKitWebViewBackend()
-        : backend(wpe_view_backend_create())
-        , notifyCallback(reinterpret_cast<GDestroyNotify>(wpe_view_backend_destroy))
-        , notifyCallbackData(backend)
-    {
-    }
-
     ~_WebKitWebViewBackend()
     {
         notifyCallback(notifyCallbackData);
@@ -82,13 +75,6 @@
     }
 }
 
-GRefPtr<WebKitWebViewBackend> webkitWebViewBackendCreateDefault()
-{
-    auto* viewBackend = static_cast<WebKitWebViewBackend*>(fastMalloc(sizeof(WebKitWebViewBackend)));
-    new (viewBackend) WebKitWebViewBackend();
-    return adoptGRef(viewBackend);
-}
-
 /**
  * webkit_web_view_backend_new:
  * @backend: (transfer full): a #wpe_view_backend

Modified: trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackendPrivate.h (230556 => 230557)


--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackendPrivate.h	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackendPrivate.h	2018-04-12 05:53:26 UTC (rev 230557)
@@ -31,4 +31,3 @@
 }
 
 void webkitWebViewBackendUnref(WebKitWebViewBackend*);
-GRefPtr<WebKitWebViewBackend> webkitWebViewBackendCreateDefault();

Modified: trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewWPE.cpp (230556 => 230557)


--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewWPE.cpp	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewWPE.cpp	2018-04-12 05:53:26 UTC (rev 230557)
@@ -39,7 +39,7 @@
 
 /**
  * webkit_web_view_new:
- * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
+ * @backend: (transfer full): a #WebKitWebViewBackend
  *
  * Creates a new #WebKitWebView with the default #WebKitWebContext and
  * no #WebKitUserContentManager associated with it.
@@ -51,6 +51,8 @@
  */
 WebKitWebView* webkit_web_view_new(WebKitWebViewBackend* backend)
 {
+    g_return_val_if_fail(backend, nullptr);
+
     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
         "backend", backend,
         "web-context", webkit_web_context_get_default(),
@@ -59,7 +61,7 @@
 
 /**
  * webkit_web_view_new_with_context:
- * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
+ * @backend: (transfer full): a #WebKitWebViewBackend
  * @context: the #WebKitWebContext to be used by the #WebKitWebView
  *
  * Creates a new #WebKitWebView with the given #WebKitWebContext and
@@ -71,6 +73,7 @@
  */
 WebKitWebView* webkit_web_view_new_with_context(WebKitWebViewBackend* backend, WebKitWebContext* context)
 {
+    g_return_val_if_fail(backend, nullptr);
     g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), nullptr);
 
     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
@@ -82,7 +85,7 @@
 
 /**
  * webkit_web_view_new_with_related_view: (constructor)
- * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
+ * @backend: (transfer full): a #WebKitWebViewBackend
  * @web_view: the related #WebKitWebView
  *
  * Creates a new #WebKitWebView sharing the same web process with @web_view.
@@ -102,6 +105,7 @@
  */
 WebKitWebView* webkit_web_view_new_with_related_view(WebKitWebViewBackend* backend, WebKitWebView* webView)
 {
+    g_return_val_if_fail(backend, nullptr);
     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr);
 
     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
@@ -127,6 +131,7 @@
  */
 WebKitWebView* webkit_web_view_new_with_settings(WebKitWebViewBackend* backend, WebKitSettings* settings)
 {
+    g_return_val_if_fail(backend, nullptr);
     g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr);
 
     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
@@ -137,7 +142,7 @@
 
 /**
  * webkit_web_view_new_with_user_content_manager:
- * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
+ * @backend: (transfer full): a #WebKitWebViewBackend
  * @user_content_manager: a #WebKitUserContentManager.
  *
  * Creates a new #WebKitWebView with the given #WebKitUserContentManager.
@@ -150,6 +155,7 @@
  */
 WebKitWebView* webkit_web_view_new_with_user_content_manager(WebKitWebViewBackend* backend, WebKitUserContentManager* userContentManager)
 {
+    g_return_val_if_fail(backend, nullptr);
     g_return_val_if_fail(WEBKIT_IS_USER_CONTENT_MANAGER(userContentManager), nullptr);
 
     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,

Modified: trunk/Tools/ChangeLog (230556 => 230557)


--- trunk/Tools/ChangeLog	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Tools/ChangeLog	2018-04-12 05:53:26 UTC (rev 230557)
@@ -1,3 +1,24 @@
+2018-04-11  Zan Dobersek  <zdober...@igalia.com>
+
+        [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors
+        https://bugs.webkit.org/show_bug.cgi?id=184513
+
+        Reviewed by Michael Catanzaro.
+
+        Update the WPE-specific testWebViewWebBackend() test case, removing the
+        test that passes a null WebKitWebViewBackend object to the
+        webkit_web_view_new() call.
+
+        Helper createWebViewBackend() that's called via Test::createWebView()
+        variations is updated to, in case of not using the headless backend,
+        return a WebKitWebViewBackend instance that wraps around a
+        default wpe_view_backend object.
+
+        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
+        (testWebViewWebBackend):
+        * TestWebKitAPI/glib/WebKitGLib/TestMain.h:
+        (Test::createWebViewBackend):
+
 2018-04-11  Zalan Bujtas  <za...@apple.com>
 
         [LayoutReloaded] Introduce needsLayout flag

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp (230556 => 230557)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp	2018-04-12 05:53:26 UTC (rev 230557)
@@ -108,8 +108,8 @@
 #if PLATFORM(WPE)
 static void testWebViewWebBackend(Test* test, gconstpointer)
 {
-    // Use the default backend (we don't have a way to check the backend will be actually freed).
-    GRefPtr<WebKitWebView> webView = adoptGRef(webkit_web_view_new(nullptr));
+    // User provided backend with default deleter (we don't have a way to check the backend will be actually freed).
+    GRefPtr<WebKitWebView> webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpe_view_backend_create(), nullptr, nullptr)));
     test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get()));
     auto* viewBackend = webkit_web_view_get_backend(webView.get());
     g_assert(viewBackend);
@@ -117,15 +117,6 @@
     g_assert(wpeBackend);
     webView = nullptr;
 
-    // User provided backend with default deleter (we don't have a way to check the backend will be actually freed).
-    webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpe_view_backend_create(), nullptr, nullptr)));
-    test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get()));
-    viewBackend = webkit_web_view_get_backend(webView.get());
-    g_assert(viewBackend);
-    wpeBackend = webkit_web_view_backend_get_wpe_backend(viewBackend);
-    g_assert(wpeBackend);
-    webView = nullptr;
-
     // User provided backend with destroy notify.
     wpeBackend = wpe_view_backend_create();
     webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpeBackend, [](gpointer userData) {

Modified: trunk/Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h (230556 => 230557)


--- trunk/Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h	2018-04-12 04:27:24 UTC (rev 230556)
+++ trunk/Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h	2018-04-12 05:53:26 UTC (rev 230557)
@@ -144,8 +144,10 @@
     static WebKitWebViewBackend* createWebViewBackend()
     {
         const char* useHeadlessViewBackend = g_getenv("WPE_USE_HEADLESS_VIEW_BACKEND");
-        if (!useHeadlessViewBackend || !strcmp(useHeadlessViewBackend, "0"))
-            return nullptr;
+        if (!useHeadlessViewBackend || !strcmp(useHeadlessViewBackend, "0")) {
+            auto* backend = wpe_view_backend_create();
+            return webkit_web_view_backend_new(backend, reinterpret_cast<GDestroyNotify>(wpe_view_backend_destroy), backend);
+        }
         auto* headlessBackend = new HeadlessViewBackend;
         return webkit_web_view_backend_new(headlessBackend->backend(), [](gpointer userData) {
             delete static_cast<HeadlessViewBackend*>(userData);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to