--- a/parser/html/javasrc/AttributeName.java
+++ b/parser/html/javasrc/AttributeName.java
@@ -265,27 +265,27 @@ public final class AttributeName
* @param offset
* ignored
* @param length
* length of data
* @param checkNcName
* whether to check ncnameness
* @return an <code>AttributeName</code> corresponding to the argument data
*/
- static AttributeName nameByBuffer(@NoLength char[] buf, int offset,
+ @Inline static AttributeName nameByBuffer(@NoLength char[] buf, int offset,
int length
, Interner interner) {
// XXX deal with offset
@Unsigned int hash = AttributeName.bufToHash(buf, length);
int index = Arrays.binarySearch(AttributeName.ATTRIBUTE_HASHES, hash);
if (index < 0) {
return null;
}
AttributeName attributeName = AttributeName.ATTRIBUTE_NAMES[index];
- @Local String name = attributeName.getLocal(AttributeName.HTML);
+ @Local String name = attributeName.getLocal(0);
if (!Portability.localEqualsBuffer(name, buf, offset, length)) {
return null;
}
return attributeName;
}
/**
* This method has to return a unique positive integer for each well-known
@@ -411,21 +411,21 @@ public final class AttributeName
// CPPONLY: public AttributeName() {
// CPPONLY: this.uri = AttributeName.ALL_NO_NS;
// CPPONLY: this.local = AttributeName.SAME_LOCAL(null);
// CPPONLY: this.prefix = ALL_NO_PREFIX;
// CPPONLY: this.custom = true;
// CPPONLY: }
// CPPONLY:
- // CPPONLY: public boolean isInterned() {
+ // CPPONLY: @Inline public boolean isInterned() {
// CPPONLY: return !custom;
// CPPONLY: }
// CPPONLY:
- // CPPONLY: public void setNameForNonInterned(@Local String name) {
+ // CPPONLY: @Inline public void setNameForNonInterned(@Local String name) {
// CPPONLY: assert custom;
// CPPONLY: local[0] = name;
// CPPONLY: local[1] = name;
// CPPONLY: local[2] = name;
// CPPONLY: }
/**
* Creates an <code>AttributeName</code> for a local name.
--- a/parser/html/javasrc/ElementName.java
+++ b/parser/html/javasrc/ElementName.java
@@ -100,25 +100,25 @@ public final class ElementName
@Inline public @Local String getCamelCaseName() {
return camelCaseName;
}
@Inline public int getFlags() {
return flags;
}
- public int getGroup() {
- return flags & GROUP_MASK;
+ @Inline public int getGroup() {
+ return flags & ElementName.GROUP_MASK;
}
- public boolean isInterned() {
- return (flags & NOT_INTERNED) == 0;
+ @Inline public boolean isInterned() {
+ return (flags & ElementName.NOT_INTERNED) == 0;
}
- static ElementName elementNameByBuffer(@NoLength char[] buf, int offset, int length, Interner interner) {
+ @Inline static ElementName elementNameByBuffer(@NoLength char[] buf, int offset, int length, Interner interner) {
@Unsigned int hash = ElementName.bufToHash(buf, length);
int index = Arrays.binarySearch(ElementName.ELEMENT_HASHES, hash);
if (index < 0) {
return null;
} else {
ElementName elementName = ElementName.ELEMENT_NAMES[index];
@Local String name = elementName.name;
if (!Portability.localEqualsBuffer(name, buf, offset, length)) {
@@ -177,22 +177,25 @@ public final class ElementName
this.camelCaseName = null;
this.flags = TreeBuilder.OTHER | NOT_INTERNED;
}
public void destructor() {
// The translator adds refcount debug code here.
}
- public void setNameForNonInterned(@Local String name) {
+ @Inline public void setNameForNonInterned(@Local String name) {
// No need to worry about refcounting the local name, because in the
// C++ case the scoped atom table remembers its own atoms.
this.name = name;
this.camelCaseName = name;
- assert this.flags == (TreeBuilder.OTHER | NOT_INTERNED);
+ // The assertion below relies on TreeBuilder.OTHER being zero!
+ // TreeBuilder.OTHER isn't referenced here, because it would create
+ // a circular C++ header dependency given that this method is inlined.
+ assert this.flags == ElementName.NOT_INTERNED;
}
public static final ElementName ANNOTATION_XML = new ElementName("annotation-xml", "annotation-xml", TreeBuilder.ANNOTATION_XML | SCOPING_AS_MATHML);
// CPPONLY: public static final ElementName ISINDEX = new ElementName("isindex", "isindex", TreeBuilder.ISINDEX | SPECIAL);
// [NOCPP[
public static final ElementName ISINDEX = new ElementName("isindex", "isindex", TreeBuilder.OTHER);
// ]NOCPP]
--- a/parser/html/moz.build
+++ b/parser/html/moz.build
@@ -31,16 +31,17 @@ EXPORTS += [
'nsHtml5MetaScannerHSupplement.h',
'nsHtml5Module.h',
'nsHtml5NamedCharacters.h',
'nsHtml5NamedCharactersAccel.h',
'nsHtml5OplessBuilder.h',
'nsHtml5OwningUTF16Buffer.h',
'nsHtml5Parser.h',
'nsHtml5PlainTextUtils.h',
+ 'nsHtml5Portability.h',
'nsHtml5RefPtr.h',
'nsHtml5Speculation.h',
'nsHtml5SpeculativeLoad.h',
'nsHtml5StreamListener.h',
'nsHtml5StreamParser.h',
'nsHtml5String.h',
'nsHtml5StringParser.h',
'nsHtml5SVGLoadDispatcher.h',
--- a/parser/html/nsHtml5AtomList.h
+++ b/parser/html/nsHtml5AtomList.h
@@ -15,68 +15,16 @@
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
-HTML5_ATOM(emptystring, "")
-HTML5_ATOM(title, "title")
-HTML5_ATOM(desc, "desc")
-HTML5_ATOM(foreignObject, "foreignObject")
-HTML5_ATOM(mi, "mi")
-HTML5_ATOM(mo, "mo")
-HTML5_ATOM(mn, "mn")
-HTML5_ATOM(ms, "ms")
-HTML5_ATOM(mtext, "mtext")
-HTML5_ATOM(annotation_xml, "annotation-xml")
-HTML5_ATOM(template_, "template")
-HTML5_ATOM(textarea, "textarea")
-HTML5_ATOM(style, "style")
-HTML5_ATOM(xmp, "xmp")
-HTML5_ATOM(iframe, "iframe")
-HTML5_ATOM(noembed, "noembed")
-HTML5_ATOM(noframes, "noframes")
-HTML5_ATOM(noscript, "noscript")
-HTML5_ATOM(plaintext, "plaintext")
-HTML5_ATOM(script, "script")
-HTML5_ATOM(svg, "svg")
-HTML5_ATOM(table, "table")
-HTML5_ATOM(caption, "caption")
-HTML5_ATOM(p, "p")
-HTML5_ATOM(address, "address")
-HTML5_ATOM(div, "div")
-HTML5_ATOM(a, "a")
-HTML5_ATOM(nobr, "nobr")
-HTML5_ATOM(name, "name")
-HTML5_ATOM(prompt, "prompt")
-HTML5_ATOM(action, "action")
-HTML5_ATOM(input, "input")
-HTML5_ATOM(option, "option")
-HTML5_ATOM(ruby, "ruby")
-HTML5_ATOM(rtc, "rtc")
-HTML5_ATOM(select, "select")
-HTML5_ATOM(optgroup, "optgroup")
-HTML5_ATOM(tbody, "tbody")
-HTML5_ATOM(tfoot, "tfoot")
-HTML5_ATOM(thead, "thead")
-HTML5_ATOM(frameset, "frameset")
-HTML5_ATOM(button, "button")
-HTML5_ATOM(ul, "ul")
-HTML5_ATOM(ol, "ol")
-HTML5_ATOM(html, "html")
-HTML5_ATOM(td, "td")
-HTML5_ATOM(th, "th")
-HTML5_ATOM(tr, "tr")
-HTML5_ATOM(colgroup, "colgroup")
-HTML5_ATOM(head, "head")
-HTML5_ATOM(body, "body")
-HTML5_ATOM(form, "form")
HTML5_ATOM(xmlns, "xmlns")
HTML5_ATOM(xlink, "xlink")
HTML5_ATOM(xml, "xml")
HTML5_ATOM(alt, "alt")
HTML5_ATOM(dir, "dir")
HTML5_ATOM(dur, "dur")
HTML5_ATOM(end, "end")
HTML5_ATOM(for_, "for")
@@ -247,16 +195,17 @@ HTML5_ATOM(hidefocus, "hidefocus")
HTML5_ATOM(index, "index")
HTML5_ATOM(irrelevant, "irrelevant")
HTML5_ATOM(intercept, "intercept")
HTML5_ATOM(integrity, "integrity")
HTML5_ATOM(linebreak, "linebreak")
HTML5_ATOM(label, "label")
HTML5_ATOM(linethickness, "linethickness")
HTML5_ATOM(mode, "mode")
+HTML5_ATOM(name, "name")
HTML5_ATOM(noresize, "noresize")
HTML5_ATOM(onbeforeunload, "onbeforeunload")
HTML5_ATOM(onrepeat, "onrepeat")
HTML5_ATOM(object, "object")
HTML5_ATOM(onselect, "onselect")
HTML5_ATOM(order, "order")
HTML5_ATOM(other, "other")
HTML5_ATOM(onreset, "onreset")
@@ -352,16 +301,17 @@ HTML5_ATOM(mathcolor, "mathcolor")
HTML5_ATOM(mathsize, "mathsize")
HTML5_ATOM(noshade, "noshade")
HTML5_ATOM(onchange, "onchange")
HTML5_ATOM(pathlength, "pathlength")
HTML5_ATOM(pathLength, "pathLength")
HTML5_ATOM(path, "path")
HTML5_ATOM(altimg, "altimg")
HTML5_ATOM(actiontype, "actiontype")
+HTML5_ATOM(action, "action")
HTML5_ATOM(active, "active")
HTML5_ATOM(additive, "additive")
HTML5_ATOM(begin, "begin")
HTML5_ATOM(dominant_baseline, "dominant-baseline")
HTML5_ATOM(divisor, "divisor")
HTML5_ATOM(definitionurl, "definitionurl")
HTML5_ATOM(definitionURL, "definitionURL")
HTML5_ATOM(horiz_adv_x, "horiz-adv-x")
@@ -410,25 +360,29 @@ HTML5_ATOM(fill_rule, "fill-rule")
HTML5_ATOM(fill, "fill")
HTML5_ATOM(fill_opacity, "fill-opacity")
HTML5_ATOM(maxlength, "maxlength")
HTML5_ATOM(onclick, "onclick")
HTML5_ATOM(onblur, "onblur")
HTML5_ATOM(replace, "replace")
HTML5_ATOM(rowlines, "rowlines")
HTML5_ATOM(scale, "scale")
+HTML5_ATOM(style, "style")
HTML5_ATOM(tablevalues, "tablevalues")
HTML5_ATOM(tableValues, "tableValues")
+HTML5_ATOM(title, "title")
HTML5_ATOM(v_alphabetic, "v-alphabetic")
HTML5_ATOM(azimuth, "azimuth")
HTML5_ATOM(format, "format")
HTML5_ATOM(frameborder, "frameborder")
HTML5_ATOM(frame, "frame")
HTML5_ATOM(framespacing, "framespacing")
HTML5_ATOM(from, "from")
+HTML5_ATOM(form, "form")
+HTML5_ATOM(prompt, "prompt")
HTML5_ATOM(primitiveunits, "primitiveunits")
HTML5_ATOM(primitiveUnits, "primitiveUnits")
HTML5_ATOM(symmetric, "symmetric")
HTML5_ATOM(stemh, "stemh")
HTML5_ATOM(stemv, "stemv")
HTML5_ATOM(seamless, "seamless")
HTML5_ATOM(summary, "summary")
HTML5_ATOM(usemap, "usemap")
@@ -552,16 +506,17 @@ HTML5_ATOM(property, "property")
HTML5_ATOM(scoped, "scoped")
HTML5_ATOM(step, "step")
HTML5_ATOM(shape_rendering, "shape-rendering")
HTML5_ATOM(scope, "scope")
HTML5_ATOM(shape, "shape")
HTML5_ATOM(slope, "slope")
HTML5_ATOM(stop_color, "stop-color")
HTML5_ATOM(stop_opacity, "stop-opacity")
+HTML5_ATOM(template_, "template")
HTML5_ATOM(wrap, "wrap")
HTML5_ATOM(abbr, "abbr")
HTML5_ATOM(attributename, "attributename")
HTML5_ATOM(attributeName, "attributeName")
HTML5_ATOM(attributetype, "attributetype")
HTML5_ATOM(attributeType, "attributeType")
HTML5_ATOM(char_, "char")
HTML5_ATOM(coords, "coords")
@@ -708,62 +663,75 @@ HTML5_ATOM(dy, "dy")
HTML5_ATOM(fy, "fy")
HTML5_ATOM(ry, "ry")
HTML5_ATOM(refy, "refy")
HTML5_ATOM(refY, "refY")
HTML5_ATOM(verythinmathspace, "verythinmathspace")
HTML5_ATOM(verythickmathspace, "verythickmathspace")
HTML5_ATOM(veryverythinmathspace, "veryverythinmathspace")
HTML5_ATOM(veryverythickmathspace, "veryverythickmathspace")
+HTML5_ATOM(annotation_xml, "annotation-xml")
HTML5_ATOM(isindex, "isindex")
HTML5_ATOM(big, "big")
HTML5_ATOM(bdo, "bdo")
HTML5_ATOM(col, "col")
HTML5_ATOM(del, "del")
HTML5_ATOM(dfn, "dfn")
+HTML5_ATOM(div, "div")
HTML5_ATOM(img, "img")
HTML5_ATOM(ins, "ins")
HTML5_ATOM(kbd, "kbd")
HTML5_ATOM(map, "map")
HTML5_ATOM(nav, "nav")
HTML5_ATOM(pre, "pre")
+HTML5_ATOM(a, "a")
HTML5_ATOM(b, "b")
+HTML5_ATOM(rtc, "rtc")
HTML5_ATOM(sub, "sub")
+HTML5_ATOM(svg, "svg")
HTML5_ATOM(sup, "sup")
HTML5_ATOM(set, "set")
HTML5_ATOM(use, "use")
HTML5_ATOM(var, "var")
HTML5_ATOM(g, "g")
HTML5_ATOM(wbr, "wbr")
+HTML5_ATOM(xmp, "xmp")
HTML5_ATOM(i, "i")
+HTML5_ATOM(p, "p")
HTML5_ATOM(q, "q")
HTML5_ATOM(s, "s")
HTML5_ATOM(u, "u")
HTML5_ATOM(h1, "h1")
HTML5_ATOM(h2, "h2")
HTML5_ATOM(h3, "h3")
HTML5_ATOM(h4, "h4")
HTML5_ATOM(h5, "h5")
HTML5_ATOM(h6, "h6")
HTML5_ATOM(area, "area")
HTML5_ATOM(fefunca, "fefunca")
HTML5_ATOM(feFuncA, "feFuncA")
HTML5_ATOM(metadata, "metadata")
HTML5_ATOM(meta, "meta")
+HTML5_ATOM(textarea, "textarea")
HTML5_ATOM(fefuncb, "fefuncb")
HTML5_ATOM(feFuncB, "feFuncB")
HTML5_ATOM(rb, "rb")
+HTML5_ATOM(desc, "desc")
HTML5_ATOM(dd, "dd")
HTML5_ATOM(bgsound, "bgsound")
HTML5_ATOM(embed, "embed")
HTML5_ATOM(feblend, "feblend")
HTML5_ATOM(feBlend, "feBlend")
HTML5_ATOM(feflood, "feflood")
HTML5_ATOM(feFlood, "feFlood")
+HTML5_ATOM(head, "head")
HTML5_ATOM(legend, "legend")
+HTML5_ATOM(noembed, "noembed")
+HTML5_ATOM(td, "td")
+HTML5_ATOM(thead, "thead")
HTML5_ATOM(aside, "aside")
HTML5_ATOM(article, "article")
HTML5_ATOM(animate, "animate")
HTML5_ATOM(blockquote, "blockquote")
HTML5_ATOM(circle, "circle")
HTML5_ATOM(ellipse, "ellipse")
HTML5_ATOM(feturbulence, "feturbulence")
HTML5_ATOM(feTurbulence, "feTurbulence")
@@ -774,22 +742,24 @@ HTML5_ATOM(feImage, "feImage")
HTML5_ATOM(femerge, "femerge")
HTML5_ATOM(feMerge, "feMerge")
HTML5_ATOM(fetile, "fetile")
HTML5_ATOM(feTile, "feTile")
HTML5_ATOM(figure, "figure")
HTML5_ATOM(fecomposite, "fecomposite")
HTML5_ATOM(feComposite, "feComposite")
HTML5_ATOM(image, "image")
+HTML5_ATOM(iframe, "iframe")
HTML5_ATOM(line, "line")
HTML5_ATOM(marquee, "marquee")
HTML5_ATOM(polyline, "polyline")
HTML5_ATOM(picture, "picture")
HTML5_ATOM(source, "source")
HTML5_ATOM(strike, "strike")
+HTML5_ATOM(table, "table")
HTML5_ATOM(time, "time")
HTML5_ATOM(altglyphdef, "altglyphdef")
HTML5_ATOM(altGlyphDef, "altGlyphDef")
HTML5_ATOM(dialog, "dialog")
HTML5_ATOM(fefuncg, "fefuncg")
HTML5_ATOM(feFuncG, "feFuncG")
HTML5_ATOM(fediffuselighting, "fediffuselighting")
HTML5_ATOM(feDiffuseLighting, "feDiffuseLighting")
@@ -799,48 +769,60 @@ HTML5_ATOM(listing, "listing")
HTML5_ATOM(strong, "strong")
HTML5_ATOM(altglyph, "altglyph")
HTML5_ATOM(altGlyph, "altGlyph")
HTML5_ATOM(clippath, "clippath")
HTML5_ATOM(clipPath, "clipPath")
HTML5_ATOM(mglyph, "mglyph")
HTML5_ATOM(math, "math")
HTML5_ATOM(mpath, "mpath")
+HTML5_ATOM(th, "th")
HTML5_ATOM(switch_, "switch")
HTML5_ATOM(textpath, "textpath")
HTML5_ATOM(textPath, "textPath")
HTML5_ATOM(li, "li")
+HTML5_ATOM(mi, "mi")
HTML5_ATOM(mark, "mark")
HTML5_ATOM(malignmark, "malignmark")
HTML5_ATOM(track, "track")
HTML5_ATOM(dl, "dl")
+HTML5_ATOM(html, "html")
+HTML5_ATOM(ol, "ol")
+HTML5_ATOM(ul, "ul")
HTML5_ATOM(small_, "small")
HTML5_ATOM(symbol, "symbol")
HTML5_ATOM(altglyphitem, "altglyphitem")
HTML5_ATOM(altGlyphItem, "altGlyphItem")
HTML5_ATOM(animatetransform, "animatetransform")
HTML5_ATOM(animateTransform, "animateTransform")
HTML5_ATOM(acronym, "acronym")
HTML5_ATOM(em, "em")
HTML5_ATOM(menuitem, "menuitem")
HTML5_ATOM(param, "param")
HTML5_ATOM(animatemotion, "animatemotion")
HTML5_ATOM(animateMotion, "animateMotion")
+HTML5_ATOM(button, "button")
+HTML5_ATOM(caption, "caption")
HTML5_ATOM(figcaption, "figcaption")
+HTML5_ATOM(mn, "mn")
HTML5_ATOM(keygen, "keygen")
HTML5_ATOM(main, "main")
+HTML5_ATOM(option, "option")
HTML5_ATOM(polygon, "polygon")
HTML5_ATOM(section, "section")
HTML5_ATOM(tspan, "tspan")
HTML5_ATOM(audio, "audio")
+HTML5_ATOM(mo, "mo")
HTML5_ATOM(video, "video")
+HTML5_ATOM(colgroup, "colgroup")
HTML5_ATOM(fedisplacementmap, "fedisplacementmap")
HTML5_ATOM(feDisplacementMap, "feDisplacementMap")
HTML5_ATOM(hgroup, "hgroup")
HTML5_ATOM(rp, "rp")
+HTML5_ATOM(optgroup, "optgroup")
HTML5_ATOM(samp, "samp")
HTML5_ATOM(stop, "stop")
HTML5_ATOM(br, "br")
HTML5_ATOM(animatecolor, "animatecolor")
HTML5_ATOM(animateColor, "animateColor")
HTML5_ATOM(center, "center")
HTML5_ATOM(hr, "hr")
HTML5_ATOM(fefuncr, "fefuncr")
@@ -848,43 +830,61 @@ HTML5_ATOM(feFuncR, "feFuncR")
HTML5_ATOM(fecomponenttransfer, "fecomponenttransfer")
HTML5_ATOM(feComponentTransfer, "feComponentTransfer")
HTML5_ATOM(footer, "footer")
HTML5_ATOM(fegaussianblur, "fegaussianblur")
HTML5_ATOM(feGaussianBlur, "feGaussianBlur")
HTML5_ATOM(header, "header")
HTML5_ATOM(marker, "marker")
HTML5_ATOM(meter, "meter")
+HTML5_ATOM(nobr, "nobr")
+HTML5_ATOM(tr, "tr")
+HTML5_ATOM(address, "address")
HTML5_ATOM(canvas, "canvas")
HTML5_ATOM(defs, "defs")
HTML5_ATOM(details, "details")
+HTML5_ATOM(ms, "ms")
+HTML5_ATOM(noframes, "noframes")
HTML5_ATOM(progress, "progress")
HTML5_ATOM(dt, "dt")
HTML5_ATOM(applet, "applet")
HTML5_ATOM(basefont, "basefont")
HTML5_ATOM(foreignobject, "foreignobject")
+HTML5_ATOM(foreignObject, "foreignObject")
HTML5_ATOM(fieldset, "fieldset")
+HTML5_ATOM(frameset, "frameset")
HTML5_ATOM(feoffset, "feoffset")
HTML5_ATOM(feOffset, "feOffset")
HTML5_ATOM(fespotlight, "fespotlight")
HTML5_ATOM(feSpotLight, "feSpotLight")
HTML5_ATOM(fepointlight, "fepointlight")
HTML5_ATOM(fePointLight, "fePointLight")
HTML5_ATOM(fedistantlight, "fedistantlight")
HTML5_ATOM(feDistantLight, "feDistantLight")
HTML5_ATOM(font, "font")
+HTML5_ATOM(input, "input")
HTML5_ATOM(lineargradient, "lineargradient")
HTML5_ATOM(linearGradient, "linearGradient")
+HTML5_ATOM(mtext, "mtext")
+HTML5_ATOM(noscript, "noscript")
HTML5_ATOM(output, "output")
+HTML5_ATOM(plaintext, "plaintext")
HTML5_ATOM(tt, "tt")
HTML5_ATOM(rect, "rect")
HTML5_ATOM(radialgradient, "radialgradient")
HTML5_ATOM(radialGradient, "radialGradient")
+HTML5_ATOM(select, "select")
+HTML5_ATOM(script, "script")
+HTML5_ATOM(tfoot, "tfoot")
HTML5_ATOM(menu, "menu")
HTML5_ATOM(fedropshadow, "fedropshadow")
HTML5_ATOM(feDropShadow, "feDropShadow")
HTML5_ATOM(view, "view")
HTML5_ATOM(fecolormatrix, "fecolormatrix")
HTML5_ATOM(feColorMatrix, "feColorMatrix")
HTML5_ATOM(feconvolvematrix, "feconvolvematrix")
HTML5_ATOM(feConvolveMatrix, "feConvolveMatrix")
+HTML5_ATOM(body, "body")
HTML5_ATOM(femorphology, "femorphology")
HTML5_ATOM(feMorphology, "feMorphology")
+HTML5_ATOM(ruby, "ruby")
+HTML5_ATOM(tbody, "tbody")
+HTML5_ATOM(emptystring, "")
--- a/parser/html/nsHtml5AttributeName.cpp
+++ b/parser/html/nsHtml5AttributeName.cpp
@@ -36,21 +36,22 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5AttributeName.h"
int32_t* nsHtml5AttributeName::ALL_NO_NS = 0;
@@ -96,33 +97,16 @@ nsHtml5AttributeName::SAME_LOCAL(nsIAtom
{
nsIAtom** arr = new nsIAtom*[4];
arr[0] = name;
arr[1] = name;
arr[2] = name;
return arr;
}
-nsHtml5AttributeName*
-nsHtml5AttributeName::nameByBuffer(char16_t* buf, int32_t offset, int32_t length, nsHtml5AtomTable* interner)
-{
- uint32_t hash = nsHtml5AttributeName::bufToHash(buf, length);
- int32_t index = nsHtml5AttributeName::ATTRIBUTE_HASHES.binarySearch(hash);
- if (index < 0) {
- return nullptr;
- }
- nsHtml5AttributeName* attributeName =
- nsHtml5AttributeName::ATTRIBUTE_NAMES[index];
- nsIAtom* name = attributeName->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML);
- if (!nsHtml5Portability::localEqualsBuffer(name, buf, offset, length)) {
- return nullptr;
- }
- return attributeName;
-}
-
nsHtml5AttributeName::nsHtml5AttributeName(int32_t* uri,
nsIAtom** local,
nsIAtom** prefix)
: uri(uri)
, local(local)
, prefix(prefix)
, custom(false)
{
@@ -133,31 +117,16 @@ nsHtml5AttributeName::nsHtml5AttributeNa
: uri(nsHtml5AttributeName::ALL_NO_NS)
, local(nsHtml5AttributeName::SAME_LOCAL(nullptr))
, prefix(ALL_NO_PREFIX)
, custom(true)
{
MOZ_COUNT_CTOR(nsHtml5AttributeName);
}
-bool
-nsHtml5AttributeName::isInterned()
-{
- return !custom;
-}
-
-void
-nsHtml5AttributeName::setNameForNonInterned(nsIAtom* name)
-{
- MOZ_ASSERT(custom);
- local[0] = name;
- local[1] = name;
- local[2] = name;
-}
-
nsHtml5AttributeName*
nsHtml5AttributeName::createAttributeName(nsIAtom* name)
{
return new nsHtml5AttributeName(nsHtml5AttributeName::ALL_NO_NS,
nsHtml5AttributeName::SAME_LOCAL(name),
ALL_NO_PREFIX);
}
@@ -184,17 +153,18 @@ nsIAtom*
nsHtml5AttributeName::getPrefix(int32_t mode)
{
return prefix[mode];
}
bool
nsHtml5AttributeName::equalsAnother(nsHtml5AttributeName* another)
{
- return this->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML) == another->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML);
+ return this->getLocal(nsHtml5AttributeName::HTML) ==
+ another->getLocal(nsHtml5AttributeName::HTML);
}
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_ALT = nullptr;
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_DIR = nullptr;
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_DUR = nullptr;
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_END = nullptr;
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_FOR = nullptr;
nsHtml5AttributeName* nsHtml5AttributeName::ATTR_IN2 = nullptr;
--- a/parser/html/nsHtml5AttributeName.h
+++ b/parser/html/nsHtml5AttributeName.h
@@ -37,23 +37,24 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5AttributeName
{
public:
@@ -68,17 +69,35 @@ class nsHtml5AttributeName
static nsIAtom** XMLNS_PREFIX;
static nsIAtom** XLINK_PREFIX;
static nsIAtom** XML_PREFIX;
static nsIAtom** SVG_DIFFERENT(nsIAtom* name, nsIAtom* camel);
static nsIAtom** MATH_DIFFERENT(nsIAtom* name, nsIAtom* camel);
static nsIAtom** COLONIFIED_LOCAL(nsIAtom* name, nsIAtom* suffix);
public:
static nsIAtom** SAME_LOCAL(nsIAtom* name);
- static nsHtml5AttributeName* nameByBuffer(char16_t* buf, int32_t offset, int32_t length, nsHtml5AtomTable* interner);
+ inline static nsHtml5AttributeName* nameByBuffer(char16_t* buf,
+ int32_t offset,
+ int32_t length,
+ nsHtml5AtomTable* interner)
+ {
+ uint32_t hash = nsHtml5AttributeName::bufToHash(buf, length);
+ int32_t index = nsHtml5AttributeName::ATTRIBUTE_HASHES.binarySearch(hash);
+ if (index < 0) {
+ return nullptr;
+ }
+ nsHtml5AttributeName* attributeName =
+ nsHtml5AttributeName::ATTRIBUTE_NAMES[index];
+ nsIAtom* name = attributeName->getLocal(0);
+ if (!nsHtml5Portability::localEqualsBuffer(name, buf, offset, length)) {
+ return nullptr;
+ }
+ return attributeName;
+ }
+
private:
inline static uint32_t bufToHash(char16_t* buf, int32_t length)
{
uint32_t len = length;
uint32_t first = buf[0];
first <<= 19;
uint32_t second = 1 << 23;
uint32_t third = 0;
@@ -103,25 +122,41 @@ class nsHtml5AttributeName
third <<= 9;
} else if (length == 2) {
second = buf[1];
second <<= 24;
}
return len + first + second + third + fourth + fifth + sixth;
}
+ public:
+ static const int32_t HTML = 0;
+
+ static const int32_t MATHML = 1;
+
+ static const int32_t SVG = 2;
+
+ private:
int32_t* uri;
nsIAtom** local;
nsIAtom** prefix;
bool custom;
nsHtml5AttributeName(int32_t* uri, nsIAtom** local, nsIAtom** prefix);
public:
nsHtml5AttributeName();
- bool isInterned();
- void setNameForNonInterned(nsIAtom* name);
+ inline bool isInterned() { return !custom; }
+
+ inline void setNameForNonInterned(nsIAtom* name)
+ {
+ MOZ_ASSERT(custom);
+ local[0] = name;
+ local[1] = name;
+ local[2] = name;
+ }
+
static nsHtml5AttributeName* createAttributeName(nsIAtom* name);
~nsHtml5AttributeName();
int32_t getUri(int32_t mode);
nsIAtom* getLocal(int32_t mode);
nsIAtom* getPrefix(int32_t mode);
bool equalsAnother(nsHtml5AttributeName* another);
static nsHtml5AttributeName* ATTR_ALT;
static nsHtml5AttributeName* ATTR_DIR;
@@ -709,15 +744,10 @@ class nsHtml5AttributeName
private:
static nsHtml5AttributeName** ATTRIBUTE_NAMES;
static staticJArray<int32_t,int32_t> ATTRIBUTE_HASHES;
public:
static void initializeStatics();
static void releaseStatics();
};
-#define NS_HTML5ATTRIBUTE_NAME_HTML 0
-#define NS_HTML5ATTRIBUTE_NAME_MATHML 1
-#define NS_HTML5ATTRIBUTE_NAME_SVG 2
-
-
#endif
--- a/parser/html/nsHtml5ElementName.cpp
+++ b/parser/html/nsHtml5ElementName.cpp
@@ -36,89 +36,52 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5AttributeName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5ElementName.h"
-int32_t
-nsHtml5ElementName::getGroup()
-{
- return flags & NS_HTML5ELEMENT_NAME_GROUP_MASK;
-}
-
-bool
-nsHtml5ElementName::isInterned()
-{
- return !(flags & NS_HTML5ELEMENT_NAME_NOT_INTERNED);
-}
-
-nsHtml5ElementName*
-nsHtml5ElementName::elementNameByBuffer(char16_t* buf, int32_t offset, int32_t length, nsHtml5AtomTable* interner)
-{
- uint32_t hash = nsHtml5ElementName::bufToHash(buf, length);
- int32_t index = nsHtml5ElementName::ELEMENT_HASHES.binarySearch(hash);
- if (index < 0) {
- return nullptr;
- } else {
- nsHtml5ElementName* elementName = nsHtml5ElementName::ELEMENT_NAMES[index];
- nsIAtom* name = elementName->name;
- if (!nsHtml5Portability::localEqualsBuffer(name, buf, offset, length)) {
- return nullptr;
- }
- return elementName;
- }
-}
-
nsHtml5ElementName::nsHtml5ElementName(nsIAtom* name, nsIAtom* camelCaseName, int32_t flags)
: name(name),
camelCaseName(camelCaseName),
flags(flags)
{
MOZ_COUNT_CTOR(nsHtml5ElementName);
}
nsHtml5ElementName::nsHtml5ElementName()
: name(nullptr)
, camelCaseName(nullptr)
- , flags(NS_HTML5TREE_BUILDER_OTHER | NS_HTML5ELEMENT_NAME_NOT_INTERNED)
+ , flags(nsHtml5TreeBuilder::OTHER | NOT_INTERNED)
{
MOZ_COUNT_CTOR(nsHtml5ElementName);
}
nsHtml5ElementName::~nsHtml5ElementName()
{
MOZ_COUNT_DTOR(nsHtml5ElementName);
}
-void
-nsHtml5ElementName::setNameForNonInterned(nsIAtom* name)
-{
- this->name = name;
- this->camelCaseName = name;
- MOZ_ASSERT(this->flags ==
- (NS_HTML5TREE_BUILDER_OTHER | NS_HTML5ELEMENT_NAME_NOT_INTERNED));
-}
-
nsHtml5ElementName* nsHtml5ElementName::ELT_ANNOTATION_XML = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_ISINDEX = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_BIG = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_BDO = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_COL = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_DEL = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_DFN = nullptr;
nsHtml5ElementName* nsHtml5ElementName::ELT_DIR = nullptr;
@@ -355,621 +318,690 @@ static int32_t const ELEMENT_HASHES_DATA
2006974466, 2007601444, 2007781534, 2008125638, 2008340774, 2008851557,
2008994116, 2021937364, 2051837468, 2060065124, 2068523853, 2068523856,
2070023911, 2083120164, 2085266636, 2091479332, 2092255447, 2092557349
};
staticJArray<int32_t,int32_t> nsHtml5ElementName::ELEMENT_HASHES = { ELEMENT_HASHES_DATA, MOZ_ARRAY_LENGTH(ELEMENT_HASHES_DATA) };
void
nsHtml5ElementName::initializeStatics()
{
- ELT_ANNOTATION_XML =
- new nsHtml5ElementName(nsHtml5Atoms::annotation_xml,
- nsHtml5Atoms::annotation_xml,
- NS_HTML5TREE_BUILDER_ANNOTATION_XML |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
+ ELT_ANNOTATION_XML = new nsHtml5ElementName(
+ nsHtml5Atoms::annotation_xml,
+ nsHtml5Atoms::annotation_xml,
+ nsHtml5TreeBuilder::ANNOTATION_XML | SCOPING_AS_MATHML);
ELT_ISINDEX = new nsHtml5ElementName(nsHtml5Atoms::isindex,
nsHtml5Atoms::isindex,
- NS_HTML5TREE_BUILDER_ISINDEX |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_BIG = new nsHtml5ElementName(nsHtml5Atoms::big, nsHtml5Atoms::big, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_BDO = new nsHtml5ElementName(nsHtml5Atoms::bdo, nsHtml5Atoms::bdo, NS_HTML5TREE_BUILDER_OTHER);
- ELT_COL = new nsHtml5ElementName(nsHtml5Atoms::col, nsHtml5Atoms::col, NS_HTML5TREE_BUILDER_COL | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_DEL = new nsHtml5ElementName(nsHtml5Atoms::del, nsHtml5Atoms::del, NS_HTML5TREE_BUILDER_OTHER);
- ELT_DFN = new nsHtml5ElementName(nsHtml5Atoms::dfn, nsHtml5Atoms::dfn, NS_HTML5TREE_BUILDER_OTHER);
- ELT_DIR = new nsHtml5ElementName(nsHtml5Atoms::dir, nsHtml5Atoms::dir, NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_DIV = new nsHtml5ElementName(nsHtml5Atoms::div, nsHtml5Atoms::div, NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_IMG = new nsHtml5ElementName(nsHtml5Atoms::img, nsHtml5Atoms::img, NS_HTML5TREE_BUILDER_IMG | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_INS = new nsHtml5ElementName(nsHtml5Atoms::ins, nsHtml5Atoms::ins, NS_HTML5TREE_BUILDER_OTHER);
- ELT_KBD = new nsHtml5ElementName(nsHtml5Atoms::kbd, nsHtml5Atoms::kbd, NS_HTML5TREE_BUILDER_OTHER);
- ELT_MAP = new nsHtml5ElementName(nsHtml5Atoms::map, nsHtml5Atoms::map, NS_HTML5TREE_BUILDER_OTHER);
- ELT_NAV = new nsHtml5ElementName(nsHtml5Atoms::nav, nsHtml5Atoms::nav, NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_PRE = new nsHtml5ElementName(nsHtml5Atoms::pre, nsHtml5Atoms::pre, NS_HTML5TREE_BUILDER_PRE_OR_LISTING | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::ISINDEX | SPECIAL);
+ ELT_BIG = new nsHtml5ElementName(
+ nsHtml5Atoms::big,
+ nsHtml5Atoms::big,
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_BDO = new nsHtml5ElementName(
+ nsHtml5Atoms::bdo, nsHtml5Atoms::bdo, nsHtml5TreeBuilder::OTHER);
+ ELT_COL = new nsHtml5ElementName(
+ nsHtml5Atoms::col, nsHtml5Atoms::col, nsHtml5TreeBuilder::COL | SPECIAL);
+ ELT_DEL = new nsHtml5ElementName(
+ nsHtml5Atoms::del, nsHtml5Atoms::del, nsHtml5TreeBuilder::OTHER);
+ ELT_DFN = new nsHtml5ElementName(
+ nsHtml5Atoms::dfn, nsHtml5Atoms::dfn, nsHtml5TreeBuilder::OTHER);
+ ELT_DIR = new nsHtml5ElementName(
+ nsHtml5Atoms::dir,
+ nsHtml5Atoms::dir,
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
+ ELT_DIV = new nsHtml5ElementName(
+ nsHtml5Atoms::div,
+ nsHtml5Atoms::div,
+ nsHtml5TreeBuilder::DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
+ ELT_IMG = new nsHtml5ElementName(
+ nsHtml5Atoms::img, nsHtml5Atoms::img, nsHtml5TreeBuilder::IMG | SPECIAL);
+ ELT_INS = new nsHtml5ElementName(
+ nsHtml5Atoms::ins, nsHtml5Atoms::ins, nsHtml5TreeBuilder::OTHER);
+ ELT_KBD = new nsHtml5ElementName(
+ nsHtml5Atoms::kbd, nsHtml5Atoms::kbd, nsHtml5TreeBuilder::OTHER);
+ ELT_MAP = new nsHtml5ElementName(
+ nsHtml5Atoms::map, nsHtml5Atoms::map, nsHtml5TreeBuilder::OTHER);
+ ELT_NAV = new nsHtml5ElementName(
+ nsHtml5Atoms::nav,
+ nsHtml5Atoms::nav,
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
+ ELT_PRE =
+ new nsHtml5ElementName(nsHtml5Atoms::pre,
+ nsHtml5Atoms::pre,
+ nsHtml5TreeBuilder::PRE_OR_LISTING | SPECIAL);
ELT_A = new nsHtml5ElementName(
- nsHtml5Atoms::a, nsHtml5Atoms::a, NS_HTML5TREE_BUILDER_A);
+ nsHtml5Atoms::a, nsHtml5Atoms::a, nsHtml5TreeBuilder::A);
ELT_B = new nsHtml5ElementName(
nsHtml5Atoms::b,
nsHtml5Atoms::b,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_RTC = new nsHtml5ElementName(nsHtml5Atoms::rtc, nsHtml5Atoms::rtc, NS_HTML5TREE_BUILDER_RB_OR_RTC | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_SUB = new nsHtml5ElementName(nsHtml5Atoms::sub, nsHtml5Atoms::sub, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
- ELT_SVG = new nsHtml5ElementName(nsHtml5Atoms::svg, nsHtml5Atoms::svg, NS_HTML5TREE_BUILDER_SVG);
- ELT_SUP = new nsHtml5ElementName(nsHtml5Atoms::sup, nsHtml5Atoms::sup, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
- ELT_SET = new nsHtml5ElementName(nsHtml5Atoms::set, nsHtml5Atoms::set, NS_HTML5TREE_BUILDER_OTHER);
- ELT_USE = new nsHtml5ElementName(nsHtml5Atoms::use, nsHtml5Atoms::use, NS_HTML5TREE_BUILDER_OTHER);
- ELT_VAR = new nsHtml5ElementName(nsHtml5Atoms::var, nsHtml5Atoms::var, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_RTC =
+ new nsHtml5ElementName(nsHtml5Atoms::rtc,
+ nsHtml5Atoms::rtc,
+ nsHtml5TreeBuilder::RB_OR_RTC | OPTIONAL_END_TAG);
+ ELT_SUB = new nsHtml5ElementName(
+ nsHtml5Atoms::sub,
+ nsHtml5Atoms::sub,
+ nsHtml5TreeBuilder::RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
+ ELT_SVG = new nsHtml5ElementName(
+ nsHtml5Atoms::svg, nsHtml5Atoms::svg, nsHtml5TreeBuilder::SVG);
+ ELT_SUP = new nsHtml5ElementName(
+ nsHtml5Atoms::sup,
+ nsHtml5Atoms::sup,
+ nsHtml5TreeBuilder::RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
+ ELT_SET = new nsHtml5ElementName(
+ nsHtml5Atoms::set, nsHtml5Atoms::set, nsHtml5TreeBuilder::OTHER);
+ ELT_USE = new nsHtml5ElementName(
+ nsHtml5Atoms::use, nsHtml5Atoms::use, nsHtml5TreeBuilder::OTHER);
+ ELT_VAR = new nsHtml5ElementName(
+ nsHtml5Atoms::var,
+ nsHtml5Atoms::var,
+ nsHtml5TreeBuilder::RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
ELT_G = new nsHtml5ElementName(
- nsHtml5Atoms::g, nsHtml5Atoms::g, NS_HTML5TREE_BUILDER_OTHER);
- ELT_WBR = new nsHtml5ElementName(nsHtml5Atoms::wbr, nsHtml5Atoms::wbr, NS_HTML5TREE_BUILDER_AREA_OR_WBR | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_XMP = new nsHtml5ElementName(nsHtml5Atoms::xmp, nsHtml5Atoms::xmp, NS_HTML5TREE_BUILDER_XMP | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::g, nsHtml5Atoms::g, nsHtml5TreeBuilder::OTHER);
+ ELT_WBR = new nsHtml5ElementName(nsHtml5Atoms::wbr,
+ nsHtml5Atoms::wbr,
+ nsHtml5TreeBuilder::AREA_OR_WBR | SPECIAL);
+ ELT_XMP = new nsHtml5ElementName(
+ nsHtml5Atoms::xmp, nsHtml5Atoms::xmp, nsHtml5TreeBuilder::XMP | SPECIAL);
ELT_I = new nsHtml5ElementName(
nsHtml5Atoms::i,
nsHtml5Atoms::i,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_P = new nsHtml5ElementName(nsHtml5Atoms::p,
- nsHtml5Atoms::p,
- NS_HTML5TREE_BUILDER_P |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_P =
+ new nsHtml5ElementName(nsHtml5Atoms::p,
+ nsHtml5Atoms::p,
+ nsHtml5TreeBuilder::P | SPECIAL | OPTIONAL_END_TAG);
ELT_Q = new nsHtml5ElementName(
- nsHtml5Atoms::q, nsHtml5Atoms::q, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::q, nsHtml5Atoms::q, nsHtml5TreeBuilder::OTHER);
ELT_S = new nsHtml5ElementName(
nsHtml5Atoms::s,
nsHtml5Atoms::s,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
ELT_U = new nsHtml5ElementName(
nsHtml5Atoms::u,
nsHtml5Atoms::u,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
ELT_H1 = new nsHtml5ElementName(
nsHtml5Atoms::h1,
nsHtml5Atoms::h1,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
ELT_H2 = new nsHtml5ElementName(
nsHtml5Atoms::h2,
nsHtml5Atoms::h2,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
ELT_H3 = new nsHtml5ElementName(
nsHtml5Atoms::h3,
nsHtml5Atoms::h3,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
ELT_H4 = new nsHtml5ElementName(
nsHtml5Atoms::h4,
nsHtml5Atoms::h4,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
ELT_H5 = new nsHtml5ElementName(
nsHtml5Atoms::h5,
nsHtml5Atoms::h5,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
ELT_H6 = new nsHtml5ElementName(
nsHtml5Atoms::h6,
nsHtml5Atoms::h6,
- NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_AREA = new nsHtml5ElementName(nsHtml5Atoms::area, nsHtml5Atoms::area, NS_HTML5TREE_BUILDER_AREA_OR_WBR | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 | SPECIAL);
+ ELT_AREA = new nsHtml5ElementName(nsHtml5Atoms::area,
+ nsHtml5Atoms::area,
+ nsHtml5TreeBuilder::AREA_OR_WBR | SPECIAL);
ELT_FEFUNCA = new nsHtml5ElementName(
- nsHtml5Atoms::fefunca, nsHtml5Atoms::feFuncA, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::fefunca, nsHtml5Atoms::feFuncA, nsHtml5TreeBuilder::OTHER);
ELT_METADATA = new nsHtml5ElementName(
- nsHtml5Atoms::metadata, nsHtml5Atoms::metadata, NS_HTML5TREE_BUILDER_OTHER);
- ELT_META = new nsHtml5ElementName(nsHtml5Atoms::meta, nsHtml5Atoms::meta, NS_HTML5TREE_BUILDER_META | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::metadata, nsHtml5Atoms::metadata, nsHtml5TreeBuilder::OTHER);
+ ELT_META = new nsHtml5ElementName(
+ nsHtml5Atoms::meta, nsHtml5Atoms::meta, nsHtml5TreeBuilder::META | SPECIAL);
ELT_TEXTAREA = new nsHtml5ElementName(nsHtml5Atoms::textarea,
nsHtml5Atoms::textarea,
- NS_HTML5TREE_BUILDER_TEXTAREA |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::TEXTAREA | SPECIAL);
ELT_FEFUNCB = new nsHtml5ElementName(
- nsHtml5Atoms::fefuncb, nsHtml5Atoms::feFuncB, NS_HTML5TREE_BUILDER_OTHER);
- ELT_RB = new nsHtml5ElementName(nsHtml5Atoms::rb,
- nsHtml5Atoms::rb,
- NS_HTML5TREE_BUILDER_RB_OR_RTC |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5Atoms::fefuncb, nsHtml5Atoms::feFuncB, nsHtml5TreeBuilder::OTHER);
+ ELT_RB =
+ new nsHtml5ElementName(nsHtml5Atoms::rb,
+ nsHtml5Atoms::rb,
+ nsHtml5TreeBuilder::RB_OR_RTC | OPTIONAL_END_TAG);
ELT_DESC = new nsHtml5ElementName(nsHtml5Atoms::desc,
nsHtml5Atoms::desc,
- NS_HTML5TREE_BUILDER_FOREIGNOBJECT_OR_DESC |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG);
+ nsHtml5TreeBuilder::FOREIGNOBJECT_OR_DESC |
+ SCOPING_AS_SVG);
ELT_DD = new nsHtml5ElementName(nsHtml5Atoms::dd,
nsHtml5Atoms::dd,
- NS_HTML5TREE_BUILDER_DD_OR_DT |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_BGSOUND =
- new nsHtml5ElementName(nsHtml5Atoms::bgsound,
- nsHtml5Atoms::bgsound,
- NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_EMBED = new nsHtml5ElementName(nsHtml5Atoms::embed, nsHtml5Atoms::embed, NS_HTML5TREE_BUILDER_EMBED | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::DD_OR_DT | SPECIAL |
+ OPTIONAL_END_TAG);
+ ELT_BGSOUND = new nsHtml5ElementName(
+ nsHtml5Atoms::bgsound,
+ nsHtml5Atoms::bgsound,
+ nsHtml5TreeBuilder::LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
+ ELT_EMBED = new nsHtml5ElementName(nsHtml5Atoms::embed,
+ nsHtml5Atoms::embed,
+ nsHtml5TreeBuilder::EMBED | SPECIAL);
ELT_FEBLEND = new nsHtml5ElementName(
- nsHtml5Atoms::feblend, nsHtml5Atoms::feBlend, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::feblend, nsHtml5Atoms::feBlend, nsHtml5TreeBuilder::OTHER);
ELT_FEFLOOD = new nsHtml5ElementName(
- nsHtml5Atoms::feflood, nsHtml5Atoms::feFlood, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::feflood, nsHtml5Atoms::feFlood, nsHtml5TreeBuilder::OTHER);
ELT_HEAD = new nsHtml5ElementName(nsHtml5Atoms::head,
nsHtml5Atoms::head,
- NS_HTML5TREE_BUILDER_HEAD |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::HEAD | SPECIAL |
+ OPTIONAL_END_TAG);
ELT_LEGEND = new nsHtml5ElementName(
- nsHtml5Atoms::legend, nsHtml5Atoms::legend, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::legend, nsHtml5Atoms::legend, nsHtml5TreeBuilder::OTHER);
ELT_NOEMBED = new nsHtml5ElementName(nsHtml5Atoms::noembed,
nsHtml5Atoms::noembed,
- NS_HTML5TREE_BUILDER_NOEMBED |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_TD = new nsHtml5ElementName(
- nsHtml5Atoms::td,
- nsHtml5Atoms::td,
- NS_HTML5TREE_BUILDER_TD_OR_TH | NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_THEAD = new nsHtml5ElementName(nsHtml5Atoms::thead, nsHtml5Atoms::thead, NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::NOEMBED | SPECIAL);
+ ELT_TD = new nsHtml5ElementName(nsHtml5Atoms::td,
+ nsHtml5Atoms::td,
+ nsHtml5TreeBuilder::TD_OR_TH | SPECIAL |
+ SCOPING | OPTIONAL_END_TAG);
+ ELT_THEAD =
+ new nsHtml5ElementName(nsHtml5Atoms::thead,
+ nsHtml5Atoms::thead,
+ nsHtml5TreeBuilder::TBODY_OR_THEAD_OR_TFOOT |
+ SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
ELT_ASIDE = new nsHtml5ElementName(
nsHtml5Atoms::aside,
nsHtml5Atoms::aside,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_ARTICLE = new nsHtml5ElementName(
nsHtml5Atoms::article,
nsHtml5Atoms::article,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_ANIMATE = new nsHtml5ElementName(
- nsHtml5Atoms::animate, nsHtml5Atoms::animate, NS_HTML5TREE_BUILDER_OTHER);
- ELT_BASE = new nsHtml5ElementName(nsHtml5Atoms::base,
- nsHtml5Atoms::base,
- NS_HTML5TREE_BUILDER_BASE |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::animate, nsHtml5Atoms::animate, nsHtml5TreeBuilder::OTHER);
+ ELT_BASE = new nsHtml5ElementName(
+ nsHtml5Atoms::base, nsHtml5Atoms::base, nsHtml5TreeBuilder::BASE | SPECIAL);
ELT_BLOCKQUOTE = new nsHtml5ElementName(
nsHtml5Atoms::blockquote,
nsHtml5Atoms::blockquote,
- NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
ELT_CODE = new nsHtml5ElementName(
nsHtml5Atoms::code,
nsHtml5Atoms::code,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_CIRCLE = new nsHtml5ElementName(nsHtml5Atoms::circle, nsHtml5Atoms::circle, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_CIRCLE = new nsHtml5ElementName(
+ nsHtml5Atoms::circle, nsHtml5Atoms::circle, nsHtml5TreeBuilder::OTHER);
ELT_CITE = new nsHtml5ElementName(
- nsHtml5Atoms::cite, nsHtml5Atoms::cite, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::cite, nsHtml5Atoms::cite, nsHtml5TreeBuilder::OTHER);
ELT_ELLIPSE = new nsHtml5ElementName(
- nsHtml5Atoms::ellipse, nsHtml5Atoms::ellipse, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::ellipse, nsHtml5Atoms::ellipse, nsHtml5TreeBuilder::OTHER);
ELT_FETURBULENCE = new nsHtml5ElementName(nsHtml5Atoms::feturbulence,
nsHtml5Atoms::feTurbulence,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_FEMERGENODE = new nsHtml5ElementName(nsHtml5Atoms::femergenode,
nsHtml5Atoms::feMergeNode,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_FEIMAGE = new nsHtml5ElementName(
- nsHtml5Atoms::feimage, nsHtml5Atoms::feImage, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::feimage, nsHtml5Atoms::feImage, nsHtml5TreeBuilder::OTHER);
ELT_FEMERGE = new nsHtml5ElementName(
- nsHtml5Atoms::femerge, nsHtml5Atoms::feMerge, NS_HTML5TREE_BUILDER_OTHER);
- ELT_FETILE = new nsHtml5ElementName(nsHtml5Atoms::fetile, nsHtml5Atoms::feTile, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::femerge, nsHtml5Atoms::feMerge, nsHtml5TreeBuilder::OTHER);
+ ELT_FETILE = new nsHtml5ElementName(
+ nsHtml5Atoms::fetile, nsHtml5Atoms::feTile, nsHtml5TreeBuilder::OTHER);
ELT_FRAME = new nsHtml5ElementName(nsHtml5Atoms::frame,
nsHtml5Atoms::frame,
- NS_HTML5TREE_BUILDER_FRAME |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_FIGURE = new nsHtml5ElementName(nsHtml5Atoms::figure, nsHtml5Atoms::figure, NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::FRAME | SPECIAL);
+ ELT_FIGURE = new nsHtml5ElementName(
+ nsHtml5Atoms::figure,
+ nsHtml5Atoms::figure,
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_FECOMPOSITE = new nsHtml5ElementName(nsHtml5Atoms::fecomposite,
nsHtml5Atoms::feComposite,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_IMAGE = new nsHtml5ElementName(
- nsHtml5Atoms::image, nsHtml5Atoms::image, NS_HTML5TREE_BUILDER_IMAGE);
- ELT_IFRAME = new nsHtml5ElementName(nsHtml5Atoms::iframe, nsHtml5Atoms::iframe, NS_HTML5TREE_BUILDER_IFRAME | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::image, nsHtml5Atoms::image, nsHtml5TreeBuilder::IMAGE);
+ ELT_IFRAME = new nsHtml5ElementName(nsHtml5Atoms::iframe,
+ nsHtml5Atoms::iframe,
+ nsHtml5TreeBuilder::IFRAME | SPECIAL);
ELT_LINE = new nsHtml5ElementName(
- nsHtml5Atoms::line, nsHtml5Atoms::line, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::line, nsHtml5Atoms::line, nsHtml5TreeBuilder::OTHER);
ELT_MARQUEE = new nsHtml5ElementName(nsHtml5Atoms::marquee,
nsHtml5Atoms::marquee,
- NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING);
+ nsHtml5TreeBuilder::MARQUEE_OR_APPLET |
+ SPECIAL | SCOPING);
ELT_POLYLINE = new nsHtml5ElementName(
- nsHtml5Atoms::polyline, nsHtml5Atoms::polyline, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::polyline, nsHtml5Atoms::polyline, nsHtml5TreeBuilder::OTHER);
ELT_PICTURE = new nsHtml5ElementName(
- nsHtml5Atoms::picture, nsHtml5Atoms::picture, NS_HTML5TREE_BUILDER_OTHER);
- ELT_SOURCE = new nsHtml5ElementName(nsHtml5Atoms::source, nsHtml5Atoms::source, NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK);
- ELT_STRIKE = new nsHtml5ElementName(nsHtml5Atoms::strike, nsHtml5Atoms::strike, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ nsHtml5Atoms::picture, nsHtml5Atoms::picture, nsHtml5TreeBuilder::OTHER);
+ ELT_SOURCE =
+ new nsHtml5ElementName(nsHtml5Atoms::source,
+ nsHtml5Atoms::source,
+ nsHtml5TreeBuilder::PARAM_OR_SOURCE_OR_TRACK);
+ ELT_STRIKE = new nsHtml5ElementName(
+ nsHtml5Atoms::strike,
+ nsHtml5Atoms::strike,
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
ELT_STYLE = new nsHtml5ElementName(nsHtml5Atoms::style,
nsHtml5Atoms::style,
- NS_HTML5TREE_BUILDER_STYLE |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_TABLE = new nsHtml5ElementName(
- nsHtml5Atoms::table,
- nsHtml5Atoms::table,
- NS_HTML5TREE_BUILDER_TABLE | NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_SCOPING);
+ nsHtml5TreeBuilder::STYLE | SPECIAL);
+ ELT_TABLE = new nsHtml5ElementName(nsHtml5Atoms::table,
+ nsHtml5Atoms::table,
+ nsHtml5TreeBuilder::TABLE | SPECIAL |
+ FOSTER_PARENTING | SCOPING);
ELT_TITLE = new nsHtml5ElementName(nsHtml5Atoms::title,
nsHtml5Atoms::title,
- NS_HTML5TREE_BUILDER_TITLE |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG);
+ nsHtml5TreeBuilder::TITLE | SPECIAL |
+ SCOPING_AS_SVG);
ELT_TIME = new nsHtml5ElementName(
- nsHtml5Atoms::time, nsHtml5Atoms::time, NS_HTML5TREE_BUILDER_OTHER);
- ELT_TEMPLATE = new nsHtml5ElementName(nsHtml5Atoms::template_,
- nsHtml5Atoms::template_,
- NS_HTML5TREE_BUILDER_TEMPLATE |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING);
+ nsHtml5Atoms::time, nsHtml5Atoms::time, nsHtml5TreeBuilder::OTHER);
+ ELT_TEMPLATE =
+ new nsHtml5ElementName(nsHtml5Atoms::template_,
+ nsHtml5Atoms::template_,
+ nsHtml5TreeBuilder::TEMPLATE | SPECIAL | SCOPING);
ELT_ALTGLYPHDEF = new nsHtml5ElementName(nsHtml5Atoms::altglyphdef,
nsHtml5Atoms::altGlyphDef,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_GLYPHREF = new nsHtml5ElementName(
- nsHtml5Atoms::glyphref, nsHtml5Atoms::glyphRef, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::glyphref, nsHtml5Atoms::glyphRef, nsHtml5TreeBuilder::OTHER);
ELT_DIALOG = new nsHtml5ElementName(
nsHtml5Atoms::dialog,
nsHtml5Atoms::dialog,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_FEFUNCG = new nsHtml5ElementName(
- nsHtml5Atoms::fefuncg, nsHtml5Atoms::feFuncG, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::fefuncg, nsHtml5Atoms::feFuncG, nsHtml5TreeBuilder::OTHER);
ELT_FEDIFFUSELIGHTING =
new nsHtml5ElementName(nsHtml5Atoms::fediffuselighting,
nsHtml5Atoms::feDiffuseLighting,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_FESPECULARLIGHTING =
new nsHtml5ElementName(nsHtml5Atoms::fespecularlighting,
nsHtml5Atoms::feSpecularLighting,
- NS_HTML5TREE_BUILDER_OTHER);
- ELT_LISTING = new nsHtml5ElementName(nsHtml5Atoms::listing,
- nsHtml5Atoms::listing,
- NS_HTML5TREE_BUILDER_PRE_OR_LISTING |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_STRONG = new nsHtml5ElementName(nsHtml5Atoms::strong, nsHtml5Atoms::strong, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ nsHtml5TreeBuilder::OTHER);
+ ELT_LISTING =
+ new nsHtml5ElementName(nsHtml5Atoms::listing,
+ nsHtml5Atoms::listing,
+ nsHtml5TreeBuilder::PRE_OR_LISTING | SPECIAL);
+ ELT_STRONG = new nsHtml5ElementName(
+ nsHtml5Atoms::strong,
+ nsHtml5Atoms::strong,
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
ELT_ALTGLYPH = new nsHtml5ElementName(
- nsHtml5Atoms::altglyph, nsHtml5Atoms::altGlyph, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::altglyph, nsHtml5Atoms::altGlyph, nsHtml5TreeBuilder::OTHER);
ELT_CLIPPATH = new nsHtml5ElementName(
- nsHtml5Atoms::clippath, nsHtml5Atoms::clipPath, NS_HTML5TREE_BUILDER_OTHER);
- ELT_MGLYPH =
- new nsHtml5ElementName(nsHtml5Atoms::mglyph,
- nsHtml5Atoms::mglyph,
- NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK);
+ nsHtml5Atoms::clippath, nsHtml5Atoms::clipPath, nsHtml5TreeBuilder::OTHER);
+ ELT_MGLYPH = new nsHtml5ElementName(nsHtml5Atoms::mglyph,
+ nsHtml5Atoms::mglyph,
+ nsHtml5TreeBuilder::MGLYPH_OR_MALIGNMARK);
ELT_MATH = new nsHtml5ElementName(
- nsHtml5Atoms::math, nsHtml5Atoms::math, NS_HTML5TREE_BUILDER_MATH);
+ nsHtml5Atoms::math, nsHtml5Atoms::math, nsHtml5TreeBuilder::MATH);
ELT_MPATH = new nsHtml5ElementName(
- nsHtml5Atoms::mpath, nsHtml5Atoms::mpath, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::mpath, nsHtml5Atoms::mpath, nsHtml5TreeBuilder::OTHER);
ELT_PATH = new nsHtml5ElementName(
- nsHtml5Atoms::path, nsHtml5Atoms::path, NS_HTML5TREE_BUILDER_OTHER);
- ELT_TH = new nsHtml5ElementName(
- nsHtml5Atoms::th,
- nsHtml5Atoms::th,
- NS_HTML5TREE_BUILDER_TD_OR_TH | NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_SWITCH = new nsHtml5ElementName(nsHtml5Atoms::switch_, nsHtml5Atoms::switch_, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::path, nsHtml5Atoms::path, nsHtml5TreeBuilder::OTHER);
+ ELT_TH = new nsHtml5ElementName(nsHtml5Atoms::th,
+ nsHtml5Atoms::th,
+ nsHtml5TreeBuilder::TD_OR_TH | SPECIAL |
+ SCOPING | OPTIONAL_END_TAG);
+ ELT_SWITCH = new nsHtml5ElementName(
+ nsHtml5Atoms::switch_, nsHtml5Atoms::switch_, nsHtml5TreeBuilder::OTHER);
ELT_TEXTPATH = new nsHtml5ElementName(
- nsHtml5Atoms::textpath, nsHtml5Atoms::textPath, NS_HTML5TREE_BUILDER_OTHER);
- ELT_LI = new nsHtml5ElementName(nsHtml5Atoms::li,
- nsHtml5Atoms::li,
- NS_HTML5TREE_BUILDER_LI |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5Atoms::textpath, nsHtml5Atoms::textPath, nsHtml5TreeBuilder::OTHER);
+ ELT_LI =
+ new nsHtml5ElementName(nsHtml5Atoms::li,
+ nsHtml5Atoms::li,
+ nsHtml5TreeBuilder::LI | SPECIAL | OPTIONAL_END_TAG);
ELT_MI = new nsHtml5ElementName(nsHtml5Atoms::mi,
nsHtml5Atoms::mi,
- NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
- ELT_LINK =
- new nsHtml5ElementName(nsHtml5Atoms::link,
- nsHtml5Atoms::link,
- NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::MI_MO_MN_MS_MTEXT |
+ SCOPING_AS_MATHML);
+ ELT_LINK = new nsHtml5ElementName(
+ nsHtml5Atoms::link,
+ nsHtml5Atoms::link,
+ nsHtml5TreeBuilder::LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
ELT_MARK = new nsHtml5ElementName(
- nsHtml5Atoms::mark, nsHtml5Atoms::mark, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::mark, nsHtml5Atoms::mark, nsHtml5TreeBuilder::OTHER);
ELT_MALIGNMARK =
new nsHtml5ElementName(nsHtml5Atoms::malignmark,
nsHtml5Atoms::malignmark,
- NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK);
+ nsHtml5TreeBuilder::MGLYPH_OR_MALIGNMARK);
ELT_MASK = new nsHtml5ElementName(
- nsHtml5Atoms::mask, nsHtml5Atoms::mask, NS_HTML5TREE_BUILDER_OTHER);
- ELT_TRACK =
- new nsHtml5ElementName(nsHtml5Atoms::track,
- nsHtml5Atoms::track,
- NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::mask, nsHtml5Atoms::mask, nsHtml5TreeBuilder::OTHER);
+ ELT_TRACK = new nsHtml5ElementName(
+ nsHtml5Atoms::track,
+ nsHtml5Atoms::track,
+ nsHtml5TreeBuilder::PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
ELT_DL = new nsHtml5ElementName(nsHtml5Atoms::dl,
nsHtml5Atoms::dl,
- NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_HTML = new nsHtml5ElementName(
- nsHtml5Atoms::html,
- nsHtml5Atoms::html,
- NS_HTML5TREE_BUILDER_HTML | NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::UL_OR_OL_OR_DL | SPECIAL);
+ ELT_HTML = new nsHtml5ElementName(nsHtml5Atoms::html,
+ nsHtml5Atoms::html,
+ nsHtml5TreeBuilder::HTML | SPECIAL |
+ SCOPING | OPTIONAL_END_TAG);
ELT_OL = new nsHtml5ElementName(nsHtml5Atoms::ol,
nsHtml5Atoms::ol,
- NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::UL_OR_OL_OR_DL | SPECIAL);
ELT_LABEL = new nsHtml5ElementName(
- nsHtml5Atoms::label, nsHtml5Atoms::label, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::label, nsHtml5Atoms::label, nsHtml5TreeBuilder::OTHER);
ELT_UL = new nsHtml5ElementName(nsHtml5Atoms::ul,
nsHtml5Atoms::ul,
- NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::UL_OR_OL_OR_DL | SPECIAL);
ELT_SMALL = new nsHtml5ElementName(
nsHtml5Atoms::small_,
nsHtml5Atoms::small_,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_SYMBOL = new nsHtml5ElementName(nsHtml5Atoms::symbol, nsHtml5Atoms::symbol, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_SYMBOL = new nsHtml5ElementName(
+ nsHtml5Atoms::symbol, nsHtml5Atoms::symbol, nsHtml5TreeBuilder::OTHER);
ELT_ALTGLYPHITEM = new nsHtml5ElementName(nsHtml5Atoms::altglyphitem,
nsHtml5Atoms::altGlyphItem,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_ANIMATETRANSFORM = new nsHtml5ElementName(nsHtml5Atoms::animatetransform,
nsHtml5Atoms::animateTransform,
- NS_HTML5TREE_BUILDER_OTHER);
- ELT_ACRONYM = new nsHtml5ElementName(nsHtml5Atoms::acronym, nsHtml5Atoms::acronym, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
+ ELT_ACRONYM = new nsHtml5ElementName(
+ nsHtml5Atoms::acronym, nsHtml5Atoms::acronym, nsHtml5TreeBuilder::OTHER);
ELT_EM = new nsHtml5ElementName(
nsHtml5Atoms::em,
nsHtml5Atoms::em,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
- ELT_FORM = new nsHtml5ElementName(nsHtml5Atoms::form,
- nsHtml5Atoms::form,
- NS_HTML5TREE_BUILDER_FORM |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ ELT_FORM = new nsHtml5ElementName(
+ nsHtml5Atoms::form, nsHtml5Atoms::form, nsHtml5TreeBuilder::FORM | SPECIAL);
ELT_MENUITEM = new nsHtml5ElementName(nsHtml5Atoms::menuitem,
nsHtml5Atoms::menuitem,
- NS_HTML5TREE_BUILDER_MENUITEM);
- ELT_PARAM =
- new nsHtml5ElementName(nsHtml5Atoms::param,
- nsHtml5Atoms::param,
- NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::MENUITEM);
+ ELT_PARAM = new nsHtml5ElementName(
+ nsHtml5Atoms::param,
+ nsHtml5Atoms::param,
+ nsHtml5TreeBuilder::PARAM_OR_SOURCE_OR_TRACK | SPECIAL);
ELT_ANIMATEMOTION = new nsHtml5ElementName(nsHtml5Atoms::animatemotion,
nsHtml5Atoms::animateMotion,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_BUTTON = new nsHtml5ElementName(nsHtml5Atoms::button,
nsHtml5Atoms::button,
- NS_HTML5TREE_BUILDER_BUTTON |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_CAPTION = new nsHtml5ElementName(nsHtml5Atoms::caption, nsHtml5Atoms::caption, NS_HTML5TREE_BUILDER_CAPTION | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_SCOPING);
+ nsHtml5TreeBuilder::BUTTON | SPECIAL);
+ ELT_CAPTION =
+ new nsHtml5ElementName(nsHtml5Atoms::caption,
+ nsHtml5Atoms::caption,
+ nsHtml5TreeBuilder::CAPTION | SPECIAL | SCOPING);
ELT_FIGCAPTION = new nsHtml5ElementName(
nsHtml5Atoms::figcaption,
nsHtml5Atoms::figcaption,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_MN = new nsHtml5ElementName(nsHtml5Atoms::mn,
nsHtml5Atoms::mn,
- NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
+ nsHtml5TreeBuilder::MI_MO_MN_MS_MTEXT |
+ SCOPING_AS_MATHML);
ELT_KEYGEN = new nsHtml5ElementName(
- nsHtml5Atoms::keygen, nsHtml5Atoms::keygen, NS_HTML5TREE_BUILDER_KEYGEN);
+ nsHtml5Atoms::keygen, nsHtml5Atoms::keygen, nsHtml5TreeBuilder::KEYGEN);
ELT_MAIN = new nsHtml5ElementName(
nsHtml5Atoms::main,
nsHtml5Atoms::main,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_OPTION = new nsHtml5ElementName(nsHtml5Atoms::option,
- nsHtml5Atoms::option,
- NS_HTML5TREE_BUILDER_OPTION |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_POLYGON = new nsHtml5ElementName(nsHtml5Atoms::polygon, nsHtml5Atoms::polygon, NS_HTML5TREE_BUILDER_OTHER);
- ELT_PATTERN = new nsHtml5ElementName(nsHtml5Atoms::pattern, nsHtml5Atoms::pattern, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
+ ELT_OPTION =
+ new nsHtml5ElementName(nsHtml5Atoms::option,
+ nsHtml5Atoms::option,
+ nsHtml5TreeBuilder::OPTION | OPTIONAL_END_TAG);
+ ELT_POLYGON = new nsHtml5ElementName(
+ nsHtml5Atoms::polygon, nsHtml5Atoms::polygon, nsHtml5TreeBuilder::OTHER);
+ ELT_PATTERN = new nsHtml5ElementName(
+ nsHtml5Atoms::pattern, nsHtml5Atoms::pattern, nsHtml5TreeBuilder::OTHER);
ELT_SPAN = new nsHtml5ElementName(
nsHtml5Atoms::span,
nsHtml5Atoms::span,
- NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
- ELT_SECTION = new nsHtml5ElementName(nsHtml5Atoms::section, nsHtml5Atoms::section, NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY | NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
+ ELT_SECTION = new nsHtml5ElementName(
+ nsHtml5Atoms::section,
+ nsHtml5Atoms::section,
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_TSPAN = new nsHtml5ElementName(
- nsHtml5Atoms::tspan, nsHtml5Atoms::tspan, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::tspan, nsHtml5Atoms::tspan, nsHtml5TreeBuilder::OTHER);
ELT_AUDIO = new nsHtml5ElementName(
- nsHtml5Atoms::audio, nsHtml5Atoms::audio, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::audio, nsHtml5Atoms::audio, nsHtml5TreeBuilder::OTHER);
ELT_MO = new nsHtml5ElementName(nsHtml5Atoms::mo,
nsHtml5Atoms::mo,
- NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
+ nsHtml5TreeBuilder::MI_MO_MN_MS_MTEXT |
+ SCOPING_AS_MATHML);
ELT_VIDEO = new nsHtml5ElementName(
- nsHtml5Atoms::video, nsHtml5Atoms::video, NS_HTML5TREE_BUILDER_OTHER);
- ELT_COLGROUP = new nsHtml5ElementName(nsHtml5Atoms::colgroup, nsHtml5Atoms::colgroup, NS_HTML5TREE_BUILDER_COLGROUP | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5Atoms::video, nsHtml5Atoms::video, nsHtml5TreeBuilder::OTHER);
+ ELT_COLGROUP = new nsHtml5ElementName(nsHtml5Atoms::colgroup,
+ nsHtml5Atoms::colgroup,
+ nsHtml5TreeBuilder::COLGROUP | SPECIAL |
+ OPTIONAL_END_TAG);
ELT_FEDISPLACEMENTMAP =
new nsHtml5ElementName(nsHtml5Atoms::fedisplacementmap,
nsHtml5Atoms::feDisplacementMap,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_HGROUP = new nsHtml5ElementName(
nsHtml5Atoms::hgroup,
nsHtml5Atoms::hgroup,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_RP = new nsHtml5ElementName(nsHtml5Atoms::rp,
- nsHtml5Atoms::rp,
- NS_HTML5TREE_BUILDER_RT_OR_RP |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_OPTGROUP = new nsHtml5ElementName(
- nsHtml5Atoms::optgroup,
- nsHtml5Atoms::optgroup,
- NS_HTML5TREE_BUILDER_OPTGROUP | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
+ ELT_RP =
+ new nsHtml5ElementName(nsHtml5Atoms::rp,
+ nsHtml5Atoms::rp,
+ nsHtml5TreeBuilder::RT_OR_RP | OPTIONAL_END_TAG);
+ ELT_OPTGROUP =
+ new nsHtml5ElementName(nsHtml5Atoms::optgroup,
+ nsHtml5Atoms::optgroup,
+ nsHtml5TreeBuilder::OPTGROUP | OPTIONAL_END_TAG);
ELT_SAMP = new nsHtml5ElementName(
- nsHtml5Atoms::samp, nsHtml5Atoms::samp, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::samp, nsHtml5Atoms::samp, nsHtml5TreeBuilder::OTHER);
ELT_STOP = new nsHtml5ElementName(
- nsHtml5Atoms::stop, nsHtml5Atoms::stop, NS_HTML5TREE_BUILDER_OTHER);
- ELT_BR = new nsHtml5ElementName(nsHtml5Atoms::br,
- nsHtml5Atoms::br,
- NS_HTML5TREE_BUILDER_BR |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::stop, nsHtml5Atoms::stop, nsHtml5TreeBuilder::OTHER);
+ ELT_BR = new nsHtml5ElementName(
+ nsHtml5Atoms::br, nsHtml5Atoms::br, nsHtml5TreeBuilder::BR | SPECIAL);
ELT_ABBR = new nsHtml5ElementName(
- nsHtml5Atoms::abbr, nsHtml5Atoms::abbr, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::abbr, nsHtml5Atoms::abbr, nsHtml5TreeBuilder::OTHER);
ELT_ANIMATECOLOR = new nsHtml5ElementName(nsHtml5Atoms::animatecolor,
nsHtml5Atoms::animateColor,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_CENTER = new nsHtml5ElementName(
nsHtml5Atoms::center,
nsHtml5Atoms::center,
- NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_HR = new nsHtml5ElementName(nsHtml5Atoms::hr,
- nsHtml5Atoms::hr,
- NS_HTML5TREE_BUILDER_HR |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
+ ELT_HR = new nsHtml5ElementName(
+ nsHtml5Atoms::hr, nsHtml5Atoms::hr, nsHtml5TreeBuilder::HR | SPECIAL);
ELT_FEFUNCR = new nsHtml5ElementName(
- nsHtml5Atoms::fefuncr, nsHtml5Atoms::feFuncR, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::fefuncr, nsHtml5Atoms::feFuncR, nsHtml5TreeBuilder::OTHER);
ELT_FECOMPONENTTRANSFER =
new nsHtml5ElementName(nsHtml5Atoms::fecomponenttransfer,
nsHtml5Atoms::feComponentTransfer,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_FILTER = new nsHtml5ElementName(
- nsHtml5Atoms::filter, nsHtml5Atoms::filter, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::filter, nsHtml5Atoms::filter, nsHtml5TreeBuilder::OTHER);
ELT_FOOTER = new nsHtml5ElementName(
nsHtml5Atoms::footer,
nsHtml5Atoms::footer,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_FEGAUSSIANBLUR = new nsHtml5ElementName(nsHtml5Atoms::fegaussianblur,
nsHtml5Atoms::feGaussianBlur,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_HEADER = new nsHtml5ElementName(
nsHtml5Atoms::header,
nsHtml5Atoms::header,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_MARKER = new nsHtml5ElementName(
- nsHtml5Atoms::marker, nsHtml5Atoms::marker, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::marker, nsHtml5Atoms::marker, nsHtml5TreeBuilder::OTHER);
ELT_METER = new nsHtml5ElementName(
- nsHtml5Atoms::meter, nsHtml5Atoms::meter, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::meter, nsHtml5Atoms::meter, nsHtml5TreeBuilder::OTHER);
ELT_NOBR = new nsHtml5ElementName(
- nsHtml5Atoms::nobr, nsHtml5Atoms::nobr, NS_HTML5TREE_BUILDER_NOBR);
+ nsHtml5Atoms::nobr, nsHtml5Atoms::nobr, nsHtml5TreeBuilder::NOBR);
ELT_TR = new nsHtml5ElementName(nsHtml5Atoms::tr,
nsHtml5Atoms::tr,
- NS_HTML5TREE_BUILDER_TR |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_FOSTER_PARENTING |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::TR | SPECIAL |
+ FOSTER_PARENTING | OPTIONAL_END_TAG);
ELT_ADDRESS = new nsHtml5ElementName(
nsHtml5Atoms::address,
nsHtml5Atoms::address,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_CANVAS = new nsHtml5ElementName(
- nsHtml5Atoms::canvas, nsHtml5Atoms::canvas, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::canvas, nsHtml5Atoms::canvas, nsHtml5TreeBuilder::OTHER);
ELT_DEFS = new nsHtml5ElementName(
- nsHtml5Atoms::defs, nsHtml5Atoms::defs, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::defs, nsHtml5Atoms::defs, nsHtml5TreeBuilder::OTHER);
ELT_DETAILS = new nsHtml5ElementName(
nsHtml5Atoms::details,
nsHtml5Atoms::details,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
ELT_MS = new nsHtml5ElementName(nsHtml5Atoms::ms,
nsHtml5Atoms::ms,
- NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
+ nsHtml5TreeBuilder::MI_MO_MN_MS_MTEXT |
+ SCOPING_AS_MATHML);
ELT_NOFRAMES = new nsHtml5ElementName(nsHtml5Atoms::noframes,
nsHtml5Atoms::noframes,
- NS_HTML5TREE_BUILDER_NOFRAMES |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::NOFRAMES | SPECIAL);
ELT_PROGRESS = new nsHtml5ElementName(
- nsHtml5Atoms::progress, nsHtml5Atoms::progress, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::progress, nsHtml5Atoms::progress, nsHtml5TreeBuilder::OTHER);
ELT_DT = new nsHtml5ElementName(nsHtml5Atoms::dt,
nsHtml5Atoms::dt,
- NS_HTML5TREE_BUILDER_DD_OR_DT |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::DD_OR_DT | SPECIAL |
+ OPTIONAL_END_TAG);
ELT_APPLET = new nsHtml5ElementName(nsHtml5Atoms::applet,
nsHtml5Atoms::applet,
- NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING);
- ELT_BASEFONT =
- new nsHtml5ElementName(nsHtml5Atoms::basefont,
- nsHtml5Atoms::basefont,
- NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_FOREIGNOBJECT =
- new nsHtml5ElementName(nsHtml5Atoms::foreignobject,
- nsHtml5Atoms::foreignObject,
- NS_HTML5TREE_BUILDER_FOREIGNOBJECT_OR_DESC |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG);
- ELT_FIELDSET = new nsHtml5ElementName(nsHtml5Atoms::fieldset, nsHtml5Atoms::fieldset, NS_HTML5TREE_BUILDER_FIELDSET | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_FRAMESET = new nsHtml5ElementName(nsHtml5Atoms::frameset, nsHtml5Atoms::frameset, NS_HTML5TREE_BUILDER_FRAMESET | NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_FEOFFSET = new nsHtml5ElementName(nsHtml5Atoms::feoffset, nsHtml5Atoms::feOffset, NS_HTML5TREE_BUILDER_OTHER);
- ELT_FESPOTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fespotlight, nsHtml5Atoms::feSpotLight, NS_HTML5TREE_BUILDER_OTHER);
- ELT_FEPOINTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fepointlight, nsHtml5Atoms::fePointLight, NS_HTML5TREE_BUILDER_OTHER);
- ELT_FEDISTANTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fedistantlight, nsHtml5Atoms::feDistantLight, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::MARQUEE_OR_APPLET |
+ SPECIAL | SCOPING);
+ ELT_BASEFONT = new nsHtml5ElementName(
+ nsHtml5Atoms::basefont,
+ nsHtml5Atoms::basefont,
+ nsHtml5TreeBuilder::LINK_OR_BASEFONT_OR_BGSOUND | SPECIAL);
+ ELT_FOREIGNOBJECT = new nsHtml5ElementName(
+ nsHtml5Atoms::foreignobject,
+ nsHtml5Atoms::foreignObject,
+ nsHtml5TreeBuilder::FOREIGNOBJECT_OR_DESC | SCOPING_AS_SVG);
+ ELT_FIELDSET = new nsHtml5ElementName(nsHtml5Atoms::fieldset,
+ nsHtml5Atoms::fieldset,
+ nsHtml5TreeBuilder::FIELDSET | SPECIAL);
+ ELT_FRAMESET = new nsHtml5ElementName(nsHtml5Atoms::frameset,
+ nsHtml5Atoms::frameset,
+ nsHtml5TreeBuilder::FRAMESET | SPECIAL);
+ ELT_FEOFFSET = new nsHtml5ElementName(
+ nsHtml5Atoms::feoffset, nsHtml5Atoms::feOffset, nsHtml5TreeBuilder::OTHER);
+ ELT_FESPOTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fespotlight,
+ nsHtml5Atoms::feSpotLight,
+ nsHtml5TreeBuilder::OTHER);
+ ELT_FEPOINTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fepointlight,
+ nsHtml5Atoms::fePointLight,
+ nsHtml5TreeBuilder::OTHER);
+ ELT_FEDISTANTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fedistantlight,
+ nsHtml5Atoms::feDistantLight,
+ nsHtml5TreeBuilder::OTHER);
ELT_FONT = new nsHtml5ElementName(
- nsHtml5Atoms::font, nsHtml5Atoms::font, NS_HTML5TREE_BUILDER_FONT);
+ nsHtml5Atoms::font, nsHtml5Atoms::font, nsHtml5TreeBuilder::FONT);
ELT_INPUT = new nsHtml5ElementName(nsHtml5Atoms::input,
nsHtml5Atoms::input,
- NS_HTML5TREE_BUILDER_INPUT |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_LINEARGRADIENT = new nsHtml5ElementName(nsHtml5Atoms::lineargradient, nsHtml5Atoms::linearGradient, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::INPUT | SPECIAL);
+ ELT_LINEARGRADIENT = new nsHtml5ElementName(nsHtml5Atoms::lineargradient,
+ nsHtml5Atoms::linearGradient,
+ nsHtml5TreeBuilder::OTHER);
ELT_MTEXT = new nsHtml5ElementName(nsHtml5Atoms::mtext,
nsHtml5Atoms::mtext,
- NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT |
- NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML);
+ nsHtml5TreeBuilder::MI_MO_MN_MS_MTEXT |
+ SCOPING_AS_MATHML);
ELT_NOSCRIPT = new nsHtml5ElementName(nsHtml5Atoms::noscript,
nsHtml5Atoms::noscript,
- NS_HTML5TREE_BUILDER_NOSCRIPT |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_RT = new nsHtml5ElementName(nsHtml5Atoms::rt,
- nsHtml5Atoms::rt,
- NS_HTML5TREE_BUILDER_RT_OR_RP |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- ELT_OBJECT = new nsHtml5ElementName(nsHtml5Atoms::object,
- nsHtml5Atoms::object,
- NS_HTML5TREE_BUILDER_OBJECT |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_SCOPING);
+ nsHtml5TreeBuilder::NOSCRIPT | SPECIAL);
+ ELT_RT =
+ new nsHtml5ElementName(nsHtml5Atoms::rt,
+ nsHtml5Atoms::rt,
+ nsHtml5TreeBuilder::RT_OR_RP | OPTIONAL_END_TAG);
+ ELT_OBJECT =
+ new nsHtml5ElementName(nsHtml5Atoms::object,
+ nsHtml5Atoms::object,
+ nsHtml5TreeBuilder::OBJECT | SPECIAL | SCOPING);
ELT_OUTPUT = new nsHtml5ElementName(
- nsHtml5Atoms::output, nsHtml5Atoms::output, NS_HTML5TREE_BUILDER_OUTPUT);
- ELT_PLAINTEXT = new nsHtml5ElementName(nsHtml5Atoms::plaintext,
- nsHtml5Atoms::plaintext,
- NS_HTML5TREE_BUILDER_PLAINTEXT |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5Atoms::output, nsHtml5Atoms::output, nsHtml5TreeBuilder::OUTPUT);
+ ELT_PLAINTEXT =
+ new nsHtml5ElementName(nsHtml5Atoms::plaintext,
+ nsHtml5Atoms::plaintext,
+ nsHtml5TreeBuilder::PLAINTEXT | SPECIAL);
ELT_TT = new nsHtml5ElementName(
nsHtml5Atoms::tt,
nsHtml5Atoms::tt,
- NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
+ nsHtml5TreeBuilder::
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U);
ELT_RECT = new nsHtml5ElementName(
- nsHtml5Atoms::rect, nsHtml5Atoms::rect, NS_HTML5TREE_BUILDER_OTHER);
- ELT_RADIALGRADIENT = new nsHtml5ElementName(nsHtml5Atoms::radialgradient, nsHtml5Atoms::radialGradient, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::rect, nsHtml5Atoms::rect, nsHtml5TreeBuilder::OTHER);
+ ELT_RADIALGRADIENT = new nsHtml5ElementName(nsHtml5Atoms::radialgradient,
+ nsHtml5Atoms::radialGradient,
+ nsHtml5TreeBuilder::OTHER);
ELT_SELECT = new nsHtml5ElementName(nsHtml5Atoms::select,
nsHtml5Atoms::select,
- NS_HTML5TREE_BUILDER_SELECT |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::SELECT | SPECIAL);
ELT_SCRIPT = new nsHtml5ElementName(nsHtml5Atoms::script,
nsHtml5Atoms::script,
- NS_HTML5TREE_BUILDER_SCRIPT |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_TFOOT = new nsHtml5ElementName(
- nsHtml5Atoms::tfoot,
- nsHtml5Atoms::tfoot,
- NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT |
- NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_FOSTER_PARENTING |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::SCRIPT | SPECIAL);
+ ELT_TFOOT =
+ new nsHtml5ElementName(nsHtml5Atoms::tfoot,
+ nsHtml5Atoms::tfoot,
+ nsHtml5TreeBuilder::TBODY_OR_THEAD_OR_TFOOT |
+ SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
ELT_TEXT = new nsHtml5ElementName(
- nsHtml5Atoms::text, nsHtml5Atoms::text, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::text, nsHtml5Atoms::text, nsHtml5TreeBuilder::OTHER);
ELT_MENU = new nsHtml5ElementName(
nsHtml5Atoms::menu,
nsHtml5Atoms::menu,
- NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU |
- NS_HTML5ELEMENT_NAME_SPECIAL);
+ nsHtml5TreeBuilder::DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU | SPECIAL);
ELT_FEDROPSHADOW = new nsHtml5ElementName(nsHtml5Atoms::fedropshadow,
nsHtml5Atoms::feDropShadow,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_VIEW = new nsHtml5ElementName(
- nsHtml5Atoms::view, nsHtml5Atoms::view, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5Atoms::view, nsHtml5Atoms::view, nsHtml5TreeBuilder::OTHER);
ELT_FECOLORMATRIX = new nsHtml5ElementName(nsHtml5Atoms::fecolormatrix,
nsHtml5Atoms::feColorMatrix,
- NS_HTML5TREE_BUILDER_OTHER);
- ELT_FECONVOLVEMATRIX = new nsHtml5ElementName(nsHtml5Atoms::feconvolvematrix, nsHtml5Atoms::feConvolveMatrix, NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
+ ELT_FECONVOLVEMATRIX = new nsHtml5ElementName(nsHtml5Atoms::feconvolvematrix,
+ nsHtml5Atoms::feConvolveMatrix,
+ nsHtml5TreeBuilder::OTHER);
ELT_BODY = new nsHtml5ElementName(nsHtml5Atoms::body,
nsHtml5Atoms::body,
- NS_HTML5TREE_BUILDER_BODY |
- NS_HTML5ELEMENT_NAME_SPECIAL |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::BODY | SPECIAL |
+ OPTIONAL_END_TAG);
ELT_FEMORPHOLOGY = new nsHtml5ElementName(nsHtml5Atoms::femorphology,
nsHtml5Atoms::feMorphology,
- NS_HTML5TREE_BUILDER_OTHER);
+ nsHtml5TreeBuilder::OTHER);
ELT_RUBY = new nsHtml5ElementName(
nsHtml5Atoms::ruby,
nsHtml5Atoms::ruby,
- NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
+ nsHtml5TreeBuilder::RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR);
ELT_SUMMARY = new nsHtml5ElementName(
nsHtml5Atoms::summary,
nsHtml5Atoms::summary,
- NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
- NS_HTML5ELEMENT_NAME_SPECIAL);
- ELT_TBODY = new nsHtml5ElementName(
- nsHtml5Atoms::tbody,
- nsHtml5Atoms::tbody,
- NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT |
- NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_FOSTER_PARENTING |
- NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
+ nsHtml5TreeBuilder::
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY |
+ SPECIAL);
+ ELT_TBODY =
+ new nsHtml5ElementName(nsHtml5Atoms::tbody,
+ nsHtml5Atoms::tbody,
+ nsHtml5TreeBuilder::TBODY_OR_THEAD_OR_TFOOT |
+ SPECIAL | FOSTER_PARENTING | OPTIONAL_END_TAG);
ELEMENT_NAMES = new nsHtml5ElementName*[204];
ELEMENT_NAMES[0] = ELT_BIG;
ELEMENT_NAMES[1] = ELT_BDO;
ELEMENT_NAMES[2] = ELT_COL;
ELEMENT_NAMES[3] = ELT_DEL;
ELEMENT_NAMES[4] = ELT_DFN;
ELEMENT_NAMES[5] = ELT_DIR;
ELEMENT_NAMES[6] = ELT_DIV;
--- a/parser/html/nsHtml5ElementName.h
+++ b/parser/html/nsHtml5ElementName.h
@@ -37,48 +37,89 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5ElementName
{
+public:
+ static const int32_t GROUP_MASK = 127;
+
+ static const int32_t NOT_INTERNED = (1 << 30);
+
+ static const int32_t SPECIAL = (1 << 29);
+
+ static const int32_t FOSTER_PARENTING = (1 << 28);
+
+ static const int32_t SCOPING = (1 << 27);
+
+ static const int32_t SCOPING_AS_SVG = (1 << 26);
+
+ static const int32_t SCOPING_AS_MATHML = (1 << 25);
+
+ static const int32_t HTML_INTEGRATION_POINT = (1 << 24);
+
+ static const int32_t OPTIONAL_END_TAG = (1 << 23);
+
private:
nsIAtom* name;
nsIAtom* camelCaseName;
public:
int32_t flags;
inline nsIAtom* getName() { return name; }
inline nsIAtom* getCamelCaseName() { return camelCaseName; }
inline int32_t getFlags() { return flags; }
- int32_t getGroup();
- bool isInterned();
- static nsHtml5ElementName* elementNameByBuffer(char16_t* buf,
- int32_t offset,
- int32_t length,
- nsHtml5AtomTable* interner);
+ inline int32_t getGroup() { return flags & nsHtml5ElementName::GROUP_MASK; }
+
+ inline bool isInterned()
+ {
+ return !(flags & nsHtml5ElementName::NOT_INTERNED);
+ }
+
+ inline static nsHtml5ElementName* elementNameByBuffer(
+ char16_t* buf,
+ int32_t offset,
+ int32_t length,
+ nsHtml5AtomTable* interner)
+ {
+ uint32_t hash = nsHtml5ElementName::bufToHash(buf, length);
+ int32_t index = nsHtml5ElementName::ELEMENT_HASHES.binarySearch(hash);
+ if (index < 0) {
+ return nullptr;
+ } else {
+ nsHtml5ElementName* elementName =
+ nsHtml5ElementName::ELEMENT_NAMES[index];
+ nsIAtom* name = elementName->name;
+ if (!nsHtml5Portability::localEqualsBuffer(name, buf, offset, length)) {
+ return nullptr;
+ }
+ return elementName;
+ }
+ }
private:
inline static uint32_t bufToHash(char16_t* buf, int32_t length)
{
uint32_t len = length;
uint32_t first = buf[0];
first <<= 19;
uint32_t second = 1 << 23;
@@ -105,17 +146,23 @@ private:
}
return len + first + second + third + fourth + fifth;
}
nsHtml5ElementName(nsIAtom* name, nsIAtom* camelCaseName, int32_t flags);
public:
nsHtml5ElementName();
~nsHtml5ElementName();
- void setNameForNonInterned(nsIAtom* name);
+ inline void setNameForNonInterned(nsIAtom* name)
+ {
+ this->name = name;
+ this->camelCaseName = name;
+ MOZ_ASSERT(this->flags == nsHtml5ElementName::NOT_INTERNED);
+ }
+
static nsHtml5ElementName* ELT_ANNOTATION_XML;
static nsHtml5ElementName* ELT_ISINDEX;
static nsHtml5ElementName* ELT_BIG;
static nsHtml5ElementName* ELT_BDO;
static nsHtml5ElementName* ELT_COL;
static nsHtml5ElementName* ELT_DEL;
static nsHtml5ElementName* ELT_DFN;
static nsHtml5ElementName* ELT_DIR;
@@ -319,21 +366,10 @@ private:
private:
static nsHtml5ElementName** ELEMENT_NAMES;
static staticJArray<int32_t,int32_t> ELEMENT_HASHES;
public:
static void initializeStatics();
static void releaseStatics();
};
-#define NS_HTML5ELEMENT_NAME_GROUP_MASK 127
-#define NS_HTML5ELEMENT_NAME_NOT_INTERNED (1 << 30)
-#define NS_HTML5ELEMENT_NAME_SPECIAL (1 << 29)
-#define NS_HTML5ELEMENT_NAME_FOSTER_PARENTING (1 << 28)
-#define NS_HTML5ELEMENT_NAME_SCOPING (1 << 27)
-#define NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG (1 << 26)
-#define NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML (1 << 25)
-#define NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT (1 << 24)
-#define NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG (1 << 23)
-
-
#endif
--- a/parser/html/nsHtml5Highlighter.cpp
+++ b/parser/html/nsHtml5Highlighter.cpp
@@ -43,17 +43,17 @@ char16_t nsHtml5Highlighter::sAttributeV
char16_t nsHtml5Highlighter::sDoctype[] =
{ 'd', 'o', 'c', 't', 'y', 'p', 'e', 0 };
char16_t nsHtml5Highlighter::sPi[] =
{ 'p', 'i', 0 };
nsHtml5Highlighter::nsHtml5Highlighter(nsAHtml5TreeOpSink* aOpSink)
- : mState(NS_HTML5TOKENIZER_DATA)
+ : mState(nsHtml5Tokenizer::DATA)
, mCStart(INT32_MAX)
, mPos(0)
, mLineNumber(1)
, mInlinesOpen(0)
, mInCharacters(false)
, mBuffer(nullptr)
, mOpSink(aOpSink)
, mCurrentRun(nullptr)
@@ -114,357 +114,357 @@ nsHtml5Highlighter::Start(const nsAutoSt
mOpQueue.AppendElement()->Init(eTreeOpStartLayout);
}
int32_t
nsHtml5Highlighter::Transition(int32_t aState, bool aReconsume, int32_t aPos)
{
mPos = aPos;
switch (mState) {
- case NS_HTML5TOKENIZER_SCRIPT_DATA:
- case NS_HTML5TOKENIZER_RAWTEXT:
- case NS_HTML5TOKENIZER_RCDATA:
- case NS_HTML5TOKENIZER_DATA:
+ case nsHtml5Tokenizer::SCRIPT_DATA:
+ case nsHtml5Tokenizer::RAWTEXT:
+ case nsHtml5Tokenizer::RCDATA:
+ case nsHtml5Tokenizer::DATA:
// We can transition on < and on &. Either way, we don't yet know the
// role of the token, so open a span without class.
- if (aState == NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE) {
+ if (aState == nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE) {
StartSpan();
// Start another span for highlighting the ampersand
StartSpan();
mAmpersand = CurrentNode();
} else {
EndCharactersAndStartMarkupRun();
}
break;
- case NS_HTML5TOKENIZER_TAG_OPEN:
+ case nsHtml5Tokenizer::TAG_OPEN:
switch (aState) {
- case NS_HTML5TOKENIZER_TAG_NAME:
+ case nsHtml5Tokenizer::TAG_NAME:
StartSpan(sStartTag);
break;
- case NS_HTML5TOKENIZER_DATA:
+ case nsHtml5Tokenizer::DATA:
FinishTag(); // DATA
break;
- case NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION:
+ case nsHtml5Tokenizer::PROCESSING_INSTRUCTION:
AddClass(sPi);
break;
}
break;
- case NS_HTML5TOKENIZER_TAG_NAME:
+ case nsHtml5Tokenizer::TAG_NAME:
switch (aState) {
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
- EndSpanOrA(); // NS_HTML5TOKENIZER_TAG_NAME
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
+ EndSpanOrA(); // nsHtml5Tokenizer::TAG_NAME
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
- EndSpanOrA(); // NS_HTML5TOKENIZER_TAG_NAME
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
+ EndSpanOrA(); // nsHtml5Tokenizer::TAG_NAME
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
switch (aState) {
- case NS_HTML5TOKENIZER_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::ATTRIBUTE_NAME:
StartSpan(sAttributeName);
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::ATTRIBUTE_NAME:
switch (aState) {
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME:
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE:
- EndSpanOrA(); // NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME
+ case nsHtml5Tokenizer::AFTER_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_VALUE:
+ EndSpanOrA(); // nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
- EndSpanOrA(); // NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
+ EndSpanOrA(); // nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_VALUE:
switch (aState) {
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_SINGLE_QUOTED:
FlushCurrent();
StartA();
break;
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_UNQUOTED:
StartA();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_SINGLE_QUOTED:
switch (aState) {
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_ATTRIBUTE_VALUE_QUOTED:
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE:
+ case nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE:
StartSpan();
StartSpan(); // for ampersand itself
mAmpersand = CurrentNode();
break;
default:
NS_NOTREACHED("Impossible transition.");
break;
}
break;
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_ATTRIBUTE_VALUE_QUOTED:
switch (aState) {
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
EndSpanOrA(); // end the slash highlight
switch (aState) {
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED:
+ case nsHtml5Tokenizer::ATTRIBUTE_VALUE_UNQUOTED:
switch (aState) {
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE:
+ case nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE:
StartSpan();
StartSpan(); // for ampersand itself
mAmpersand = CurrentNode();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::AFTER_ATTRIBUTE_NAME:
switch (aState) {
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_VALUE:
break;
- case NS_HTML5TOKENIZER_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::ATTRIBUTE_NAME:
StartSpan(sAttributeName);
break;
default:
FinishTag();
break;
}
break;
// most comment states are omitted, because they don't matter to
// highlighting
- case NS_HTML5TOKENIZER_COMMENT_START:
- case NS_HTML5TOKENIZER_COMMENT_END:
- case NS_HTML5TOKENIZER_COMMENT_END_BANG:
- case NS_HTML5TOKENIZER_COMMENT_START_DASH:
- case NS_HTML5TOKENIZER_BOGUS_COMMENT:
- case NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN:
- if (aState == NS_HTML5TOKENIZER_DATA) {
+ case nsHtml5Tokenizer::COMMENT_START:
+ case nsHtml5Tokenizer::COMMENT_END:
+ case nsHtml5Tokenizer::COMMENT_END_BANG:
+ case nsHtml5Tokenizer::COMMENT_START_DASH:
+ case nsHtml5Tokenizer::BOGUS_COMMENT:
+ case nsHtml5Tokenizer::BOGUS_COMMENT_HYPHEN:
+ if (aState == nsHtml5Tokenizer::DATA) {
AddClass(sComment);
FinishTag();
}
break;
// most cdata states are omitted, because they don't matter to
// highlighting
- case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB:
- if (aState == NS_HTML5TOKENIZER_DATA) {
+ case nsHtml5Tokenizer::CDATA_RSQB_RSQB:
+ if (aState == nsHtml5Tokenizer::DATA) {
AddClass(sCdata);
FinishTag();
}
break;
- case NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE:
+ case nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE:
EndSpanOrA(); // the span for the ampersand
switch (aState) {
- case NS_HTML5TOKENIZER_CONSUME_NCR:
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP:
+ case nsHtml5Tokenizer::CONSUME_NCR:
+ case nsHtml5Tokenizer::CHARACTER_REFERENCE_HILO_LOOKUP:
break;
default:
// not actually a character reference
EndSpanOrA();
break;
}
break;
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP:
- if (aState == NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL) {
+ case nsHtml5Tokenizer::CHARACTER_REFERENCE_HILO_LOOKUP:
+ if (aState == nsHtml5Tokenizer::CHARACTER_REFERENCE_TAIL) {
break;
}
// not actually a character reference
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL:
+ case nsHtml5Tokenizer::CHARACTER_REFERENCE_TAIL:
if (!aReconsume) {
FlushCurrent();
}
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP:
- case NS_HTML5TOKENIZER_HEX_NCR_LOOP:
+ case nsHtml5Tokenizer::DECIMAL_NRC_LOOP:
+ case nsHtml5Tokenizer::HEX_NCR_LOOP:
switch (aState) {
- case NS_HTML5TOKENIZER_HANDLE_NCR_VALUE:
+ case nsHtml5Tokenizer::HANDLE_NCR_VALUE:
AddClass(sEntity);
FlushCurrent();
break;
- case NS_HTML5TOKENIZER_HANDLE_NCR_VALUE_RECONSUME:
+ case nsHtml5Tokenizer::HANDLE_NCR_VALUE_RECONSUME:
AddClass(sEntity);
break;
}
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_CLOSE_TAG_OPEN:
+ case nsHtml5Tokenizer::CLOSE_TAG_OPEN:
switch (aState) {
- case NS_HTML5TOKENIZER_DATA:
+ case nsHtml5Tokenizer::DATA:
FinishTag();
break;
- case NS_HTML5TOKENIZER_TAG_NAME:
+ case nsHtml5Tokenizer::TAG_NAME:
StartSpan(sEndTag);
break;
}
break;
- case NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN:
- if (aState == NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME) {
+ case nsHtml5Tokenizer::RAWTEXT_RCDATA_LESS_THAN_SIGN:
+ if (aState == nsHtml5Tokenizer::NON_DATA_END_TAG_NAME) {
FlushCurrent();
StartSpan(); // don't know if it is "end-tag" yet :-(
break;
}
EndSpanOrA();
StartCharacters();
break;
- case NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME:
+ case nsHtml5Tokenizer::NON_DATA_END_TAG_NAME:
switch (aState) {
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
+ case nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME:
AddClass(sEndTag);
EndSpanOrA();
break;
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG:
+ case nsHtml5Tokenizer::SELF_CLOSING_START_TAG:
AddClass(sEndTag);
EndSpanOrA();
StartSpan(); // for highlighting the slash
mSlash = CurrentNode();
break;
- case NS_HTML5TOKENIZER_DATA: // yes, as a result of emitting the token
+ case nsHtml5Tokenizer::DATA: // yes, as a result of emitting the token
AddClass(sEndTag);
FinishTag();
break;
default:
FinishTag();
break;
}
break;
- case NS_HTML5TOKENIZER_SCRIPT_DATA_LESS_THAN_SIGN:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:
- if (aState == NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME) {
+ case nsHtml5Tokenizer::SCRIPT_DATA_LESS_THAN_SIGN:
+ case nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:
+ if (aState == nsHtml5Tokenizer::NON_DATA_END_TAG_NAME) {
FlushCurrent();
StartSpan(); // don't know if it is "end-tag" yet :-(
break;
}
FinishTag();
break;
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH:
- if (aState == NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN) {
+ case nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_DASH_DASH:
+ case nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED:
+ case nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_DASH:
+ if (aState == nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN) {
EndCharactersAndStartMarkupRun();
}
break;
// Lots of double escape states omitted, because they don't highlight.
// Likewise, only doctype states that can emit the doctype are of
// interest. Otherwise, the transition out of bogus comment deals.
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
- case NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER:
- case NS_HTML5TOKENIZER_BOGUS_DOCTYPE:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:
- if (aState == NS_HTML5TOKENIZER_DATA) {
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_NAME:
+ case nsHtml5Tokenizer::DOCTYPE_NAME:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_NAME:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_KEYWORD:
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:
+ case nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
+ case nsHtml5Tokenizer::BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:
+ case nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_IDENTIFIER:
+ case nsHtml5Tokenizer::BOGUS_DOCTYPE:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_KEYWORD:
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
+ case nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:
+ case nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:
+ if (aState == nsHtml5Tokenizer::DATA) {
AddClass(sDoctype);
FinishTag();
}
break;
- case NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION_QUESTION_MARK:
- if (aState == NS_HTML5TOKENIZER_DATA) {
+ case nsHtml5Tokenizer::PROCESSING_INSTRUCTION_QUESTION_MARK:
+ if (aState == nsHtml5Tokenizer::DATA) {
FinishTag();
}
break;
default:
break;
}
mState = aState;
return aState;
}
void
nsHtml5Highlighter::End()
{
switch (mState) {
- case NS_HTML5TOKENIZER_COMMENT_END:
- case NS_HTML5TOKENIZER_COMMENT_END_BANG:
- case NS_HTML5TOKENIZER_COMMENT_START_DASH:
- case NS_HTML5TOKENIZER_BOGUS_COMMENT:
- case NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN:
+ case nsHtml5Tokenizer::COMMENT_END:
+ case nsHtml5Tokenizer::COMMENT_END_BANG:
+ case nsHtml5Tokenizer::COMMENT_START_DASH:
+ case nsHtml5Tokenizer::BOGUS_COMMENT:
+ case nsHtml5Tokenizer::BOGUS_COMMENT_HYPHEN:
AddClass(sComment);
break;
- case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB:
+ case nsHtml5Tokenizer::CDATA_RSQB_RSQB:
AddClass(sCdata);
break;
- case NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP:
- case NS_HTML5TOKENIZER_HEX_NCR_LOOP:
+ case nsHtml5Tokenizer::DECIMAL_NRC_LOOP:
+ case nsHtml5Tokenizer::HEX_NCR_LOOP:
// XXX need tokenizer help here
break;
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
- case NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER:
- case NS_HTML5TOKENIZER_BOGUS_DOCTYPE:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_NAME:
+ case nsHtml5Tokenizer::DOCTYPE_NAME:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_NAME:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_KEYWORD:
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:
+ case nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
+ case nsHtml5Tokenizer::BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:
+ case nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_IDENTIFIER:
+ case nsHtml5Tokenizer::BOGUS_DOCTYPE:
+ case nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_KEYWORD:
+ case nsHtml5Tokenizer::BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
+ case nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:
+ case nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:
AddClass(sDoctype);
break;
default:
break;
}
nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement();
NS_ASSERTION(treeOp, "Tree op allocation failed.");
treeOp->Init(eTreeOpStreamEnded);
--- a/parser/html/nsHtml5HtmlAttributes.cpp
+++ b/parser/html/nsHtml5HtmlAttributes.cpp
@@ -64,18 +64,18 @@ nsHtml5HtmlAttributes::~nsHtml5HtmlAttri
MOZ_COUNT_DTOR(nsHtml5HtmlAttributes);
clear(0);
}
int32_t
nsHtml5HtmlAttributes::getIndex(nsHtml5AttributeName* aName)
{
for (size_t i = 0; i < mStorage.Length(); i++) {
- if (mStorage[i].GetLocal(NS_HTML5ATTRIBUTE_NAME_HTML) ==
- aName->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML)) {
+ if (mStorage[i].GetLocal(nsHtml5AttributeName::HTML) ==
+ aName->getLocal(nsHtml5AttributeName::HTML)) {
// It's release asserted elsewhere that i can't be too large.
return i;
}
}
return -1;
}
nsHtml5String
@@ -177,60 +177,60 @@ nsHtml5HtmlAttributes::clearWithoutRelea
{
mStorage.TruncateLength(0);
}
bool
nsHtml5HtmlAttributes::contains(nsHtml5AttributeName* aName)
{
for (size_t i = 0; i < mStorage.Length(); i++) {
- if (mStorage[i].GetLocal(NS_HTML5ATTRIBUTE_NAME_HTML) ==
- aName->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML)) {
+ if (mStorage[i].GetLocal(nsHtml5AttributeName::HTML) ==
+ aName->getLocal(nsHtml5AttributeName::HTML)) {
return true;
}
}
return false;
}
void
nsHtml5HtmlAttributes::adjustForMath()
{
- mMode = NS_HTML5ATTRIBUTE_NAME_MATHML;
+ mMode = nsHtml5AttributeName::MATHML;
}
void
nsHtml5HtmlAttributes::adjustForSvg()
{
- mMode = NS_HTML5ATTRIBUTE_NAME_SVG;
+ mMode = nsHtml5AttributeName::SVG;
}
nsHtml5HtmlAttributes*
nsHtml5HtmlAttributes::cloneAttributes(nsHtml5AtomTable* aInterner)
{
MOZ_ASSERT(mStorage.IsEmpty() || !mMode);
nsHtml5HtmlAttributes* clone =
- new nsHtml5HtmlAttributes(NS_HTML5ATTRIBUTE_NAME_HTML);
+ new nsHtml5HtmlAttributes(nsHtml5AttributeName::HTML);
for (nsHtml5AttributeEntry& entry : mStorage) {
clone->AddEntry(entry.Clone(aInterner));
}
return clone;
}
bool
nsHtml5HtmlAttributes::equalsAnother(nsHtml5HtmlAttributes* aOther)
{
MOZ_ASSERT(!mMode, "Trying to compare attributes in foreign content.");
if (mStorage.Length() != aOther->mStorage.Length()) {
return false;
}
for (nsHtml5AttributeEntry& entry : mStorage) {
bool found = false;
- nsIAtom* ownLocal = entry.GetLocal(NS_HTML5ATTRIBUTE_NAME_HTML);
+ nsIAtom* ownLocal = entry.GetLocal(nsHtml5AttributeName::HTML);
for (nsHtml5AttributeEntry& otherEntry : aOther->mStorage) {
- if (ownLocal == otherEntry.GetLocal(NS_HTML5ATTRIBUTE_NAME_HTML)) {
+ if (ownLocal == otherEntry.GetLocal(nsHtml5AttributeName::HTML)) {
found = true;
if (!entry.GetValue().Equals(otherEntry.GetValue())) {
return false;
}
break;
}
}
if (!found) {
@@ -244,17 +244,17 @@ void
nsHtml5HtmlAttributes::AddEntry(nsHtml5AttributeEntry&& aEntry)
{
mStorage.AppendElement(aEntry);
}
void
nsHtml5HtmlAttributes::initializeStatics()
{
- EMPTY_ATTRIBUTES = new nsHtml5HtmlAttributes(NS_HTML5ATTRIBUTE_NAME_HTML);
+ EMPTY_ATTRIBUTES = new nsHtml5HtmlAttributes(nsHtml5AttributeName::HTML);
}
void
nsHtml5HtmlAttributes::releaseStatics()
{
delete EMPTY_ATTRIBUTES;
}
--- a/parser/html/nsHtml5MetaScanner.cpp
+++ b/parser/html/nsHtml5MetaScanner.cpp
@@ -37,21 +37,22 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5MetaScanner.h"
static char16_t const CHARSET_DATA[] = { 'h', 'a', 'r', 's', 'e', 't' };
@@ -59,29 +60,29 @@ staticJArray<char16_t,int32_t> nsHtml5Me
static char16_t const CONTENT_DATA[] = { 'o', 'n', 't', 'e', 'n', 't' };
staticJArray<char16_t,int32_t> nsHtml5MetaScanner::CONTENT = { CONTENT_DATA, MOZ_ARRAY_LENGTH(CONTENT_DATA) };
static char16_t const HTTP_EQUIV_DATA[] = { 't', 't', 'p', '-', 'e', 'q', 'u', 'i', 'v' };
staticJArray<char16_t,int32_t> nsHtml5MetaScanner::HTTP_EQUIV = { HTTP_EQUIV_DATA, MOZ_ARRAY_LENGTH(HTTP_EQUIV_DATA) };
static char16_t const CONTENT_TYPE_DATA[] = { 'c', 'o', 'n', 't', 'e', 'n', 't', '-', 't', 'y', 'p', 'e' };
staticJArray<char16_t,int32_t> nsHtml5MetaScanner::CONTENT_TYPE = { CONTENT_TYPE_DATA, MOZ_ARRAY_LENGTH(CONTENT_TYPE_DATA) };
nsHtml5MetaScanner::nsHtml5MetaScanner(nsHtml5TreeBuilder* tb)
- : readable(nullptr),
- metaState(NS_HTML5META_SCANNER_NO),
- contentIndex(INT32_MAX),
- charsetIndex(INT32_MAX),
- httpEquivIndex(INT32_MAX),
- contentTypeIndex(INT32_MAX),
- stateSave(NS_HTML5META_SCANNER_DATA),
- strBufLen(0),
- strBuf(jArray<char16_t,int32_t>::newJArray(36)),
- content(nullptr),
- charset(nullptr),
- httpEquivState(NS_HTML5META_SCANNER_HTTP_EQUIV_NOT_SEEN),
- treeBuilder(tb)
+ : readable(nullptr)
+ , metaState(NO)
+ , contentIndex(INT32_MAX)
+ , charsetIndex(INT32_MAX)
+ , httpEquivIndex(INT32_MAX)
+ , contentTypeIndex(INT32_MAX)
+ , stateSave(DATA)
+ , strBufLen(0)
+ , strBuf(jArray<char16_t, int32_t>::newJArray(36))
+ , content(nullptr)
+ , charset(nullptr)
+ , httpEquivState(HTTP_EQUIV_NOT_SEEN)
+ , treeBuilder(tb)
{
MOZ_COUNT_CTOR(nsHtml5MetaScanner);
}
nsHtml5MetaScanner::~nsHtml5MetaScanner()
{
MOZ_COUNT_DTOR(nsHtml5MetaScanner);
@@ -91,136 +92,136 @@ nsHtml5MetaScanner::~nsHtml5MetaScanner(
void
nsHtml5MetaScanner::stateLoop(int32_t state)
{
int32_t c = -1;
bool reconsume = false;
stateloop: for (; ; ) {
switch(state) {
- case NS_HTML5META_SCANNER_DATA: {
+ case DATA: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '<': {
- state = NS_HTML5META_SCANNER_TAG_OPEN;
+ state = nsHtml5MetaScanner::TAG_OPEN;
NS_HTML5_BREAK(dataloop);
}
default: {
continue;
}
}
}
dataloop_end: ;
}
- case NS_HTML5META_SCANNER_TAG_OPEN: {
+ case TAG_OPEN: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case 'm':
case 'M': {
- metaState = NS_HTML5META_SCANNER_M;
- state = NS_HTML5META_SCANNER_TAG_NAME;
+ metaState = M;
+ state = nsHtml5MetaScanner::TAG_NAME;
NS_HTML5_BREAK(tagopenloop);
}
case '!': {
- state = NS_HTML5META_SCANNER_MARKUP_DECLARATION_OPEN;
+ state = nsHtml5MetaScanner::MARKUP_DECLARATION_OPEN;
NS_HTML5_CONTINUE(stateloop);
}
case '\?':
case '/': {
- state = NS_HTML5META_SCANNER_SCAN_UNTIL_GT;
+ state = nsHtml5MetaScanner::SCAN_UNTIL_GT;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
- metaState = NS_HTML5META_SCANNER_NO;
- state = NS_HTML5META_SCANNER_TAG_NAME;
+ metaState = NO;
+ state = nsHtml5MetaScanner::TAG_NAME;
NS_HTML5_BREAK(tagopenloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
reconsume = true;
NS_HTML5_CONTINUE(stateloop);
}
}
}
tagopenloop_end: ;
}
- case NS_HTML5META_SCANNER_TAG_NAME: {
+ case TAG_NAME: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_NAME;
NS_HTML5_BREAK(tagnameloop);
}
case '/': {
- state = NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG;
+ state = nsHtml5MetaScanner::SELF_CLOSING_START_TAG;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
case 'e':
case 'E': {
- if (metaState == NS_HTML5META_SCANNER_M) {
- metaState = NS_HTML5META_SCANNER_E;
+ if (metaState == M) {
+ metaState = E;
} else {
- metaState = NS_HTML5META_SCANNER_NO;
+ metaState = NO;
}
continue;
}
case 't':
case 'T': {
- if (metaState == NS_HTML5META_SCANNER_E) {
- metaState = NS_HTML5META_SCANNER_T;
+ if (metaState == E) {
+ metaState = T;
} else {
- metaState = NS_HTML5META_SCANNER_NO;
+ metaState = NO;
}
continue;
}
case 'a':
case 'A': {
- if (metaState == NS_HTML5META_SCANNER_T) {
- metaState = NS_HTML5META_SCANNER_A;
+ if (metaState == T) {
+ metaState = A;
} else {
- metaState = NS_HTML5META_SCANNER_NO;
+ metaState = NO;
}
continue;
}
default: {
- metaState = NS_HTML5META_SCANNER_NO;
+ metaState = NO;
continue;
}
}
}
tagnameloop_end: ;
}
- case NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME: {
+ case BEFORE_ATTRIBUTE_NAME: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
@@ -228,89 +229,89 @@ nsHtml5MetaScanner::stateLoop(int32_t st
}
case ' ':
case '\t':
case '\n':
case '\f': {
continue;
}
case '/': {
- state = NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG;
+ state = nsHtml5MetaScanner::SELF_CLOSING_START_TAG;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = DATA;
NS_HTML5_CONTINUE(stateloop);
}
case 'c':
case 'C': {
contentIndex = 0;
charsetIndex = 0;
httpEquivIndex = INT32_MAX;
contentTypeIndex = INT32_MAX;
- state = NS_HTML5META_SCANNER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::ATTRIBUTE_NAME;
NS_HTML5_BREAK(beforeattributenameloop);
}
case 'h':
case 'H': {
contentIndex = INT32_MAX;
charsetIndex = INT32_MAX;
httpEquivIndex = 0;
contentTypeIndex = INT32_MAX;
- state = NS_HTML5META_SCANNER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::ATTRIBUTE_NAME;
NS_HTML5_BREAK(beforeattributenameloop);
}
default: {
contentIndex = INT32_MAX;
charsetIndex = INT32_MAX;
httpEquivIndex = INT32_MAX;
contentTypeIndex = INT32_MAX;
- state = NS_HTML5META_SCANNER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::ATTRIBUTE_NAME;
NS_HTML5_BREAK(beforeattributenameloop);
}
}
}
beforeattributenameloop_end: ;
}
- case NS_HTML5META_SCANNER_ATTRIBUTE_NAME: {
+ case ATTRIBUTE_NAME: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
- state = NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::AFTER_ATTRIBUTE_NAME;
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
- state = NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG;
+ state = nsHtml5MetaScanner::SELF_CLOSING_START_TAG;
NS_HTML5_CONTINUE(stateloop);
}
case '=': {
strBufLen = 0;
contentTypeIndex = 0;
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_VALUE;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_VALUE;
NS_HTML5_BREAK(attributenameloop);
}
case '>': {
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
- if (metaState == NS_HTML5META_SCANNER_A) {
+ if (metaState == A) {
if (c >= 'A' && c <= 'Z') {
c += 0x20;
}
if (contentIndex < CONTENT.length && c == CONTENT[contentIndex]) {
++contentIndex;
} else {
contentIndex = INT32_MAX;
}
@@ -326,390 +327,390 @@ nsHtml5MetaScanner::stateLoop(int32_t st
}
}
continue;
}
}
}
attributenameloop_end: ;
}
- case NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_VALUE: {
+ case BEFORE_ATTRIBUTE_VALUE: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
continue;
}
case '\"': {
- state = NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_DOUBLE_QUOTED;
+ state = nsHtml5MetaScanner::ATTRIBUTE_VALUE_DOUBLE_QUOTED;
NS_HTML5_BREAK(beforeattributevalueloop);
}
case '\'': {
- state = NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_SINGLE_QUOTED;
+ state = nsHtml5MetaScanner::ATTRIBUTE_VALUE_SINGLE_QUOTED;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
handleCharInAttributeValue(c);
- state = NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_UNQUOTED;
+ state = nsHtml5MetaScanner::ATTRIBUTE_VALUE_UNQUOTED;
NS_HTML5_CONTINUE(stateloop);
}
}
}
beforeattributevalueloop_end: ;
}
- case NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
+ case ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '\"': {
handleAttributeValue();
- state = NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_VALUE_QUOTED;
+ state = nsHtml5MetaScanner::AFTER_ATTRIBUTE_VALUE_QUOTED;
NS_HTML5_BREAK(attributevaluedoublequotedloop);
}
default: {
handleCharInAttributeValue(c);
continue;
}
}
}
attributevaluedoublequotedloop_end: ;
}
- case NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_VALUE_QUOTED: {
+ case AFTER_ATTRIBUTE_VALUE_QUOTED: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_NAME;
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
- state = NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG;
+ state = nsHtml5MetaScanner::SELF_CLOSING_START_TAG;
NS_HTML5_BREAK(afterattributevaluequotedloop);
}
case '>': {
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_NAME;
reconsume = true;
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterattributevaluequotedloop_end: ;
}
- case NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG: {
+ case SELF_CLOSING_START_TAG: {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '>': {
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_NAME;
reconsume = true;
NS_HTML5_CONTINUE(stateloop);
}
}
}
- case NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_UNQUOTED: {
+ case ATTRIBUTE_VALUE_UNQUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
handleAttributeValue();
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_NAME;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
handleAttributeValue();
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
handleCharInAttributeValue(c);
continue;
}
}
}
}
- case NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_NAME: {
+ case AFTER_ATTRIBUTE_NAME: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case ' ':
case '\t':
case '\n':
case '\f': {
continue;
}
case '/': {
handleAttributeValue();
- state = NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG;
+ state = nsHtml5MetaScanner::SELF_CLOSING_START_TAG;
NS_HTML5_CONTINUE(stateloop);
}
case '=': {
strBufLen = 0;
contentTypeIndex = 0;
- state = NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_VALUE;
+ state = nsHtml5MetaScanner::BEFORE_ATTRIBUTE_VALUE;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
handleAttributeValue();
if (handleTag()) {
NS_HTML5_BREAK(stateloop);
}
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
case 'c':
case 'C': {
contentIndex = 0;
charsetIndex = 0;
- state = NS_HTML5META_SCANNER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::ATTRIBUTE_NAME;
NS_HTML5_CONTINUE(stateloop);
}
default: {
contentIndex = INT32_MAX;
charsetIndex = INT32_MAX;
- state = NS_HTML5META_SCANNER_ATTRIBUTE_NAME;
+ state = nsHtml5MetaScanner::ATTRIBUTE_NAME;
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5META_SCANNER_MARKUP_DECLARATION_OPEN: {
+ case MARKUP_DECLARATION_OPEN: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_MARKUP_DECLARATION_HYPHEN;
+ state = nsHtml5MetaScanner::MARKUP_DECLARATION_HYPHEN;
NS_HTML5_BREAK(markupdeclarationopenloop);
}
default: {
- state = NS_HTML5META_SCANNER_SCAN_UNTIL_GT;
+ state = nsHtml5MetaScanner::SCAN_UNTIL_GT;
reconsume = true;
NS_HTML5_CONTINUE(stateloop);
}
}
}
markupdeclarationopenloop_end: ;
}
- case NS_HTML5META_SCANNER_MARKUP_DECLARATION_HYPHEN: {
+ case MARKUP_DECLARATION_HYPHEN: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_COMMENT_START;
+ state = nsHtml5MetaScanner::COMMENT_START;
NS_HTML5_BREAK(markupdeclarationhyphenloop);
}
default: {
- state = NS_HTML5META_SCANNER_SCAN_UNTIL_GT;
+ state = nsHtml5MetaScanner::SCAN_UNTIL_GT;
reconsume = true;
NS_HTML5_CONTINUE(stateloop);
}
}
}
markupdeclarationhyphenloop_end: ;
}
- case NS_HTML5META_SCANNER_COMMENT_START: {
+ case COMMENT_START: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_COMMENT_START_DASH;
+ state = nsHtml5MetaScanner::COMMENT_START_DASH;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
- state = NS_HTML5META_SCANNER_COMMENT;
+ state = nsHtml5MetaScanner::COMMENT;
NS_HTML5_BREAK(commentstartloop);
}
}
}
commentstartloop_end: ;
}
- case NS_HTML5META_SCANNER_COMMENT: {
+ case COMMENT: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_COMMENT_END_DASH;
+ state = nsHtml5MetaScanner::COMMENT_END_DASH;
NS_HTML5_BREAK(commentloop);
}
default: {
continue;
}
}
}
commentloop_end: ;
}
- case NS_HTML5META_SCANNER_COMMENT_END_DASH: {
+ case COMMENT_END_DASH: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_COMMENT_END;
+ state = nsHtml5MetaScanner::COMMENT_END;
NS_HTML5_BREAK(commentenddashloop);
}
default: {
- state = NS_HTML5META_SCANNER_COMMENT;
+ state = nsHtml5MetaScanner::COMMENT;
NS_HTML5_CONTINUE(stateloop);
}
}
}
commentenddashloop_end: ;
}
- case NS_HTML5META_SCANNER_COMMENT_END: {
+ case COMMENT_END: {
for (; ; ) {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
case '-': {
continue;
}
default: {
- state = NS_HTML5META_SCANNER_COMMENT;
+ state = nsHtml5MetaScanner::COMMENT;
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5META_SCANNER_COMMENT_START_DASH: {
+ case COMMENT_START_DASH: {
c = read();
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '-': {
- state = NS_HTML5META_SCANNER_COMMENT_END;
+ state = nsHtml5MetaScanner::COMMENT_END;
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
- state = NS_HTML5META_SCANNER_COMMENT;
+ state = nsHtml5MetaScanner::COMMENT;
NS_HTML5_CONTINUE(stateloop);
}
}
}
- case NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_SINGLE_QUOTED: {
+ case ATTRIBUTE_VALUE_SINGLE_QUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '\'': {
handleAttributeValue();
- state = NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_VALUE_QUOTED;
+ state = nsHtml5MetaScanner::AFTER_ATTRIBUTE_VALUE_QUOTED;
NS_HTML5_CONTINUE(stateloop);
}
default: {
handleCharInAttributeValue(c);
continue;
}
}
}
}
- case NS_HTML5META_SCANNER_SCAN_UNTIL_GT: {
+ case SCAN_UNTIL_GT: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
c = read();
}
switch(c) {
case -1: {
NS_HTML5_BREAK(stateloop);
}
case '>': {
- state = NS_HTML5META_SCANNER_DATA;
+ state = nsHtml5MetaScanner::DATA;
NS_HTML5_CONTINUE(stateloop);
}
default: {
continue;
}
}
}
}
@@ -717,17 +718,17 @@ nsHtml5MetaScanner::stateLoop(int32_t st
}
stateloop_end: ;
stateSave = state;
}
void
nsHtml5MetaScanner::handleCharInAttributeValue(int32_t c)
{
- if (metaState == NS_HTML5META_SCANNER_A) {
+ if (metaState == A) {
if (contentIndex == CONTENT.length || charsetIndex == CHARSET.length) {
addToBuffer(c);
} else if (httpEquivIndex == HTTP_EQUIV.length) {
if (contentTypeIndex < CONTENT_TYPE.length && toAsciiLowerCase(c) == CONTENT_TYPE[contentTypeIndex]) {
++contentTypeIndex;
} else {
contentTypeIndex = INT32_MAX;
}
@@ -744,52 +745,55 @@ nsHtml5MetaScanner::addToBuffer(int32_t
strBuf = newBuf;
}
strBuf[strBufLen++] = (char16_t) c;
}
void
nsHtml5MetaScanner::handleAttributeValue()
{
- if (metaState != NS_HTML5META_SCANNER_A) {
+ if (metaState != A) {
return;
}
if (contentIndex == CONTENT.length && !content) {
content = nsHtml5Portability::newStringFromBuffer(strBuf, 0, strBufLen, treeBuilder);
return;
}
if (charsetIndex == CHARSET.length && !charset) {
charset = nsHtml5Portability::newStringFromBuffer(strBuf, 0, strBufLen, treeBuilder);
return;
}
- if (httpEquivIndex == HTTP_EQUIV.length && httpEquivState == NS_HTML5META_SCANNER_HTTP_EQUIV_NOT_SEEN) {
- httpEquivState = (contentTypeIndex == CONTENT_TYPE.length) ? NS_HTML5META_SCANNER_HTTP_EQUIV_CONTENT_TYPE : NS_HTML5META_SCANNER_HTTP_EQUIV_OTHER;
+ if (httpEquivIndex == HTTP_EQUIV.length &&
+ httpEquivState == HTTP_EQUIV_NOT_SEEN) {
+ httpEquivState = (contentTypeIndex == CONTENT_TYPE.length)
+ ? HTTP_EQUIV_CONTENT_TYPE
+ : HTTP_EQUIV_OTHER;
return;
}
}
bool
nsHtml5MetaScanner::handleTag()
{
bool stop = handleTagInner();
content.Release();
content = nullptr;
charset.Release();
charset = nullptr;
- httpEquivState = NS_HTML5META_SCANNER_HTTP_EQUIV_NOT_SEEN;
+ httpEquivState = HTTP_EQUIV_NOT_SEEN;
return stop;
}
bool
nsHtml5MetaScanner::handleTagInner()
{
if (!!charset && tryCharset(charset)) {
return true;
}
- if (!!content && httpEquivState == NS_HTML5META_SCANNER_HTTP_EQUIV_CONTENT_TYPE) {
+ if (!!content && httpEquivState == HTTP_EQUIV_CONTENT_TYPE) {
nsHtml5String extract =
nsHtml5TreeBuilder::extractCharsetFromContent(content, treeBuilder);
if (!extract) {
return false;
}
bool success = tryCharset(extract);
extract.Release();
return success;
--- a/parser/html/nsHtml5MetaScanner.h
+++ b/parser/html/nsHtml5MetaScanner.h
@@ -38,35 +38,92 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5MetaScanner
{
private:
static staticJArray<char16_t,int32_t> CHARSET;
static staticJArray<char16_t,int32_t> CONTENT;
static staticJArray<char16_t,int32_t> HTTP_EQUIV;
static staticJArray<char16_t,int32_t> CONTENT_TYPE;
+ static const int32_t NO = 0;
+
+ static const int32_t M = 1;
+
+ static const int32_t E = 2;
+
+ static const int32_t T = 3;
+
+ static const int32_t A = 4;
+
+ static const int32_t DATA = 0;
+
+ static const int32_t TAG_OPEN = 1;
+
+ static const int32_t SCAN_UNTIL_GT = 2;
+
+ static const int32_t TAG_NAME = 3;
+
+ static const int32_t BEFORE_ATTRIBUTE_NAME = 4;
+
+ static const int32_t ATTRIBUTE_NAME = 5;
+
+ static const int32_t AFTER_ATTRIBUTE_NAME = 6;
+
+ static const int32_t BEFORE_ATTRIBUTE_VALUE = 7;
+
+ static const int32_t ATTRIBUTE_VALUE_DOUBLE_QUOTED = 8;
+
+ static const int32_t ATTRIBUTE_VALUE_SINGLE_QUOTED = 9;
+
+ static const int32_t ATTRIBUTE_VALUE_UNQUOTED = 10;
+
+ static const int32_t AFTER_ATTRIBUTE_VALUE_QUOTED = 11;
+
+ static const int32_t MARKUP_DECLARATION_OPEN = 13;
+
+ static const int32_t MARKUP_DECLARATION_HYPHEN = 14;
+
+ static const int32_t COMMENT_START = 15;
+
+ static const int32_t COMMENT_START_DASH = 16;
+
+ static const int32_t COMMENT = 17;
+
+ static const int32_t COMMENT_END_DASH = 18;
+
+ static const int32_t COMMENT_END = 19;
+
+ static const int32_t SELF_CLOSING_START_TAG = 20;
+
+ static const int32_t HTTP_EQUIV_NOT_SEEN = 0;
+
+ static const int32_t HTTP_EQUIV_CONTENT_TYPE = 1;
+
+ static const int32_t HTTP_EQUIV_OTHER = 2;
+
protected:
nsHtml5ByteReadable* readable;
private:
int32_t metaState;
int32_t contentIndex;
int32_t charsetIndex;
int32_t httpEquivIndex;
int32_t contentTypeIndex;
@@ -102,40 +159,10 @@ class nsHtml5MetaScanner
bool tryCharset(nsHtml5String encoding);
public:
static void initializeStatics();
static void releaseStatics();
#include "nsHtml5MetaScannerHSupplement.h"
};
-#define NS_HTML5META_SCANNER_NO 0
-#define NS_HTML5META_SCANNER_M 1
-#define NS_HTML5META_SCANNER_E 2
-#define NS_HTML5META_SCANNER_T 3
-#define NS_HTML5META_SCANNER_A 4
-#define NS_HTML5META_SCANNER_DATA 0
-#define NS_HTML5META_SCANNER_TAG_OPEN 1
-#define NS_HTML5META_SCANNER_SCAN_UNTIL_GT 2
-#define NS_HTML5META_SCANNER_TAG_NAME 3
-#define NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_NAME 4
-#define NS_HTML5META_SCANNER_ATTRIBUTE_NAME 5
-#define NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_NAME 6
-#define NS_HTML5META_SCANNER_BEFORE_ATTRIBUTE_VALUE 7
-#define NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_DOUBLE_QUOTED 8
-#define NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_SINGLE_QUOTED 9
-#define NS_HTML5META_SCANNER_ATTRIBUTE_VALUE_UNQUOTED 10
-#define NS_HTML5META_SCANNER_AFTER_ATTRIBUTE_VALUE_QUOTED 11
-#define NS_HTML5META_SCANNER_MARKUP_DECLARATION_OPEN 13
-#define NS_HTML5META_SCANNER_MARKUP_DECLARATION_HYPHEN 14
-#define NS_HTML5META_SCANNER_COMMENT_START 15
-#define NS_HTML5META_SCANNER_COMMENT_START_DASH 16
-#define NS_HTML5META_SCANNER_COMMENT 17
-#define NS_HTML5META_SCANNER_COMMENT_END_DASH 18
-#define NS_HTML5META_SCANNER_COMMENT_END 19
-#define NS_HTML5META_SCANNER_SELF_CLOSING_START_TAG 20
-#define NS_HTML5META_SCANNER_HTTP_EQUIV_NOT_SEEN 0
-#define NS_HTML5META_SCANNER_HTTP_EQUIV_CONTENT_TYPE 1
-#define NS_HTML5META_SCANNER_HTTP_EQUIV_OTHER 2
-
-
#endif
--- a/parser/html/nsHtml5Portability.h
+++ b/parser/html/nsHtml5Portability.h
@@ -40,21 +40,21 @@
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability
{
public:
static nsIAtom* newLocalNameFromBuffer(char16_t* buf, int32_t offset, int32_t length, nsHtml5AtomTable* interner);
@@ -77,12 +77,10 @@ class nsHtml5Portability
const char* lowerCaseLiteral,
nsHtml5String string);
static bool literalEqualsString(const char* literal, nsHtml5String string);
static bool stringEqualsString(nsHtml5String one, nsHtml5String other);
static void initializeStatics();
static void releaseStatics();
};
-
-
#endif
--- a/parser/html/nsHtml5StackNode.cpp
+++ b/parser/html/nsHtml5StackNode.cpp
@@ -37,56 +37,57 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5StackNode.h"
int32_t
nsHtml5StackNode::getGroup()
{
- return flags & NS_HTML5ELEMENT_NAME_GROUP_MASK;
+ return flags & nsHtml5ElementName::GROUP_MASK;
}
bool
nsHtml5StackNode::isScoping()
{
- return (flags & NS_HTML5ELEMENT_NAME_SCOPING);
+ return (flags & nsHtml5ElementName::SCOPING);
}
bool
nsHtml5StackNode::isSpecial()
{
- return (flags & NS_HTML5ELEMENT_NAME_SPECIAL);
+ return (flags & nsHtml5ElementName::SPECIAL);
}
bool
nsHtml5StackNode::isFosterParenting()
{
- return (flags & NS_HTML5ELEMENT_NAME_FOSTER_PARENTING);
+ return (flags & nsHtml5ElementName::FOSTER_PARENTING);
}
bool
nsHtml5StackNode::isHtmlIntegrationPoint()
{
- return (flags & NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT);
+ return (flags & nsHtml5ElementName::HTML_INTEGRATION_POINT);
}
nsHtml5StackNode::nsHtml5StackNode(int32_t flags, int32_t ns, nsIAtom* name, nsIContentHandle* node, nsIAtom* popName, nsHtml5HtmlAttributes* attributes)
: flags(flags),
name(name),
popName(popName),
ns(ns),
@@ -169,32 +170,37 @@ nsHtml5StackNode::nsHtml5StackNode(nsHtm
, refcount(1)
{
MOZ_COUNT_CTOR(nsHtml5StackNode);
}
int32_t
nsHtml5StackNode::prepareSvgFlags(int32_t flags)
{
- flags &= ~(NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- if ((flags & NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG)) {
- flags |= (NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT);
+ flags &=
+ ~(nsHtml5ElementName::FOSTER_PARENTING | nsHtml5ElementName::SCOPING |
+ nsHtml5ElementName::SPECIAL | nsHtml5ElementName::OPTIONAL_END_TAG);
+ if ((flags & nsHtml5ElementName::SCOPING_AS_SVG)) {
+ flags |= (nsHtml5ElementName::SCOPING | nsHtml5ElementName::SPECIAL |
+ nsHtml5ElementName::HTML_INTEGRATION_POINT);
}
return flags;
}
int32_t
nsHtml5StackNode::prepareMathFlags(int32_t flags, bool markAsIntegrationPoint)
{
- flags &= ~(NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
- if ((flags & NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML)) {
- flags |= (NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL);
+ flags &=
+ ~(nsHtml5ElementName::FOSTER_PARENTING | nsHtml5ElementName::SCOPING |
+ nsHtml5ElementName::SPECIAL | nsHtml5ElementName::OPTIONAL_END_TAG);
+ if ((flags & nsHtml5ElementName::SCOPING_AS_MATHML)) {
+ flags |= (nsHtml5ElementName::SCOPING | nsHtml5ElementName::SPECIAL);
}
if (markAsIntegrationPoint) {
- flags |= NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT;
+ flags |= nsHtml5ElementName::HTML_INTEGRATION_POINT;
}
return flags;
}
nsHtml5StackNode::~nsHtml5StackNode()
{
MOZ_COUNT_DTOR(nsHtml5StackNode);
--- a/parser/html/nsHtml5StackNode.h
+++ b/parser/html/nsHtml5StackNode.h
@@ -38,24 +38,25 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5StackNode
{
public:
@@ -91,12 +92,10 @@ class nsHtml5StackNode
~nsHtml5StackNode();
void dropAttributes();
void retain();
void release();
static void initializeStatics();
static void releaseStatics();
};
-
-
#endif
--- a/parser/html/nsHtml5StateSnapshot.cpp
+++ b/parser/html/nsHtml5StateSnapshot.cpp
@@ -36,22 +36,23 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5Portability.h"
#include "nsHtml5StateSnapshot.h"
nsHtml5StateSnapshot::nsHtml5StateSnapshot(jArray<nsHtml5StackNode*,int32_t> stack, jArray<nsHtml5StackNode*,int32_t> listOfActiveFormattingElements, jArray<int32_t,int32_t> templateModeStack, nsIContentHandle* formPointer, nsIContentHandle* headPointer, nsIContentHandle* deepTreeSurrogateParent, int32_t mode, int32_t originalMode, bool framesetOk, bool needToDropLF, bool quirks)
--- a/parser/html/nsHtml5StateSnapshot.h
+++ b/parser/html/nsHtml5StateSnapshot.h
@@ -37,24 +37,25 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5Portability;
class nsHtml5StateSnapshot : public nsAHtml5TreeBuilderState
{
private:
autoJArray<nsHtml5StackNode*,int32_t> stack;
@@ -84,12 +85,10 @@ class nsHtml5StateSnapshot : public nsAH
int32_t getListOfActiveFormattingElementsLength();
int32_t getStackLength();
int32_t getTemplateModeStackLength();
~nsHtml5StateSnapshot();
static void initializeStatics();
static void releaseStatics();
};
-
-
#endif
--- a/parser/html/nsHtml5Tokenizer.cpp
+++ b/parser/html/nsHtml5Tokenizer.cpp
@@ -41,20 +41,20 @@
#include "nsHtml5NamedCharacters.h"
#include "nsHtml5NamedCharactersAccel.h"
#include "nsHtml5Atoms.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Macros.h"
#include "nsHtml5Highlighter.h"
#include "nsHtml5TokenizerLoopPolicies.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5Tokenizer.h"
char16_t nsHtml5Tokenizer::LT_GT[] = { '<', '>' };
@@ -129,17 +129,17 @@ nsHtml5Tokenizer::isViewingXmlSource()
{
return viewingXmlSource;
}
void
nsHtml5Tokenizer::setStateAndEndTagExpectation(int32_t specialTokenizerState, nsIAtom* endTagExpectation)
{
this->stateSave = specialTokenizerState;
- if (specialTokenizerState == NS_HTML5TOKENIZER_DATA) {
+ if (specialTokenizerState == nsHtml5Tokenizer::DATA) {
return;
}
autoJArray<char16_t,int32_t> asArray = nsHtml5Portability::newCharArrayFromLocal(endTagExpectation);
this->endTagExpectation = nsHtml5ElementName::elementNameByBuffer(asArray, 0, asArray.length, interner);
MOZ_ASSERT(!!this->endTagExpectation);
endTagExpectationToArray();
}
@@ -150,53 +150,53 @@ nsHtml5Tokenizer::setStateAndEndTagExpec
this->endTagExpectation = endTagExpectation;
endTagExpectationToArray();
}
void
nsHtml5Tokenizer::endTagExpectationToArray()
{
switch(endTagExpectation->getGroup()) {
- case NS_HTML5TREE_BUILDER_TITLE: {
+ case nsHtml5TreeBuilder::TITLE: {
endTagExpectationAsArray = TITLE_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case nsHtml5TreeBuilder::SCRIPT: {
endTagExpectationAsArray = SCRIPT_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_STYLE: {
+ case nsHtml5TreeBuilder::STYLE: {
endTagExpectationAsArray = STYLE_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_PLAINTEXT: {
+ case nsHtml5TreeBuilder::PLAINTEXT: {
endTagExpectationAsArray = PLAINTEXT_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_XMP: {
+ case nsHtml5TreeBuilder::XMP: {
endTagExpectationAsArray = XMP_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_TEXTAREA: {
+ case nsHtml5TreeBuilder::TEXTAREA: {
endTagExpectationAsArray = TEXTAREA_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_IFRAME: {
+ case nsHtml5TreeBuilder::IFRAME: {
endTagExpectationAsArray = IFRAME_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_NOEMBED: {
+ case nsHtml5TreeBuilder::NOEMBED: {
endTagExpectationAsArray = NOEMBED_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case nsHtml5TreeBuilder::NOSCRIPT: {
endTagExpectationAsArray = NOSCRIPT_ARR;
return;
}
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case nsHtml5TreeBuilder::NOFRAMES: {
endTagExpectationAsArray = NOFRAMES_ARR;
return;
}
default: {
MOZ_ASSERT(false, "Bad end tag expectation.");
return;
}
}
@@ -213,17 +213,17 @@ nsHtml5HtmlAttributes*
nsHtml5Tokenizer::emptyAttributes()
{
return nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES;
}
void
nsHtml5Tokenizer::emitOrAppendCharRefBuf(int32_t returnState)
{
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
appendCharRefBufToStrBuf();
} else {
if (charRefBufLen > 0) {
tokenHandler->characters(charRefBuf, 0, charRefBufLen);
charRefBufLen = 0;
}
}
}
@@ -312,17 +312,17 @@ nsHtml5Tokenizer::strBufToElementNameStr
clearStrBufAfterUse();
}
int32_t
nsHtml5Tokenizer::emitCurrentTagToken(bool selfClosing, int32_t pos)
{
cstart = pos + 1;
maybeErrSlashInEndTag(selfClosing);
- stateSave = NS_HTML5TOKENIZER_DATA;
+ stateSave = nsHtml5Tokenizer::DATA;
nsHtml5HtmlAttributes* attrs = (!attributes ? nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES : attributes);
if (endTag) {
maybeErrAttributesOnEndTag(attrs);
if (!viewingXmlSource) {
tokenHandler->endTag(tagName);
}
if (newAttributesEachTime) {
delete attributes;
@@ -407,33 +407,33 @@ nsHtml5Tokenizer::tokenizeBuffer(nsHtml5
int32_t returnState = returnStateSave;
char16_t c = '\0';
shouldSuspend = false;
lastCR = false;
int32_t start = buffer->getStart();
int32_t end = buffer->getEnd();
int32_t pos = start - 1;
switch(state) {
- case NS_HTML5TOKENIZER_DATA:
- case NS_HTML5TOKENIZER_RCDATA:
- case NS_HTML5TOKENIZER_SCRIPT_DATA:
- case NS_HTML5TOKENIZER_PLAINTEXT:
- case NS_HTML5TOKENIZER_RAWTEXT:
- case NS_HTML5TOKENIZER_CDATA_SECTION:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_START:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_END: {
+ case DATA:
+ case RCDATA:
+ case SCRIPT_DATA:
+ case PLAINTEXT:
+ case RAWTEXT:
+ case CDATA_SECTION:
+ case SCRIPT_DATA_ESCAPED:
+ case SCRIPT_DATA_ESCAPE_START:
+ case SCRIPT_DATA_ESCAPE_START_DASH:
+ case SCRIPT_DATA_ESCAPED_DASH:
+ case SCRIPT_DATA_ESCAPED_DASH_DASH:
+ case SCRIPT_DATA_DOUBLE_ESCAPE_START:
+ case SCRIPT_DATA_DOUBLE_ESCAPED:
+ case SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:
+ case SCRIPT_DATA_DOUBLE_ESCAPED_DASH:
+ case SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:
+ case SCRIPT_DATA_DOUBLE_ESCAPE_END: {
cstart = start;
break;
}
default: {
cstart = INT32_MAX;
break;
}
}
@@ -453,39 +453,44 @@ nsHtml5Tokenizer::tokenizeBuffer(nsHtml5
}
template<class P>
int32_t
nsHtml5Tokenizer::stateLoop(int32_t state, char16_t c, int32_t pos, char16_t* buf, bool reconsume, int32_t returnState, int32_t endPos)
{
stateloop: for (; ; ) {
switch(state) {
- case NS_HTML5TOKENIZER_DATA: {
+ case DATA: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '&': {
flushChars(buf, pos);
MOZ_ASSERT(!charRefBufLen, "charRefBufLen not reset after previous use!");
appendCharRefBuf(c);
setAdditionalAndRememberAmpersandLocation('\0');
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '<': {
flushChars(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_TAG_OPEN, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::TAG_OPEN, reconsume, pos);
NS_HTML5_BREAK(dataloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -496,108 +501,129 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
dataloop_end: ;
}
- case NS_HTML5TOKENIZER_TAG_OPEN: {
+ case TAG_OPEN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (c >= 'A' && c <= 'Z') {
endTag = false;
clearStrBufBeforeUse();
appendStrBuf((char16_t) (c + 0x20));
containsHyphen = false;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_TAG_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::TAG_NAME, reconsume, pos);
NS_HTML5_BREAK(tagopenloop);
} else if (c >= 'a' && c <= 'z') {
endTag = false;
clearStrBufBeforeUse();
appendStrBuf(c);
containsHyphen = false;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_TAG_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::TAG_NAME, reconsume, pos);
NS_HTML5_BREAK(tagopenloop);
}
switch(c) {
case '!': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_MARKUP_DECLARATION_OPEN, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::MARKUP_DECLARATION_OPEN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CLOSE_TAG_OPEN, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CLOSE_TAG_OPEN, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\?': {
if (viewingXmlSource) {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::PROCESSING_INSTRUCTION,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
if (P::reportErrors) {
errProcessingInstruction();
}
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errLtGt();
}
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 2);
cstart = pos + 1;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
if (P::reportErrors) {
errBadCharAfterLt(c);
}
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
tagopenloop_end: ;
}
- case NS_HTML5TOKENIZER_TAG_NAME: {
+ case TAG_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
strBufToElementNameString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
strBufToElementNameString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(tagnameloop);
}
case '/': {
strBufToElementNameString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
strBufToElementNameString();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
@@ -614,17 +640,17 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
appendStrBuf(c);
continue;
}
}
}
tagnameloop_end: ;
}
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME: {
+ case BEFORE_ATTRIBUTE_NAME: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
@@ -638,17 +664,20 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '/': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
NS_HTML5_CONTINUE(stateloop);
@@ -666,55 +695,68 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
if (c >= 'A' && c <= 'Z') {
c += 0x20;
}
attributeLine = line;
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::ATTRIBUTE_NAME, reconsume, pos);
NS_HTML5_BREAK(beforeattributenameloop);
}
}
}
beforeattributenameloop_end: ;
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_NAME: {
+ case ATTRIBUTE_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
attributeNameComplete();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
attributeNameComplete();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
attributeNameComplete();
addAttributeWithoutValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '=': {
attributeNameComplete();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_VALUE,
+ reconsume,
+ pos);
NS_HTML5_BREAK(attributenameloop);
}
case '>': {
attributeNameComplete();
addAttributeWithoutValue();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
@@ -737,17 +779,17 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
appendStrBuf(c);
continue;
}
}
}
attributenameloop_end: ;
}
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE: {
+ case BEFORE_ATTRIBUTE_VALUE: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -759,31 +801,42 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
case ' ':
case '\t':
case '\f': {
continue;
}
case '\"': {
attributeLine = line;
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::ATTRIBUTE_VALUE_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(beforeattributevalueloop);
}
case '&': {
attributeLine = line;
clearStrBufBeforeUse();
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::ATTRIBUTE_VALUE_UNQUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\'': {
attributeLine = line;
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::ATTRIBUTE_VALUE_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errAttributeValueMissing();
}
addAttributeWithoutValue();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
@@ -801,46 +854,57 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
if (P::reportErrors) {
errLtOrEqualsOrGraveInUnquotedAttributeOrNull(c);
}
}
default: {
attributeLine = line;
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::ATTRIBUTE_VALUE_UNQUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
beforeattributevalueloop_end: ;
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
+ case ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '\"': {
addAttributeWithValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_ATTRIBUTE_VALUE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(attributevaluedoublequotedloop);
}
case '&': {
MOZ_ASSERT(!charRefBufLen, "charRefBufLen not reset after previous use!");
appendCharRefBuf(c);
setAdditionalAndRememberAmpersandLocation('\"');
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -852,61 +916,73 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
attributevaluedoublequotedloop_end: ;
}
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED: {
+ case AFTER_ATTRIBUTE_VALUE_QUOTED: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_BREAK(afterattributevaluequotedloop);
}
case '>': {
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
NS_HTML5_CONTINUE(stateloop);
}
default: {
if (P::reportErrors) {
errNoSpaceBetweenAttributes();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterattributevaluequotedloop_end: ;
}
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG: {
+ case SELF_CLOSING_START_TAG: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
state = P::transition(mViewSource, emitCurrentTagToken(true, pos), reconsume, pos);
if (shouldSuspend) {
@@ -914,54 +990,67 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
NS_HTML5_CONTINUE(stateloop);
}
default: {
if (P::reportErrors) {
errSlashNotFollowedByGt();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED: {
+ case ATTRIBUTE_VALUE_UNQUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '\r': {
silentCarriageReturn();
addAttributeWithValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
addAttributeWithValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '&': {
MOZ_ASSERT(!charRefBufLen, "charRefBufLen not reset after previous use!");
appendCharRefBuf(c);
setAdditionalAndRememberAmpersandLocation('>');
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
addAttributeWithValue();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
@@ -982,17 +1071,17 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME: {
+ case AFTER_ATTRIBUTE_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -1003,21 +1092,27 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '/': {
addAttributeWithoutValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '=': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_VALUE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
addAttributeWithoutValue();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
@@ -1035,144 +1130,165 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
addAttributeWithoutValue();
if (c >= 'A' && c <= 'Z') {
c += 0x20;
}
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::ATTRIBUTE_NAME, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_OPEN: {
+ case MARKUP_DECLARATION_OPEN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_MARKUP_DECLARATION_HYPHEN, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::MARKUP_DECLARATION_HYPHEN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(markupdeclarationopenloop);
}
case 'd':
case 'D': {
clearStrBufBeforeUse();
appendStrBuf(c);
index = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_MARKUP_DECLARATION_OCTYPE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::MARKUP_DECLARATION_OCTYPE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '[': {
if (tokenHandler->cdataSectionAllowed()) {
clearStrBufBeforeUse();
appendStrBuf(c);
index = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_START, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_START, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
default: {
if (P::reportErrors) {
errBogusComment();
}
clearStrBufBeforeUse();
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
markupdeclarationopenloop_end: ;
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_HYPHEN: {
+ case MARKUP_DECLARATION_HYPHEN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\0': {
NS_HTML5_BREAK(stateloop);
}
case '-': {
clearStrBufAfterOneHyphen();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_START, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT_START, reconsume, pos);
NS_HTML5_BREAK(markupdeclarationhyphenloop);
}
default: {
if (P::reportErrors) {
errBogusComment();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
markupdeclarationhyphenloop_end: ;
}
- case NS_HTML5TOKENIZER_COMMENT_START: {
+ case COMMENT_START: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_START_DASH, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::COMMENT_START_DASH,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errPrematureEndOfComment();
}
emitComment(0, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(commentstartloop);
}
case '\0': {
c = 0xfffd;
}
default: {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(commentstartloop);
}
}
}
commentstartloop_end: ;
}
- case NS_HTML5TOKENIZER_COMMENT: {
+ case COMMENT: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_END_DASH, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::COMMENT_END_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(commentloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -1184,213 +1300,237 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
commentloop_end: ;
}
- case NS_HTML5TOKENIZER_COMMENT_END_DASH: {
+ case COMMENT_END_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_END, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT_END, reconsume, pos);
NS_HTML5_BREAK(commentenddashloop);
}
case '\r': {
appendStrBufCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
commentenddashloop_end: ;
}
- case NS_HTML5TOKENIZER_COMMENT_END: {
+ case COMMENT_END: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
emitComment(2, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '-': {
adjustDoubleHyphenAndAppendToStrBufAndErr(c);
continue;
}
case '\r': {
adjustDoubleHyphenAndAppendToStrBufCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
adjustDoubleHyphenAndAppendToStrBufLineFeed();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '!': {
if (P::reportErrors) {
errHyphenHyphenBang();
}
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_END_BANG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::COMMENT_END_BANG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
adjustDoubleHyphenAndAppendToStrBufAndErr(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_COMMENT_END_BANG: {
+ case COMMENT_END_BANG: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
emitComment(3, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_END_DASH, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::COMMENT_END_DASH,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
continue;
}
case '\0': {
c = 0xfffd;
}
default: {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_COMMENT_START_DASH: {
+ case COMMENT_START_DASH: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT_END, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT_END, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errPrematureEndOfComment();
}
emitComment(1, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
- case NS_HTML5TOKENIZER_CDATA_START: {
+ case CDATA_START: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < 6) {
if (c == nsHtml5Tokenizer::CDATA_LSQB[index]) {
appendStrBuf(c);
} else {
if (P::reportErrors) {
errBogusComment();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
continue;
} else {
clearStrBufAfterUse();
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_SECTION, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_SECTION, reconsume, pos);
break;
}
}
}
- case NS_HTML5TOKENIZER_CDATA_SECTION: {
+ case CDATA_SECTION: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case ']': {
flushChars(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_RSQB, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_RSQB, reconsume, pos);
NS_HTML5_BREAK(cdatasectionloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -1401,87 +1541,99 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
cdatasectionloop_end: ;
}
- case NS_HTML5TOKENIZER_CDATA_RSQB: {
+ case CDATA_RSQB: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case ']': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_RSQB_RSQB, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_RSQB_RSQB, reconsume, pos);
NS_HTML5_BREAK(cdatarsqb);
}
default: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 1);
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_SECTION, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_SECTION, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
cdatarsqb_end: ;
}
- case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB: {
+ case CDATA_RSQB_RSQB: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case ']': {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 1);
continue;
}
case '>': {
cstart = pos + 1;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 2);
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CDATA_SECTION, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CDATA_SECTION, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED: {
+ case ATTRIBUTE_VALUE_SINGLE_QUOTED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '\'': {
addAttributeWithValue();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_ATTRIBUTE_VALUE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '&': {
MOZ_ASSERT(!charRefBufLen, "charRefBufLen not reset after previous use!");
appendCharRefBuf(c);
setAdditionalAndRememberAmpersandLocation('\'');
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE,
+ reconsume,
+ pos);
NS_HTML5_BREAK(attributevaluesinglequotedloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -1493,43 +1645,44 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
attributevaluesinglequotedloop_end: ;
}
- case NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE: {
+ case CONSUME_CHARACTER_REFERENCE: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (c == '\0') {
NS_HTML5_BREAK(stateloop);
}
switch(c) {
case ' ':
case '\t':
case '\n':
case '\r':
case '\f':
case '<':
case '&': {
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '#': {
appendCharRefBuf('#');
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_NCR, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::CONSUME_NCR, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
if (c == additional) {
emitOrAppendCharRefBuf(returnState);
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
@@ -1538,29 +1691,33 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
firstCharKey = c - 'a' + 26;
} else if (c >= 'A' && c <= 'Z') {
firstCharKey = c - 'A';
} else {
if (P::reportErrors) {
errNoNamedCharacterMatch();
}
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
appendCharRefBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CHARACTER_REFERENCE_HILO_LOOKUP,
+ reconsume,
+ pos);
}
}
}
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP: {
+ case CHARACTER_REFERENCE_HILO_LOOKUP: {
{
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (c == '\0') {
NS_HTML5_BREAK(stateloop);
}
@@ -1571,33 +1728,36 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
hilo = row[firstCharKey];
}
}
if (!hilo) {
if (P::reportErrors) {
errNoNamedCharacterMatch();
}
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
appendCharRefBuf(c);
lo = hilo & 0xFFFF;
hi = hilo >> 16;
entCol = -1;
candidate = -1;
charRefBufMark = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::CHARACTER_REFERENCE_TAIL,
+ reconsume,
+ pos);
}
}
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL: {
+ case CHARACTER_REFERENCE_TAIL: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (c == '\0') {
NS_HTML5_BREAK(stateloop);
}
@@ -1649,43 +1809,43 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
continue;
}
outer_end: ;
if (candidate == -1) {
if (P::reportErrors) {
errNoNamedCharacterMatch();
}
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
} else {
const nsHtml5CharacterName& candidateName = nsHtml5NamedCharacters::NAMES[candidate];
if (!candidateName.length() || candidateName.charAt(candidateName.length() - 1) != ';') {
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
char16_t ch;
if (charRefBufMark == charRefBufLen) {
ch = c;
} else {
ch = charRefBuf[charRefBufMark];
}
if (ch == '=' || (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
if (P::reportErrors) {
errNoNamedCharacterMatch();
}
appendCharRefBufToStrBuf();
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
if (P::reportErrors) {
errUnescapedAmpersandInterpretedAsCharacterReference();
}
} else {
if (P::reportErrors) {
errNotSemicolonTerminated();
}
}
@@ -1693,53 +1853,55 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
P::completedNamedCharacterReference(mViewSource);
const char16_t* val = nsHtml5NamedCharacters::VALUES[candidate];
if (!val[1]) {
emitOrAppendOne(val, returnState);
} else {
emitOrAppendTwo(val, returnState);
}
if (charRefBufMark < charRefBufLen) {
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
appendStrBuf(charRefBuf, charRefBufMark, charRefBufLen - charRefBufMark);
} else {
tokenHandler->characters(charRefBuf, charRefBufMark, charRefBufLen - charRefBufMark);
}
}
bool earlyBreak = (c == ';' && charRefBufMark == charRefBufLen);
charRefBufLen = 0;
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = earlyBreak ? pos + 1 : pos;
}
reconsume = !earlyBreak;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
- case NS_HTML5TOKENIZER_CONSUME_NCR: {
+ case CONSUME_NCR: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
value = 0;
seenDigits = false;
switch(c) {
case 'x':
case 'X': {
appendCharRefBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_HEX_NCR_LOOP, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::HEX_NCR_LOOP, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DECIMAL_NRC_LOOP, reconsume, pos);
}
}
}
- case NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP: {
+ case DECIMAL_NRC_LOOP: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
@@ -1749,67 +1911,73 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
seenDigits = true;
if (value <= 0x10FFFF) {
value *= 10;
value += c - '0';
}
continue;
} else if (c == ';') {
if (seenDigits) {
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos + 1;
}
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_HANDLE_NCR_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::HANDLE_NCR_VALUE,
+ reconsume,
+ pos);
NS_HTML5_BREAK(decimalloop);
} else {
if (P::reportErrors) {
errNoDigitsInNCR();
}
appendCharRefBuf(';');
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos + 1;
}
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
} else {
if (!seenDigits) {
if (P::reportErrors) {
errNoDigitsInNCR();
}
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
} else {
if (P::reportErrors) {
errCharRefLacksSemicolon();
}
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_HANDLE_NCR_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::HANDLE_NCR_VALUE,
+ reconsume,
+ pos);
NS_HTML5_BREAK(decimalloop);
}
}
}
decimalloop_end: ;
}
- case NS_HTML5TOKENIZER_HANDLE_NCR_VALUE: {
+ case HANDLE_NCR_VALUE: {
charRefBufLen = 0;
handleNcrValue(returnState);
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
- case NS_HTML5TOKENIZER_HEX_NCR_LOOP: {
+ case HEX_NCR_LOOP: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
MOZ_ASSERT(value >= 0, "value must not become negative.");
if (c >= '0' && c <= '9') {
seenDigits = true;
@@ -1829,60 +1997,66 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
seenDigits = true;
if (value <= 0x10FFFF) {
value *= 16;
value += c - 'a' + 10;
}
continue;
} else if (c == ';') {
if (seenDigits) {
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos + 1;
}
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_HANDLE_NCR_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::HANDLE_NCR_VALUE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
} else {
if (P::reportErrors) {
errNoDigitsInNCR();
}
appendCharRefBuf(';');
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos + 1;
}
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
} else {
if (!seenDigits) {
if (P::reportErrors) {
errNoDigitsInNCR();
}
emitOrAppendCharRefBuf(returnState);
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
} else {
if (P::reportErrors) {
errCharRefLacksSemicolon();
}
- if (!(returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if (!(returnState & DATA_AND_RCDATA_MASK)) {
cstart = pos;
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_HANDLE_NCR_VALUE, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::HANDLE_NCR_VALUE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_PLAINTEXT: {
+ case PLAINTEXT: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
@@ -1901,100 +2075,113 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_CLOSE_TAG_OPEN: {
+ case CLOSE_TAG_OPEN: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
if (P::reportErrors) {
errLtSlashGt();
}
cstart = pos + 1;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
silentCarriageReturn();
if (P::reportErrors) {
errGarbageAfterLtSlash();
}
clearStrBufBeforeUse();
appendStrBuf('\n');
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
if (P::reportErrors) {
errGarbageAfterLtSlash();
}
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
if (c >= 'A' && c <= 'Z') {
c += 0x20;
}
if (c >= 'a' && c <= 'z') {
endTag = true;
clearStrBufBeforeUse();
appendStrBuf(c);
containsHyphen = false;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_TAG_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::TAG_NAME, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
} else {
if (P::reportErrors) {
errGarbageAfterLtSlash();
}
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_RCDATA: {
+ case RCDATA: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '&': {
flushChars(buf, pos);
MOZ_ASSERT(!charRefBufLen, "charRefBufLen not reset after previous use!");
appendCharRefBuf(c);
setAdditionalAndRememberAmpersandLocation('\0');
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::CONSUME_CHARACTER_REFERENCE,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '<': {
flushChars(buf, pos);
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::RAWTEXT_RCDATA_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -2005,31 +2192,35 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_RAWTEXT: {
+ case RAWTEXT: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '<': {
flushChars(buf, pos);
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::RAWTEXT_RCDATA_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(rawtextloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -2040,41 +2231,44 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
rawtextloop_end: ;
}
- case NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN: {
+ case RAWTEXT_RCDATA_LESS_THAN_SIGN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '/': {
index = 0;
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::NON_DATA_END_TAG_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(rawtextrcdatalessthansignloop);
}
default: {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
reconsume = true;
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
rawtextrcdatalessthansignloop_end: ;
}
- case NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME: {
+ case NON_DATA_END_TAG_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < endTagExpectationAsArray.length) {
char16_t e = endTagExpectationAsArray[index];
char16_t folded = c;
@@ -2094,32 +2288,41 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
continue;
} else {
endTag = true;
tagName = endTagExpectation;
switch(c) {
case '\r': {
silentCarriageReturn();
clearStrBufAfterUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
clearStrBufAfterUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_ATTRIBUTE_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '/': {
clearStrBufAfterUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SELF_CLOSING_START_TAG,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
clearStrBufAfterUse();
state = P::transition(mViewSource, emitCurrentTagToken(false, pos), reconsume, pos);
if (shouldSuspend) {
NS_HTML5_BREAK(stateloop);
}
@@ -2135,35 +2338,39 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
state = P::transition(mViewSource, returnState, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
}
- case NS_HTML5TOKENIZER_BOGUS_COMMENT: {
+ case BOGUS_COMMENT: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '>': {
emitComment(0, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '-': {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BOGUS_COMMENT_HYPHEN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(boguscommentloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -2175,69 +2382,78 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
boguscommentloop_end: ;
}
- case NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN: {
- boguscommenthyphenloop: for (; ; ) {
+ case BOGUS_COMMENT_HYPHEN: {
+ boguscommenthyphenloop:
+ for (;;) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
emitComment(0, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '-': {
appendSecondHyphenToBogusComment();
NS_HTML5_CONTINUE(boguscommenthyphenloop);
}
case '\r': {
appendStrBufCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA: {
+ case SCRIPT_DATA: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '<': {
flushChars(buf, pos);
returnState = state;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_LESS_THAN_SIGN, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -2248,144 +2464,182 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
scriptdataloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_LESS_THAN_SIGN: {
+ case SCRIPT_DATA_LESS_THAN_SIGN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '/': {
index = 0;
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::NON_DATA_END_TAG_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '!': {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPE_START,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatalessthansignloop);
}
default: {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::SCRIPT_DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdatalessthansignloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START: {
+ case SCRIPT_DATA_ESCAPE_START: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START_DASH, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPE_START_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapestartloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::SCRIPT_DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdataescapestartloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START_DASH: {
+ case SCRIPT_DATA_ESCAPE_START_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_DASH_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapestartdashloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::SCRIPT_DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdataescapestartdashloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH: {
+ case SCRIPT_DATA_ESCAPED_DASH_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
continue;
}
case '<': {
flushChars(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::SCRIPT_DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapeddashdashloop);
}
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
default: {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapeddashdashloop);
}
}
}
scriptdataescapeddashdashloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED: {
+ case SCRIPT_DATA_ESCAPED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapedloop);
}
case '<': {
flushChars(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -2396,149 +2650,198 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
scriptdataescapedloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH: {
+ case SCRIPT_DATA_ESCAPED_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_DASH_DASH,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '<': {
flushChars(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapeddashloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
default: {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdataescapeddashloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
+ case SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '/': {
index = 0;
clearStrBufBeforeUse();
- returnState = NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME, reconsume, pos);
+ returnState = nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED;
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::NON_DATA_END_TAG_NAME,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case 'S':
case 's': {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
index = 1;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_START, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPE_START,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdataescapedlessthanloop);
}
default: {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
cstart = pos;
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdataescapedlessthanloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_START: {
+ case SCRIPT_DATA_DOUBLE_ESCAPE_START: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
MOZ_ASSERT(index > 0);
if (index < 6) {
char16_t folded = c;
if (c >= 'A' && c <= 'Z') {
folded += 0x20;
}
if (folded != nsHtml5Tokenizer::SCRIPT_ARR[index]) {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
continue;
}
switch(c) {
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f':
case '/':
case '>': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatadoubleescapestartloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdatadoubleescapestartloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED: {
+ case SCRIPT_DATA_DOUBLE_ESCAPED: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatadoubleescapedloop);
}
case '<': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
continue;
}
case '\r': {
emitCarriageReturn(buf, pos);
@@ -2549,158 +2852,217 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
continue;
}
}
}
scriptdatadoubleescapedloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
+ case SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatadoubleescapeddashloop);
}
case '<': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
default: {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdatadoubleescapeddashloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
+ case SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '-': {
continue;
}
case '<': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatadoubleescapeddashdashloop);
}
case '>': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::SCRIPT_DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
emitReplacementCharacter(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
default: {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdatadoubleescapeddashdashloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
+ case SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '/': {
index = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_END, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPE_END,
+ reconsume,
+ pos);
NS_HTML5_BREAK(scriptdatadoubleescapedlessthanloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
scriptdatadoubleescapedlessthanloop_end: ;
}
- case NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_END: {
+ case SCRIPT_DATA_DOUBLE_ESCAPE_END: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < 6) {
char16_t folded = c;
if (c >= 'A' && c <= 'Z') {
folded += 0x20;
}
if (folded != nsHtml5Tokenizer::SCRIPT_ARR[index]) {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
continue;
}
switch(c) {
case '\r': {
emitCarriageReturn(buf, pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f':
case '/':
case '>': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::SCRIPT_DATA_DOUBLE_ESCAPED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_OCTYPE: {
+ case MARKUP_DECLARATION_OCTYPE: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < 6) {
char16_t folded = c;
if (c >= 'A' && c <= 'Z') {
@@ -2708,68 +3070,79 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
if (folded == nsHtml5Tokenizer::OCTYPE[index]) {
appendStrBuf(c);
} else {
if (P::reportErrors) {
errBogusComment();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_COMMENT, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_COMMENT, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
continue;
} else {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DOCTYPE, reconsume, pos);
NS_HTML5_BREAK(markupdeclarationdoctypeloop);
}
}
markupdeclarationdoctypeloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE: {
+ case DOCTYPE: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
initDoctypeFields();
switch(c) {
case '\r': {
silentCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypeloop);
}
default: {
if (P::reportErrors) {
errMissingSpaceBeforeDoctypeName();
}
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypeloop);
}
}
}
doctypeloop_end: ;
}
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME: {
+ case BEFORE_DOCTYPE_NAME: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
@@ -2788,79 +3161,88 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
continue;
}
case '>': {
if (P::reportErrors) {
errNamelessDoctype();
}
forceQuirks = true;
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
if (c >= 'A' && c <= 'Z') {
c += 0x20;
}
clearStrBufBeforeUse();
appendStrBuf(c);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DOCTYPE_NAME, reconsume, pos);
NS_HTML5_BREAK(beforedoctypenameloop);
}
}
}
beforedoctypenameloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE_NAME: {
+ case DOCTYPE_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
strBufToDoctypeName();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
strBufToDoctypeName();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_NAME,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypenameloop);
}
case '>': {
strBufToDoctypeName();
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\0': {
c = 0xfffd;
}
default: {
if (c >= 'A' && c <= 'Z') {
c += 0x0020;
}
appendStrBuf(c);
continue;
}
}
}
doctypenameloop_end: ;
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME: {
+ case AFTER_DOCTYPE_NAME: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -2871,127 +3253,154 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '>': {
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case 'p':
case 'P': {
index = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_UBLIC, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DOCTYPE_UBLIC, reconsume, pos);
NS_HTML5_BREAK(afterdoctypenameloop);
}
case 's':
case 'S': {
index = 0;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_YSTEM, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DOCTYPE_YSTEM, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterdoctypenameloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE_UBLIC: {
+ case DOCTYPE_UBLIC: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < 5) {
char16_t folded = c;
if (c >= 'A' && c <= 'Z') {
folded += 0x20;
}
if (folded != nsHtml5Tokenizer::UBLIC[index]) {
bogusDoctype();
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
continue;
} else {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_KEYWORD,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypeublicloop);
}
}
doctypeublicloop_end: ;
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD: {
+ case AFTER_DOCTYPE_PUBLIC_KEYWORD: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '\r': {
silentCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_PUBLIC_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_PUBLIC_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_BREAK(afterdoctypepublickeywordloop);
}
case '\"': {
if (P::reportErrors) {
errNoSpaceBetweenDoctypePublicKeywordAndQuote();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\'': {
if (P::reportErrors) {
errNoSpaceBetweenDoctypePublicKeywordAndQuote();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errExpectedPublicId();
}
forceQuirks = true;
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterdoctypepublickeywordloop_end: ;
}
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
+ case BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -3002,62 +3411,77 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '\"': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(beforedoctypepublicidentifierloop);
}
case '\'': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errExpectedPublicId();
}
forceQuirks = true;
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
beforedoctypepublicidentifierloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
+ case DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\"': {
publicIdentifier = strBufToString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypepublicidentifierdoublequotedloop);
}
case '>': {
if (P::reportErrors) {
errGtInPublicId();
}
forceQuirks = true;
publicIdentifier = strBufToString();
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -3069,68 +3493,86 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
doctypepublicidentifierdoublequotedloop_end: ;
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
+ case AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS,
+ reconsume,
+ pos);
NS_HTML5_BREAK(afterdoctypepublicidentifierloop);
}
case '>': {
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\"': {
if (P::reportErrors) {
errNoSpaceBetweenPublicAndSystemIds();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\'': {
if (P::reportErrors) {
errNoSpaceBetweenPublicAndSystemIds();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterdoctypepublicidentifierloop_end: ;
}
- case NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
+ case BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -3141,58 +3583,73 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '>': {
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\"': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(betweendoctypepublicandsystemidentifiersloop);
}
case '\'': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
betweendoctypepublicandsystemidentifiersloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
+ case DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\"': {
systemIdentifier = strBufToString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errGtInSystemId();
}
forceQuirks = true;
systemIdentifier = strBufToString();
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -3204,17 +3661,17 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
default: {
appendStrBuf(c);
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
+ case AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -3225,144 +3682,170 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '>': {
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctypeWithoutQuirks();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_BREAK(afterdoctypesystemidentifierloop);
}
}
}
afterdoctypesystemidentifierloop_end: ;
}
- case NS_HTML5TOKENIZER_BOGUS_DOCTYPE: {
+ case BOGUS_DOCTYPE: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '>': {
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
silentCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
default: {
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_DOCTYPE_YSTEM: {
+ case DOCTYPE_YSTEM: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
if (index < 5) {
char16_t folded = c;
if (c >= 'A' && c <= 'Z') {
folded += 0x20;
}
if (folded != nsHtml5Tokenizer::YSTEM[index]) {
bogusDoctype();
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
index++;
NS_HTML5_CONTINUE(stateloop);
} else {
reconsume = true;
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_KEYWORD,
+ reconsume,
+ pos);
NS_HTML5_BREAK(doctypeystemloop);
}
}
doctypeystemloop_end: ;
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD: {
+ case AFTER_DOCTYPE_SYSTEM_KEYWORD: {
for (; ; ) {
if (reconsume) {
reconsume = false;
} else {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
}
switch(c) {
case '\r': {
silentCarriageReturn();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_SYSTEM_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_BREAK(stateloop);
}
case '\n': {
silentLineFeed();
}
case ' ':
case '\t':
case '\f': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::BEFORE_DOCTYPE_SYSTEM_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_BREAK(afterdoctypesystemkeywordloop);
}
case '\"': {
if (P::reportErrors) {
errNoSpaceBetweenDoctypeSystemKeywordAndQuote();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\'': {
if (P::reportErrors) {
errNoSpaceBetweenDoctypeSystemKeywordAndQuote();
}
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errExpectedPublicId();
}
forceQuirks = true;
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
afterdoctypesystemkeywordloop_end: ;
}
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
+ case BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\r': {
silentCarriageReturn();
@@ -3373,62 +3856,77 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
case ' ':
case '\t':
case '\f': {
continue;
}
case '\"': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\'': {
clearStrBufBeforeUse();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED,
+ reconsume,
+ pos);
NS_HTML5_BREAK(beforedoctypesystemidentifierloop);
}
case '>': {
if (P::reportErrors) {
errExpectedSystemId();
}
forceQuirks = true;
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
bogusDoctype();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_BOGUS_DOCTYPE, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::BOGUS_DOCTYPE, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
beforedoctypesystemidentifierloop_end: ;
}
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
+ case DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\'': {
systemIdentifier = strBufToString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_SYSTEM_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errGtInSystemId();
}
forceQuirks = true;
systemIdentifier = strBufToString();
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -3439,36 +3937,41 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
appendStrBuf(c);
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
+ case DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\'': {
publicIdentifier = strBufToString();
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER, reconsume, pos);
+ state =
+ P::transition(mViewSource,
+ nsHtml5Tokenizer::AFTER_DOCTYPE_PUBLIC_IDENTIFIER,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
case '>': {
if (P::reportErrors) {
errGtInPublicId();
}
forceQuirks = true;
publicIdentifier = strBufToString();
emitDoctypeToken(pos);
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
case '\r': {
appendStrBufCarriageReturn();
NS_HTML5_BREAK(stateloop);
}
case '\n': {
appendStrBufLineFeed();
@@ -3479,46 +3982,54 @@ nsHtml5Tokenizer::stateLoop(int32_t stat
}
default: {
appendStrBuf(c);
continue;
}
}
}
}
- case NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION: {
+ case PROCESSING_INSTRUCTION: {
for (; ; ) {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '\?': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION_QUESTION_MARK, reconsume, pos);
+ state = P::transition(
+ mViewSource,
+ nsHtml5Tokenizer::PROCESSING_INSTRUCTION_QUESTION_MARK,
+ reconsume,
+ pos);
NS_HTML5_BREAK(processinginstructionloop);
}
default: {
continue;
}
}
}
processinginstructionloop_end: ;
}
- case NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION_QUESTION_MARK: {
+ case PROCESSING_INSTRUCTION_QUESTION_MARK: {
if (++pos == endPos) {
NS_HTML5_BREAK(stateloop);
}
c = checkChar(buf, pos);
switch(c) {
case '>': {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_DATA, reconsume, pos);
+ state = P::transition(
+ mViewSource, nsHtml5Tokenizer::DATA, reconsume, pos);
NS_HTML5_CONTINUE(stateloop);
}
default: {
- state = P::transition(mViewSource, NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION, reconsume, pos);
+ state = P::transition(mViewSource,
+ nsHtml5Tokenizer::PROCESSING_INSTRUCTION,
+ reconsume,
+ pos);
NS_HTML5_CONTINUE(stateloop);
}
}
}
}
}
stateloop_end: ;
flushChars(buf, pos);
@@ -3603,100 +4114,100 @@ nsHtml5Tokenizer::handleNcrValue(int32_t
errNcrSurrogate();
emitOrAppendOne(nsHtml5Tokenizer::REPLACEMENT_CHARACTER, returnState);
} else {
char16_t ch = (char16_t) value;
bmpChar[0] = ch;
emitOrAppendOne(bmpChar, returnState);
}
} else if (value <= 0x10FFFF) {
- astralChar[0] = (char16_t) (NS_HTML5TOKENIZER_LEAD_OFFSET + (value >> 10));
+ astralChar[0] = (char16_t)(nsHtml5Tokenizer::LEAD_OFFSET + (value >> 10));
astralChar[1] = (char16_t) (0xDC00 + (value & 0x3FF));
emitOrAppendTwo(astralChar, returnState);
} else {
errNcrOutOfRange();
emitOrAppendOne(nsHtml5Tokenizer::REPLACEMENT_CHARACTER, returnState);
}
}
void
nsHtml5Tokenizer::eof()
{
int32_t state = stateSave;
int32_t returnState = returnStateSave;
eofloop: for (; ; ) {
switch(state) {
- case NS_HTML5TOKENIZER_SCRIPT_DATA_LESS_THAN_SIGN:
- case NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
+ case SCRIPT_DATA_LESS_THAN_SIGN:
+ case SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_TAG_OPEN: {
+ case TAG_OPEN: {
errEofAfterLt();
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN: {
+ case RAWTEXT_RCDATA_LESS_THAN_SIGN: {
tokenHandler->characters(nsHtml5Tokenizer::LT_GT, 0, 1);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME: {
+ case NON_DATA_END_TAG_NAME: {
tokenHandler->characters(nsHtml5Tokenizer::LT_SOLIDUS, 0, 2);
emitStrBuf();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_CLOSE_TAG_OPEN: {
+ case CLOSE_TAG_OPEN: {
errEofAfterLt();
tokenHandler->characters(nsHtml5Tokenizer::LT_SOLIDUS, 0, 2);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_TAG_NAME: {
+ case TAG_NAME: {
errEofInTagName();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME:
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED:
- case NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG: {
+ case BEFORE_ATTRIBUTE_NAME:
+ case AFTER_ATTRIBUTE_VALUE_QUOTED:
+ case SELF_CLOSING_START_TAG: {
errEofWithoutGt();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_NAME: {
+ case ATTRIBUTE_NAME: {
errEofInAttributeName();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME:
- case NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE: {
+ case AFTER_ATTRIBUTE_NAME:
+ case BEFORE_ATTRIBUTE_VALUE: {
errEofWithoutGt();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED:
- case NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED: {
+ case ATTRIBUTE_VALUE_DOUBLE_QUOTED:
+ case ATTRIBUTE_VALUE_SINGLE_QUOTED:
+ case ATTRIBUTE_VALUE_UNQUOTED: {
errEofInAttributeValue();
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_BOGUS_COMMENT: {
+ case BOGUS_COMMENT: {
emitComment(0, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN: {
+ case BOGUS_COMMENT_HYPHEN: {
emitComment(0, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_OPEN: {
+ case MARKUP_DECLARATION_OPEN: {
errBogusComment();
emitComment(0, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_HYPHEN: {
+ case MARKUP_DECLARATION_HYPHEN: {
errBogusComment();
emitComment(0, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_MARKUP_DECLARATION_OCTYPE: {
+ case MARKUP_DECLARATION_OCTYPE: {
if (index < 6) {
errBogusComment();
emitComment(0, 0);
} else {
errEofInDoctype();
doctypeName = nsHtml5Atoms::emptystring;
if (systemIdentifier) {
systemIdentifier.Release();
@@ -3707,109 +4218,109 @@ nsHtml5Tokenizer::eof()
publicIdentifier = nullptr;
}
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_COMMENT_START:
- case NS_HTML5TOKENIZER_COMMENT: {
+ case COMMENT_START:
+ case COMMENT: {
errEofInComment();
emitComment(0, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_COMMENT_END: {
+ case COMMENT_END: {
errEofInComment();
emitComment(2, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_COMMENT_END_DASH:
- case NS_HTML5TOKENIZER_COMMENT_START_DASH: {
+ case COMMENT_END_DASH:
+ case COMMENT_START_DASH: {
errEofInComment();
emitComment(1, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_COMMENT_END_BANG: {
+ case COMMENT_END_BANG: {
errEofInComment();
emitComment(3, 0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DOCTYPE:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME: {
+ case DOCTYPE:
+ case BEFORE_DOCTYPE_NAME: {
errEofInDoctype();
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DOCTYPE_NAME: {
+ case DOCTYPE_NAME: {
errEofInDoctype();
strBufToDoctypeName();
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DOCTYPE_UBLIC:
- case NS_HTML5TOKENIZER_DOCTYPE_YSTEM:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD:
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
+ case DOCTYPE_UBLIC:
+ case DOCTYPE_YSTEM:
+ case AFTER_DOCTYPE_NAME:
+ case AFTER_DOCTYPE_PUBLIC_KEYWORD:
+ case AFTER_DOCTYPE_SYSTEM_KEYWORD:
+ case BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
errEofInDoctype();
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
+ case DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:
+ case DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
errEofInPublicId();
forceQuirks = true;
publicIdentifier = strBufToString();
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
- case NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
- case NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
+ case AFTER_DOCTYPE_PUBLIC_IDENTIFIER:
+ case BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:
+ case BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
errEofInDoctype();
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
- case NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
+ case DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:
+ case DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
errEofInSystemId();
forceQuirks = true;
systemIdentifier = strBufToString();
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
+ case AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
errEofInDoctype();
forceQuirks = true;
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_BOGUS_DOCTYPE: {
+ case BOGUS_DOCTYPE: {
emitDoctypeToken(0);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE: {
+ case CONSUME_CHARACTER_REFERENCE: {
emitOrAppendCharRefBuf(returnState);
state = returnState;
continue;
}
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP: {
+ case CHARACTER_REFERENCE_HILO_LOOKUP: {
errNoNamedCharacterMatch();
emitOrAppendCharRefBuf(returnState);
state = returnState;
continue;
}
- case NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL: {
+ case CHARACTER_REFERENCE_TAIL: {
for (; ; ) {
char16_t c = '\0';
entCol++;
for (; ; ) {
if (hi == -1) {
NS_HTML5_BREAK(hiloop);
}
if (entCol == nsHtml5NamedCharacters::NAMES[hi].length()) {
@@ -3850,78 +4361,78 @@ nsHtml5Tokenizer::eof()
if (candidate == -1) {
errNoNamedCharacterMatch();
emitOrAppendCharRefBuf(returnState);
state = returnState;
NS_HTML5_CONTINUE(eofloop);
} else {
const nsHtml5CharacterName& candidateName = nsHtml5NamedCharacters::NAMES[candidate];
if (!candidateName.length() || candidateName.charAt(candidateName.length() - 1) != ';') {
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
char16_t ch;
if (charRefBufMark == charRefBufLen) {
ch = '\0';
} else {
ch = charRefBuf[charRefBufMark];
}
if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
errNoNamedCharacterMatch();
appendCharRefBufToStrBuf();
state = returnState;
NS_HTML5_CONTINUE(eofloop);
}
}
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
errUnescapedAmpersandInterpretedAsCharacterReference();
} else {
errNotSemicolonTerminated();
}
}
const char16_t* val = nsHtml5NamedCharacters::VALUES[candidate];
if (!val[1]) {
emitOrAppendOne(val, returnState);
} else {
emitOrAppendTwo(val, returnState);
}
if (charRefBufMark < charRefBufLen) {
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
appendStrBuf(charRefBuf, charRefBufMark, charRefBufLen - charRefBufMark);
} else {
tokenHandler->characters(charRefBuf, charRefBufMark, charRefBufLen - charRefBufMark);
}
}
charRefBufLen = 0;
state = returnState;
NS_HTML5_CONTINUE(eofloop);
}
}
- case NS_HTML5TOKENIZER_CONSUME_NCR:
- case NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP:
- case NS_HTML5TOKENIZER_HEX_NCR_LOOP: {
+ case CONSUME_NCR:
+ case DECIMAL_NRC_LOOP:
+ case HEX_NCR_LOOP: {
if (!seenDigits) {
errNoDigitsInNCR();
emitOrAppendCharRefBuf(returnState);
state = returnState;
continue;
} else {
errCharRefLacksSemicolon();
}
handleNcrValue(returnState);
state = returnState;
continue;
}
- case NS_HTML5TOKENIZER_CDATA_RSQB: {
+ case CDATA_RSQB: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 1);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB: {
+ case CDATA_RSQB_RSQB: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 2);
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TOKENIZER_DATA:
+ case DATA:
default: {
NS_HTML5_BREAK(eofloop);
}
}
}
eofloop_end: ;
tokenHandler->eof();
return;
@@ -3946,28 +4457,28 @@ nsHtml5Tokenizer::internalEncodingDeclar
return encodingDeclarationHandler->internalEncodingDeclaration(internalCharset);
}
return false;
}
void
nsHtml5Tokenizer::emitOrAppendTwo(const char16_t* val, int32_t returnState)
{
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
appendStrBuf(val[0]);
appendStrBuf(val[1]);
} else {
tokenHandler->characters(val, 0, 2);
}
}
void
nsHtml5Tokenizer::emitOrAppendOne(const char16_t* val, int32_t returnState)
{
- if ((returnState & NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK)) {
+ if ((returnState & DATA_AND_RCDATA_MASK)) {
appendStrBuf(val[0]);
} else {
tokenHandler->characters(val, 0, 1);
}
}
void
nsHtml5Tokenizer::end()
@@ -3996,25 +4507,25 @@ void
nsHtml5Tokenizer::requestSuspension()
{
shouldSuspend = true;
}
bool
nsHtml5Tokenizer::isInDataState()
{
- return (stateSave == NS_HTML5TOKENIZER_DATA);
+ return (stateSave == DATA);
}
void
nsHtml5Tokenizer::resetToDataState()
{
clearStrBufAfterUse();
charRefBufLen = 0;
- stateSave = NS_HTML5TOKENIZER_DATA;
+ stateSave = nsHtml5Tokenizer::DATA;
lastCR = false;
index = 0;
forceQuirks = false;
additional = '\0';
entCol = -1;
firstCharKey = -1;
lo = 0;
hi = 0;
@@ -4094,17 +4605,17 @@ nsHtml5Tokenizer::loadState(nsHtml5Token
}
if (!other->attributeName) {
attributeName = nullptr;
} else if (other->attributeName->isInterned()) {
attributeName = other->attributeName;
} else {
nonInternedAttributeName->setNameForNonInterned(
nsHtml5Portability::newLocalFromLocal(
- other->attributeName->getLocal(NS_HTML5ATTRIBUTE_NAME_HTML), interner));
+ other->attributeName->getLocal(nsHtml5AttributeName::HTML), interner));
attributeName = nonInternedAttributeName;
}
delete attributes;
if (!other->attributes) {
attributes = nullptr;
} else {
attributes = other->attributes->cloneAttributes(interner);
}
--- a/parser/html/nsHtml5Tokenizer.h
+++ b/parser/html/nsHtml5Tokenizer.h
@@ -44,28 +44,184 @@
#include "nsHtml5Atoms.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Macros.h"
#include "nsHtml5Highlighter.h"
#include "nsHtml5TokenizerLoopPolicies.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5Tokenizer
{
private:
+ static const int32_t DATA_AND_RCDATA_MASK = ~1;
+
+ public:
+ static const int32_t DATA = 0;
+
+ static const int32_t RCDATA = 1;
+
+ static const int32_t SCRIPT_DATA = 2;
+
+ static const int32_t RAWTEXT = 3;
+
+ static const int32_t SCRIPT_DATA_ESCAPED = 4;
+
+ static const int32_t ATTRIBUTE_VALUE_DOUBLE_QUOTED = 5;
+
+ static const int32_t ATTRIBUTE_VALUE_SINGLE_QUOTED = 6;
+
+ static const int32_t ATTRIBUTE_VALUE_UNQUOTED = 7;
+
+ static const int32_t PLAINTEXT = 8;
+
+ static const int32_t TAG_OPEN = 9;
+
+ static const int32_t CLOSE_TAG_OPEN = 10;
+
+ static const int32_t TAG_NAME = 11;
+
+ static const int32_t BEFORE_ATTRIBUTE_NAME = 12;
+
+ static const int32_t ATTRIBUTE_NAME = 13;
+
+ static const int32_t AFTER_ATTRIBUTE_NAME = 14;
+
+ static const int32_t BEFORE_ATTRIBUTE_VALUE = 15;
+
+ static const int32_t AFTER_ATTRIBUTE_VALUE_QUOTED = 16;
+
+ static const int32_t BOGUS_COMMENT = 17;
+
+ static const int32_t MARKUP_DECLARATION_OPEN = 18;
+
+ static const int32_t DOCTYPE = 19;
+
+ static const int32_t BEFORE_DOCTYPE_NAME = 20;
+
+ static const int32_t DOCTYPE_NAME = 21;
+
+ static const int32_t AFTER_DOCTYPE_NAME = 22;
+
+ static const int32_t BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 23;
+
+ static const int32_t DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 24;
+
+ static const int32_t DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 25;
+
+ static const int32_t AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 26;
+
+ static const int32_t BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 27;
+
+ static const int32_t DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 28;
+
+ static const int32_t DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 29;
+
+ static const int32_t AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 30;
+
+ static const int32_t BOGUS_DOCTYPE = 31;
+
+ static const int32_t COMMENT_START = 32;
+
+ static const int32_t COMMENT_START_DASH = 33;
+
+ static const int32_t COMMENT = 34;
+
+ static const int32_t COMMENT_END_DASH = 35;
+
+ static const int32_t COMMENT_END = 36;
+
+ static const int32_t COMMENT_END_BANG = 37;
+
+ static const int32_t NON_DATA_END_TAG_NAME = 38;
+
+ static const int32_t MARKUP_DECLARATION_HYPHEN = 39;
+
+ static const int32_t MARKUP_DECLARATION_OCTYPE = 40;
+
+ static const int32_t DOCTYPE_UBLIC = 41;
+
+ static const int32_t DOCTYPE_YSTEM = 42;
+
+ static const int32_t AFTER_DOCTYPE_PUBLIC_KEYWORD = 43;
+
+ static const int32_t BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 44;
+
+ static const int32_t AFTER_DOCTYPE_SYSTEM_KEYWORD = 45;
+
+ static const int32_t CONSUME_CHARACTER_REFERENCE = 46;
+
+ static const int32_t CONSUME_NCR = 47;
+
+ static const int32_t CHARACTER_REFERENCE_TAIL = 48;
+
+ static const int32_t HEX_NCR_LOOP = 49;
+
+ static const int32_t DECIMAL_NRC_LOOP = 50;
+
+ static const int32_t HANDLE_NCR_VALUE = 51;
+
+ static const int32_t HANDLE_NCR_VALUE_RECONSUME = 52;
+
+ static const int32_t CHARACTER_REFERENCE_HILO_LOOKUP = 53;
+
+ static const int32_t SELF_CLOSING_START_TAG = 54;
+
+ static const int32_t CDATA_START = 55;
+
+ static const int32_t CDATA_SECTION = 56;
+
+ static const int32_t CDATA_RSQB = 57;
+
+ static const int32_t CDATA_RSQB_RSQB = 58;
+
+ static const int32_t SCRIPT_DATA_LESS_THAN_SIGN = 59;
+
+ static const int32_t SCRIPT_DATA_ESCAPE_START = 60;
+
+ static const int32_t SCRIPT_DATA_ESCAPE_START_DASH = 61;
+
+ static const int32_t SCRIPT_DATA_ESCAPED_DASH = 62;
+
+ static const int32_t SCRIPT_DATA_ESCAPED_DASH_DASH = 63;
+
+ static const int32_t BOGUS_COMMENT_HYPHEN = 64;
+
+ static const int32_t RAWTEXT_RCDATA_LESS_THAN_SIGN = 65;
+
+ static const int32_t SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 66;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPE_START = 67;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPED = 68;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 69;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 70;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 71;
+
+ static const int32_t SCRIPT_DATA_DOUBLE_ESCAPE_END = 72;
+
+ static const int32_t PROCESSING_INSTRUCTION = 73;
+
+ static const int32_t PROCESSING_INSTRUCTION_QUESTION_MARK = 74;
+
+ private:
+ static const int32_t LEAD_OFFSET = (0xD800 - (0x10000 >> 10));
+
static char16_t LT_GT[];
static char16_t LT_SOLIDUS[];
static char16_t RSQB_RSQB[];
static char16_t REPLACEMENT_CHARACTER[];
static char16_t LF[];
static char16_t CDATA_LSQB[];
static char16_t OCTYPE[];
static char16_t UBLIC[];
@@ -301,89 +457,10 @@ class nsHtml5Tokenizer
void setEncodingDeclarationHandler(nsHtml5StreamParser* encodingDeclarationHandler);
~nsHtml5Tokenizer();
static void initializeStatics();
static void releaseStatics();
#include "nsHtml5TokenizerHSupplement.h"
};
-#define NS_HTML5TOKENIZER_DATA_AND_RCDATA_MASK ~1
-#define NS_HTML5TOKENIZER_DATA 0
-#define NS_HTML5TOKENIZER_RCDATA 1
-#define NS_HTML5TOKENIZER_SCRIPT_DATA 2
-#define NS_HTML5TOKENIZER_RAWTEXT 3
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED 4
-#define NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_DOUBLE_QUOTED 5
-#define NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_SINGLE_QUOTED 6
-#define NS_HTML5TOKENIZER_ATTRIBUTE_VALUE_UNQUOTED 7
-#define NS_HTML5TOKENIZER_PLAINTEXT 8
-#define NS_HTML5TOKENIZER_TAG_OPEN 9
-#define NS_HTML5TOKENIZER_CLOSE_TAG_OPEN 10
-#define NS_HTML5TOKENIZER_TAG_NAME 11
-#define NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_NAME 12
-#define NS_HTML5TOKENIZER_ATTRIBUTE_NAME 13
-#define NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_NAME 14
-#define NS_HTML5TOKENIZER_BEFORE_ATTRIBUTE_VALUE 15
-#define NS_HTML5TOKENIZER_AFTER_ATTRIBUTE_VALUE_QUOTED 16
-#define NS_HTML5TOKENIZER_BOGUS_COMMENT 17
-#define NS_HTML5TOKENIZER_MARKUP_DECLARATION_OPEN 18
-#define NS_HTML5TOKENIZER_DOCTYPE 19
-#define NS_HTML5TOKENIZER_BEFORE_DOCTYPE_NAME 20
-#define NS_HTML5TOKENIZER_DOCTYPE_NAME 21
-#define NS_HTML5TOKENIZER_AFTER_DOCTYPE_NAME 22
-#define NS_HTML5TOKENIZER_BEFORE_DOCTYPE_PUBLIC_IDENTIFIER 23
-#define NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED 24
-#define NS_HTML5TOKENIZER_DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED 25
-#define NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_IDENTIFIER 26
-#define NS_HTML5TOKENIZER_BEFORE_DOCTYPE_SYSTEM_IDENTIFIER 27
-#define NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED 28
-#define NS_HTML5TOKENIZER_DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED 29
-#define NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_IDENTIFIER 30
-#define NS_HTML5TOKENIZER_BOGUS_DOCTYPE 31
-#define NS_HTML5TOKENIZER_COMMENT_START 32
-#define NS_HTML5TOKENIZER_COMMENT_START_DASH 33
-#define NS_HTML5TOKENIZER_COMMENT 34
-#define NS_HTML5TOKENIZER_COMMENT_END_DASH 35
-#define NS_HTML5TOKENIZER_COMMENT_END 36
-#define NS_HTML5TOKENIZER_COMMENT_END_BANG 37
-#define NS_HTML5TOKENIZER_NON_DATA_END_TAG_NAME 38
-#define NS_HTML5TOKENIZER_MARKUP_DECLARATION_HYPHEN 39
-#define NS_HTML5TOKENIZER_MARKUP_DECLARATION_OCTYPE 40
-#define NS_HTML5TOKENIZER_DOCTYPE_UBLIC 41
-#define NS_HTML5TOKENIZER_DOCTYPE_YSTEM 42
-#define NS_HTML5TOKENIZER_AFTER_DOCTYPE_PUBLIC_KEYWORD 43
-#define NS_HTML5TOKENIZER_BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS 44
-#define NS_HTML5TOKENIZER_AFTER_DOCTYPE_SYSTEM_KEYWORD 45
-#define NS_HTML5TOKENIZER_CONSUME_CHARACTER_REFERENCE 46
-#define NS_HTML5TOKENIZER_CONSUME_NCR 47
-#define NS_HTML5TOKENIZER_CHARACTER_REFERENCE_TAIL 48
-#define NS_HTML5TOKENIZER_HEX_NCR_LOOP 49
-#define NS_HTML5TOKENIZER_DECIMAL_NRC_LOOP 50
-#define NS_HTML5TOKENIZER_HANDLE_NCR_VALUE 51
-#define NS_HTML5TOKENIZER_HANDLE_NCR_VALUE_RECONSUME 52
-#define NS_HTML5TOKENIZER_CHARACTER_REFERENCE_HILO_LOOKUP 53
-#define NS_HTML5TOKENIZER_SELF_CLOSING_START_TAG 54
-#define NS_HTML5TOKENIZER_CDATA_START 55
-#define NS_HTML5TOKENIZER_CDATA_SECTION 56
-#define NS_HTML5TOKENIZER_CDATA_RSQB 57
-#define NS_HTML5TOKENIZER_CDATA_RSQB_RSQB 58
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_LESS_THAN_SIGN 59
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START 60
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPE_START_DASH 61
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH 62
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_DASH_DASH 63
-#define NS_HTML5TOKENIZER_BOGUS_COMMENT_HYPHEN 64
-#define NS_HTML5TOKENIZER_RAWTEXT_RCDATA_LESS_THAN_SIGN 65
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN 66
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_START 67
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED 68
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN 69
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH 70
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH 71
-#define NS_HTML5TOKENIZER_SCRIPT_DATA_DOUBLE_ESCAPE_END 72
-#define NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION 73
-#define NS_HTML5TOKENIZER_PROCESSING_INSTRUCTION_QUESTION_MARK 74
-#define NS_HTML5TOKENIZER_LEAD_OFFSET (0xD800 - (0x10000 >> 10))
-
-
#endif
--- a/parser/html/nsHtml5TokenizerCppSupplement.h
+++ b/parser/html/nsHtml5TokenizerCppSupplement.h
@@ -57,17 +57,17 @@ nsHtml5Tokenizer::EnsureBufferSpace(int3
strBuf = newBuf;
}
return true;
}
void
nsHtml5Tokenizer::StartPlainText()
{
- stateSave = NS_HTML5TOKENIZER_PLAINTEXT;
+ stateSave = nsHtml5Tokenizer::PLAINTEXT;
}
void
nsHtml5Tokenizer::EnableViewSource(nsHtml5Highlighter* aHighlighter)
{
mViewSource = aHighlighter;
}
--- a/parser/html/nsHtml5TreeBuilder.cpp
+++ b/parser/html/nsHtml5TreeBuilder.cpp
@@ -51,20 +51,20 @@
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Highlighter.h"
#include "nsHtml5PlainTextUtils.h"
#include "nsHtml5ViewSourceUtils.h"
#include "mozilla/Likely.h"
#include "nsIContentHandle.h"
#include "nsHtml5OplessBuilder.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5TreeBuilder.h"
char16_t nsHtml5TreeBuilder::REPLACEMENT_CHARACTER[] = { 0xfffd };
@@ -73,17 +73,17 @@ staticJArray<const char*,int32_t> nsHtml
void
nsHtml5TreeBuilder::startTokenization(nsHtml5Tokenizer* self)
{
tokenizer = self;
stack = jArray<nsHtml5StackNode*,int32_t>::newJArray(64);
templateModeStack = jArray<int32_t,int32_t>::newJArray(64);
listOfActiveFormattingElements = jArray<nsHtml5StackNode*,int32_t>::newJArray(64);
needToDropLF = false;
- originalMode = NS_HTML5TREE_BUILDER_INITIAL;
+ originalMode = INITIAL;
templateModePtr = -1;
currentPtr = -1;
listPtr = -1;
formPointer = nullptr;
headPointer = nullptr;
deepTreeSurrogateParent = nullptr;
start(fragment);
charBufferLen = 0;
@@ -100,106 +100,113 @@ nsHtml5TreeBuilder::startTokenization(ns
nsHtml5ElementName* elementName = nsHtml5ElementName::ELT_SVG;
if (nsHtml5Atoms::title == contextName || nsHtml5Atoms::desc == contextName || nsHtml5Atoms::foreignObject == contextName) {
elementName = nsHtml5ElementName::ELT_FOREIGNOBJECT;
}
nsHtml5StackNode* node =
new nsHtml5StackNode(elementName, elementName->getCamelCaseName(), elt);
currentPtr++;
stack[currentPtr] = node;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_DATA, contextName);
- mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::DATA,
+ contextName);
+ mode = FRAMESET_OK;
} else if (contextNamespace == kNameSpaceID_MathML) {
nsHtml5ElementName* elementName = nsHtml5ElementName::ELT_MATH;
if (nsHtml5Atoms::mi == contextName || nsHtml5Atoms::mo == contextName || nsHtml5Atoms::mn == contextName || nsHtml5Atoms::ms == contextName || nsHtml5Atoms::mtext == contextName) {
elementName = nsHtml5ElementName::ELT_MTEXT;
} else if (nsHtml5Atoms::annotation_xml == contextName) {
elementName = nsHtml5ElementName::ELT_ANNOTATION_XML;
}
nsHtml5StackNode* node =
new nsHtml5StackNode(elementName, elt, elementName->getName(), false);
currentPtr++;
stack[currentPtr] = node;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_DATA, contextName);
- mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::DATA,
+ contextName);
+ mode = FRAMESET_OK;
} else {
nsHtml5StackNode* node = new nsHtml5StackNode(nsHtml5ElementName::ELT_HTML, elt);
currentPtr++;
stack[currentPtr] = node;
if (nsHtml5Atoms::template_ == contextName) {
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_TEMPLATE);
+ pushTemplateMode(IN_TEMPLATE);
}
resetTheInsertionMode();
formPointer = getFormPointerForContext(contextNode);
if (nsHtml5Atoms::title == contextName || nsHtml5Atoms::textarea == contextName) {
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RCDATA, contextName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RCDATA,
+ contextName);
} else if (nsHtml5Atoms::style == contextName || nsHtml5Atoms::xmp == contextName || nsHtml5Atoms::iframe == contextName || nsHtml5Atoms::noembed == contextName || nsHtml5Atoms::noframes == contextName || (scriptingEnabled && nsHtml5Atoms::noscript == contextName)) {
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, contextName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ contextName);
} else if (nsHtml5Atoms::plaintext == contextName) {
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_PLAINTEXT, contextName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::PLAINTEXT,
+ contextName);
} else if (nsHtml5Atoms::script == contextName) {
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_SCRIPT_DATA, contextName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::SCRIPT_DATA,
+ contextName);
} else {
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_DATA, contextName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::DATA,
+ contextName);
}
}
contextName = nullptr;
contextNode = nullptr;
} else {
- mode = NS_HTML5TREE_BUILDER_INITIAL;
+ mode = INITIAL;
if (tokenizer->isViewingXmlSource()) {
nsIContentHandle* elt = createElement(kNameSpaceID_SVG, nsHtml5Atoms::svg, tokenizer->emptyAttributes(), nullptr);
nsHtml5StackNode* node = new nsHtml5StackNode(nsHtml5ElementName::ELT_SVG, nsHtml5Atoms::svg, elt);
currentPtr++;
stack[currentPtr] = node;
}
}
}
void
nsHtml5TreeBuilder::doctype(nsIAtom* name,
nsHtml5String publicIdentifier,
nsHtml5String systemIdentifier,
bool forceQuirks)
{
needToDropLF = false;
- if (!isInForeign() && mode == NS_HTML5TREE_BUILDER_INITIAL) {
+ if (!isInForeign() && mode == INITIAL) {
nsHtml5String emptyString = nsHtml5Portability::newEmptyString();
appendDoctypeToDocument(!name ? nsHtml5Atoms::emptystring : name, !publicIdentifier ? emptyString : publicIdentifier, !systemIdentifier ? emptyString : systemIdentifier);
emptyString.Release();
if (isQuirky(name, publicIdentifier, systemIdentifier, forceQuirks)) {
errQuirkyDoctype();
documentModeInternal(QUIRKS_MODE, publicIdentifier, systemIdentifier, false);
} else if (isAlmostStandards(publicIdentifier, systemIdentifier)) {
errAlmostStandardsDoctype();
documentModeInternal(ALMOST_STANDARDS_MODE, publicIdentifier, systemIdentifier, false);
} else {
documentModeInternal(STANDARDS_MODE, publicIdentifier, systemIdentifier, false);
}
- mode = NS_HTML5TREE_BUILDER_BEFORE_HTML;
+ mode = BEFORE_HTML;
return;
}
errStrayDoctype();
return;
}
void
nsHtml5TreeBuilder::comment(char16_t* buf, int32_t start, int32_t length)
{
needToDropLF = false;
if (!isInForeign()) {
switch(mode) {
- case NS_HTML5TREE_BUILDER_INITIAL:
- case NS_HTML5TREE_BUILDER_BEFORE_HTML:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET: {
+ case INITIAL:
+ case BEFORE_HTML:
+ case AFTER_AFTER_BODY:
+ case AFTER_AFTER_FRAMESET: {
appendCommentToDocument(buf, start, length);
return;
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY: {
+ case AFTER_BODY: {
flushCharacters();
appendComment(stack[0]->node, buf, start, length);
return;
}
default: {
break;
}
}
@@ -221,232 +228,233 @@ nsHtml5TreeBuilder::characters(const cha
start++;
length--;
if (!length) {
return;
}
}
}
switch(mode) {
- case NS_HTML5TREE_BUILDER_IN_BODY:
- case NS_HTML5TREE_BUILDER_IN_CELL:
- case NS_HTML5TREE_BUILDER_IN_CAPTION: {
+ case IN_BODY:
+ case IN_CELL:
+ case IN_CAPTION: {
if (!isInForeignButNotHtmlOrMathTextIntegrationPoint()) {
reconstructTheActiveFormattingElements();
}
}
- case NS_HTML5TREE_BUILDER_TEXT: {
+ case TEXT: {
accumulateCharacters(buf, start, length);
return;
}
- case NS_HTML5TREE_BUILDER_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY:
- case NS_HTML5TREE_BUILDER_IN_ROW: {
+ case IN_TABLE:
+ case IN_TABLE_BODY:
+ case IN_ROW: {
accumulateCharactersForced(buf, start, length);
return;
}
default: {
int32_t end = start + length;
for (int32_t i = start; i < end; i++) {
switch(buf[i]) {
case ' ':
case '\t':
case '\n':
case '\r':
case '\f': {
switch(mode) {
- case NS_HTML5TREE_BUILDER_INITIAL:
- case NS_HTML5TREE_BUILDER_BEFORE_HTML:
- case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
+ case INITIAL:
+ case BEFORE_HTML:
+ case BEFORE_HEAD: {
start = i + 1;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD:
- case NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT:
- case NS_HTML5TREE_BUILDER_AFTER_HEAD:
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP:
- case NS_HTML5TREE_BUILDER_IN_FRAMESET:
- case NS_HTML5TREE_BUILDER_AFTER_FRAMESET: {
+ case IN_HEAD:
+ case IN_HEAD_NOSCRIPT:
+ case AFTER_HEAD:
+ case IN_COLUMN_GROUP:
+ case IN_FRAMESET:
+ case AFTER_FRAMESET: {
continue;
}
- case NS_HTML5TREE_BUILDER_FRAMESET_OK:
- case NS_HTML5TREE_BUILDER_IN_TEMPLATE:
- case NS_HTML5TREE_BUILDER_IN_BODY:
- case NS_HTML5TREE_BUILDER_IN_CELL:
- case NS_HTML5TREE_BUILDER_IN_CAPTION: {
+ case FRAMESET_OK:
+ case IN_TEMPLATE:
+ case IN_BODY:
+ case IN_CELL:
+ case IN_CAPTION: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
if (!isInForeignButNotHtmlOrMathTextIntegrationPoint()) {
flushCharacters();
reconstructTheActiveFormattingElements();
}
NS_HTML5_BREAK(charactersloop);
}
- case NS_HTML5TREE_BUILDER_IN_SELECT:
- case NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE: {
+ case IN_SELECT:
+ case IN_SELECT_IN_TABLE: {
NS_HTML5_BREAK(charactersloop);
}
- case NS_HTML5TREE_BUILDER_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY:
- case NS_HTML5TREE_BUILDER_IN_ROW: {
+ case IN_TABLE:
+ case IN_TABLE_BODY:
+ case IN_ROW: {
accumulateCharactersForced(buf, i, 1);
start = i + 1;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET: {
+ case AFTER_BODY:
+ case AFTER_AFTER_BODY:
+ case AFTER_AFTER_FRAMESET: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
flushCharacters();
reconstructTheActiveFormattingElements();
continue;
}
}
}
default: {
switch(mode) {
- case NS_HTML5TREE_BUILDER_INITIAL: {
+ case INITIAL: {
documentModeInternal(QUIRKS_MODE, nullptr, nullptr, false);
- mode = NS_HTML5TREE_BUILDER_BEFORE_HTML;
+ mode = BEFORE_HTML;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HTML: {
+ case BEFORE_HTML: {
appendHtmlElementToDocumentAndPush();
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
+ case BEFORE_HEAD: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
flushCharacters();
appendToCurrentNodeAndPushHeadElement(nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD: {
+ case IN_HEAD: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
flushCharacters();
pop();
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT: {
+ case IN_HEAD_NOSCRIPT: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
errNonSpaceInNoscriptInHead();
flushCharacters();
pop();
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_HEAD: {
+ case AFTER_HEAD: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
flushCharacters();
appendToCurrentNodeAndPushBodyElement();
- mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
+ mode = FRAMESET_OK;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_FRAMESET_OK: {
+ case FRAMESET_OK: {
framesetOk = false;
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = IN_BODY;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_TEMPLATE:
- case NS_HTML5TREE_BUILDER_IN_BODY:
- case NS_HTML5TREE_BUILDER_IN_CELL:
- case NS_HTML5TREE_BUILDER_IN_CAPTION: {
+ case IN_TEMPLATE:
+ case IN_BODY:
+ case IN_CELL:
+ case IN_CAPTION: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
if (!isInForeignButNotHtmlOrMathTextIntegrationPoint()) {
flushCharacters();
reconstructTheActiveFormattingElements();
}
NS_HTML5_BREAK(charactersloop);
}
- case NS_HTML5TREE_BUILDER_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY:
- case NS_HTML5TREE_BUILDER_IN_ROW: {
+ case IN_TABLE:
+ case IN_TABLE_BODY:
+ case IN_ROW: {
accumulateCharactersForced(buf, i, 1);
start = i + 1;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP: {
+ case IN_COLUMN_GROUP: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
start = i;
}
- if (!currentPtr || stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (!currentPtr || stack[currentPtr]->getGroup() ==
+ nsHtml5TreeBuilder::TEMPLATE) {
errNonSpaceInColgroupInFragment();
start = i + 1;
continue;
}
flushCharacters();
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_SELECT:
- case NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE: {
+ case IN_SELECT:
+ case IN_SELECT_IN_TABLE: {
NS_HTML5_BREAK(charactersloop);
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY: {
+ case AFTER_BODY: {
errNonSpaceAfterBody();
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_FRAMESET: {
+ case IN_FRAMESET: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
}
errNonSpaceInFrameset();
start = i + 1;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_FRAMESET: {
+ case AFTER_FRAMESET: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
}
errNonSpaceAfterFrameset();
start = i + 1;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY: {
+ case AFTER_AFTER_BODY: {
errNonSpaceInTrailer();
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
i--;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET: {
+ case AFTER_AFTER_FRAMESET: {
if (start < i) {
accumulateCharacters(buf, start, i - start);
}
errNonSpaceInTrailer();
start = i + 1;
continue;
}
}
@@ -459,17 +467,17 @@ nsHtml5TreeBuilder::characters(const cha
}
}
}
}
void
nsHtml5TreeBuilder::zeroOriginatingReplacementCharacter()
{
- if (mode == NS_HTML5TREE_BUILDER_TEXT) {
+ if (mode == TEXT) {
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
return;
}
if (currentPtr >= 0) {
if (isSpecialParentInForeign(stack[currentPtr])) {
return;
}
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
@@ -477,96 +485,96 @@ nsHtml5TreeBuilder::zeroOriginatingRepla
}
void
nsHtml5TreeBuilder::eof()
{
flushCharacters();
for (; ; ) {
switch(mode) {
- case NS_HTML5TREE_BUILDER_INITIAL: {
+ case INITIAL: {
documentModeInternal(QUIRKS_MODE, nullptr, nullptr, false);
- mode = NS_HTML5TREE_BUILDER_BEFORE_HTML;
+ mode = BEFORE_HTML;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HTML: {
+ case BEFORE_HTML: {
appendHtmlElementToDocumentAndPush();
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
+ case BEFORE_HEAD: {
appendToCurrentNodeAndPushHeadElement(nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD: {
+ case IN_HEAD: {
while (currentPtr > 0) {
popOnEof();
}
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT: {
+ case IN_HEAD_NOSCRIPT: {
while (currentPtr > 1) {
popOnEof();
}
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_HEAD: {
+ case AFTER_HEAD: {
appendToCurrentNodeAndPushBodyElement();
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = IN_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY:
- case NS_HTML5TREE_BUILDER_IN_ROW:
- case NS_HTML5TREE_BUILDER_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_SELECT:
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP:
- case NS_HTML5TREE_BUILDER_FRAMESET_OK:
- case NS_HTML5TREE_BUILDER_IN_CAPTION:
- case NS_HTML5TREE_BUILDER_IN_CELL:
- case NS_HTML5TREE_BUILDER_IN_BODY: {
+ case IN_TABLE_BODY:
+ case IN_ROW:
+ case IN_TABLE:
+ case IN_SELECT_IN_TABLE:
+ case IN_SELECT:
+ case IN_COLUMN_GROUP:
+ case FRAMESET_OK:
+ case IN_CAPTION:
+ case IN_CELL:
+ case IN_BODY: {
if (isTemplateModeStackEmpty()) {
NS_HTML5_BREAK(eofloop);
}
}
- case NS_HTML5TREE_BUILDER_IN_TEMPLATE: {
+ case IN_TEMPLATE: {
int32_t eltPos = findLast(nsHtml5Atoms::template_);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
NS_HTML5_BREAK(eofloop);
}
if (MOZ_UNLIKELY(mViewSource)) {
errUnclosedElements(eltPos, nsHtml5Atoms::template_);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
popTemplateMode();
resetTheInsertionMode();
continue;
}
- case NS_HTML5TREE_BUILDER_TEXT: {
- if (originalMode == NS_HTML5TREE_BUILDER_AFTER_HEAD) {
+ case TEXT: {
+ if (originalMode == AFTER_HEAD) {
popOnEof();
}
popOnEof();
mode = originalMode;
continue;
}
- case NS_HTML5TREE_BUILDER_IN_FRAMESET: {
+ case IN_FRAMESET: {
NS_HTML5_BREAK(eofloop);
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY:
- case NS_HTML5TREE_BUILDER_AFTER_FRAMESET:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY:
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET:
+ case AFTER_BODY:
+ case AFTER_FRAMESET:
+ case AFTER_AFTER_BODY:
+ case AFTER_AFTER_FRAMESET:
default: {
NS_HTML5_BREAK(eofloop);
}
}
}
eofloop_end: ;
while (currentPtr > 0) {
popOnEof();
@@ -610,38 +618,45 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
int32_t eltPos;
needToDropLF = false;
starttagloop: for (; ; ) {
int32_t group = elementName->getGroup();
nsIAtom* name = elementName->getName();
if (isInForeign()) {
nsHtml5StackNode* currentNode = stack[currentPtr];
int32_t currNs = currentNode->ns;
- if (!(currentNode->isHtmlIntegrationPoint() || (currNs == kNameSpaceID_MathML && ((currentNode->getGroup() == NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT && group != NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK) || (currentNode->getGroup() == NS_HTML5TREE_BUILDER_ANNOTATION_XML && group == NS_HTML5TREE_BUILDER_SVG))))) {
+ if (!(currentNode->isHtmlIntegrationPoint() ||
+ (currNs == kNameSpaceID_MathML &&
+ ((currentNode->getGroup() == MI_MO_MN_MS_MTEXT &&
+ group != MGLYPH_OR_MALIGNMARK) ||
+ (currentNode->getGroup() == ANNOTATION_XML && group == SVG))))) {
switch(group) {
- case NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
- case NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL:
- case NS_HTML5TREE_BUILDER_EMBED:
- case NS_HTML5TREE_BUILDER_IMG:
- case NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
- case NS_HTML5TREE_BUILDER_HEAD:
- case NS_HTML5TREE_BUILDER_HR:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_META:
- case NS_HTML5TREE_BUILDER_NOBR:
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_PRE_OR_LISTING:
- case NS_HTML5TREE_BUILDER_TABLE:
- case NS_HTML5TREE_BUILDER_FONT: {
- if (!(group == NS_HTML5TREE_BUILDER_FONT && !(attributes->contains(nsHtml5AttributeName::ATTR_COLOR) || attributes->contains(nsHtml5AttributeName::ATTR_FACE) || attributes->contains(nsHtml5AttributeName::ATTR_SIZE)))) {
+ case B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
+ case DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
+ case BODY:
+ case BR:
+ case RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
+ case DD_OR_DT:
+ case UL_OR_OL_OR_DL:
+ case EMBED:
+ case IMG:
+ case H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
+ case HEAD:
+ case HR:
+ case LI:
+ case META:
+ case NOBR:
+ case P:
+ case PRE_OR_LISTING:
+ case TABLE:
+ case FONT: {
+ if (!(group == FONT &&
+ !(attributes->contains(nsHtml5AttributeName::ATTR_COLOR) ||
+ attributes->contains(nsHtml5AttributeName::ATTR_FACE) ||
+ attributes->contains(nsHtml5AttributeName::ATTR_SIZE)))) {
errHtmlStartTagInForeignContext(name);
if (!fragment) {
while (!isSpecialParentInForeign(stack[currentPtr])) {
pop();
}
NS_HTML5_CONTINUE(starttagloop);
}
}
@@ -668,238 +683,240 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
}
}
}
}
switch(mode) {
- case NS_HTML5TREE_BUILDER_IN_TEMPLATE: {
+ case IN_TEMPLATE: {
switch(group) {
- case NS_HTML5TREE_BUILDER_COL: {
+ case COL: {
popTemplateMode();
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP);
- mode = NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP;
+ pushTemplateMode(IN_COLUMN_GROUP);
+ mode = IN_COLUMN_GROUP;
continue;
}
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
+ case CAPTION:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT: {
popTemplateMode();
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_TABLE);
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ pushTemplateMode(IN_TABLE);
+ mode = IN_TABLE;
continue;
}
- case NS_HTML5TREE_BUILDER_TR: {
+ case TR: {
popTemplateMode();
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_TABLE_BODY);
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ pushTemplateMode(IN_TABLE_BODY);
+ mode = IN_TABLE_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case TD_OR_TH: {
popTemplateMode();
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_ROW);
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ pushTemplateMode(IN_ROW);
+ mode = IN_ROW;
continue;
}
- case NS_HTML5TREE_BUILDER_META: {
+ case META: {
checkMetaCharset(attributes);
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TITLE: {
+ case TITLE: {
startTagTitleInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BASE:
- case NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND: {
+ case BASE:
+ case LINK_OR_BASEFONT_OR_BGSOUND: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case SCRIPT: {
startTagScriptInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOFRAMES:
- case NS_HTML5TREE_BUILDER_STYLE: {
+ case NOFRAMES:
+ case STYLE: {
startTagGenericRawText(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
startTagTemplateInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
popTemplateMode();
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_BODY);
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ pushTemplateMode(IN_BODY);
+ mode = IN_BODY;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_ROW: {
+ case IN_ROW: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TR));
+ case TD_OR_TH: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TR));
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_CELL;
+ mode = IN_CELL;
insertMarker();
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR: {
- eltPos = findLastOrRoot(NS_HTML5TREE_BUILDER_TR);
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR: {
+ eltPos = findLastOrRoot(nsHtml5TreeBuilder::TR);
if (!eltPos) {
MOZ_ASSERT(fragment || isTemplateContents());
errNoTableRowToClose();
NS_HTML5_BREAK(starttagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
continue;
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY: {
+ case IN_TABLE_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TR: {
+ case TR: {
clearStackBackTo(findLastInTableScopeOrRootTemplateTbodyTheadTfoot());
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ mode = IN_ROW;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case TD_OR_TH: {
errStartTagInTableBody(name);
clearStackBackTo(findLastInTableScopeOrRootTemplateTbodyTheadTfoot());
appendToCurrentNodeAndPushElement(nsHtml5ElementName::ELT_TR, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ mode = IN_ROW;
continue;
}
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT: {
eltPos = findLastInTableScopeOrRootTemplateTbodyTheadTfoot();
- if (!eltPos || stack[eltPos]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (!eltPos || stack[eltPos]->getGroup() == TEMPLATE) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
} else {
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_TABLE: {
+ case IN_TABLE: {
for (; ; ) {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE));
+ case CAPTION: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TABLE));
insertMarker();
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_CAPTION;
+ mode = IN_CAPTION;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_COLGROUP: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE));
+ case COLGROUP: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TABLE));
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP;
+ mode = IN_COLUMN_GROUP;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_COL: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE));
+ case COL: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TABLE));
appendToCurrentNodeAndPushElement(nsHtml5ElementName::ELT_COLGROUP, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP;
+ mode = IN_COLUMN_GROUP;
NS_HTML5_CONTINUE(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE));
+ case TBODY_OR_THEAD_OR_TFOOT: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TABLE));
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
- clearStackBackTo(findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE));
+ case TR:
+ case TD_OR_TH: {
+ clearStackBackTo(findLastOrRoot(nsHtml5TreeBuilder::TABLE));
appendToCurrentNodeAndPushElement(nsHtml5ElementName::ELT_TBODY, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
NS_HTML5_CONTINUE(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
NS_HTML5_BREAK(intableloop);
}
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case TABLE: {
errTableSeenWhileTableOpen();
eltPos = findLastInTableScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment || isTemplateContents());
NS_HTML5_BREAK(starttagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(nsHtml5Atoms::table)) {
errNoCheckUnclosedElementsOnStack();
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
NS_HTML5_CONTINUE(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case SCRIPT: {
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_SCRIPT_DATA, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(
+ nsHtml5Tokenizer::SCRIPT_DATA, elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_STYLE: {
+ case STYLE: {
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_INPUT: {
+ case INPUT: {
errStartTagInTable(name);
if (!nsHtml5Portability::lowerCaseLiteralEqualsIgnoreAsciiCaseString("hidden", attributes->getValue(nsHtml5AttributeName::ATTR_TYPE))) {
NS_HTML5_BREAK(intableloop);
}
appendVoidElementToCurrent(name, attributes, formPointer);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_FORM: {
+ case FORM: {
if (!!formPointer || isTemplateContents()) {
errFormWhenFormOpen();
NS_HTML5_BREAK(starttagloop);
} else {
errStartTagInTable(name);
appendVoidFormToCurrent(attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
@@ -908,197 +925,204 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
default: {
errStartTagInTable(name);
NS_HTML5_BREAK(intableloop);
}
}
}
intableloop_end: ;
}
- case NS_HTML5TREE_BUILDER_IN_CAPTION: {
+ case IN_CAPTION: {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR:
+ case TD_OR_TH: {
errStrayStartTag(name);
eltPos = findLastInTableScope(nsHtml5Atoms::caption);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
NS_HTML5_BREAK(starttagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && currentPtr != eltPos) {
errNoCheckUnclosedElementsOnStack();
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_CELL: {
+ case IN_CELL: {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR:
+ case TD_OR_TH: {
eltPos = findLastInTableScopeTdTh();
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errNoCellToClose();
NS_HTML5_BREAK(starttagloop);
} else {
closeTheCell(eltPos);
continue;
}
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_FRAMESET_OK: {
+ case FRAMESET_OK: {
switch(group) {
- case NS_HTML5TREE_BUILDER_FRAMESET: {
- if (mode == NS_HTML5TREE_BUILDER_FRAMESET_OK) {
- if (!currentPtr || stack[1]->getGroup() != NS_HTML5TREE_BUILDER_BODY) {
+ case FRAMESET: {
+ if (mode == FRAMESET_OK) {
+ if (!currentPtr || stack[1]->getGroup() != BODY) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
} else {
errFramesetStart();
detachFromParent(stack[1]->node);
while (currentPtr > 0) {
pop();
}
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_FRAMESET;
+ mode = IN_FRAMESET;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
} else {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
}
- case NS_HTML5TREE_BUILDER_PRE_OR_LISTING:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_BUTTON:
- case NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET:
- case NS_HTML5TREE_BUILDER_OBJECT:
- case NS_HTML5TREE_BUILDER_TABLE:
- case NS_HTML5TREE_BUILDER_AREA_OR_WBR:
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_EMBED:
- case NS_HTML5TREE_BUILDER_IMG:
- case NS_HTML5TREE_BUILDER_INPUT:
- case NS_HTML5TREE_BUILDER_KEYGEN:
- case NS_HTML5TREE_BUILDER_HR:
- case NS_HTML5TREE_BUILDER_TEXTAREA:
- case NS_HTML5TREE_BUILDER_XMP:
- case NS_HTML5TREE_BUILDER_IFRAME:
- case NS_HTML5TREE_BUILDER_SELECT: {
- if (mode == NS_HTML5TREE_BUILDER_FRAMESET_OK && !(group == NS_HTML5TREE_BUILDER_INPUT && nsHtml5Portability::lowerCaseLiteralEqualsIgnoreAsciiCaseString("hidden", attributes->getValue(nsHtml5AttributeName::ATTR_TYPE)))) {
+ case PRE_OR_LISTING:
+ case LI:
+ case DD_OR_DT:
+ case BUTTON:
+ case MARQUEE_OR_APPLET:
+ case OBJECT:
+ case TABLE:
+ case AREA_OR_WBR:
+ case BR:
+ case EMBED:
+ case IMG:
+ case INPUT:
+ case KEYGEN:
+ case HR:
+ case TEXTAREA:
+ case XMP:
+ case IFRAME:
+ case SELECT: {
+ if (mode == FRAMESET_OK &&
+ !(group == INPUT &&
+ nsHtml5Portability::
+ lowerCaseLiteralEqualsIgnoreAsciiCaseString(
+ "hidden",
+ attributes->getValue(nsHtml5AttributeName::ATTR_TYPE)))) {
framesetOk = false;
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = IN_BODY;
}
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_BODY: {
+ case IN_BODY: {
for (; ; ) {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BASE:
- case NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND:
- case NS_HTML5TREE_BUILDER_META:
- case NS_HTML5TREE_BUILDER_STYLE:
- case NS_HTML5TREE_BUILDER_SCRIPT:
- case NS_HTML5TREE_BUILDER_TITLE:
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case BASE:
+ case LINK_OR_BASEFONT_OR_BGSOUND:
+ case META:
+ case STYLE:
+ case SCRIPT:
+ case TITLE:
+ case TEMPLATE: {
NS_HTML5_BREAK(inbodyloop);
}
- case NS_HTML5TREE_BUILDER_BODY: {
- if (!currentPtr || stack[1]->getGroup() != NS_HTML5TREE_BUILDER_BODY || isTemplateContents()) {
+ case BODY: {
+ if (!currentPtr || stack[1]->getGroup() != BODY ||
+ isTemplateContents()) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
errFooSeenWhenFooOpen(name);
framesetOk = false;
- if (mode == NS_HTML5TREE_BUILDER_FRAMESET_OK) {
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ if (mode == FRAMESET_OK) {
+ mode = IN_BODY;
}
if (addAttributesToBody(attributes)) {
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
- case NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL:
- case NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY: {
+ case P:
+ case DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
+ case UL_OR_OL_OR_DL:
+ case ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY: {
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6: {
+ case H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6: {
implicitlyCloseP();
- if (stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6) {
+ if (stack[currentPtr]->getGroup() ==
+ H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6) {
errHeadingWhenHeadingOpen();
pop();
}
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_FIELDSET: {
+ case FIELDSET: {
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_PRE_OR_LISTING: {
+ case PRE_OR_LISTING: {
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
needToDropLF = true;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_FORM: {
+ case FORM: {
if (!!formPointer && !isTemplateContents()) {
errFormWhenFormOpen();
NS_HTML5_BREAK(starttagloop);
} else {
implicitlyCloseP();
appendToCurrentNodeAndPushFormElementMayFoster(attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
}
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_DD_OR_DT: {
+ case LI:
+ case DD_OR_DT: {
eltPos = currentPtr;
for (; ; ) {
nsHtml5StackNode* node = stack[eltPos];
if (node->getGroup() == group) {
generateImpliedEndTagsExceptFor(node->name);
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElementsImplied(eltPos, name);
}
@@ -1111,24 +1135,25 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
}
eltPos--;
}
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_PLAINTEXT: {
+ case PLAINTEXT: {
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_PLAINTEXT, elementName);
+ tokenizer->setStateAndEndTagExpectation(
+ nsHtml5Tokenizer::PLAINTEXT, elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_A: {
+ case A: {
int32_t activeAPos = findInListOfActiveFormattingElementsContainsBetweenEndAndLastMarker(nsHtml5Atoms::a);
if (activeAPos != -1) {
errFooSeenWhenFooOpen(name);
nsHtml5StackNode* activeA = listOfActiveFormattingElements[activeAPos];
activeA->retain();
adoptionAgencyEndTag(nsHtml5Atoms::a);
removeFromStack(activeA);
activeAPos = findInListOfActiveFormattingElements(activeA);
@@ -1137,114 +1162,115 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
}
activeA->release();
}
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushFormattingElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
- case NS_HTML5TREE_BUILDER_FONT: {
+ case B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
+ case FONT: {
reconstructTheActiveFormattingElements();
maybeForgetEarlierDuplicateFormattingElement(
elementName->getName(), attributes);
appendToCurrentNodeAndPushFormattingElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOBR: {
+ case NOBR: {
reconstructTheActiveFormattingElements();
- if (NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK != findLastInScope(nsHtml5Atoms::nobr)) {
+ if (nsHtml5TreeBuilder::NOT_FOUND_ON_STACK !=
+ findLastInScope(nsHtml5Atoms::nobr)) {
errFooSeenWhenFooOpen(name);
adoptionAgencyEndTag(nsHtml5Atoms::nobr);
reconstructTheActiveFormattingElements();
}
appendToCurrentNodeAndPushFormattingElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BUTTON: {
+ case BUTTON: {
eltPos = findLastInScope(name);
- if (eltPos != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos != nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errFooSeenWhenFooOpen(name);
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElementsImplied(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
NS_HTML5_CONTINUE(starttagloop);
} else {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
}
- case NS_HTML5TREE_BUILDER_OBJECT: {
+ case OBJECT: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
insertMarker();
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET: {
+ case MARQUEE_OR_APPLET: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
insertMarker();
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case TABLE: {
if (!quirks) {
implicitlyCloseP();
}
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_EMBED:
- case NS_HTML5TREE_BUILDER_AREA_OR_WBR: {
+ case BR:
+ case EMBED:
+ case AREA_OR_WBR: {
reconstructTheActiveFormattingElements();
}
#ifdef ENABLE_VOID_MENUITEM
- case NS_HTML5TREE_BUILDER_MENUITEM:
+ case MENUITEM:
#endif
- case NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK: {
+ case PARAM_OR_SOURCE_OR_TRACK: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_HR: {
+ case HR: {
implicitlyCloseP();
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_IMAGE: {
+ case IMAGE: {
errImage();
elementName = nsHtml5ElementName::ELT_IMG;
NS_HTML5_CONTINUE(starttagloop);
}
- case NS_HTML5TREE_BUILDER_IMG:
- case NS_HTML5TREE_BUILDER_KEYGEN:
- case NS_HTML5TREE_BUILDER_INPUT: {
+ case IMG:
+ case KEYGEN:
+ case INPUT: {
reconstructTheActiveFormattingElements();
appendVoidElementToCurrentMayFoster(name, attributes, formPointer);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_ISINDEX: {
+ case ISINDEX: {
errIsindex();
if (!!formPointer && !isTemplateContents()) {
NS_HTML5_BREAK(starttagloop);
}
implicitlyCloseP();
nsHtml5HtmlAttributes* formAttrs = new nsHtml5HtmlAttributes(0);
int32_t actionIndex = attributes->getIndex(nsHtml5AttributeName::ATTR_ACTION);
if (actionIndex > -1) {
@@ -1281,659 +1307,667 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
appendVoidElementToCurrentMayFoster(nsHtml5ElementName::ELT_HR, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
pop();
if (!isTemplateContents()) {
formPointer = nullptr;
}
selfClosing = false;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEXTAREA: {
+ case TEXTAREA: {
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RCDATA, elementName);
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RCDATA,
+ elementName);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
+ mode = TEXT;
needToDropLF = true;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_XMP: {
+ case XMP: {
implicitlyCloseP();
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case NOSCRIPT: {
if (!scriptingEnabled) {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
} else {
}
}
- case NS_HTML5TREE_BUILDER_NOFRAMES:
- case NS_HTML5TREE_BUILDER_IFRAME:
- case NS_HTML5TREE_BUILDER_NOEMBED: {
+ case NOFRAMES:
+ case IFRAME:
+ case NOEMBED: {
startTagGenericRawText(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SELECT: {
+ case SELECT: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
switch(mode) {
- case NS_HTML5TREE_BUILDER_IN_TABLE:
- case NS_HTML5TREE_BUILDER_IN_CAPTION:
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP:
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY:
- case NS_HTML5TREE_BUILDER_IN_ROW:
- case NS_HTML5TREE_BUILDER_IN_CELL: {
- mode = NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE;
+ case IN_TABLE:
+ case IN_CAPTION:
+ case IN_COLUMN_GROUP:
+ case IN_TABLE_BODY:
+ case IN_ROW:
+ case IN_CELL: {
+ mode = IN_SELECT_IN_TABLE;
break;
}
default: {
- mode = NS_HTML5TREE_BUILDER_IN_SELECT;
+ mode = IN_SELECT;
break;
}
}
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_OPTGROUP:
- case NS_HTML5TREE_BUILDER_OPTION: {
+ case OPTGROUP:
+ case OPTION: {
if (isCurrent(nsHtml5Atoms::option)) {
pop();
}
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_RB_OR_RTC: {
+ case RB_OR_RTC: {
eltPos = findLastInScope(nsHtml5Atoms::ruby);
- if (eltPos != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos != NOT_FOUND_ON_STACK) {
generateImpliedEndTags();
}
if (eltPos != currentPtr) {
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == NOT_FOUND_ON_STACK) {
errStartTagSeenWithoutRuby(name);
} else {
errUnclosedChildrenInRuby();
}
}
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_RT_OR_RP: {
+ case RT_OR_RP: {
eltPos = findLastInScope(nsHtml5Atoms::ruby);
- if (eltPos != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos != NOT_FOUND_ON_STACK) {
generateImpliedEndTagsExceptFor(nsHtml5Atoms::rtc);
}
if (eltPos != currentPtr) {
if (!isCurrent(nsHtml5Atoms::rtc)) {
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == NOT_FOUND_ON_STACK) {
errStartTagSeenWithoutRuby(name);
} else {
errUnclosedChildrenInRuby();
}
}
}
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_MATH: {
+ case MATH: {
reconstructTheActiveFormattingElements();
attributes->adjustForMath();
if (selfClosing) {
appendVoidElementToCurrentMayFosterMathML(elementName, attributes);
selfClosing = false;
} else {
appendToCurrentNodeAndPushElementMayFosterMathML(elementName, attributes);
}
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SVG: {
+ case SVG: {
reconstructTheActiveFormattingElements();
attributes->adjustForSvg();
if (selfClosing) {
appendVoidElementToCurrentMayFosterSVG(elementName, attributes);
selfClosing = false;
} else {
appendToCurrentNodeAndPushElementMayFosterSVG(elementName, attributes);
}
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_FRAME:
- case NS_HTML5TREE_BUILDER_FRAMESET:
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR:
+ case TD_OR_TH:
+ case FRAME:
+ case FRAMESET:
+ case HEAD: {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_OUTPUT: {
+ case OUTPUT: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes, formPointer);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
}
}
inbodyloop_end: ;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD: {
+ case IN_HEAD: {
for (; ; ) {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BASE:
- case NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND: {
+ case BASE:
+ case LINK_OR_BASEFONT_OR_BGSOUND: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_META: {
+ case META: {
NS_HTML5_BREAK(inheadloop);
}
- case NS_HTML5TREE_BUILDER_TITLE: {
+ case TITLE: {
startTagTitleInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case NOSCRIPT: {
if (scriptingEnabled) {
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(
+ nsHtml5Tokenizer::RAWTEXT, elementName);
} else {
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT;
+ mode = IN_HEAD_NOSCRIPT;
}
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case SCRIPT: {
startTagScriptInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_STYLE:
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case STYLE:
+ case NOFRAMES: {
startTagGenericRawText(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case HEAD: {
errFooSeenWhenFooOpen(name);
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
startTagTemplateInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
pop();
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
NS_HTML5_CONTINUE(starttagloop);
}
}
}
inheadloop_end: ;
}
- case NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT: {
+ case IN_HEAD_NOSCRIPT: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND: {
+ case LINK_OR_BASEFONT_OR_BGSOUND: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_META: {
+ case META: {
checkMetaCharset(attributes);
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_STYLE:
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case STYLE:
+ case NOFRAMES: {
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case HEAD: {
errFooSeenWhenFooOpen(name);
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case NOSCRIPT: {
errFooSeenWhenFooOpen(name);
NS_HTML5_BREAK(starttagloop);
}
default: {
errBadStartTagInHead(name);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP: {
+ case IN_COLUMN_GROUP: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_COL: {
+ case COL: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
startTagTemplateInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
- if (!currentPtr || stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (!currentPtr || stack[currentPtr]->getGroup() == TEMPLATE) {
MOZ_ASSERT(fragment || isTemplateContents());
errGarbageInColgroup();
NS_HTML5_BREAK(starttagloop);
}
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE: {
+ case IN_SELECT_IN_TABLE: {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case CAPTION:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR:
+ case TD_OR_TH:
+ case TABLE: {
errStartTagWithSelectOpen(name);
eltPos = findLastInTableScope(nsHtml5Atoms::select);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
NS_HTML5_BREAK(starttagloop);
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_SELECT: {
+ case IN_SELECT: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_OPTION: {
+ case OPTION: {
if (isCurrent(nsHtml5Atoms::option)) {
pop();
}
appendToCurrentNodeAndPushElement(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_OPTGROUP: {
+ case OPTGROUP: {
if (isCurrent(nsHtml5Atoms::option)) {
pop();
}
if (isCurrent(nsHtml5Atoms::optgroup)) {
pop();
}
appendToCurrentNodeAndPushElement(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SELECT: {
+ case SELECT: {
errStartSelectWhereEndSelectExpected();
eltPos = findLastInTableScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
errNoSelectInTableScope();
NS_HTML5_BREAK(starttagloop);
} else {
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
NS_HTML5_BREAK(starttagloop);
}
}
- case NS_HTML5TREE_BUILDER_INPUT:
- case NS_HTML5TREE_BUILDER_TEXTAREA:
- case NS_HTML5TREE_BUILDER_KEYGEN: {
+ case INPUT:
+ case TEXTAREA:
+ case KEYGEN: {
errStartTagWithSelectOpen(name);
eltPos = findLastInTableScope(nsHtml5Atoms::select);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
NS_HTML5_BREAK(starttagloop);
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case SCRIPT: {
startTagScriptInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
startTagTemplateInHead(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY: {
+ case AFTER_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
default: {
errStrayStartTag(name);
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_FRAMESET: {
+ case IN_FRAMESET: {
switch(group) {
- case NS_HTML5TREE_BUILDER_FRAMESET: {
+ case FRAMESET: {
appendToCurrentNodeAndPushElement(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_FRAME: {
+ case FRAME: {
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_AFTER_FRAMESET: {
+ case AFTER_FRAMESET: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case NOFRAMES: {
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_INITIAL: {
+ case INITIAL: {
errStartTagWithoutDoctype();
documentModeInternal(QUIRKS_MODE, nullptr, nullptr, false);
- mode = NS_HTML5TREE_BUILDER_BEFORE_HTML;
+ mode = BEFORE_HTML;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HTML: {
+ case BEFORE_HTML: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
if (attributes == nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES) {
appendHtmlElementToDocumentAndPush();
} else {
appendHtmlElementToDocumentAndPush(attributes);
}
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
appendHtmlElementToDocumentAndPush();
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
+ case BEFORE_HEAD: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case HEAD: {
appendToCurrentNodeAndPushHeadElement(attributes);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
appendToCurrentNodeAndPushHeadElement(nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_HEAD: {
+ case AFTER_HEAD: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BODY: {
+ case BODY: {
if (!attributes->getLength()) {
appendToCurrentNodeAndPushBodyElement();
} else {
appendToCurrentNodeAndPushBodyElement(attributes);
}
framesetOk = false;
- mode = NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = IN_BODY;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_FRAMESET: {
+ case FRAMESET: {
appendToCurrentNodeAndPushElement(elementName, attributes);
- mode = NS_HTML5TREE_BUILDER_IN_FRAMESET;
+ mode = IN_FRAMESET;
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
errFooBetweenHeadAndBody(name);
pushHeadPointerOntoStack();
nsHtml5StackNode* headOnStack = stack[currentPtr];
startTagTemplateInHead(elementName, attributes);
removeFromStack(headOnStack);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_BASE:
- case NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND: {
+ case BASE:
+ case LINK_OR_BASEFONT_OR_BGSOUND: {
errFooBetweenHeadAndBody(name);
pushHeadPointerOntoStack();
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
pop();
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_META: {
+ case META: {
errFooBetweenHeadAndBody(name);
checkMetaCharset(attributes);
pushHeadPointerOntoStack();
appendVoidElementToCurrentMayFoster(elementName, attributes);
selfClosing = false;
pop();
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_SCRIPT: {
+ case SCRIPT: {
errFooBetweenHeadAndBody(name);
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_SCRIPT_DATA, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(
+ nsHtml5Tokenizer::SCRIPT_DATA, elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_STYLE:
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case STYLE:
+ case NOFRAMES: {
errFooBetweenHeadAndBody(name);
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_TITLE: {
+ case TITLE: {
errFooBetweenHeadAndBody(name);
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RCDATA, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RCDATA,
+ elementName);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case HEAD: {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
default: {
appendToCurrentNodeAndPushBodyElement();
- mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
+ mode = FRAMESET_OK;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY: {
+ case AFTER_AFTER_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
default: {
errStrayStartTag(name);
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET: {
+ case AFTER_AFTER_FRAMESET: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
errStrayStartTag(name);
if (!fragment && !isTemplateContents()) {
addAttributesToHtml(attributes);
attributes = nullptr;
}
NS_HTML5_BREAK(starttagloop);
}
- case NS_HTML5TREE_BUILDER_NOFRAMES: {
+ case NOFRAMES: {
startTagGenericRawText(elementName, attributes);
attributes = nullptr;
NS_HTML5_BREAK(starttagloop);
}
default: {
errStrayStartTag(name);
NS_HTML5_BREAK(starttagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_TEXT: {
+ case TEXT: {
MOZ_ASSERT(false);
NS_HTML5_BREAK(starttagloop);
}
}
}
starttagloop_end: ;
if (selfClosing) {
errSelfClosing();
@@ -1943,236 +1977,242 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
}
}
void
nsHtml5TreeBuilder::startTagTitleInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes)
{
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RCDATA, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RCDATA,
+ elementName);
}
void
nsHtml5TreeBuilder::startTagGenericRawText(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes)
{
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_RAWTEXT, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::RAWTEXT,
+ elementName);
}
void
nsHtml5TreeBuilder::startTagScriptInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes)
{
appendToCurrentNodeAndPushElementMayFoster(elementName, attributes);
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_TEXT;
- tokenizer->setStateAndEndTagExpectation(NS_HTML5TOKENIZER_SCRIPT_DATA, elementName);
+ mode = TEXT;
+ tokenizer->setStateAndEndTagExpectation(nsHtml5Tokenizer::SCRIPT_DATA,
+ elementName);
}
void
nsHtml5TreeBuilder::startTagTemplateInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes)
{
appendToCurrentNodeAndPushElement(elementName, attributes);
insertMarker();
framesetOk = false;
originalMode = mode;
- mode = NS_HTML5TREE_BUILDER_IN_TEMPLATE;
- pushTemplateMode(NS_HTML5TREE_BUILDER_IN_TEMPLATE);
+ mode = IN_TEMPLATE;
+ pushTemplateMode(IN_TEMPLATE);
}
bool
nsHtml5TreeBuilder::isTemplateContents()
{
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK != findLast(nsHtml5Atoms::template_);
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK !=
+ findLast(nsHtml5Atoms::template_);
}
bool
nsHtml5TreeBuilder::isTemplateModeStackEmpty()
{
return templateModePtr == -1;
}
bool
nsHtml5TreeBuilder::isSpecialParentInForeign(nsHtml5StackNode* stackNode)
{
int32_t ns = stackNode->ns;
- return (kNameSpaceID_XHTML == ns) || (stackNode->isHtmlIntegrationPoint()) || ((kNameSpaceID_MathML == ns) && (stackNode->getGroup() == NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT));
+ return (kNameSpaceID_XHTML == ns) || (stackNode->isHtmlIntegrationPoint()) ||
+ ((kNameSpaceID_MathML == ns) &&
+ (stackNode->getGroup() == MI_MO_MN_MS_MTEXT));
}
nsHtml5String
nsHtml5TreeBuilder::extractCharsetFromContent(nsHtml5String attributeValue,
nsHtml5TreeBuilder* tb)
{
- int32_t charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ int32_t charsetState = CHARSET_INITIAL;
int32_t start = -1;
int32_t end = -1;
autoJArray<char16_t,int32_t> buffer = nsHtml5Portability::newCharArrayFromString(attributeValue);
for (int32_t i = 0; i < buffer.length; i++) {
char16_t c = buffer[i];
switch(charsetState) {
- case NS_HTML5TREE_BUILDER_CHARSET_INITIAL: {
+ case CHARSET_INITIAL: {
switch(c) {
case 'c':
case 'C': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_C;
+ charsetState = CHARSET_C;
continue;
}
default: {
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_C: {
+ case CHARSET_C: {
switch(c) {
case 'h':
case 'H': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_H;
+ charsetState = CHARSET_H;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_H: {
+ case CHARSET_H: {
switch(c) {
case 'a':
case 'A': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_A;
+ charsetState = CHARSET_A;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_A: {
+ case CHARSET_A: {
switch(c) {
case 'r':
case 'R': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_R;
+ charsetState = CHARSET_R;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_R: {
+ case CHARSET_R: {
switch(c) {
case 's':
case 'S': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_S;
+ charsetState = CHARSET_S;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_S: {
+ case CHARSET_S: {
switch(c) {
case 'e':
case 'E': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_E;
+ charsetState = CHARSET_E;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_E: {
+ case CHARSET_E: {
switch(c) {
case 't':
case 'T': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_T;
+ charsetState = CHARSET_T;
continue;
}
default: {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_INITIAL;
+ charsetState = CHARSET_INITIAL;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_T: {
+ case CHARSET_T: {
switch(c) {
case '\t':
case '\n':
case '\f':
case '\r':
case ' ': {
continue;
}
case '=': {
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_EQUALS;
+ charsetState = CHARSET_EQUALS;
continue;
}
default: {
return nullptr;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_EQUALS: {
+ case CHARSET_EQUALS: {
switch(c) {
case '\t':
case '\n':
case '\f':
case '\r':
case ' ': {
continue;
}
case '\'': {
start = i + 1;
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_SINGLE_QUOTED;
+ charsetState = CHARSET_SINGLE_QUOTED;
continue;
}
case '\"': {
start = i + 1;
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_DOUBLE_QUOTED;
+ charsetState = CHARSET_DOUBLE_QUOTED;
continue;
}
default: {
start = i;
- charsetState = NS_HTML5TREE_BUILDER_CHARSET_UNQUOTED;
+ charsetState = CHARSET_UNQUOTED;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_SINGLE_QUOTED: {
+ case CHARSET_SINGLE_QUOTED: {
switch(c) {
case '\'': {
end = i;
NS_HTML5_BREAK(charsetloop);
}
default: {
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_DOUBLE_QUOTED: {
+ case CHARSET_DOUBLE_QUOTED: {
switch(c) {
case '\"': {
end = i;
NS_HTML5_BREAK(charsetloop);
}
default: {
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_CHARSET_UNQUOTED: {
+ case CHARSET_UNQUOTED: {
switch(c) {
case '\t':
case '\n':
case '\f':
case '\r':
case ' ':
case ';': {
end = i;
@@ -2256,498 +2296,500 @@ nsHtml5TreeBuilder::endTag(nsHtml5Elemen
NS_HTML5_BREAK(endtagloop);
}
if (stack[--eltPos]->ns == kNameSpaceID_XHTML) {
break;
}
}
}
switch(mode) {
- case NS_HTML5TREE_BUILDER_IN_TEMPLATE: {
+ case IN_TEMPLATE: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
break;
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_IN_ROW: {
+ case IN_ROW: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TR: {
- eltPos = findLastOrRoot(NS_HTML5TREE_BUILDER_TR);
+ case TR: {
+ eltPos = findLastOrRoot(nsHtml5TreeBuilder::TR);
if (!eltPos) {
MOZ_ASSERT(fragment || isTemplateContents());
errNoTableRowToClose();
NS_HTML5_BREAK(endtagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TABLE: {
- eltPos = findLastOrRoot(NS_HTML5TREE_BUILDER_TR);
+ case TABLE: {
+ eltPos = findLastOrRoot(nsHtml5TreeBuilder::TR);
if (!eltPos) {
MOZ_ASSERT(fragment || isTemplateContents());
errNoTableRowToClose();
NS_HTML5_BREAK(endtagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
- if (findLastInTableScope(name) == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ case TBODY_OR_THEAD_OR_TFOOT: {
+ if (findLastInTableScope(name) ==
+ nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
- eltPos = findLastOrRoot(NS_HTML5TREE_BUILDER_TR);
+ eltPos = findLastOrRoot(nsHtml5TreeBuilder::TR);
if (!eltPos) {
MOZ_ASSERT(fragment || isTemplateContents());
errNoTableRowToClose();
NS_HTML5_BREAK(endtagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case BODY:
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case HTML:
+ case TD_OR_TH: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_TABLE_BODY: {
+ case IN_TABLE_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
+ case TBODY_OR_THEAD_OR_TFOOT: {
eltPos = findLastOrRoot(name);
if (!eltPos) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case TABLE: {
eltPos = findLastInTableScopeOrRootTemplateTbodyTheadTfoot();
- if (!eltPos || stack[eltPos]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (!eltPos || stack[eltPos]->getGroup() == TEMPLATE) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
clearStackBackTo(eltPos);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_TR: {
+ case BODY:
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case HTML:
+ case TD_OR_TH:
+ case TR: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_TABLE: {
+ case IN_TABLE: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case TABLE: {
eltPos = findLast(nsHtml5Atoms::table);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_TR: {
+ case BODY:
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case HTML:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TD_OR_TH:
+ case TR: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
break;
}
default: {
errStrayEndTag(name);
}
}
}
- case NS_HTML5TREE_BUILDER_IN_CAPTION: {
+ case IN_CAPTION: {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION: {
+ case CAPTION: {
eltPos = findLastInTableScope(nsHtml5Atoms::caption);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && currentPtr != eltPos) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TABLE: {
+ case TABLE: {
errTableClosedWhileCaptionOpen();
eltPos = findLastInTableScope(nsHtml5Atoms::caption);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && currentPtr != eltPos) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_TR: {
+ case BODY:
+ case COL:
+ case COLGROUP:
+ case HTML:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TD_OR_TH:
+ case TR: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_CELL: {
+ case IN_CELL: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case TD_OR_TH: {
eltPos = findLastInTableScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ mode = IN_ROW;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TABLE:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR: {
- if (findLastInTableScope(name) == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ case TABLE:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR: {
+ if (findLastInTableScope(name) ==
+ nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(name == nsHtml5Atoms::tbody || name == nsHtml5Atoms::tfoot || name == nsHtml5Atoms::thead || fragment || isTemplateContents());
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
closeTheCell(findLastInTableScopeTdTh());
continue;
}
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_COL:
- case NS_HTML5TREE_BUILDER_COLGROUP:
- case NS_HTML5TREE_BUILDER_HTML: {
+ case BODY:
+ case CAPTION:
+ case COL:
+ case COLGROUP:
+ case HTML: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_FRAMESET_OK:
- case NS_HTML5TREE_BUILDER_IN_BODY: {
+ case FRAMESET_OK:
+ case IN_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_BODY: {
+ case BODY: {
if (!isSecondOnStackBody()) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
MOZ_ASSERT(currentPtr >= 1);
if (MOZ_UNLIKELY(mViewSource)) {
for (int32_t i = 2; i <= currentPtr; i++) {
switch(stack[i]->getGroup()) {
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_OPTGROUP:
- case NS_HTML5TREE_BUILDER_OPTION:
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_RB_OR_RTC:
- case NS_HTML5TREE_BUILDER_RT_OR_RP:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT: {
+ case DD_OR_DT:
+ case LI:
+ case OPTGROUP:
+ case OPTION:
+ case P:
+ case RB_OR_RTC:
+ case RT_OR_RP:
+ case TD_OR_TH:
+ case TBODY_OR_THEAD_OR_TFOOT: {
break;
}
default: {
errEndWithUnclosedElements(name);
NS_HTML5_BREAK(uncloseloop1);
}
}
}
uncloseloop1_end: ;
}
- mode = NS_HTML5TREE_BUILDER_AFTER_BODY;
+ mode = AFTER_BODY;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
if (!isSecondOnStackBody()) {
MOZ_ASSERT(fragment || isTemplateContents());
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
if (MOZ_UNLIKELY(mViewSource)) {
for (int32_t i = 0; i <= currentPtr; i++) {
switch(stack[i]->getGroup()) {
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_RB_OR_RTC:
- case NS_HTML5TREE_BUILDER_RT_OR_RP:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TD_OR_TH:
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_HTML: {
+ case DD_OR_DT:
+ case LI:
+ case P:
+ case RB_OR_RTC:
+ case RT_OR_RP:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TD_OR_TH:
+ case BODY:
+ case HTML: {
break;
}
default: {
errEndWithUnclosedElements(name);
NS_HTML5_BREAK(uncloseloop2);
}
}
}
uncloseloop2_end: ;
}
- mode = NS_HTML5TREE_BUILDER_AFTER_BODY;
+ mode = AFTER_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
- case NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL:
- case NS_HTML5TREE_BUILDER_PRE_OR_LISTING:
- case NS_HTML5TREE_BUILDER_FIELDSET:
- case NS_HTML5TREE_BUILDER_BUTTON:
- case NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY: {
+ case DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
+ case UL_OR_OL_OR_DL:
+ case PRE_OR_LISTING:
+ case FIELDSET:
+ case BUTTON:
+ case ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY: {
eltPos = findLastInScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
} else {
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_FORM: {
+ case FORM: {
if (!isTemplateContents()) {
if (!formPointer) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
formPointer = nullptr;
eltPos = findLastInScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
removeFromStack(eltPos);
NS_HTML5_BREAK(endtagloop);
} else {
eltPos = findLastInScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
NS_HTML5_BREAK(endtagloop);
}
}
- case NS_HTML5TREE_BUILDER_P: {
+ case P: {
eltPos = findLastInButtonScope(nsHtml5Atoms::p);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errNoElementToCloseButEndTagSeen(nsHtml5Atoms::p);
if (isInForeign()) {
errHtmlStartTagInForeignContext(name);
while (currentPtr >= 0 && stack[currentPtr]->ns != kNameSpaceID_XHTML) {
pop();
}
}
appendVoidElementToCurrentMayFoster(elementName, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
NS_HTML5_BREAK(endtagloop);
}
generateImpliedEndTagsExceptFor(nsHtml5Atoms::p);
- MOZ_ASSERT(eltPos != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK);
+ MOZ_ASSERT(eltPos != nsHtml5TreeBuilder::NOT_FOUND_ON_STACK);
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_LI: {
+ case LI: {
eltPos = findLastInListScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errNoElementToCloseButEndTagSeen(name);
} else {
generateImpliedEndTagsExceptFor(name);
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_DD_OR_DT: {
+ case DD_OR_DT: {
eltPos = findLastInScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errNoElementToCloseButEndTagSeen(name);
} else {
generateImpliedEndTagsExceptFor(name);
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6: {
+ case H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6: {
eltPos = findLastInScopeHn();
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
} else {
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_OBJECT:
- case NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET: {
+ case OBJECT:
+ case MARQUEE_OR_APPLET: {
eltPos = findLastInScope(name);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(name);
} else {
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(name)) {
errUnclosedElements(eltPos, name);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_BR: {
+ case BR: {
errEndTagBr();
if (isInForeign()) {
errHtmlStartTagInForeignContext(name);
while (currentPtr >= 0 && stack[currentPtr]->ns != kNameSpaceID_XHTML) {
pop();
}
}
reconstructTheActiveFormattingElements();
appendVoidElementToCurrentMayFoster(elementName, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
break;
}
- case NS_HTML5TREE_BUILDER_AREA_OR_WBR:
+ case AREA_OR_WBR:
#ifdef ENABLE_VOID_MENUITEM
- case NS_HTML5TREE_BUILDER_MENUITEM:
+ case MENUITEM:
#endif
- case NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK:
- case NS_HTML5TREE_BUILDER_EMBED:
- case NS_HTML5TREE_BUILDER_IMG:
- case NS_HTML5TREE_BUILDER_IMAGE:
- case NS_HTML5TREE_BUILDER_INPUT:
- case NS_HTML5TREE_BUILDER_KEYGEN:
- case NS_HTML5TREE_BUILDER_HR:
- case NS_HTML5TREE_BUILDER_ISINDEX:
- case NS_HTML5TREE_BUILDER_IFRAME:
- case NS_HTML5TREE_BUILDER_NOEMBED:
- case NS_HTML5TREE_BUILDER_NOFRAMES:
- case NS_HTML5TREE_BUILDER_SELECT:
- case NS_HTML5TREE_BUILDER_TABLE:
- case NS_HTML5TREE_BUILDER_TEXTAREA: {
+ case PARAM_OR_SOURCE_OR_TRACK:
+ case EMBED:
+ case IMG:
+ case IMAGE:
+ case INPUT:
+ case KEYGEN:
+ case HR:
+ case ISINDEX:
+ case IFRAME:
+ case NOEMBED:
+ case NOFRAMES:
+ case SELECT:
+ case TABLE:
+ case TEXTAREA: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case NOSCRIPT: {
if (scriptingEnabled) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
} else {
}
}
- case NS_HTML5TREE_BUILDER_A:
- case NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
- case NS_HTML5TREE_BUILDER_FONT:
- case NS_HTML5TREE_BUILDER_NOBR: {
+ case A:
+ case B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
+ case FONT:
+ case NOBR: {
if (adoptionAgencyEndTag(name)) {
NS_HTML5_BREAK(endtagloop);
}
}
default: {
if (isCurrent(name)) {
pop();
NS_HTML5_BREAK(endtagloop);
@@ -2768,297 +2810,300 @@ nsHtml5TreeBuilder::endTag(nsHtml5Elemen
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
eltPos--;
}
}
}
}
- case NS_HTML5TREE_BUILDER_IN_HEAD: {
+ case IN_HEAD: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HEAD: {
+ case HEAD: {
pop();
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_BODY: {
+ case BR:
+ case HTML:
+ case BODY: {
pop();
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
continue;
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
endTagTemplateInHead();
NS_HTML5_BREAK(endtagloop);
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT: {
+ case IN_HEAD_NOSCRIPT: {
switch(group) {
- case NS_HTML5TREE_BUILDER_NOSCRIPT: {
+ case NOSCRIPT: {
pop();
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_BR: {
+ case BR: {
errStrayEndTag(name);
pop();
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP: {
+ case IN_COLUMN_GROUP: {
switch(group) {
- case NS_HTML5TREE_BUILDER_COLGROUP: {
- if (!currentPtr || stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ case COLGROUP: {
+ if (!currentPtr ||
+ stack[currentPtr]->getGroup() == nsHtml5TreeBuilder::TEMPLATE) {
MOZ_ASSERT(fragment || isTemplateContents());
errGarbageInColgroup();
NS_HTML5_BREAK(endtagloop);
}
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_COL: {
+ case COL: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
endTagTemplateInHead();
NS_HTML5_BREAK(endtagloop);
}
default: {
- if (!currentPtr || stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (!currentPtr ||
+ stack[currentPtr]->getGroup() == nsHtml5TreeBuilder::TEMPLATE) {
MOZ_ASSERT(fragment || isTemplateContents());
errGarbageInColgroup();
NS_HTML5_BREAK(endtagloop);
}
pop();
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE: {
+ case IN_SELECT_IN_TABLE: {
switch(group) {
- case NS_HTML5TREE_BUILDER_CAPTION:
- case NS_HTML5TREE_BUILDER_TABLE:
- case NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT:
- case NS_HTML5TREE_BUILDER_TR:
- case NS_HTML5TREE_BUILDER_TD_OR_TH: {
+ case CAPTION:
+ case TABLE:
+ case TBODY_OR_THEAD_OR_TFOOT:
+ case TR:
+ case TD_OR_TH: {
errEndTagSeenWithSelectOpen(name);
- if (findLastInTableScope(name) != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (findLastInTableScope(name) !=
+ nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
eltPos = findLastInTableScope(nsHtml5Atoms::select);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
NS_HTML5_BREAK(endtagloop);
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
} else {
NS_HTML5_BREAK(endtagloop);
}
}
default:
; // fall through
}
}
- case NS_HTML5TREE_BUILDER_IN_SELECT: {
+ case IN_SELECT: {
switch(group) {
- case NS_HTML5TREE_BUILDER_OPTION: {
+ case OPTION: {
if (isCurrent(nsHtml5Atoms::option)) {
pop();
NS_HTML5_BREAK(endtagloop);
} else {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
- case NS_HTML5TREE_BUILDER_OPTGROUP: {
+ case OPTGROUP: {
if (isCurrent(nsHtml5Atoms::option) && nsHtml5Atoms::optgroup == stack[currentPtr - 1]->name) {
pop();
}
if (isCurrent(nsHtml5Atoms::optgroup)) {
pop();
} else {
errStrayEndTag(name);
}
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_SELECT: {
+ case SELECT: {
eltPos = findLastInTableScope(nsHtml5Atoms::select);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
MOZ_ASSERT(fragment);
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
endTagTemplateInHead();
NS_HTML5_BREAK(endtagloop);
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_BODY: {
+ case AFTER_BODY: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
+ case HTML: {
if (fragment) {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
} else {
- mode = NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY;
+ mode = AFTER_AFTER_BODY;
NS_HTML5_BREAK(endtagloop);
}
}
default: {
errEndTagAfterBody();
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
continue;
}
}
}
- case NS_HTML5TREE_BUILDER_IN_FRAMESET: {
+ case IN_FRAMESET: {
switch(group) {
- case NS_HTML5TREE_BUILDER_FRAMESET: {
+ case FRAMESET: {
if (!currentPtr) {
MOZ_ASSERT(fragment);
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
pop();
if ((!fragment) && !isCurrent(nsHtml5Atoms::frameset)) {
- mode = NS_HTML5TREE_BUILDER_AFTER_FRAMESET;
+ mode = AFTER_FRAMESET;
}
NS_HTML5_BREAK(endtagloop);
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_FRAMESET: {
+ case AFTER_FRAMESET: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HTML: {
- mode = NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET;
+ case HTML: {
+ mode = AFTER_AFTER_FRAMESET;
NS_HTML5_BREAK(endtagloop);
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_INITIAL: {
+ case INITIAL: {
errEndTagSeenWithoutDoctype();
documentModeInternal(QUIRKS_MODE, nullptr, nullptr, false);
- mode = NS_HTML5TREE_BUILDER_BEFORE_HTML;
+ mode = BEFORE_HTML;
continue;
}
- case NS_HTML5TREE_BUILDER_BEFORE_HTML: {
+ case BEFORE_HTML: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HEAD:
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_BODY: {
+ case HEAD:
+ case BR:
+ case HTML:
+ case BODY: {
appendHtmlElementToDocumentAndPush();
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
continue;
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
+ case BEFORE_HEAD: {
switch(group) {
- case NS_HTML5TREE_BUILDER_HEAD:
- case NS_HTML5TREE_BUILDER_BR:
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_BODY: {
+ case HEAD:
+ case BR:
+ case HTML:
+ case BODY: {
appendToCurrentNodeAndPushHeadElement(nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
continue;
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_HEAD: {
+ case AFTER_HEAD: {
switch(group) {
- case NS_HTML5TREE_BUILDER_TEMPLATE: {
+ case TEMPLATE: {
endTagTemplateInHead();
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_HTML:
- case NS_HTML5TREE_BUILDER_BODY:
- case NS_HTML5TREE_BUILDER_BR: {
+ case HTML:
+ case BODY:
+ case BR: {
appendToCurrentNodeAndPushBodyElement();
- mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
+ mode = FRAMESET_OK;
continue;
}
default: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
}
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY: {
+ case AFTER_AFTER_BODY: {
errStrayEndTag(name);
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
continue;
}
- case NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET: {
+ case AFTER_AFTER_FRAMESET: {
errStrayEndTag(name);
NS_HTML5_BREAK(endtagloop);
}
- case NS_HTML5TREE_BUILDER_TEXT: {
+ case TEXT: {
pop();
- if (originalMode == NS_HTML5TREE_BUILDER_AFTER_HEAD) {
+ if (originalMode == AFTER_HEAD) {
silentPop();
}
mode = originalMode;
NS_HTML5_BREAK(endtagloop);
}
}
}
endtagloop_end: ;
}
void
nsHtml5TreeBuilder::endTagTemplateInHead()
{
int32_t eltPos = findLast(nsHtml5Atoms::template_);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
errStrayEndTag(nsHtml5Atoms::template_);
return;
}
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && !isCurrent(nsHtml5Atoms::template_)) {
errUnclosedElements(eltPos, nsHtml5Atoms::template_);
}
while (currentPtr >= eltPos) {
@@ -3068,124 +3113,126 @@ nsHtml5TreeBuilder::endTagTemplateInHead
popTemplateMode();
resetTheInsertionMode();
}
int32_t
nsHtml5TreeBuilder::findLastInTableScopeOrRootTemplateTbodyTheadTfoot()
{
for (int32_t i = currentPtr; i > 0; i--) {
- if (stack[i]->getGroup() == NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT || stack[i]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE) {
+ if (stack[i]->getGroup() == nsHtml5TreeBuilder::TBODY_OR_THEAD_OR_TFOOT ||
+ stack[i]->getGroup() == nsHtml5TreeBuilder::TEMPLATE) {
return i;
}
}
return 0;
}
int32_t
nsHtml5TreeBuilder::findLast(nsIAtom* name)
{
for (int32_t i = currentPtr; i > 0; i--) {
if (stack[i]->ns == kNameSpaceID_XHTML && stack[i]->name == name) {
return i;
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
int32_t
nsHtml5TreeBuilder::findLastInTableScope(nsIAtom* name)
{
for (int32_t i = currentPtr; i > 0; i--) {
if (stack[i]->ns == kNameSpaceID_XHTML) {
if (stack[i]->name == name) {
return i;
} else if (stack[i]->name == nsHtml5Atoms::table || stack[i]->name == nsHtml5Atoms::template_) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
int32_t
nsHtml5TreeBuilder::findLastInButtonScope(nsIAtom* name)
{
for (int32_t i = currentPtr; i > 0; i--) {
if (stack[i]->ns == kNameSpaceID_XHTML) {
if (stack[i]->name == name) {
return i;
} else if (stack[i]->name == nsHtml5Atoms::button) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
if (stack[i]->isScoping()) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
int32_t
nsHtml5TreeBuilder::findLastInScope(nsIAtom* name)
{
for (int32_t i = currentPtr; i > 0; i--) {
if (stack[i]->ns == kNameSpaceID_XHTML && stack[i]->name == name) {
return i;
} else if (stack[i]->isScoping()) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
int32_t
nsHtml5TreeBuilder::findLastInListScope(nsIAtom* name)
{
for (int32_t i = currentPtr; i > 0; i--) {
if (stack[i]->ns == kNameSpaceID_XHTML) {
if (stack[i]->name == name) {
return i;
} else if (stack[i]->name == nsHtml5Atoms::ul || stack[i]->name == nsHtml5Atoms::ol) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
if (stack[i]->isScoping()) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
int32_t
nsHtml5TreeBuilder::findLastInScopeHn()
{
for (int32_t i = currentPtr; i > 0; i--) {
- if (stack[i]->getGroup() == NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6) {
+ if (stack[i]->getGroup() ==
+ nsHtml5TreeBuilder::H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6) {
return i;
} else if (stack[i]->isScoping()) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
void
nsHtml5TreeBuilder::generateImpliedEndTagsExceptFor(nsIAtom* name)
{
for (; ; ) {
nsHtml5StackNode* node = stack[currentPtr];
switch(node->getGroup()) {
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_OPTION:
- case NS_HTML5TREE_BUILDER_OPTGROUP:
- case NS_HTML5TREE_BUILDER_RB_OR_RTC:
- case NS_HTML5TREE_BUILDER_RT_OR_RP: {
+ case P:
+ case LI:
+ case DD_OR_DT:
+ case OPTION:
+ case OPTGROUP:
+ case RB_OR_RTC:
+ case RT_OR_RP: {
if (node->ns == kNameSpaceID_XHTML && node->name == name) {
return;
}
pop();
continue;
}
default: {
return;
@@ -3194,37 +3241,37 @@ nsHtml5TreeBuilder::generateImpliedEndTa
}
}
void
nsHtml5TreeBuilder::generateImpliedEndTags()
{
for (; ; ) {
switch(stack[currentPtr]->getGroup()) {
- case NS_HTML5TREE_BUILDER_P:
- case NS_HTML5TREE_BUILDER_LI:
- case NS_HTML5TREE_BUILDER_DD_OR_DT:
- case NS_HTML5TREE_BUILDER_OPTION:
- case NS_HTML5TREE_BUILDER_OPTGROUP:
- case NS_HTML5TREE_BUILDER_RB_OR_RTC:
- case NS_HTML5TREE_BUILDER_RT_OR_RP: {
+ case P:
+ case LI:
+ case DD_OR_DT:
+ case OPTION:
+ case OPTGROUP:
+ case RB_OR_RTC:
+ case RT_OR_RP: {
pop();
continue;
}
default: {
return;
}
}
}
}
bool
nsHtml5TreeBuilder::isSecondOnStackBody()
{
- return currentPtr >= 1 && stack[1]->getGroup() == NS_HTML5TREE_BUILDER_BODY;
+ return currentPtr >= 1 && stack[1]->getGroup() == nsHtml5TreeBuilder::BODY;
}
void
nsHtml5TreeBuilder::documentModeInternal(
nsHtml5DocumentMode m,
nsHtml5String publicIdentifier,
nsHtml5String systemIdentifier,
bool html4SpecificAdditionalErrorChecks)
@@ -3299,42 +3346,45 @@ nsHtml5TreeBuilder::closeTheCell(int32_t
generateImpliedEndTags();
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElementsCell(eltPos);
}
while (currentPtr >= eltPos) {
pop();
}
clearTheListOfActiveFormattingElementsUpToTheLastMarker();
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ mode = IN_ROW;
return;
}
int32_t
nsHtml5TreeBuilder::findLastInTableScopeTdTh()
{
for (int32_t i = currentPtr; i > 0; i--) {
nsIAtom* name = stack[i]->name;
if (stack[i]->ns == kNameSpaceID_XHTML) {
if (nsHtml5Atoms::td == name || nsHtml5Atoms::th == name) {
return i;
} else if (name == nsHtml5Atoms::table || name == nsHtml5Atoms::template_) {
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
}
}
- return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
+ return nsHtml5TreeBuilder::NOT_FOUND_ON_STACK;
}
void
nsHtml5TreeBuilder::clearStackBackTo(int32_t eltPos)
{
int32_t eltGroup = stack[eltPos]->getGroup();
while (currentPtr > eltPos) {
- if (stack[currentPtr]->ns == kNameSpaceID_XHTML && stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE && (eltGroup == NS_HTML5TREE_BUILDER_TABLE || eltGroup == NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT || eltGroup == NS_HTML5TREE_BUILDER_TR || !eltPos)) {
+ if (stack[currentPtr]->ns == kNameSpaceID_XHTML &&
+ stack[currentPtr]->getGroup() == TEMPLATE &&
+ (eltGroup == TABLE || eltGroup == TBODY_OR_THEAD_OR_TFOOT ||
+ eltGroup == TR || !eltPos)) {
return;
}
pop();
}
}
void
nsHtml5TreeBuilder::resetTheInsertionMode()
@@ -3348,93 +3398,93 @@ nsHtml5TreeBuilder::resetTheInsertionMod
ns = node->ns;
if (!i) {
if (!(contextNamespace == kNameSpaceID_XHTML && (contextName == nsHtml5Atoms::td || contextName == nsHtml5Atoms::th))) {
if (fragment) {
name = contextName;
ns = contextNamespace;
}
} else {
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
return;
}
}
if (nsHtml5Atoms::select == name) {
int32_t ancestorIndex = i;
while (ancestorIndex > 0) {
nsHtml5StackNode* ancestor = stack[ancestorIndex--];
if (kNameSpaceID_XHTML == ancestor->ns) {
if (nsHtml5Atoms::template_ == ancestor->name) {
break;
}
if (nsHtml5Atoms::table == ancestor->name) {
- mode = NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE;
+ mode = IN_SELECT_IN_TABLE;
return;
}
}
}
- mode = NS_HTML5TREE_BUILDER_IN_SELECT;
+ mode = IN_SELECT;
return;
} else if (nsHtml5Atoms::td == name || nsHtml5Atoms::th == name) {
- mode = NS_HTML5TREE_BUILDER_IN_CELL;
+ mode = IN_CELL;
return;
} else if (nsHtml5Atoms::tr == name) {
- mode = NS_HTML5TREE_BUILDER_IN_ROW;
+ mode = IN_ROW;
return;
} else if (nsHtml5Atoms::tbody == name || nsHtml5Atoms::thead == name || nsHtml5Atoms::tfoot == name) {
- mode = NS_HTML5TREE_BUILDER_IN_TABLE_BODY;
+ mode = IN_TABLE_BODY;
return;
} else if (nsHtml5Atoms::caption == name) {
- mode = NS_HTML5TREE_BUILDER_IN_CAPTION;
+ mode = IN_CAPTION;
return;
} else if (nsHtml5Atoms::colgroup == name) {
- mode = NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP;
+ mode = IN_COLUMN_GROUP;
return;
} else if (nsHtml5Atoms::table == name) {
- mode = NS_HTML5TREE_BUILDER_IN_TABLE;
+ mode = IN_TABLE;
return;
} else if (kNameSpaceID_XHTML != ns) {
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
return;
} else if (nsHtml5Atoms::template_ == name) {
MOZ_ASSERT(templateModePtr >= 0);
mode = templateModeStack[templateModePtr];
return;
} else if (nsHtml5Atoms::head == name) {
if (name == contextName) {
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
} else {
- mode = NS_HTML5TREE_BUILDER_IN_HEAD;
+ mode = IN_HEAD;
}
return;
} else if (nsHtml5Atoms::body == name) {
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
return;
} else if (nsHtml5Atoms::frameset == name) {
- mode = NS_HTML5TREE_BUILDER_IN_FRAMESET;
+ mode = IN_FRAMESET;
return;
} else if (nsHtml5Atoms::html == name) {
if (!headPointer) {
- mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
+ mode = BEFORE_HEAD;
} else {
- mode = NS_HTML5TREE_BUILDER_AFTER_HEAD;
+ mode = AFTER_HEAD;
}
return;
} else if (!i) {
- mode = framesetOk ? NS_HTML5TREE_BUILDER_FRAMESET_OK : NS_HTML5TREE_BUILDER_IN_BODY;
+ mode = framesetOk ? FRAMESET_OK : IN_BODY;
return;
}
}
}
void
nsHtml5TreeBuilder::implicitlyCloseP()
{
int32_t eltPos = findLastInButtonScope(nsHtml5Atoms::p);
- if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
+ if (eltPos == nsHtml5TreeBuilder::NOT_FOUND_ON_STACK) {
return;
}
generateImpliedEndTagsExceptFor(nsHtml5Atoms::p);
if (!!MOZ_UNLIKELY(mViewSource) && eltPos != currentPtr) {
errUnclosedElementsImplied(eltPos, nsHtml5Atoms::p);
}
while (currentPtr >= eltPos) {
pop();
@@ -3794,17 +3844,17 @@ nsHtml5TreeBuilder::findLastOrRoot(int32
return 0;
}
bool
nsHtml5TreeBuilder::addAttributesToBody(nsHtml5HtmlAttributes* attributes)
{
if (currentPtr >= 1) {
nsHtml5StackNode* body = stack[1];
- if (body->getGroup() == NS_HTML5TREE_BUILDER_BODY) {
+ if (body->getGroup() == nsHtml5TreeBuilder::BODY) {
addAttributesToElement(body->node, attributes);
return true;
}
}
return false;
}
void
@@ -3812,17 +3862,17 @@ nsHtml5TreeBuilder::addAttributesToHtml(
{
addAttributesToElement(stack[0]->node, attributes);
}
void
nsHtml5TreeBuilder::pushHeadPointerOntoStack()
{
MOZ_ASSERT(!!headPointer);
- MOZ_ASSERT(mode == NS_HTML5TREE_BUILDER_AFTER_HEAD);
+ MOZ_ASSERT(mode == AFTER_HEAD);
silentPush(new nsHtml5StackNode(nsHtml5ElementName::ELT_HEAD, headPointer));
}
void
nsHtml5TreeBuilder::reconstructTheActiveFormattingElements()
{
if (listPtr == -1) {
@@ -3863,18 +3913,18 @@ nsHtml5TreeBuilder::reconstructTheActive
entry->release();
entryClone->retain();
}
}
void
nsHtml5TreeBuilder::insertIntoFosterParent(nsIContentHandle* child)
{
- int32_t tablePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE);
- int32_t templatePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TEMPLATE);
+ int32_t tablePos = findLastOrRoot(nsHtml5TreeBuilder::TABLE);
+ int32_t templatePos = findLastOrRoot(nsHtml5TreeBuilder::TEMPLATE);
if (templatePos >= tablePos) {
appendElement(child, stack[templatePos]->node);
return;
}
nsHtml5StackNode* node = stack[tablePos];
insertFosterParentedChild(child, node->node, stack[tablePos - 1]->node);
}
@@ -3882,18 +3932,18 @@ nsIContentHandle*
nsHtml5TreeBuilder::createAndInsertFosterParentedElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes)
{
return createAndInsertFosterParentedElement(ns, name, attributes, nullptr);
}
nsIContentHandle*
nsHtml5TreeBuilder::createAndInsertFosterParentedElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form)
{
- int32_t tablePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE);
- int32_t templatePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TEMPLATE);
+ int32_t tablePos = findLastOrRoot(nsHtml5TreeBuilder::TABLE);
+ int32_t templatePos = findLastOrRoot(nsHtml5TreeBuilder::TEMPLATE);
if (templatePos >= tablePos) {
nsIContentHandle* child = createElement(ns, name, attributes, form, stack[templatePos]->node);
appendElement(child, stack[templatePos]->node);
return child;
}
nsHtml5StackNode* node = stack[tablePos];
return createAndInsertFosterParentedElement(ns, name, attributes, form, node->node, stack[tablePos - 1]->node);
}
@@ -4267,26 +4317,27 @@ nsHtml5TreeBuilder::setIsSrcdocDocument(
{
this->isSrcdocDocument = isSrcdocDocument;
}
void
nsHtml5TreeBuilder::flushCharacters()
{
if (charBufferLen > 0) {
- if ((mode == NS_HTML5TREE_BUILDER_IN_TABLE || mode == NS_HTML5TREE_BUILDER_IN_TABLE_BODY || mode == NS_HTML5TREE_BUILDER_IN_ROW) && charBufferContainsNonWhitespace()) {
+ if ((mode == IN_TABLE || mode == IN_TABLE_BODY || mode == IN_ROW) &&
+ charBufferContainsNonWhitespace()) {
errNonSpaceInTable();
reconstructTheActiveFormattingElements();
if (!stack[currentPtr]->isFosterParenting()) {
appendCharacters(currentNode(), charBuffer, 0, charBufferLen);
charBufferLen = 0;
return;
}
- int32_t tablePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TABLE);
- int32_t templatePos = findLastOrRoot(NS_HTML5TREE_BUILDER_TEMPLATE);
+ int32_t tablePos = findLastOrRoot(nsHtml5TreeBuilder::TABLE);
+ int32_t templatePos = findLastOrRoot(nsHtml5TreeBuilder::TEMPLATE);
if (templatePos >= tablePos) {
appendCharacters(stack[templatePos]->node, charBuffer, 0, charBufferLen);
charBufferLen = 0;
return;
}
nsHtml5StackNode* tableElt = stack[tablePos];
insertFosterParentedCharacters(charBuffer, 0, charBufferLen, tableElt->node, stack[tablePos - 1]->node);
charBufferLen = 0;
--- a/parser/html/nsHtml5TreeBuilder.h
+++ b/parser/html/nsHtml5TreeBuilder.h
@@ -54,30 +54,245 @@
#include "nsHtml5PlainTextUtils.h"
#include "nsHtml5ViewSourceUtils.h"
#include "mozilla/Likely.h"
#include "nsIContentHandle.h"
#include "nsHtml5OplessBuilder.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5UTF16Buffer;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5TreeBuilder : public nsAHtml5TreeBuilderState
{
private:
static char16_t REPLACEMENT_CHARACTER[];
+
+ public:
+ static const int32_t OTHER = 0;
+
+ static const int32_t A = 1;
+
+ static const int32_t BASE = 2;
+
+ static const int32_t BODY = 3;
+
+ static const int32_t BR = 4;
+
+ static const int32_t BUTTON = 5;
+
+ static const int32_t CAPTION = 6;
+
+ static const int32_t COL = 7;
+
+ static const int32_t COLGROUP = 8;
+
+ static const int32_t FORM = 9;
+
+ static const int32_t FRAME = 10;
+
+ static const int32_t FRAMESET = 11;
+
+ static const int32_t IMAGE = 12;
+
+ static const int32_t INPUT = 13;
+
+ static const int32_t ISINDEX = 14;
+
+ static const int32_t LI = 15;
+
+ static const int32_t LINK_OR_BASEFONT_OR_BGSOUND = 16;
+
+ static const int32_t MATH = 17;
+
+ static const int32_t META = 18;
+
+ static const int32_t SVG = 19;
+
+ static const int32_t HEAD = 20;
+
+ static const int32_t HR = 22;
+
+ static const int32_t HTML = 23;
+
+ static const int32_t NOBR = 24;
+
+ static const int32_t NOFRAMES = 25;
+
+ static const int32_t NOSCRIPT = 26;
+
+ static const int32_t OPTGROUP = 27;
+
+ static const int32_t OPTION = 28;
+
+ static const int32_t P = 29;
+
+ static const int32_t PLAINTEXT = 30;
+
+ static const int32_t SCRIPT = 31;
+
+ static const int32_t SELECT = 32;
+
+ static const int32_t STYLE = 33;
+
+ static const int32_t TABLE = 34;
+
+ static const int32_t TEXTAREA = 35;
+
+ static const int32_t TITLE = 36;
+
+ static const int32_t TR = 37;
+
+ static const int32_t XMP = 38;
+
+ static const int32_t TBODY_OR_THEAD_OR_TFOOT = 39;
+
+ static const int32_t TD_OR_TH = 40;
+
+ static const int32_t DD_OR_DT = 41;
+
+ static const int32_t H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 = 42;
+
+ static const int32_t MARQUEE_OR_APPLET = 43;
+
+ static const int32_t PRE_OR_LISTING = 44;
+
+ static const int32_t
+ B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U =
+ 45;
+
+ static const int32_t UL_OR_OL_OR_DL = 46;
+
+ static const int32_t IFRAME = 47;
+
+ static const int32_t EMBED = 48;
+
+ static const int32_t AREA_OR_WBR = 49;
+
+ static const int32_t DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU = 50;
+
+ static const int32_t
+ ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY =
+ 51;
+
+ static const int32_t RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR = 52;
+
+ static const int32_t RB_OR_RTC = 53;
+
+ static const int32_t PARAM_OR_SOURCE_OR_TRACK = 55;
+
+ static const int32_t MGLYPH_OR_MALIGNMARK = 56;
+
+ static const int32_t MI_MO_MN_MS_MTEXT = 57;
+
+ static const int32_t ANNOTATION_XML = 58;
+
+ static const int32_t FOREIGNOBJECT_OR_DESC = 59;
+
+ static const int32_t NOEMBED = 60;
+
+ static const int32_t FIELDSET = 61;
+
+ static const int32_t OUTPUT = 62;
+
+ static const int32_t OBJECT = 63;
+
+ static const int32_t FONT = 64;
+
+ static const int32_t KEYGEN = 65;
+
+ static const int32_t MENUITEM = 66;
+
+ static const int32_t TEMPLATE = 67;
+
+ static const int32_t IMG = 68;
+
+ static const int32_t RT_OR_RP = 69;
+
+ private:
+ static const int32_t IN_ROW = 0;
+
+ static const int32_t IN_TABLE_BODY = 1;
+
+ static const int32_t IN_TABLE = 2;
+
+ static const int32_t IN_CAPTION = 3;
+
+ static const int32_t IN_CELL = 4;
+
+ static const int32_t FRAMESET_OK = 5;
+
+ static const int32_t IN_BODY = 6;
+
+ static const int32_t IN_HEAD = 7;
+
+ static const int32_t IN_HEAD_NOSCRIPT = 8;
+
+ static const int32_t IN_COLUMN_GROUP = 9;
+
+ static const int32_t IN_SELECT_IN_TABLE = 10;
+
+ static const int32_t IN_SELECT = 11;
+
+ static const int32_t AFTER_BODY = 12;
+
+ static const int32_t IN_FRAMESET = 13;
+
+ static const int32_t AFTER_FRAMESET = 14;
+
+ static const int32_t INITIAL = 15;
+
+ static const int32_t BEFORE_HTML = 16;
+
+ static const int32_t BEFORE_HEAD = 17;
+
+ static const int32_t AFTER_HEAD = 18;
+
+ static const int32_t AFTER_AFTER_BODY = 19;
+
+ static const int32_t AFTER_AFTER_FRAMESET = 20;
+
+ static const int32_t TEXT = 21;
+
+ static const int32_t IN_TEMPLATE = 22;
+
+ static const int32_t CHARSET_INITIAL = 0;
+
+ static const int32_t CHARSET_C = 1;
+
+ static const int32_t CHARSET_H = 2;
+
+ static const int32_t CHARSET_A = 3;
+
+ static const int32_t CHARSET_R = 4;
+
+ static const int32_t CHARSET_S = 5;
+
+ static const int32_t CHARSET_E = 6;
+
+ static const int32_t CHARSET_T = 7;
+
+ static const int32_t CHARSET_EQUALS = 8;
+
+ static const int32_t CHARSET_SINGLE_QUOTED = 9;
+
+ static const int32_t CHARSET_DOUBLE_QUOTED = 10;
+
+ static const int32_t CHARSET_UNQUOTED = 11;
+
static staticJArray<const char*,int32_t> QUIRKY_PUBLIC_IDS;
+ static const int32_t NOT_FOUND_ON_STACK = INT32_MAX;
+
int32_t mode;
int32_t originalMode;
bool framesetOk;
protected:
nsHtml5Tokenizer* tokenizer;
private:
bool scriptingEnabled;
bool needToDropLF;
@@ -282,116 +497,10 @@ class nsHtml5TreeBuilder : public nsAHtm
int32_t getStackLength();
int32_t getTemplateModeStackLength();
static void initializeStatics();
static void releaseStatics();
#include "nsHtml5TreeBuilderHSupplement.h"
};
-#define NS_HTML5TREE_BUILDER_OTHER 0
-#define NS_HTML5TREE_BUILDER_A 1
-#define NS_HTML5TREE_BUILDER_BASE 2
-#define NS_HTML5TREE_BUILDER_BODY 3
-#define NS_HTML5TREE_BUILDER_BR 4
-#define NS_HTML5TREE_BUILDER_BUTTON 5
-#define NS_HTML5TREE_BUILDER_CAPTION 6
-#define NS_HTML5TREE_BUILDER_COL 7
-#define NS_HTML5TREE_BUILDER_COLGROUP 8
-#define NS_HTML5TREE_BUILDER_FORM 9
-#define NS_HTML5TREE_BUILDER_FRAME 10
-#define NS_HTML5TREE_BUILDER_FRAMESET 11
-#define NS_HTML5TREE_BUILDER_IMAGE 12
-#define NS_HTML5TREE_BUILDER_INPUT 13
-#define NS_HTML5TREE_BUILDER_ISINDEX 14
-#define NS_HTML5TREE_BUILDER_LI 15
-#define NS_HTML5TREE_BUILDER_LINK_OR_BASEFONT_OR_BGSOUND 16
-#define NS_HTML5TREE_BUILDER_MATH 17
-#define NS_HTML5TREE_BUILDER_META 18
-#define NS_HTML5TREE_BUILDER_SVG 19
-#define NS_HTML5TREE_BUILDER_HEAD 20
-#define NS_HTML5TREE_BUILDER_HR 22
-#define NS_HTML5TREE_BUILDER_HTML 23
-#define NS_HTML5TREE_BUILDER_NOBR 24
-#define NS_HTML5TREE_BUILDER_NOFRAMES 25
-#define NS_HTML5TREE_BUILDER_NOSCRIPT 26
-#define NS_HTML5TREE_BUILDER_OPTGROUP 27
-#define NS_HTML5TREE_BUILDER_OPTION 28
-#define NS_HTML5TREE_BUILDER_P 29
-#define NS_HTML5TREE_BUILDER_PLAINTEXT 30
-#define NS_HTML5TREE_BUILDER_SCRIPT 31
-#define NS_HTML5TREE_BUILDER_SELECT 32
-#define NS_HTML5TREE_BUILDER_STYLE 33
-#define NS_HTML5TREE_BUILDER_TABLE 34
-#define NS_HTML5TREE_BUILDER_TEXTAREA 35
-#define NS_HTML5TREE_BUILDER_TITLE 36
-#define NS_HTML5TREE_BUILDER_TR 37
-#define NS_HTML5TREE_BUILDER_XMP 38
-#define NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT 39
-#define NS_HTML5TREE_BUILDER_TD_OR_TH 40
-#define NS_HTML5TREE_BUILDER_DD_OR_DT 41
-#define NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 42
-#define NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET 43
-#define NS_HTML5TREE_BUILDER_PRE_OR_LISTING 44
-#define NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U 45
-#define NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL 46
-#define NS_HTML5TREE_BUILDER_IFRAME 47
-#define NS_HTML5TREE_BUILDER_EMBED 48
-#define NS_HTML5TREE_BUILDER_AREA_OR_WBR 49
-#define NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU 50
-#define NS_HTML5TREE_BUILDER_ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY 51
-#define NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR 52
-#define NS_HTML5TREE_BUILDER_RB_OR_RTC 53
-#define NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE_OR_TRACK 55
-#define NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK 56
-#define NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT 57
-#define NS_HTML5TREE_BUILDER_ANNOTATION_XML 58
-#define NS_HTML5TREE_BUILDER_FOREIGNOBJECT_OR_DESC 59
-#define NS_HTML5TREE_BUILDER_NOEMBED 60
-#define NS_HTML5TREE_BUILDER_FIELDSET 61
-#define NS_HTML5TREE_BUILDER_OUTPUT 62
-#define NS_HTML5TREE_BUILDER_OBJECT 63
-#define NS_HTML5TREE_BUILDER_FONT 64
-#define NS_HTML5TREE_BUILDER_KEYGEN 65
-#define NS_HTML5TREE_BUILDER_MENUITEM 66
-#define NS_HTML5TREE_BUILDER_TEMPLATE 67
-#define NS_HTML5TREE_BUILDER_IMG 68
-#define NS_HTML5TREE_BUILDER_RT_OR_RP 69
-#define NS_HTML5TREE_BUILDER_IN_ROW 0
-#define NS_HTML5TREE_BUILDER_IN_TABLE_BODY 1
-#define NS_HTML5TREE_BUILDER_IN_TABLE 2
-#define NS_HTML5TREE_BUILDER_IN_CAPTION 3
-#define NS_HTML5TREE_BUILDER_IN_CELL 4
-#define NS_HTML5TREE_BUILDER_FRAMESET_OK 5
-#define NS_HTML5TREE_BUILDER_IN_BODY 6
-#define NS_HTML5TREE_BUILDER_IN_HEAD 7
-#define NS_HTML5TREE_BUILDER_IN_HEAD_NOSCRIPT 8
-#define NS_HTML5TREE_BUILDER_IN_COLUMN_GROUP 9
-#define NS_HTML5TREE_BUILDER_IN_SELECT_IN_TABLE 10
-#define NS_HTML5TREE_BUILDER_IN_SELECT 11
-#define NS_HTML5TREE_BUILDER_AFTER_BODY 12
-#define NS_HTML5TREE_BUILDER_IN_FRAMESET 13
-#define NS_HTML5TREE_BUILDER_AFTER_FRAMESET 14
-#define NS_HTML5TREE_BUILDER_INITIAL 15
-#define NS_HTML5TREE_BUILDER_BEFORE_HTML 16
-#define NS_HTML5TREE_BUILDER_BEFORE_HEAD 17
-#define NS_HTML5TREE_BUILDER_AFTER_HEAD 18
-#define NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY 19
-#define NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET 20
-#define NS_HTML5TREE_BUILDER_TEXT 21
-#define NS_HTML5TREE_BUILDER_IN_TEMPLATE 22
-#define NS_HTML5TREE_BUILDER_CHARSET_INITIAL 0
-#define NS_HTML5TREE_BUILDER_CHARSET_C 1
-#define NS_HTML5TREE_BUILDER_CHARSET_H 2
-#define NS_HTML5TREE_BUILDER_CHARSET_A 3
-#define NS_HTML5TREE_BUILDER_CHARSET_R 4
-#define NS_HTML5TREE_BUILDER_CHARSET_S 5
-#define NS_HTML5TREE_BUILDER_CHARSET_E 6
-#define NS_HTML5TREE_BUILDER_CHARSET_T 7
-#define NS_HTML5TREE_BUILDER_CHARSET_EQUALS 8
-#define NS_HTML5TREE_BUILDER_CHARSET_SINGLE_QUOTED 9
-#define NS_HTML5TREE_BUILDER_CHARSET_DOUBLE_QUOTED 10
-#define NS_HTML5TREE_BUILDER_CHARSET_UNQUOTED 11
-#define NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK INT32_MAX
-
-
#endif
--- a/parser/html/nsHtml5TreeBuilderCppSupplement.h
+++ b/parser/html/nsHtml5TreeBuilderCppSupplement.h
@@ -168,17 +168,17 @@ nsHtml5TreeBuilder::createElement(int32_
nsHtml5String integrity =
aAttributes->getValue(nsHtml5AttributeName::ATTR_INTEGRITY);
mSpeculativeLoadQueue.AppendElement()->InitScript(
url,
charset,
type,
crossOrigin,
integrity,
- mode == NS_HTML5TREE_BUILDER_IN_HEAD);
+ mode == nsHtml5TreeBuilder::IN_HEAD);
mCurrentHtmlScriptIsAsyncOrDefer =
aAttributes->contains(nsHtml5AttributeName::ATTR_ASYNC) ||
aAttributes->contains(nsHtml5AttributeName::ATTR_DEFER);
}
} else if (nsHtml5Atoms::link == aName) {
nsHtml5String rel =
aAttributes->getValue(nsHtml5AttributeName::ATTR_REL);
// Not splitting on space here is bogus but the old parser didn't even
@@ -274,17 +274,17 @@ nsHtml5TreeBuilder::createElement(int32_
nsHtml5String integrity =
aAttributes->getValue(nsHtml5AttributeName::ATTR_INTEGRITY);
mSpeculativeLoadQueue.AppendElement()->InitScript(
url,
nullptr,
type,
crossOrigin,
integrity,
- mode == NS_HTML5TREE_BUILDER_IN_HEAD);
+ mode == nsHtml5TreeBuilder::IN_HEAD);
}
} else if (nsHtml5Atoms::style == aName) {
nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement();
NS_ASSERTION(treeOp, "Tree op allocation failed.");
treeOp->Init(eTreeOpSetStyleLineNumber, content, tokenizer->getLineNumber());
nsHtml5String url =
aAttributes->getValue(nsHtml5AttributeName::ATTR_XLINK_HREF);
--- a/parser/html/nsHtml5UTF16Buffer.cpp
+++ b/parser/html/nsHtml5UTF16Buffer.cpp
@@ -36,22 +36,23 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
+#include "nsHtml5AttributeName.h"
+#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
-#include "nsHtml5AttributeName.h"
-#include "nsHtml5ElementName.h"
#include "nsHtml5StackNode.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
#include "nsHtml5UTF16Buffer.h"
int32_t
nsHtml5UTF16Buffer::getStart()
--- a/parser/html/nsHtml5UTF16Buffer.h
+++ b/parser/html/nsHtml5UTF16Buffer.h
@@ -37,24 +37,25 @@
#include "jArray.h"
#include "nsHtml5ArrayCopy.h"
#include "nsAHtml5TreeBuilderState.h"
#include "nsHtml5Atoms.h"
#include "nsHtml5ByteReadable.h"
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
+#include "nsHtml5Portability.h"
class nsHtml5StreamParser;
+class nsHtml5AttributeName;
+class nsHtml5ElementName;
class nsHtml5Tokenizer;
class nsHtml5TreeBuilder;
class nsHtml5MetaScanner;
-class nsHtml5AttributeName;
-class nsHtml5ElementName;
class nsHtml5StateSnapshot;
class nsHtml5Portability;
class nsHtml5UTF16Buffer
{
private:
char16_t* buffer;
@@ -70,12 +71,10 @@ class nsHtml5UTF16Buffer
void adjust(bool lastWasCR);
void setEnd(int32_t end);
static void initializeStatics();
static void releaseStatics();
#include "nsHtml5UTF16BufferHSupplement.h"
};
-
-
#endif