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

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: Created 8 years 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 group = optparse.OptionGroup(parser, 'Browser options') 80 group = optparse.OptionGroup(parser, 'Browser options')
75 group.add_option('--dont-override-profile', action='store_true', 81 group.add_option('--dont-override-profile', action='store_true',
76 dest='dont_override_profile', 82 dest='dont_override_profile',
77 help='Uses the regular user profile instead of a clean one') 83 help='Uses the regular user profile instead of a clean one')
78 group.add_option('--extra-browser-args', 84 group.add_option('--extra-browser-args',
79 dest='extra_browser_args_as_string', 85 dest='extra_browser_args_as_string',
80 help='Additional arguments to pass to the browser when it starts') 86 help='Additional arguments to pass to the browser when it starts')
81 group.add_option('--show-stdout', 87 group.add_option('--show-stdout',
82 action='store_true', 88 action='store_true',
83 help='When possible, will display the stdout of the process') 89 help='When possible, will display the stdout of the process')
90 group.add_option('--load-component-extension',
91 dest='component_extensions_to_load_as_string',
92 help='Loads additional component extensions.')
93 group.add_option('--load-extension',
94 dest='extensions_to_load_as_string',
95 help='Loads additional extension.')
84 parser.add_option_group(group) 96 parser.add_option_group(group)
85 97
86 # Page set options 98 # Page set options
87 group = optparse.OptionGroup(parser, 'Page set options') 99 group = optparse.OptionGroup(parser, 'Page set options')
88 group.add_option('--page-repeat', dest='page_repeat', default=1, 100 group.add_option('--page-repeat', dest='page_repeat', default=1,
89 help='Number of times to repeat each individual ' + 101 help='Number of times to repeat each individual ' +
90 'page in the pageset before proceeding.') 102 'page in the pageset before proceeding.')
91 group.add_option('--pageset-repeat', dest='pageset_repeat', default=1, 103 group.add_option('--pageset-repeat', dest='pageset_repeat', default=1,
92 help='Number of times to repeat the entire pageset ' + 104 help='Number of times to repeat the entire pageset ' +
93 'before finishing.') 105 'before finishing.')
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 if self.browser_type == 'list': 147 if self.browser_type == 'list':
136 types = browser_finder.GetAllAvailableBrowserTypes(self) 148 types = browser_finder.GetAllAvailableBrowserTypes(self)
137 sys.stderr.write('Available browsers:\n') 149 sys.stderr.write('Available browsers:\n')
138 sys.stdout.write(' %s\n' % '\n '.join(types)) 150 sys.stdout.write(' %s\n' % '\n '.join(types))
139 sys.exit(1) 151 sys.exit(1)
140 if self.extra_browser_args_as_string: # pylint: disable=E1101 152 if self.extra_browser_args_as_string: # pylint: disable=E1101
141 tmp = shlex.split( 153 tmp = shlex.split(
142 self.extra_browser_args_as_string) # pylint: disable=E1101 154 self.extra_browser_args_as_string) # pylint: disable=E1101
143 self.extra_browser_args.extend(tmp) 155 self.extra_browser_args.extend(tmp)
144 delattr(self, 'extra_browser_args_as_string') 156 delattr(self, 'extra_browser_args_as_string')
157 if self.component_extensions_to_load_as_string: # pylint: disable=E1101
158 paths = self.component_extensions_to_load_as_string.split(',')
159 self.extensions_to_load.extend(
160 [ExtensionToLoad(ext_path, True)
161 for ext_path in paths])
162 delattr(self, 'component_extensions_to_load_as_string')
163 if self.extensions_to_load_as_string: # pylint: disable=E1101
164 paths = self.extensions_to_load_as_string.split(',')
165 self.extensions_to_load.extend(
166 [ExtensionToLoad(ext_path, False)
167 for ext_path in paths])
168 delattr(self, 'component_extensions_to_load_as_string')
145 return ret 169 return ret
146 parser.parse_args = ParseArgs 170 parser.parse_args = ParseArgs
147 return parser 171 return parser
148 172
149 def AppendExtraBrowserArg(self, arg): 173 def AppendExtraBrowserArg(self, arg):
150 if arg not in self.extra_browser_args: 174 if arg not in self.extra_browser_args:
151 self.extra_browser_args.append(arg) 175 self.extra_browser_args.append(arg)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698