diff -r 7481543bab31 -r f9b2d408b7ef mozilla-bmo1744896.patch --- a/mozilla-bmo1744896.patch Sat Jan 08 10:41:19 2022 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -diff -up firefox-95.0.2/widget/gtk/nsWindow.cpp.1744896 firefox-95.0.2/widget/gtk/nsWindow.cpp ---- firefox-95.0.2/widget/gtk/nsWindow.cpp.1744896 2021-12-23 11:54:31.522539340 +0100 -+++ firefox-95.0.2/widget/gtk/nsWindow.cpp 2021-12-23 11:55:56.070270174 +0100 -@@ -5765,6 +5765,17 @@ nsresult nsWindow::Create(nsIWidget* aPa - } - } - #endif -+#ifdef MOZ_WAYLAND -+ // Initialize the window specific VsyncSource early in order to avoid races -+ // with BrowserParent::UpdateVsyncParentVsyncSource(). -+ // Only use for toplevel windows for now, see bug 1619246. -+ if (GdkIsWaylandDisplay() && -+ StaticPrefs::widget_wayland_vsync_enabled_AtStartup() && -+ mWindowType == eWindowType_toplevel) { -+ mWaylandVsyncSource = new WaylandVsyncSource(); -+ MOZ_RELEASE_ASSERT(mWaylandVsyncSource); -+ } -+#endif - - // We create input contexts for all containers, except for - // toplevel popup windows -@@ -6077,19 +6088,12 @@ void nsWindow::ResumeCompositorFromCompo - - void nsWindow::WaylandStartVsync() { - #ifdef MOZ_WAYLAND -- // only use for toplevel windows for now - see bug 1619246 -- if (!GdkIsWaylandDisplay() || -- !StaticPrefs::widget_wayland_vsync_enabled_AtStartup() || -- mWindowType != eWindowType_toplevel) { -+ if (!mWaylandVsyncSource) { - return; - } - - LOG("nsWindow::WaylandStartVsync() [%p]\n", (void*)this); - -- if (!mWaylandVsyncSource) { -- mWaylandVsyncSource = new WaylandVsyncSource(); -- } -- - WaylandVsyncSource::WaylandDisplay& display = - static_cast( - mWaylandVsyncSource->GetGlobalDisplay()); -