Closed Bug 1565401 Opened 2 years ago Closed 1 year ago

[wayland] Bookmarks menu is no longer scrollable


(Core :: Widget: Gtk, defect, P2)

67 Branch



Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- wontfix
firefox67 --- unaffected
firefox68 --- wontfix
firefox69 --- wontfix
firefox70 --- wontfix
firefox71 --- fixed


(Reporter: yoasif, Assigned: jhorak)


(Blocks 1 open bug, Regressed 3 open bugs, Regression)


(Keywords: nightly-community, regression)


(2 files)

Steps to reproduce:

  1. Create enough bookmarks that it doesn't fit on a single screen (vertically in a list)
  2. click the bookmarks menu (menu bar)

What happens:

The bookmarks menu is missing arrows at the bottom of the menu and is not scrollable via mousewheel; additional bookmarks are not visible. This also applies to subfolders.

Expected result:

User should be able to access all bookmarks via the menu bar.

25:22.56 INFO: No more inbound revisions, bisection finished.
25:22.56 INFO: Last good revision: e8b8985aa697ef4dad6ed72957186c658669bc1d
25:22.56 INFO: First bad revision: 7d383b757d50494cb68ba7b1129d6457765a3314
25:22.56 INFO: Pushlog:

Has Regression Range: --- → yes
Has STR: --- → yes
Regressed by: 1546374

I just noticed this as well by chance, since I was asked to investigate some issues with bug 1539651.

Probably we still want to constraint the height to the screen height, or something of that sort...

Blocks: wayland
Summary: Bookmarks menu is no longer scrollable → [wayland] Bookmarks menu is no longer scrollable
Priority: -- → P3

This also affects menus in preferences - for example, the fonts dropdown. See screenshot.

Jan is going to look at it.

Assignee: nobody → jhorak
Priority: P3 → P2

By getting the right screen size we can shrink the popup menus which overflows
the screen size under Wayland. The ScreenManager does not help us, because we
can't get absolute window position, but we can use gdk_display_get_monitor_at_window
and gdk_monitor_get_workarea to get the correct screen rectangle.

Keywords: checkin-needed

Pushed by
return valid screen size on multimonitor setup under Wayland; r=stransky,NeilDeakin

Keywords: checkin-needed

Push with failures:

Failure log:

Back-out link:

[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/gcc/bin/g++ -o nsWindow.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DCAIRO_GFX '-DMOZ_APP_NAME="firefox"' -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/widget/gtk -I/builds/worker/workspace/build/src/obj-firefox/widget/gtk -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/layout/base -I/builds/worker/workspace/build/src/layout/generic -I/builds/worker/workspace/build/src/layout/xul -I/builds/worker/workspace/build/src/other-licenses/atk-1.0 -I/builds/worker/workspace/build/src/widget -I/builds/worker/workspace/build/src/widget/headless -I/builds/worker/workspace/build/src/widget/x11 -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wno-error=shadow -MD -MP -MF .deps/nsWindow.o.pp /builds/worker/workspace/build/src/widget/gtk/nsWindow.cpp
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - In file included from /builds/worker/workspace/build/src/widget/gtk/nsWindow.cpp:8:0:
[task 2019-10-16T15:37:20.309Z] 15:37:20 ERROR - /builds/worker/workspace/build/src/widget/gtk/nsWindow.h:401:20: error: 'virtual nsresult nsWindow::GetScreenRect(nsIWidget::LayoutDeviceIntRect*)' marked 'override', but does not override
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - virtual nsresult GetScreenRect(LayoutDeviceIntRect* aRect) override;
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - ^~~~~~~~~~~~~
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - /builds/worker/workspace/build/src/config/ recipe for target 'nsWindow.o' failed
[task 2019-10-16T15:37:20.309Z] 15:37:20 ERROR - make[4]: *** [nsWindow.o] Error 1
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/widget/gtk'
[task 2019-10-16T15:37:20.309Z] 15:37:20 INFO - make[4]: *** Waiting for unfinished jobs....
[task 2019-10-16T15:37:20.310Z] 15:37:20 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/widget'
[task 2019-10-16T15:37:20.310Z] 15:37:20 INFO - widget/Unified_cpp_widget0.o

Flags: needinfo?(jhorak)
Flags: needinfo?(jhorak)
Keywords: checkin-needed

Pushed by
return valid screen size on multimonitor setup under Wayland; r=stransky,NeilDeakin

Keywords: checkin-needed
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71
Regressions: 1589541
Regressions: 1589542
Regressions: 1589601
Regressions: 1589672
Regressions: 1589676
Regressions: 1491800

This seems to have regressed autoscroll on Wayland, bug 1589949.

Regressions: 1589949

I assume this fix can ride the regular trains, but feel free to nominate for ESR68 approval if this is needed there.

This also seems to have caused an issue with drop-down pop-ups not being drawn on Wayland when using multiple monitors: bug 1591936.

Regressions: 1591936
You need to log in before you can comment on or make changes to this bug.