Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Unified Diff: tools/android/loading/sandwich_utils.py

Issue 2023263002: sandwich: Move all NoState-Prefetch related code in sandwich_prefetch.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/android/loading/sandwich_task_builder.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/loading/sandwich_utils.py
diff --git a/tools/android/loading/sandwich_utils.py b/tools/android/loading/sandwich_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..3942eecb20068a00a0d3899993a8409e4e49592b
--- /dev/null
+++ b/tools/android/loading/sandwich_utils.py
@@ -0,0 +1,76 @@
+# Copyright 2016 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 common_util
+import emulation
+import sandwich_runner
+import task_manager
+
+
+def NetworkSimulationTransformer(network_condition):
+ """Creates a function that accepts a SandwichRunner as a parameter and sets
+ network emulation options on it.
+
+ Args:
+ network_condition: The network condition to apply to the sandwich runner.
+
+ Returns:
+ A callback transforming the SandwichRunner given in argument accordingly
+ """
+ assert network_condition in emulation.NETWORK_CONDITIONS
+ def Transformer(runner):
+ assert isinstance(runner, sandwich_runner.SandwichRunner)
+ runner.network_condition = network_condition
+ return Transformer
+
+
+class SandwichCommonBuilder(task_manager.Builder):
+ """A builder for a graph of tasks, each prepares or invokes a SandwichRunner.
+ """
+
+ def __init__(self, android_device, url, output_directory,
+ output_subdirectory):
+ """Constructor.
+
+ Args:
+ android_device: The android DeviceUtils to run sandwich on or None to run
+ it locally.
+ url: URL to benchmark.
+ output_directory: As in task_manager.Builder.__init__
+ output_subdirectory: As in task_manager.Builder.__init__
+ """
+ task_manager.Builder.__init__(self, output_directory, output_subdirectory)
+ self._android_device = android_device
+ self._url = url
+ self.default_final_tasks = []
+
+ self.original_wpr_task = None
+
+ def CreateSandwichRunner(self):
+ """Create a runner for non benchmark purposes."""
+ runner = sandwich_runner.SandwichRunner()
+ runner.url = self._url
+ runner.android_device = self._android_device
+ return runner
+
+ def OverridePathToWprArchive(self, original_wpr_path):
+ """Sets the original WPR archive path's to be used.
+
+ Args:
+ original_wpr_path: Path of the original WPR archive to be used.
+ """
+ self.original_wpr_task = \
+ self.CreateStaticTask('common/webpages.wpr', original_wpr_path)
+
+ def PopulateWprRecordingTask(self):
+ """Records the original WPR archive."""
+ @self.RegisterTask('common/webpages.wpr')
+ def BuildOriginalWpr():
+ common_util.EnsureParentDirectoryExists(BuildOriginalWpr.path)
+ runner = self.CreateSandwichRunner()
+ runner.wpr_archive_path = BuildOriginalWpr.path
+ runner.wpr_record = True
+ runner.Run()
+
+ self.original_wpr_task = BuildOriginalWpr
« no previous file with comments | « tools/android/loading/sandwich_task_builder.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698