| 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 62a2b3779c7b42605875623c83b63c0e9af3bc86..5696796e78724e30f6e8b5b2d21b0dbd17543041 100755
|
| --- a/tools/telemetry/telemetry/page/record_wpr.py
|
| +++ b/tools/telemetry/telemetry/page/record_wpr.py
|
| @@ -22,6 +22,8 @@ from telemetry.page import page_set
|
| from telemetry.page import page_test
|
| from telemetry.page import profile_creator
|
| from telemetry.page import test_expectations
|
| +from telemetry.page.actions import action_runner as action_runner_module
|
| +from telemetry.page.actions import interact
|
|
|
|
|
| class RecordPage(page_test.PageTest):
|
| @@ -38,12 +40,6 @@ class RecordPage(page_test.PageTest):
|
| def CanRunForPage(self, page):
|
| return page.url.startswith('http')
|
|
|
| - def CustomizeBrowserOptionsForPageSet(self, pset, options):
|
| - for page in pset:
|
| - for compound_action in self._CompoundActionsForPage(page, options):
|
| - for action in compound_action:
|
| - action.CustomizeBrowserOptionsForPageSet(options)
|
| -
|
| def WillNavigateToPage(self, page, tab):
|
| """Override to ensure all resources are fetched from network."""
|
| tab.ClearCache(force=False)
|
| @@ -74,21 +70,18 @@ class RecordPage(page_test.PageTest):
|
| # Run the actions for all measurements. Reload the page between
|
| # actions.
|
| should_reload = False
|
| - for compound_action in self._CompoundActionsForPage(page, self.options):
|
| - if should_reload:
|
| - self.RunNavigateSteps(page, tab)
|
| - self._RunCompoundAction(page, tab, compound_action)
|
| - should_reload = True
|
| -
|
| - def _CompoundActionsForPage(self, page, options):
|
| - actions = []
|
| + interactive = self.options and self.options.interactive
|
| for action_name in self._action_names:
|
| if not hasattr(page, action_name):
|
| continue
|
| - interactive = options and options.interactive
|
| - actions.append(page_test.GetCompoundActionFromPage(
|
| - page, action_name, interactive))
|
| - return actions
|
| + if should_reload:
|
| + self.RunNavigateSteps(page, tab)
|
| + action_runner = action_runner_module.ActionRunner(page, tab, self)
|
| + if interactive:
|
| + action_runner.RunAction(interact.InteractAction())
|
| + else:
|
| + self._RunMethod(page, self._action_name_to_run, action_runner)
|
| + should_reload = True
|
|
|
|
|
| def _CreatePageSetForUrl(url):
|
| @@ -134,7 +127,7 @@ def Main(base_dir):
|
| parser.parse_args()
|
| recorder.test.ProcessCommandLineArgs(parser, options)
|
| ps = tests[target]().CreatePageSet(options)
|
| - elif target.endswith('.json'):
|
| + elif target.endswith('.json') or target.endswith('.py'):
|
| parser.parse_args()
|
| ps = page_set.PageSet.FromFile(target)
|
| elif target.startswith('http'):
|
|
|