{"action":"created","issue":{"url":"https://api.github.com/repos/swaywm/wlroots/issues/1041","repository_url":"https://api.github.com/repos/swaywm/wlroots","labels_url":"https://api.github.com/repos/swaywm/wlroots/issues/1041/labels{/name}","comments_url":"https://api.github.com/repos/swaywm/wlroots/issues/1041/comments","events_url":"https://api.github.com/repos/swaywm/wlroots/issues/1041/events","html_url":"https://github.com/swaywm/wlroots/issues/1041","id":329264454,"node_id":"MDU6SXNzdWUzMjkyNjQ0NTQ=","number":1041,"title":"Firefox-wayland crash when selection is available","user":{"login":"martinetd","id":1729331,"node_id":"MDQ6VXNlcjE3MjkzMzE=","avatar_url":"https://avatars0.githubusercontent.com/u/1729331?v=4","gravatar_id":"","url":"https://api.github.com/users/martinetd","html_url":"https://github.com/martinetd","followers_url":"https://api.github.com/users/martinetd/followers","following_url":"https://api.github.com/users/martinetd/following{/other_user}","gists_url":"https://api.github.com/users/martinetd/gists{/gist_id}","starred_url":"https://api.github.com/users/martinetd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinetd/subscriptions","organizations_url":"https://api.github.com/users/martinetd/orgs","repos_url":"https://api.github.com/users/martinetd/repos","events_url":"https://api.github.com/users/martinetd/events{/privacy}","received_events_url":"https://api.github.com/users/martinetd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-06-05T00:51:37Z","updated_at":"2018-06-05T05:38:14Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"I think I need help with this.\r\nHere's the logs on our (rootston) side, because we don't have the last `.selection()` event on FF side as it crashes:\r\n\r\n```\r\n[1404702.976]  -> gtk_primary_selection_device@25.data_offer(new id gtk_primary_selection_offer@4278190080)\r\n[1404703.009]  -> gtk_primary_selection_device@15.data_offer(new id gtk_primary_selection_offer@4278190080)\r\n[1404703.039]  -> gtk_primary_selection_offer@4278190080.offer(\"text/plain\")\r\n[1404703.064]  -> gtk_primary_selection_offer@4278190080.offer(\"text/plain;charset=utf-8\")\r\n[1404703.089]  -> gtk_primary_selection_device@25.selection(gtk_primary_selection_offer@4278190080)\r\n[1404703.113]  -> gtk_primary_selection_device@15.selection(gtk_primary_selection_offer@4278190080)\r\n```\r\n\r\nWhere both selection devices have been created on different wl_seat (logs on ff side this time)\r\n```\r\n[191882.862]  -> gtk_primary_selection_device_manager@10.get_device(new id gtk_primary_selection_device@15, wl_seat@13)\r\n[192201.245]  -> gtk_primary_selection_device_manager@22.get_device(new id gtk_primary_selection_device@25, wl_seat@23)\r\n```\r\n\r\ntbh even if it was a single seat it'd probably crash the app just the same to instanciate multiple device managers/selection devices and use them, so not sure we should focus on that part..\r\n\r\nSo apparently it's not OK to offer up the same selection to multiple devices.\r\nEither we need to instanciate a different `gtk_primary_selection_offer` and offer one each, or we need to pick our poison and give it to one.\r\nweston doesn't seem to have a complete selection implementation?\r\ngnome-shell only gives it to one, presumably the latest device manager instanciated.\r\n\r\nWhat shall we do?"},"comment":{"url":"https://api.github.com/repos/swaywm/wlroots/issues/comments/394587706","html_url":"https://github.com/swaywm/wlroots/issues/1041#issuecomment-394587706","issue_url":"https://api.github.com/repos/swaywm/wlroots/issues/1041","id":394587706,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NDU4NzcwNg==","user":{"login":"Ongy","id":4039331,"node_id":"MDQ6VXNlcjQwMzkzMzE=","avatar_url":"https://avatars0.githubusercontent.com/u/4039331?v=4","gravatar_id":"","url":"https://api.github.com/users/Ongy","html_url":"https://github.com/Ongy","followers_url":"https://api.github.com/users/Ongy/followers","following_url":"https://api.github.com/users/Ongy/following{/other_user}","gists_url":"https://api.github.com/users/Ongy/gists{/gist_id}","starred_url":"https://api.github.com/users/Ongy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ongy/subscriptions","organizations_url":"https://api.github.com/users/Ongy/orgs","repos_url":"https://api.github.com/users/Ongy/repos","events_url":"https://api.github.com/users/Ongy/events{/privacy}","received_events_url":"https://api.github.com/users/Ongy/received_events","type":"User","site_admin":false},"created_at":"2018-06-05T05:38:14Z","updated_at":"2018-06-05T05:38:14Z","author_association":"CONTRIBUTOR","body":"Ok, yea. new_id stuff should probably have unique ids.\r\n\r\n`new_device` is a request, so it should be client generated id, while `data_offer` is server  provided. So it probably creates to wl_proxy on the client side and that somehow crashes things.\r\n\r\nThen I correct myself and say we should probably create two offers instead."}}
{"actor":{"display_login":"Ongy"}}