Bug 1749677 - Do not trigger change, input, or focus events on untrusted keypress events for input elements. r=edgar

Differential Revision: https://phabricator.services.mozilla.com/D154854
This commit is contained in:
Adam Vandolder
2022-08-18 13:15:12 +00:00
parent 61cae4e511
commit 3eba65a5b1
2 changed files with 119 additions and 15 deletions

View File

@@ -3755,8 +3755,9 @@ nsresult HTMLInputElement::PostHandleEvent(EventChainPostVisitor& aVisitor) {
break;
}
case eKeyPress: {
if (mType == FormControlType::InputRadio && !keyEvent->IsAlt() &&
!keyEvent->IsControl() && !keyEvent->IsMeta()) {
if (mType == FormControlType::InputRadio && keyEvent->IsTrusted() &&
!keyEvent->IsAlt() && !keyEvent->IsControl() &&
!keyEvent->IsMeta()) {
rv = MaybeHandleRadioButtonNavigation(aVisitor, keyEvent->mKeyCode);
}
@@ -3788,8 +3789,9 @@ nsresult HTMLInputElement::PostHandleEvent(EventChainPostVisitor& aVisitor) {
}
}
if (mType == FormControlType::InputRange && !keyEvent->IsAlt() &&
!keyEvent->IsControl() && !keyEvent->IsMeta() &&
if (mType == FormControlType::InputRange && keyEvent->IsTrusted() &&
!keyEvent->IsAlt() && !keyEvent->IsControl() &&
!keyEvent->IsMeta() &&
(keyEvent->mKeyCode == NS_VK_LEFT ||
keyEvent->mKeyCode == NS_VK_RIGHT ||
keyEvent->mKeyCode == NS_VK_UP ||