- 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);