[autotest] Fix ChromeDriver wrapper class

Close tabs opened by Telemetry for ChromeDriver to reuse remote debugging port.
Open a tab using Chrome remote debugging for ChromeDriver remote to work.

It requires a change in Telemetry to allow to close tabs[0]

BUG=chromium:355075
TEST=local test_that

Change-Id: Ib8a56e5cca09cfa5b5e740060c4e0ee5b4c16fed
Reviewed-on: https://chromium-review.googlesource.com/192133
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
diff --git a/client/common_lib/cros/chromedriver.py b/client/common_lib/cros/chromedriver.py
index 65bd0a0..4c8872c 100644
--- a/client/common_lib/cros/chromedriver.py
+++ b/client/common_lib/cros/chromedriver.py
@@ -45,10 +45,19 @@
                                      is_component=is_component,
                                      extra_browser_args=extra_chrome_flags)
         self._browser = self._chrome.browser
+        # Close all tabs owned and opened by Telemetry, as these cannot be
+        # transferred to ChromeDriver.
+        self._browser.tabs[0].Close()
 
         # Start ChromeDriver server
         self._server = chromedriver_server(CHROMEDRIVER_EXE_PATH)
 
+        # Open a new tab using Chrome remote debugging. ChromeDriver expects
+        # a tab opened for remote to work. Tabs opened using Telemetry will be
+        # owned by Telemetry, and will be inaccessible to ChromeDriver.
+        urllib2.urlopen('http://localhost:%i/json/new' %
+                        utils.get_chrome_remote_debugging_port())
+
         chromeOptions = {'debuggerAddress':
                          ('localhost:%d' %
                           utils.get_chrome_remote_debugging_port())}