To be honest, I still don’t fully understand how firefox handles all the layers between the OS and the javascript on the browser, anyway, I decided to take guess.
I did a little bit of research and narrowed down to two possible files that I would need to make changes to add the new properties(movementX/Y) to the MouseEvent object:


I declared the properties on the IDL file, and defined the getters on the cpp file.
After building….. it worked!! :)
There isn’t much happening though, since I’m just assigning the values of screenX/Y to movementX/Y, but it kind of gives a little bit of clarity on how firefox operates, because by modifying some c++ code it dynamically creates a javascript object and maps the communication between that object and the native OS APIs

It seems a bit unreal to think that we are implementing a new feature on firefox, looking 3 months back, the thought of modifying firefox never crossed my mind.