Bug 1561879 Comment 2 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

This looks a IPC issue.

As I commented at https://bugzilla.mozilla.org/show_bug.cgi?id=1561522#c2 coordinates of the `dragend` event is initialized with `nsBaseDragService::SetDragEndPoint()`.
https://searchfox.org/mozilla-central/rev/06bd14ced96f25ff1dbd5352cb985fc0fa12a64e/widget/nsBaseDragService.h#61
On macOS the method is called on three locations below:
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/dom/ipc/ContentChild.cpp#3319
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5385
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5389
So I tried to investigate when the invalid point [0, 0] is given, with inserting `MOZ_LOG` to before those lines. And after logging I've realized that both callers in `nsChildView.mm` set correct point but only `ContentChild::RecvEndDragSession()` sets the invalid point [0, 0]. I'm not well about IPC but due to some reasons coordinates information looks lost on IPC communication.

As the next step how should I research? Any advice?
This looks an IPC issue.

As I commented at https://bugzilla.mozilla.org/show_bug.cgi?id=1561522#c2 coordinates of the `dragend` event is initialized with `nsBaseDragService::SetDragEndPoint()`.
https://searchfox.org/mozilla-central/rev/06bd14ced96f25ff1dbd5352cb985fc0fa12a64e/widget/nsBaseDragService.h#61
On macOS the method is called on three locations below:
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/dom/ipc/ContentChild.cpp#3319
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5385
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5389
So I tried to investigate when the invalid point [0, 0] is given, with inserting `MOZ_LOG` before those lines. And after logging I've realized that both callers in `nsChildView.mm` set correct point but only `ContentChild::RecvEndDragSession()` sets the invalid point [0, 0]. I'm not well about IPC but due to some reasons coordinates information looks lost on IPC communication.

As the next step how should I research? Any advice?
This looks an IPC issue.

As I commented at https://bugzilla.mozilla.org/show_bug.cgi?id=1561522#c2 coordinates of the `dragend` event is initialized with `nsBaseDragService::SetDragEndPoint()`.
https://searchfox.org/mozilla-central/rev/06bd14ced96f25ff1dbd5352cb985fc0fa12a64e/widget/nsBaseDragService.h#61
On macOS the method is called on three locations below:
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/dom/ipc/ContentChild.cpp#3319
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5385
https://searchfox.org/mozilla-central/rev/867cbb1a2b232398616e1aa42f913f37c6cb38e4/widget/cocoa/nsChildView.mm#5389
So I tried to investigate when the invalid point [0, 0] is given, with inserting `MOZ_LOG` before those lines. And after logging I've realized that both callers in `nsChildView.mm` set correct point but only `ContentChild::RecvEndDragSession()` sets the invalid point [0, 0]. I'm not well about IPC but due to some reasons coordinates information looks lost while IPC.

As the next step how should I research? Any advice?

Back to Bug 1561879 Comment 2