We have some mochitests that simulate drag and drop operations. This can be hazardous, at least on Windows, because if the widget code actually gets the directive to start an actual drag and drop operation, we'll enter this native loop here:
which puts us into this really weird state where Gecko events won't be processed properly until the drag and drop operation exits (which seems to only be possible via actual user input, because script doesn't appear to run when we're in this native loop).
Most tests get around this by using the EventUtils.synthesizeDrag* functions, which call stopPropagation() and preventDefault() on the drag events, which prevents the widget layer from entering the loop.
There are, however, other tests, that don't do this. dom/events/test/test_bug1264380.html is one of those tests.
Normally, that wouldn't be a problem, since in our CI on Windows, the mouse is positioned (I believe) in the very top-left of the screen, which up until now had been considered "outside of the window" to widget code, because that area is a moz-window-dragging region, which hittests to HT_CAPTION, which we were treating as "outside of the client area, and so therefore outside of the window". This meant that the native drag and drop loop would never be entered, because the widget code would go, "Oh, the mouse is outside of the browser window, so this doesn't make sense to start and drag and drop operation inside of it".
With bug 1534389, I'm making those moz-window-dragging regions behave as if they're still inside of the client area so that we can get things like :hover effects on them. This meant that in CI, test_bug1264380.html would enter the ::DoDragDrop native event loop, and the test (or the next test - there's a bit of a delay) would get stuck and eventually time out.
I propose we do the following:
Make test_bug1264380.html use the EventUtils.synthesizeDragStart helper to avoid the native drag and drop loop from being entered, and
Make it so that attempting to invoke the native drag and drop loop in automation causes us to crash.