| 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 5a1f7e4d7418b8954e20c6486468a91b9247e3fd..d4a2b532c26ba86c03d9cd5815b3b10ed15cb489 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(
|
| + '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, 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)
|
|
|