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

Side by Side Diff: tools/telemetry/telemetry/browser_options.py

Issue 11412238: Proof of concept for running extension API stack through dev tools. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 11 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
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import optparse 4 import optparse
5 import sys 5 import sys
6 import shlex 6 import shlex
7 import logging 7 import logging
8 import copy 8 import copy
9 9
10 from telemetry import browser_finder 10 from telemetry import browser_finder
11 from telemetry import wpr_modes 11 from telemetry import wpr_modes
12 12
13 class ExtensionToLoad(object):
14 def __init__(self, path, is_component):
15 self.path = path
16 self.is_component = is_component
17
13 class BrowserOptions(optparse.Values): 18 class BrowserOptions(optparse.Values):
14 """Options to be used for discovering and launching a browser.""" 19 """Options to be used for discovering and launching a browser."""
15 20
16 def __init__(self, browser_type=None): 21 def __init__(self, browser_type=None):
17 optparse.Values.__init__(self) 22 optparse.Values.__init__(self)
18 23
19 self.browser_type = browser_type 24 self.browser_type = browser_type
20 self.browser_executable = None 25 self.browser_executable = None
21 self.chrome_root = None 26 self.chrome_root = None
22 self.android_device = None 27 self.android_device = None
23 self.cros_ssh_identity = None 28 self.cros_ssh_identity = None
24 29
25 self.dont_override_profile = False 30 self.dont_override_profile = False
26 self.extra_browser_args = [] 31 self.extra_browser_args = []
27 self.show_stdout = False 32 self.show_stdout = False
33 self.extensions_to_load = []
28 34
29 self.cros_remote = None 35 self.cros_remote = None
30 self.wpr_mode = wpr_modes.WPR_OFF 36 self.wpr_mode = wpr_modes.WPR_OFF
31 self.wpr_make_javascript_deterministic = True 37 self.wpr_make_javascript_deterministic = True
32 38
33 self.browser_user_agent_type = None 39 self.browser_user_agent_type = None
34 40
35 self.trace_dir = None 41 self.trace_dir = None
36 self.verbosity = 0 42 self.verbosity = 0
37 43
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 group = optparse.OptionGroup(parser, 'Browser options') 85 group = optparse.OptionGroup(parser, 'Browser options')
80 group.add_option('--dont-override-profile', action='store_true', 86 group.add_option('--dont-override-profile', action='store_true',
81 dest='dont_override_profile', 87 dest='dont_override_profile',
82 help='Uses the regular user profile instead of a clean one') 88 help='Uses the regular user profile instead of a clean one')
83 group.add_option('--extra-browser-args', 89 group.add_option('--extra-browser-args',
84 dest='extra_browser_args_as_string', 90 dest='extra_browser_args_as_string',
85 help='Additional arguments to pass to the browser when it starts') 91 help='Additional arguments to pass to the browser when it starts')
86 group.add_option('--show-stdout', 92 group.add_option('--show-stdout',
87 action='store_true', 93 action='store_true',
88 help='When possible, will display the stdout of the process') 94 help='When possible, will display the stdout of the process')
95 group.add_option('--load-component-extension',
96 dest='component_extensions_to_load_as_string',
97 help='Loads additional component extensions.')
98 group.add_option('--load-extension',
99 dest='extensions_to_load_as_string',
100 help='Loads additional extension.')
89 parser.add_option_group(group) 101 parser.add_option_group(group)
90 102
91 # Page set options 103 # Page set options
92 group = optparse.OptionGroup(parser, 'Page set options') 104 group = optparse.OptionGroup(parser, 'Page set options')
93 group.add_option('--page-repeat', dest='page_repeat', default=1, 105 group.add_option('--page-repeat', dest='page_repeat', default=1,
94 help='Number of times to repeat each individual ' + 106 help='Number of times to repeat each individual ' +
95 'page in the pageset before proceeding.') 107 'page in the pageset before proceeding.')
96 group.add_option('--pageset-repeat', dest='pageset_repeat', default=1, 108 group.add_option('--pageset-repeat', dest='pageset_repeat', default=1,
97 help='Number of times to repeat the entire pageset ' + 109 help='Number of times to repeat the entire pageset ' +
98 'before finishing.') 110 'before finishing.')
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 if self.browser_type == 'list': 154 if self.browser_type == 'list':
143 types = browser_finder.GetAllAvailableBrowserTypes(self) 155 types = browser_finder.GetAllAvailableBrowserTypes(self)
144 sys.stderr.write('Available browsers:\n') 156 sys.stderr.write('Available browsers:\n')
145 sys.stdout.write(' %s\n' % '\n '.join(types)) 157 sys.stdout.write(' %s\n' % '\n '.join(types))
146 sys.exit(1) 158 sys.exit(1)
147 if self.extra_browser_args_as_string: # pylint: disable=E1101 159 if self.extra_browser_args_as_string: # pylint: disable=E1101
148 tmp = shlex.split( 160 tmp = shlex.split(
149 self.extra_browser_args_as_string) # pylint: disable=E1101 161 self.extra_browser_args_as_string) # pylint: disable=E1101
150 self.extra_browser_args.extend(tmp) 162 self.extra_browser_args.extend(tmp)
151 delattr(self, 'extra_browser_args_as_string') 163 delattr(self, 'extra_browser_args_as_string')
164 if self.component_extensions_to_load_as_string: # pylint: disable=E1101
165 paths = self.component_extensions_to_load_as_string.split(',')
166 self.extensions_to_load.extend(
167 [ExtensionToLoad(ext_path, True)
168 for ext_path in paths])
169 delattr(self, 'component_extensions_to_load_as_string')
170 if self.extensions_to_load_as_string: # pylint: disable=E1101
171 paths = self.extensions_to_load_as_string.split(',')
172 self.extensions_to_load.extend(
173 [ExtensionToLoad(ext_path, False)
174 for ext_path in paths])
175 delattr(self, 'component_extensions_to_load_as_string')
152 return ret 176 return ret
153 parser.parse_args = ParseArgs 177 parser.parse_args = ParseArgs
154 return parser 178 return parser
155 179
156 def AppendExtraBrowserArg(self, arg): 180 def AppendExtraBrowserArg(self, arg):
157 if arg not in self.extra_browser_args: 181 if arg not in self.extra_browser_args:
158 self.extra_browser_args.append(arg) 182 self.extra_browser_args.append(arg)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/browser_finder.py ('k') | tools/telemetry/telemetry/browser_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698