diff -up firefox-89.0/dom/base/test/browser_multiple_popups.js.mochitest-wayland-workaround firefox-89.0/dom/base/test/browser_multiple_popups.js --- firefox-89.0/dom/base/test/browser_multiple_popups.js.mochitest-wayland-workaround 2021-05-27 22:29:44.000000000 +0200 +++ firefox-89.0/dom/base/test/browser_multiple_popups.js 2021-06-01 10:02:59.648432325 +0200 @@ -265,6 +265,7 @@ add_task(async _ => { info("All opened from chrome."); await withTestPage(2, { chrome: true }, async function(browser) { await BrowserTestUtils.synthesizeMouseAtCenter("#openPopups", {}, browser); + await BrowserTestUtils.synthesizeMouseAtCenter("#openPopups", {}, browser); }); }); diff -up firefox-89.0/dom/ipc/BrowserChild.cpp.mochitest-wayland-workaround firefox-89.0/dom/ipc/BrowserChild.cpp --- firefox-89.0/dom/ipc/BrowserChild.cpp.mochitest-wayland-workaround 2021-05-27 22:29:44.000000000 +0200 +++ firefox-89.0/dom/ipc/BrowserChild.cpp 2021-06-01 10:02:59.649432346 +0200 @@ -457,7 +457,7 @@ nsresult BrowserChild::Init(mozIDOMWindo } mPuppetWidget->InfallibleCreate(nullptr, nullptr, // no parents - LayoutDeviceIntRect(0, 0, 0, 0), + LayoutDeviceIntRect(0, 0, 1000, 1000), nullptr); // HandleWidgetEvent mWebBrowser = nsWebBrowser::Create(this, mPuppetWidget, mBrowsingContext, diff -up firefox-89.0/toolkit/components/browser/nsWebBrowser.cpp.mochitest-wayland-workaround firefox-89.0/toolkit/components/browser/nsWebBrowser.cpp --- firefox-89.0/toolkit/components/browser/nsWebBrowser.cpp.mochitest-wayland-workaround 2021-05-27 22:29:54.000000000 +0200 +++ firefox-89.0/toolkit/components/browser/nsWebBrowser.cpp 2021-06-01 10:02:59.649432346 +0200 @@ -150,7 +150,8 @@ already_AddRefed nsWebBrow // handler that always gets called (even for subframes) for any bubbling // event. - nsresult rv = docShell->InitWindow(nullptr, docShellParentWidget, 0, 0, 0, 0); + nsresult rv = + docShell->InitWindow(nullptr, docShellParentWidget, 0, 0, 1000, 1000); if (NS_WARN_IF(NS_FAILED(rv))) { return nullptr; } diff -up firefox-89.0/widget/gtk/nsWindow.cpp.mochitest-wayland-workaround firefox-89.0/widget/gtk/nsWindow.cpp --- firefox-89.0/widget/gtk/nsWindow.cpp.mochitest-wayland-workaround 2021-06-01 10:02:59.644432243 +0200 +++ firefox-89.0/widget/gtk/nsWindow.cpp 2021-06-01 10:04:28.715262874 +0200 @@ -7962,6 +7973,8 @@ nsresult nsWindow::SynthesizeNativeMouse nsIObserver* aObserver) { AutoObserverNotifier notifier(aObserver, "mouseevent"); + LOG(("nsWindow::SynthesizeNativeMouseEvent [%p]\n", (void*)this)); + if (!mGdkWindow) { return NS_OK; } @@ -7976,6 +7989,12 @@ nsresult nsWindow::SynthesizeNativeMouse switch (aNativeMessage) { case NativeMouseMessage::ButtonDown: case NativeMouseMessage::ButtonUp: { + if (aNativeMessage == NativeMouseMessage::ButtonDown) { + LOG((" NativeMouseMessage::ButtonDown()\n")); + } else { + LOG((" NativeMouseMessage::ButtonUp()\n")); + } + GdkEvent event; memset(&event, 0, sizeof(GdkEvent)); event.type = aNativeMessage == NativeMouseMessage::ButtonDown