
Improve safaridriver launch sequence as follows: - Fix retry: the previous version would call `_startDriverProcess` recursively from within a listener to the stderr output. But by then the outer `_startDriverProcess` call would have completed its future, so the retry mechanism would kick in while tests are already running. - Wait for `safaridriver` server process to start listening and responding to WebDriver commands (using `/status` as the smoke test). - Smoke-test the driver session by attempting to list all windows (`WebDriver.windows`). - When `safaridriver` fails to pass all of the above checks, both close the session and kill the `safaridriver` process. Killing the process alone leaves Safari windows open. Closing the session alone leaves `safaridriver` processes open. - When tests are finished use `quit()` instead of `window.close()`, because the latter does not close the session.
Flutter Engine
Setting up the Engine development environment
See here
gclient
bootstrap
Flutter engine uses gclient
to manage dependencies.
If you've already cloned the flutter repository: