Skip to content

Commit 90d6ed6

Browse files
yuzusCommit bot
authored andcommitted
Change <menuitem> parsing rules to match spec
This CL changes <menuitem> parsing rules so that they match the current spec. <menuitem> is no more a self closing tag. The link below shows the latest change made to the spec. whatwg/html#2319 BUG=412945 Review-Url: https://codereview.chromium.org/2819773002 Cr-Commit-Position: refs/heads/master@{#464906}
1 parent c5614ba commit 90d6ed6

File tree

9 files changed

+38
-41
lines changed

9 files changed

+38
-41
lines changed

third_party/WebKit/LayoutTests/external/wpt/html/syntax/serializing-html-fragments/serializing-expected.txt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
This is a testharness.js-based test.
2-
Found 242 tests; 228 PASS, 14 FAIL, 0 TIMEOUT, 0 NOTRUN.
2+
Found 234 tests; 220 PASS, 14 FAIL, 0 TIMEOUT, 0 NOTRUN.
33
PASS innerHTML 0
44
PASS innerHTML 1 <a></a>
55
PASS innerHTML 2 <a b="c"></a>
@@ -103,7 +103,6 @@ PASS innerHTML Void context node img
103103
PASS innerHTML Void context node input
104104
PASS innerHTML Void context node keygen
105105
PASS innerHTML Void context node link
106-
PASS innerHTML Void context node menuitem
107106
PASS innerHTML Void context node meta
108107
PASS innerHTML Void context node param
109108
PASS innerHTML Void context node source
@@ -122,7 +121,6 @@ PASS innerHTML void as first child with following siblings img
122121
PASS innerHTML void as first child with following siblings input
123122
PASS innerHTML void as first child with following siblings keygen
124123
PASS innerHTML void as first child with following siblings link
125-
PASS innerHTML void as first child with following siblings menuitem
126124
PASS innerHTML void as first child with following siblings meta
127125
PASS innerHTML void as first child with following siblings param
128126
PASS innerHTML void as first child with following siblings source
@@ -141,7 +139,6 @@ PASS innerHTML void as second child with following siblings img
141139
PASS innerHTML void as second child with following siblings input
142140
PASS innerHTML void as second child with following siblings keygen
143141
PASS innerHTML void as second child with following siblings link
144-
PASS innerHTML void as second child with following siblings menuitem
145142
PASS innerHTML void as second child with following siblings meta
146143
PASS innerHTML void as second child with following siblings param
147144
PASS innerHTML void as second child with following siblings source
@@ -160,7 +157,6 @@ PASS innerHTML void as last child with preceding siblings img
160157
PASS innerHTML void as last child with preceding siblings input
161158
PASS innerHTML void as last child with preceding siblings keygen
162159
PASS innerHTML void as last child with preceding siblings link
163-
PASS innerHTML void as last child with preceding siblings menuitem
164160
PASS innerHTML void as last child with preceding siblings meta
165161
PASS innerHTML void as last child with preceding siblings param
166162
PASS innerHTML void as last child with preceding siblings source
@@ -179,7 +175,6 @@ PASS outerHTML Void context node img
179175
PASS outerHTML Void context node input
180176
PASS outerHTML Void context node keygen
181177
PASS outerHTML Void context node link
182-
PASS outerHTML Void context node menuitem
183178
PASS outerHTML Void context node meta
184179
PASS outerHTML Void context node param
185180
PASS outerHTML Void context node source
@@ -198,7 +193,6 @@ PASS outerHTML void as first child with following siblings img
198193
PASS outerHTML void as first child with following siblings input
199194
PASS outerHTML void as first child with following siblings keygen
200195
PASS outerHTML void as first child with following siblings link
201-
PASS outerHTML void as first child with following siblings menuitem
202196
PASS outerHTML void as first child with following siblings meta
203197
PASS outerHTML void as first child with following siblings param
204198
PASS outerHTML void as first child with following siblings source
@@ -217,7 +211,6 @@ PASS outerHTML void as second child with following siblings img
217211
PASS outerHTML void as second child with following siblings input
218212
PASS outerHTML void as second child with following siblings keygen
219213
PASS outerHTML void as second child with following siblings link
220-
PASS outerHTML void as second child with following siblings menuitem
221214
PASS outerHTML void as second child with following siblings meta
222215
PASS outerHTML void as second child with following siblings param
223216
PASS outerHTML void as second child with following siblings source
@@ -236,7 +229,6 @@ PASS outerHTML void as last child with preceding siblings img
236229
PASS outerHTML void as last child with preceding siblings input
237230
PASS outerHTML void as last child with preceding siblings keygen
238231
PASS outerHTML void as last child with preceding siblings link
239-
PASS outerHTML void as last child with preceding siblings menuitem
240232
PASS outerHTML void as last child with preceding siblings meta
241233
PASS outerHTML void as last child with preceding siblings param
242234
PASS outerHTML void as last child with preceding siblings source

