Skip to content

Commit 5748ddf

Browse files
author
bors-servo
authored
Auto merge of #220 - nox:h5tests, r=SimonSapin
Update html5lib-tests <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/html5ever/220) <!-- Reviewable:end -->
2 parents 62dfacb + 52458f3 commit 5748ddf

File tree

4 files changed

+53
-104
lines changed

4 files changed

+53
-104
lines changed

src/tree_builder/rules.expanded.rs

Lines changed: 26 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// except according to those terms.
99

1010
// This file is generated from rules.rs
11-
// source SipHash: 18376801535389447229
11+
// source SipHash: 3904118393820545335
1212

1313
# ! [
1414
doc =
@@ -648,9 +648,6 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
648648
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
649649
kind: ::tokenizer::StartTag,
650650
name: atom!("main"), .. }) |
651-
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
652-
kind: ::tokenizer::StartTag,
653-
name: atom!("menu"), .. }) |
654651
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
655652
kind: ::tokenizer::StartTag,
656653
name: atom!("nav"), .. }) |
@@ -675,6 +672,17 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
675672
self.insert_element_for(tag);
676673
Done
677674
}
675+
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
676+
kind: ::tokenizer::StartTag,
677+
name: atom!("menu"), .. }) =>
678+
{
679+
self.close_p_element_in_button_scope();
680+
if self.current_node_named(atom!("menuitem")) {
681+
self.pop();
682+
}
683+
self.insert_element_for(tag);
684+
Done
685+
}
678686
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
679687
kind: ::tokenizer::StartTag,
680688
name: atom!("h1"), .. }) |
@@ -1186,10 +1194,6 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
11861194
if !keep_frameset_ok { self.frameset_ok = false; }
11871195
DoneAckSelfClosing
11881196
}
1189-
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
1190-
kind: ::tokenizer::StartTag,
1191-
name: atom!("menuitem"), .. })
1192-
|
11931197
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
11941198
kind: ::tokenizer::StartTag,
11951199
name: atom!("param"), .. }) |
@@ -1207,6 +1211,9 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
12071211
kind: ::tokenizer::StartTag,
12081212
name: atom!("hr"), .. }) => {
12091213
self.close_p_element_in_button_scope();
1214+
if self.current_node_named(atom!("menuitem")) {
1215+
self.pop();
1216+
}
12101217
self.insert_and_pop_element_for(tag);
12111218
self.frameset_ok = false;
12121219
DoneAckSelfClosing
@@ -1219,54 +1226,6 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
12191226
self.step(InBody,
12201227
TagToken(Tag{name: atom!("img"), ..tag}))
12211228
}
1222-
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
1223-
kind: ::tokenizer::StartTag,
1224-
name: atom!("isindex"), .. })
1225-
=> {
1226-
self.unexpected(&tag);
1227-
let in_template =
1228-
self.in_html_elem_named(atom!("template"));
1229-
if !in_template && self.form_elem.is_some() {
1230-
return Done;
1231-
}
1232-
self.frameset_ok = false;
1233-
self.close_p_element_in_button_scope();
1234-
let mut form_attrs = vec!();
1235-
let mut prompt = None;
1236-
let mut input_attrs = vec!();
1237-
for attr in tag.attrs.into_iter() {
1238-
match attr.name {
1239-
qualname!("" , "action") => form_attrs.push(attr),
1240-
qualname!("" , "prompt") =>
1241-
prompt = Some(attr.value),
1242-
qualname!("" , "name") => { }
1243-
_ => input_attrs.push(attr),
1244-
}
1245-
}
1246-
input_attrs.push(Attribute{name: qualname!("" , "name"),
1247-
value:
1248-
"isindex".to_tendril(),});
1249-
let form =
1250-
self.insert_element(Push, ns!(html), atom!("form"),
1251-
form_attrs);
1252-
if !in_template { self.form_elem = Some(form.clone()); }
1253-
self.insert_element(NoPush, ns!(html), atom!("hr"),
1254-
vec!());
1255-
self.reconstruct_formatting();
1256-
self.insert_element(Push, ns!(html), atom!("label"),
1257-
vec!());
1258-
self.append_text(prompt.unwrap_or_else(|| {
1259-
"This is a searchable index. Enter search keywords: ".to_tendril()
1260-
}));
1261-
self.insert_element(NoPush, ns!(html), atom!("input"),
1262-
input_attrs);
1263-
self.pop();
1264-
self.insert_element(NoPush, ns!(html), atom!("hr"),
1265-
vec!());
1266-
self.pop();
1267-
if !in_template { self.form_elem = None; }
1268-
DoneAckSelfClosing
1269-
}
12701229
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
12711230
kind: ::tokenizer::StartTag,
12721231
name: atom!("textarea"), .. })
@@ -1330,6 +1289,17 @@ impl <Handle, Sink> TreeBuilderStep for super::TreeBuilder<Handle, Sink> where
13301289
self.insert_element_for(tag);
13311290
Done
13321291
}
1292+
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
1293+
kind: ::tokenizer::StartTag,
1294+
name: atom!("menuitem"), .. })
1295+
=> {
1296+
if self.current_node_named(atom!("menuitem")) {
1297+
self.pop();
1298+
}
1299+
self.reconstruct_formatting();
1300+
self.insert_element_for(tag);
1301+
Done
1302+
}
13331303
::tree_builder::types::TagToken(tag@::tokenizer::Tag {
13341304
kind: ::tokenizer::StartTag,
13351305
name: atom!("rb"), .. }) |

