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

Unified Diff: tools/perf/page_sets/polymer.py

Issue 926213002: [Telemetry] Add run_no_page_interactions options to polymer page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/KeySilkCasesPage/PolymerPage/ Created 5 years, 10 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
Index: tools/perf/page_sets/polymer.py
diff --git a/tools/perf/page_sets/polymer.py b/tools/perf/page_sets/polymer.py
index 07c73069b41a22650d02a6641c5f3beb04b8896c..db022e2638d568b96abc39d425472e709eccec31 100644
--- a/tools/perf/page_sets/polymer.py
+++ b/tools/perf/page_sets/polymer.py
@@ -6,7 +6,13 @@ from telemetry.page import page_set as page_set_module
class PolymerPage(page_module.Page):
- def __init__(self, url, page_set):
+ def __init__(self, url, page_set, run_no_page_interactions):
+ """ Base class for all polymer pages.
+
+ Args:
+ run_no_page_interactions: whether the page will run any interactions after
+ navigate steps.
+ """
super(PolymerPage, self).__init__(
url=url,
page_set=page_set)
@@ -15,6 +21,18 @@ class PolymerPage(page_module.Page):
window.__polymer_ready = true;
});
'''
+ self._run_no_page_interactions = run_no_page_interactions
+
+ def RunPageInteraction(self, action_runner):
vmiura 2015/02/18 01:18:37 Shouldn't this be "RunPageInteractions"?
+ # If a polymer page wants to customize it actions, it should
+ # overrides the PerformPageInteractions method instead of this method.
+ if self._run_no_page_interactions:
+ return
+ self.PerformPageInteractions(action_runner)
+
+ def PerformPageInteractions(self, action_runner):
+ """ Override this to perform actions after the page has navigated. """
+ pass
def RunNavigateSteps(self, action_runner):
super(PolymerPage, self).RunNavigateSteps(action_runner)
@@ -24,13 +42,13 @@ class PolymerPage(page_module.Page):
class PolymerCalculatorPage(PolymerPage):
- def __init__(self, page_set):
+ def __init__(self, page_set, run_no_page_interactions):
super(PolymerCalculatorPage, self).__init__(
url=('http://www.polymer-project.org/components/paper-calculator/'
'demo.html'),
- page_set=page_set)
+ page_set=page_set, run_no_page_interactions=run_no_page_interactions)
- def RunPageInteractions(self, action_runner):
+ def PerformPageInteractions(self, action_runner):
self.TapButton(action_runner)
self.SlidePanel(action_runner)
@@ -77,12 +95,12 @@ class PolymerCalculatorPage(PolymerPage):
class PolymerShadowPage(PolymerPage):
- def __init__(self, page_set):
+ def __init__(self, page_set, run_no_page_interactions):
super(PolymerShadowPage, self).__init__(
url='http://www.polymer-project.org/components/paper-shadow/demo.html',
- page_set=page_set)
+ page_set=page_set, run_no_page_interactions=run_no_page_interactions)
- def RunPageInteractions(self, action_runner):
+ def PerformPageInteractions(self, action_runner):
action_runner.ExecuteJavaScript(
"document.getElementById('fab').scrollIntoView()")
action_runner.Wait(5)
@@ -100,7 +118,8 @@ class PolymerShadowPage(PolymerPage):
class PolymerSampler(PolymerPage):
- def __init__(self, page_set, anchor, scrolling_page=False):
+ def __init__(self, page_set, anchor, run_no_page_interactions,
+ scrolling_page=False):
"""Page exercising interactions with a single Paper Sampler subpage.
Args:
@@ -112,7 +131,7 @@ class PolymerSampler(PolymerPage):
"""
super(PolymerSampler, self).__init__(
url=('http://www.polymer-project.org/components/%s/demo.html' % anchor),
- page_set=page_set)
+ page_set=page_set, run_no_page_interactions=run_no_page_interactions)
self.scrolling_page = scrolling_page
self.iframe_js = 'document'
@@ -129,7 +148,7 @@ class PolymerSampler(PolymerPage):
action_runner.WaitForJavaScriptCondition(
'window.__polymer_ready')
- def RunPageInteractions(self, action_runner):
+ def PerformPageInteractions(self, action_runner):
#TODO(wiltzius) Add interactions for input elements and shadow pages
if self.scrolling_page:
# Only bother scrolling the page if its been marked as worthwhile
@@ -204,14 +223,14 @@ class PolymerSampler(PolymerPage):
class PolymerPageSet(page_set_module.PageSet):
- def __init__(self):
+ def __init__(self, run_no_page_interactions=False):
super(PolymerPageSet, self).__init__(
user_agent_type='mobile',
archive_data_file='data/polymer.json',
bucket=page_set_module.PUBLIC_BUCKET)
- self.AddUserStory(PolymerCalculatorPage(self))
- self.AddUserStory(PolymerShadowPage(self))
+ self.AddUserStory(PolymerCalculatorPage(self, run_no_page_interactions))
+ self.AddUserStory(PolymerShadowPage(self, run_no_page_interactions))
# Polymer Sampler subpages that are interesting to tap / swipe elements on
TAPPABLE_PAGES = [
@@ -228,11 +247,20 @@ class PolymerPageSet(page_set_module.PageSet):
'paper-toggle-button',
]
for p in TAPPABLE_PAGES:
- self.AddUserStory(PolymerSampler(self, p))
+ self.AddUserStory(PolymerSampler(
+ self, p, run_no_page_interactions=run_no_page_interactions))
# Polymer Sampler subpages that are interesting to scroll
SCROLLABLE_PAGES = [
'core-scroll-header-panel',
]
for p in SCROLLABLE_PAGES:
- self.AddUserStory(PolymerSampler(self, p, scrolling_page=True))
+ self.AddUserStory(PolymerSampler(
+ self, p, run_no_page_interactions=run_no_page_interactions,
+ scrolling_page=True))
+
+ for page in self:
+ assert (page.__class__.RunPageInteractions ==
+ PolymerPage.RunPageInteractions), (
+ 'Pages in this page set must not override PolymerPage\' '
+ 'RunPageInteractions method.')

Powered by Google App Engine
This is Rietveld 408576698