Index: tools/telemetry/telemetry/page/record_wpr.py |
diff --git a/tools/telemetry/telemetry/page/record_wpr.py b/tools/telemetry/telemetry/page/record_wpr.py |
index 290d0fa7855bf916d21892ac8c069354d1846d50..e16e711a504bf034b6f9b33ab0f4994c90d09bb7 100755 |
--- a/tools/telemetry/telemetry/page/record_wpr.py |
+++ b/tools/telemetry/telemetry/page/record_wpr.py |
@@ -99,15 +99,15 @@ def _CreatePageSetForUrl(url): |
def Main(base_dir): |
- measurements = discover.DiscoverClasses(base_dir, base_dir, |
- page_measurement.PageMeasurement) |
- # Filter out ProfileCreators since we don't need them here. |
- # crbug.com/319573 . |
- measurements = {n: cls for n, cls in measurements.iteritems() |
- if not issubclass(cls, profile_creator.ProfileCreator)} |
- |
+ measurements = { |
+ n: cls for n, cls in discover.DiscoverClasses( |
+ base_dir, base_dir, page_measurement.PageMeasurement).items() |
+ # Filter out unneeded ProfileCreators (crbug.com/319573). |
+ if not issubclass(cls, profile_creator.ProfileCreator) |
+ } |
tests = discover.DiscoverClasses(base_dir, base_dir, test.Test, |
index_by_class_name=True) |
+ |
options = browser_options.BrowserFinderOptions() |
parser = options.CreateParser('%prog <PageSet|Measurement|Test|URL>') |
page_runner.AddCommandLineOptions(parser) |
@@ -115,22 +115,27 @@ def Main(base_dir): |
recorder = RecordPage(measurements) |
recorder.AddCommandLineOptions(parser) |
- _, args = parser.parse_args() |
- |
- if len(args) != 1: |
+ quick_args = [a for a in sys.argv[1:] if not a.startswith('-')] |
+ if len(quick_args) != 1: |
parser.print_usage() |
sys.exit(1) |
- |
- if args[0].endswith('.json'): |
- ps = page_set.PageSet.FromFile(args[0]) |
- elif args[0] in tests: |
- recorder.test = tests[args[0]]().test() |
- ps = tests[args[0]]().CreatePageSet(options) |
- elif args[0] in measurements: |
- recorder.test = measurements[args[0]]() |
+ target = quick_args[0] |
+ if target in tests: |
+ recorder.test = tests[target]().test() |
+ recorder.test.AddCommandLineOptions(parser) |
+ parser.parse_args() |
+ ps = tests[target]().CreatePageSet(options) |
+ elif target in measurements: |
+ recorder.test = measurements[target]() |
+ recorder.test.AddCommandLineOptions(parser) |
+ _, args = parser.parse_args() |
ps = recorder.test.CreatePageSet(args, options) |
- elif args[0].startswith('http'): |
- ps = _CreatePageSetForUrl(args[0]) |
+ elif target.endswith('.json'): |
+ parser.parse_args() |
+ ps = page_set.PageSet.FromFile(target) |
+ elif target.startswith('http'): |
+ parser.parse_args() |
+ ps = _CreatePageSetForUrl(target) |
else: |
parser.print_usage() |
sys.exit(1) |