Commit 20777b40 authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Add back, forward buttons to pointer action sequence.

Allow extended mouse buttons to be injected via the automation code.

BUG=680741

Change-Id: I2a9936e813abf9e5d0d5d3ee6dc98d44477f47f5
Reviewed-on: https://chromium-review.googlesource.com/986469
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: default avatarenne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547771}
parent 8eb0f90e
...@@ -27,6 +27,10 @@ unsigned SyntheticPointerActionParams::GetWebMouseEventModifier( ...@@ -27,6 +27,10 @@ unsigned SyntheticPointerActionParams::GetWebMouseEventModifier(
return blink::WebMouseEvent::kMiddleButtonDown; return blink::WebMouseEvent::kMiddleButtonDown;
case SyntheticPointerActionParams::Button::RIGHT: case SyntheticPointerActionParams::Button::RIGHT:
return blink::WebMouseEvent::kRightButtonDown; return blink::WebMouseEvent::kRightButtonDown;
case SyntheticPointerActionParams::Button::BACK:
return blink::WebMouseEvent::kBackButtonDown;
case SyntheticPointerActionParams::Button::FORWARD:
return blink::WebMouseEvent::kForwardButtonDown;
} }
NOTREACHED(); NOTREACHED();
return blink::WebMouseEvent::kNoModifiers; return blink::WebMouseEvent::kNoModifiers;
...@@ -43,9 +47,13 @@ SyntheticPointerActionParams::GetWebMouseEventButton( ...@@ -43,9 +47,13 @@ SyntheticPointerActionParams::GetWebMouseEventButton(
return blink::WebMouseEvent::Button::kMiddle; return blink::WebMouseEvent::Button::kMiddle;
case SyntheticPointerActionParams::Button::RIGHT: case SyntheticPointerActionParams::Button::RIGHT:
return blink::WebMouseEvent::Button::kRight; return blink::WebMouseEvent::Button::kRight;
case SyntheticPointerActionParams::Button::BACK:
return blink::WebMouseEvent::Button::kBack;
case SyntheticPointerActionParams::Button::FORWARD:
return blink::WebMouseEvent::Button::kForward;
} }
NOTREACHED(); NOTREACHED();
return blink::WebMouseEvent::Button::kNoButton; return blink::WebMouseEvent::Button::kNoButton;
} }
} // namespace content } // namespace content
\ No newline at end of file
...@@ -33,7 +33,14 @@ struct CONTENT_EXPORT SyntheticPointerActionParams { ...@@ -33,7 +33,14 @@ struct CONTENT_EXPORT SyntheticPointerActionParams {
POINTER_ACTION_TYPE_MAX = IDLE POINTER_ACTION_TYPE_MAX = IDLE
}; };
enum class Button { LEFT, MIDDLE, RIGHT, BUTTON_MAX = RIGHT }; enum class Button {
LEFT,
MIDDLE,
RIGHT,
BACK,
FORWARD,
BUTTON_MAX = FORWARD
};
SyntheticPointerActionParams(); SyntheticPointerActionParams();
SyntheticPointerActionParams(PointerActionType action_type); SyntheticPointerActionParams(PointerActionType action_type);
......
...@@ -47,6 +47,10 @@ SyntheticPointerActionParams::Button ToSyntheticMouseButton( ...@@ -47,6 +47,10 @@ SyntheticPointerActionParams::Button ToSyntheticMouseButton(
return SyntheticPointerActionParams::Button::MIDDLE; return SyntheticPointerActionParams::Button::MIDDLE;
if (button == "right") if (button == "right")
return SyntheticPointerActionParams::Button::RIGHT; return SyntheticPointerActionParams::Button::RIGHT;
if (button == "back")
return SyntheticPointerActionParams::Button::BACK;
if (button == "forward")
return SyntheticPointerActionParams::Button::FORWARD;
NOTREACHED() << "Unexpected button"; NOTREACHED() << "Unexpected button";
return SyntheticPointerActionParams::Button(); return SyntheticPointerActionParams::Button();
} }
...@@ -210,7 +214,8 @@ bool ActionsParser::ParseAction( ...@@ -210,7 +214,8 @@ bool ActionsParser::ParseAction(
"actions[%d].actions.button is not a string", action_index_); "actions[%d].actions.button is not a string", action_index_);
return false; return false;
} else if (button_name != "left" && button_name != "middle" && } else if (button_name != "left" && button_name != "middle" &&
button_name != "right") { button_name != "right" && button_name != "back" &&
button_name != "forward") {
error_message_ = base::StringPrintf( error_message_ = base::StringPrintf(
"actions[%d].actions.button is an unsupported button", action_index_); "actions[%d].actions.button is an unsupported button", action_index_);
return false; return false;
......
...@@ -970,8 +970,12 @@ bool GpuBenchmarking::PointerActionSequence(gin::Arguments* args) { ...@@ -970,8 +970,12 @@ bool GpuBenchmarking::PointerActionSequence(gin::Arguments* args) {
// Get all the pointer actions from the user input and wrap them into a // Get all the pointer actions from the user input and wrap them into a
// SyntheticPointerActionListParams object. // SyntheticPointerActionListParams object.
ActionsParser actions_parser(value.get()); ActionsParser actions_parser(value.get());
if (!actions_parser.ParsePointerActionSequence()) if (!actions_parser.ParsePointerActionSequence()) {
// TODO(dtapuska): Throw an error here, some layout tests start
// failing when this is done though.
// args->ThrowTypeError(actions_parser.error_message());
return false; return false;
}
if (!GetOptionalArg(args, &callback)) { if (!GetOptionalArg(args, &callback)) {
args->ThrowError(); args->ThrowError();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment