> I understand how it works but this change affects the entire test suite whereas the other changes to the keyboard class only affects tests that use the keyboard. We need to run this on the entire suite - Jenkins and Travis to be sure that this doesn't affect other tests. Especially on the device/combinations with the least latency.

Yes, as I already mentioned it would be good to see a full suite run with this PR.

> Any point where Marionette is not behaving perfectly synchronously might be tripped up by this and any point where a wait is not working perfectly for the UI to be ready for the test to continue. If you think then that Marionette or the wait itself should be fixed to make it perfect then you need to consider just how time consuming that process is to fix.

I'm not sure I understand your point here, sorry... When the WebDriverWait is ported to Marionette, this will likely behave in the same way.

> This doesn't make the equivalent change to the wait methods in the gaia_test.py either.

Ah, good point. How much are these used? I'm happy to make the same changes here but if we're moving away from them anyway then we can probably skip this to limit the files affected by this change.