Closed Bug 1605120 Opened 2 years ago Closed 2 years ago

[Wayland] Calculate and set opaque region for all wayland surfaces

Categories

(Core :: Widget: Gtk, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla73
Tracking Status
firefox73 --- fixed

People

(Reporter: stransky, Assigned: stransky)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

We need to calculate correct opaque regions for all out wl_surfaces, which are:

  • mShell - toplevel window with CSD decorations, opaque mask needs to be shifted by titlebar/CSD size, subtract transparent corners
  • mContainer - child window with subtracted transparent corners
  • mContainer wl_subsurface - child window with subtracted transparent corners

Calculate and set correct opaque regions for all wl_surfaces, which are:

  • mShell - toplevel window with CSD decorations, opaque mask needs to be shifted by titlebar/CSD size and subtracted transparent corners.
  • mContainer - child window with subtracted transparent corners.
  • mContainer wl_subsurface - child window with subtracted transparent corners.
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ad7cc9457eb1
[Wayland] Calculate and set opaque region for all wayland surfaces, r=heftig

Backed out changeset ad7cc9457eb1 (bug 1605120) for failing at nsWindow.cpp on a CLOSED TREE.

Backout link: https://hg.mozilla.org/integration/autoland/rev/ae6e80c381fdaa0dd7631a9dd430922a501d51db

**Push with failures:**https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=282432988&resultStatus=testfailed%2Cbusted%2Cexception&revision=cf6aaeed22e85e4df23ede5185023b3e7dba87f7

Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=282432988&repo=autoland&lineNumber=3528

Log snippet:
[task 2019-12-23T21:02:34.535Z] 21:02:34 INFO - TEST-START | browser/base/content/test/tabPrompts/browser_closeTabSpecificPanels.js
[task 2019-12-23T21:02:34.535Z] 21:02:34 INFO - GECKO(2250) | Chrome file doesn't exist: /builds/worker/workspace/build/tests/mochitest/browser/browser/base/content/test/tabPrompts/head.js
[task 2019-12-23T21:02:34.623Z] 21:02:34 INFO - GECKO(2250) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpQTXHni.mozrunner/runtests_leaks_tab_pid2408.log
[task 2019-12-23T21:02:34.659Z] 21:02:34 INFO - GECKO(2250) | [Child 2408, Main Thread] WARNING: No CID found when attempting to map contract ID: file /builds/worker/workspace/build/src/xpcom/components/nsComponentManager.cpp, line 721
[task 2019-12-23T21:02:34.775Z] 21:02:34 INFO - GECKO(2250) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpQTXHni.mozrunner/runtests_leaks_tab_pid2418.log
[task 2019-12-23T21:02:34.803Z] 21:02:34 INFO - GECKO(2250) | [Child 2418, Main Thread] WARNING: No CID found when attempting to map contract ID: file /builds/worker/workspace/build/src/xpcom/components/nsComponentManager.cpp, line 721
[task 2019-12-23T21:02:34.844Z] 21:02:34 INFO - GECKO(2250) | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2019-12-23T21:02:34.974Z] 21:02:34 INFO - GECKO(2250) | Assertion failure: gdk_window_get_window_type(window) == GDK_WINDOW_TOPLEVEL, at /builds/worker/workspace/build/src/widget/gtk/nsWindow.cpp:4911
[task 2019-12-23T21:02:58.401Z] 21:02:58 INFO - GECKO(2250) | #01: nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) [gfx/src/nsRegion.h:478]
[task 2019-12-23T21:02:58.401Z] 21:02:58 INFO -

Flags: needinfo?(stransky)
Pushed by nbeleuzu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c96194fe9f07
[Wayland] Calculate and set opaque region for all wayland surfaces, r=heftig
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73
Regressions: 1606776
Duplicate of this bug: 1591489
Regressions: 1610202

This seems to be the cause of bug 1610202. In short, if I switch between Firefox windows while playing a video on YouTube, various stuff like hit-testing stops working properly. For example, the seek bar previews no longer show, seeking gets hard because I need to be on some Y coordinate and full screen behaves weirdly.

Running on Arch Linux / Gnome on Wayland.

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