<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[162293] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/162293">162293</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2014-01-19 11:00:27 -0800 (Sun, 19 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use a strong enum for HTMLTreeBuilder::InsertionMode
https://bugs.webkit.org/show_bug.cgi?id=127252

Reviewed by Antti Koivisto.

* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::constructTree):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processTemplateStartTag):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::closeTheCell):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::defaultForInitial):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
* html/parser/HTMLTreeBuilder.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuildercpp">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuilderh">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (162292 => 162293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-19 18:42:01 UTC (rev 162292)
+++ trunk/Source/WebCore/ChangeLog        2014-01-19 19:00:27 UTC (rev 162293)
</span><span class="lines">@@ -1,5 +1,41 @@
</span><span class="cx"> 2014-01-19  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Use a strong enum for HTMLTreeBuilder::InsertionMode
+        https://bugs.webkit.org/show_bug.cgi?id=127252
+
+        Reviewed by Antti Koivisto.
+
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+        (WebCore::HTMLTreeBuilder::constructTree):
+        (WebCore::HTMLTreeBuilder::processDoctypeToken):
+        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+        (WebCore::HTMLTreeBuilder::processTemplateStartTag):
+        (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
+        (WebCore::HTMLTreeBuilder::closeTheCell):
+        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
+        (WebCore::HTMLTreeBuilder::processStartTag):
+        (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
+        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
+        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
+        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
+        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+        (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
+        (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
+        (WebCore::HTMLTreeBuilder::processEndTag):
+        (WebCore::HTMLTreeBuilder::processComment):
+        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
+        (WebCore::HTMLTreeBuilder::processEndOfFile):
+        (WebCore::HTMLTreeBuilder::defaultForInitial):
+        (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
+        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
+        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
+        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
+        (WebCore::HTMLTreeBuilder::processScriptStartTag):
+        * html/parser/HTMLTreeBuilder.h:
+
+2014-01-19  Anders Carlsson  &lt;andersca@apple.com&gt;
+
</ins><span class="cx">         Convert LoaderRunLoopCF.cpp and WebCoreThreadRun.cpp over to modern threading primitives
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=127251
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (162292 => 162293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-01-19 18:42:01 UTC (rev 162292)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-01-19 19:00:27 UTC (rev 162293)
</span><span class="lines">@@ -275,8 +275,8 @@
</span><span class="cx">     , m_isAttached(true)
</span><span class="cx"> #endif
</span><span class="cx">     , m_tree(document, parserContentPolicy, options.maximumDOMTreeDepth)
</span><del>-    , m_insertionMode(InitialMode)
-    , m_originalInsertionMode(InitialMode)
</del><ins>+    , m_insertionMode(InsertionMode::Initial)
+    , m_originalInsertionMode(InsertionMode::Initial)
</ins><span class="cx">     , m_shouldSkipLeadingNewline(false)
</span><span class="cx">     , m_parser(parser)
</span><span class="cx">     , m_scriptToProcessStartPosition(uninitializedPositionValue1())
</span><span class="lines">@@ -293,8 +293,8 @@
</span><span class="cx"> #endif
</span><span class="cx">     , m_fragmentContext(fragment, contextElement)
</span><span class="cx">     , m_tree(fragment, parserContentPolicy, options.maximumDOMTreeDepth)
</span><del>-    , m_insertionMode(InitialMode)
-    , m_originalInsertionMode(InitialMode)
</del><ins>+    , m_insertionMode(InsertionMode::Initial)
+    , m_originalInsertionMode(InsertionMode::Initial)
</ins><span class="cx">     , m_shouldSkipLeadingNewline(false)
</span><span class="cx">     , m_parser(parser)
</span><span class="cx">     , m_scriptToProcessStartPosition(uninitializedPositionValue1())
</span><span class="lines">@@ -312,7 +312,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">         if (contextElement-&gt;hasTagName(templateTag))
</span><del>-            m_templateInsertionModes.append(TemplateContentsMode);
</del><ins>+            m_templateInsertionModes.append(InsertionMode::TemplateContents);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">         resetInsertionModeAppropriately();
</span><span class="lines">@@ -378,7 +378,7 @@
</span><span class="cx">             &amp;&amp; !HTMLElementStack::isHTMLIntegrationPoint(m_tree.currentStackItem())
</span><span class="cx">             &amp;&amp; !HTMLElementStack::isMathMLTextIntegrationPoint(m_tree.currentStackItem());
</span><span class="cx"> 
</span><del>-        m_parser.tokenizer()-&gt;setForceNullCharacterReplacement(m_insertionMode == TextMode || inForeignContent);
</del><ins>+        m_parser.tokenizer()-&gt;setForceNullCharacterReplacement(m_insertionMode == InsertionMode::Text || inForeignContent);
</ins><span class="cx">         m_parser.tokenizer()-&gt;setShouldAllowCDATA(inForeignContent);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -421,12 +421,12 @@
</span><span class="cx"> void HTMLTreeBuilder::processDoctypeToken(AtomicHTMLToken* token)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(token-&gt;type() == HTMLToken::DOCTYPE);
</span><del>-    if (m_insertionMode == InitialMode) {
</del><ins>+    if (m_insertionMode == InsertionMode::Initial) {
</ins><span class="cx">         m_tree.insertDoctype(token);
</span><del>-        setInsertionMode(BeforeHTMLMode);
</del><ins>+        setInsertionMode(InsertionMode::BeforeHTML);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    if (m_insertionMode == InTableTextMode) {
</del><ins>+    if (m_insertionMode == InsertionMode::InTableText) {
</ins><span class="cx">         defaultForInTableText();
</span><span class="cx">         processDoctypeToken(token);
</span><span class="cx">         return;
</span><span class="lines">@@ -677,7 +677,7 @@
</span><span class="cx">         m_tree.openElements()-&gt;popHTMLBodyElement();
</span><span class="cx">         ASSERT(m_tree.openElements()-&gt;top() == m_tree.openElements()-&gt;htmlElement());
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><del>-        setInsertionMode(InFramesetMode);
</del><ins>+        setInsertionMode(InsertionMode::InFrameset);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == addressTag
</span><span class="lines">@@ -807,7 +807,7 @@
</span><span class="cx">             processFakeEndTag(pTag);
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><span class="cx">         m_framesetOk = false;
</span><del>-        setInsertionMode(InTableMode);
</del><ins>+        setInsertionMode(InsertionMode::InTable);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == imageTag) {
</span><span class="lines">@@ -858,7 +858,7 @@
</span><span class="cx">             m_parser.tokenizer()-&gt;setState(HTMLTokenizer::RCDATAState);
</span><span class="cx">         m_originalInsertionMode = m_insertionMode;
</span><span class="cx">         m_framesetOk = false;
</span><del>-        setInsertionMode(TextMode);
</del><ins>+        setInsertionMode(InsertionMode::Text);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == xmpTag) {
</span><span class="lines">@@ -885,15 +885,15 @@
</span><span class="cx">         m_tree.reconstructTheActiveFormattingElements();
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><span class="cx">         m_framesetOk = false;
</span><del>-        if (m_insertionMode == InTableMode
-             || m_insertionMode == InCaptionMode
-             || m_insertionMode == InColumnGroupMode
-             || m_insertionMode == InTableBodyMode
-             || m_insertionMode == InRowMode
-             || m_insertionMode == InCellMode)
-            setInsertionMode(InSelectInTableMode);
</del><ins>+        if (m_insertionMode == InsertionMode::InTable
+            || m_insertionMode == InsertionMode::InCaption
+            || m_insertionMode == InsertionMode::InColumnGroup
+            || m_insertionMode == InsertionMode::InTableBody
+            || m_insertionMode == InsertionMode::InRow
+            || m_insertionMode == InsertionMode::InCell)
+            setInsertionMode(InsertionMode::InSelectInTable);
</ins><span class="cx">         else
</span><del>-            setInsertionMode(InSelectMode);
</del><ins>+            setInsertionMode(InsertionMode::InSelect);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == optgroupTag || token-&gt;name() == optionTag) {
</span><span class="lines">@@ -952,8 +952,8 @@
</span><span class="cx"> {
</span><span class="cx">     m_tree.activeFormattingElements()-&gt;appendMarker();
</span><span class="cx">     m_tree.insertHTMLElement(token);
</span><del>-    m_templateInsertionModes.append(TemplateContentsMode);
-    setInsertionMode(TemplateContentsMode);
</del><ins>+    m_templateInsertionModes.append(InsertionMode::TemplateContents);
+    setInsertionMode(InsertionMode::TemplateContents);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLTreeBuilder::processTemplateEndTag(AtomicHTMLToken* token)
</span><span class="lines">@@ -998,14 +998,14 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     m_tree.openElements()-&gt;pop();
</span><del>-    setInsertionMode(InTableMode);
</del><ins>+    setInsertionMode(InsertionMode::InTable);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#close-the-cell
</span><span class="cx"> void HTMLTreeBuilder::closeTheCell()
</span><span class="cx"> {
</span><del>-    ASSERT(insertionMode() == InCellMode);
</del><ins>+    ASSERT(insertionMode() == InsertionMode::InCell);
</ins><span class="cx">     if (m_tree.openElements()-&gt;inTableScope(tdTag)) {
</span><span class="cx">         ASSERT(!m_tree.openElements()-&gt;inTableScope(thTag));
</span><span class="cx">         processFakeEndTag(tdTag);
</span><span class="lines">@@ -1013,7 +1013,7 @@
</span><span class="cx">     }
</span><span class="cx">     ASSERT(m_tree.openElements()-&gt;inTableScope(thTag));
</span><span class="cx">     processFakeEndTag(thTag);
</span><del>-    ASSERT(insertionMode() == InRowMode);
</del><ins>+    ASSERT(insertionMode() == InsertionMode::InRow);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTreeBuilder::processStartTagForInTable(AtomicHTMLToken* token)
</span><span class="lines">@@ -1023,31 +1023,31 @@
</span><span class="cx">         m_tree.openElements()-&gt;popUntilTableScopeMarker();
</span><span class="cx">         m_tree.activeFormattingElements()-&gt;appendMarker();
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><del>-        setInsertionMode(InCaptionMode);
</del><ins>+        setInsertionMode(InsertionMode::InCaption);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == colgroupTag) {
</span><span class="cx">         m_tree.openElements()-&gt;popUntilTableScopeMarker();
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><del>-        setInsertionMode(InColumnGroupMode);
</del><ins>+        setInsertionMode(InsertionMode::InColumnGroup);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == colTag) {
</span><span class="cx">         processFakeStartTag(colgroupTag);
</span><del>-        ASSERT(InColumnGroupMode);
</del><ins>+        ASSERT(InsertionMode::InColumnGroup);
</ins><span class="cx">         processStartTag(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (isTableBodyContextTag(token-&gt;name())) {
</span><span class="cx">         m_tree.openElements()-&gt;popUntilTableScopeMarker();
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><del>-        setInsertionMode(InTableBodyMode);
</del><ins>+        setInsertionMode(InsertionMode::InTableBody);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (isTableCellContextTag(token-&gt;name())
</span><span class="cx">         || token-&gt;name() == trTag) {
</span><span class="cx">         processFakeStartTag(tbodyTag);
</span><del>-        ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+        ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">         processStartTag(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1096,40 +1096,40 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(token-&gt;type() == HTMLToken::StartTag);
</span><span class="cx">     switch (insertionMode()) {
</span><del>-    case InitialMode:
-        ASSERT(insertionMode() == InitialMode);
</del><ins>+    case InsertionMode::Initial:
+        ASSERT(insertionMode() == InsertionMode::Initial);
</ins><span class="cx">         defaultForInitial();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHTMLMode:
-        ASSERT(insertionMode() == BeforeHTMLMode);
</del><ins>+    case InsertionMode::BeforeHTML:
+        ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             m_tree.insertHTMLHtmlStartTagBeforeHTML(token);
</span><del>-            setInsertionMode(BeforeHeadMode);
</del><ins>+            setInsertionMode(InsertionMode::BeforeHead);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHTML();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHeadMode:
-        ASSERT(insertionMode() == BeforeHeadMode);
</del><ins>+    case InsertionMode::BeforeHead:
+        ASSERT(insertionMode() == InsertionMode::BeforeHead);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (token-&gt;name() == headTag) {
</span><span class="cx">             m_tree.insertHTMLHeadElement(token);
</span><del>-            setInsertionMode(InHeadMode);
</del><ins>+            setInsertionMode(InsertionMode::InHead);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHead();
</span><span class="cx">         // Fall through.
</span><del>-    case InHeadMode:
-        ASSERT(insertionMode() == InHeadMode);
</del><ins>+    case InsertionMode::InHead:
+        ASSERT(insertionMode() == InsertionMode::InHead);
</ins><span class="cx">         if (processStartTagForInHead(token))
</span><span class="cx">             return;
</span><span class="cx">         defaultForInHead();
</span><span class="cx">         // Fall through.
</span><del>-    case AfterHeadMode:
-        ASSERT(insertionMode() == AfterHeadMode);
</del><ins>+    case InsertionMode::AfterHead:
+        ASSERT(insertionMode() == InsertionMode::AfterHead);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1137,12 +1137,12 @@
</span><span class="cx">         if (token-&gt;name() == bodyTag) {
</span><span class="cx">             m_framesetOk = false;
</span><span class="cx">             m_tree.insertHTMLBodyElement(token);
</span><del>-            setInsertionMode(InBodyMode);
</del><ins>+            setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (token-&gt;name() == framesetTag) {
</span><span class="cx">             m_tree.insertHTMLElement(token);
</span><del>-            setInsertionMode(InFramesetMode);
</del><ins>+            setInsertionMode(InsertionMode::InFrameset);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (token-&gt;name() == baseTag
</span><span class="lines">@@ -1170,16 +1170,16 @@
</span><span class="cx">         }
</span><span class="cx">         defaultForAfterHead();
</span><span class="cx">         // Fall through
</span><del>-    case InBodyMode:
-        ASSERT(insertionMode() == InBodyMode);
</del><ins>+    case InsertionMode::InBody:
+        ASSERT(insertionMode() == InsertionMode::InBody);
</ins><span class="cx">         processStartTagForInBody(token);
</span><span class="cx">         break;
</span><del>-    case InTableMode:
-        ASSERT(insertionMode() == InTableMode);
</del><ins>+    case InsertionMode::InTable:
+        ASSERT(insertionMode() == InsertionMode::InTable);
</ins><span class="cx">         processStartTagForInTable(token);
</span><span class="cx">         break;
</span><del>-    case InCaptionMode:
-        ASSERT(insertionMode() == InCaptionMode);
</del><ins>+    case InsertionMode::InCaption:
+        ASSERT(insertionMode() == InsertionMode::InCaption);
</ins><span class="cx">         if (isCaptionColOrColgroupTag(token-&gt;name())
</span><span class="cx">             || isTableBodyContextTag(token-&gt;name())
</span><span class="cx">             || isTableCellContextTag(token-&gt;name())
</span><span class="lines">@@ -1194,8 +1194,8 @@
</span><span class="cx">         }
</span><span class="cx">         processStartTagForInBody(token);
</span><span class="cx">         break;
</span><del>-    case InColumnGroupMode:
-        ASSERT(insertionMode() == InColumnGroupMode);
</del><ins>+    case InsertionMode::InColumnGroup:
+        ASSERT(insertionMode() == InsertionMode::InColumnGroup);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1216,18 +1216,18 @@
</span><span class="cx">         }
</span><span class="cx">         processStartTag(token);
</span><span class="cx">         break;
</span><del>-    case InTableBodyMode:
-        ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+    case InsertionMode::InTableBody:
+        ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">         if (token-&gt;name() == trTag) {
</span><span class="cx">             m_tree.openElements()-&gt;popUntilTableBodyScopeMarker(); // How is there ever anything to pop?
</span><span class="cx">             m_tree.insertHTMLElement(token);
</span><del>-            setInsertionMode(InRowMode);
</del><ins>+            setInsertionMode(InsertionMode::InRow);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (isTableCellContextTag(token-&gt;name())) {
</span><span class="cx">             parseError(token);
</span><span class="cx">             processFakeStartTag(trTag);
</span><del>-            ASSERT(insertionMode() == InRowMode);
</del><ins>+            ASSERT(insertionMode() == InsertionMode::InRow);
</ins><span class="cx">             processStartTag(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -1246,12 +1246,12 @@
</span><span class="cx">         }
</span><span class="cx">         processStartTagForInTable(token);
</span><span class="cx">         break;
</span><del>-    case InRowMode:
-        ASSERT(insertionMode() == InRowMode);
</del><ins>+    case InsertionMode::InRow:
+        ASSERT(insertionMode() == InsertionMode::InRow);
</ins><span class="cx">         if (isTableCellContextTag(token-&gt;name())) {
</span><span class="cx">             m_tree.openElements()-&gt;popUntilTableRowScopeMarker();
</span><span class="cx">             m_tree.insertHTMLElement(token);
</span><del>-            setInsertionMode(InCellMode);
</del><ins>+            setInsertionMode(InsertionMode::InCell);
</ins><span class="cx">             m_tree.activeFormattingElements()-&gt;appendMarker();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -1262,14 +1262,14 @@
</span><span class="cx">                 ASSERT(isParsingFragmentOrTemplateContents());
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><del>-            ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+            ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">             processStartTag(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         processStartTagForInTable(token);
</span><span class="cx">         break;
</span><del>-    case InCellMode:
-        ASSERT(insertionMode() == InCellMode);
</del><ins>+    case InsertionMode::InCell:
+        ASSERT(insertionMode() == InsertionMode::InCell);
</ins><span class="cx">         if (isCaptionColOrColgroupTag(token-&gt;name())
</span><span class="cx">             || isTableCellContextTag(token-&gt;name())
</span><span class="cx">             || token-&gt;name() == trTag
</span><span class="lines">@@ -1286,18 +1286,18 @@
</span><span class="cx">         }
</span><span class="cx">         processStartTagForInBody(token);
</span><span class="cx">         break;
</span><del>-    case AfterBodyMode:
-    case AfterAfterBodyMode:
-        ASSERT(insertionMode() == AfterBodyMode || insertionMode() == AfterAfterBodyMode);
</del><ins>+    case InsertionMode::AfterBody:
+    case InsertionMode::AfterAfterBody:
+        ASSERT(insertionMode() == InsertionMode::AfterBody || insertionMode() == InsertionMode::AfterAfterBody);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        setInsertionMode(InBodyMode);
</del><ins>+        setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         processStartTag(token);
</span><span class="cx">         break;
</span><del>-    case InHeadNoscriptMode:
-        ASSERT(insertionMode() == InHeadNoscriptMode);
</del><ins>+    case InsertionMode::InHeadNoscript:
+        ASSERT(insertionMode() == InsertionMode::InHeadNoscript);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1319,8 +1319,8 @@
</span><span class="cx">         defaultForInHeadNoscript();
</span><span class="cx">         processToken(token);
</span><span class="cx">         break;
</span><del>-    case InFramesetMode:
-        ASSERT(insertionMode() == InFramesetMode);
</del><ins>+    case InsertionMode::InFrameset:
+        ASSERT(insertionMode() == InsertionMode::InFrameset);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1345,9 +1345,9 @@
</span><span class="cx"> #endif
</span><span class="cx">         parseError(token);
</span><span class="cx">         break;
</span><del>-    case AfterFramesetMode:
-    case AfterAfterFramesetMode:
-        ASSERT(insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode);
</del><ins>+    case InsertionMode::AfterFrameset:
+    case InsertionMode::AfterAfterFrameset:
+        ASSERT(insertionMode() == InsertionMode::AfterFrameset || insertionMode() == InsertionMode::AfterAfterFrameset);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1358,8 +1358,8 @@
</span><span class="cx">         }
</span><span class="cx">         parseError(token);
</span><span class="cx">         break;
</span><del>-    case InSelectInTableMode:
-        ASSERT(insertionMode() == InSelectInTableMode);
</del><ins>+    case InsertionMode::InSelectInTable:
+        ASSERT(insertionMode() == InsertionMode::InSelectInTable);
</ins><span class="cx">         if (token-&gt;name() == captionTag
</span><span class="cx">             || token-&gt;name() == tableTag
</span><span class="cx">             || isTableBodyContextTag(token-&gt;name())
</span><span class="lines">@@ -1372,8 +1372,8 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         // Fall through
</span><del>-    case InSelectMode:
-        ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode);
</del><ins>+    case InsertionMode::InSelect:
+        ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             processHtmlStartTagForInBody(token);
</span><span class="cx">             return;
</span><span class="lines">@@ -1429,14 +1429,14 @@
</span><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx">         break;
</span><del>-    case InTableTextMode:
</del><ins>+    case InsertionMode::InTableText:
</ins><span class="cx">         defaultForInTableText();
</span><span class="cx">         processStartTag(token);
</span><span class="cx">         break;
</span><del>-    case TextMode:
</del><ins>+    case InsertionMode::Text:
</ins><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         break;
</span><del>-    case TemplateContentsMode:
</del><ins>+    case InsertionMode::TemplateContents:
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">         if (token-&gt;name() == templateTag) {
</span><span class="cx">             processTemplateStartTag(token);
</span><span class="lines">@@ -1451,22 +1451,22 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        InsertionMode insertionMode = TemplateContentsMode;
</del><ins>+        InsertionMode insertionMode = InsertionMode::TemplateContents;
</ins><span class="cx">         if (token-&gt;name() == frameTag)
</span><del>-            insertionMode = InFramesetMode;
</del><ins>+            insertionMode = InsertionMode::InFrameset;
</ins><span class="cx">         else if (token-&gt;name() == colTag)
</span><del>-            insertionMode = InColumnGroupMode;
</del><ins>+            insertionMode = InsertionMode::InColumnGroup;
</ins><span class="cx">         else if (isCaptionColOrColgroupTag(token-&gt;name()) || isTableBodyContextTag(token-&gt;name()))
</span><del>-            insertionMode = InTableMode;
</del><ins>+            insertionMode = InsertionMode::InTable;
</ins><span class="cx">         else if (token-&gt;name() == trTag)
</span><del>-            insertionMode = InTableBodyMode;
</del><ins>+            insertionMode = InsertionMode::InTableBody;
</ins><span class="cx">         else if (isTableCellContextTag(token-&gt;name()))
</span><del>-            insertionMode = InRowMode;
</del><ins>+            insertionMode = InsertionMode::InRow;
</ins><span class="cx">         else
</span><del>-            insertionMode = InBodyMode;
</del><ins>+            insertionMode = InsertionMode::InBody;
</ins><span class="cx"> 
</span><del>-        ASSERT(insertionMode != TemplateContentsMode);
-        ASSERT(m_templateInsertionModes.last() == TemplateContentsMode);
</del><ins>+        ASSERT(insertionMode != InsertionMode::TemplateContents);
+        ASSERT(m_templateInsertionModes.last() == InsertionMode::TemplateContents);
</ins><span class="cx">         m_templateInsertionModes.last() = insertionMode;
</span><span class="cx">         setInsertionMode(insertionMode);
</span><span class="cx"> 
</span><span class="lines">@@ -1499,7 +1499,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     notImplemented(); // Emit a more specific parse error based on stack contents.
</span><del>-    setInsertionMode(AfterBodyMode);
</del><ins>+    setInsertionMode(InsertionMode::AfterBody);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1670,46 +1670,46 @@
</span><span class="cx">                     nodeRecord = nodeRecord-&gt;next();
</span><span class="cx">                     item = nodeRecord-&gt;stackItem();
</span><span class="cx">                     if (isHTMLTableElement(item-&gt;node()))
</span><del>-                        return setInsertionMode(InSelectInTableMode);
</del><ins>+                        return setInsertionMode(InsertionMode::InSelectInTable);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx"> #endif
</span><del>-            return setInsertionMode(InSelectMode);
</del><ins>+            return setInsertionMode(InsertionMode::InSelect);
</ins><span class="cx">         }
</span><span class="cx">         if (item-&gt;hasTagName(tdTag) || item-&gt;hasTagName(thTag))
</span><del>-            return setInsertionMode(InCellMode);
</del><ins>+            return setInsertionMode(InsertionMode::InCell);
</ins><span class="cx">         if (item-&gt;hasTagName(trTag))
</span><del>-            return setInsertionMode(InRowMode);
</del><ins>+            return setInsertionMode(InsertionMode::InRow);
</ins><span class="cx">         if (item-&gt;hasTagName(tbodyTag) || item-&gt;hasTagName(theadTag) || item-&gt;hasTagName(tfootTag))
</span><del>-            return setInsertionMode(InTableBodyMode);
</del><ins>+            return setInsertionMode(InsertionMode::InTableBody);
</ins><span class="cx">         if (item-&gt;hasTagName(captionTag))
</span><del>-            return setInsertionMode(InCaptionMode);
</del><ins>+            return setInsertionMode(InsertionMode::InCaption);
</ins><span class="cx">         if (item-&gt;hasTagName(colgroupTag)) {
</span><del>-            return setInsertionMode(InColumnGroupMode);
</del><ins>+            return setInsertionMode(InsertionMode::InColumnGroup);
</ins><span class="cx">         }
</span><span class="cx">         if (isHTMLTableElement(item-&gt;node()))
</span><del>-            return setInsertionMode(InTableMode);
</del><ins>+            return setInsertionMode(InsertionMode::InTable);
</ins><span class="cx">         if (item-&gt;hasTagName(headTag)) {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">             if (!m_fragmentContext.fragment() || m_fragmentContext.contextElement() != item-&gt;node())
</span><del>-                return setInsertionMode(InHeadMode);
</del><ins>+                return setInsertionMode(InsertionMode::InHead);
</ins><span class="cx"> #endif
</span><del>-            return setInsertionMode(InBodyMode);
</del><ins>+            return setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         }
</span><span class="cx">         if (item-&gt;hasTagName(bodyTag))
</span><del>-            return setInsertionMode(InBodyMode);
</del><ins>+            return setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         if (item-&gt;hasTagName(framesetTag)) {
</span><del>-            return setInsertionMode(InFramesetMode);
</del><ins>+            return setInsertionMode(InsertionMode::InFrameset);
</ins><span class="cx">         }
</span><span class="cx">         if (item-&gt;hasTagName(htmlTag)) {
</span><span class="cx">             if (m_tree.headStackItem())
</span><del>-                return setInsertionMode(AfterHeadMode);
</del><ins>+                return setInsertionMode(InsertionMode::AfterHead);
</ins><span class="cx">             ASSERT(isParsingFragment());
</span><del>-            return setInsertionMode(BeforeHeadMode);
</del><ins>+            return setInsertionMode(InsertionMode::BeforeHead);
</ins><span class="cx">         }
</span><span class="cx">         if (last) {
</span><span class="cx">             ASSERT(isParsingFragment());
</span><del>-            return setInsertionMode(InBodyMode);
</del><ins>+            return setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         }
</span><span class="cx">         nodeRecord = nodeRecord-&gt;next();
</span><span class="cx">     }
</span><span class="lines">@@ -1725,7 +1725,7 @@
</span><span class="cx">         }
</span><span class="cx">         m_tree.openElements()-&gt;popUntilTableBodyScopeMarker();
</span><span class="cx">         m_tree.openElements()-&gt;pop();
</span><del>-        setInsertionMode(InTableMode);
</del><ins>+        setInsertionMode(InsertionMode::InTable);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == tableTag) {
</span><span class="lines">@@ -1764,7 +1764,7 @@
</span><span class="cx">             ASSERT(isParsingFragmentOrTemplateContents());
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+        ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">         processEndTag(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1774,7 +1774,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         processFakeEndTag(trTag);
</span><del>-        ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+        ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">         processEndTag(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1801,7 +1801,7 @@
</span><span class="cx">             parseError(token);
</span><span class="cx">         m_tree.openElements()-&gt;popUntilPopped(token-&gt;name());
</span><span class="cx">         m_tree.activeFormattingElements()-&gt;clearToLastMarker();
</span><del>-        setInsertionMode(InRowMode);
</del><ins>+        setInsertionMode(InsertionMode::InRow);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == bodyTag
</span><span class="lines">@@ -1990,7 +1990,7 @@
</span><span class="cx">     // FIXME: parse error if (!m_tree.currentStackItem()-&gt;hasTagName(captionTag))
</span><span class="cx">     m_tree.openElements()-&gt;popUntilPopped(captionTag.localName());
</span><span class="cx">     m_tree.activeFormattingElements()-&gt;clearToLastMarker();
</span><del>-    setInsertionMode(InTableMode);
</del><ins>+    setInsertionMode(InsertionMode::InTable);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2004,7 +2004,7 @@
</span><span class="cx">     m_tree.openElements()-&gt;popUntilTableRowScopeMarker();
</span><span class="cx">     ASSERT(m_tree.currentStackItem()-&gt;hasTagName(trTag));
</span><span class="cx">     m_tree.openElements()-&gt;pop();
</span><del>-    setInsertionMode(InTableBodyMode);
</del><ins>+    setInsertionMode(InsertionMode::InTableBody);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2046,31 +2046,31 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(token-&gt;type() == HTMLToken::EndTag);
</span><span class="cx">     switch (insertionMode()) {
</span><del>-    case InitialMode:
-        ASSERT(insertionMode() == InitialMode);
</del><ins>+    case InsertionMode::Initial:
+        ASSERT(insertionMode() == InsertionMode::Initial);
</ins><span class="cx">         defaultForInitial();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHTMLMode:
-        ASSERT(insertionMode() == BeforeHTMLMode);
</del><ins>+    case InsertionMode::BeforeHTML:
+        ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</ins><span class="cx">         if (token-&gt;name() != headTag &amp;&amp; token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="cx">             parseError(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHTML();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHeadMode:
-        ASSERT(insertionMode() == BeforeHeadMode);
</del><ins>+    case InsertionMode::BeforeHead:
+        ASSERT(insertionMode() == InsertionMode::BeforeHead);
</ins><span class="cx">         if (token-&gt;name() != headTag &amp;&amp; token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="cx">             parseError(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHead();
</span><span class="cx">         // Fall through.
</span><del>-    case InHeadMode:
-        ASSERT(insertionMode() == InHeadMode);
</del><ins>+    case InsertionMode::InHead:
+        ASSERT(insertionMode() == InsertionMode::InHead);
</ins><span class="cx">         // FIXME: This case should be broken out into processEndTagForInHead,
</span><span class="cx">         // because other end tag cases now refer to it (&quot;process the token for using the rules of the &quot;in head&quot; insertion mode&quot;).
</span><del>-        // but because the logic falls through to AfterHeadMode, that gets a little messy.
</del><ins>+        // but because the logic falls through to InsertionMode::AfterHead, that gets a little messy.
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">         if (token-&gt;name() == templateTag) {
</span><span class="cx">             processTemplateEndTag(token);
</span><span class="lines">@@ -2079,7 +2079,7 @@
</span><span class="cx"> #endif
</span><span class="cx">         if (token-&gt;name() == headTag) {
</span><span class="cx">             m_tree.openElements()-&gt;popHTMLHeadElement();
</span><del>-            setInsertionMode(AfterHeadMode);
</del><ins>+            setInsertionMode(InsertionMode::AfterHead);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="lines">@@ -2088,24 +2088,24 @@
</span><span class="cx">         }
</span><span class="cx">         defaultForInHead();
</span><span class="cx">         // Fall through.
</span><del>-    case AfterHeadMode:
-        ASSERT(insertionMode() == AfterHeadMode);
</del><ins>+    case InsertionMode::AfterHead:
+        ASSERT(insertionMode() == InsertionMode::AfterHead);
</ins><span class="cx">         if (token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="cx">             parseError(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForAfterHead();
</span><span class="cx">         // Fall through
</span><del>-    case InBodyMode:
-        ASSERT(insertionMode() == InBodyMode);
</del><ins>+    case InsertionMode::InBody:
+        ASSERT(insertionMode() == InsertionMode::InBody);
</ins><span class="cx">         processEndTagForInBody(token);
</span><span class="cx">         break;
</span><del>-    case InTableMode:
-        ASSERT(insertionMode() == InTableMode);
</del><ins>+    case InsertionMode::InTable:
+        ASSERT(insertionMode() == InsertionMode::InTable);
</ins><span class="cx">         processEndTagForInTable(token);
</span><span class="cx">         break;
</span><del>-    case InCaptionMode:
-        ASSERT(insertionMode() == InCaptionMode);
</del><ins>+    case InsertionMode::InCaption:
+        ASSERT(insertionMode() == InsertionMode::InCaption);
</ins><span class="cx">         if (token-&gt;name() == captionTag) {
</span><span class="cx">             processCaptionEndTagForInCaption();
</span><span class="cx">             return;
</span><span class="lines">@@ -2131,8 +2131,8 @@
</span><span class="cx">         }
</span><span class="cx">         processEndTagForInBody(token);
</span><span class="cx">         break;
</span><del>-    case InColumnGroupMode:
-        ASSERT(insertionMode() == InColumnGroupMode);
</del><ins>+    case InsertionMode::InColumnGroup:
+        ASSERT(insertionMode() == InsertionMode::InColumnGroup);
</ins><span class="cx">         if (token-&gt;name() == colgroupTag) {
</span><span class="cx">             processColgroupEndTagForInColumnGroup();
</span><span class="cx">             return;
</span><span class="lines">@@ -2153,42 +2153,42 @@
</span><span class="cx">         }
</span><span class="cx">         processEndTag(token);
</span><span class="cx">         break;
</span><del>-    case InRowMode:
-        ASSERT(insertionMode() == InRowMode);
</del><ins>+    case InsertionMode::InRow:
+        ASSERT(insertionMode() == InsertionMode::InRow);
</ins><span class="cx">         processEndTagForInRow(token);
</span><span class="cx">         break;
</span><del>-    case InCellMode:
-        ASSERT(insertionMode() == InCellMode);
</del><ins>+    case InsertionMode::InCell:
+        ASSERT(insertionMode() == InsertionMode::InCell);
</ins><span class="cx">         processEndTagForInCell(token);
</span><span class="cx">         break;
</span><del>-    case InTableBodyMode:
-        ASSERT(insertionMode() == InTableBodyMode);
</del><ins>+    case InsertionMode::InTableBody:
+        ASSERT(insertionMode() == InsertionMode::InTableBody);
</ins><span class="cx">         processEndTagForInTableBody(token);
</span><span class="cx">         break;
</span><del>-    case AfterBodyMode:
-        ASSERT(insertionMode() == AfterBodyMode);
</del><ins>+    case InsertionMode::AfterBody:
+        ASSERT(insertionMode() == InsertionMode::AfterBody);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="cx">             if (isParsingFragment()) {
</span><span class="cx">                 parseError(token);
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><del>-            setInsertionMode(AfterAfterBodyMode);
</del><ins>+            setInsertionMode(InsertionMode::AfterAfterBody);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         // Fall through.
</span><del>-    case AfterAfterBodyMode:
-        ASSERT(insertionMode() == AfterBodyMode || insertionMode() == AfterAfterBodyMode);
</del><ins>+    case InsertionMode::AfterAfterBody:
+        ASSERT(insertionMode() == InsertionMode::AfterBody || insertionMode() == InsertionMode::AfterAfterBody);
</ins><span class="cx">         parseError(token);
</span><del>-        setInsertionMode(InBodyMode);
</del><ins>+        setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         processEndTag(token);
</span><span class="cx">         break;
</span><del>-    case InHeadNoscriptMode:
-        ASSERT(insertionMode() == InHeadNoscriptMode);
</del><ins>+    case InsertionMode::InHeadNoscript:
+        ASSERT(insertionMode() == InsertionMode::InHeadNoscript);
</ins><span class="cx">         if (token-&gt;name() == noscriptTag) {
</span><span class="cx">             ASSERT(m_tree.currentStackItem()-&gt;hasTagName(noscriptTag));
</span><span class="cx">             m_tree.openElements()-&gt;pop();
</span><span class="cx">             ASSERT(m_tree.currentStackItem()-&gt;hasTagName(headTag));
</span><del>-            setInsertionMode(InHeadMode);
</del><ins>+            setInsertionMode(InsertionMode::InHead);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (token-&gt;name() != brTag) {
</span><span class="lines">@@ -2198,7 +2198,7 @@
</span><span class="cx">         defaultForInHeadNoscript();
</span><span class="cx">         processToken(token);
</span><span class="cx">         break;
</span><del>-    case TextMode:
</del><ins>+    case InsertionMode::Text:
</ins><span class="cx">         if (token-&gt;name() == scriptTag) {
</span><span class="cx">             // Pause ourselves so that parsing stops until the script can be processed by the caller.
</span><span class="cx">             ASSERT(m_tree.currentStackItem()-&gt;hasTagName(scriptTag));
</span><span class="lines">@@ -2220,8 +2220,8 @@
</span><span class="cx">         m_tree.openElements()-&gt;pop();
</span><span class="cx">         setInsertionMode(m_originalInsertionMode);
</span><span class="cx">         break;
</span><del>-    case InFramesetMode:
-        ASSERT(insertionMode() == InFramesetMode);
</del><ins>+    case InsertionMode::InFrameset:
+        ASSERT(insertionMode() == InsertionMode::InFrameset);
</ins><span class="cx">         if (token-&gt;name() == framesetTag) {
</span><span class="cx">             bool ignoreFramesetForFragmentParsing  = m_tree.currentIsRootNode();
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="lines">@@ -2234,7 +2234,7 @@
</span><span class="cx">             }
</span><span class="cx">             m_tree.openElements()-&gt;pop();
</span><span class="cx">             if (!isParsingFragment() &amp;&amp; !m_tree.currentStackItem()-&gt;hasTagName(framesetTag))
</span><del>-                setInsertionMode(AfterFramesetMode);
</del><ins>+                setInsertionMode(InsertionMode::AfterFrameset);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="lines">@@ -2244,19 +2244,19 @@
</span><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx">         break;
</span><del>-    case AfterFramesetMode:
-        ASSERT(insertionMode() == AfterFramesetMode);
</del><ins>+    case InsertionMode::AfterFrameset:
+        ASSERT(insertionMode() == InsertionMode::AfterFrameset);
</ins><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><del>-            setInsertionMode(AfterAfterFramesetMode);
</del><ins>+            setInsertionMode(InsertionMode::AfterAfterFrameset);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         // Fall through.
</span><del>-    case AfterAfterFramesetMode:
-        ASSERT(insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode);
</del><ins>+    case InsertionMode::AfterAfterFrameset:
+        ASSERT(insertionMode() == InsertionMode::AfterFrameset || insertionMode() == InsertionMode::AfterAfterFrameset);
</ins><span class="cx">         parseError(token);
</span><span class="cx">         break;
</span><del>-    case InSelectInTableMode:
-        ASSERT(insertionMode() == InSelectInTableMode);
</del><ins>+    case InsertionMode::InSelectInTable:
+        ASSERT(insertionMode() == InsertionMode::InSelectInTable);
</ins><span class="cx">         if (token-&gt;name() == captionTag
</span><span class="cx">             || token-&gt;name() == tableTag
</span><span class="cx">             || isTableBodyContextTag(token-&gt;name())
</span><span class="lines">@@ -2271,8 +2271,8 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         // Fall through.
</span><del>-    case InSelectMode:
-        ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode);
</del><ins>+    case InsertionMode::InSelect:
+        ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable);
</ins><span class="cx">         if (token-&gt;name() == optgroupTag) {
</span><span class="cx">             if (isHTMLOptionElement(m_tree.currentStackItem()-&gt;node()) &amp;&amp; m_tree.oneBelowTop() &amp;&amp; isHTMLOptGroupElement(m_tree.oneBelowTop()-&gt;node()))
</span><span class="cx">                 processFakeEndTag(optionTag);
</span><span class="lines">@@ -2308,11 +2308,11 @@
</span><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx">         break;
</span><del>-    case InTableTextMode:
</del><ins>+    case InsertionMode::InTableText:
</ins><span class="cx">         defaultForInTableText();
</span><span class="cx">         processEndTag(token);
</span><span class="cx">         break;
</span><del>-    case TemplateContentsMode:
</del><ins>+    case InsertionMode::TemplateContents:
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">         if (token-&gt;name() == templateTag) {
</span><span class="cx">             processTemplateEndTag(token);
</span><span class="lines">@@ -2330,18 +2330,18 @@
</span><span class="cx"> void HTMLTreeBuilder::processComment(AtomicHTMLToken* token)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(token-&gt;type() == HTMLToken::Comment);
</span><del>-    if (m_insertionMode == InitialMode
-        || m_insertionMode == BeforeHTMLMode
-        || m_insertionMode == AfterAfterBodyMode
-        || m_insertionMode == AfterAfterFramesetMode) {
</del><ins>+    if (m_insertionMode == InsertionMode::Initial
+        || m_insertionMode == InsertionMode::BeforeHTML
+        || m_insertionMode == InsertionMode::AfterAfterBody
+        || m_insertionMode == InsertionMode::AfterAfterFrameset) {
</ins><span class="cx">         m_tree.insertCommentOnDocument(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    if (m_insertionMode == AfterBodyMode) {
</del><ins>+    if (m_insertionMode == InsertionMode::AfterBody) {
</ins><span class="cx">         m_tree.insertCommentOnHTMLHtmlElement(token);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    if (m_insertionMode == InTableTextMode) {
</del><ins>+    if (m_insertionMode == InsertionMode::InTableText) {
</ins><span class="cx">         defaultForInTableText();
</span><span class="cx">         processComment(token);
</span><span class="cx">         return;
</span><span class="lines">@@ -2469,32 +2469,32 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     switch (insertionMode()) {
</span><del>-    case InitialMode: {
-        ASSERT(insertionMode() == InitialMode);
</del><ins>+    case InsertionMode::Initial: {
+        ASSERT(insertionMode() == InsertionMode::Initial);
</ins><span class="cx">         buffer.skipLeadingWhitespace();
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForInitial();
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case BeforeHTMLMode: {
-        ASSERT(insertionMode() == BeforeHTMLMode);
</del><ins>+    case InsertionMode::BeforeHTML: {
+        ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</ins><span class="cx">         buffer.skipLeadingWhitespace();
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForBeforeHTML();
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case BeforeHeadMode: {
-        ASSERT(insertionMode() == BeforeHeadMode);
</del><ins>+    case InsertionMode::BeforeHead: {
+        ASSERT(insertionMode() == InsertionMode::BeforeHead);
</ins><span class="cx">         buffer.skipLeadingWhitespace();
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForBeforeHead();
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case InHeadMode: {
-        ASSERT(insertionMode() == InHeadMode);
</del><ins>+    case InsertionMode::InHead: {
+        ASSERT(insertionMode() == InsertionMode::InHead);
</ins><span class="cx">         String leadingWhitespace = buffer.takeLeadingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty())
</span><span class="cx">             m_tree.insertTextNode(leadingWhitespace, AllWhitespace);
</span><span class="lines">@@ -2503,8 +2503,8 @@
</span><span class="cx">         defaultForInHead();
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case AfterHeadMode: {
-        ASSERT(insertionMode() == AfterHeadMode);
</del><ins>+    case InsertionMode::AfterHead: {
+        ASSERT(insertionMode() == InsertionMode::AfterHead);
</ins><span class="cx">         String leadingWhitespace = buffer.takeLeadingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty())
</span><span class="cx">             m_tree.insertTextNode(leadingWhitespace, AllWhitespace);
</span><span class="lines">@@ -2513,23 +2513,23 @@
</span><span class="cx">         defaultForAfterHead();
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case InBodyMode:
-    case InCaptionMode:
-    case TemplateContentsMode:
-    case InCellMode: {
</del><ins>+    case InsertionMode::InBody:
+    case InsertionMode::InCaption:
+    case InsertionMode::TemplateContents:
+    case InsertionMode::InCell: {
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-        ASSERT(insertionMode() == InBodyMode || insertionMode() == InCaptionMode || insertionMode() == InCellMode || insertionMode() == TemplateContentsMode);
</del><ins>+        ASSERT(insertionMode() == InsertionMode::InBody || insertionMode() == InsertionMode::InCaption || insertionMode() == InsertionMode::InCell || insertionMode() == InsertionMode::TemplateContents);
</ins><span class="cx"> #else
</span><del>-        ASSERT(insertionMode() != TemplateContentsMode);
-        ASSERT(insertionMode() == InBodyMode || insertionMode() == InCaptionMode || insertionMode() == InCellMode);
</del><ins>+        ASSERT(insertionMode() != InsertionMode::TemplateContents);
+        ASSERT(insertionMode() == InsertionMode::InBody || insertionMode() == InsertionMode::InCaption || insertionMode() == InsertionMode::InCell);
</ins><span class="cx"> #endif
</span><span class="cx">         processCharacterBufferForInBody(buffer);
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case InTableMode:
-    case InTableBodyMode:
-    case InRowMode: {
-        ASSERT(insertionMode() == InTableMode || insertionMode() == InTableBodyMode || insertionMode() == InRowMode);
</del><ins>+    case InsertionMode::InTable:
+    case InsertionMode::InTableBody:
+    case InsertionMode::InRow: {
+        ASSERT(insertionMode() == InsertionMode::InTable || insertionMode() == InsertionMode::InTableBody || insertionMode() == InsertionMode::InRow);
</ins><span class="cx">         ASSERT(m_pendingTableCharacters.isEmpty());
</span><span class="cx">         if (m_tree.currentStackItem()-&gt;isElementNode()
</span><span class="cx">             &amp;&amp; (isHTMLTableElement(m_tree.currentStackItem()-&gt;node())
</span><span class="lines">@@ -2538,8 +2538,8 @@
</span><span class="cx">                 || m_tree.currentStackItem()-&gt;hasTagName(HTMLNames::theadTag)
</span><span class="cx">                 || m_tree.currentStackItem()-&gt;hasTagName(HTMLNames::trTag))) {
</span><span class="cx">             m_originalInsertionMode = m_insertionMode;
</span><del>-            setInsertionMode(InTableTextMode);
-            // Note that we fall through to the InTableTextMode case below.
</del><ins>+            setInsertionMode(InsertionMode::InTableText);
+            // Note that we fall through to the InsertionMode::InTableText case below.
</ins><span class="cx">         } else {
</span><span class="cx">             HTMLConstructionSite::RedirectToFosterParentGuard redirecter(m_tree);
</span><span class="cx">             processCharacterBufferForInBody(buffer);
</span><span class="lines">@@ -2547,12 +2547,12 @@
</span><span class="cx">         }
</span><span class="cx">         // Fall through.
</span><span class="cx">     }
</span><del>-    case InTableTextMode: {
</del><ins>+    case InsertionMode::InTableText: {
</ins><span class="cx">         buffer.giveRemainingTo(m_pendingTableCharacters);
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case InColumnGroupMode: {
-        ASSERT(insertionMode() == InColumnGroupMode);
</del><ins>+    case InsertionMode::InColumnGroup: {
+        ASSERT(insertionMode() == InsertionMode::InColumnGroup);
</ins><span class="cx">         String leadingWhitespace = buffer.takeLeadingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty())
</span><span class="cx">             m_tree.insertTextNode(leadingWhitespace, AllWhitespace);
</span><span class="lines">@@ -2567,21 +2567,21 @@
</span><span class="cx">         }
</span><span class="cx">         goto ReprocessBuffer;
</span><span class="cx">     }
</span><del>-    case AfterBodyMode:
-    case AfterAfterBodyMode: {
-        ASSERT(insertionMode() == AfterBodyMode || insertionMode() == AfterAfterBodyMode);
</del><ins>+    case InsertionMode::AfterBody:
+    case InsertionMode::AfterAfterBody: {
+        ASSERT(insertionMode() == InsertionMode::AfterBody || insertionMode() == InsertionMode::AfterAfterBody);
</ins><span class="cx">         // FIXME: parse error
</span><del>-        setInsertionMode(InBodyMode);
</del><ins>+        setInsertionMode(InsertionMode::InBody);
</ins><span class="cx">         goto ReprocessBuffer;
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case TextMode: {
-        ASSERT(insertionMode() == TextMode);
</del><ins>+    case InsertionMode::Text: {
+        ASSERT(insertionMode() == InsertionMode::Text);
</ins><span class="cx">         m_tree.insertTextNode(buffer.takeRemaining());
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case InHeadNoscriptMode: {
-        ASSERT(insertionMode() == InHeadNoscriptMode);
</del><ins>+    case InsertionMode::InHeadNoscript: {
+        ASSERT(insertionMode() == InsertionMode::InHeadNoscript);
</ins><span class="cx">         String leadingWhitespace = buffer.takeLeadingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty())
</span><span class="cx">             m_tree.insertTextNode(leadingWhitespace, AllWhitespace);
</span><span class="lines">@@ -2591,9 +2591,9 @@
</span><span class="cx">         goto ReprocessBuffer;
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case InFramesetMode:
-    case AfterFramesetMode: {
-        ASSERT(insertionMode() == InFramesetMode || insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode);
</del><ins>+    case InsertionMode::InFrameset:
+    case InsertionMode::AfterFrameset: {
+        ASSERT(insertionMode() == InsertionMode::InFrameset || insertionMode() == InsertionMode::AfterFrameset || insertionMode() == InsertionMode::AfterAfterFrameset);
</ins><span class="cx">         String leadingWhitespace = buffer.takeRemainingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty())
</span><span class="cx">             m_tree.insertTextNode(leadingWhitespace, AllWhitespace);
</span><span class="lines">@@ -2601,13 +2601,13 @@
</span><span class="cx">         // non-whitespace characters.
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case InSelectInTableMode:
-    case InSelectMode: {
-        ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode);
</del><ins>+    case InsertionMode::InSelectInTable:
+    case InsertionMode::InSelect: {
+        ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable);
</ins><span class="cx">         m_tree.insertTextNode(buffer.takeRemaining());
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    case AfterAfterFramesetMode: {
</del><ins>+    case InsertionMode::AfterAfterFrameset: {
</ins><span class="cx">         String leadingWhitespace = buffer.takeRemainingWhitespace();
</span><span class="cx">         if (!leadingWhitespace.isEmpty()) {
</span><span class="cx">             m_tree.reconstructTheActiveFormattingElements();
</span><span class="lines">@@ -2641,35 +2641,35 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(token-&gt;type() == HTMLToken::EndOfFile);
</span><span class="cx">     switch (insertionMode()) {
</span><del>-    case InitialMode:
-        ASSERT(insertionMode() == InitialMode);
</del><ins>+    case InsertionMode::Initial:
+        ASSERT(insertionMode() == InsertionMode::Initial);
</ins><span class="cx">         defaultForInitial();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHTMLMode:
-        ASSERT(insertionMode() == BeforeHTMLMode);
</del><ins>+    case InsertionMode::BeforeHTML:
+        ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</ins><span class="cx">         defaultForBeforeHTML();
</span><span class="cx">         // Fall through.
</span><del>-    case BeforeHeadMode:
-        ASSERT(insertionMode() == BeforeHeadMode);
</del><ins>+    case InsertionMode::BeforeHead:
+        ASSERT(insertionMode() == InsertionMode::BeforeHead);
</ins><span class="cx">         defaultForBeforeHead();
</span><span class="cx">         // Fall through.
</span><del>-    case InHeadMode:
-        ASSERT(insertionMode() == InHeadMode);
</del><ins>+    case InsertionMode::InHead:
+        ASSERT(insertionMode() == InsertionMode::InHead);
</ins><span class="cx">         defaultForInHead();
</span><span class="cx">         // Fall through.
</span><del>-    case AfterHeadMode:
-        ASSERT(insertionMode() == AfterHeadMode);
</del><ins>+    case InsertionMode::AfterHead:
+        ASSERT(insertionMode() == InsertionMode::AfterHead);
</ins><span class="cx">         defaultForAfterHead();
</span><span class="cx">         // Fall through
</span><del>-    case InBodyMode:
-    case InCellMode:
-    case InCaptionMode:
-    case InRowMode:
</del><ins>+    case InsertionMode::InBody:
+    case InsertionMode::InCell:
+    case InsertionMode::InCaption:
+    case InsertionMode::InRow:
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-        ASSERT(insertionMode() == InBodyMode || insertionMode() == InCellMode || insertionMode() == InCaptionMode || insertionMode() == InRowMode || insertionMode() == TemplateContentsMode);
</del><ins>+        ASSERT(insertionMode() == InsertionMode::InBody || insertionMode() == InsertionMode::InCell || insertionMode() == InsertionMode::InCaption || insertionMode() == InsertionMode::InRow || insertionMode() == InsertionMode::TemplateContents);
</ins><span class="cx"> #else
</span><del>-        ASSERT(insertionMode() != TemplateContentsMode);
-        ASSERT(insertionMode() == InBodyMode || insertionMode() == InCellMode || insertionMode() == InCaptionMode || insertionMode() == InRowMode);
</del><ins>+        ASSERT(insertionMode() != InsertionMode::TemplateContents);
+        ASSERT(insertionMode() == InsertionMode::InBody || insertionMode() == InsertionMode::InCell || insertionMode() == InsertionMode::InCaption || insertionMode() == InsertionMode::InRow);
</ins><span class="cx"> #endif
</span><span class="cx">         notImplemented(); // Emit parse error based on what elements are still open.
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="lines">@@ -2678,20 +2678,20 @@
</span><span class="cx">                 return;
</span><span class="cx"> #endif
</span><span class="cx">         break;
</span><del>-    case AfterBodyMode:
-    case AfterAfterBodyMode:
-        ASSERT(insertionMode() == AfterBodyMode || insertionMode() == AfterAfterBodyMode);
</del><ins>+    case InsertionMode::AfterBody:
+    case InsertionMode::AfterAfterBody:
+        ASSERT(insertionMode() == InsertionMode::AfterBody || insertionMode() == InsertionMode::AfterAfterBody);
</ins><span class="cx">         break;
</span><del>-    case InHeadNoscriptMode:
-        ASSERT(insertionMode() == InHeadNoscriptMode);
</del><ins>+    case InsertionMode::InHeadNoscript:
+        ASSERT(insertionMode() == InsertionMode::InHeadNoscript);
</ins><span class="cx">         defaultForInHeadNoscript();
</span><span class="cx">         processEndOfFile(token);
</span><span class="cx">         return;
</span><del>-    case AfterFramesetMode:
-    case AfterAfterFramesetMode:
-        ASSERT(insertionMode() == AfterFramesetMode || insertionMode() == AfterAfterFramesetMode);
</del><ins>+    case InsertionMode::AfterFrameset:
+    case InsertionMode::AfterAfterFrameset:
+        ASSERT(insertionMode() == InsertionMode::AfterFrameset || insertionMode() == InsertionMode::AfterAfterFrameset);
</ins><span class="cx">         break;
</span><del>-    case InColumnGroupMode:
</del><ins>+    case InsertionMode::InColumnGroup:
</ins><span class="cx">         if (m_tree.currentIsRootNode()) {
</span><span class="cx">             ASSERT(isParsingFragment());
</span><span class="cx">             return; // FIXME: Should we break here instead of returning?
</span><span class="lines">@@ -2703,12 +2703,12 @@
</span><span class="cx"> #endif
</span><span class="cx">         processColgroupEndTagForInColumnGroup();
</span><span class="cx">         // Fall through
</span><del>-    case InFramesetMode:
-    case InTableMode:
-    case InTableBodyMode:
-    case InSelectInTableMode:
-    case InSelectMode:
-        ASSERT(insertionMode() == InSelectMode || insertionMode() == InSelectInTableMode || insertionMode() == InTableMode || insertionMode() == InFramesetMode || insertionMode() == InTableBodyMode || insertionMode() == InColumnGroupMode);
</del><ins>+    case InsertionMode::InFrameset:
+    case InsertionMode::InTable:
+    case InsertionMode::InTableBody:
+    case InsertionMode::InSelectInTable:
+    case InsertionMode::InSelect:
+        ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable || insertionMode() == InsertionMode::InTable || insertionMode() == InsertionMode::InFrameset || insertionMode() == InsertionMode::InTableBody || insertionMode() == InsertionMode::InColumnGroup);
</ins><span class="cx">         if (m_tree.currentNode() != m_tree.openElements()-&gt;rootNode())
</span><span class="cx">             parseError(token);
</span><span class="cx"> 
</span><span class="lines">@@ -2718,20 +2718,20 @@
</span><span class="cx">                 return;
</span><span class="cx"> #endif
</span><span class="cx">         break;
</span><del>-    case InTableTextMode:
</del><ins>+    case InsertionMode::InTableText:
</ins><span class="cx">         defaultForInTableText();
</span><span class="cx">         processEndOfFile(token);
</span><span class="cx">         return;
</span><del>-    case TextMode:
</del><ins>+    case InsertionMode::Text:
</ins><span class="cx">         parseError(token);
</span><span class="cx">         if (m_tree.currentStackItem()-&gt;hasTagName(scriptTag))
</span><span class="cx">             notImplemented(); // mark the script element as &quot;already started&quot;.
</span><span class="cx">         m_tree.openElements()-&gt;pop();
</span><del>-        ASSERT(m_originalInsertionMode != TextMode);
</del><ins>+        ASSERT(m_originalInsertionMode != InsertionMode::Text);
</ins><span class="cx">         setInsertionMode(m_originalInsertionMode);
</span><span class="cx">         processEndOfFile(token);
</span><span class="cx">         return;
</span><del>-    case TemplateContentsMode:
</del><ins>+    case InsertionMode::TemplateContents:
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="cx">         if (processEndOfFileForInTemplateContents(token))
</span><span class="cx">             return;
</span><span class="lines">@@ -2749,14 +2749,14 @@
</span><span class="cx">     notImplemented();
</span><span class="cx">     m_tree.setDefaultCompatibilityMode();
</span><span class="cx">     // FIXME: parse error
</span><del>-    setInsertionMode(BeforeHTMLMode);
</del><ins>+    setInsertionMode(InsertionMode::BeforeHTML);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTreeBuilder::defaultForBeforeHTML()
</span><span class="cx"> {
</span><span class="cx">     AtomicHTMLToken startHTML(HTMLToken::StartTag, htmlTag.localName());
</span><span class="cx">     m_tree.insertHTMLHtmlStartTagBeforeHTML(&amp;startHTML);
</span><del>-    setInsertionMode(BeforeHeadMode);
</del><ins>+    setInsertionMode(InsertionMode::BeforeHead);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTreeBuilder::defaultForBeforeHead()
</span><span class="lines">@@ -2828,7 +2828,7 @@
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx">         m_tree.insertHTMLElement(token);
</span><del>-        setInsertionMode(InHeadNoscriptMode);
</del><ins>+        setInsertionMode(InsertionMode::InHeadNoscript);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     if (token-&gt;name() == noframesTag || token-&gt;name() == styleTag) {
</span><span class="lines">@@ -2861,7 +2861,7 @@
</span><span class="cx">     if (m_parser.tokenizer())
</span><span class="cx">         m_parser.tokenizer()-&gt;setState(HTMLTokenizer::RCDATAState);
</span><span class="cx">     m_originalInsertionMode = m_insertionMode;
</span><del>-    setInsertionMode(TextMode);
</del><ins>+    setInsertionMode(InsertionMode::Text);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTreeBuilder::processGenericRawTextStartTag(AtomicHTMLToken* token)
</span><span class="lines">@@ -2871,7 +2871,7 @@
</span><span class="cx">     if (m_parser.tokenizer())
</span><span class="cx">         m_parser.tokenizer()-&gt;setState(HTMLTokenizer::RAWTEXTState);
</span><span class="cx">     m_originalInsertionMode = m_insertionMode;
</span><del>-    setInsertionMode(TextMode);
</del><ins>+    setInsertionMode(InsertionMode::Text);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTreeBuilder::processScriptStartTag(AtomicHTMLToken* token)
</span><span class="lines">@@ -2886,7 +2886,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_scriptToProcessStartPosition = position;
</span><span class="cx"> 
</span><del>-    setInsertionMode(TextMode);
</del><ins>+    setInsertionMode(InsertionMode::Text);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#tree-construction
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuilderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h (162292 => 162293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h        2014-01-19 18:42:01 UTC (rev 162292)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h        2014-01-19 19:00:27 UTC (rev 162293)
</span><span class="lines">@@ -88,30 +88,30 @@
</span><span class="cx">     class ExternalCharacterTokenBuffer;
</span><span class="cx">     // Represents HTML5 &quot;insertion mode&quot;
</span><span class="cx">     // http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#insertion-mode
</span><del>-    enum InsertionMode {
-        InitialMode,
-        BeforeHTMLMode,
-        BeforeHeadMode,
-        InHeadMode,
-        InHeadNoscriptMode,
-        AfterHeadMode,
-        TemplateContentsMode,
-        InBodyMode,
-        TextMode,
-        InTableMode,
-        InTableTextMode,
-        InCaptionMode,
-        InColumnGroupMode,
-        InTableBodyMode,
-        InRowMode,
-        InCellMode,
-        InSelectMode,
-        InSelectInTableMode,
-        AfterBodyMode,
-        InFramesetMode,
-        AfterFramesetMode,
-        AfterAfterBodyMode,
-        AfterAfterFramesetMode,
</del><ins>+    enum class InsertionMode {
+        Initial,
+        BeforeHTML,
+        BeforeHead,
+        InHead,
+        InHeadNoscript,
+        AfterHead,
+        TemplateContents,
+        InBody,
+        Text,
+        InTable,
+        InTableText,
+        InCaption,
+        InColumnGroup,
+        InTableBody,
+        InRow,
+        InCell,
+        InSelect,
+        InSelectInTable,
+        AfterBody,
+        InFrameset,
+        AfterFrameset,
+        AfterAfterBody,
+        AfterAfterFrameset,
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre>
</div>
</div>

</body>
</html>