Index: tools/telemetry/telemetry/core/browser_options.py |
diff --git a/tools/telemetry/telemetry/core/browser_options.py b/tools/telemetry/telemetry/core/browser_options.py |
index c097ea7b78a6f84411c5259dcdb9226d0c5bb37b..855fe4097a02cf48a06d49eb3302879992a6884b 100644 |
--- a/tools/telemetry/telemetry/core/browser_options.py |
+++ b/tools/telemetry/telemetry/core/browser_options.py |
@@ -10,6 +10,8 @@ import shlex |
import sys |
from telemetry.core import browser_finder |
+from telemetry.core import browser_finder_exceptions |
+from telemetry.core import platform |
from telemetry.core import profile_types |
from telemetry.core import util |
from telemetry.core import wpr_modes |
@@ -155,7 +157,7 @@ class BrowserFinderOptions(optparse.Values): |
if self.browser_type == 'list': |
try: |
types = browser_finder.GetAllAvailableBrowserTypes(self) |
- except browser_finder.BrowserFinderException, ex: |
+ except browser_finder_exceptions.BrowserFinderException, ex: |
sys.stderr.write('ERROR: ' + str(ex)) |
sys.exit(1) |
sys.stdout.write('Available browsers:\n') |
@@ -211,6 +213,9 @@ class BrowserOptions(object): |
def __repr__(self): |
return str(sorted(self.__dict__.items())) |
+ def IsCrosBrowserOptions(self): |
+ return False |
+ |
@classmethod |
def AddCommandLineArgs(cls, parser): |
@@ -261,12 +266,12 @@ class BrowserOptions(object): |
parser.add_option_group(group) |
group = optparse.OptionGroup(parser, 'Synthetic gesture options') |
- synthetic_gesture_source_type_choices = [ 'default', 'mouse', 'touch' ] |
+ synthetic_gesture_source_type_choices = ['default', 'mouse', 'touch'] |
group.add_option('--synthetic-gesture-source-type', |
dest='synthetic_gesture_source_type', |
default='default', type='choice', |
choices=synthetic_gesture_source_type_choices, |
- help='Specify the source type for synthetic gestures. Note that some ' + |
+ help='Specify the source type for synthtic gestures. Note that some ' + |
'actions only support a specific source type. ' + |
'Supported values: ' + |
', '.join(synthetic_gesture_source_type_choices)) |
@@ -324,9 +329,7 @@ class BrowserOptions(object): |
# This deferred import is necessary because browser_options is imported in |
# telemetry/telemetry/__init__.py. |
- from telemetry.core.backends.chrome import chrome_browser_options |
- finder_options.browser_options = ( |
- chrome_browser_options.CreateChromeBrowserOptions(self)) |
+ finder_options.browser_options = CreateChromeBrowserOptions(self) |
@property |
def extra_browser_args(self): |
@@ -337,3 +340,45 @@ class BrowserOptions(object): |
self._extra_browser_args.update(args) |
else: |
self._extra_browser_args.add(args) |
+ |
+ |
+def CreateChromeBrowserOptions(br_options): |
+ browser_type = br_options.browser_type |
+ |
+ if (platform.GetHostPlatform().GetOSName() == 'chromeos' or |
+ (browser_type and browser_type.startswith('cros'))): |
+ return CrosBrowserOptions(br_options) |
+ |
+ return br_options |
+ |
+ |
+class ChromeBrowserOptions(BrowserOptions): |
+ """Chrome-specific browser options.""" |
+ |
+ def __init__(self, br_options): |
+ super(ChromeBrowserOptions, self).__init__() |
+ # Copy to self. |
+ self.__dict__.update(br_options.__dict__) |
+ |
+ |
+class CrosBrowserOptions(ChromeBrowserOptions): |
+ """ChromeOS-specific browser options.""" |
+ |
+ def __init__(self, br_options): |
+ super(CrosBrowserOptions, self).__init__(br_options) |
+ # Create a browser with oobe property. |
+ self.create_browser_with_oobe = False |
+ # Clear enterprise policy before logging in. |
+ self.clear_enterprise_policy = True |
+ # Disable GAIA/enterprise services. |
+ self.disable_gaia_services = True |
+ # Disable default apps. |
+ self.disable_default_apps = True |
+ |
+ self.auto_login = True |
+ self.gaia_login = False |
+ self.username = 'test@test.test' |
+ self.password = '' |
+ |
+ def IsCrosBrowserOptions(self): |
+ return True |