src/tree_builder/rules.rs

Lines changed: 23 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -351,12 +351,21 @@ impl<Handle, Sink> TreeBuilderStep
351351

352352
tag @ <address> <article> <aside> <blockquote> <center> <details> <dialog>
353353
<dir> <div> <dl> <fieldset> <figcaption> <figure> <footer> <header>
354-
<hgroup> <main> <menu> <nav> <ol> <p> <section> <summary> <ul> => {
354+
<hgroup> <main> <nav> <ol> <p> <section> <summary> <ul> => {
355355
self.close_p_element_in_button_scope();
356356
self.insert_element_for(tag);
357357
Done
358358
}
359359

360+
tag @ <menu> => {
361+
self.close_p_element_in_button_scope();
362+
if self.current_node_named(atom!("menuitem")) {
363+
self.pop();
364+
}
365+
self.insert_element_for(tag);
366+
Done
367+
}
368+
360369
tag @ <h1> <h2> <h3> <h4> <h5> <h6> => {
361370
self.close_p_element_in_button_scope();
362371
if self.current_node_in(heading_tag) {
@@ -609,13 +618,16 @@ impl<Handle, Sink> TreeBuilderStep
609618
DoneAckSelfClosing
610619
}
611620

612-
tag @ <menuitem> <param> <source> <track> => {
621+
tag @ <param> <source> <track> => {
613622
self.insert_and_pop_element_for(tag);
614623
DoneAckSelfClosing
615624
}
616625

617626
tag @ <hr> => {
618627
self.close_p_element_in_button_scope();
628+
if self.current_node_named(atom!("menuitem")) {
629+
self.pop();
630+
}
619631
self.insert_and_pop_element_for(tag);
620632
self.frameset_ok = false;
621633
DoneAckSelfClosing
@@ -629,49 +641,6 @@ impl<Handle, Sink> TreeBuilderStep
629641
}))
630642
}
631643

