Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js |
| diff --git a/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js b/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js |
| index c6a3c59535b8e7b83b68ef01a90a1cd46e7e97ac..eb19064cd2cbd0ddb53b5c2890fd04f65f0e3800 100644 |
| --- a/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js |
| +++ b/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js |
| @@ -20,9 +20,12 @@ function scrollPageIfNeeded(targetSelector, targetDocument) { |
| // Mouse inputs. |
| function mouseMoveToDocument() { |
| return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| - eventSender.mouseMoveTo(0, 0); |
| - resolve(); |
| + if (window.chrome && chrome.gpuBenchmarking) { |
| + chrome.gpuBenchmarking.pointerActionSequence( [ |
| + {"source": "mouse", |
| + "actions": [ |
| + { "name": "pointerMove", "x": 0, "y": 0 } |
| + ]}], resolve); |
| } else { |
| reject(); |
| } |
| @@ -40,64 +43,97 @@ function mouseMoveIntoTarget(targetSelector, targetFrame) { |
| frameTop = frameRect.top; |
| } |
| return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| + if (window.chrome && chrome.gpuBenchmarking) { |
| scrollPageIfNeeded(targetSelector, targetDocument); |
| var target = targetDocument.querySelector(targetSelector); |
| var targetRect = target.getBoundingClientRect(); |
| - eventSender.mouseMoveTo(frameLeft + targetRect.left + boundaryOffset, frameTop + targetRect.top + boundaryOffset); |
| - resolve(); |
| + var xPosition = frameLeft + targetRect.left + boundaryOffset; |
| + var yPosition = frameTop + targetRect.top + boundaryOffset; |
| + chrome.gpuBenchmarking.pointerActionSequence( [ |
| + {"source": "mouse", |
| + "actions": [ |
| + { "name": "pointerMove", "x": xPosition, "y": yPosition } |
| + ]}], resolve); |
| } else { |
| reject(); |
| } |
| }); |
| } |
| -function mouseButtonPress(button) { |
| +function mouseChordedButtonPress(targetSelector) { |
| return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| - eventSender.mouseDown(button); |
| - resolve(); |
| + if (window.chrome && chrome.gpuBenchmarking) { |
| + scrollPageIfNeeded(targetSelector, document); |
| + var target = document.querySelector(targetSelector); |
| + var targetRect = target.getBoundingClientRect(); |
| + var xPosition = targetRect.left + boundaryOffset; |
| + var yPosition = targetRect.top + boundaryOffset; |
| + chrome.gpuBenchmarking.pointerActionSequence( [ |
| + {"source": "mouse", |
| + "actions": [ |
| + { "name": "pointerDown", "x": xPosition, "y": yPosition, "button": "left"}, |
| + { "name": "pointerDown", "x": xPosition, "y": yPosition, "button": "middle"}, |
| + { "name": "pointerUp", "button": "middle"}, |
| + { "name": "pointerUp", "button": "left"} |
| + ]}], resolve); |
| } else { |
| reject(); |
| } |
| }); |
| } |
| -function mouseButtonRelease(button) { |
| +function mouseClickInTarget(targetSelector, targetFrame) { |
| + var targetDocument = document; |
| + var frameLeft = 0; |
| + var frameTop = 0; |
| + if (targetFrame !== undefined) { |
| + targetDocument = targetFrame.contentDocument; |
| + var frameRect = targetFrame.getBoundingClientRect(); |
| + frameLeft = frameRect.left; |
| + frameTop = frameRect.top; |
| + } |
| return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| - eventSender.mouseUp(button); |
| - resolve(); |
| - } else { |
| + if (window.chrome && chrome.gpuBenchmarking) { |
| + scrollPageIfNeeded(targetSelector, targetDocument); |
|
tdresser
2017/01/19 14:41:57
Interesting - so we need to scroll pages to click
lanwei
2017/01/19 19:32:53
We always use this function to make sure we can cl
|
| + var target = targetDocument.querySelector(targetSelector); |
| + var targetRect = target.getBoundingClientRect(); |
| + var xPosition = frameLeft + targetRect.left + boundaryOffset; |
| + var yPosition = frameTop + targetRect.top + boundaryOffset; |
| + chrome.gpuBenchmarking.pointerActionSequence( [ |
| + {"source": "mouse", |
| + "actions": [ |
| + { "name": "pointerMove", "x": xPosition, "y": yPosition }, |
| + { "name": "pointerDown", "x": xPosition, "y": yPosition }, |
| + { "name": "pointerUp" } |
| + ]}], resolve); |
| + } else { |
| reject(); |
| } |
| }); |
| } |
| -function mouseClickInTarget(targetSelector, targetFrame) { |
| - return mouseMoveIntoTarget(targetSelector, targetFrame).then(function() { |
| - return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| - eventSender.mouseDown(0); |
| - eventSender.mouseUp(0); |
| - resolve(); |
| - } else { |
| - reject(); |
| - } |
| - }); |
| - }); |
| -} |
| - |
| function mouseDragInTargets(targetSelectorList) { |
| return new Promise(function(resolve, reject) { |
| - if (window.eventSender) { |
| - mouseMoveIntoTarget(targetSelectorList[0]).then(function() { |
| - eventSender.mouseDown(0); |
| - for (var i=1; i<targetSelectorList.length; i++) |
| - mouseMoveIntoTarget(targetSelectorList[i]); |
| - eventSender.mouseUp(0); |
| - resolve(); |
| - }); |
| + if (window.chrome && chrome.gpuBenchmarking) { |
| + scrollPageIfNeeded(targetSelectorList[0], document); |
| + var target = document.querySelector(targetSelectorList[0]); |
| + var targetRect = target.getBoundingClientRect(); |
| + var xPosition = targetRect.left + boundaryOffset; |
| + var yPosition = targetRect.top + boundaryOffset; |
| + var text = '[{"source": "mouse", "actions": [{ "name": "pointerDown", "x":'+ |
| + xPosition +', "y":'+yPosition+' },'; |
| + for (var i=1; i<targetSelectorList.length; i++) { |
| + scrollPageIfNeeded(targetSelectorList[i], document); |
| + target = document.querySelector(targetSelectorList[i]); |
| + targetRect = target.getBoundingClientRect(); |
| + xPosition = targetRect.left + boundaryOffset; |
| + yPosition = targetRect.top + boundaryOffset; |
| + text += '{ "name": "pointerMove", "x":'+ |
| + xPosition +', "y":'+yPosition+' },'; |
| + } |
| + text += '{ "name": "pointerUp" }]}]'; |
| + console.log(text); |
| + chrome.gpuBenchmarking.pointerActionSequence(JSON.parse(text), resolve); |
|
tdresser
2017/01/19 14:41:57
Can't we build up the json as a JS object, not a s
lanwei
2017/01/19 19:32:53
Done.
|
| } else { |
| reject(); |
| } |
| @@ -108,9 +144,15 @@ function mouseDragInTarget(targetSelector) { |
| return mouseDragInTargets([targetSelector, targetSelector]); |
| } |
| -function mouseWheelScroll(direction) { |
| +function mouseWheelScroll(targetSelector, direction) { |
| return new Promise(function(resolve, reject) { |
| if (window.eventSender) { |
| + scrollPageIfNeeded(targetSelector, document); |
| + var target = document.querySelector(targetSelector); |
| + var targetRect = target.getBoundingClientRect(); |
| + eventSender.mouseMoveTo(targetRect.left + boundaryOffset, targetRect.top + boundaryOffset); |
| + eventSender.mouseDown(0); |
| + eventSender.mouseUp(0); |
| if (direction == 'down') |
| eventSender.continuousMouseScrollBy(-scrollOffset, 0); |
| else if (direction == 'right') |