Changeset 230557 in webkit
- Timestamp:
- Apr 11, 2018 10:53:26 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r230551 r230557 1 2018-04-11 Zan Dobersek <zdobersek@igalia.com> 2 3 [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors 4 https://bugs.webkit.org/show_bug.cgi?id=184513 5 6 Reviewed by Michael Catanzaro. 7 8 webkit_web_view_new*() constructors should always expect a non-null 9 WebKitWebViewBackend object, forcing the user to specify how the 10 wpe_view_backend object is managed for the WebKitWebView that's being 11 created. 12 13 webkitWebViewBackendCreateDefault() and the default 14 _WebKitWebViewBackend() constructor are removed. WPE-specific 15 webkit_web_view_new*() entrypoints are updated to bail if the passed-in 16 WebKitWebViewBackend object is null. Documentation is updated 17 accordingly. 18 19 * UIProcess/API/glib/WebKitWebView.cpp: 20 (webkitWebViewConstructed): 21 * UIProcess/API/wpe/WebKitWebViewBackend.cpp: 22 (webkitWebViewBackendCreateDefault): Deleted. 23 * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: 24 * UIProcess/API/wpe/WebKitWebViewWPE.cpp: 25 (webkit_web_view_new): 26 (webkit_web_view_new_with_context): 27 (webkit_web_view_new_with_related_view): 28 (webkit_web_view_new_with_settings): 29 (webkit_web_view_new_with_user_content_manager): 30 1 31 2018-04-11 Fujii Hironori <Hironori.Fujii@sony.com> 2 32 -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
r229970 r230557 624 624 WebKitWebView* webView = WEBKIT_WEB_VIEW(object); 625 625 WebKitWebViewPrivate* priv = webView->priv; 626 #if PLATFORM(WPE)627 if (!priv->backend)628 priv->backend = webkitWebViewBackendCreateDefault();629 #endif630 626 if (priv->relatedView) { 631 627 priv->context = webkit_web_view_get_context(priv->relatedView); -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp
r227418 r230557 47 47 } 48 48 49 _WebKitWebViewBackend()50 : backend(wpe_view_backend_create())51 , notifyCallback(reinterpret_cast<GDestroyNotify>(wpe_view_backend_destroy))52 , notifyCallbackData(backend)53 {54 }55 56 49 ~_WebKitWebViewBackend() 57 50 { … … 81 74 fastFree(viewBackend); 82 75 } 83 }84 85 GRefPtr<WebKitWebViewBackend> webkitWebViewBackendCreateDefault()86 {87 auto* viewBackend = static_cast<WebKitWebViewBackend*>(fastMalloc(sizeof(WebKitWebViewBackend)));88 new (viewBackend) WebKitWebViewBackend();89 return adoptGRef(viewBackend);90 76 } 91 77 -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackendPrivate.h
r227418 r230557 32 32 33 33 void webkitWebViewBackendUnref(WebKitWebViewBackend*); 34 GRefPtr<WebKitWebViewBackend> webkitWebViewBackendCreateDefault(); -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewWPE.cpp
r225044 r230557 40 40 /** 41 41 * webkit_web_view_new: 42 * @backend: ( nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default42 * @backend: (transfer full): a #WebKitWebViewBackend 43 43 * 44 44 * Creates a new #WebKitWebView with the default #WebKitWebContext and … … 52 52 WebKitWebView* webkit_web_view_new(WebKitWebViewBackend* backend) 53 53 { 54 g_return_val_if_fail(backend, nullptr); 55 54 56 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 55 57 "backend", backend, … … 60 62 /** 61 63 * webkit_web_view_new_with_context: 62 * @backend: ( nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default64 * @backend: (transfer full): a #WebKitWebViewBackend 63 65 * @context: the #WebKitWebContext to be used by the #WebKitWebView 64 66 * … … 72 74 WebKitWebView* webkit_web_view_new_with_context(WebKitWebViewBackend* backend, WebKitWebContext* context) 73 75 { 76 g_return_val_if_fail(backend, nullptr); 74 77 g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), nullptr); 75 78 … … 83 86 /** 84 87 * webkit_web_view_new_with_related_view: (constructor) 85 * @backend: ( nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default88 * @backend: (transfer full): a #WebKitWebViewBackend 86 89 * @web_view: the related #WebKitWebView 87 90 * … … 103 106 WebKitWebView* webkit_web_view_new_with_related_view(WebKitWebViewBackend* backend, WebKitWebView* webView) 104 107 { 108 g_return_val_if_fail(backend, nullptr); 105 109 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr); 106 110 … … 128 132 WebKitWebView* webkit_web_view_new_with_settings(WebKitWebViewBackend* backend, WebKitSettings* settings) 129 133 { 134 g_return_val_if_fail(backend, nullptr); 130 135 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr); 131 136 … … 138 143 /** 139 144 * webkit_web_view_new_with_user_content_manager: 140 * @backend: ( nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default145 * @backend: (transfer full): a #WebKitWebViewBackend 141 146 * @user_content_manager: a #WebKitUserContentManager. 142 147 * … … 151 156 WebKitWebView* webkit_web_view_new_with_user_content_manager(WebKitWebViewBackend* backend, WebKitUserContentManager* userContentManager) 152 157 { 158 g_return_val_if_fail(backend, nullptr); 153 159 g_return_val_if_fail(WEBKIT_IS_USER_CONTENT_MANAGER(userContentManager), nullptr); 154 160 -
trunk/Tools/ChangeLog
r230555 r230557 1 2018-04-11 Zan Dobersek <zdobersek@igalia.com> 2 3 [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors 4 https://bugs.webkit.org/show_bug.cgi?id=184513 5 6 Reviewed by Michael Catanzaro. 7 8 Update the WPE-specific testWebViewWebBackend() test case, removing the 9 test that passes a null WebKitWebViewBackend object to the 10 webkit_web_view_new() call. 11 12 Helper createWebViewBackend() that's called via Test::createWebView() 13 variations is updated to, in case of not using the headless backend, 14 return a WebKitWebViewBackend instance that wraps around a 15 default wpe_view_backend object. 16 17 * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: 18 (testWebViewWebBackend): 19 * TestWebKitAPI/glib/WebKitGLib/TestMain.h: 20 (Test::createWebViewBackend): 21 1 22 2018-04-11 Zalan Bujtas <zalan@apple.com> 2 23 -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
r229799 r230557 109 109 static void testWebViewWebBackend(Test* test, gconstpointer) 110 110 { 111 // Use the default backend(we don't have a way to check the backend will be actually freed).112 GRefPtr<WebKitWebView> webView = adoptGRef(webkit_web_view_new( nullptr));111 // User provided backend with default deleter (we don't have a way to check the backend will be actually freed). 112 GRefPtr<WebKitWebView> webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpe_view_backend_create(), nullptr, nullptr))); 113 113 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get())); 114 114 auto* viewBackend = webkit_web_view_get_backend(webView.get()); 115 115 g_assert(viewBackend); 116 116 auto* wpeBackend = webkit_web_view_backend_get_wpe_backend(viewBackend); 117 g_assert(wpeBackend);118 webView = nullptr;119 120 // User provided backend with default deleter (we don't have a way to check the backend will be actually freed).121 webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpe_view_backend_create(), nullptr, nullptr)));122 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get()));123 viewBackend = webkit_web_view_get_backend(webView.get());124 g_assert(viewBackend);125 wpeBackend = webkit_web_view_backend_get_wpe_backend(viewBackend);126 117 g_assert(wpeBackend); 127 118 webView = nullptr; -
trunk/Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h
r227062 r230557 145 145 { 146 146 const char* useHeadlessViewBackend = g_getenv("WPE_USE_HEADLESS_VIEW_BACKEND"); 147 if (!useHeadlessViewBackend || !strcmp(useHeadlessViewBackend, "0")) 148 return nullptr; 147 if (!useHeadlessViewBackend || !strcmp(useHeadlessViewBackend, "0")) { 148 auto* backend = wpe_view_backend_create(); 149 return webkit_web_view_backend_new(backend, reinterpret_cast<GDestroyNotify>(wpe_view_backend_destroy), backend); 150 } 149 151 auto* headlessBackend = new HeadlessViewBackend; 150 152 return webkit_web_view_backend_new(headlessBackend->backend(), [](gpointer userData) {
Note: See TracChangeset
for help on using the changeset viewer.