Change:
Chromium coredumps on wayland/sway when trying to share a screen. Steps to reproduce the behavior: sway/wayland "" on "share screen" anywhere -Dump A selector for the screen to share should appear According chromium setting: According nixos configuration: Console output when the error occurs: Also this works fine with firefox-wayland and used to work with chromium. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result.
Could be related to as it also states
Did screen sharing work before / is that crash (segmentation fault) new? And do you know since which version it stopped working? So far screen sharing did never work reliably and there have been frequent regressions: (I've fixed it twice on my test setup but I've given up since then). We might want to close this issue in favor of to keep the discussion in one place.
For me, screenshare works on Chromium v99, and stopped working after update to v100
For me it also worked in the past without issues. This is new and this is chrome core-dumping. This is a different issue. If screen sharing did not work in the past, it just did not work. It did not cause an out of bounds read or crash of the browser. Please don't close this issue.
Sure, we can leave it open. We should mention it in the other issue though (I just did that) for better visibility. Now we need someone with time and motivation to handle this issue (analyzing the issue, searching for upstream issues, etc. and eventually someone needs to submit a fix).
Since this is NixOS and we have the boon of input-reproducibility and a binary cache, could you post: the nixpkgs commit you are on the nix store path of your chromium binary This will make it even easier for others to reproduce. You may also be able to get the stack trace with GDB using , use , make the segfault happen, and use in GDB.
nixpkgs: /nix/store/07346c7jv5wnwg30r5dvmlgqbk52hinz-chromium-100.0.4896.60/bin/chromium
Regarding gdb: ` How do I get gdb on the actual executable but keep the env vars of the shell script wrapper?
Now edit , replacing like this: Then terminate all chromium instances (to avoid joining existing instances), and run .
Thank you for the detailed instructions!
Looks like it should be fixed in m101
I tried to build chromiumDev(102) or chrimiumBeta (101) - but both failed with errors related to:
This patch may be useful: https://webrtc-
I'm a week old to nix, but trying to figure out a way to patch it. It seems it needs a special flag due to it's location:
building chrome is an undertaking not to be embarked on lightly. you can install the chrome dev or beta channel package. On my up-to-date, flakes-enabled nixos-unstable: The issue seems fixed there. There are builds of chromium upstream here: (under other), but I'm not sure if there is a nix derivation for them.
I've opened for a quick and dirty fix - the code isn't pretty but should do the job (I wish would support Base64 patches or even better: Gerrit and gitiles would support fetching patches using a sane format like basically any other web VCS frontend does...). Anyway, I'll check if the VM test passes (although that patch is so trivial that it should be unnecessary) and can merge the fix tomorrow.
I love the name and thanks a lot for your time & effort!

Discussion:
url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT"; sha256 = "0ic3hn65dimgfhakli1cyf9j3cxcqsf1qib706ihfhmlzxf7256l"; }; <ins> # https://webrtc-review.googlesource.com/c/src/+/255601 webrtcWaylandScreenshareCoredumpFix = fetchurl { # PipeWire capturer: check existence of cursor metadata name = "webrtc-wayland-screenshare-coredump-fix.patch"; url = "https://webrtc-review.googlesource.com/changes/src~255601/revisions/2/patch?download"; hash = "sha256-PHGwEoYhMa+ZL2ner10FwdGUWUxsVr+HWuZOAEugYDY="; }; </ins> # The additional attributes for creating derivations based on the chromium # source tree.

./patches/widevine-79.patch ]; <del> postPatch = '' </del> <ins> postPatch = optionalString (versionRange "100" "101") '' base64 --decode ${webrtcWaylandScreenshareCoredumpFix} | patch -p1 -d third_party/webrtc '' + '' </ins> # remove unused third-party for lib in ${toString gnSystemLibraries}; do if [ -d "third_party/$lib" ]; then