third_party/WebKit/LayoutTests/external/wpt/html/syntax/serializing-html-fragments/serializing.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@
178178

179179
var void_elements = [
180180
"area", "base", "basefont", "bgsound", "br", "col", "embed",
181-
"frame", "hr", "img", "input", "keygen", "link", "menuitem",
181+
"frame", "hr", "img", "input", "keygen", "link",
182182
"meta", "param", "source", "track", "wbr"
183183
];
184184

third_party/WebKit/LayoutTests/fast/parser/parse-menuitem-expected.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
This test checks parsing of menuitem tag which is a self closing tag with no end tag.
1+
This test checks parsing of menuitem tag which has an end tag.
22

33
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
44

55

6-
PASS document.getElementById('div').innerHTML is "<menuitem>"
7-
PASS document.getElementById('menu').innerHTML is "<menuitem id=\"first_item\"><menuitem id=\"second_item\">"
6+
PASS document.getElementById('div').innerHTML is "<menuitem></menuitem>"
7+
PASS document.getElementById('menu').innerHTML is "<menuitem id=\"first_item\"></menuitem><menuitem id=\"second_item\"></menuitem>"
88
PASS document.getElementById('first_item').firstChild is null
99
PASS document.getElementById('menu').firstChild.nextSibling is document.getElementById('second_item')
1010
PASS successfullyParsed is true

third_party/WebKit/LayoutTests/fast/parser/parse-menuitem.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
<head>
33
<script src="../../resources/js-test.js"></script>
44
</head>
5-
<div id="div"><menuitem></div>
6-
<menu id="menu" type=context><menuitem id="first_item"><menuitem id="second_item"></menu>
5+
<div id="div"><menuitem></menuitem></div>
6+
<menu id="menu" type=context><menuitem id="first_item"></menuitem><menuitem id="second_item"></menuitem></menu>
77
<script>
8-
description("This test checks parsing of menuitem tag which is a self closing tag with no end tag.");
9-
shouldBeEqualToString("document.getElementById('div').innerHTML", "<menuitem>");
10-
shouldBeEqualToString("document.getElementById('menu').innerHTML", "<menuitem id=\"first_item\"><menuitem id=\"second_item\">");
8+
description("This test checks parsing of menuitem tag which has an end tag.");
9+
shouldBeEqualToString("document.getElementById('div').innerHTML", "<menuitem></menuitem>");
10+
shouldBeEqualToString("document.getElementById('menu').innerHTML", "<menuitem id=\"first_item\"></menuitem><menuitem id=\"second_item\"></menuitem>");
1111
shouldBeNull("document.getElementById('first_item').firstChild");
1212
shouldBe("document.getElementById('menu').firstChild.nextSibling", "document.getElementById('second_item')");
1313
</script>