632-
tag @ <isindex> => {
633-
self.unexpected(&tag);
634-
let in_template = self.in_html_elem_named(atom!("template"));
635-
if !in_template && self.form_elem.is_some() {
636-
return Done;
637-
}
638-
self.frameset_ok = false;
639-
self.close_p_element_in_button_scope();
640-
let mut form_attrs = vec![];
641-
let mut prompt = None;
642-
let mut input_attrs = vec![];
643-
for attr in tag.attrs.into_iter() {
644-
match attr.name {
645-
qualname!("", "action") => form_attrs.push(attr),
646-
qualname!("", "prompt") => prompt = Some(attr.value),
647-
qualname!("", "name") => {},
648-
_ => input_attrs.push(attr),
649-
}
650-
}
651-
input_attrs.push(Attribute {
652-
name: qualname!("", "name"),
653-
value: "isindex".to_tendril(),
654-
});
655-
let form = self.insert_element(Push, ns!(html), atom!("form"), form_attrs);
656-
if !in_template {
657-
self.form_elem = Some(form.clone());
658-
}
659-
self.insert_element(NoPush, ns!(html), atom!("hr"), vec![]);
660-
self.reconstruct_formatting();
661-
self.insert_element(Push, ns!(html), atom!("label"), vec![]);
662-
self.append_text(prompt.unwrap_or_else(|| {
663-
"This is a searchable index. Enter search keywords: ".to_tendril()
664-
}));
665-
self.insert_element(NoPush, ns!(html), atom!("input"), input_attrs);
666-
self.pop();
667-
self.insert_element(NoPush, ns!(html), atom!("hr"), vec![]);
668-
self.pop();
669-
if !in_template {
670-
self.form_elem = None;
671-
}
672-
DoneAckSelfClosing
673-
}
674-
675644
tag @ <textarea> => {
676645
self.ignore_lf = true;
677646
self.frameset_ok = false;
@@ -723,6 +692,15 @@ impl<Handle, Sink> TreeBuilderStep
723692
Done
724693
}
725694

695+
tag @ <menuitem> => {
696+
if self.current_node_named(atom!("menuitem")) {
697+
self.pop();
698+
}
699+
self.reconstruct_formatting();
700+
self.insert_element_for(tag);
701+
Done
702+
}
703+
726704
tag @ <rb> <rtc> => {
727705
if self.in_scope_named(default_scope, atom!("ruby")) {
728706
self.generate_implied_end(cursory_implied_end);

src/tree_builder/tag_sets.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ declare_tag_set!(pub table_body_context = "tbody" "tfoot" "thead" "template" "ht
6464
declare_tag_set!(pub table_row_context = "tr" "template" "html");
6565
declare_tag_set!(pub td_th = "td" "th");
6666

67-
declare_tag_set!(pub cursory_implied_end = "dd" "dt" "li" "option" "optgroup" "p" "rb" "rp" "rt" "rtc");
67+
declare_tag_set!(pub cursory_implied_end =
68+
"dd" "dt" "li" "menuitem" "option" "optgroup" "p" "rb" "rp" "rt" "rtc");
6869

6970
declare_tag_set!(pub thorough_implied_end = [cursory_implied_end]
7071
+ "caption" "colgroup" "tbody" "td" "tfoot" "th" "thead" "tr");
@@ -76,7 +77,7 @@ declare_tag_set!(pub special_tag =
7677
"br" "button" "caption" "center" "col" "colgroup" "dd" "details" "dir" "div" "dl" "dt" "embed"
7778
"fieldset" "figcaption" "figure" "footer" "form" "frame" "frameset" "h1" "h2" "h3" "h4" "h5"
7879
"h6" "head" "header" "hgroup" "hr" "html" "iframe" "img" "input" "isindex" "li" "link"
79-
"listing" "main" "marquee" "menu" "menuitem" "meta" "nav" "noembed" "noframes" "noscript"
80+
"listing" "main" "marquee" "menu" "meta" "nav" "noembed" "noframes" "noscript"
8081
"object" "ol" "p" "param" "plaintext" "pre" "script" "section" "select" "source" "style"
8182
"summary" "table" "tbody" "td" "template" "textarea" "tfoot" "th" "thead" "title" "tr" "track"
8283
"ul" "wbr" "xmp");

0 commit comments

Comments
 (0)