| 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 db76e2a4e8fd3456f9ff4f2622cbe70982a10cbd..3ab62cf2afef669fe70e95242216b15b8bf1303d 100644
|
| --- a/tools/telemetry/telemetry/page/actions/pinch.py
|
| +++ b/tools/telemetry/telemetry/page/actions/pinch.py
|
| @@ -7,8 +7,22 @@ from telemetry.page.actions.gesture_action import GestureAction
|
| from telemetry.page.actions import page_action
|
|
|
| class PinchAction(GestureAction):
|
| - def __init__(self, attributes=None):
|
| - super(PinchAction, self).__init__(attributes)
|
| + def __init__(self, selector=None, text=None, element_function=None,
|
| + left_anchor_ratio=0.5, top_anchor_ratio=0.5,
|
| + scale_factor=None, speed_in_pixels_per_second=800):
|
| + super(PinchAction, self).__init__()
|
| + self.automatically_record_interaction = False
|
| + self._selector = selector
|
| + self._text = text
|
| + self._element_function = element_function
|
| + self._left_anchor_ratio = left_anchor_ratio
|
| + self._top_anchor_ratio = top_anchor_ratio
|
| + self._scale_factor = scale_factor
|
| + self._speed = speed_in_pixels_per_second
|
| +
|
| + if (self._selector is None and self._text is None and
|
| + self._element_function is None):
|
| + self._element_function = 'document.body'
|
|
|
| def WillRunAction(self, tab):
|
| for js_file in ['gesture_common.js', 'pinch.js']:
|
| @@ -49,36 +63,25 @@ class PinchAction(GestureAction):
|
| 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)
|
| - scale_factor = getattr(self, 'scale_factor',
|
| - PinchAction._GetDefaultScaleFactorForPage(tab))
|
| - speed = getattr(self, 'speed_in_pixels_per_second', 800)
|
| -
|
| - if hasattr(self, 'element_function'):
|
| - tab.ExecuteJavaScript("""
|
| - (%s)(function(element) { window.__pinchAction.start(
|
| - { element: element,
|
| - left_anchor_percentage: %s,
|
| - top_anchor_percentage: %s,
|
| - scale_factor: %s,
|
| - speed: %s })
|
| - });""" % (self.element_function,
|
| - left_anchor_percentage,
|
| - top_anchor_percentage,
|
| - scale_factor,
|
| - speed))
|
| - else:
|
| - tab.ExecuteJavaScript("""
|
| - window.__pinchAction.start(
|
| - { element: document.body,
|
| - left_anchor_percentage: %s,
|
| - top_anchor_percentage: %s,
|
| + scale_factor = (self._scale_factor if self._scale_factor else
|
| + PinchAction._GetDefaultScaleFactorForPage(tab))
|
| + code = '''
|
| + function(element, info) {
|
| + if (!element) {
|
| + throw Error('Cannot find element: ' + info);
|
| + }
|
| + window.__pinchAction.start({
|
| + element: element,
|
| + left_anchor_ratio: %s,
|
| + top_anchor_ratio: %s,
|
| scale_factor: %s,
|
| - speed: %s });"""
|
| - % (left_anchor_percentage,
|
| - top_anchor_percentage,
|
| - scale_factor,
|
| - speed))
|
| -
|
| + speed: %s
|
| + });
|
| + }''' % (self._left_anchor_ratio,
|
| + self._top_anchor_ratio,
|
| + scale_factor,
|
| + self._speed)
|
| + page_action.EvaluateCallbackWithElement(
|
| + tab, code, selector=self._selector, text=self._text,
|
| + element_function=self._element_function)
|
| tab.WaitForJavaScriptExpression('window.__pinchActionDone', 60)
|
|
|