Skip to content

Commit

Permalink
Auto merge of #27666 - ghostd:fix-checkbox-radio-activation, r=jdm
Browse files Browse the repository at this point in the history
Allow mutating <input disabled type=checkbox/radio>

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #27586

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
  • Loading branch information
bors-servo committed Sep 25, 2020
2 parents 3739ee5 + 15376d0 commit 0baa1ea
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 25 deletions.
14 changes: 2 additions & 12 deletions components/script/dom/htmlinputelement.rs
Expand Up @@ -2728,21 +2728,14 @@ impl Activatable for HTMLInputElement {
// https://html.spec.whatwg.org/multipage/#reset-button-state-%28type=reset%29:activation-behaviour-2
// https://html.spec.whatwg.org/multipage/#checkbox-state-%28type=checkbox%29:activation-behaviour-2
// https://html.spec.whatwg.org/multipage/#radio-button-state-%28type=radio%29:activation-behaviour-2
InputType::Submit |
InputType::Reset |
InputType::File |
InputType::Checkbox |
InputType::Radio => self.is_mutable(),
InputType::Submit | InputType::Reset | InputType::File => self.is_mutable(),
InputType::Checkbox | InputType::Radio => true,
_ => false,
}
}

// https://dom.spec.whatwg.org/#eventtarget-legacy-pre-activation-behavior
fn legacy_pre_activation_behavior(&self) -> Option<InputActivationState> {
if !self.is_mutable() {
return None;
}

let ty = self.input_type();
match ty {
InputType::Checkbox => {
Expand Down Expand Up @@ -2777,9 +2770,6 @@ impl Activatable for HTMLInputElement {
// https://dom.spec.whatwg.org/#eventtarget-legacy-canceled-activation-behavior
fn legacy_canceled_activation_behavior(&self, cache: Option<InputActivationState>) {
// Step 1
if !self.is_mutable() {
return;
}
let ty = self.input_type();
let cache = match cache {
Some(cache) => {
Expand Down
13 changes: 0 additions & 13 deletions tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini
Expand Up @@ -2,16 +2,3 @@
type: testharness
[event state during post-click handling]
expected: FAIL

[disabled radio should be checked from dispatchEvent(new MouseEvent("click"))]
expected: FAIL

[disabled checkbox should be checked from dispatchEvent(new MouseEvent("click"))]
expected: FAIL

[disabled radio should get legacy-canceled-activation behavior]
expected: FAIL

[disabled checkbox should get legacy-canceled-activation behavior]
expected: FAIL

0 comments on commit 0baa1ea

Please sign in to comment.