tast-tests: Make chrome.Chrome use WebSocket for browser.

Update chrome.Chrome to use a WebSocket connection to
communicate with the browser instead of using the Chrome
DevTools Protocol's HTTP endpoints. There was formerly a
weird mix where chrome.Conn used WebSocket connections to
manipulate pages (including closing them), but chrome.Chrome
used HTTP to create and enumerate targets.

I'm not too optimistic that this will fix the "websocket:
bad handshake" errors that seem occasionally happen when
creating a new target after closing another target, since it
now seems like the issue is that the target isn't even being
created. But this at least makes the code more consistent
and increases what we can try in the future (e.g. watching
for targets being created or destroyed).

I'm also removing Chrome.reconnect, which doesn't appear to
help at all, and fixing some OOBE connection leaks that I
just noticed.

BUG=chromium:925703
TEST=ran tests using chrome.LoggedIn precondition in a loop
     for hours

Change-Id: I31a64f6d7a5baa8293ac0d903933de6a017ea174
Reviewed-on: https://chromium-review.googlesource.com/1510713
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
3 files changed
tree: 1f37dbce783f3feb0b8cf3485757982403ccce76
  1. .gitignore
  2. OWNERS
  3. PRESUBMIT.cfg
  4. README.md
  5. src/
  6. tools/
README.md

Tast (tests)

This repository contains integration tests that are run by Tast.

Directory structure

  • src/chromiumos/tast/
    • local/ - Code related to local (i.e. on-device or “client”) tests.
      • bundles/ - Local test bundles.
        • cros/ - The “cros” local test bundle, containing standard Chrome OS tests. Tests are packaged by category.
      • ... - Packages used only by local tests.
    • remote/ - Code related to remote (i.e. off-device or “server”) tests.
      • bundles/ - Remote test bundles.
        • cros/ - The “cros” remote test bundle, containing standard Chrome OS tests. Tests are packaged by category.
      • ... - Packages used only by remote tests.

Shared code, the main tast executable, the local_test_runner and remote_test_runner executables responsible for running bundles, and documentation are located in the tast repository.

GoDoc