Changeset 225044 in webkit
- Timestamp:
- Nov 20, 2017 12:16:26 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r225043 r225044 1 2017-11-20 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [WPE] webkit_web_view_new() should enable specifying wpe_view_backend object 4 https://bugs.webkit.org/show_bug.cgi?id=178655 5 6 Reviewed by Michael Catanzaro. 7 8 Update all WebKitWebView constructors to receive a WebKitWebViewBackend as argument. It's now required to 9 provide a backend to create a web view, but it can be NULL to use the default one. WebKitWebViewBackend is a 10 boxed type wrapping a struct wpe_view_backend* used as construct only property of WebKitWebView. The view always 11 takes the ownership of the WebKitWebViewBackend which owns the struct wpe_view_backend*. An optional 12 GDestroyNotify and user data pointer can be passed to the WebKitWebViewBackend constructor to provide a custom 13 deleter for the backend. In the C API the struct wpe_view_backend* is also mandatory now, but it can't be NULL 14 and it's owned by the caller, not the view. 15 16 * PlatformWPE.cmake: 17 * UIProcess/API/C/wpe/WKView.cpp: 18 (WKViewCreate): 19 * UIProcess/API/C/wpe/WKView.h: 20 * UIProcess/API/glib/WebKitWebView.cpp: 21 (_WebKitWebViewPrivate::~_WebKitWebViewPrivate): 22 (webkitWebViewConstructed): 23 (webkitWebViewSetProperty): 24 (webkitWebViewGetProperty): 25 (webkit_web_view_class_init): 26 (webkitWebViewCreatePage): 27 (webkit_web_view_get_backend): 28 * UIProcess/API/wpe/WPEView.cpp: 29 (WKWPE::m_backend): 30 (WKWPE::View::~View): 31 * UIProcess/API/wpe/WebKitWebView.h: 32 * UIProcess/API/wpe/WebKitWebViewBackend.cpp: Added. 33 (_WebKitWebViewBackend::_WebKitWebViewBackend): 34 (_WebKitWebViewBackend::~_WebKitWebViewBackend): 35 (webkitWebViewBackendRef): 36 (webkitWebViewBackendUnref): 37 (webkitWebViewBackendCreateDefault): 38 (webkit_web_view_backend_new): 39 (webkit_web_view_backend_get_wpe_backend): 40 * UIProcess/API/wpe/WebKitWebViewBackend.h: Added. 41 * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: Added. 42 * UIProcess/API/wpe/WebKitWebViewWPE.cpp: 43 (webkit_web_view_new): 44 (webkit_web_view_new_with_context): 45 (webkit_web_view_new_with_related_view): 46 (webkit_web_view_new_with_settings): 47 (webkit_web_view_new_with_user_content_manager): 48 * UIProcess/API/wpe/webkit.h: 49 1 50 2017-11-20 Carlos Garcia Campos <cgarcia@igalia.com> 2 51 -
trunk/Source/WebKit/PlatformWPE.cmake
r224677 r225044 203 203 UIProcess/API/wpe/ScrollGestureController.cpp 204 204 UIProcess/API/wpe/WebKitScriptDialogWPE.cpp 205 UIProcess/API/wpe/WebKitWebViewBackend.cpp 205 206 UIProcess/API/wpe/WebKitWebViewWPE.cpp 206 207 UIProcess/API/wpe/WPEView.cpp … … 334 335 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebResource.h 335 336 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebView.h 337 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebViewBackend.h 336 338 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebViewSessionState.h 337 339 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebsiteData.h -
trunk/Source/WebKit/UIProcess/API/C/wpe/WKView.cpp
r218691 r225044 41 41 } 42 42 43 WKViewRef WKViewCreate(WKPageConfigurationRef configuration) 44 { 45 return toAPI(WKWPE::View::create(nullptr, *toImpl(configuration))); 46 } 47 48 WKViewRef WKViewCreateWithViewBackend(struct wpe_view_backend* backend, WKPageConfigurationRef configuration) 43 WKViewRef WKViewCreate(struct wpe_view_backend* backend, WKPageConfigurationRef configuration) 49 44 { 50 45 return toAPI(WKWPE::View::create(backend, *toImpl(configuration))); -
trunk/Source/WebKit/UIProcess/API/C/wpe/WKView.h
r216497 r225044 36 36 struct wpe_view_backend; 37 37 38 WK_EXPORT WKViewRef WKViewCreate(WKPageConfigurationRef); 39 WK_EXPORT WKViewRef WKViewCreateWithViewBackend(struct wpe_view_backend*, WKPageConfigurationRef); 38 WK_EXPORT WKViewRef WKViewCreate(struct wpe_view_backend*, WKPageConfigurationRef); 40 39 41 40 WK_EXPORT WKPageRef WKViewGetPage(WKViewRef); -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
r224945 r225044 85 85 #include "APIViewClient.h" 86 86 #include "WPEView.h" 87 #include "WebKitWebViewBackendPrivate.h" 87 88 #endif 88 89 … … 161 162 enum { 162 163 PROP_0, 164 165 #if PLATFORM(WPE) 166 PROP_BACKEND, 167 #endif 163 168 164 169 PROP_WEB_CONTEXT, … … 193 198 if (modalLoop && g_main_loop_is_running(modalLoop.get())) 194 199 g_main_loop_quit(modalLoop.get()); 200 #if PLATFORM(WPE) 201 view = nullptr; 202 webkitWebViewBackendUnref(backend); 203 #endif 195 204 } 196 205 197 206 #if PLATFORM(WPE) 207 WebKitWebViewBackend* backend; 198 208 std::unique_ptr<WKWPE::View> view; 199 209 #endif … … 620 630 WebKitWebView* webView = WEBKIT_WEB_VIEW(object); 621 631 WebKitWebViewPrivate* priv = webView->priv; 632 #if PLATFORM(WPE) 633 if (!priv->backend) 634 priv->backend = webkitWebViewBackendCreateDefault(); 635 #endif 622 636 if (priv->relatedView) { 623 637 priv->context = webkit_web_view_get_context(priv->relatedView); … … 674 688 675 689 switch (propId) { 690 #if PLATFORM(WPE) 691 case PROP_BACKEND: { 692 gpointer backend = g_value_get_boxed(value); 693 webView->priv->backend = backend ? static_cast<WebKitWebViewBackend*>(backend) : nullptr; 694 break; 695 } 696 #endif 676 697 case PROP_WEB_CONTEXT: { 677 698 gpointer webContext = g_value_get_object(value); … … 716 737 717 738 switch (propId) { 739 #if PLATFORM(WPE) 740 case PROP_BACKEND: 741 g_value_set_static_boxed(value, webView->priv->backend); 742 break; 743 #endif 718 744 case PROP_WEB_CONTEXT: 719 745 g_value_set_object(value, webView->priv->context.get()); … … 821 847 webViewClass->authenticate = webkitWebViewAuthenticate; 822 848 webViewClass->show_notification = webkitWebViewShowNotification; 849 850 #if PLATFORM(WPE) 851 /** 852 * WebKitWebView:backend: 853 * 854 * The #WebKitWebViewBackend of the view. 855 * 856 * since: 2.20 857 */ 858 g_object_class_install_property( 859 gObjectClass, 860 PROP_BACKEND, 861 g_param_spec_boxed( 862 "backend", 863 _("Backend"), 864 _("The backend for the web view"), 865 WEBKIT_TYPE_WEB_VIEW_BACKEND, 866 static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); 867 #endif 823 868 824 869 /** … … 1916 1961 webkitWebViewBaseCreateWebPage(WEBKIT_WEB_VIEW_BASE(webView), WTFMove(configuration)); 1917 1962 #elif PLATFORM(WPE) 1918 webView->priv->view.reset(WKWPE::View::create( nullptr, configuration.get()));1963 webView->priv->view.reset(WKWPE::View::create(webkit_web_view_backend_get_wpe_backend(webView->priv->backend), configuration.get())); 1919 1964 #endif 1920 1965 } … … 2345 2390 g_signal_emit(webView, signals[SHOW_OPTION_MENU], 0, menu, event, &menuRect, &handled); 2346 2391 return handled; 2392 } 2393 #endif 2394 2395 #if PLATFORM(WPE) 2396 /** 2397 * webkit_web_view_get_backend: 2398 * @web_view: a #WebKitWebView 2399 * 2400 * Get the #WebKitWebViewBackend of @web_view 2401 * 2402 * Returns: (transfer none): the #WebKitWebViewBackend of @web_view 2403 * 2404 * Since: 2.20 2405 */ 2406 WebKitWebViewBackend* webkit_web_view_get_backend(WebKitWebView* webView) 2407 { 2408 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr); 2409 2410 return webView->priv->backend; 2347 2411 } 2348 2412 #endif -
trunk/Source/WebKit/UIProcess/API/wpe/WPEView.cpp
r221372 r225044 49 49 , m_viewStateFlags(WebCore::ActivityState::WindowIsActive | WebCore::ActivityState::IsFocused | WebCore::ActivityState::IsVisible | WebCore::ActivityState::IsInWindow) 50 50 , m_compositingManagerProxy(*this) 51 , m_backend(backend) 51 52 { 53 ASSERT(m_backend); 54 52 55 auto configuration = baseConfiguration.copy(); 53 56 auto* preferences = configuration->preferences(); … … 72 75 #endif 73 76 74 m_backend = backend;75 if (!m_backend)76 m_backend = wpe_view_backend_create();77 77 m_compositingManagerProxy.initialize(); 78 78 … … 137 137 { 138 138 m_compositingManagerProxy.finalize(); 139 wpe_view_backend_destroy(m_backend);140 139 } 141 140 -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebView.h
r223953 r225044 50 50 #include <wpe/WebKitWebContext.h> 51 51 #include <wpe/WebKitWebResource.h> 52 #include <wpe/WebKitWebViewBackend.h> 52 53 #include <wpe/WebKitWebViewSessionState.h> 53 54 #include <wpe/WebKitWindowProperties.h> … … 229 230 230 231 WEBKIT_API WebKitWebView * 231 webkit_web_view_new ( void);232 webkit_web_view_new (WebKitWebViewBackend *backend); 232 233 233 234 WEBKIT_API WebKitWebView * 234 webkit_web_view_new_with_context (WebKitWebContext *context); 235 webkit_web_view_new_with_context (WebKitWebViewBackend *backend, 236 WebKitWebContext *context); 235 237 236 238 WEBKIT_API WebKitWebView * 237 webkit_web_view_new_with_settings (WebKitSettings *settings); 239 webkit_web_view_new_with_settings (WebKitWebViewBackend *backend, 240 WebKitSettings *settings); 238 241 239 242 WEBKIT_API WebKitWebView * 240 webkit_web_view_new_with_related_view (WebKitWebView *web_view); 243 webkit_web_view_new_with_related_view (WebKitWebViewBackend *backend, 244 WebKitWebView *web_view); 241 245 242 246 WEBKIT_API WebKitWebView * 243 webkit_web_view_new_with_user_content_manager (WebKitUserContentManager *user_content_manager); 247 webkit_web_view_new_with_user_content_manager (WebKitWebViewBackend *backend, 248 WebKitUserContentManager *user_content_manager); 249 250 WEBKIT_API WebKitWebViewBackend * 251 webkit_web_view_get_backend (WebKitWebView *web_view); 244 252 245 253 WEBKIT_API gboolean -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebViewWPE.cpp
r218787 r225044 40 40 /** 41 41 * webkit_web_view_new: 42 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default 42 43 * 43 44 * Creates a new #WebKitWebView with the default #WebKitWebContext and … … 49 50 * Returns: The newly created #WebKitWebView 50 51 */ 51 WebKitWebView* webkit_web_view_new( )52 WebKitWebView* webkit_web_view_new(WebKitWebViewBackend* backend) 52 53 { 53 return webkit_web_view_new_with_context(webkit_web_context_get_default()); 54 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 55 "backend", backend, 56 "web-context", webkit_web_context_get_default(), 57 nullptr)); 54 58 } 55 59 56 60 /** 57 61 * webkit_web_view_new_with_context: 62 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default 58 63 * @context: the #WebKitWebContext to be used by the #WebKitWebView 59 64 * … … 65 70 * Returns: The newly created #WebKitWebView 66 71 */ 67 WebKitWebView* webkit_web_view_new_with_context(WebKitWeb Context* context)72 WebKitWebView* webkit_web_view_new_with_context(WebKitWebViewBackend* backend, WebKitWebContext* context) 68 73 { 69 74 g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), nullptr); 70 75 71 76 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 77 "backend", backend, 72 78 "is-ephemeral", webkit_web_context_is_ephemeral(context), 73 79 "web-context", context, … … 77 83 /** 78 84 * webkit_web_view_new_with_related_view: (constructor) 85 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default 79 86 * @web_view: the related #WebKitWebView 80 87 * … … 94 101 * Since: 2.4 95 102 */ 96 WebKitWebView* webkit_web_view_new_with_related_view(WebKitWebView * webView)103 WebKitWebView* webkit_web_view_new_with_related_view(WebKitWebViewBackend* backend, WebKitWebView* webView) 97 104 { 98 105 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr); 99 106 100 107 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 108 "backend", backend, 101 109 "user-content-manager", webkit_web_view_get_user_content_manager(webView), 102 110 "settings", webkit_web_view_get_settings(webView), … … 107 115 /** 108 116 * webkit_web_view_new_with_settings: 117 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default 109 118 * @settings: a #WebKitSettings 110 119 * … … 117 126 * Since: 2.6 118 127 */ 119 WebKitWebView* webkit_web_view_new_with_settings(WebKit Settings* settings)128 WebKitWebView* webkit_web_view_new_with_settings(WebKitWebViewBackend* backend, WebKitSettings* settings) 120 129 { 121 130 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr); 122 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "settings", settings, nullptr)); 131 132 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 133 "backend", backend, 134 "settings", settings, 135 nullptr)); 123 136 } 124 137 125 138 /** 126 139 * webkit_web_view_new_with_user_content_manager: 140 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default 127 141 * @user_content_manager: a #WebKitUserContentManager. 128 142 * … … 135 149 * Since: 2.6 136 150 */ 137 WebKitWebView* webkit_web_view_new_with_user_content_manager(WebKit UserContentManager* userContentManager)151 WebKitWebView* webkit_web_view_new_with_user_content_manager(WebKitWebViewBackend* backend, WebKitUserContentManager* userContentManager) 138 152 { 139 153 g_return_val_if_fail(WEBKIT_IS_USER_CONTENT_MANAGER(userContentManager), nullptr); 140 154 141 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "user-content-manager", userContentManager, nullptr)); 155 return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, 156 "backend", backend, 157 "user-content-manager", userContentManager, 158 nullptr)); 142 159 } -
trunk/Source/WebKit/UIProcess/API/wpe/webkit.h
r220329 r225044 73 73 #include <wpe/WebKitWebResource.h> 74 74 #include <wpe/WebKitWebView.h> 75 #include <wpe/WebKitWebViewBackend.h> 75 76 #include <wpe/WebKitWebViewSessionState.h> 76 77 #include <wpe/WebKitWebsiteData.h> -
trunk/Tools/ChangeLog
r225043 r225044 1 2017-11-20 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [WPE] webkit_web_view_new() should enable specifying wpe_view_backend object 4 https://bugs.webkit.org/show_bug.cgi?id=178655 5 6 Reviewed by Michael Catanzaro. 7 8 Update unit tests to create web views using helper methods that have a different implementation for GTK and 9 WPE. Also add a new test case to check the new API to create a WebKitWebView with a WPE backend. Use 10 WKViewCreate in WTR and fix a memory leak in HeadlessViewBackend. 11 12 * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: 13 (testAutomationSessionRequestSession): 14 * TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: 15 (testWebKitWebViewSessionState): 16 (testWebKitWebViewSessionStateWithFormData): 17 (testWebKitWebViewNavigationAfterSessionRestore): 18 * TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: 19 * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: 20 (testWebResourceGetDataError): 21 * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: 22 * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: 23 (testWebViewNewWithUserContentManager): 24 * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: 25 (testWebContextEphemeral): 26 * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: 27 (testWebViewWebContext): 28 (testWebViewWebContextLifetime): 29 (testWebViewWebBackend): 30 (testWebViewSettings): 31 (beforeAll): 32 * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: 33 (testWebsiteDataEphemeral): 34 * TestWebKitAPI/glib/WebKitGLib/TestMain.h: 35 (Test::createWebView): 36 * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: 37 (HeadlessViewBackend::~HeadlessViewBackend): 38 * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: 39 (WTR::PlatformWebView::PlatformWebView): 40 1 41 2017-11-20 Carlos Garcia Campos <cgarcia@igalia.com> 2 42 -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp
r221416 r225044 309 309 310 310 // Will also fail if the web view is not controlled by automation. 311 auto webView = Test::adoptView( webkit_web_view_new_with_context(test->m_webContext.get()));311 auto webView = Test::adoptView(Test::createWebView(test->m_webContext.get())); 312 312 g_assert(!webkit_web_view_is_controlled_by_automation(webView.get())); 313 313 g_assert(!test->createTopLevelBrowsingContext(webView.get())); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp
r218686 r225044 267 267 WebKitWebViewSessionState* state = webkit_web_view_get_session_state(test->m_webView); 268 268 g_assert(state); 269 auto view = Test::adoptView( webkit_web_view_new());269 auto view = Test::adoptView(Test::createWebView()); 270 270 WebKitBackForwardList* bfList = webkit_web_view_get_back_forward_list(view.get()); 271 271 g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 0); … … 276 276 state = webkit_web_view_session_state_new(data.get()); 277 277 g_assert(state); 278 view = Test::adoptView( webkit_web_view_new());278 view = Test::adoptView(Test::createWebView()); 279 279 bfList = webkit_web_view_get_back_forward_list(view.get()); 280 280 g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 0); … … 319 319 g_assert(state); 320 320 321 view = Test::adoptView( webkit_web_view_new());321 view = Test::adoptView(Test::createWebView()); 322 322 bfList = webkit_web_view_get_back_forward_list(view.get()); 323 323 g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 0); … … 348 348 WebKitWebViewSessionState* state = webkit_web_view_get_session_state(test->m_webView); 349 349 g_assert(state); 350 auto view = Test::adoptView( webkit_web_view_new());350 auto view = Test::adoptView(Test::createWebView()); 351 351 WebKitBackForwardList* bfList = webkit_web_view_get_back_forward_list(view.get()); 352 352 g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 0); … … 357 357 state = webkit_web_view_session_state_new(data.get()); 358 358 g_assert(state); 359 view = Test::adoptView( webkit_web_view_new());359 view = Test::adoptView(Test::createWebView()); 360 360 bfList = webkit_web_view_get_back_forward_list(view.get()); 361 361 g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 0); … … 375 375 // This test checks that a normal load after a session restore with a BackForard list having 376 376 // forward items doesn't produce any runtime critical warning. See https://bugs.webkit.org/show_bug.cgi?id=153233. 377 auto view = Test::adoptView( webkit_web_view_new());377 auto view = Test::adoptView(Test::createWebView()); 378 378 g_signal_connect(view.get(), "load-changed", G_CALLBACK(viewLoadChanged), test->m_mainLoop); 379 379 -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp
r218686 r225044 59 59 g_assert_cmpuint(index, <, numViews); 60 60 61 m_webViews[index] = Test::adoptView( webkit_web_view_new_with_context(m_webContext.get()));61 m_webViews[index] = Test::adoptView(Test::createWebView(m_webContext.get())); 62 62 assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_webViews[index].get())); 63 63 … … 171 171 { 172 172 webkit_web_context_set_process_model(m_webContext.get(), WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES); 173 m_webView = WEBKIT_WEB_VIEW( webkit_web_view_new_with_context(m_webContext.get()));173 m_webView = WEBKIT_WEB_VIEW(Test::createWebView(m_webContext.get())); 174 174 #if PLATFORM(GTK) 175 175 g_object_ref_sink(m_webView); … … 196 196 g_assert(webView == m_webView); 197 197 198 auto* newWebView = webkit_web_view_new_with_related_view(webView);198 auto* newWebView = Test::createWebView(webView); 199 199 #if PLATFORM(GTK) 200 200 g_object_ref_sink(newWebView); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp
r224192 r225044 548 548 { 549 549 GRefPtr<GMainLoop> mainLoop = adoptGRef(g_main_loop_new(nullptr, FALSE)); 550 GRefPtr<WebKitWebView> webView = WEBKIT_WEB_VIEW( webkit_web_view_new_with_context(test->m_webContext.get()));550 GRefPtr<WebKitWebView> webView = WEBKIT_WEB_VIEW(Test::createWebView(test->m_webContext.get())); 551 551 webkit_web_view_load_html(webView.get(), "<html></html>", nullptr); 552 552 g_signal_connect(webView.get(), "load-changed", G_CALLBACK(webViewloadChanged), mainLoop.get()); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp
r224192 r225044 322 322 g_assert(navigation); 323 323 324 auto* newWebView = webkit_web_view_new_with_context(webkit_web_view_get_context(webView));324 auto* newWebView = Test::createWebView(webkit_web_view_get_context(webView)); 325 325 #if PLATFORM(GTK) 326 326 g_object_ref_sink(newWebView); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp
r218686 r225044 41 41 GRefPtr<WebKitUserContentManager> userContentManager1 = adoptGRef(webkit_user_content_manager_new()); 42 42 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(userContentManager1.get())); 43 auto webView1 = Test::adoptView( webkit_web_view_new_with_user_content_manager(userContentManager1.get()));43 auto webView1 = Test::adoptView(Test::createWebView(userContentManager1.get())); 44 44 g_assert(webkit_web_view_get_user_content_manager(webView1.get()) == userContentManager1.get()); 45 45 46 auto webView2 = Test::adoptView( webkit_web_view_new());46 auto webView2 = Test::adoptView(Test::createWebView()); 47 47 g_assert(webkit_web_view_get_user_content_manager(webView2.get()) != userContentManager1.get()); 48 48 } -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp
r218743 r225044 52 52 g_assert(!webkit_website_data_manager_is_ephemeral(manager)); 53 53 54 auto webView = Test::adoptView( webkit_web_view_new());54 auto webView = Test::adoptView(Test::createWebView()); 55 55 g_assert(!webkit_web_view_is_ephemeral(webView.get())); 56 56 g_assert(webkit_web_view_get_website_data_manager(webView.get()) == webkit_web_context_get_website_data_manager(webkit_web_context_get_default())); 57 57 58 webView = Test::adoptView( webkit_web_view_new_with_context(test->m_webContext.get()));58 webView = Test::adoptView(Test::createWebView(test->m_webContext.get())); 59 59 g_assert(!webkit_web_view_is_ephemeral(webView.get())); 60 60 g_assert(webkit_web_view_get_website_data_manager(webView.get()) == manager); … … 67 67 g_assert(webkit_web_view_get_website_data_manager(webView.get()) != manager); 68 68 69 webView = Test::adoptView( webkit_web_view_new_with_context(context.get()));69 webView = Test::adoptView(Test::createWebView(context.get())); 70 70 g_assert(webkit_web_view_is_ephemeral(webView.get())); 71 71 g_assert(webkit_web_view_get_website_data_manager(webView.get()) == manager); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
r218686 r225044 56 56 57 57 // Check that a web view created with a related view has the related view context. 58 webView = Test::adoptView( webkit_web_view_new_with_related_view(test->m_webView));58 webView = Test::adoptView(Test::createWebView(test->m_webView)); 59 59 g_assert(webkit_web_view_get_context(webView.get()) == test->m_webContext.get()); 60 60 … … 70 70 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webContext)); 71 71 72 auto* webView = webkit_web_view_new_with_context(webContext);72 auto* webView = Test::createWebView(webContext); 73 73 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView)); 74 74 … … 86 86 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webContext2)); 87 87 88 auto* webView2 = webkit_web_view_new_with_context(webContext2);88 auto* webView2 = Test::createWebView(webContext2); 89 89 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView2)); 90 90 … … 98 98 g_object_unref(webContext2); 99 99 } 100 101 #if PLATFORM(WPE) 102 static void testWebViewWebBackend(Test* test, gconstpointer) 103 { 104 // Use the default backend (we don't have a way to check the backend will be actually freed). 105 GRefPtr<WebKitWebView> webView = adoptGRef(webkit_web_view_new(nullptr)); 106 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get())); 107 auto* viewBackend = webkit_web_view_get_backend(webView.get()); 108 g_assert(viewBackend); 109 auto* wpeBackend = webkit_web_view_backend_get_wpe_backend(viewBackend); 110 g_assert(wpeBackend); 111 webView = nullptr; 112 113 // User provided backend with default deleter (we don't have a way to check the backend will be actually freed). 114 webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpe_view_backend_create(), nullptr, nullptr))); 115 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get())); 116 viewBackend = webkit_web_view_get_backend(webView.get()); 117 g_assert(viewBackend); 118 wpeBackend = webkit_web_view_backend_get_wpe_backend(viewBackend); 119 g_assert(wpeBackend); 120 webView = nullptr; 121 122 // User provided backend with destroy notify. 123 wpeBackend = wpe_view_backend_create(); 124 webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(wpeBackend, [](gpointer userData) { 125 auto* backend = *static_cast<struct wpe_view_backend**>(userData); 126 wpe_view_backend_destroy(backend); 127 *static_cast<struct wpe_view_backend**>(userData) = nullptr; 128 }, &wpeBackend))); 129 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get())); 130 webView = nullptr; 131 g_assert(!wpeBackend); 132 133 // User provided backend owned by another object with destroy notify. 134 static bool hasInstance = false; 135 struct BackendOwner { 136 BackendOwner(struct wpe_view_backend* backend) 137 : backend(backend) 138 { 139 hasInstance = true; 140 } 141 142 ~BackendOwner() 143 { 144 wpe_view_backend_destroy(backend); 145 hasInstance = false; 146 } 147 148 struct wpe_view_backend* backend; 149 }; 150 auto* owner = new BackendOwner(wpe_view_backend_create()); 151 g_assert(hasInstance); 152 webView = adoptGRef(webkit_web_view_new(webkit_web_view_backend_new(owner->backend, [](gpointer userData) { 153 delete static_cast<BackendOwner*>(userData); 154 }, owner))); 155 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView.get())); 156 g_assert(hasInstance); 157 webView = nullptr; 158 g_assert(!hasInstance); 159 } 160 #endif // PLATFORM(WPE) 100 161 101 162 static void ephemeralViewloadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent, WebViewTest* test) … … 178 239 g_assert(!webkit_settings_get_enable_javascript(settings)); 179 240 180 auto webView2 = Test::adoptView( webkit_web_view_new());241 auto webView2 = Test::adoptView(Test::createWebView()); 181 242 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView2.get())); 182 243 webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView2.get()), settings); … … 190 251 g_assert(webkit_settings_get_enable_javascript(settings)); 191 252 192 auto webView3 = Test::adoptView( webkit_web_view_new_with_settings(newSettings2.get()));253 auto webView3 = Test::adoptView(Test::createWebView(newSettings2.get())); 193 254 test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView3.get())); 194 255 g_assert(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView3.get())) == newSettings2.get()); … … 1078 1139 WebViewTest::add("WebKitWebView", "web-context", testWebViewWebContext); 1079 1140 WebViewTest::add("WebKitWebView", "web-context-lifetime", testWebViewWebContextLifetime); 1141 #if PLATFORM(WPE) 1142 Test::add("WebKitWebView", "backend", testWebViewWebBackend); 1143 #endif 1080 1144 WebViewTest::add("WebKitWebView", "ephemeral", testWebViewEphemeral); 1081 1145 WebViewTest::add("WebKitWebView", "custom-charset", testWebViewCustomCharset); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp
r222967 r225044 253 253 GRefPtr<WebKitWebContext> webContext = adoptGRef(webkit_web_context_new_with_website_data_manager(manager.get())); 254 254 g_assert(webkit_web_context_is_ephemeral(webContext.get())); 255 auto webView = Test::adoptView( webkit_web_view_new_with_context(webContext.get()));255 auto webView = Test::adoptView(Test::createWebView(webContext.get())); 256 256 g_assert(webkit_web_view_is_ephemeral(webView.get())); 257 257 g_assert(webkit_web_view_get_website_data_manager(webView.get()) == manager.get()); -
trunk/Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h
r222967 r225044 144 144 } 145 145 146 static WebKitWebView* createWebView() 147 { 148 #if PLATFORM(GTK) 149 return WEBKIT_WEB_VIEW(webkit_web_view_new()); 150 #elif PLATFORM(WPE) 151 return webkit_web_view_new(nullptr); 152 #endif 153 } 154 155 static WebKitWebView* createWebView(WebKitWebContext* context) 156 { 157 #if PLATFORM(GTK) 158 return WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(context)); 159 #elif PLATFORM(WPE) 160 return webkit_web_view_new_with_context(nullptr, context); 161 #endif 162 } 163 164 static WebKitWebView* createWebView(WebKitWebView* relatedView) 165 { 166 #if PLATFORM(GTK) 167 return WEBKIT_WEB_VIEW(webkit_web_view_new_with_related_view(relatedView)); 168 #elif PLATFORM(WPE) 169 return webkit_web_view_new_with_related_view(nullptr, relatedView); 170 #endif 171 } 172 173 static WebKitWebView* createWebView(WebKitUserContentManager* contentManager) 174 { 175 #if PLATFORM(GTK) 176 return WEBKIT_WEB_VIEW(webkit_web_view_new_with_user_content_manager(contentManager)); 177 #elif PLATFORM(WPE) 178 return webkit_web_view_new_with_user_content_manager(nullptr, contentManager); 179 #endif 180 } 181 182 static WebKitWebView* createWebView(WebKitSettings* settings) 183 { 184 #if PLATFORM(GTK) 185 return WEBKIT_WEB_VIEW(webkit_web_view_new_with_settings(settings)); 186 #elif PLATFORM(WPE) 187 return webkit_web_view_new_with_settings(nullptr, settings); 188 #endif 189 } 190 146 191 static void objectFinalized(Test* test, GObject* finalizedObject) 147 192 { -
trunk/Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp
r224192 r225044 132 132 if (m_egl.context) 133 133 eglDestroyContext(m_egl.display, m_egl.context); 134 135 wpe_mesa_view_backend_exportable_dma_buf_destroy(m_exportable); 134 136 } 135 137 -
trunk/Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp
r216931 r225044 41 41 { 42 42 m_window = new HeadlessViewBackend; 43 m_view = WKViewCreate WithViewBackend(m_window->backend(), configuration);43 m_view = WKViewCreate(m_window->backend(), configuration); 44 44 } 45 45
Note: See TracChangeset
for help on using the changeset viewer.