| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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) |
| OLD | NEW |