| Index: third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
|
| index 36282d47cc74ac37f4730b5baa1786092f923b3c..d9424e2114ae68e32045e9f84f938a51109796e2 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
|
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
|
| @@ -648,6 +648,22 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken* token)
|
| setInsertionMode(InFramesetMode);
|
| return;
|
| }
|
| + if (RuntimeEnabledFeatures::contextMenuEnabled() && (token->name() == menuitemTag || token->name() == menuTag || token->name() == hrTag)) {
|
| + if (m_tree.currentStackItem()->hasTagName(menuitemTag)) {
|
| + AtomicHTMLToken endOption(HTMLToken::EndTag, menuitemTag.localName());
|
| + processEndTag(&endOption);
|
| + }
|
| + if (token->name() == hrTag) {
|
| + processFakePEndTagIfPInButtonScope();
|
| + m_tree.insertSelfClosingHTMLElementDestroyingToken(token);
|
| + m_framesetOk = false;
|
| + return;
|
| + }
|
| + if (token->name() == menuTag)
|
| + processFakePEndTagIfPInButtonScope();
|
| + m_tree.insertHTMLElement(token);
|
| + return;
|
| + }
|
| if (token->name() == addressTag
|
| || token->name() == articleTag
|
| || token->name() == asideTag
|
| @@ -809,8 +825,7 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken* token)
|
| m_framesetOk = false;
|
| return;
|
| }
|
| - if ((RuntimeEnabledFeatures::contextMenuEnabled() && token->name() == menuitemTag)
|
| - || token->name() == paramTag
|
| + if (token->name() == paramTag
|
| || token->name() == sourceTag
|
| || token->name() == trackTag) {
|
| m_tree.insertSelfClosingHTMLElementDestroyingToken(token);
|
| @@ -1894,6 +1909,14 @@ void HTMLTreeBuilder::processEndTagForInBody(AtomicHTMLToken* token)
|
| processTemplateEndTag(token);
|
| return;
|
| }
|
| + if (RuntimeEnabledFeatures::contextMenuEnabled() && token->name() == menuitemTag) {
|
| + if (m_tree.currentStackItem()->hasTagName(menuitemTag)) {
|
| + m_tree.openElements()->pop();
|
| + return;
|
| + }
|
| + parseError(token);
|
| + return;
|
| + }
|
| processAnyOtherEndTagForInBody(token);
|
| }
|
|
|
|
|