aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmloptionelement.rs
diff options
context:
space:
mode:
authorDongie Agnir <dongie.agnir@gmail.com>2015-12-27 21:47:13 -1000
committerDongie Agnir <dongie.agnir@gmail.com>2015-12-27 21:47:13 -1000
commit12afd837a092bfadefbce9da6aca3c33f8e886ed (patch)
treee0da792ab5f503d51f950707c406771be6bd017e /components/script/dom/htmloptionelement.rs
parent941653da653a1925ade35597e97f61a6a8a0018d (diff)
downloadservo-12afd837a092bfadefbce9da6aca3c33f8e886ed.tar.gz
servo-12afd837a092bfadefbce9da6aca3c33f8e886ed.zip
Ask for reset when option is removed.
Diffstat (limited to 'components/script/dom/htmloptionelement.rs')
-rw-r--r--components/script/dom/htmloptionelement.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index 3aff70c70f7..3e6019384ab 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -210,6 +210,12 @@ impl VirtualMethods for HTMLOptionElement {
fn unbind_from_tree(&self, context: &UnbindContext) {
self.super_type().unwrap().unbind_from_tree(context);
+ if let Some(select) = context.parent.inclusive_ancestors()
+ .filter_map(Root::downcast::<HTMLSelectElement>)
+ .next() {
+ select.ask_for_reset();
+ }
+
let node = self.upcast::<Node>();
let el = self.upcast::<Element>();
if node.GetParentNode().is_some() {