<!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>[58631] trunk/src/wp-includes/html-api/class-wp-html-processor-state.php: HTML API: Add missing insertion mode constants.</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 { white-space: pre-line; 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" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/58631">58631</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/58631","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>dmsnell</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-07-02 21:45:18 +0000 (Tue, 02 Jul 2024)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>HTML API: Add missing insertion mode constants.

As the HTML Processor starts to support other insertion modes outside of
"IN BODY" it needs to be aware of those other modes. This patch
introduces the missing insertion modes in preparation for adding that
support.

Extracted as necessary prep work to the following more complete change:
https://github.com/WordPress/wordpress-develop/pull/6020

Props jonsurrell.
See <a href="https://core.trac.wordpress.org/ticket/61549">#61549</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludeshtmlapiclasswphtmlprocessorstatephp">trunk/src/wp-includes/html-api/class-wp-html-processor-state.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludeshtmlapiclasswphtmlprocessorstatephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/html-api/class-wp-html-processor-state.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/html-api/class-wp-html-processor-state.php  2024-07-02 20:46:46 UTC (rev 58630)
+++ trunk/src/wp-includes/html-api/class-wp-html-processor-state.php    2024-07-02 21:45:18 UTC (rev 58631)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -60,6 +60,162 @@
</span><span class="cx" style="display: block; padding: 0 10px">        const INSERTION_MODE_IN_BODY = 'insertion-mode-in-body';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * In select insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-inselect
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_SELECT = 'insertion-mode-in-select';
+
+       /**
+        * In select in table insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-inselectintable
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_SELECT_IN_TABLE = 'insertion-mode-in-select-in-table';
+
+       /**
+        * In table insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-intable
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_TABLE = 'insertion-mode-in-table';
+
+       /**
+        * In caption insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-incaption
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_CAPTION = 'insertion-mode-in-caption';
+
+       /**
+        * In table body insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-intablebody
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_TABLE_BODY = 'insertion-mode-in-table-body';
+
+       /**
+        * In row insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-inrow
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_ROW = 'insertion-mode-in-row';
+
+       /**
+        * In cell insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-incell
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_CELL = 'insertion-mode-in-cell';
+
+       /**
+        * In column group insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-incolumngroup
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_COLUMN_GROUP = 'insertion-mode-in-column-group';
+
+       /**
+        * In frameset insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-inframeset
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_FRAMESET = 'insertion-mode-in-frameset';
+
+       /**
+        * In head insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-inhead
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_HEAD = 'insertion-mode-in-head';
+
+       /**
+        * Before head insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-beforehead
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_BEFORE_HEAD = 'insertion-mode-before-head';
+
+       /**
+        * After head insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-afterhead
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_AFTER_HEAD = 'insertion-mode-after-head';
+
+       /**
+        * In template insertion mode for full HTML parser.
+        *
+        * @since 6.7.0
+        *
+        * @see https://html.spec.whatwg.org/#parsing-main-intemplate
+        * @see WP_HTML_Processor_State::$insertion_mode
+        *
+        * @var string
+        */
+       const INSERTION_MODE_IN_TEMPLATE = 'insertion-mode-in-template';
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Tracks open elements while scanning HTML.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * This property is initialized in the constructor and never null.
</span></span></pre>
</div>
</div>

</body>
</html>