Chromium Code Reviews| Index: tools/telemetry/telemetry/page/actions/pinch.py |
| diff --git a/tools/telemetry/telemetry/page/actions/pinch.py b/tools/telemetry/telemetry/page/actions/pinch.py |
| index b7085c5622b710f7ece677882041446e3775bc76..c0b09c2f8af4362409c393a9aa5842c8026572f9 100644 |
| --- a/tools/telemetry/telemetry/page/actions/pinch.py |
| +++ b/tools/telemetry/telemetry/page/actions/pinch.py |
| @@ -21,6 +21,12 @@ class PinchAction(GestureAction): |
| raise page_action.PageActionNotSupported( |
| 'Synthetic pinch not supported for this browser') |
| + # TODO(dominikg): Remove once JS interface changes have rolled into stable. |
| + if not tab.EvaluateJavaScript('chrome.gpuBenchmarking.newPinchInterface'): |
| + raise page_action.PageActionNotSupported(""" |
|
Sami
2014/05/19 14:49:04
Nit: use single instead of triple quotes since oth
Dominik Grewe
2014/05/19 17:31:43
Done.
|
| + This version of the browser doesn't support the new JS interface for |
| + pinch gestures.""") |
| + |
| if (GestureAction.GetGestureSourceTypeFromOptions(tab) == |
| 'chrome.gpuBenchmarking.MOUSE_INPUT'): |
| raise page_action.PageActionNotSupported( |
| @@ -36,11 +42,17 @@ class PinchAction(GestureAction): |
| window.__pinchAction = new __PinchAction(%s);""" |
| % done_callback) |
| + @staticmethod |
| + def _GetDefaultScaleFactorForPage(tab): |
| + current_scale_factor = tab.EvaluateJavaScript( |
| + 'window.outerWidth / window.innerWidth') |
| + return 3.0 / current_scale_factor |
| + |
| def RunGesture(self, page, tab): |
| left_anchor_percentage = getattr(self, 'left_anchor_percentage', 0.5) |
| top_anchor_percentage = getattr(self, 'top_anchor_percentage', 0.5) |
| - zoom_in = getattr(self, 'zoom_in', True) |
| - pixels_to_cover = getattr(self, 'pixels_to_cover', 500) |
| + scale_factor = getattr(self, 'scale_factor', |
| + PinchAction._GetDefaultScaleFactorForPage(tab)) |
| speed = getattr(self, 'speed', 800) |
| if hasattr(self, 'element_function'): |
| @@ -49,14 +61,12 @@ class PinchAction(GestureAction): |
| { element: element, |
| left_anchor_percentage: %s, |
| top_anchor_percentage: %s, |
| - zoom_in: %s, |
| - pixels_to_cover: %s, |
| + scale_factor: %s, |
| speed: %s }) |
| });""" % (self.element_function, |
| left_anchor_percentage, |
| top_anchor_percentage, |
| - 'true' if zoom_in else 'false', |
| - pixels_to_cover, |
| + scale_factor, |
| speed)) |
| else: |
| tab.ExecuteJavaScript(""" |
| @@ -64,13 +74,11 @@ class PinchAction(GestureAction): |
| { element: document.body, |
| left_anchor_percentage: %s, |
| top_anchor_percentage: %s, |
| - zoom_in: %s, |
| - pixels_to_cover: %s, |
| + scale_factor: %s, |
| speed: %s });""" |
| % (left_anchor_percentage, |
| top_anchor_percentage, |
| - 'true' if zoom_in else 'false', |
| - pixels_to_cover, |
| + scale_factor, |
| speed)) |
| tab.WaitForJavaScriptExpression('window.__pinchActionDone', 60) |