From 2a2c1e7daa1d90bf74ede9e0437eabd4e970780d Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 18 Oct 2016 08:45:21 +0200 Subject: [PATCH 1/3] Fix menuitem support --- src/tree_builder/rules.expanded.rs | 34 +++++++++++++++++++++++------- src/tree_builder/rules.rs | 25 ++++++++++++++++++++-- src/tree_builder/tag_sets.rs | 5 +++-- 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/src/tree_builder/rules.expanded.rs b/src/tree_builder/rules.expanded.rs index ff792729..6905af71 100644 --- a/src/tree_builder/rules.expanded.rs +++ b/src/tree_builder/rules.expanded.rs @@ -8,7 +8,7 @@ // except according to those terms. // This file is generated from rules.rs -// source SipHash: 18376801535389447229 +// source SipHash: 15396255956430301524 # ! [ doc = @@ -648,9 +648,6 @@ impl TreeBuilderStep for super::TreeBuilder where ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!("main"), .. }) | - ::tree_builder::types::TagToken(tag@::tokenizer::Tag { - kind: ::tokenizer::StartTag, - name: atom!("menu"), .. }) | ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!("nav"), .. }) | @@ -675,6 +672,17 @@ impl TreeBuilderStep for super::TreeBuilder where self.insert_element_for(tag); Done } + ::tree_builder::types::TagToken(tag@::tokenizer::Tag { + kind: ::tokenizer::StartTag, + name: atom!("menu"), .. }) => + { + self.close_p_element_in_button_scope(); + if self.current_node_named(atom!("menuitem")) { + self.pop(); + } + self.insert_element_for(tag); + Done + } ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!("h1"), .. }) | @@ -1186,10 +1194,6 @@ impl TreeBuilderStep for super::TreeBuilder where if !keep_frameset_ok { self.frameset_ok = false; } DoneAckSelfClosing } - ::tree_builder::types::TagToken(tag@::tokenizer::Tag { - kind: ::tokenizer::StartTag, - name: atom!("menuitem"), .. }) - | ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!("param"), .. }) | @@ -1207,6 +1211,9 @@ impl TreeBuilderStep for super::TreeBuilder where kind: ::tokenizer::StartTag, name: atom!("hr"), .. }) => { self.close_p_element_in_button_scope(); + if self.current_node_named(atom!("menuitem")) { + self.pop(); + } self.insert_and_pop_element_for(tag); self.frameset_ok = false; DoneAckSelfClosing @@ -1330,6 +1337,17 @@ impl TreeBuilderStep for super::TreeBuilder where self.insert_element_for(tag); Done } + ::tree_builder::types::TagToken(tag@::tokenizer::Tag { + kind: ::tokenizer::StartTag, + name: atom!("menuitem"), .. }) + => { + if self.current_node_named(atom!("menuitem")) { + self.pop(); + } + self.reconstruct_formatting(); + self.insert_element_for(tag); + Done + } ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!("rb"), .. }) | diff --git a/src/tree_builder/rules.rs b/src/tree_builder/rules.rs index c5c12108..e5be9a51 100644 --- a/src/tree_builder/rules.rs +++ b/src/tree_builder/rules.rs @@ -351,12 +351,21 @@ impl TreeBuilderStep tag @