Chromium Code Reviews| Index: tools/perf/page_sets/top_25_smooth.py |
| diff --git a/tools/perf/page_sets/top_25_smooth.py b/tools/perf/page_sets/top_25_smooth.py |
| index b19a0bf8b7d5e372870fd61229fd1faa6ae3f408..ca055f738ac0f4de78f6b583bc1ee919356a7422 100644 |
| --- a/tools/perf/page_sets/top_25_smooth.py |
| +++ b/tools/perf/page_sets/top_25_smooth.py |
| @@ -53,6 +53,49 @@ class GmailSmoothPage(top_pages.GmailPage): |
| interaction.End() |
| +class GmailMouseScrollPage(top_pages.GmailPage): |
| + |
| + """ Why: productivity, top google properties """ |
| + |
| + def RunPageInteractions(self, action_runner): |
| + action_runner.ExecuteJavaScript(''' |
| + gmonkey.load('2.0', function(api) { |
| + window.__scrollableElementForTelemetry = api.getScrollableElement(); |
| + });''') |
| + action_runner.WaitForJavaScriptCondition( |
| + 'window.__scrollableElementForTelemetry != null') |
| + scrollbar_x, start_y, end_y = self.CalculateScrollBarRatios(action_runner) |
| + |
| + interaction = action_runner.BeginGestureInteraction( |
| + 'DragAction', is_smooth=True) |
| + action_runner.DragPage(left_start_ratio=scrollbar_x, |
| + top_start_ratio=start_y, left_end_ratio=scrollbar_x, |
| + top_end_ratio=end_y, speed_in_pixels_per_second=100, |
| + element_function='window.__scrollableElementForTelemetry') |
| + interaction.End() |
| + |
| + def CanRunOnBrowser(self, browser_info): |
| + return (browser_info._browser._platform_backend.platform.GetOSName() != |
| + 'android') |
| + |
| + def CalculateScrollBarRatios(self, action_runner): |
|
Sami
2015/03/06 15:02:04
nit: Start this name with an underscore since it's
ssid
2015/03/06 16:45:55
Done.
|
| + display_height = float(action_runner.EvaluateJavaScript( |
|
Sami
2015/03/06 15:02:04
I think you want .clientHeight here (and also rena
ssid
2015/03/06 16:45:55
Done.
|
| + 'window.__scrollableElementForTelemetry.offsetHeight')) |
| + page_height = float(action_runner.EvaluateJavaScript( |
|
Sami
2015/03/06 15:02:04
nit: content_height?
ssid
2015/03/06 16:45:55
Done.
|
| + 'window.__scrollableElementForTelemetry.scrollHeight')) |
| + display_width = float(action_runner.EvaluateJavaScript( |
| + 'window.__scrollableElementForTelemetry.offsetWidth')) |
| + scrollbar_width = float(action_runner.EvaluateJavaScript(''' |
|
Sami
2015/03/06 15:02:04
Add a comment here that this only works if the scr
ssid
2015/03/06 16:45:55
Done.
|
| + window.__scrollableElementForTelemetry.offsetWidth - |
| + window.__scrollableElementForTelemetry.scrollWidth''')) |
| + |
| + scrollbar_start_mid_y = display_height / (2 * page_height) |
| + scrollbar_end_mid_y = 1 - scrollbar_start_mid_y |
| + scrollbar_mid_x_offset = scrollbar_width / (2 * display_width) |
| + scrollbar_mid_x = 1 - scrollbar_mid_x_offset |
| + return scrollbar_mid_x, scrollbar_start_mid_y, scrollbar_end_mid_y |
| + |
| + |
| class GoogleCalendarSmoothPage(top_pages.GoogleCalendarPage): |
| """ Why: productivity, top google properties """ |
| @@ -118,6 +161,7 @@ class Top25SmoothPageSet(page_set_module.PageSet): |
| self.AddUserStory(_CreatePageClassWithSmoothInteractions( |
| top_pages.GoogleWebSearchPage)(self)) |
| self.AddUserStory(GmailSmoothPage(self)) |
| + self.AddUserStory(GmailMouseScrollPage(self)) |
| self.AddUserStory(GoogleCalendarSmoothPage(self)) |
| self.AddUserStory(_CreatePageClassWithSmoothInteractions( |
| top_pages.GoogleImageSearchPage)(self)) |