Index: tools/telemetry/telemetry/multi_page_benchmark.py |
diff --git a/tools/telemetry/telemetry/multi_page_benchmark.py b/tools/telemetry/telemetry/multi_page_benchmark.py |
index a17a031d815738470cb9087070707f2f273505ac..d8c340ea176d3fcd7679f7634f93b4c4bb168f8e 100644 |
--- a/tools/telemetry/telemetry/multi_page_benchmark.py |
+++ b/tools/telemetry/telemetry/multi_page_benchmark.py |
@@ -5,6 +5,7 @@ from collections import defaultdict |
import os |
import sys |
+from telemetry import page_interaction |
from telemetry import page_test |
# Get build/android/pylib scripts into our path. |
@@ -149,7 +150,22 @@ class MultiPageBenchmark(page_test.PageTest): |
def __init__(self): |
super(MultiPageBenchmark, self).__init__('_RunTest') |
+ def CustomizeBrowserOptionsForPageSet(self, pages, options): |
nduca
2012/11/12 20:58:12
I think you should move this all the way up to pag
marja
2012/11/13 09:47:40
Ok. And I also need to create PageRunner earlier (
|
+ for page in pages: |
+ if not self.CanRunForPage(page): |
+ continue |
+ interaction = self._GetInteraction(page) |
+ if interaction: |
+ interaction.CustomizeBrowserOptions(options) |
+ |
def _RunTest(self, page, tab, results): |
+ interaction = self._GetInteraction(page) |
+ if interaction: |
+ tab.WaitForDocumentReadyStateToBeComplete() |
+ self.WillRunInteraction(page, tab) |
+ interaction.PerformInteraction(page, tab) |
+ self.DidRunInteraction(page, tab) |
+ |
results.WillMeasurePage(page) |
self.MeasurePage(page, tab, results) |
results.DidMeasurePage() |
@@ -176,3 +192,26 @@ class MultiPageBenchmark(page_test.PageTest): |
results.Add('two_plus_two', 'count', res) |
""" |
raise NotImplementedError() |
+ |
+ def GetInteractionName(self): |
+ """Override to return the name of the interaction to be run. |
+ |
+ Return None if no interaction should be run. |
+ """ |
+ return None |
+ |
+ def _GetInteraction(self, page): |
+ interaction_name = self.GetInteractionName() |
+ if not interaction_name: |
+ return None |
+ interaction_data = getattr(page, interaction_name) |
+ return page_interaction.FindClassWithName( |
+ interaction_data['action'])(interaction_data) |
+ |
+ def WillRunInteraction(self, page, tab): #pylint: disable=W0613 |
+ """Override to do operations before running the interaction on the page.""" |
+ pass |
+ |
+ def DidRunInteraction(self, page, tab): #pylint: disable=W0613 |
+ """Override to do operations after running the interaction on the page.""" |
+ pass |