wpe: Reintroduce persistent WebContext

A WebContext leak was introduced in MR
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252.
If we wanted one WebContext per WebView we should also unref the
WebKitWebContext when destroying the WebView.

This patch reintroduces the persistent WebContext, initially part of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1484.

Fixes #1084

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1933>
This commit is contained in:
Philippe Normand 2022-03-11 17:02:55 +00:00 committed by GStreamer Marge Bot
parent a525a76e54
commit 3e3ba1772c

View file

@ -346,11 +346,13 @@ WPEView* WPEContextThread::createWPEView(GstWpeVideoSrc* src, GstGLContext* cont
WPEView* view = nullptr;
dispatch([&]() mutable {
auto* manager = webkit_website_data_manager_new_ephemeral();
auto web_context = webkit_web_context_new_with_website_data_manager(manager);
g_object_unref(manager);
view = new WPEView(web_context, src, context, display, width, height);
if (!glib.web_context) {
auto *manager = webkit_website_data_manager_new_ephemeral();
glib.web_context =
webkit_web_context_new_with_website_data_manager(manager);
g_object_unref(manager);
}
view = new WPEView(glib.web_context, src, context, display, width, height);
});
if (view && view->hasUri()) {