Bug 1695636 - Part 3: Do not trigger form submission or click event for untrusted key event; r=masayuki

Differential Revision: https://phabricator.services.mozilla.com/D135464
This commit is contained in:
Edgar Chen
2022-01-12 14:24:02 +00:00
parent 907da6d2bb
commit a64fa1be22
2 changed files with 126 additions and 2 deletions

View File

@@ -3730,7 +3730,8 @@ nsresult HTMLInputElement::PostHandleEvent(EventChainPostVisitor& aVisitor) {
FireChangeEventIfNeeded();
aVisitor.mEventStatus = nsEventStatus_eConsumeNoDefault;
} else if (!preventDefault) {
if (keyEvent && ActivatesWithKeyboard(mType, keyEvent->mKeyCode)) {
if (keyEvent && ActivatesWithKeyboard(mType, keyEvent->mKeyCode) &&
keyEvent->IsTrusted()) {
// We maybe dispatch a synthesized click for keyboard activation.
HandleKeyboardActivation(aVisitor);
}
@@ -3823,7 +3824,7 @@ nsresult HTMLInputElement::PostHandleEvent(EventChainPostVisitor& aVisitor) {
* not submit, period.
*/
if (keyEvent->mKeyCode == NS_VK_RETURN &&
if (keyEvent->mKeyCode == NS_VK_RETURN && keyEvent->IsTrusted() &&
(IsSingleLineTextControl(false, mType) ||
IsDateTimeInputType(mType) ||
mType == FormControlType::InputCheckbox ||