third_party/WebKit/LayoutTests/html/menu_menuitem/menuitem-click.html

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
<script src="../../resources/js-test.js"></script>
22
<menu type=context>
3-
<menuitem id=mi1 type=checkbox>
4-
<menuitem id=mi2 type=radio radiogroup="g1" checked>
5-
<menuitem id=mi3 type=radio radiogroup="g1">
6-
<menuitem id=mi4 type=radio radiogroup="g1">
3+
<menuitem id=mi1 type=checkbox></menuitem>
4+
<menuitem id=mi2 type=radio radiogroup="g1" checked></menuitem>
5+
<menuitem id=mi3 type=radio radiogroup="g1"></menuitem>
6+
<menuitem id=mi4 type=radio radiogroup="g1"></menuitem>
77
<menu label="Submenu">
8-
<menuitem id=_mi1 type=radio radiogroup="g1">
9-
<menuitem id=_mi2 type=radio radiogroup="g1">
10-
<menuitem id=_mi3 type=radio radiogroup="g1">
8+
<menuitem id=_mi1 type=radio radiogroup="g1"></menuitem>
9+
<menuitem id=_mi2 type=radio radiogroup="g1"></menuitem>
10+
<menuitem id=_mi3 type=radio radiogroup="g1"></menuitem>
1111
</menu>
12-
<menuitem id=mi5 type=radio radiogroup="g2" checked>
13-
<menuitem id=mi6 type=radio radiogroup="G2">
14-
<menuitem id=mi7 type=radio radiogroup=" g3 " checked>
15-
<menuitem id=mi8 type=radio radiogroup=" g3">
16-
<menuitem id=mi9 type=radio radiogroup="" checked>
17-
<menuitem id=mi10 type=radio>
18-
<menuitem id=mi11 type=radio radiogroup="g4">
19-
<menuitem id=mi12 type=checkbox radiogroup="g4" checked>
12+
<menuitem id=mi5 type=radio radiogroup="g2" checked></menuitem>
13+
<menuitem id=mi6 type=radio radiogroup="G2"></menuitem>
14+
<menuitem id=mi7 type=radio radiogroup=" g3 " checked></menuitem>
15+
<menuitem id=mi8 type=radio radiogroup=" g3"></menuitem>
16+
<menuitem id=mi9 type=radio radiogroup="" checked></menuitem>
17+
<menuitem id=mi10 type=radio></menuitem>
18+
<menuitem id=mi11 type=radio radiogroup="g4"></menuitem>
19+
<menuitem id=mi12 type=checkbox radiogroup="g4" checked></menuitem>
2020
</menu>
2121
<script>
2222

third_party/WebKit/Source/core/html/HTMLElement.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,8 @@ bool HTMLElement::ShouldSerializeEndTag() const {
144144
HasTagName(bgsoundTag) || HasTagName(brTag) || HasTagName(colTag) ||
145145
HasTagName(embedTag) || HasTagName(frameTag) || HasTagName(hrTag) ||
146146
HasTagName(imgTag) || HasTagName(inputTag) || HasTagName(keygenTag) ||
147-
HasTagName(linkTag) || HasTagName(menuitemTag) || HasTagName(metaTag) ||
148-
HasTagName(paramTag) || HasTagName(sourceTag) || HasTagName(trackTag) ||
149-
HasTagName(wbrTag))
147+
HasTagName(linkTag) || HasTagName(metaTag) || HasTagName(paramTag) ||
148+
HasTagName(sourceTag) || HasTagName(trackTag) || HasTagName(wbrTag))
150149
return false;
151150
return true;
152151
}

