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

Side by Side Diff: tools/telemetry/telemetry/internal/backends/android_browser_backend_settings.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
OLDNEW
(Empty)
1 # Copyright 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 import logging
6 import time
7
8 from telemetry.core import exceptions
9
10
11 class AndroidBrowserBackendSettings(object):
12
13 def __init__(self, activity, cmdline_file, package, pseudo_exec_name,
14 supports_tab_control):
15 self._activity = activity
16 self._cmdline_file = cmdline_file
17 self._package = package
18 self._pseudo_exec_name = pseudo_exec_name
19 self._supports_tab_control = supports_tab_control
20
21 @property
22 def activity(self):
23 return self._activity
24
25 @property
26 def package(self):
27 return self._package
28
29 @property
30 def pseudo_exec_name(self):
31 return self._pseudo_exec_name
32
33 @property
34 def supports_tab_control(self):
35 return self._supports_tab_control
36
37 def GetCommandLineFile(self, is_user_debug_build):
38 del is_user_debug_build # unused
39 return self._cmdline_file
40
41 def GetDevtoolsRemotePort(self, device):
42 raise NotImplementedError()
43
44 @property
45 def profile_ignore_list(self):
46 # Don't delete lib, since it is created by the installer.
47 return ['lib']
48
49
50 class ChromeBackendSettings(AndroidBrowserBackendSettings):
51 # Stores a default Preferences file, re-used to speed up "--page-repeat".
52 _default_preferences_file = None
53
54 def GetCommandLineFile(self, is_user_debug_build):
55 if is_user_debug_build:
56 return '/data/local/tmp/chrome-command-line'
57 else:
58 return '/data/local/chrome-command-line'
59
60 def __init__(self, package):
61 super(ChromeBackendSettings, self).__init__(
62 activity='com.google.android.apps.chrome.Main',
63 cmdline_file=None,
64 package=package,
65 pseudo_exec_name='chrome',
66 supports_tab_control=True)
67
68 def GetDevtoolsRemotePort(self, device):
69 return 'localabstract:chrome_devtools_remote'
70
71
72 class ContentShellBackendSettings(AndroidBrowserBackendSettings):
73 def __init__(self, package):
74 super(ContentShellBackendSettings, self).__init__(
75 activity='org.chromium.content_shell_apk.ContentShellActivity',
76 cmdline_file='/data/local/tmp/content-shell-command-line',
77 package=package,
78 pseudo_exec_name='content_shell',
79 supports_tab_control=False)
80
81 def GetDevtoolsRemotePort(self, device):
82 return 'localabstract:content_shell_devtools_remote'
83
84
85 class WebviewBackendSettings(AndroidBrowserBackendSettings):
86 def __init__(self,
87 package,
88 activity='org.chromium.webview_shell.TelemetryActivity',
89 cmdline_file='/data/local/tmp/webview-command-line'):
90 super(WebviewBackendSettings, self).__init__(
91 activity=activity,
92 cmdline_file=cmdline_file,
93 package=package,
94 pseudo_exec_name='webview',
95 supports_tab_control=False)
96
97 def GetDevtoolsRemotePort(self, device):
98 # The DevTools socket name for WebView depends on the activity PID's.
99 retries = 0
100 timeout = 1
101 pid = None
102 while True:
103 pids = device.GetPids(self.package)
104 if not pids or self.package not in pids:
105 time.sleep(timeout)
106 retries += 1
107 timeout *= 2
108 if retries == 4:
109 logging.critical('android_browser_backend: Timeout while waiting for '
110 'activity %s:%s to come up',
111 self.package,
112 self.activity)
113 raise exceptions.BrowserGoneException(self.browser,
114 'Timeout waiting for PID.')
115 if len(pids[self.package]) > 1:
116 raise Exception(
117 'At most one instance of process %s expected but found pids: '
118 '%s' % (self.package, pids))
119 pid = pids[self.package][0]
120 break
121 return 'localabstract:webview_devtools_remote_%s' % str(pid)
122
123
124 class WebviewShellBackendSettings(WebviewBackendSettings):
125 def __init__(self, package):
126 super(WebviewShellBackendSettings, self).__init__(
127 activity='org.chromium.android_webview.shell.AwShellActivity',
128 cmdline_file='/data/local/tmp/android-webview-command-line',
129 package=package)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698