Chromium Code Reviews| Index: tools/perf/page_sets/tough_ad_cases.py |
| diff --git a/tools/perf/page_sets/tough_ad_cases.py b/tools/perf/page_sets/tough_ad_cases.py |
| index 26d77452d69eb88b7d163ba198b56ecbb101cf41..aa3395177b9238438d9c9aa0838864bc5c47439f 100644 |
| --- a/tools/perf/page_sets/tough_ad_cases.py |
| +++ b/tools/perf/page_sets/tough_ad_cases.py |
| @@ -33,12 +33,13 @@ class SwiffyPage(page_module.Page): |
| action_runner.Wait(10) |
| -class ScrollingPage(page_module.Page): |
| +class AdPage(page_module.Page): |
| def __init__(self, url, page_set, make_javascript_deterministic=True, |
| y_scroll_distance_multiplier=0.5, bidirectional_scroll=False, |
| + scroll=False, |
| wait_for_interactive_or_better=False): |
| - super(ScrollingPage, self).__init__( |
| + super(AdPage, self).__init__( |
| url=url, |
| page_set=page_set, |
| make_javascript_deterministic=make_javascript_deterministic, |
| @@ -46,6 +47,7 @@ class ScrollingPage(page_module.Page): |
| repeatable_synthesize_scroll_gesture_shared_state.\ |
| RepeatableSynthesizeScrollGestureSharedState)) |
| self._y_scroll_distance_multiplier = y_scroll_distance_multiplier |
| + self._scroll = scroll |
| self._bidirectional_scroll = bidirectional_scroll |
| self._wait_for_interactive_or_better = wait_for_interactive_or_better |
| @@ -77,7 +79,10 @@ class ScrollingPage(page_module.Page): |
| '!document.body.addEventListener("touchstart", function() {})') |
| def RunPageInteractions(self, action_runner): |
| - if self._bidirectional_scroll: |
| + if not self._scroll: |
| + with action_runner.CreateInteraction('ToughAd'): |
| + action_runner.Wait(30) |
| + elif self._bidirectional_scroll: |
| action_runner.RepeatableBrowserDrivenScroll( |
| y_scroll_distance_ratio=self._y_scroll_distance_multiplier, |
| repeat_count=4) |
| @@ -90,29 +95,30 @@ class ScrollingPage(page_module.Page): |
| repeat_count=9) |
| -class ScrollingForbesPage(ScrollingPage): |
| +class ForbesAdPage(AdPage): |
| - def __init__(self, url, page_set, bidirectional_scroll=False): |
| + def __init__(self, url, page_set, scroll=False, bidirectional_scroll=False): |
| # forbes.com uses a strange dynamic transform on the body element, |
| # which occasionally causes us to try scrolling from outside the |
| # screen. Start at the very top of the viewport to avoid this. |
| - super(ScrollingForbesPage, self).__init__( |
| + super(ForbesAdPage, self).__init__( |
| url=url, page_set=page_set, make_javascript_deterministic=False, |
| + scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll, |
| wait_for_interactive_or_better=True) |
| def RunNavigateSteps(self, action_runner): |
| - super(ScrollingForbesPage, self).RunNavigateSteps(action_runner) |
| + super(ForbesAdPage, self).RunNavigateSteps(action_runner) |
| # Wait until the interstitial banner goes away. |
| action_runner.WaitForJavaScriptCondition( |
| 'window.location.pathname.indexOf("welcome") == -1') |
| -class ToughAdCasesPageSet(story.StorySet): |
| +class SyntheticToughAdCasesPageSet(story.StorySet): |
| """Pages for measuring rendering performance with advertising content.""" |
| def __init__(self): |
| - super(ToughAdCasesPageSet, self).__init__( |
| + super(SyntheticToughAdCasesPageSet, self).__init__( |
| archive_data_file='data/tough_ad_cases.json', |
| cloud_storage_bucket=story.INTERNAL_BUCKET) |
| @@ -138,11 +144,11 @@ class ToughAdCasesPageSet(story.StorySet): |
| self.AddStory(SwiffyPage(url, self)) |
| -class ToughWebglAdCasesPageSet(story.StorySet): |
| +class SyntheticToughWebglAdCasesPageSet(story.StorySet): |
| """Pages for measuring rendering performance with WebGL ad content.""" |
| def __init__(self): |
| - super(ToughWebglAdCasesPageSet, self).__init__( |
| + super(SyntheticToughWebglAdCasesPageSet, self).__init__( |
| archive_data_file='data/tough_ad_cases.json', |
| cloud_storage_bucket=story.INTERNAL_BUCKET) |
| @@ -168,56 +174,64 @@ class ToughWebglAdCasesPageSet(story.StorySet): |
| self.AddStory(SwiffyPage(url, self)) |
| -class ScrollingToughAdCasesPageSet(story.StorySet): |
| - """Pages for measuring scrolling performance with advertising content.""" |
| +class ToughAdCasesPageSet(story.StorySet): |
| + """Pages for measuring performance with advertising content.""" |
| - def __init__(self, bidirectional_scroll=False): |
| - super(ScrollingToughAdCasesPageSet, self).__init__( |
| + def __init__(self, scroll=False, bidirectional_scroll=False): |
| + super(ToughAdCasesPageSet, self).__init__( |
| archive_data_file='data/tough_ad_cases.json', |
| cloud_storage_bucket=story.INTERNAL_BUCKET) |
| - self.AddStory(ScrollingPage('file://tough_ad_cases/' |
| + self.AddStory(AdPage('file://tough_ad_cases/' |
| 'swiffy_collection.html', self, make_javascript_deterministic=False, |
| - y_scroll_distance_multiplier=0.25, |
| + y_scroll_distance_multiplier=0.25, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('file://tough_ad_cases/' |
| + self.AddStory(AdPage('file://tough_ad_cases/' |
| 'swiffy_webgl_collection.html', |
| - self, make_javascript_deterministic=False, |
| + self, make_javascript_deterministic=False, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://www.latimes.com', self, |
| - bidirectional_scroll=bidirectional_scroll, |
| + self.AddStory(AdPage('http://www.latimes.com', self, |
| + bidirectional_scroll=bidirectional_scroll, scroll=scroll, |
| wait_for_interactive_or_better=True)) |
| - self.AddStory(ScrollingForbesPage('http://www.forbes.com/sites/parmyolson/' |
| - '2015/07/29/jana-mobile-data-facebook-internet-org/', self, |
| - bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://androidcentral.com', self, |
| + self.AddStory(ForbesAdPage('http://www.forbes.com/sites/parmyolson/' |
| + '2015/07/29/jana-mobile-data-facebook-internet-org/', |
| + self, scroll=scroll, bidirectional_scroll=bidirectional_scroll)) |
| + self.AddStory(AdPage('http://androidcentral.com', self, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll, |
| wait_for_interactive_or_better=True)) |
| - self.AddStory(ScrollingPage('http://mashable.com', self, |
| + self.AddStory(AdPage('http://mashable.com', self, scroll=scroll, |
| y_scroll_distance_multiplier=0.25, |
| bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://www.androidauthority.com/' |
| + self.AddStory(AdPage('http://www.androidauthority.com/' |
| 'reduce-data-use-turn-on-data-compression-in-chrome-630064/', self, |
| - bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://www.cnn.com/2015/01/09/politics/' |
| - 'nebraska-keystone-pipeline/index.html', self, |
| + scroll=scroll, bidirectional_scroll=bidirectional_scroll)) |
| + self.AddStory(AdPage('http://www.cnn.com/2015/01/09/politics/', |
| + 'nebraska-keystone-pipeline/index.html', self, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll)) |
| # Disabled: crbug.com/520509 |
| - #self.AddStory(ScrollingPage('http://time.com/3977891/' |
| - # 'donald-trump-debate-republican/', self, |
| + #self.AddStory(AdPage('http://time.com/3977891/' |
| + # 'donald-trump-debate-republican/', self, scroll=scroll, |
| # bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://www.theguardian.com/uk', self, |
| + self.AddStory(AdPage('http://www.theguardian.com/uk', self, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://m.tmz.com', self, |
| + self.AddStory(AdPage('http://m.tmz.com', self, scroll=scroll, |
| y_scroll_distance_multiplier=0.25, |
| bidirectional_scroll=bidirectional_scroll)) |
| - self.AddStory(ScrollingPage('http://androidpolice.com', self, |
| + self.AddStory(AdPage('http://androidpolice.com', self, scroll=scroll, |
| bidirectional_scroll=bidirectional_scroll, |
| wait_for_interactive_or_better=True)) |
| -class BidirectionallyScrollingToughAdCasesPageSet(ScrollingToughAdCasesPageSet): |
| - """Same as ScrollingAdCasesPageSet except we scroll in two directions.""" |
| +class ScrollingToughAdCasesPageSet(story.StorySet): |
|
alex clarke (OOO till 29th)
2016/02/04 16:29:06
Is this inheritance right?
Sami
2016/02/04 16:30:16
Oops, fixed.
|
| + """Pages for measuring scrolling performance with advertising content.""" |
| + |
| + def __init__(self): |
| + super(ScrollingToughAdCasesPageSet, self).__init__( |
| + scroll=True) |
| + |
| + |
| +class BidirectionallyScrollingToughAdCasesPageSet(ToughAdCasesPageSet): |
| + """Same as ScrollingToughAdCasesPageSet except we scroll in two directions.""" |
| def __init__(self): |
| super(BidirectionallyScrollingToughAdCasesPageSet, self).__init__( |