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

Side by Side Diff: tools/telemetry/telemetry/core/webdriver/webdriver_browser_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: 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 from telemetry.core import util
5 from telemetry.core.webdriver import webdriver_tab_list_backend
6
7 class WebDriverBrowserBackend(object):
8 """The webdriver-based backend for controlling a locally-executed browser
9 instance, on Linux, Mac, and Windows.
10 """
11
12 WEBPAGEREPLAY_HOST = '127.0.0.1'
13
14 def __init__(self, webdriver, supports_extensions, options):
15 self.browser_type = options.browser_type
16 self._driver = webdriver
17 self._supports_extensions = supports_extensions
tonyg 2013/07/26 18:21:07 Hmm... I wonder whether this needs to be False.
chrisgao (Use stgao instead) 2013/07/30 02:06:49 I suggest we leave it as it is. Because Firefox do
18 self.options = options
19 self._browser = None
20 self.webpagereplay_local_http_port = 80
21 self.webpagereplay_local_https_port = 443
22 self.webpagereplay_remote_http_port = self.webpagereplay_local_http_port
23 self.webpagereplay_remote_https_port = self.webpagereplay_local_https_port
24 self._tab_list_backend = \
25 webdriver_tab_list_backend.WebDriverTabListBackend(self)
26
27 def SetBrowser(self, browser):
28 self._browser = browser
29 self._tab_list_backend.Init()
30
31 @property
32 def driver(self):
33 return self._driver
34
35 @property
36 def browser(self):
37 return self._browser
38
39 @property
40 def is_content_shell(self):
41 return False
42
43 @property
44 def supports_extensions(self):
45 return self._supports_extensions
46
47 @property
48 def tab_list_backend(self):
49 return self._tab_list_backend
50
51 @property
52 def supports_tab_control(self):
tonyg 2013/07/26 18:21:07 Is there any hope for supporting this with web dri
chrisgao (Use stgao instead) 2013/07/30 02:06:49 Base on webdriver protocol API, only closing a tab
53 return False
54
55 @property
56 def wpr_mode(self):
57 return self.options.wpr_mode
58
59 @property
60 def supports_tracing(self):
61 return False
62
63 def StartTracing(self, _):
64 raise NotImplementedError()
65
66 def StopTracing(self):
67 raise NotImplementedError()
68
69 def GetTraceResultAndReset(self):
70 raise NotImplementedError()
71
72 def GetProcessName(self, _):
73 raise NotImplementedError()
74
75 def GetRemotePort(self, _):
76 return util.GetAvailableLocalPort()
77
78 def Close(self):
79 self._driver.quit()
80 self._driver = None
81
82 def CreateForwarder(self, *port_pairs):
83 class DoNothingForwarder(object):
tonyg 2013/07/26 18:21:07 Can this code be shared with browser_backend.py?
chrisgao (Use stgao instead) 2013/07/30 02:06:49 Done. I think it is not a good idea for webdriver
84 def __init__(self, *port_pairs):
85 self._host_port = port_pairs[0].local_port
86
87 @property
88 def url(self):
89 assert self._host_port
90 return 'http://127.0.0.1:%i' % self._host_port
91
92 def Close(self):
93 self._host_port = None
94
95 return DoNothingForwarder(*port_pairs)
96
97 def IsBrowserRunning(self):
98 # Assume the browser is running if not explicitly closed.
99 return self._driver is not None
100
101 def GetStandardOutput(self):
102 return ''
103
104 def __del__(self):
105 self.Close()
106
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698