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(
return blink::WebMouseEvent::kMiddleButtonDown;
case SyntheticPointerActionParams::Button::RIGHT:
return blink::WebMouseEvent::kRightButtonDown;
case SyntheticPointerActionParams::Button::BACK:
return blink::WebMouseEvent::kBackButtonDown;
case SyntheticPointerActionParams::Button::FORWARD:
return blink::WebMouseEvent::kForwardButtonDown;
}
NOTREACHED();
return blink::WebMouseEvent::kNoModifiers;
......@@ -43,9 +47,13 @@ SyntheticPointerActionParams::GetWebMouseEventButton(
return blink::WebMouseEvent::Button::kMiddle;
case SyntheticPointerActionParams::Button::RIGHT:
return blink::WebMouseEvent::Button::kRight;
case SyntheticPointerActionParams::Button::BACK:
return blink::WebMouseEvent::Button::kBack;
case SyntheticPointerActionParams::Button::FORWARD:
return blink::WebMouseEvent::Button::kForward;
}
NOTREACHED();
return blink::WebMouseEvent::Button::kNoButton;
}
} // namespace content
\ No newline at end of file
} // namespace content
......@@ -33,7 +33,14 @@ struct CONTENT_EXPORT SyntheticPointerActionParams {
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(PointerActionType action_type);
......
......@@ -47,6 +47,10 @@ SyntheticPointerActionParams::Button ToSyntheticMouseButton(
return SyntheticPointerActionParams::Button::MIDDLE;
if (button == "right")
return SyntheticPointerActionParams::Button::RIGHT;
if (button == "back")
return SyntheticPointerActionParams::Button::BACK;
if (button == "forward")
return SyntheticPointerActionParams::Button::FORWARD;
NOTREACHED() << "Unexpected button";
return SyntheticPointerActionParams::Button();
}
......@@ -210,7 +214,8 @@ bool ActionsParser::ParseAction(
"actions[%d].actions.button is not a string", action_index_);
return false;
} else if (button_name != "left" && button_name != "middle" &&
button_name != "right") {
button_name != "right" && button_name != "back" &&
button_name != "forward") {
error_message_ = base::StringPrintf(
"actions[%d].actions.button is an unsupported button", action_index_);
return false;
......
......@@ -970,8 +970,12 @@ bool GpuBenchmarking::PointerActionSequence(gin::Arguments* args) {
// Get all the pointer actions from the user input and wrap them into a
// SyntheticPointerActionListParams object.
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;
}
if (!GetOptionalArg(args, &callback)) {
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