The package rpms/webkit2gtk3.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/webkit2gtk3.git/commit/?id=370955e30....
Change: -%ifarch s390x %{power64}
Thanks.
Full change: ============
commit 706a08880a9b3ffa8ed2452138badc13b1380c4a Merge: ef41021 6d20b88 Author: Eike Rathke erack@redhat.com Date: Tue Oct 22 20:07:55 2019 +0200
Merge remote-tracking branch 'origin/f31' into f30
Rebase f30 to 2.26.1
Conflicts: .gitignore sources webkit2gtk3.spec
diff --cc .gitignore index 8fcfdb7,27f8a55..3212f0a --- a/.gitignore +++ b/.gitignore @@@ -26,5 -26,10 +26,6 @@@ /webkitgtk-2.24.0.tar.xz /webkitgtk-2.24.1.tar.xz /webkitgtk-2.24.2.tar.xz -/webkitgtk-2.25.1.tar.xz -/webkitgtk-2.25.2.tar.xz -/webkitgtk-2.25.3.tar.xz -/webkitgtk-2.25.4.tar.xz -/webkitgtk-2.25.92.tar.xz -/webkitgtk-2.26.0.tar.xz +/webkitgtk-2.24.3.tar.xz +/webkitgtk-2.24.4.tar.xz + /webkitgtk-2.26.1.tar.xz diff --cc webkit2gtk3.spec index 638a2d0,e92fb17..4ebe2c3 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@@ -279,11 -266,46 +266,14 @@@ export NINJA_STATUS="[%f/%t][%e] %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog -* Thu Sep 26 2019 Eike Rathke erack@redhat.com - 2.26.1-1 -- Resolves: rhbz#1754472 Update to 2.26.1 ++* Tue Oct 22 2019 Eike Rathke erack@redhat.com - 2.26.1-1 ++- Rebase to 2.26.1 + -* Thu Sep 19 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.26.0-3 -- Enable WPE renderer, resolves rhbz#1753730 +* Wed Aug 28 2019 Tomas Popela tpopela@redhat.com - 2.24.4-1 +- Update to 2.24.4
-* Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 -- Backport fix for a crash when closing the view and HW acceleration is enabled -- Resolves: rhbz#1750345 -- Backport fix for EGL_BAD_ALLOC -- Resolves: rhbz#1751936 - -* Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 -- Update to 2.26.0 - -* Wed Sep 04 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.25.92-2 -- Add patch to fix startup in X11 when not using gdm - -* Tue Sep 03 2019 Eike Rathke erack@redhat.com - 2.25.92-1 -- Resolves: rhbz#1748305 Update to 2.25.92 - -* Fri Aug 02 2019 Eike Rathke erack@redhat.com - 2.25.4-1 -- Update to 2.25.4 - -* Fri Jul 26 2019 Tomas Popela tpopela@redhat.com - 2.25.3-2 -- Follow-up fixes for the GTK2 plugins support removal -- Fixes: rhbz#1733436 - -* Tue Jul 23 2019 Eike Rathke erack@redhat.com - 2.25.3-1 -- Update to 2.25.3 -- This removes support for GTK 2 based NPAPI plugins (such as Adobe Flash) - -* Wed Jul 17 2019 Adam Williamson awilliam@redhat.com - 2.25.2-2 -- Backport fix for crasher that affects Evolution (bwo#199621) - -* Mon Jun 24 2019 Eike Rathke erack@redhat.com - 2.25.2-1 -- Update to 2.25.2 - -* Thu Jun 06 2019 Eike Rathke erack@redhat.com - 2.25.1-1 -- Update to 2.25.1 +* Tue Jul 02 2019 Tomas Popela tpopela@redhat.com - 2.24.3-1 +- Update to 2.24.3
* Fri May 17 2019 Eike Rathke erack@redhat.com - 2.24.2-1 - Update to 2.24.2
commit 6d20b8862e98577185a0f9210141cac39f96124f Merge: c2a3540 ba6a58f Author: Eike Rathke erack@redhat.com Date: Fri Sep 27 13:17:35 2019 +0200
Merge remote-tracking branch 'origin/master' into f31
commit ba6a58f7174792fa4d16bcf7cca17bc90c9d8959 Author: Eike Rathke erack@redhat.com Date: Thu Sep 26 18:03:00 2019 +0200
Add webkit-201979.patch
diff --git a/webkit-201979.patch b/webkit-201979.patch new file mode 100644 index 0000000..376e43d --- /dev/null +++ b/webkit-201979.patch @@ -0,0 +1,24 @@ +--- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp ++++ a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp +@@ -30,6 +30,12 @@ + #include <wtf/glib/GRefPtr.h> + #include <wtf/glib/GUniquePtr.h> + ++#if PLATFORM(GTK) ++#define BASE_DIRECTORY "webkitgtk" ++#elif PLATFORM(WPE) ++#define BASE_DIRECTORY "wpe" ++#endif ++ + #if __has_include(<sys/memfd.h>) + + #include <sys/memfd.h> +@@ -129,7 +135,7 @@ public: + if (!dbusPath.get()) + return; + +- GUniquePtr<char> appRunDir(g_build_filename(g_get_user_runtime_dir(), g_get_prgname(), nullptr)); ++ GUniquePtr<char> appRunDir(g_build_filename(g_get_user_runtime_dir(), BASE_DIRECTORY, nullptr)); + m_proxyPath = makeProxyPath(appRunDir.get()).get(); + + m_socket = dbusAddress; diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 7366d51..e92fb17 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -18,6 +18,8 @@ Source0: http://webkitgtk.org/releases/webkitgtk-%%7Bversion%7D.tar.xz Patch0: user-agent-branding.patch # Don't use the shebang, but point straight to python 3 Patch1: no-env-shebang.patch +# https://bugs.webkit.org/show_bug.cgi?id=201979 +Patch2: webkit-201979.patch
BuildRequires: bison BuildRequires: bubblewrap
commit 0f11df0c70b2c5adbe35a08b71db2f48daa5588e Author: Eike Rathke erack@redhat.com Date: Thu Sep 26 14:28:59 2019 +0200
Resolves: rhbz#1754472 Update to 2.26.1
Remove backported interim patches applied to 2.26.0
Also remove fedora-crypto-policy.patch as upstream doesn't set G_TLS_GNUTLS_PRIORITY anymore, see https://bugs.webkit.org/show_bug.cgi?id=172154 (and https://bugs.webkit.org/show_bug.cgi?id=158785 )
diff --git a/.gitignore b/.gitignore index 87c905a..27f8a55 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /webkitgtk-2.25.4.tar.xz /webkitgtk-2.25.92.tar.xz /webkitgtk-2.26.0.tar.xz +/webkitgtk-2.26.1.tar.xz diff --git a/egl-bad-alloc.patch b/egl-bad-alloc.patch deleted file mode 100644 index 30adf2b..0000000 --- a/egl-bad-alloc.patch +++ /dev/null @@ -1,42 +0,0 @@ -d3ba37faac294a432bc9a3abce2ed161891dc49f -From d3ba37faac294a432bc9a3abce2ed161891dc49f Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> -Date: Tue, 17 Sep 2019 10:12:26 +0000 -Subject: [PATCH] [GTK] Cannot create EGL window surface: EGL_BAD_ALLOC - https://bugs.webkit.org/show_bug.cgi?id=201505 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Reviewed by an Doberek. - -This happens because eglCreateWindowSurface() is called twice for the same window when not using the WPE -renderer. New versions of Mesa fail the second time with a EGL_BAD_ALLOC. - -* platform/graphics/egl/GLContextEGL.cpp: -(WebCore::GLContextEGL::createWindowContext): Check surface is nullptr before falling back to use -eglCreateWindowSurface(). - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249951 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WebCore/platform/graphics/egl/GLContextEGL.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp -index 14a7b4c97f6..a8a82d7097a 100644 ---- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp -+++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp -@@ -188,7 +188,8 @@ std::unique_ptr<GLContextEGL> GLContextEGL::createWindowContext(GLNativeWindowTy - if (platformDisplay.type() == PlatformDisplay::Type::WPE) - surface = createWindowSurfaceWPE(display, config, window); - #else -- surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); -+ if (surface == EGL_NO_SURFACE) -+ surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); - #endif - if (surface == EGL_NO_SURFACE) { - WTFLogAlways("Cannot create EGL window surface: %s\n", lastErrorString()); --- -2.21.0 - diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch deleted file mode 100644 index 8a317db..0000000 --- a/fedora-crypto-policy.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ---- webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:39:59.294426661 +0200 -+++ webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-09-05 13:40:09.144389997 +0200 -@@ -43,7 +43,7 @@ int main(int argc, char** argv) - // overwrite this priority string if it's already set by the user. - // https://bugzilla.gnome.org/show_bug.cgi?id=738633 - // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - - #if USE(GCRYPT) - PAL::GCrypt::initialize(); -diff -up webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp ---- webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:40:28.558317735 +0200 -+++ webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-09-05 13:40:56.057215378 +0200 -@@ -43,7 +43,7 @@ int main(int argc, char** argv) - // overwrite this priority string if it's already set by the user. - // https://bugzilla.gnome.org/show_bug.cgi?id=738633 - // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - - #if USE(GCRYPT) - PAL::GCrypt::initialize(); diff --git a/hw-accl-close-crash.patch b/hw-accl-close-crash.patch deleted file mode 100644 index 4d7e681..0000000 --- a/hw-accl-close-crash.patch +++ /dev/null @@ -1,249 +0,0 @@ -45aabb992c69026ec12c857c023fec13920a753f -From 45aabb992c69026ec12c857c023fec13920a753f Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> -Date: Tue, 17 Sep 2019 08:05:30 +0000 -Subject: [PATCH] [GTK] Crash closing web view while hardware acceleration is - enabled https://bugs.webkit.org/show_bug.cgi?id=200856 - -Reviewed by Michael Catanzaro. - -The crash happens when destroying the WaylandCompositor::Surface because the web view GL context is used to -release the texture, but the GL context is no longer valid after web view -unrealize. AcceleratedBackingStoreWayland should handle the web view unrealize to destroy the GL context. It -will be created on demand again after the web view is realized. - -* UIProcess/API/gtk/WebKitWebViewBase.cpp: -(webkitWebViewBaseRealize): Notify AcceleratedBackingStore. -(webkitWebViewBaseUnrealize): Ditto. -* UIProcess/gtk/AcceleratedBackingStore.h: -(WebKit::AcceleratedBackingStore::realize): Added. -(WebKit::AcceleratedBackingStore::unrealize): Added. -* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: -(WebKit::AcceleratedBackingStoreWayland::realize): In case of using WaylandCompositor, call -WaylandCompositor::bindWebPage() to bind the WebPageProxy to the Wayland surface. -(WebKit::AcceleratedBackingStoreWayland::unrealize): Destroy GL resources and the GL context. -(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Do not try to create the GL context if the web -view is not realized. -(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Remove the code to initialize the texture. -(WebKit::AcceleratedBackingStoreWayland::paint): And add it here. -* UIProcess/gtk/AcceleratedBackingStoreWayland.h: -* UIProcess/gtk/WaylandCompositor.cpp: -(WebKit::WaylandCompositor::Surface::setWebPage): Return early if given page is the current one already. -(WebKit::WaylandCompositor::bindWebPage): Set the surface WebPageProxy. -(WebKit::WaylandCompositor::unbindWebPage): Unset the surface WebPageProxy. -* UIProcess/gtk/WaylandCompositor.h: -* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: -(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): When restoring a previous layer tree -host, always call resumeRendering() to balance the suspendRendering() called in exitAcceleratedCompositingMode(). - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249947 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 6 +++ - .../UIProcess/gtk/AcceleratedBackingStore.h | 2 + - .../gtk/AcceleratedBackingStoreWayland.cpp | 52 ++++++++++++++----- - .../gtk/AcceleratedBackingStoreWayland.h | 2 + - .../UIProcess/gtk/WaylandCompositor.cpp | 15 ++++++ - .../WebKit/UIProcess/gtk/WaylandCompositor.h | 2 + - .../DrawingAreaCoordinatedGraphics.cpp | 3 +- - 7 files changed, 66 insertions(+), 16 deletions(-) - -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 88b3cf43bfe..68ca3ad5b5b 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -422,6 +422,9 @@ static void webkitWebViewBaseRealize(GtkWidget* widget) - gdk_window_set_user_data(window, widget); - - gtk_im_context_set_client_window(priv->inputMethodFilter.context(), window); -+ -+ if (priv->acceleratedBackingStore) -+ priv->acceleratedBackingStore->realize(); - } - - static void webkitWebViewBaseUnrealize(GtkWidget* widget) -@@ -429,6 +432,9 @@ static void webkitWebViewBaseUnrealize(GtkWidget* widget) - WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(widget); - gtk_im_context_set_client_window(webView->priv->inputMethodFilter.context(), nullptr); - -+ if (webView->priv->acceleratedBackingStore) -+ webView->priv->acceleratedBackingStore->unrealize(); -+ - GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->unrealize(widget); - } - -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h -index 182264c6952..c6afb20b046 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h -@@ -47,6 +47,8 @@ public: - - virtual void update(const LayerTreeContext&) { } - virtual bool paint(cairo_t*, const WebCore::IntRect&) = 0; -+ virtual void realize() { }; -+ virtual void unrealize() { }; - virtual bool makeContextCurrent() { return false; } - virtual int renderHostFileDescriptor() { return -1; } - -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -index 893279fbcf5..973b31681fb 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -@@ -148,9 +148,37 @@ AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland() - gdk_gl_context_clear_current(); - } - -+void AcceleratedBackingStoreWayland::realize() -+{ -+#if !USE(WPE_RENDERER) -+ WaylandCompositor::singleton().bindWebPage(m_webPage); -+#endif -+} -+ -+void AcceleratedBackingStoreWayland::unrealize() -+{ -+ if (!m_glContextInitialized) -+ return; -+ -+#if USE(WPE_RENDERER) -+ if (m_viewTexture) { -+ if (makeContextCurrent()) -+ glDeleteTextures(1, &m_viewTexture); -+ m_viewTexture = 0; -+ } -+#else -+ WaylandCompositor::singleton().unbindWebPage(m_webPage); -+#endif -+ -+ if (m_gdkGLContext && m_gdkGLContext.get() == gdk_gl_context_get_current()) -+ gdk_gl_context_clear_current(); -+ -+ m_glContextInitialized = false; -+} -+ - void AcceleratedBackingStoreWayland::tryEnsureGLContext() - { -- if (m_glContextInitialized) -+ if (m_glContextInitialized || !gtk_widget_get_realized(m_webPage.viewWidget())) - return; - - m_glContextInitialized = true; -@@ -208,18 +236,6 @@ void AcceleratedBackingStoreWayland::displayBuffer(struct wpe_fdo_egl_exported_i - return; - } - -- if (!m_viewTexture) { -- if (!makeContextCurrent()) -- return; -- -- glGenTextures(1, &m_viewTexture); -- glBindTexture(GL_TEXTURE_2D, m_viewTexture); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); -- } -- - if (m_pendingImage) - wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(m_exportable, m_pendingImage); - m_pendingImage = image; -@@ -235,7 +251,7 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) - - #if USE(WPE_RENDERER) - if (!makeContextCurrent()) -- return false; -+ return true; - - if (m_pendingImage) { - wpe_view_backend_exportable_fdo_dispatch_frame_complete(m_exportable); -@@ -249,6 +265,14 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) - if (!m_committedImage) - return true; - -+ if (!m_viewTexture) { -+ glGenTextures(1, &m_viewTexture); -+ glBindTexture(GL_TEXTURE_2D, m_viewTexture); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); -+ } - glBindTexture(GL_TEXTURE_2D, m_viewTexture); - glImageTargetTexture2D(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(m_committedImage)); - -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h -index 5826bcce9bd..dffe23d8f3b 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h -@@ -65,6 +65,8 @@ private: - #endif - - bool paint(cairo_t*, const WebCore::IntRect&) override; -+ void realize() override; -+ void unrealize() override; - bool makeContextCurrent() override; - #if USE(WPE_RENDERER) - void update(const LayerTreeContext&) override; -diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp -index ce895293fee..8a14c552c87 100644 ---- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp -+++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp -@@ -167,6 +167,9 @@ WaylandCompositor::Surface::~Surface() - - void WaylandCompositor::Surface::setWebPage(WebPageProxy* webPage) - { -+ if (m_webPage == webPage) -+ return; -+ - if (m_webPage) { - flushPendingFrameCallbacks(); - flushFrameCallbacks(); -@@ -563,6 +566,18 @@ void WaylandCompositor::bindSurfaceToWebPage(WaylandCompositor::Surface* surface - m_pageMap.set(webPage, makeWeakPtr(*surface)); - } - -+void WaylandCompositor::bindWebPage(WebPageProxy& webPage) -+{ -+ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) -+ surface->setWebPage(&webPage); -+} -+ -+void WaylandCompositor::unbindWebPage(WebPageProxy& webPage) -+{ -+ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) -+ surface->setWebPage(nullptr); -+} -+ - void WaylandCompositor::registerWebPage(WebPageProxy& webPage) - { - m_pageMap.add(&webPage, nullptr); -diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h -index d40c2303257..e9a42189b73 100644 ---- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h -+++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h -@@ -104,6 +104,8 @@ public: - String displayName() const { return m_displayName; } - - void bindSurfaceToWebPage(Surface*, WebCore::PageIdentifier); -+ void bindWebPage(WebPageProxy&); -+ void unbindWebPage(WebPageProxy&); - void registerWebPage(WebPageProxy&); - void unregisterWebPage(WebPageProxy&); - -diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index 010ace6213b..fa974c21650 100644 ---- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -+++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -@@ -551,8 +551,7 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay - if (m_previousLayerTreeHost) { - m_layerTreeHost = WTFMove(m_previousLayerTreeHost); - m_layerTreeHost->setIsDiscardable(false); -- if (!m_isPaintingSuspended) -- m_layerTreeHost->resumeRendering(); -+ m_layerTreeHost->resumeRendering(); - if (!m_layerTreeStateIsFrozen) - m_layerTreeHost->setLayerFlushSchedulingEnabled(true); - } else { --- -2.21.0 - diff --git a/sources b/sources index c40ebc5..541dfe4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.26.0.tar.xz) = 0af18d56c441b36a30dd0e5b16315ae35fad309ad1b940bed27fb615c228dbee6c2992c89ab8b76bbe924ee18f5fc11598fa882397ae29dc00ebddf4d301c228 +SHA512 (webkitgtk-2.26.1.tar.xz) = dd8ab515b3603c8fbb3fdf92b099801e8c560a6ccf759103adc7f94649f089d6c8707002facd7b91f86f9671ddd28488eb602233b7339e60287a0ec89f22aed7 diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 8ec669e..7366d51 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.26.0 -Release: 3%{?dist} +Version: 2.26.1 +Release: 1%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -16,15 +16,8 @@ Source0: http://webkitgtk.org/releases/webkitgtk-%%7Bversion%7D.tar.xz
# https://bugs.webkit.org/show_bug.cgi?id=162611 Patch0: user-agent-branding.patch -# https://fedoraproject.org/wiki/Packaging:CryptoPolicies -# https://bugs.webkit.org/show_bug.cgi?id=158785 -Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 -Patch2: no-env-shebang.patch -# https://trac.webkit.org/changeset/249947/webkit -Patch3: hw-accl-close-crash.patch -# https://trac.webkit.org/changeset/249951/webkit -Patch4: egl-bad-alloc.patch +Patch1: no-env-shebang.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -271,6 +264,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Thu Sep 26 2019 Eike Rathke erack@redhat.com - 2.26.1-1 +- Resolves: rhbz#1754472 Update to 2.26.1 + * Thu Sep 19 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.26.0-3 - Enable WPE renderer, resolves rhbz#1753730
commit 89ca4a525d8547201ef52c23756ad8638f8248ae Author: Michael Catanzaro mcatanzaro@gnome.org Date: Thu Sep 19 11:55:59 2019 -0500
Enable WPE renderer, resolves rhbz#1753730
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index ec81a42..8ec669e 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.26.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -80,6 +80,8 @@ BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wpe-1.0) +BuildRequires: pkgconfig(wpebackend-fdo-1.0) BuildRequires: pkgconfig(xt)
Requires: bubblewrap @@ -191,7 +193,6 @@ pushd %{_target_platform} -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ - -DUSE_WPE_RENDERER=OFF \ .. popd
@@ -270,6 +271,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Thu Sep 19 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.26.0-3 +- Enable WPE renderer, resolves rhbz#1753730 + * Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 - Backport fix for a crash when closing the view and HW acceleration is enabled - Resolves: rhbz#1750345
commit c2a3540911cf32c742359c7c18bedfcf9c3d46d4 Author: Michael Catanzaro mcatanzaro@gnome.org Date: Thu Sep 19 11:55:59 2019 -0500
Enable WPE renderer, resolves rhbz#1753730
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index ec81a42..8ec669e 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.26.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -80,6 +80,8 @@ BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wpe-1.0) +BuildRequires: pkgconfig(wpebackend-fdo-1.0) BuildRequires: pkgconfig(xt)
Requires: bubblewrap @@ -191,7 +193,6 @@ pushd %{_target_platform} -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ - -DUSE_WPE_RENDERER=OFF \ .. popd
@@ -270,6 +271,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Thu Sep 19 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.26.0-3 +- Enable WPE renderer, resolves rhbz#1753730 + * Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 - Backport fix for a crash when closing the view and HW acceleration is enabled - Resolves: rhbz#1750345
commit 3137b64e1b953bedac538bf6754836f1c3407201 Author: Tomas Popela tpopela@redhat.com Date: Tue Sep 17 14:48:05 2019 +0200
Backport fix for EGL_BAD_ALLOC
Resolves: rhbz#1751936
diff --git a/egl-bad-alloc.patch b/egl-bad-alloc.patch new file mode 100644 index 0000000..30adf2b --- /dev/null +++ b/egl-bad-alloc.patch @@ -0,0 +1,42 @@ +d3ba37faac294a432bc9a3abce2ed161891dc49f +From d3ba37faac294a432bc9a3abce2ed161891dc49f Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Tue, 17 Sep 2019 10:12:26 +0000 +Subject: [PATCH] [GTK] Cannot create EGL window surface: EGL_BAD_ALLOC + https://bugs.webkit.org/show_bug.cgi?id=201505 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed by an Doberek. + +This happens because eglCreateWindowSurface() is called twice for the same window when not using the WPE +renderer. New versions of Mesa fail the second time with a EGL_BAD_ALLOC. + +* platform/graphics/egl/GLContextEGL.cpp: +(WebCore::GLContextEGL::createWindowContext): Check surface is nullptr before falling back to use +eglCreateWindowSurface(). + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249951 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebCore/platform/graphics/egl/GLContextEGL.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +index 14a7b4c97f6..a8a82d7097a 100644 +--- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp ++++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +@@ -188,7 +188,8 @@ std::unique_ptr<GLContextEGL> GLContextEGL::createWindowContext(GLNativeWindowTy + if (platformDisplay.type() == PlatformDisplay::Type::WPE) + surface = createWindowSurfaceWPE(display, config, window); + #else +- surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); ++ if (surface == EGL_NO_SURFACE) ++ surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); + #endif + if (surface == EGL_NO_SURFACE) { + WTFLogAlways("Cannot create EGL window surface: %s\n", lastErrorString()); +-- +2.21.0 + diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 31dd26d..ec81a42 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -23,6 +23,8 @@ Patch1: fedora-crypto-policy.patch Patch2: no-env-shebang.patch # https://trac.webkit.org/changeset/249947/webkit Patch3: hw-accl-close-crash.patch +# https://trac.webkit.org/changeset/249951/webkit +Patch4: egl-bad-alloc.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -271,6 +273,8 @@ export NINJA_STATUS="[%f/%t][%e] " * Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 - Backport fix for a crash when closing the view and HW acceleration is enabled - Resolves: rhbz#1750345 +- Backport fix for EGL_BAD_ALLOC +- Resolves: rhbz#1751936
* Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 - Update to 2.26.0
commit e988e469eb2c2f2887ed6a0432450b2a73b11159 Author: Tomas Popela tpopela@redhat.com Date: Tue Sep 17 14:48:05 2019 +0200
Backport fix for EGL_BAD_ALLOC
Resolves: rhbz#1751936
diff --git a/egl-bad-alloc.patch b/egl-bad-alloc.patch new file mode 100644 index 0000000..30adf2b --- /dev/null +++ b/egl-bad-alloc.patch @@ -0,0 +1,42 @@ +d3ba37faac294a432bc9a3abce2ed161891dc49f +From d3ba37faac294a432bc9a3abce2ed161891dc49f Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Tue, 17 Sep 2019 10:12:26 +0000 +Subject: [PATCH] [GTK] Cannot create EGL window surface: EGL_BAD_ALLOC + https://bugs.webkit.org/show_bug.cgi?id=201505 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed by an Doberek. + +This happens because eglCreateWindowSurface() is called twice for the same window when not using the WPE +renderer. New versions of Mesa fail the second time with a EGL_BAD_ALLOC. + +* platform/graphics/egl/GLContextEGL.cpp: +(WebCore::GLContextEGL::createWindowContext): Check surface is nullptr before falling back to use +eglCreateWindowSurface(). + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249951 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebCore/platform/graphics/egl/GLContextEGL.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +index 14a7b4c97f6..a8a82d7097a 100644 +--- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp ++++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +@@ -188,7 +188,8 @@ std::unique_ptr<GLContextEGL> GLContextEGL::createWindowContext(GLNativeWindowTy + if (platformDisplay.type() == PlatformDisplay::Type::WPE) + surface = createWindowSurfaceWPE(display, config, window); + #else +- surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); ++ if (surface == EGL_NO_SURFACE) ++ surface = eglCreateWindowSurface(display, config, static_cast<EGLNativeWindowType>(window), nullptr); + #endif + if (surface == EGL_NO_SURFACE) { + WTFLogAlways("Cannot create EGL window surface: %s\n", lastErrorString()); +-- +2.21.0 + diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 31dd26d..ec81a42 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -23,6 +23,8 @@ Patch1: fedora-crypto-policy.patch Patch2: no-env-shebang.patch # https://trac.webkit.org/changeset/249947/webkit Patch3: hw-accl-close-crash.patch +# https://trac.webkit.org/changeset/249951/webkit +Patch4: egl-bad-alloc.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -271,6 +273,8 @@ export NINJA_STATUS="[%f/%t][%e] " * Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 - Backport fix for a crash when closing the view and HW acceleration is enabled - Resolves: rhbz#1750345 +- Backport fix for EGL_BAD_ALLOC +- Resolves: rhbz#1751936
* Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 - Update to 2.26.0
commit 664e67fe7f9a01a695c1aa9043f966fece8a4d3a Author: Tomas Popela tpopela@redhat.com Date: Tue Sep 17 14:42:25 2019 +0200
Backport fix for a crash when closing the view and HW acceleration is enabled Resolves: rhbz#1750345
diff --git a/hw-accl-close-crash.patch b/hw-accl-close-crash.patch new file mode 100644 index 0000000..4d7e681 --- /dev/null +++ b/hw-accl-close-crash.patch @@ -0,0 +1,249 @@ +45aabb992c69026ec12c857c023fec13920a753f +From 45aabb992c69026ec12c857c023fec13920a753f Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Tue, 17 Sep 2019 08:05:30 +0000 +Subject: [PATCH] [GTK] Crash closing web view while hardware acceleration is + enabled https://bugs.webkit.org/show_bug.cgi?id=200856 + +Reviewed by Michael Catanzaro. + +The crash happens when destroying the WaylandCompositor::Surface because the web view GL context is used to +release the texture, but the GL context is no longer valid after web view +unrealize. AcceleratedBackingStoreWayland should handle the web view unrealize to destroy the GL context. It +will be created on demand again after the web view is realized. + +* UIProcess/API/gtk/WebKitWebViewBase.cpp: +(webkitWebViewBaseRealize): Notify AcceleratedBackingStore. +(webkitWebViewBaseUnrealize): Ditto. +* UIProcess/gtk/AcceleratedBackingStore.h: +(WebKit::AcceleratedBackingStore::realize): Added. +(WebKit::AcceleratedBackingStore::unrealize): Added. +* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: +(WebKit::AcceleratedBackingStoreWayland::realize): In case of using WaylandCompositor, call +WaylandCompositor::bindWebPage() to bind the WebPageProxy to the Wayland surface. +(WebKit::AcceleratedBackingStoreWayland::unrealize): Destroy GL resources and the GL context. +(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Do not try to create the GL context if the web +view is not realized. +(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Remove the code to initialize the texture. +(WebKit::AcceleratedBackingStoreWayland::paint): And add it here. +* UIProcess/gtk/AcceleratedBackingStoreWayland.h: +* UIProcess/gtk/WaylandCompositor.cpp: +(WebKit::WaylandCompositor::Surface::setWebPage): Return early if given page is the current one already. +(WebKit::WaylandCompositor::bindWebPage): Set the surface WebPageProxy. +(WebKit::WaylandCompositor::unbindWebPage): Unset the surface WebPageProxy. +* UIProcess/gtk/WaylandCompositor.h: +* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: +(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): When restoring a previous layer tree +host, always call resumeRendering() to balance the suspendRendering() called in exitAcceleratedCompositingMode(). + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249947 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 6 +++ + .../UIProcess/gtk/AcceleratedBackingStore.h | 2 + + .../gtk/AcceleratedBackingStoreWayland.cpp | 52 ++++++++++++++----- + .../gtk/AcceleratedBackingStoreWayland.h | 2 + + .../UIProcess/gtk/WaylandCompositor.cpp | 15 ++++++ + .../WebKit/UIProcess/gtk/WaylandCompositor.h | 2 + + .../DrawingAreaCoordinatedGraphics.cpp | 3 +- + 7 files changed, 66 insertions(+), 16 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +index 88b3cf43bfe..68ca3ad5b5b 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +@@ -422,6 +422,9 @@ static void webkitWebViewBaseRealize(GtkWidget* widget) + gdk_window_set_user_data(window, widget); + + gtk_im_context_set_client_window(priv->inputMethodFilter.context(), window); ++ ++ if (priv->acceleratedBackingStore) ++ priv->acceleratedBackingStore->realize(); + } + + static void webkitWebViewBaseUnrealize(GtkWidget* widget) +@@ -429,6 +432,9 @@ static void webkitWebViewBaseUnrealize(GtkWidget* widget) + WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(widget); + gtk_im_context_set_client_window(webView->priv->inputMethodFilter.context(), nullptr); + ++ if (webView->priv->acceleratedBackingStore) ++ webView->priv->acceleratedBackingStore->unrealize(); ++ + GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->unrealize(widget); + } + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h +index 182264c6952..c6afb20b046 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h +@@ -47,6 +47,8 @@ public: + + virtual void update(const LayerTreeContext&) { } + virtual bool paint(cairo_t*, const WebCore::IntRect&) = 0; ++ virtual void realize() { }; ++ virtual void unrealize() { }; + virtual bool makeContextCurrent() { return false; } + virtual int renderHostFileDescriptor() { return -1; } + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +index 893279fbcf5..973b31681fb 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +@@ -148,9 +148,37 @@ AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland() + gdk_gl_context_clear_current(); + } + ++void AcceleratedBackingStoreWayland::realize() ++{ ++#if !USE(WPE_RENDERER) ++ WaylandCompositor::singleton().bindWebPage(m_webPage); ++#endif ++} ++ ++void AcceleratedBackingStoreWayland::unrealize() ++{ ++ if (!m_glContextInitialized) ++ return; ++ ++#if USE(WPE_RENDERER) ++ if (m_viewTexture) { ++ if (makeContextCurrent()) ++ glDeleteTextures(1, &m_viewTexture); ++ m_viewTexture = 0; ++ } ++#else ++ WaylandCompositor::singleton().unbindWebPage(m_webPage); ++#endif ++ ++ if (m_gdkGLContext && m_gdkGLContext.get() == gdk_gl_context_get_current()) ++ gdk_gl_context_clear_current(); ++ ++ m_glContextInitialized = false; ++} ++ + void AcceleratedBackingStoreWayland::tryEnsureGLContext() + { +- if (m_glContextInitialized) ++ if (m_glContextInitialized || !gtk_widget_get_realized(m_webPage.viewWidget())) + return; + + m_glContextInitialized = true; +@@ -208,18 +236,6 @@ void AcceleratedBackingStoreWayland::displayBuffer(struct wpe_fdo_egl_exported_i + return; + } + +- if (!m_viewTexture) { +- if (!makeContextCurrent()) +- return; +- +- glGenTextures(1, &m_viewTexture); +- glBindTexture(GL_TEXTURE_2D, m_viewTexture); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); +- } +- + if (m_pendingImage) + wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(m_exportable, m_pendingImage); + m_pendingImage = image; +@@ -235,7 +251,7 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) + + #if USE(WPE_RENDERER) + if (!makeContextCurrent()) +- return false; ++ return true; + + if (m_pendingImage) { + wpe_view_backend_exportable_fdo_dispatch_frame_complete(m_exportable); +@@ -249,6 +265,14 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) + if (!m_committedImage) + return true; + ++ if (!m_viewTexture) { ++ glGenTextures(1, &m_viewTexture); ++ glBindTexture(GL_TEXTURE_2D, m_viewTexture); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); ++ } + glBindTexture(GL_TEXTURE_2D, m_viewTexture); + glImageTargetTexture2D(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(m_committedImage)); + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h +index 5826bcce9bd..dffe23d8f3b 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h +@@ -65,6 +65,8 @@ private: + #endif + + bool paint(cairo_t*, const WebCore::IntRect&) override; ++ void realize() override; ++ void unrealize() override; + bool makeContextCurrent() override; + #if USE(WPE_RENDERER) + void update(const LayerTreeContext&) override; +diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp +index ce895293fee..8a14c552c87 100644 +--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp ++++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp +@@ -167,6 +167,9 @@ WaylandCompositor::Surface::~Surface() + + void WaylandCompositor::Surface::setWebPage(WebPageProxy* webPage) + { ++ if (m_webPage == webPage) ++ return; ++ + if (m_webPage) { + flushPendingFrameCallbacks(); + flushFrameCallbacks(); +@@ -563,6 +566,18 @@ void WaylandCompositor::bindSurfaceToWebPage(WaylandCompositor::Surface* surface + m_pageMap.set(webPage, makeWeakPtr(*surface)); + } + ++void WaylandCompositor::bindWebPage(WebPageProxy& webPage) ++{ ++ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) ++ surface->setWebPage(&webPage); ++} ++ ++void WaylandCompositor::unbindWebPage(WebPageProxy& webPage) ++{ ++ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) ++ surface->setWebPage(nullptr); ++} ++ + void WaylandCompositor::registerWebPage(WebPageProxy& webPage) + { + m_pageMap.add(&webPage, nullptr); +diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h +index d40c2303257..e9a42189b73 100644 +--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h ++++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h +@@ -104,6 +104,8 @@ public: + String displayName() const { return m_displayName; } + + void bindSurfaceToWebPage(Surface*, WebCore::PageIdentifier); ++ void bindWebPage(WebPageProxy&); ++ void unbindWebPage(WebPageProxy&); + void registerWebPage(WebPageProxy&); + void unregisterWebPage(WebPageProxy&); + +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +index 010ace6213b..fa974c21650 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +@@ -551,8 +551,7 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay + if (m_previousLayerTreeHost) { + m_layerTreeHost = WTFMove(m_previousLayerTreeHost); + m_layerTreeHost->setIsDiscardable(false); +- if (!m_isPaintingSuspended) +- m_layerTreeHost->resumeRendering(); ++ m_layerTreeHost->resumeRendering(); + if (!m_layerTreeStateIsFrozen) + m_layerTreeHost->setLayerFlushSchedulingEnabled(true); + } else { +-- +2.21.0 + diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 9e4e141..31dd26d 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.26.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -21,6 +21,8 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch +# https://trac.webkit.org/changeset/249947/webkit +Patch3: hw-accl-close-crash.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -266,6 +268,10 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 +- Backport fix for a crash when closing the view and HW acceleration is enabled +- Resolves: rhbz#1750345 + * Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 - Update to 2.26.0
commit 2bc0a7cb80c3c9bc0a100d2fac8518cdd32f4c6d Author: Tomas Popela tpopela@redhat.com Date: Tue Sep 17 14:42:25 2019 +0200
Backport fix for a crash when closing the view and HW acceleration is enabled Resolves: rhbz#1750345
diff --git a/hw-accl-close-crash.patch b/hw-accl-close-crash.patch new file mode 100644 index 0000000..4d7e681 --- /dev/null +++ b/hw-accl-close-crash.patch @@ -0,0 +1,249 @@ +45aabb992c69026ec12c857c023fec13920a753f +From 45aabb992c69026ec12c857c023fec13920a753f Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Tue, 17 Sep 2019 08:05:30 +0000 +Subject: [PATCH] [GTK] Crash closing web view while hardware acceleration is + enabled https://bugs.webkit.org/show_bug.cgi?id=200856 + +Reviewed by Michael Catanzaro. + +The crash happens when destroying the WaylandCompositor::Surface because the web view GL context is used to +release the texture, but the GL context is no longer valid after web view +unrealize. AcceleratedBackingStoreWayland should handle the web view unrealize to destroy the GL context. It +will be created on demand again after the web view is realized. + +* UIProcess/API/gtk/WebKitWebViewBase.cpp: +(webkitWebViewBaseRealize): Notify AcceleratedBackingStore. +(webkitWebViewBaseUnrealize): Ditto. +* UIProcess/gtk/AcceleratedBackingStore.h: +(WebKit::AcceleratedBackingStore::realize): Added. +(WebKit::AcceleratedBackingStore::unrealize): Added. +* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: +(WebKit::AcceleratedBackingStoreWayland::realize): In case of using WaylandCompositor, call +WaylandCompositor::bindWebPage() to bind the WebPageProxy to the Wayland surface. +(WebKit::AcceleratedBackingStoreWayland::unrealize): Destroy GL resources and the GL context. +(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Do not try to create the GL context if the web +view is not realized. +(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Remove the code to initialize the texture. +(WebKit::AcceleratedBackingStoreWayland::paint): And add it here. +* UIProcess/gtk/AcceleratedBackingStoreWayland.h: +* UIProcess/gtk/WaylandCompositor.cpp: +(WebKit::WaylandCompositor::Surface::setWebPage): Return early if given page is the current one already. +(WebKit::WaylandCompositor::bindWebPage): Set the surface WebPageProxy. +(WebKit::WaylandCompositor::unbindWebPage): Unset the surface WebPageProxy. +* UIProcess/gtk/WaylandCompositor.h: +* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: +(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): When restoring a previous layer tree +host, always call resumeRendering() to balance the suspendRendering() called in exitAcceleratedCompositingMode(). + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249947 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 6 +++ + .../UIProcess/gtk/AcceleratedBackingStore.h | 2 + + .../gtk/AcceleratedBackingStoreWayland.cpp | 52 ++++++++++++++----- + .../gtk/AcceleratedBackingStoreWayland.h | 2 + + .../UIProcess/gtk/WaylandCompositor.cpp | 15 ++++++ + .../WebKit/UIProcess/gtk/WaylandCompositor.h | 2 + + .../DrawingAreaCoordinatedGraphics.cpp | 3 +- + 7 files changed, 66 insertions(+), 16 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +index 88b3cf43bfe..68ca3ad5b5b 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +@@ -422,6 +422,9 @@ static void webkitWebViewBaseRealize(GtkWidget* widget) + gdk_window_set_user_data(window, widget); + + gtk_im_context_set_client_window(priv->inputMethodFilter.context(), window); ++ ++ if (priv->acceleratedBackingStore) ++ priv->acceleratedBackingStore->realize(); + } + + static void webkitWebViewBaseUnrealize(GtkWidget* widget) +@@ -429,6 +432,9 @@ static void webkitWebViewBaseUnrealize(GtkWidget* widget) + WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(widget); + gtk_im_context_set_client_window(webView->priv->inputMethodFilter.context(), nullptr); + ++ if (webView->priv->acceleratedBackingStore) ++ webView->priv->acceleratedBackingStore->unrealize(); ++ + GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->unrealize(widget); + } + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h +index 182264c6952..c6afb20b046 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h +@@ -47,6 +47,8 @@ public: + + virtual void update(const LayerTreeContext&) { } + virtual bool paint(cairo_t*, const WebCore::IntRect&) = 0; ++ virtual void realize() { }; ++ virtual void unrealize() { }; + virtual bool makeContextCurrent() { return false; } + virtual int renderHostFileDescriptor() { return -1; } + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +index 893279fbcf5..973b31681fb 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +@@ -148,9 +148,37 @@ AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland() + gdk_gl_context_clear_current(); + } + ++void AcceleratedBackingStoreWayland::realize() ++{ ++#if !USE(WPE_RENDERER) ++ WaylandCompositor::singleton().bindWebPage(m_webPage); ++#endif ++} ++ ++void AcceleratedBackingStoreWayland::unrealize() ++{ ++ if (!m_glContextInitialized) ++ return; ++ ++#if USE(WPE_RENDERER) ++ if (m_viewTexture) { ++ if (makeContextCurrent()) ++ glDeleteTextures(1, &m_viewTexture); ++ m_viewTexture = 0; ++ } ++#else ++ WaylandCompositor::singleton().unbindWebPage(m_webPage); ++#endif ++ ++ if (m_gdkGLContext && m_gdkGLContext.get() == gdk_gl_context_get_current()) ++ gdk_gl_context_clear_current(); ++ ++ m_glContextInitialized = false; ++} ++ + void AcceleratedBackingStoreWayland::tryEnsureGLContext() + { +- if (m_glContextInitialized) ++ if (m_glContextInitialized || !gtk_widget_get_realized(m_webPage.viewWidget())) + return; + + m_glContextInitialized = true; +@@ -208,18 +236,6 @@ void AcceleratedBackingStoreWayland::displayBuffer(struct wpe_fdo_egl_exported_i + return; + } + +- if (!m_viewTexture) { +- if (!makeContextCurrent()) +- return; +- +- glGenTextures(1, &m_viewTexture); +- glBindTexture(GL_TEXTURE_2D, m_viewTexture); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); +- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); +- } +- + if (m_pendingImage) + wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(m_exportable, m_pendingImage); + m_pendingImage = image; +@@ -235,7 +251,7 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) + + #if USE(WPE_RENDERER) + if (!makeContextCurrent()) +- return false; ++ return true; + + if (m_pendingImage) { + wpe_view_backend_exportable_fdo_dispatch_frame_complete(m_exportable); +@@ -249,6 +265,14 @@ bool AcceleratedBackingStoreWayland::paint(cairo_t* cr, const IntRect& clipRect) + if (!m_committedImage) + return true; + ++ if (!m_viewTexture) { ++ glGenTextures(1, &m_viewTexture); ++ glBindTexture(GL_TEXTURE_2D, m_viewTexture); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); ++ } + glBindTexture(GL_TEXTURE_2D, m_viewTexture); + glImageTargetTexture2D(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(m_committedImage)); + +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h +index 5826bcce9bd..dffe23d8f3b 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.h +@@ -65,6 +65,8 @@ private: + #endif + + bool paint(cairo_t*, const WebCore::IntRect&) override; ++ void realize() override; ++ void unrealize() override; + bool makeContextCurrent() override; + #if USE(WPE_RENDERER) + void update(const LayerTreeContext&) override; +diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp +index ce895293fee..8a14c552c87 100644 +--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp ++++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp +@@ -167,6 +167,9 @@ WaylandCompositor::Surface::~Surface() + + void WaylandCompositor::Surface::setWebPage(WebPageProxy* webPage) + { ++ if (m_webPage == webPage) ++ return; ++ + if (m_webPage) { + flushPendingFrameCallbacks(); + flushFrameCallbacks(); +@@ -563,6 +566,18 @@ void WaylandCompositor::bindSurfaceToWebPage(WaylandCompositor::Surface* surface + m_pageMap.set(webPage, makeWeakPtr(*surface)); + } + ++void WaylandCompositor::bindWebPage(WebPageProxy& webPage) ++{ ++ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) ++ surface->setWebPage(&webPage); ++} ++ ++void WaylandCompositor::unbindWebPage(WebPageProxy& webPage) ++{ ++ if (WeakPtr<Surface> surface = m_pageMap.get(&webPage)) ++ surface->setWebPage(nullptr); ++} ++ + void WaylandCompositor::registerWebPage(WebPageProxy& webPage) + { + m_pageMap.add(&webPage, nullptr); +diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h +index d40c2303257..e9a42189b73 100644 +--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h ++++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h +@@ -104,6 +104,8 @@ public: + String displayName() const { return m_displayName; } + + void bindSurfaceToWebPage(Surface*, WebCore::PageIdentifier); ++ void bindWebPage(WebPageProxy&); ++ void unbindWebPage(WebPageProxy&); + void registerWebPage(WebPageProxy&); + void unregisterWebPage(WebPageProxy&); + +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +index 010ace6213b..fa974c21650 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +@@ -551,8 +551,7 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay + if (m_previousLayerTreeHost) { + m_layerTreeHost = WTFMove(m_previousLayerTreeHost); + m_layerTreeHost->setIsDiscardable(false); +- if (!m_isPaintingSuspended) +- m_layerTreeHost->resumeRendering(); ++ m_layerTreeHost->resumeRendering(); + if (!m_layerTreeStateIsFrozen) + m_layerTreeHost->setLayerFlushSchedulingEnabled(true); + } else { +-- +2.21.0 + diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 9e4e141..31dd26d 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.26.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -21,6 +21,8 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch +# https://trac.webkit.org/changeset/249947/webkit +Patch3: hw-accl-close-crash.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -266,6 +268,10 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Tue Sep 17 2019 Tomas Popela tpopela@redhat.com - 2.26.0-2 +- Backport fix for a crash when closing the view and HW acceleration is enabled +- Resolves: rhbz#1750345 + * Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 - Update to 2.26.0
commit 9d7977fb5e4ee7473f75481417969558ed14dc83 Author: Kalev Lember klember@redhat.com Date: Mon Sep 9 13:42:52 2019 +0200
Update to 2.26.0
diff --git a/.gitignore b/.gitignore index 0fcc6f0..87c905a 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /webkitgtk-2.25.3.tar.xz /webkitgtk-2.25.4.tar.xz /webkitgtk-2.25.92.tar.xz +/webkitgtk-2.26.0.tar.xz diff --git a/fix-sandbox-parsing-display.patch b/fix-sandbox-parsing-display.patch deleted file mode 100644 index 83000ad..0000000 --- a/fix-sandbox-parsing-display.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp -+++ a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp -@@ -294,10 +294,16 @@ static void bindDBusSession(Vector<CString>& args, XDGDBusProxyLauncher& proxy) - static void bindX11(Vector<CString>& args) - { - const char* display = g_getenv("DISPLAY"); -- if (!display || display[0] != ':' || !g_ascii_isdigit(const_cast<char*>(display)[1])) -- display = ":0"; -- GUniquePtr<char> x11File(g_strdup_printf("/tmp/.X11-unix/X%s", display + 1)); -- bindIfExists(args, x11File.get(), BindFlags::ReadWrite); -+ if (display && display[0] == ':' && g_ascii_isdigit(const_cast<char*>(display)[1])) { -+ const char* displayNumber = &display[1]; -+ const char* displayNumberEnd = displayNumber; -+ while (g_ascii_isdigit(*displayNumberEnd)) -+ displayNumberEnd++; -+ -+ GUniquePtr<char> displayString(g_strndup(displayNumber, displayNumberEnd - displayNumber)); -+ GUniquePtr<char> x11File(g_strdup_printf("/tmp/.X11-unix/X%s", displayString.get())); -+ bindIfExists(args, x11File.get(), BindFlags::ReadWrite); -+ } - - const char* xauth = g_getenv("XAUTHORITY"); - if (!xauth) { diff --git a/sources b/sources index cb0c730..c40ebc5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.25.92.tar.xz) = d3c8a68c1626b2a2ef1b08971fd1e626990f5591de73e28737d459b5a23d2dcbcd2779870498e352f9ef12760767a80183143d891b56f3f79045fc3f27e2a943 +SHA512 (webkitgtk-2.26.0.tar.xz) = 0af18d56c441b36a30dd0e5b16315ae35fad309ad1b940bed27fb615c228dbee6c2992c89ab8b76bbe924ee18f5fc11598fa882397ae29dc00ebddf4d301c228 diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 820229f..9e4e141 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.25.92 -Release: 2%{?dist} +Version: 2.26.0 +Release: 1%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -22,11 +22,6 @@ Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch
-# Remove this one when upgrading to 2.26.0. -# https://bugzilla.redhat.com/show_bug.cgi?id=1748003 -# https://bugs.webkit.org/show_bug.cgi?id=201462 -Patch3: fix-sandbox-parsing-display.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -271,6 +266,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Mon Sep 09 2019 Kalev Lember klember@redhat.com - 2.26.0-1 +- Update to 2.26.0 + * Wed Sep 04 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.25.92-2 - Add patch to fix startup in X11 when not using gdm
commit c53d8c40e8d373519cedc7bccdd8484f8dd7fe5d Author: Michael Catanzaro mcatanzaro@gnome.org Date: Wed Sep 4 12:36:26 2019 -0500
Don't forget to 'git add'
diff --git a/fix-sandbox-parsing-display.patch b/fix-sandbox-parsing-display.patch new file mode 100644 index 0000000..83000ad --- /dev/null +++ b/fix-sandbox-parsing-display.patch @@ -0,0 +1,23 @@ +--- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp ++++ a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp +@@ -294,10 +294,16 @@ static void bindDBusSession(Vector<CString>& args, XDGDBusProxyLauncher& proxy) + static void bindX11(Vector<CString>& args) + { + const char* display = g_getenv("DISPLAY"); +- if (!display || display[0] != ':' || !g_ascii_isdigit(const_cast<char*>(display)[1])) +- display = ":0"; +- GUniquePtr<char> x11File(g_strdup_printf("/tmp/.X11-unix/X%s", display + 1)); +- bindIfExists(args, x11File.get(), BindFlags::ReadWrite); ++ if (display && display[0] == ':' && g_ascii_isdigit(const_cast<char*>(display)[1])) { ++ const char* displayNumber = &display[1]; ++ const char* displayNumberEnd = displayNumber; ++ while (g_ascii_isdigit(*displayNumberEnd)) ++ displayNumberEnd++; ++ ++ GUniquePtr<char> displayString(g_strndup(displayNumber, displayNumberEnd - displayNumber)); ++ GUniquePtr<char> x11File(g_strdup_printf("/tmp/.X11-unix/X%s", displayString.get())); ++ bindIfExists(args, x11File.get(), BindFlags::ReadWrite); ++ } + + const char* xauth = g_getenv("XAUTHORITY"); + if (!xauth) {
commit 51412210ff4717e910fb8147bbd45e8d8a84dc9f Author: Michael Catanzaro mcatanzaro@gnome.org Date: Wed Sep 4 12:35:09 2019 -0500
Add patch to fix startup in X11 when not using gdm
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 96d0749..820229f 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.25.92 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -22,6 +22,11 @@ Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch
+# Remove this one when upgrading to 2.26.0. +# https://bugzilla.redhat.com/show_bug.cgi?id=1748003 +# https://bugs.webkit.org/show_bug.cgi?id=201462 +Patch3: fix-sandbox-parsing-display.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -266,6 +271,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Wed Sep 04 2019 Michael Catanzaro mcatanzaro@gnome.org - 2.25.92-2 +- Add patch to fix startup in X11 when not using gdm + * Tue Sep 03 2019 Eike Rathke erack@redhat.com - 2.25.92-1 - Resolves: rhbz#1748305 Update to 2.25.92
commit 8803623319f6518fcdc71d99aff7eacdf1cedec2 Author: Eike Rathke erack@redhat.com Date: Tue Sep 3 19:50:49 2019 +0200
Resolves: rhbz#1748305 Update to 2.25.92
diff --git a/.gitignore b/.gitignore index 3500a56..0fcc6f0 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ /webkitgtk-2.25.2.tar.xz /webkitgtk-2.25.3.tar.xz /webkitgtk-2.25.4.tar.xz +/webkitgtk-2.25.92.tar.xz diff --git a/sources b/sources index c64eb8c..cb0c730 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.25.4.tar.xz) = 5343cfd4c65fd05280c29d1eb1b3805b91a32b2034ecca24e7ef17c0e23dcdcf99460f834d44f38363412a78332d8f65ca9abd40245cd9a14cb6e969f9afd6de +SHA512 (webkitgtk-2.25.92.tar.xz) = d3c8a68c1626b2a2ef1b08971fd1e626990f5591de73e28737d459b5a23d2dcbcd2779870498e352f9ef12760767a80183143d891b56f3f79045fc3f27e2a943 diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 2ccdfd8..96d0749 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.25.4 +Version: 2.25.92 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -266,6 +266,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Tue Sep 03 2019 Eike Rathke erack@redhat.com - 2.25.92-1 +- Resolves: rhbz#1748305 Update to 2.25.92 + * Fri Aug 02 2019 Eike Rathke erack@redhat.com - 2.25.4-1 - Update to 2.25.4
commit 15649bd8ef378d6b2dfc75430f96e339efcd274b Author: Eike Rathke erack@redhat.com Date: Fri Aug 2 20:06:05 2019 +0200
Update to 2.25.4
diff --git a/.gitignore b/.gitignore index c2a5229..3500a56 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ /webkitgtk-2.25.1.tar.xz /webkitgtk-2.25.2.tar.xz /webkitgtk-2.25.3.tar.xz +/webkitgtk-2.25.4.tar.xz diff --git a/sources b/sources index 63ce532..c64eb8c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.25.3.tar.xz) = ed63bdf3351d2db160dd303c4dcb655e9d51e0e95f9356c87ac43acadb96ea5836c7c0be04328a2b9f77e205bd663b8eded23306d3ed37d19230f0b5a0a05eff +SHA512 (webkitgtk-2.25.4.tar.xz) = 5343cfd4c65fd05280c29d1eb1b3805b91a32b2034ecca24e7ef17c0e23dcdcf99460f834d44f38363412a78332d8f65ca9abd40245cd9a14cb6e969f9afd6de diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 69d538d..2ccdfd8 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.25.3 -Release: 2%{?dist} +Version: 2.25.4 +Release: 1%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -266,6 +266,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Fri Aug 02 2019 Eike Rathke erack@redhat.com - 2.25.4-1 +- Update to 2.25.4 + * Fri Jul 26 2019 Tomas Popela tpopela@redhat.com - 2.25.3-2 - Follow-up fixes for the GTK2 plugins support removal - Fixes: rhbz#1733436
commit 8f252f5dc3125865731bb8516c66a016be466aca Author: Tomas Popela tpopela@redhat.com Date: Fri Jul 26 13:56:18 2019 +0200
Follow-up fixes for the GTK2 plugins support removal Fixes: rhbz#1733436
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 49a4d48..69d538d 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.25.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -57,7 +57,6 @@ BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(gstreamer-plugins-bad-1.0) -BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(icu-uc) @@ -91,6 +90,10 @@ Provides: libwebkit2gtk = %{version}-%{release} Obsoletes: webkitgtk4 < %{version}-%{release} Provides: webkitgtk4 = %{version}-%{release}
+# GTK+ 2 plugins support was removed in 2.25.3 +Obsoletes: webkit2gtk3-plugin-process-gtk2 < %{version}-%{release} +Provides: webkit2gtk3-plugin-process-gtk2 = %{version}-%{release} + # We're supposed to specify versions here, but these crap Google libs don't do # normal releases. Accordingly, they're not suitable to be system libs. Provides: bundled(angle) @@ -263,6 +266,10 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Fri Jul 26 2019 Tomas Popela tpopela@redhat.com - 2.25.3-2 +- Follow-up fixes for the GTK2 plugins support removal +- Fixes: rhbz#1733436 + * Tue Jul 23 2019 Eike Rathke erack@redhat.com - 2.25.3-1 - Update to 2.25.3 - This removes support for GTK 2 based NPAPI plugins (such as Adobe Flash)
commit c108f6a8a2bc6be45a35c15b1e79c9515e1a6ef0 Author: Eike Rathke erack@redhat.com Date: Tue Jul 23 17:01:52 2019 +0200
Update to 2.25.3 This removes support for GTK 2 based NPAPI plugins (such as Adobe Flash)
diff --git a/.gitignore b/.gitignore index 16da32a..c2a5229 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /webkitgtk-2.24.2.tar.xz /webkitgtk-2.25.1.tar.xz /webkitgtk-2.25.2.tar.xz +/webkitgtk-2.25.3.tar.xz diff --git a/sources b/sources index a399bf7..63ce532 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.25.2.tar.xz) = ab64884b7ac280ad746d7d22a57c4f655e765be4b0d118dd7291780f2823e33e0ce8dbb02dfc42880d5ef6410b8acbb2978b47d9c43c86e9f539b3ee6dcdacc8 +SHA512 (webkitgtk-2.25.3.tar.xz) = ed63bdf3351d2db160dd303c4dcb655e9d51e0e95f9356c87ac43acadb96ea5836c7c0be04328a2b9f77e205bd663b8eded23306d3ed37d19230f0b5a0a05eff diff --git a/webkit-199621-crash.patch b/webkit-199621-crash.patch deleted file mode 100644 index 2429338..0000000 --- a/webkit-199621-crash.patch +++ /dev/null @@ -1,198 +0,0 @@ -From 79be003f2284454b87d3678485c41389717e674b Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> -Date: Wed, 17 Jul 2019 08:25:31 +0000 -Subject: [PATCH] [WPE][GTK] UI process crash due to NULL dereference in - webkitWebViewResourceLoadStarted() - https://bugs.webkit.org/show_bug.cgi?id=199621 - -Reviewed by Michael Catanzaro. - -Null-check frame received in injected bundle message to ensure the frame hasn't been destroyed. - -* UIProcess/API/glib/WebKitInjectedBundleClient.cpp: -* UIProcess/API/glib/WebKitWebResource.cpp: -(webkitWebResourceCreate): Receive a reference to the frame instead of a pointer. -* UIProcess/API/glib/WebKitWebResourcePrivate.h: -* UIProcess/API/glib/WebKitWebView.cpp: -(webkitWebViewResourceLoadStarted): Ditto. -* UIProcess/API/glib/WebKitWebViewPrivate.h: - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@247508 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - .../API/glib/WebKitInjectedBundleClient.cpp | 46 +++++++++++++++++-- - .../UIProcess/API/glib/WebKitWebResource.cpp | 4 +- - .../API/glib/WebKitWebResourcePrivate.h | 2 +- - .../UIProcess/API/glib/WebKitWebView.cpp | 4 +- - .../UIProcess/API/glib/WebKitWebViewPrivate.h | 2 +- - 5 files changed, 64 insertions(+), 11 deletions(-) - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp b/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp -index 9d2bbded62db..a93ff25b39a2 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp -@@ -45,43 +45,70 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { - { - if (g_str_equal(messageName, "DidInitiateLoadForResource")) { - WebFrameProxy* frame = static_cast<WebFrameProxy*>(message.get(String::fromUTF8("Frame"))); -+ if (!frame) -+ return; -+ - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - API::URLRequest* webRequest = static_castAPI::URLRequest*(message.get(String::fromUTF8("Request"))); -- GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); -+ if (!webRequest) -+ return; - -- webkitWebViewResourceLoadStarted(webView, frame, resourceIdentifier->value(), request.get()); -+ GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); -+ webkitWebViewResourceLoadStarted(webView, *frame, resourceIdentifier->value(), request.get()); - } else if (g_str_equal(messageName, "DidSendRequestForResource")) { - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); - if (!resource) - return; - - API::URLRequest* webRequest = static_castAPI::URLRequest*(message.get(String::fromUTF8("Request"))); -+ if (!webRequest) -+ return; -+ - GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); - API::URLResponse* webRedirectResponse = static_castAPI::URLResponse*(message.get(String::fromUTF8("RedirectResponse"))); -- GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : 0; -- -+ GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : nullptr; - webkitWebResourceSentRequest(resource.get(), request.get(), redirectResponse.get()); - } else if (g_str_equal(messageName, "DidReceiveResponseForResource")) { - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); - if (!resource) - return; - - API::URLResponse* webResponse = static_castAPI::URLResponse*(message.get(String::fromUTF8("Response"))); -- GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse())); -+ if (!webResponse) -+ return; - -+ GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse())); - webkitWebResourceSetResponse(resource.get(), response.get()); - } else if (g_str_equal(messageName, "DidReceiveContentLengthForResource")) { - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); - if (!resource) - return; - - API::UInt64* contentLength = static_castAPI::UInt64*(message.get(String::fromUTF8("ContentLength"))); -+ if (!contentLength) -+ return; -+ - webkitWebResourceNotifyProgress(resource.get(), contentLength->value()); - } else if (g_str_equal(messageName, "DidFinishLoadForResource")) { - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); - if (!resource) - return; -@@ -90,11 +117,17 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { - webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value()); - } else if (g_str_equal(messageName, "DidFailLoadForResource")) { - API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); -+ if (!resourceIdentifier) -+ return; -+ - GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); - if (!resource) - return; - - API::Error* webError = static_castAPI::Error*(message.get(String::fromUTF8("Error"))); -+ if (!webError) -+ return; -+ - const ResourceError& platformError = webError->platformError(); - GUniquePtr<GError> resourceError(g_error_new_literal(g_quark_from_string(platformError.domain().utf8().data()), - toWebKitError(platformError.errorCode()), platformError.localizedDescription().utf8().data())); -@@ -107,6 +140,9 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { - #if PLATFORM(GTK) - } else if (g_str_equal(messageName, "DidGetSnapshot")) { - API::UInt64* callbackID = static_castAPI::UInt64*(message.get("CallbackID")); -+ if (!callbackID) -+ return; -+ - WebImage* image = static_cast<WebImage*>(message.get("Snapshot")); - webKitWebViewDidReceiveSnapshot(webView, callbackID->value(), image); - #endif -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp -index 288555f3ef14..90bd7b828de4 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp -@@ -231,11 +231,11 @@ static void webkitWebResourceUpdateURI(WebKitWebResource* resource, const CStrin - g_object_notify(G_OBJECT(resource), "uri"); - } - --WebKitWebResource* webkitWebResourceCreate(WebFrameProxy* frame, WebKitURIRequest* request, bool isMainResource) -+WebKitWebResource* webkitWebResourceCreate(WebFrameProxy& frame, WebKitURIRequest* request, bool isMainResource) - { - ASSERT(frame); - WebKitWebResource* resource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, NULL)); -- resource->priv->frame = frame; -+ resource->priv->frame = &frame; - resource->priv->uri = webkit_uri_request_get_uri(request); - resource->priv->isMainResource = isMainResource; - return resource; -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h -index 3a029327d61d..8d1349dd6527 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h -@@ -21,7 +21,7 @@ - - #include "WebKitWebResource.h" - --WebKitWebResource* webkitWebResourceCreate(WebKit::WebFrameProxy*, WebKitURIRequest*, bool isMainResource); -+WebKitWebResource* webkitWebResourceCreate(WebKit::WebFrameProxy&, WebKitURIRequest*, bool isMainResource); - void webkitWebResourceSentRequest(WebKitWebResource*, WebKitURIRequest*, WebKitURIResponse*); - void webkitWebResourceSetResponse(WebKitWebResource*, WebKitURIResponse*); - void webkitWebResourceNotifyProgress(WebKitWebResource*, guint64 bytesReceived); -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index ceb90d73d83f..b239ac4e19e6 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -@@ -2374,10 +2374,10 @@ void webkitWebViewPrintFrame(WebKitWebView* webView, WebFrameProxy* frame) - } - #endif - --void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WebFrameProxy* frame, uint64_t resourceIdentifier, WebKitURIRequest* request) -+void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WebFrameProxy& frame, uint64_t resourceIdentifier, WebKitURIRequest* request) - { - WebKitWebViewPrivate* priv = webView->priv; -- bool isMainResource = frame->isMainFrame() && !priv->mainResource; -+ bool isMainResource = frame.isMainFrame() && !priv->mainResource; - WebKitWebResource* resource = webkitWebResourceCreate(frame, request, isMainResource); - if (isMainResource) - priv->mainResource = resource; -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -index 30dff5705b84..e086683acc86 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -@@ -69,7 +69,7 @@ void webkitWebViewMakePolicyDecision(WebKitWebView*, WebKitPolicyDecisionType, W - void webkitWebViewMouseTargetChanged(WebKitWebView*, const WebKit::WebHitTestResultData&, OptionSetWebKit::WebEvent::Modifier); - void webkitWebViewHandleDownloadRequest(WebKitWebView*, WebKit::DownloadProxy*); - void webkitWebViewPrintFrame(WebKitWebView*, WebKit::WebFrameProxy*); --void webkitWebViewResourceLoadStarted(WebKitWebView*, WebKit::WebFrameProxy*, uint64_t resourceIdentifier, WebKitURIRequest*); -+void webkitWebViewResourceLoadStarted(WebKitWebView*, WebKit::WebFrameProxy&, uint64_t resourceIdentifier, WebKitURIRequest*); - void webkitWebViewRunFileChooserRequest(WebKitWebView*, WebKitFileChooserRequest*); - WebKitWebResource* webkitWebViewGetLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); - #if PLATFORM(GTK) diff --git a/webkit-encodedmatchresult.patch b/webkit-encodedmatchresult.patch deleted file mode 100644 index adc3a6b..0000000 --- a/webkit-encodedmatchresult.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/Source/JavaScriptCore/runtime/MatchResult.h -+++ a/Source/JavaScriptCore/runtime/MatchResult.h -@@ -31,10 +31,10 @@ - namespace JSC { - - struct MatchResult; --#if CPU(ARM64) || CPU(X86_64) --using EncodedMatchResult = MatchResult; --#else -+#if CPU(ADDRESS32) - using EncodedMatchResult = uint64_t; -+#else -+using EncodedMatchResult = MatchResult; - #endif - - struct MatchResult { -@@ -50,7 +50,7 @@ struct MatchResult { - { - } - --#if !(CPU(ARM64) || CPU(X86_64)) -+#if CPU(ADDRESS32) - ALWAYS_INLINE MatchResult(EncodedMatchResult match) - : start(bitwise_cast<MatchResult>(match).start) - , end(bitwise_cast<MatchResult>(match).end) -@@ -79,6 +79,7 @@ struct MatchResult { - size_t end; - }; - -+static_assert(sizeof(EncodedMatchResult) == 2 * sizeof(size_t), "https://bugs.webkit.org/show_bug.cgi?id=198518#c11"); - static_assert(sizeof(MatchResult) == sizeof(EncodedMatchResult), "Match result and EncodedMatchResult should be the same size"); - - } // namespace JSC diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 0fcccd5..49a4d48 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.25.2 -Release: 2%{?dist} +Version: 2.25.3 +Release: 1%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -21,10 +21,6 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch -# https://bugs.webkit.org/show_bug.cgi?id=198518 -Patch3: webkit-encodedmatchresult.patch -# https://bugs.webkit.org/show_bug.cgi?id=199621 -Patch4: webkit-199621-crash.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -102,9 +98,6 @@ Provides: bundled(angle) # Require the jsc subpackage Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
-# Recommend the support for the GTK 2 based NPAPI plugins -Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release} - # Filter out provides for private libraries %global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\.0/.*\.so$
@@ -154,16 +147,6 @@ Provides: webkitgtk4-jsc-devel = %{version}-%{release} The %{name}-jsc-devel package contains libraries, build data, and header files for developing applications that use JavaScript engine from %{name}.
-%package plugin-process-gtk2 -Summary: GTK 2 based NPAPI plugins support for %{name} -Requires: %{name}-jsc%{?_isa} = %{version}-%{release} -Obsoletes: %{name} < 2.12.0-3 -Obsoletes: webkitgtk4-plugin-process-gtk2 < %{version}-%{release} -Provides: webkitgtk4-plugin-process-gtk2 = %{version}-%{release} - -%description plugin-process-gtk2 -Support for the GTK 2 based NPAPI plugins (such as Adobe Flash) for %{name}. - %prep %autosetup -p1 -n webkitgtk-%{version} -S git
@@ -244,7 +227,6 @@ export NINJA_STATUS="[%f/%t][%e] " %{_libdir}/webkit2gtk-4.0/ %{_libexecdir}/webkit2gtk-4.0/ %exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser -%exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 %{_bindir}/WebKitWebDriver
%files devel @@ -273,9 +255,6 @@ export NINJA_STATUS="[%f/%t][%e] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
-%files plugin-process-gtk2 -%{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 - %files doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html @@ -284,6 +263,10 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Tue Jul 23 2019 Eike Rathke erack@redhat.com - 2.25.3-1 +- Update to 2.25.3 +- This removes support for GTK 2 based NPAPI plugins (such as Adobe Flash) + * Wed Jul 17 2019 Adam Williamson awilliam@redhat.com - 2.25.2-2 - Backport fix for crasher that affects Evolution (bwo#199621)
commit 9ca67d2095763663b165b072e7207a4bf3684e13 Author: Adam Williamson awilliam@redhat.com Date: Wed Jul 17 08:26:55 2019 -0700
Backport fix for crasher that affects Evolution (bwo#199621)
diff --git a/webkit-199621-crash.patch b/webkit-199621-crash.patch new file mode 100644 index 0000000..2429338 --- /dev/null +++ b/webkit-199621-crash.patch @@ -0,0 +1,198 @@ +From 79be003f2284454b87d3678485c41389717e674b Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Wed, 17 Jul 2019 08:25:31 +0000 +Subject: [PATCH] [WPE][GTK] UI process crash due to NULL dereference in + webkitWebViewResourceLoadStarted() + https://bugs.webkit.org/show_bug.cgi?id=199621 + +Reviewed by Michael Catanzaro. + +Null-check frame received in injected bundle message to ensure the frame hasn't been destroyed. + +* UIProcess/API/glib/WebKitInjectedBundleClient.cpp: +* UIProcess/API/glib/WebKitWebResource.cpp: +(webkitWebResourceCreate): Receive a reference to the frame instead of a pointer. +* UIProcess/API/glib/WebKitWebResourcePrivate.h: +* UIProcess/API/glib/WebKitWebView.cpp: +(webkitWebViewResourceLoadStarted): Ditto. +* UIProcess/API/glib/WebKitWebViewPrivate.h: + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@247508 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + .../API/glib/WebKitInjectedBundleClient.cpp | 46 +++++++++++++++++-- + .../UIProcess/API/glib/WebKitWebResource.cpp | 4 +- + .../API/glib/WebKitWebResourcePrivate.h | 2 +- + .../UIProcess/API/glib/WebKitWebView.cpp | 4 +- + .../UIProcess/API/glib/WebKitWebViewPrivate.h | 2 +- + 5 files changed, 64 insertions(+), 11 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp b/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp +index 9d2bbded62db..a93ff25b39a2 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp +@@ -45,43 +45,70 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { + { + if (g_str_equal(messageName, "DidInitiateLoadForResource")) { + WebFrameProxy* frame = static_cast<WebFrameProxy*>(message.get(String::fromUTF8("Frame"))); ++ if (!frame) ++ return; ++ + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + API::URLRequest* webRequest = static_castAPI::URLRequest*(message.get(String::fromUTF8("Request"))); +- GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); ++ if (!webRequest) ++ return; + +- webkitWebViewResourceLoadStarted(webView, frame, resourceIdentifier->value(), request.get()); ++ GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); ++ webkitWebViewResourceLoadStarted(webView, *frame, resourceIdentifier->value(), request.get()); + } else if (g_str_equal(messageName, "DidSendRequestForResource")) { + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); + if (!resource) + return; + + API::URLRequest* webRequest = static_castAPI::URLRequest*(message.get(String::fromUTF8("Request"))); ++ if (!webRequest) ++ return; ++ + GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest())); + API::URLResponse* webRedirectResponse = static_castAPI::URLResponse*(message.get(String::fromUTF8("RedirectResponse"))); +- GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : 0; +- ++ GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : nullptr; + webkitWebResourceSentRequest(resource.get(), request.get(), redirectResponse.get()); + } else if (g_str_equal(messageName, "DidReceiveResponseForResource")) { + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); + if (!resource) + return; + + API::URLResponse* webResponse = static_castAPI::URLResponse*(message.get(String::fromUTF8("Response"))); +- GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse())); ++ if (!webResponse) ++ return; + ++ GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse())); + webkitWebResourceSetResponse(resource.get(), response.get()); + } else if (g_str_equal(messageName, "DidReceiveContentLengthForResource")) { + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); + if (!resource) + return; + + API::UInt64* contentLength = static_castAPI::UInt64*(message.get(String::fromUTF8("ContentLength"))); ++ if (!contentLength) ++ return; ++ + webkitWebResourceNotifyProgress(resource.get(), contentLength->value()); + } else if (g_str_equal(messageName, "DidFinishLoadForResource")) { + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); + if (!resource) + return; +@@ -90,11 +117,17 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { + webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value()); + } else if (g_str_equal(messageName, "DidFailLoadForResource")) { + API::UInt64* resourceIdentifier = static_castAPI::UInt64*(message.get(String::fromUTF8("Identifier"))); ++ if (!resourceIdentifier) ++ return; ++ + GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value()); + if (!resource) + return; + + API::Error* webError = static_castAPI::Error*(message.get(String::fromUTF8("Error"))); ++ if (!webError) ++ return; ++ + const ResourceError& platformError = webError->platformError(); + GUniquePtr<GError> resourceError(g_error_new_literal(g_quark_from_string(platformError.domain().utf8().data()), + toWebKitError(platformError.errorCode()), platformError.localizedDescription().utf8().data())); +@@ -107,6 +140,9 @@ class WebKitInjectedBundleClient final : public API::InjectedBundleClient { + #if PLATFORM(GTK) + } else if (g_str_equal(messageName, "DidGetSnapshot")) { + API::UInt64* callbackID = static_castAPI::UInt64*(message.get("CallbackID")); ++ if (!callbackID) ++ return; ++ + WebImage* image = static_cast<WebImage*>(message.get("Snapshot")); + webKitWebViewDidReceiveSnapshot(webView, callbackID->value(), image); + #endif +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp +index 288555f3ef14..90bd7b828de4 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp +@@ -231,11 +231,11 @@ static void webkitWebResourceUpdateURI(WebKitWebResource* resource, const CStrin + g_object_notify(G_OBJECT(resource), "uri"); + } + +-WebKitWebResource* webkitWebResourceCreate(WebFrameProxy* frame, WebKitURIRequest* request, bool isMainResource) ++WebKitWebResource* webkitWebResourceCreate(WebFrameProxy& frame, WebKitURIRequest* request, bool isMainResource) + { + ASSERT(frame); + WebKitWebResource* resource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, NULL)); +- resource->priv->frame = frame; ++ resource->priv->frame = &frame; + resource->priv->uri = webkit_uri_request_get_uri(request); + resource->priv->isMainResource = isMainResource; + return resource; +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h +index 3a029327d61d..8d1349dd6527 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebResourcePrivate.h +@@ -21,7 +21,7 @@ + + #include "WebKitWebResource.h" + +-WebKitWebResource* webkitWebResourceCreate(WebKit::WebFrameProxy*, WebKitURIRequest*, bool isMainResource); ++WebKitWebResource* webkitWebResourceCreate(WebKit::WebFrameProxy&, WebKitURIRequest*, bool isMainResource); + void webkitWebResourceSentRequest(WebKitWebResource*, WebKitURIRequest*, WebKitURIResponse*); + void webkitWebResourceSetResponse(WebKitWebResource*, WebKitURIResponse*); + void webkitWebResourceNotifyProgress(WebKitWebResource*, guint64 bytesReceived); +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +index ceb90d73d83f..b239ac4e19e6 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +@@ -2374,10 +2374,10 @@ void webkitWebViewPrintFrame(WebKitWebView* webView, WebFrameProxy* frame) + } + #endif + +-void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WebFrameProxy* frame, uint64_t resourceIdentifier, WebKitURIRequest* request) ++void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WebFrameProxy& frame, uint64_t resourceIdentifier, WebKitURIRequest* request) + { + WebKitWebViewPrivate* priv = webView->priv; +- bool isMainResource = frame->isMainFrame() && !priv->mainResource; ++ bool isMainResource = frame.isMainFrame() && !priv->mainResource; + WebKitWebResource* resource = webkitWebResourceCreate(frame, request, isMainResource); + if (isMainResource) + priv->mainResource = resource; +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h +index 30dff5705b84..e086683acc86 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h +@@ -69,7 +69,7 @@ void webkitWebViewMakePolicyDecision(WebKitWebView*, WebKitPolicyDecisionType, W + void webkitWebViewMouseTargetChanged(WebKitWebView*, const WebKit::WebHitTestResultData&, OptionSetWebKit::WebEvent::Modifier); + void webkitWebViewHandleDownloadRequest(WebKitWebView*, WebKit::DownloadProxy*); + void webkitWebViewPrintFrame(WebKitWebView*, WebKit::WebFrameProxy*); +-void webkitWebViewResourceLoadStarted(WebKitWebView*, WebKit::WebFrameProxy*, uint64_t resourceIdentifier, WebKitURIRequest*); ++void webkitWebViewResourceLoadStarted(WebKitWebView*, WebKit::WebFrameProxy&, uint64_t resourceIdentifier, WebKitURIRequest*); + void webkitWebViewRunFileChooserRequest(WebKitWebView*, WebKitFileChooserRequest*); + WebKitWebResource* webkitWebViewGetLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); + #if PLATFORM(GTK) diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index da23850..0fcccd5 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -7,7 +7,7 @@
Name: webkit2gtk3 Version: 2.25.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK Web content engine library
License: LGPLv2 @@ -23,6 +23,8 @@ Patch1: fedora-crypto-policy.patch Patch2: no-env-shebang.patch # https://bugs.webkit.org/show_bug.cgi?id=198518 Patch3: webkit-encodedmatchresult.patch +# https://bugs.webkit.org/show_bug.cgi?id=199621 +Patch4: webkit-199621-crash.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -282,6 +284,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Wed Jul 17 2019 Adam Williamson awilliam@redhat.com - 2.25.2-2 +- Backport fix for crasher that affects Evolution (bwo#199621) + * Mon Jun 24 2019 Eike Rathke erack@redhat.com - 2.25.2-1 - Update to 2.25.2
commit ff7119514297e7f1169f6d37f18af376d9b42829 Author: Eike Rathke erack@redhat.com Date: Tue Jun 25 00:01:57 2019 +0200
USE_WPE_RENDERER=OFF
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 17ce7ff..da23850 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -199,6 +199,7 @@ pushd %{_target_platform} -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ + -DUSE_WPE_RENDERER=OFF \ .. popd
commit 78a062e34798f4a4d85ee6a8dacc88f7b7cf77d9 Author: Eike Rathke erack@redhat.com Date: Mon Jun 24 23:38:48 2019 +0200
Remove superfluous patch
diff --git a/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch b/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch deleted file mode 100644 index eea1eb8..0000000 --- a/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 5e4a5e27cac7b1bc082d11c97b65e81c86160b82 Mon Sep 17 00:00:00 2001 -Message-Id: 5e4a5e27cac7b1bc082d11c97b65e81c86160b82.1559833763.git.erack@redhat.com -From: "berto@igalia.com" - <berto@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> -Date: Mon, 3 Jun 2019 14:28:19 +0000 -Subject: [PATCH xserver] REGRESSION(r245567): [GTK][WPE] [2.25.1] - WebKitWebDriver gets installed as WebDriver - https://bugs.webkit.org/show_bug.cgi?id=198480 -MIME-Version: 1.0 -Content-Type: multipart/mixed; boundary="------------erAck-patch-parts" - -This is a multi-part message in MIME format. ---------------erAck-patch-parts -Content-Type: text/plain; charset=UTF-8; format=fixed -Content-Transfer-Encoding: 8bit - - -Patch by Carlos Garcia Campos cgarcia@igalia.com on 2019-06-03 -Reviewed by Michael Catanzaro. - -We are now using the WEBKIT_EXECUTABLE macro that uses target_OUTPUT_NAME variable, but we define -taget_Process_OUTPUT_NAME. - -* PlatformGTK.cmake: -* PlatformWPE.cmake: - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@246035 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WebDriver/ChangeLog | 13 +++++++++++++ - Source/WebDriver/PlatformGTK.cmake | 2 +- - Source/WebDriver/PlatformWPE.cmake | 2 +- - 3 files changed, 15 insertions(+), 2 deletions(-) - -erAck: omitted - Source/WebDriver/ChangeLog - Source/WebDriver/PlatformWPE.cmake - ---------------erAck-patch-parts -Content-Type: text/x-patch; name="0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch" -Content-Transfer-Encoding: 8bit -Content-Disposition: attachment; filename="0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch" - -diff --git a/Source/WebDriver/PlatformGTK.cmake b/Source/WebDriver/PlatformGTK.cmake -index 8bc9a44d28e..b786aceafc6 100644 ---- a/Source/WebDriver/PlatformGTK.cmake -+++ b/Source/WebDriver/PlatformGTK.cmake -@@ -1,4 +1,4 @@ --set(WebDriver_Process_OUTPUT_NAME WebKitWebDriver) -+set(WebDriver_OUTPUT_NAME WebKitWebDriver) - - add_definitions(-DLIBEXECDIR="${CMAKE_INSTALL_FULL_LIBEXECDIR}") - - ---------------erAck-patch-parts-- - -
commit 12d8c8215af7335ab53724599a56ca5e95ecb255 Author: Eike Rathke erack@redhat.com Date: Mon Jun 24 23:24:32 2019 +0200
Update to 2.25.2
diff --git a/.gitignore b/.gitignore index fe3e0ff..16da32a 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ /webkitgtk-2.24.1.tar.xz /webkitgtk-2.24.2.tar.xz /webkitgtk-2.25.1.tar.xz +/webkitgtk-2.25.2.tar.xz diff --git a/sources b/sources index 6f0965e..a399bf7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.25.1.tar.xz) = 372e5b1a818ce2585e7e9887db1034dd95adfd2151615ca3accb98d34354adb35cf582b6861a213a1fa2e06f123410e8dbd0646fda7324747aaeebf0ac1dd78c +SHA512 (webkitgtk-2.25.2.tar.xz) = ab64884b7ac280ad746d7d22a57c4f655e765be4b0d118dd7291780f2823e33e0ce8dbb02dfc42880d5ef6410b8acbb2978b47d9c43c86e9f539b3ee6dcdacc8 diff --git a/webkit-encodedmatchresult.patch b/webkit-encodedmatchresult.patch new file mode 100644 index 0000000..adc3a6b --- /dev/null +++ b/webkit-encodedmatchresult.patch @@ -0,0 +1,33 @@ +--- a/Source/JavaScriptCore/runtime/MatchResult.h ++++ a/Source/JavaScriptCore/runtime/MatchResult.h +@@ -31,10 +31,10 @@ + namespace JSC { + + struct MatchResult; +-#if CPU(ARM64) || CPU(X86_64) +-using EncodedMatchResult = MatchResult; +-#else ++#if CPU(ADDRESS32) + using EncodedMatchResult = uint64_t; ++#else ++using EncodedMatchResult = MatchResult; + #endif + + struct MatchResult { +@@ -50,7 +50,7 @@ struct MatchResult { + { + } + +-#if !(CPU(ARM64) || CPU(X86_64)) ++#if CPU(ADDRESS32) + ALWAYS_INLINE MatchResult(EncodedMatchResult match) + : start(bitwise_cast<MatchResult>(match).start) + , end(bitwise_cast<MatchResult>(match).end) +@@ -79,6 +79,7 @@ struct MatchResult { + size_t end; + }; + ++static_assert(sizeof(EncodedMatchResult) == 2 * sizeof(size_t), "https://bugs.webkit.org/show_bug.cgi?id=198518#c11"); + static_assert(sizeof(MatchResult) == sizeof(EncodedMatchResult), "Match result and EncodedMatchResult should be the same size"); + + } // namespace JSC diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 3018878..17ce7ff 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.25.1 +Version: 2.25.2 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -21,8 +21,8 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch -# temporary in 2.25.1 -Patch3: 0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch +# https://bugs.webkit.org/show_bug.cgi?id=198518 +Patch3: webkit-encodedmatchresult.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -281,6 +281,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Mon Jun 24 2019 Eike Rathke erack@redhat.com - 2.25.2-1 +- Update to 2.25.2 + * Thu Jun 06 2019 Eike Rathke erack@redhat.com - 2.25.1-1 - Update to 2.25.1
commit a23b7370eff744ba5ef19c66b20c86047eacae90 Author: Eike Rathke erack@redhat.com Date: Thu Jun 6 20:22:46 2019 +0200
Update to 2.25.1
diff --git a/.gitignore b/.gitignore index 2893425..fe3e0ff 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ /webkitgtk-2.24.0.tar.xz /webkitgtk-2.24.1.tar.xz /webkitgtk-2.24.2.tar.xz +/webkitgtk-2.25.1.tar.xz diff --git a/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch b/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch new file mode 100644 index 0000000..eea1eb8 --- /dev/null +++ b/0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch @@ -0,0 +1,56 @@ +From 5e4a5e27cac7b1bc082d11c97b65e81c86160b82 Mon Sep 17 00:00:00 2001 +Message-Id: 5e4a5e27cac7b1bc082d11c97b65e81c86160b82.1559833763.git.erack@redhat.com +From: "berto@igalia.com" + <berto@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> +Date: Mon, 3 Jun 2019 14:28:19 +0000 +Subject: [PATCH xserver] REGRESSION(r245567): [GTK][WPE] [2.25.1] + WebKitWebDriver gets installed as WebDriver + https://bugs.webkit.org/show_bug.cgi?id=198480 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="------------erAck-patch-parts" + +This is a multi-part message in MIME format. +--------------erAck-patch-parts +Content-Type: text/plain; charset=UTF-8; format=fixed +Content-Transfer-Encoding: 8bit + + +Patch by Carlos Garcia Campos cgarcia@igalia.com on 2019-06-03 +Reviewed by Michael Catanzaro. + +We are now using the WEBKIT_EXECUTABLE macro that uses target_OUTPUT_NAME variable, but we define +taget_Process_OUTPUT_NAME. + +* PlatformGTK.cmake: +* PlatformWPE.cmake: + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@246035 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebDriver/ChangeLog | 13 +++++++++++++ + Source/WebDriver/PlatformGTK.cmake | 2 +- + Source/WebDriver/PlatformWPE.cmake | 2 +- + 3 files changed, 15 insertions(+), 2 deletions(-) + +erAck: omitted + Source/WebDriver/ChangeLog + Source/WebDriver/PlatformWPE.cmake + +--------------erAck-patch-parts +Content-Type: text/x-patch; name="0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch" +Content-Transfer-Encoding: 8bit +Content-Disposition: attachment; filename="0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch" + +diff --git a/Source/WebDriver/PlatformGTK.cmake b/Source/WebDriver/PlatformGTK.cmake +index 8bc9a44d28e..b786aceafc6 100644 +--- a/Source/WebDriver/PlatformGTK.cmake ++++ b/Source/WebDriver/PlatformGTK.cmake +@@ -1,4 +1,4 @@ +-set(WebDriver_Process_OUTPUT_NAME WebKitWebDriver) ++set(WebDriver_OUTPUT_NAME WebKitWebDriver) + + add_definitions(-DLIBEXECDIR="${CMAKE_INSTALL_FULL_LIBEXECDIR}") + + +--------------erAck-patch-parts-- + + diff --git a/sources b/sources index aba7bd6..6f0965e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.24.2.tar.xz) = 8376167cfc4530886a2ac644ab84ff1021a63f6236d7be9eeb9e0ecade8bad5384b652dfe3720fdd31cddb39df6c935f859f1c0a59f42d7c71998992c4a9ffaa +SHA512 (webkitgtk-2.25.1.tar.xz) = 372e5b1a818ce2585e7e9887db1034dd95adfd2151615ca3accb98d34354adb35cf582b6861a213a1fa2e06f123410e8dbd0646fda7324747aaeebf0ac1dd78c diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 7b4ebe2..3018878 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.24.2 +Version: 2.25.1 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -21,6 +21,8 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch +# temporary in 2.25.1 +Patch3: 0001-REGRESSION-r245567-GTK-WPE-2.25.1-WebKitWebDriver-ge.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -279,6 +281,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Thu Jun 06 2019 Eike Rathke erack@redhat.com - 2.25.1-1 +- Update to 2.25.1 + * Fri May 17 2019 Eike Rathke erack@redhat.com - 2.24.2-1 - Update to 2.24.2
commit 41676d7c4d5acccf13689b3ec739382615bcfaf5 Author: Eike Rathke erack@redhat.com Date: Fri May 17 18:39:32 2019 +0200
Update to 2.24.2
diff --git a/.gitignore b/.gitignore index ce2779a..2893425 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ /webkitgtk-2.23.92.tar.xz /webkitgtk-2.24.0.tar.xz /webkitgtk-2.24.1.tar.xz +/webkitgtk-2.24.2.tar.xz diff --git a/sources b/sources index c45d786..aba7bd6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.24.1.tar.xz) = 65424f03b6baca53d64f0d633f53e2f7788c7fb65aa8b50b696418c140707c40351ec3cc0a8652806d75b9da98a04a8bb4203dd6ee4c51a3f93878964354c1ca +SHA512 (webkitgtk-2.24.2.tar.xz) = 8376167cfc4530886a2ac644ab84ff1021a63f6236d7be9eeb9e0ecade8bad5384b652dfe3720fdd31cddb39df6c935f859f1c0a59f42d7c71998992c4a9ffaa diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index bfd2676..7b4ebe2 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.24.1 +Version: 2.24.2 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -279,6 +279,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Fri May 17 2019 Eike Rathke erack@redhat.com - 2.24.2-1 +- Update to 2.24.2 + * Tue Apr 09 2019 Eike Rathke erack@redhat.com - 2.24.1-1 - Update to 2.24.1
commit 8d95205b3a71f2a16e93db30ef5c4e9a57421489 Author: Eike Rathke erack@redhat.com Date: Tue Apr 9 13:55:19 2019 +0200
Update to 2.24.1
diff --git a/.gitignore b/.gitignore index ed8e224..ce2779a 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /webkitgtk-2.23.91.tar.xz /webkitgtk-2.23.92.tar.xz /webkitgtk-2.24.0.tar.xz +/webkitgtk-2.24.1.tar.xz diff --git a/sources b/sources index 015082d..c45d786 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.24.0.tar.xz) = 7a1444b22fb59ecdd638344acf3525f1ef9204215a568e185f2ac7f4e43cf89c7be307be31d51ec46231bbf5e9470e48d56395873d7368aca8022ff5c4100dab +SHA512 (webkitgtk-2.24.1.tar.xz) = 65424f03b6baca53d64f0d633f53e2f7788c7fb65aa8b50b696418c140707c40351ec3cc0a8652806d75b9da98a04a8bb4203dd6ee4c51a3f93878964354c1ca diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index ba434d9..bfd2676 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.24.0 +Version: 2.24.1 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -279,6 +279,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Tue Apr 09 2019 Eike Rathke erack@redhat.com - 2.24.1-1 +- Update to 2.24.1 + * Wed Mar 13 2019 Tomas Popela tpopela@redhat.com - 2.24.0-1 - Update to 2.24.0
commit 3a8013b2cc5bddc23e2dd168bcd60b5af2b6da1c Author: Tomas Popela tpopela@redhat.com Date: Thu Mar 14 15:10:37 2019 +0100
Update comment for the shebang patch
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 37b77fa..ba434d9 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -19,7 +19,7 @@ Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch -# Explicitly specify python2 over python +# Don't use the shebang, but point straight to python 3 Patch2: no-env-shebang.patch
BuildRequires: bison
commit 1fd036c7d6b609a7a4acebaf9b4beeee498af637 Author: Tomas Popela tpopela@redhat.com Date: Wed Mar 13 16:46:48 2019 +0100
Update to 2.24.0
diff --git a/.gitignore b/.gitignore index 26cf9e1..ed8e224 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /webkitgtk-2.23.90.tar.xz /webkitgtk-2.23.91.tar.xz /webkitgtk-2.23.92.tar.xz +/webkitgtk-2.24.0.tar.xz diff --git a/sources b/sources index 5fdf120..015082d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.23.92.tar.xz) = 36d4a17a6cc7ac9a0c0266533913a5fef461c54b1687aabeb8caefc49dd4f878eb019372e20ca790fe7fd3e411a31de98af5e6604947cf6f4abb34c649807ec5 +SHA512 (webkitgtk-2.24.0.tar.xz) = 7a1444b22fb59ecdd638344acf3525f1ef9204215a568e185f2ac7f4e43cf89c7be307be31d51ec46231bbf5e9470e48d56395873d7368aca8022ff5c4100dab diff --git a/tools-gtkdoc-python3.patch b/tools-gtkdoc-python3.patch deleted file mode 100644 index 6f3e6d9..0000000 --- a/tools-gtkdoc-python3.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 37b0764480add2caa69f230f5f7066717589c1bb Mon Sep 17 00:00:00 2001 -From: Tomas Popela tpopela@redhat.com -Date: Fri, 8 Mar 2019 08:09:13 +0100 -Subject: [PATCH] [GTK] Make Tools/gtkdoc python3 compatible - https://bugs.webkit.org/show_bug.cgi?id=195359 - -Reviewed by Carlos Garcia Campos. - -* gtkdoc/generate-gtkdoc: -ConfigParser was reworked in Python 3.2 so we have adapt the code to -work with Python 2 and 3. -(get_gtkdoc_module_paths): -The iteritems() was removed in Python 3, so let's use items() that's -available in Python 2 and 3. -(get_generator_for_config): -* gtkdoc/gtkdoc.py: -(GTKDoc._run_command): -The sys.stdout.write() is expecting str in Python 3 and not bytes -(that are coming from stdout.encode()). Use sys.stdout.buffer.write() -for passing the bytes there. ---- - Tools/gtkdoc/generate-gtkdoc | 15 ++++++++++----- - Tools/gtkdoc/gtkdoc.py | 10 ++++++++-- - 2 files changed, 18 insertions(+), 7 deletions(-) - -diff --git a/Tools/gtkdoc/generate-gtkdoc b/Tools/gtkdoc/generate-gtkdoc -index f280818f0c1..37ccacc774c 100755 ---- a/Tools/gtkdoc/generate-gtkdoc -+++ b/Tools/gtkdoc/generate-gtkdoc -@@ -16,7 +16,6 @@ - # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - from __future__ import print_function --from ConfigParser import SafeConfigParser - - import argparse - import codecs -@@ -26,12 +25,18 @@ import logging - import os.path - import sys - -+if sys.version_info < (3, 2): -+ from ConfigParser import SafeConfigParser as ConfigParser -+else: -+ from configparser import ConfigParser -+ - top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) - sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'glib')) - import common - --sys.stdout = codecs.getwriter("utf-8")(sys.stdout) --sys.stderr = codecs.getwriter("utf-8")(sys.stderr) -+if sys.version_info.major == 2: -+ sys.stdout = codecs.getwriter("utf-8")(sys.stdout) -+ sys.stderr = codecs.getwriter("utf-8")(sys.stderr) - - def configure_logging(verbose): - level = logging.DEBUG if verbose else logging.INFO -@@ -57,7 +62,7 @@ def get_gtkdoc_module_paths(cross_reference_deps): - - paths = [] - html_dir = os.path.join('share', 'gtk-doc', 'html') -- for package, modules in dependent_packages.iteritems(): -+ for package, modules in dependent_packages.items(): - prefix = common.prefix_of_pkg_config_file(package) - if prefix is None: - continue -@@ -109,7 +114,7 @@ def get_generator_for_config(config_file, virtual_root, cross_reference_deps = [ - if not os.path.isfile(config_file): - return None - -- config = SafeConfigParser() -+ config = ConfigParser() - config.read(config_file) - module_name = config.sections()[0] - pkgconfig_file = config.get(module_name, 'pkgconfig_file') -diff --git a/Tools/gtkdoc/gtkdoc.py b/Tools/gtkdoc/gtkdoc.py -index 47968446cc5..81ee8cdccc8 100644 ---- a/Tools/gtkdoc/gtkdoc.py -+++ b/Tools/gtkdoc/gtkdoc.py -@@ -199,12 +199,18 @@ class GTKDoc(object): - if print_output: - if stdout: - try: -- sys.stdout.write(stdout.encode("utf-8")) -+ if sys.version_info.major == 2: -+ sys.stdout.write(stdout.encode("utf-8")) -+ else: -+ sys.stdout.buffer.write(stdout.encode("utf-8")) - except UnicodeDecodeError: - sys.stdout.write(stdout) - if stderr: - try: -- sys.stderr.write(stderr.encode("utf-8")) -+ if sys.version_info.major == 2: -+ sys.stderr.write(stderr.encode("utf-8")) -+ else: -+ sys.stderr.buffer.write(stderr.encode("utf-8")) - except UnicodeDecodeError: - sys.stderr.write(stderr) - --- -2.20.1 - diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 96531e8..37b77fa 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.23.92 +Version: 2.24.0 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -21,9 +21,6 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # Explicitly specify python2 over python Patch2: no-env-shebang.patch -# Fix generate-gtkdoc for python3 -# https://bugs.webkit.org/show_bug.cgi?id=195359 -Patch3: tools-gtkdoc-python3.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -282,6 +279,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Wed Mar 13 2019 Tomas Popela tpopela@redhat.com - 2.24.0-1 +- Update to 2.24.0 + * Fri Mar 08 2019 Tomas Popela tpopela@redhat.com - 2.23.92-1 - Update to 2.23.92 - Switch to python3
commit d7bf9b487d912cd92031f5095df88440e1d6916a Author: Tomas Popela tpopela@redhat.com Date: Wed Mar 13 08:33:54 2019 +0100
Remove GCC 9 workaround
As Jakub reverted it in GCC itself.
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 8985d48..96531e8 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -191,9 +191,6 @@ rm -rf Source/ThirdParty/qunit/ %global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='\"Fedora\"' %endif
-# Workaround until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89660 is fixed. -export CXXFLAGS="-Wno-redundant-move -Wno-pessimizing-move $CXXFLAGS %optflags" - mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \
commit b1f826e29f64404840db0e8c4eb37dc3c1da270c Author: Tomas Popela tpopela@redhat.com Date: Tue Mar 12 13:55:15 2019 +0100
Fix the build with gcc 9
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 96531e8..8985d48 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -191,6 +191,9 @@ rm -rf Source/ThirdParty/qunit/ %global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='\"Fedora\"' %endif
+# Workaround until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89660 is fixed. +export CXXFLAGS="-Wno-redundant-move -Wno-pessimizing-move $CXXFLAGS %optflags" + mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \
commit d4f3c5b3ca8060e223231377ce0b52f5505582a9 Author: Tomas Popela tpopela@redhat.com Date: Fri Mar 8 08:25:06 2019 +0100
Update to 2.23.92 Switch to python3
diff --git a/.gitignore b/.gitignore index f306ac9..26cf9e1 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ /webkitgtk-2.23.3.tar.xz /webkitgtk-2.23.90.tar.xz /webkitgtk-2.23.91.tar.xz +/webkitgtk-2.23.92.tar.xz diff --git a/no-env-shebang.patch b/no-env-shebang.patch new file mode 100644 index 0000000..28ce8cc --- /dev/null +++ b/no-env-shebang.patch @@ -0,0 +1,24 @@ +From 494e4abb7a5130376d3cdb41a5e3963650b8659f Mon Sep 17 00:00:00 2001 +From: rpm-build <rpm-build> +Date: Mon, 16 Jul 2018 06:34:53 +0200 +Subject: [PATCH] Fix the broken build due to python2 + +/builddir/build/BUILD/webkitgtk-2.23.3/Tools/gtkdoc/generate-gtkdoc +/usr/bin/env: 'python': No such file or directory +--- + Tools/gtk/generate-gtkdoc | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Tools/gtk/generate-gtkdoc b/Tools/gtk/generate-gtkdoc +index 45c23dfb..a3f82984 100755 +--- a/Tools/gtkdoc/generate-gtkdoc ++++ b/Tools/gtkdoc/generate-gtkdoc +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + # Copyright (C) 2011 Igalia S.L. + # + # This library is free software; you can redistribute it and/or +-- +2.17.1 + diff --git a/python2.patch b/python2.patch deleted file mode 100644 index ffa1467..0000000 --- a/python2.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 494e4abb7a5130376d3cdb41a5e3963650b8659f Mon Sep 17 00:00:00 2001 -From: rpm-build <rpm-build> -Date: Mon, 16 Jul 2018 06:34:53 +0200 -Subject: [PATCH] Fix the broken build due to python2 - -/builddir/build/BUILD/webkitgtk-2.23.3/Tools/gtkdoc/generate-gtkdoc -/usr/bin/env: 'python': No such file or directory ---- - Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl | 2 +- - Tools/gtk/generate-gtkdoc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl -index 4bb7037d..3071b45f 100755 ---- a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl -+++ b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl -@@ -155,7 +155,7 @@ my $inspectorLicense = <<'EOF'; - EOF - - my $perl = $^X; --my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python" : "python"; -+my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python2" : "python2"; - my $derivedSourcesDir = $ENV{'DERIVED_SOURCES_DIR'}; - my $scriptsRoot = File::Spec->catdir($ENV{'SRCROOT'}, 'Scripts'); - my $sharedScriptsRoot = File::Spec->catdir($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'}); -diff --git a/Tools/gtk/generate-gtkdoc b/Tools/gtk/generate-gtkdoc -index 45c23dfb..a3f82984 100755 ---- a/Tools/gtkdoc/generate-gtkdoc -+++ b/Tools/gtkdoc/generate-gtkdoc -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python2.7 - # Copyright (C) 2011 Igalia S.L. - # - # This library is free software; you can redistribute it and/or --- -2.17.1 - diff --git a/sources b/sources index 305caa4..5fdf120 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.23.91.tar.xz) = c8a4f08ede4df50728d8041f4743de3adc2487ea90e75d313cc8e9fda0a03b8eaa0de4f2c6b65ea50c03e9bd87ae29c66144a4e88789fb13ddc2b8de7b16555d +SHA512 (webkitgtk-2.23.92.tar.xz) = 36d4a17a6cc7ac9a0c0266533913a5fef461c54b1687aabeb8caefc49dd4f878eb019372e20ca790fe7fd3e411a31de98af5e6604947cf6f4abb34c649807ec5 diff --git a/tools-gtkdoc-python3.patch b/tools-gtkdoc-python3.patch new file mode 100644 index 0000000..6f3e6d9 --- /dev/null +++ b/tools-gtkdoc-python3.patch @@ -0,0 +1,104 @@ +From 37b0764480add2caa69f230f5f7066717589c1bb Mon Sep 17 00:00:00 2001 +From: Tomas Popela tpopela@redhat.com +Date: Fri, 8 Mar 2019 08:09:13 +0100 +Subject: [PATCH] [GTK] Make Tools/gtkdoc python3 compatible + https://bugs.webkit.org/show_bug.cgi?id=195359 + +Reviewed by Carlos Garcia Campos. + +* gtkdoc/generate-gtkdoc: +ConfigParser was reworked in Python 3.2 so we have adapt the code to +work with Python 2 and 3. +(get_gtkdoc_module_paths): +The iteritems() was removed in Python 3, so let's use items() that's +available in Python 2 and 3. +(get_generator_for_config): +* gtkdoc/gtkdoc.py: +(GTKDoc._run_command): +The sys.stdout.write() is expecting str in Python 3 and not bytes +(that are coming from stdout.encode()). Use sys.stdout.buffer.write() +for passing the bytes there. +--- + Tools/gtkdoc/generate-gtkdoc | 15 ++++++++++----- + Tools/gtkdoc/gtkdoc.py | 10 ++++++++-- + 2 files changed, 18 insertions(+), 7 deletions(-) + +diff --git a/Tools/gtkdoc/generate-gtkdoc b/Tools/gtkdoc/generate-gtkdoc +index f280818f0c1..37ccacc774c 100755 +--- a/Tools/gtkdoc/generate-gtkdoc ++++ b/Tools/gtkdoc/generate-gtkdoc +@@ -16,7 +16,6 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + from __future__ import print_function +-from ConfigParser import SafeConfigParser + + import argparse + import codecs +@@ -26,12 +25,18 @@ import logging + import os.path + import sys + ++if sys.version_info < (3, 2): ++ from ConfigParser import SafeConfigParser as ConfigParser ++else: ++ from configparser import ConfigParser ++ + top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) + sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'glib')) + import common + +-sys.stdout = codecs.getwriter("utf-8")(sys.stdout) +-sys.stderr = codecs.getwriter("utf-8")(sys.stderr) ++if sys.version_info.major == 2: ++ sys.stdout = codecs.getwriter("utf-8")(sys.stdout) ++ sys.stderr = codecs.getwriter("utf-8")(sys.stderr) + + def configure_logging(verbose): + level = logging.DEBUG if verbose else logging.INFO +@@ -57,7 +62,7 @@ def get_gtkdoc_module_paths(cross_reference_deps): + + paths = [] + html_dir = os.path.join('share', 'gtk-doc', 'html') +- for package, modules in dependent_packages.iteritems(): ++ for package, modules in dependent_packages.items(): + prefix = common.prefix_of_pkg_config_file(package) + if prefix is None: + continue +@@ -109,7 +114,7 @@ def get_generator_for_config(config_file, virtual_root, cross_reference_deps = [ + if not os.path.isfile(config_file): + return None + +- config = SafeConfigParser() ++ config = ConfigParser() + config.read(config_file) + module_name = config.sections()[0] + pkgconfig_file = config.get(module_name, 'pkgconfig_file') +diff --git a/Tools/gtkdoc/gtkdoc.py b/Tools/gtkdoc/gtkdoc.py +index 47968446cc5..81ee8cdccc8 100644 +--- a/Tools/gtkdoc/gtkdoc.py ++++ b/Tools/gtkdoc/gtkdoc.py +@@ -199,12 +199,18 @@ class GTKDoc(object): + if print_output: + if stdout: + try: +- sys.stdout.write(stdout.encode("utf-8")) ++ if sys.version_info.major == 2: ++ sys.stdout.write(stdout.encode("utf-8")) ++ else: ++ sys.stdout.buffer.write(stdout.encode("utf-8")) + except UnicodeDecodeError: + sys.stdout.write(stdout) + if stderr: + try: +- sys.stderr.write(stderr.encode("utf-8")) ++ if sys.version_info.major == 2: ++ sys.stderr.write(stderr.encode("utf-8")) ++ else: ++ sys.stderr.buffer.write(stderr.encode("utf-8")) + except UnicodeDecodeError: + sys.stderr.write(stderr) + +-- +2.20.1 + diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 8c0694b..96531e8 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3 -Version: 2.23.91 +Version: 2.23.92 Release: 1%{?dist} Summary: GTK Web content engine library
@@ -20,7 +20,10 @@ Patch0: user-agent-branding.patch # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch # Explicitly specify python2 over python -Patch2: python2.patch +Patch2: no-env-shebang.patch +# Fix generate-gtkdoc for python3 +# https://bugs.webkit.org/show_bug.cgi?id=195359 +Patch3: tools-gtkdoc-python3.patch
BuildRequires: bison BuildRequires: bubblewrap @@ -37,7 +40,7 @@ BuildRequires: ninja-build BuildRequires: perl-File-Copy-Recursive BuildRequires: perl-JSON-PP BuildRequires: perl-Switch -BuildRequires: python2 +BuildRequires: python3 BuildRequires: ruby BuildRequires: rubygems BuildRequires: xdg-dbus-proxy @@ -196,6 +199,7 @@ pushd %{_target_platform} -DCMAKE_BUILD_TYPE=Release \ -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ + -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ .. popd
@@ -278,6 +282,10 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog +* Fri Mar 08 2019 Tomas Popela tpopela@redhat.com - 2.23.92-1 +- Update to 2.23.92 +- Switch to python3 + * Wed Feb 20 2019 Eike Rathke erack@redhat.com - 2.23.91-1 - Update to 2.23.91
commit 40dd25fb6044fa5c6bf7f390399f07a1e8cd2620 Author: Tomas Popela tpopela@redhat.com Date: Mon Feb 25 09:36:35 2019 -0500
GTK was renamed as well
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index a4c3aac..8c0694b 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -8,7 +8,7 @@ Name: webkit2gtk3 Version: 2.23.91 Release: 1%{?dist} -Summary: GTK+ Web content engine library +Summary: GTK Web content engine library
License: LGPLv2 URL: http://www.webkitgtk.org/ @@ -98,7 +98,7 @@ Provides: bundled(angle) # Require the jsc subpackage Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
-# Recommend the support for the GTK+ 2 based NPAPI plugins +# Recommend the support for the GTK 2 based NPAPI plugins Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release}
# Filter out provides for private libraries @@ -106,9 +106,9 @@ Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release}
%description WebKitGTK is the port of the portable web rendering engine WebKit to the -GTK+ platform. +GTK platform.
-This package contains WebKit2 based WebKitGTK for GTK+ 3. +This package contains WebKit2 based WebKitGTK for GTK 3.
%package devel Summary: Development files for %{name} @@ -151,14 +151,14 @@ The %{name}-jsc-devel package contains libraries, build data, and header files for developing applications that use JavaScript engine from %{name}.
%package plugin-process-gtk2 -Summary: GTK+ 2 based NPAPI plugins support for %{name} +Summary: GTK 2 based NPAPI plugins support for %{name} Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Obsoletes: %{name} < 2.12.0-3 Obsoletes: webkitgtk4-plugin-process-gtk2 < %{version}-%{release} Provides: webkitgtk4-plugin-process-gtk2 = %{version}-%{release}
%description plugin-process-gtk2 -Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}. +Support for the GTK 2 based NPAPI plugins (such as Adobe Flash) for %{name}.
%prep %autosetup -p1 -n webkitgtk-%{version} -S git
commit 370955e30424dbd1b581cb053677ece016004890 Author: Tomas Popela tpopela@redhat.com Date: Thu Feb 21 12:39:12 2019 +0100
No need to explicitly set some cmake args
They are being handled automatically.
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 5921b26..a4c3aac 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -196,13 +196,6 @@ pushd %{_target_platform} -DCMAKE_BUILD_TYPE=Release \ -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ -%ifarch s390x %{power64} %{ix86} %{arm} - -DENABLE_JIT=OFF \ - -DENABLE_SAMPLING_PROFILER=OFF \ -%endif -%ifarch s390x %{power64} - -DUSE_SYSTEM_MALLOC=ON \ -%endif .. popd
commit ccaca898ce8a33ab7604da41f31781f7690c1844 Author: Tomas Popela tpopela@redhat.com Date: Thu Feb 21 07:07:36 2019 +0100
Reflect the upstream project rename
diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 7918361..5921b26 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -105,10 +105,10 @@ Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\.0/.*\.so$
%description -WebKitGTK+ is the port of the portable web rendering engine WebKit to the +WebKitGTK is the port of the portable web rendering engine WebKit to the GTK+ platform.
-This package contains WebKit2 based WebKitGTK+ for GTK+ 3. +This package contains WebKit2 based WebKitGTK for GTK+ 3.
%package devel Summary: Development files for %{name}
commit ba03f02a03b4e1163669fc42ddbb5536ba88059d Author: Tomas Popela tpopela@redhat.com Date: Thu Feb 21 07:05:46 2019 +0100
Remove an unused patch
diff --git a/cloop-big-endians.patch b/cloop-big-endians.patch deleted file mode 100644 index 7bb12df..0000000 --- a/cloop-big-endians.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp ---- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 2017-02-07 09:05:07.000000000 +0100 -+++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2017-06-16 10:34:57.859748036 +0200 -@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S - instructions[i + 5].u.watchpointSet = op.watchpointSet; - else if (op.structure) - instructions[i + 5].u.structure.set(vm, this, op.structure); -- instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); -+ -+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) -+ instructions[i + 6].u.operand = op.operand; -+ else -+ instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); -+ - break; - } - -@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S - op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident)); - } else if (op.structure) - instructions[i + 5].u.structure.set(vm, this, op.structure); -- instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); -+ -+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) -+ instructions[i + 6].u.operand = op.operand; -+ else -+ instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); - - break; - } diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 8a900c4..7918361 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -19,11 +19,8 @@ Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch -# https://bugs.webkit.org/show_bug.cgi?id=132333 -# Patch doesn't apply on 2.23.1, but keep around. -#Patch2: cloop-big-endians.patch # Explicitly specify python2 over python -Patch3: python2.patch +Patch2: python2.patch
BuildRequires: bison BuildRequires: bubblewrap
arch-excludes@lists.fedoraproject.org