third_party/WebKit/Source/core/html/parser/HTMLStackItem.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,6 @@ class HTMLStackItem : public GarbageCollectedFinalized<HTMLStackItem> {
160160
tag_name == HTMLNames::mainTag ||
161161
tag_name == HTMLNames::marqueeTag ||
162162
tag_name == HTMLNames::menuTag ||
163-
(RuntimeEnabledFeatures::contextMenuEnabled() &&
164-
tag_name == HTMLNames::menuitemTag) ||
165163
tag_name == HTMLNames::metaTag || tag_name == HTMLNames::navTag ||
166164
tag_name == HTMLNames::noembedTag ||
167165
tag_name == HTMLNames::noframesTag ||

third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -732,9 +732,7 @@ void HTMLTreeBuilder::ProcessStartTagForInBody(AtomicHTMLToken* token) {
732732
frameset_ok_ = false;
733733
return;
734734
}
735-
if ((RuntimeEnabledFeatures::contextMenuEnabled() &&
736-
token->GetName() == menuitemTag) ||
737-
token->GetName() == paramTag || token->GetName() == sourceTag ||
735+
if (token->GetName() == paramTag || token->GetName() == sourceTag ||
738736
token->GetName() == trackTag) {
739737
tree_.InsertSelfClosingHTMLElementDestroyingToken(token);
740738
return;

third_party/WebKit/Source/core/page/ContextMenuControllerTest.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,38 +41,48 @@ TEST_F(ContextMenuControllerTest, TestCustomMenu) {
4141
"width: 100px;\">"
4242
"<menu type=\"context\" id=\"menu_id\">"
4343
"<menuitem label=\"Item1\" onclick='document.title = \"Title 1\";'>"
44+
"</menuitem>"
4445
"<menuitem label=\"Item2\" onclick='document.title = \"Title 2\";'>"
46+
"</menuitem>"
4547
"<menuitem label=\"Item3\" onclick='document.title = \"Title 3\";'>"
48+
"</menuitem>"
4649
"<menu label='Submenu'>"
4750
"<menuitem label=\"Item4\" onclick='document.title = \"Title 4\";'>"
51+
"</menuitem>"
4852
"<menuitem label=\"Item5\" onclick='document.title = \"Title 5\";'>"
53+
"</menuitem>"
4954
"<menuitem label=\"Item6\" onclick='document.title = \"Title 6\";'>"
55+
"</menuitem>"
5056
"</menu>"
5157
"<menuitem id=\"item7\" type=\"checkbox\" checked label=\"Item7\""
5258
"onclick='if "
5359
"(document.getElementById(\"item7\").hasAttribute(\"checked\"))"
5460
"document.title = \"Title 7 checked\"; else document.title = \"Title 7 "
5561
"not checked\";'>"
62+
"</menuitem>"
5663
"<menuitem id=\"item8\" type=\"radio\" radiogroup=\"group\" "
5764
"label=\"Item8\""
5865
"onclick='if "
5966
"(document.getElementById(\"item8\").hasAttribute(\"checked\"))"
6067
"document.title = \"Title 8 checked\"; else if "
6168
"(document.getElementById(\"item9\").hasAttribute(\"checked\"))"
6269
"document.title = \"Title 8 not checked and Title 9 checked\";'>"
70+
"</menuitem>"
6371
"<menuitem id=\"item9\" type=\"radio\" radiogroup=\"group\" checked "
6472
"label=\"Item9\""
6573
"onclick='if "
6674
"(document.getElementById(\"item9\").hasAttribute(\"checked\"))"
6775
"document.title = \"Title 9 checked\"; else document.title = \"Title 9 "
6876
"not checked\";'>"
77+
"</menuitem>"
6978
"<menuitem id=\"item10\" type=\"radio\" radiogroup=\"group\" "
7079
"label=\"Item10\""
7180
"onclick='if "
7281
"(document.getElementById(\"item10\").hasAttribute(\"checked\"))"
7382
"document.title = \"Title 10 checked\"; else if "
7483
"(document.getElementById(\"item8\").hasAttribute(\"checked\"))"
7584
"document.title = \"Title 10 not checked and Title 8 checked\";'>"
85+
"</menuitem>"
7686
"</menu>"
7787
"</button>");
7888

0 commit comments

Comments
 (0)