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

Side by Side Diff: tools/telemetry/telemetry/core/browser.py

Issue 12294002: Revert 182991 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2012 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 import os
5
6 from telemetry.core import browser_credentials
7 from telemetry.core import extension_dict
8 from telemetry.core import tab_list
9 from telemetry.core import temporary_http_server
10 from telemetry.core import wpr_modes
11 from telemetry.core import wpr_server
12 from telemetry.core.chrome import browser_backend
13
14 class Browser(object):
15 """A running browser instance that can be controlled in a limited way.
16
17 To create a browser instance, use browser_finder.FindBrowser.
18
19 Be sure to clean up after yourself by calling Close() when you are done with
20 the browser. Or better yet:
21 browser_to_create = FindBrowser(options)
22 with browser_to_create.Create() as browser:
23 ... do all your operations on browser here
24 """
25 def __init__(self, backend, platform):
26 self._browser_backend = backend
27 self._http_server = None
28 self._wpr_server = None
29 self._platform = platform
30 self._tabs = tab_list.TabList(backend.tab_list_backend)
31 self._extensions = None
32 if backend.supports_extensions:
33 self._extensions = extension_dict.ExtensionDict(
34 backend.extension_dict_backend)
35 self.credentials = browser_credentials.BrowserCredentials()
36
37 def __enter__(self):
38 return self
39
40 def __exit__(self, *args):
41 self.Close()
42
43 @property
44 def platform(self):
45 return self._platform
46
47 @property
48 def browser_type(self):
49 return self._browser_backend.browser_type
50
51 @property
52 def is_content_shell(self):
53 """Returns whether this browser is a content shell, only."""
54 return self._browser_backend.is_content_shell
55
56 @property
57 def supports_extensions(self):
58 return self._browser_backend.supports_extensions
59
60 @property
61 def supports_tab_control(self):
62 return self._browser_backend.supports_tab_control
63
64 @property
65 def tabs(self):
66 return self._tabs
67
68 @property
69 def extensions(self):
70 """Returns the extension dictionary if it exists."""
71 if not self.supports_extensions:
72 raise browser_backend.ExtensionsNotSupportedException(
73 'Extensions not supported')
74 return self._extensions
75
76 @property
77 def supports_tracing(self):
78 return self._browser_backend.supports_tracing
79
80 def StartTracing(self):
81 return self._browser_backend.StartTracing()
82
83 def StopTracing(self):
84 return self._browser_backend.StopTracing()
85
86 def GetTraceResultAndReset(self):
87 """Returns the result of the trace, as TraceResult object."""
88 return self._browser_backend.GetTraceResultAndReset()
89
90 def Close(self):
91 """Closes this browser."""
92 if self._wpr_server:
93 self._wpr_server.Close()
94 self._wpr_server = None
95
96 if self._http_server:
97 self._http_server.Close()
98 self._http_server = None
99
100 self._browser_backend.Close()
101 self.credentials = None
102
103 @property
104 def http_server(self):
105 return self._http_server
106
107 def SetHTTPServerDirectory(self, path):
108 if path:
109 abs_path = os.path.abspath(path)
110 if self._http_server and self._http_server.path == path:
111 return
112 else:
113 abs_path = None
114
115 if self._http_server:
116 self._http_server.Close()
117 self._http_server = None
118
119 if not abs_path:
120 return
121
122 self._http_server = temporary_http_server.TemporaryHTTPServer(
123 self._browser_backend, abs_path)
124
125 def SetReplayArchivePath(self, archive_path):
126 if self._wpr_server:
127 self._wpr_server.Close()
128 self._wpr_server = None
129
130 if not archive_path:
131 return None
132
133 if self._browser_backend.wpr_mode == wpr_modes.WPR_OFF:
134 return
135
136 use_record_mode = self._browser_backend.wpr_mode == wpr_modes.WPR_RECORD
137 if not use_record_mode:
138 assert os.path.isfile(archive_path)
139
140 self._wpr_server = wpr_server.ReplayServer(
141 self._browser_backend,
142 archive_path,
143 use_record_mode,
144 self._browser_backend.WEBPAGEREPLAY_HOST,
145 self._browser_backend.webpagereplay_local_http_port,
146 self._browser_backend.webpagereplay_local_https_port,
147 self._browser_backend.webpagereplay_remote_http_port,
148 self._browser_backend.webpagereplay_remote_https_port)
149
150 def GetStandardOutput(self):
151 return self._browser_backend.GetStandardOutput()
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/core/__init__.py ('k') | tools/telemetry/telemetry/core/browser_credentials.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698