Closed Bug 1207564 Opened 5 years ago Closed 5 years ago

Implement a synchronous, blocking command queue for Marionette

Categories

(Testing :: Marionette, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: ato, Unassigned)

Details

(Keywords: pi-marionette-server)

The Marionette server suffers from a complete lack of synchronous enforcement of the WebDriver protocol.

The server gladly executes any command you request it to, even if there an existing command is in progress.  There is an expectation that the local end blocks until it receives a response back before issuing a new command.

This usually isn’t a problem as long as the local end behaves and do not send two requests without reading its responses.  But sometimes situations akin to bug 1207125 occurs.
After discussion with dburns and jgriffin we decided it’s not a goal for the  Marionette server to be synchronous.  Instead we should code it in such a way that it can receive asynchronous requests (within reason) and instead mandate the clients to be synchronous if needed to fulfill the WebDriver expectations.

The curious incident of bug 1207125 will be solved if we move to a model where messages are sequenced.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.