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 |
deleted file mode 100644 |
index 6d0ecbf70181f96f125f1d43d0ef20e321f2b721..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/page/record_wpr.py |
+++ /dev/null |
@@ -1,187 +0,0 @@ |
-# Copyright 2012 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import logging |
-import sys |
- |
-from telemetry import benchmark |
-from telemetry.core import browser_options |
-from telemetry.core import discover |
-from telemetry.core import util |
-from telemetry.core import wpr_modes |
-from telemetry.internal import story_runner |
-from telemetry.page import page_set |
-from telemetry.page import page_test |
-from telemetry.page import test_expectations |
-from telemetry.results import results_options |
- |
-class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223 |
- def __init__(self): |
- super(RecorderPageTest, self).__init__() |
- self.page_test = None |
- |
- def CustomizeBrowserOptions(self, options): |
- if self.page_test: |
- self.page_test.CustomizeBrowserOptions(options) |
- |
- def WillStartBrowser(self, browser): |
- if self.page_test: |
- self.page_test.WillStartBrowser(browser) |
- |
- def DidStartBrowser(self, browser): |
- if self.page_test: |
- self.page_test.DidStartBrowser(browser) |
- |
- def WillNavigateToPage(self, page, tab): |
- """Override to ensure all resources are fetched from network.""" |
- tab.ClearCache(force=False) |
- if self.page_test: |
- self.page_test.WillNavigateToPage(page, tab) |
- |
- def DidNavigateToPage(self, page, tab): |
- if self.page_test: |
- self.page_test.DidNavigateToPage(page, tab) |
- |
- def CleanUpAfterPage(self, page, tab): |
- if self.page_test: |
- self.page_test.CleanUpAfterPage(page, tab) |
- |
- def ValidateAndMeasurePage(self, page, tab, results): |
- if self.page_test: |
- self.page_test.ValidateAndMeasurePage(page, tab, results) |
- |
- def RunPage(self, page, tab, results): |
- tab.WaitForDocumentReadyStateToBeComplete() |
- util.WaitFor(tab.HasReachedQuiescence, 30) |
- |
- if self.page_test: |
- self.page_test.RunPage(page, tab, results) |
- return |
- |
- super(RecorderPageTest, self).RunPage(page, tab, results) |
- |
- def RunNavigateSteps(self, page, tab): |
- if self.page_test: |
- self.page_test.RunNavigateSteps(page, tab) |
- else: |
- super(RecorderPageTest, self).RunNavigateSteps(page, tab) |
- |
- |
-def _MaybeGetInstanceOfClass(target, base_dir, cls): |
- if isinstance(target, cls): |
- return target |
- classes = discover.DiscoverClasses(base_dir, base_dir, cls, |
- index_by_class_name=True) |
- return classes[target]() if target in classes else None |
- |
- |
-class WprRecorder(object): |
- |
- def __init__(self, base_dir, target, args=None): |
- self._record_page_test = RecorderPageTest() |
- self._options = self._CreateOptions() |
- |
- self._benchmark = _MaybeGetInstanceOfClass(target, base_dir, |
- benchmark.Benchmark) |
- self._parser = self._options.CreateParser(usage='%prog <PageSet|Benchmark>') |
- self._AddCommandLineArgs() |
- self._ParseArgs(args) |
- self._ProcessCommandLineArgs() |
- if self._benchmark is not None: |
- # This must be called after the command line args are added. |
- self._record_page_test.page_test = self._benchmark.CreatePageTest( |
- self.options) |
- |
- if self._options.page_set_base_dir: |
- page_set_base_dir = self._options.page_set_base_dir |
- else: |
- page_set_base_dir = base_dir |
- self._page_set = self._GetPageSet(page_set_base_dir, target) |
- |
- @property |
- def options(self): |
- return self._options |
- |
- def _CreateOptions(self): |
- options = browser_options.BrowserFinderOptions() |
- options.browser_options.wpr_mode = wpr_modes.WPR_RECORD |
- options.browser_options.no_proxy_server = True |
- return options |
- |
- def CreateResults(self): |
- if self._benchmark is not None: |
- benchmark_metadata = self._benchmark.GetMetadata() |
- else: |
- benchmark_metadata = benchmark.BenchmarkMetadata('record_wpr') |
- |
- return results_options.CreateResults(benchmark_metadata, self._options) |
- |
- def _AddCommandLineArgs(self): |
- self._parser.add_option('--page-set-base-dir', action='store', |
- type='string') |
- story_runner.AddCommandLineArgs(self._parser) |
- if self._benchmark is not None: |
- self._benchmark.AddCommandLineArgs(self._parser) |
- self._benchmark.SetArgumentDefaults(self._parser) |
- self._parser.add_option('--upload', action='store_true') |
- self._SetArgumentDefaults() |
- |
- def _SetArgumentDefaults(self): |
- self._parser.set_defaults(**{'output_formats': ['none']}) |
- |
- def _ParseArgs(self, args=None): |
- args_to_parse = sys.argv[1:] if args is None else args |
- self._parser.parse_args(args_to_parse) |
- |
- def _ProcessCommandLineArgs(self): |
- story_runner.ProcessCommandLineArgs(self._parser, self._options) |
- if self._benchmark is not None: |
- self._benchmark.ProcessCommandLineArgs(self._parser, self._options) |
- |
- def _GetPageSet(self, base_dir, target): |
- if self._benchmark is not None: |
- return self._benchmark.CreatePageSet(self._options) |
- ps = _MaybeGetInstanceOfClass(target, base_dir, page_set.PageSet) |
- if ps is None: |
- self._parser.print_usage() |
- sys.exit(1) |
- return ps |
- |
- def Record(self, results): |
- assert self._page_set.wpr_archive_info, ( |
- 'Pageset archive_data_file path must be specified.') |
- self._page_set.wpr_archive_info.AddNewTemporaryRecording() |
- self._record_page_test.CustomizeBrowserOptions(self._options) |
- story_runner.Run(self._record_page_test, self._page_set, |
- test_expectations.TestExpectations(), self._options, results) |
- |
- def HandleResults(self, results, upload_to_cloud_storage): |
- if results.failures or results.skipped_values: |
- logging.warning('Some pages failed and/or were skipped. The recording ' |
- 'has not been updated for these pages.') |
- results.PrintSummary() |
- self._page_set.wpr_archive_info.AddRecordedUserStories( |
- results.pages_that_succeeded, |
- upload_to_cloud_storage) |
- |
- |
-def Main(base_dir): |
- quick_args = [] |
- upload_to_cloud_storage = False |
- |
- for a in sys.argv[1:]: |
- if not a.startswith('-'): |
- quick_args.append(a) |
- elif a == '--upload': |
- upload_to_cloud_storage = True |
- |
- if len(quick_args) != 1: |
- print >> sys.stderr, 'Usage: record_wpr <PageSet|Benchmark> [--upload]\n' |
- sys.exit(1) |
- target = quick_args.pop() |
- wpr_recorder = WprRecorder(base_dir, target) |
- results = wpr_recorder.CreateResults() |
- wpr_recorder.Record(results) |
- wpr_recorder.HandleResults(results, upload_to_cloud_storage) |
- return min(255, len(results.failures)) |