Firefox - start_drag fails in mutter
Firefox with native wayland backend sometimes fails to perform D&D, due to Firefox D&D architecture it breaks all subsequent D&D requests. Happens after one/two successful D&D operations in mutter/FEdora 30 (mutter-3.32.2-3.fc30.x86_64).
Wayland log: run.txt
Correct part from the log (first start_drag):
[973580.205] -> wl_data_device@18.start_drag(wl_data_source@83, wl_surface@41, wl_surface@81, 47828)
[973580.220] -> wl_pointer@8.set_cursor(47824, wl_surface@19, 3, 3)
[973580.234] -> wl_surface@19.attach(wl_buffer@68, 0, 0)
[973580.244] -> wl_surface@19.set_buffer_scale(2)
[973580.249] -> wl_surface@19.damage(0, 0, 24, 24)
[973580.261] -> wl_surface@19.commit()
[973584.871] -> wl_compositor@4.create_surface(new id wl_surface@85)
[973585.389] -> wl_surface@81.set_buffer_scale(2)
[973585.586] -> wl_surface@85.destroy()
[973585.776] -> wl_data_source@83.offer("application/x-moz-tabbrowser-tab")
[973585.788] -> wl_data_source@83.offer("text/x-moz-text-internal")
[973585.795] -> wl_data_source@83.offer("DELETE")
[973586.986] -> wl_surface@81.set_buffer_scale(2)
[973587.078] -> wl_shm@5.create_pool(new id wl_shm_pool@77, fd 44, 230400)
[973587.098] -> wl_shm_pool@77.create_buffer(new id wl_buffer@71, 0, 320, 180, 1280, 0)
[973587.348] -> wl_surface@81.attach(wl_buffer@71, 32, 32)
[973587.363] -> wl_surface@81.set_buffer_scale(2)
[973587.368] -> wl_surface@81.damage(0, 0, 160, 90)
[973587.381] -> wl_surface@81.set_input_region(nil)
[973587.400] -> wl_surface@81.frame(new id wl_callback@84)
[973587.408] -> wl_surface@81.commit()
[973587.714] wl_pointer@8.motion(31496439, 843.980469, 38.699219)
[973587.734] wl_pointer@8.frame()
[973587.792] wl_pointer@8.motion(31496463, 817.589844, 38.699219)
[973587.806] wl_pointer@8.frame()
[973587.816] wl_pointer@8.motion(31496479, 788.390625, 38.699219)
[973587.829] wl_pointer@8.frame()
[973594.432] wl_display@1.delete_id(85)
[973594.454] wl_pointer@8.leave(47829, wl_surface@41)
[973594.474] -> wl_pointer@8.set_cursor(47824, wl_surface@19, 3, 3)
[973594.491] -> wl_surface@19.attach(wl_buffer@68, 0, 0)
[973594.515] -> wl_surface@19.set_buffer_scale(2)
[973594.538] -> wl_surface@19.damage(0, 0, 24, 24)
[973594.551] -> wl_surface@19.commit()
[973594.557] wl_pointer@8.frame()
[973594.597] wl_data_source@83.target(nil)
[973594.604] wl_data_device@30.data_offer(new id wl_data_offer@1817093792)
[973594.630] wl_data_offer@4278190083.offer("application/x-moz-tabbrowser-tab")
[973594.637] wl_data_offer@4278190083.offer("text/x-moz-text-internal")
[973594.644] wl_data_source@83.action(0)
Broken part (the last start_drag at the log):
[982771.369] -> wl_data_device@18.start_drag(wl_data_source@72, wl_surface@41, wl_surface@77, 47840)
[982771.395] -> wl_pointer@8.set_cursor(47832, wl_surface@19, 12, 5)
[982771.409] -> wl_surface@19.attach(wl_buffer@80, 0, 0)
[982771.420] -> wl_surface@19.set_buffer_scale(2)
[982771.426] -> wl_surface@19.damage(0, 0, 24, 24)
[982771.438] -> wl_surface@19.commit()
[982776.039] -> wl_compositor@4.create_surface(new id wl_surface@71)
[982776.446] -> wl_surface@77.set_buffer_scale(2)
[982776.586] -> wl_surface@71.destroy()
[982776.780] -> wl_data_source@72.offer("application/x-moz-tabbrowser-tab")
[982776.792] -> wl_data_source@72.offer("text/x-moz-text-internal")
[982776.800] -> wl_data_source@72.offer("DELETE")
Reproduction steps:
- Fedora 30, run FF on Wayland
- try to D&D tabs
- repeat until cursor fails to grab the tab
Edited by Martin Stransky