Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: tools/telemetry/telemetry/core/backends/webdriver/webdriver_tab_list_backend.py

Issue 20672002: [telemetry] Add a webdriver backend with support for IE. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix errors after rebase. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from telemetry.core.backends.webdriver import webdriver_tab_backend
6
7 class WebDriverTabListBackend(object):
8 def __init__(self, browser_backend):
9 self._browser_backend = browser_backend
10 # Stores the window handles.
11 self._tab_list = []
12
13 def Init(self):
14 self._UpdateTabList()
15
16 def New(self, timeout=None):
17 # Webdriver API doesn't support tab controlling.
18 raise NotImplementedError()
19
20 def __iter__(self):
21 self._UpdateTabList()
22 return self._tab_list.__iter__()
23
24 def __len__(self):
25 self._UpdateTabList()
26 return len(self._tab_list)
27
28 def __getitem__(self, index):
29 self._UpdateTabList()
30 if len(self._tab_list) <= index:
31 raise IndexError('list index out of range')
32 return self._tab_list[index]
33
34 def _UpdateTabList(self):
35 window_handles = self._browser_backend.driver.window_handles
36 old_tab_list = self._tab_list
37 self._tab_list = []
38 for window_handle in window_handles:
39 tab = None
40 for old_tab in old_tab_list:
41 if old_tab.window_handle == window_handle:
42 tab = old_tab
43 break
44 else:
45 tab = webdriver_tab_backend.WebDriverTabBackend(
46 self._browser_backend, window_handle)
47 self._tab_list.append(tab)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698