aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-12-31 15:56:16 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-12-31 15:56:16 +0530
commit77b23d1bb97555b08e6bf0cc7a12482fd84c0a43 (patch)
tree4b607ed8acc3e32445300ecab227b393a1011350 /components/script/dom
parent3d969e429d2cf92ae9c548bedc688a5175322854 (diff)
parent3ef39e1a30bd2d93073c41d0bb866bd3359e8d66 (diff)
downloadservo-77b23d1bb97555b08e6bf0cc7a12482fd84c0a43.tar.gz
servo-77b23d1bb97555b08e6bf0cc7a12482fd84c0a43.zip
Auto merge of #9105 - jdm:buttoneventsintermittent, r=nox
Implement support for modifying the type attribute of <button> https://github.com/servo/servo/pull/9100 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9105) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmlbuttonelement.rs18
-rw-r--r--components/script/dom/macros.rs1
-rw-r--r--components/script/dom/webidls/EventHandler.webidl1
3 files changed, 18 insertions, 2 deletions
diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs
index 9b4697c4829..5a8ffaf0df6 100644
--- a/components/script/dom/htmlbuttonelement.rs
+++ b/components/script/dom/htmlbuttonelement.rs
@@ -27,7 +27,6 @@ use string_cache::Atom;
use util::str::DOMString;
#[derive(JSTraceable, PartialEq, Copy, Clone)]
-#[allow(dead_code)]
#[derive(HeapSizeOf)]
enum ButtonType {
Submit,
@@ -50,7 +49,6 @@ impl HTMLButtonElement {
htmlelement:
HTMLElement::new_inherited_with_state(IN_ENABLED_STATE,
localName, prefix, document),
- //TODO: implement button_type in attribute_mutated
button_type: Cell::new(ButtonType::Submit)
}
}
@@ -162,6 +160,22 @@ impl VirtualMethods for HTMLButtonElement {
}
}
},
+ &atom!("type") => {
+ match mutation {
+ AttributeMutation::Set(_) => {
+ let value = match &**attr.value() {
+ "reset" => ButtonType::Reset,
+ "button" => ButtonType::Button,
+ "menu" => ButtonType::Menu,
+ _ => ButtonType::Submit,
+ };
+ self.button_type.set(value);
+ }
+ AttributeMutation::Removed => {
+ self.button_type.set(ButtonType::Submit);
+ }
+ }
+ }
_ => {},
}
}
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs
index ec639d6f6b5..eb60a2c5798 100644
--- a/components/script/dom/macros.rs
+++ b/components/script/dom/macros.rs
@@ -330,6 +330,7 @@ macro_rules! global_event_handlers(
event_handler!(keyup, GetOnkeyup, SetOnkeyup);
event_handler!(input, GetOninput, SetOninput);
event_handler!(change, GetOnchange, SetOnchange);
+ event_handler!(reset, GetOnreset, SetOnreset);
event_handler!(submit, GetOnsubmit, SetOnsubmit);
)
);
diff --git a/components/script/dom/webidls/EventHandler.webidl b/components/script/dom/webidls/EventHandler.webidl
index 81547d03eb3..24382756aec 100644
--- a/components/script/dom/webidls/EventHandler.webidl
+++ b/components/script/dom/webidls/EventHandler.webidl
@@ -31,6 +31,7 @@ interface GlobalEventHandlers {
attribute EventHandler onkeypress;
attribute EventHandler onkeyup;
attribute EventHandler onchange;
+ attribute EventHandler onreset;
attribute EventHandler onsubmit;
};