Bug 802895 - Parser changes to support srcdoc attributes for iframes, r=hsivonen
authorJames Kitchener <jkitch.bug@gmail.com>
Fri, 28 Jun 2013 23:13:23 -0400
changeset 136888 693d37696683d2b01144fdb79f44da0f698d0a5e
parent 136887 9b6ae7ea58025b61a54f3cc360f054b1ea659b2c
child 136889 f3c22357f4f70cfafcadcd32395d26246c28aeb2
push id24898
push userphilringnalda@gmail.com
push dateSat, 29 Jun 2013 13:54:45 +0000
treeherdermozilla-central@cbb24a4a96af [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewershsivonen
bugs802895
milestone25.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 802895 - Parser changes to support srcdoc attributes for iframes, r=hsivonen
parser/html/javasrc/AttributeName.java
parser/html/javasrc/TreeBuilder.java
parser/html/nsHtml5AtomList.h
parser/html/nsHtml5AttributeName.cpp
parser/html/nsHtml5AttributeName.h
parser/html/nsHtml5Parser.cpp
parser/html/nsHtml5Parser.h
parser/html/nsHtml5StreamParser.cpp
parser/html/nsHtml5StreamParser.h
parser/html/nsHtml5StringParser.cpp
parser/html/nsHtml5TreeBuilder.cpp
parser/html/nsHtml5TreeBuilder.h
parser/html/nsHtml5TreeBuilderCppSupplement.h
--- a/parser/html/javasrc/AttributeName.java
+++ b/parser/html/javasrc/AttributeName.java
@@ -877,16 +877,17 @@ public final class AttributeName
     public static final AttributeName WIDTHS = new AttributeName(ALL_NO_NS, SAME_LOCAL("widths"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName TARGET = new AttributeName(ALL_NO_NS, SAME_LOCAL("target"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName VALUES = new AttributeName(ALL_NO_NS, SAME_LOCAL("values"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName VALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("valign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
     public static final AttributeName VSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("vspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName POSTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("poster"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName POINTS = new AttributeName(ALL_NO_NS, SAME_LOCAL("points"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName PROMPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("prompt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
+    public static final AttributeName SRCDOC = new AttributeName(ALL_NO_NS, SAME_LOCAL("srcdoc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName SCOPED = new AttributeName(ALL_NO_NS, SAME_LOCAL("scoped"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName STRING = new AttributeName(ALL_NO_NS, SAME_LOCAL("string"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName SCHEME = new AttributeName(ALL_NO_NS, SAME_LOCAL("scheme"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName STROKE = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName RADIUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("radius"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName RESULT = new AttributeName(ALL_NO_NS, SAME_LOCAL("result"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName REPEAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("repeat"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
     public static final AttributeName RSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
@@ -1458,16 +1459,17 @@ public final class AttributeName
     WIDTHS,
     TARGET,
     VALUES,
     VALIGN,
     VSPACE,
     POSTER,
     POINTS,
     PROMPT,
+    SRCDOC,
     SCOPED,
     STRING,
     SCHEME,
     STROKE,
     RADIUS,
     RESULT,
     REPEAT,
     RSPACE,
@@ -2040,16 +2042,17 @@ public final class AttributeName
     219743185,
     220082234,
     221623802,
     221986406,
     222283890,
     223089542,
     223138630,
     223311265,
+    224431494,
     224547358,
     224587256,
     224589550,
     224655650,
     224785518,
     224810917,
     224813302,
     225429618,
--- a/parser/html/javasrc/TreeBuilder.java
+++ b/parser/html/javasrc/TreeBuilder.java
@@ -443,16 +443,18 @@ public abstract class TreeBuilder<T> imp
     private T deepTreeSurrogateParent;
 
     protected @Auto char[] charBuffer;
 
     protected int charBufferLen = 0;
 
     private boolean quirks = false;
 
+    private boolean isSrcdocDocument = false;
+
     // [NOCPP[
 
     private boolean reportingDoctype = true;
 
     private XmlViolationPolicy namePolicy = XmlViolationPolicy.ALTER_INFOSET;
 
     private final Map<String, LocatorImpl> idLocations = new HashMap<String, LocatorImpl>();
 
@@ -4153,16 +4155,31 @@ public abstract class TreeBuilder<T> imp
 
     private boolean isSecondOnStackBody() {
         return currentPtr >= 1 && stack[1].getGroup() == TreeBuilder.BODY;
     }
 
     private void documentModeInternal(DocumentMode m, String publicIdentifier,
             String systemIdentifier, boolean html4SpecificAdditionalErrorChecks)
             throws SAXException {
+
+        if (isSrcdocDocument) {
+            // Srcdoc documents are always rendered in standards mode.
+            quirks = false;
+            if (documentModeHandler != null) {
+                documentModeHandler.documentMode(
+                        DocumentMode.STANDARDS_MODE
+                        // [NOCPP[
+                        , null, null, false
+                // ]NOCPP]
+                );
+            }
+            return;
+        }
+
         quirks = (m == DocumentMode.QUIRKS_MODE);
         if (documentModeHandler != null) {
             documentModeHandler.documentMode(
                     m
                     // [NOCPP[
                     , publicIdentifier, systemIdentifier,
                     html4SpecificAdditionalErrorChecks
             // ]NOCPP]
@@ -5526,16 +5543,20 @@ public abstract class TreeBuilder<T> imp
      *
      * @param scriptingEnabled
      *            the scriptingEnabled to set
      */
     public void setScriptingEnabled(boolean scriptingEnabled) {
         this.scriptingEnabled = scriptingEnabled;
     }
 
+    public void setIsSrcdocDocument(boolean isSrcdocDocument) {
+        this.isSrcdocDocument = isSrcdocDocument;
+    }
+
     // [NOCPP[
 
     /**
      * Sets the doctypeExpectation.
      *
      * @param doctypeExpectation
      *            the doctypeExpectation to set
      */
@@ -5946,21 +5967,25 @@ public abstract class TreeBuilder<T> imp
         errListUnclosedStartTags(eltPos);
     }
 
     private void errStrayDoctype() throws SAXException {
         err("Stray doctype.");
     }
 
     private void errAlmostStandardsDoctype() throws SAXException {
-        err("Almost standards mode doctype. Expected \u201C<!DOCTYPE html>\u201D.");
+        if (!isSrcdocDocument) {
+            err("Almost standards mode doctype. Expected \u201C<!DOCTYPE html>\u201D.");
+        }
     }
 
     private void errQuirkyDoctype() throws SAXException {
-        err("Quirky doctype. Expected \u201C<!DOCTYPE html>\u201D.");
+        if (!isSrcdocDocument) {
+            err("Quirky doctype. Expected \u201C<!DOCTYPE html>\u201D.");
+        }
     }
 
     private void errNonSpaceInTrailer() throws SAXException {
         err("Non-space character in page trailer.");
     }
 
     private void errNonSpaceAfterFrameset() throws SAXException {
         err("Non-space after \u201Cframeset\u201D.");
@@ -5985,17 +6010,19 @@ public abstract class TreeBuilder<T> imp
     private void errFooBetweenHeadAndBody(@Local String name) throws SAXException {
         if (errorHandler == null) {
             return;
         }
         errNoCheck("\u201C" + name + "\u201D element between \u201Chead\u201D and \u201Cbody\u201D.");
     }
 
     private void errStartTagWithoutDoctype() throws SAXException {
-        err("Start tag seen without seeing a doctype first. Expected \u201C<!DOCTYPE html>\u201D.");
+        if (!isSrcdocDocument) {
+            err("Start tag seen without seeing a doctype first. Expected \u201C<!DOCTYPE html>\u201D.");
+        }
     }
 
     private void errNoSelectInTableScope() throws SAXException {
         err("No \u201Cselect\u201D in table scope.");
     }
 
     private void errStartSelectWhereEndSelectExpected() throws SAXException {
         err("\u201Cselect\u201D start tag where end tag expected.");
@@ -6064,17 +6091,19 @@ public abstract class TreeBuilder<T> imp
     private void errStartTagInTableBody(@Local String name) throws SAXException {
         if (errorHandler == null) {
             return;
         }
         errNoCheck("\u201C" + name + "\u201D start tag in table body.");
     }
 
     private void errEndTagSeenWithoutDoctype() throws SAXException {
-        err("End tag seen without seeing a doctype first. Expected \u201C<!DOCTYPE html>\u201D.");
+        if (!isSrcdocDocument) {
+            err("End tag seen without seeing a doctype first. Expected \u201C<!DOCTYPE html>\u201D.");
+        }
     }
 
     private void errEndTagAfterBody() throws SAXException {
         err("Saw an end tag after \u201Cbody\u201D had been closed.");
     }
 
     private void errEndTagSeenWithSelectOpen(@Local String name) throws SAXException {
         if (errorHandler == null) {
--- a/parser/html/nsHtml5AtomList.h
+++ b/parser/html/nsHtml5AtomList.h
@@ -221,16 +221,17 @@ HTML5_ATOM(usemap, "usemap")
 HTML5_ATOM(widths, "widths")
 HTML5_ATOM(target, "target")
 HTML5_ATOM(values, "values")
 HTML5_ATOM(valign, "valign")
 HTML5_ATOM(vspace, "vspace")
 HTML5_ATOM(poster, "poster")
 HTML5_ATOM(points, "points")
 HTML5_ATOM(prompt, "prompt")
+HTML5_ATOM(srcdoc, "srcdoc")
 HTML5_ATOM(scoped, "scoped")
 HTML5_ATOM(string, "string")
 HTML5_ATOM(scheme, "scheme")
 HTML5_ATOM(stroke, "stroke")
 HTML5_ATOM(radius, "radius")
 HTML5_ATOM(result, "result")
 HTML5_ATOM(repeat, "repeat")
 HTML5_ATOM(rspace, "rspace")
--- a/parser/html/nsHtml5AttributeName.cpp
+++ b/parser/html/nsHtml5AttributeName.cpp
@@ -354,16 +354,17 @@ nsHtml5AttributeName* nsHtml5AttributeNa
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_WIDTHS = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_TARGET = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_VALUES = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_VALIGN = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_VSPACE = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_POSTER = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_POINTS = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_PROMPT = nullptr;
+nsHtml5AttributeName* nsHtml5AttributeName::ATTR_SRCDOC = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_SCOPED = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_STRING = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_SCHEME = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_STROKE = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_RADIUS = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_RESULT = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_REPEAT = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_RSPACE = nullptr;
@@ -770,17 +771,17 @@ nsHtml5AttributeName* nsHtml5AttributeNa
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_VERYVERYTHICKMATHSPACE = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_STRIKETHROUGH_POSITION = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_STRIKETHROUGH_THICKNESS = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_EXTERNALRESOURCESREQUIRED = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_GLYPH_ORIENTATION_VERTICAL = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_COLOR_INTERPOLATION_FILTERS = nullptr;
 nsHtml5AttributeName* nsHtml5AttributeName::ATTR_GLYPH_ORIENTATION_HORIZONTAL = nullptr;
 nsHtml5AttributeName** nsHtml5AttributeName::ATTRIBUTE_NAMES = 0;
-static int32_t const ATTRIBUTE_HASHES_DATA[] = { 1153, 1383, 1601, 1793, 1827, 1857, 68600, 69146, 69177, 70237, 70270, 71572, 71669, 72415, 72444, 74846, 74904, 74943, 75001, 75276, 75590, 84742, 84839, 85575, 85963, 85992, 87204, 88074, 88171, 89130, 89163, 3207892, 3283895, 3284791, 3338752, 3358197, 3369562, 3539124, 3562402, 3574260, 3670335, 3696933, 3721879, 135280021, 135346322, 136317019, 136475749, 136548517, 136652214, 136884919, 136902418, 136942992, 137292068, 139120259, 139785574, 142250603, 142314056, 142331176, 142519584, 144752417, 145106895, 146147200, 146765926, 148805544, 149655723, 149809441, 150018784, 150445028, 150813181, 150923321, 152528754, 152536216, 152647366, 152962785, 155219321, 155654904, 157317483, 157350248, 157437941, 157447478, 157604838, 157685404, 157894402, 158315188, 166078431, 169409980, 169700259, 169856932, 170007032, 170409695, 170466488, 170513710, 170608367, 173028944, 173896963, 176090625, 176129212, 179390001, 179489057, 179627464, 179840468, 179849042, 180004216, 181779081, 183027151, 183645319, 183698797, 185922012, 185997252, 188312483, 188675799, 190977533, 190992569, 191006194, 191033518, 191038774, 191096249, 191166163, 191194426, 191522106, 191568039, 200104642, 202506661, 202537381, 202602917, 203070590, 203120766, 203389054, 203690071, 203971238, 203986524, 209040857, 209125756, 212055489, 212322418, 212746849, 213002877, 213055164, 213088023, 213259873, 213273386, 213435118, 213437318, 213438231, 213493071, 213532268, 213542834, 213584431, 213659891, 215285828, 215880731, 216112976, 216684637, 217369699, 217565298, 217576549, 218186795, 219743185, 220082234, 221623802, 221986406, 222283890, 223089542, 223138630, 223311265, 224547358, 224587256, 224589550, 224655650, 224785518, 224810917, 224813302, 225429618, 225432950, 225440869, 236107233, 236709921, 236838947, 237117095, 237143271, 237172455, 237209953, 237354143, 237372743, 237668065, 237703073, 237714273, 239743521, 240512803, 240522627, 240560417, 240656513, 241015715, 241062755, 241065383, 243523041, 245865199, 246261793, 246556195, 246774817, 246923491, 246928419, 246981667, 247014847, 247058369, 247112833, 247118177, 247119137, 247128739, 247316903, 249533729, 250235623, 250269543, 251402351, 252339047, 253260911, 253293679, 254844367, 255547879, 256077281, 256345377, 258124199, 258354465, 258605063, 258744193, 258845603, 258856961, 258926689, 269869248, 270174334, 270709417, 270778994, 270781796, 271102503, 271478858, 271490090, 272870654, 273335275, 273369140, 273924313, 274108530, 274116736, 276818662, 277476156, 279156579, 279349675, 280108533, 280128712, 280132869, 280162403, 280280292, 280413430, 280506130, 280677397, 280678580, 280686710, 280689066, 282736758, 283110901, 283275116, 283823226, 283890012, 284479340, 284606461, 286700477, 286798916, 291557706, 291665349, 291804100, 292138018, 292166446, 292418738, 292451039, 300298041, 300374839, 300597935, 303073389, 303083839, 303266673, 303354997, 303430688, 303576261, 303724281, 303819694, 304242723, 304382625, 306247792, 307227811, 307468786, 307724489, 309671175, 310252031, 310358241, 310373094, 311015256, 313357609, 313683893, 313701861, 313706996, 313707317, 313710350, 314027746, 314038181, 314091299, 314205627, 314233813, 316741830, 316797986, 317486755, 317794164, 320076137, 322657125, 322887778, 323506876, 323572412, 323605180, 325060058, 325320188, 325398738, 325541490, 325671619, 333868843, 336806130, 337212108, 337282686, 337285434, 337585223, 338036037, 338298087, 338566051, 340943551, 341190970, 342995704, 343352124, 343912673, 344585053, 346977248, 347218098, 347262163, 347278576, 347438191, 347655959, 347684788, 347726430, 347727772, 347776035, 347776629, 349500753, 350880161, 350887073, 353384123, 355496998, 355906922, 355979793, 356545959, 358637867, 358905016, 359164318, 359247286, 359350571, 359579447, 365560330, 367399355, 367420285, 367510727, 368013212, 370234760, 370353345, 370710317, 371074566, 371122285, 371194213, 371448425, 371448430, 371545055, 371593469, 371596922, 371758751, 371964792, 372151328, 376550136, 376710172, 376795771, 376826271, 376906556, 380514830, 380774774, 380775037, 381030322, 381136500, 381281631, 381282269, 381285504, 381330595, 381331422, 381335911, 381336484, 383907298, 383917408, 384595009, 384595013, 387799894, 387823201, 392581647, 392584937, 392742684, 392906485, 393003349, 400644707, 400973830, 404428547, 404432113, 404432865, 404469244, 404478897, 404694860, 406887479, 408294949, 408789955, 410022510, 410467324, 410586448, 410945965, 411845275, 414327152, 414327932, 414329781, 414346257, 414346439, 414639928, 414835998, 414894517, 414986533, 417465377, 417465381, 417492216, 418259232, 419310946, 420103495, 420242342, 420380455, 420658662, 420717432, 423183880, 424539259, 425929170, 425972964, 426050649, 426126450, 426142833, 426607922, 437289840, 437347469, 437412335, 437423943, 437455540, 437462252, 437597991, 437617485, 437986305, 437986507, 437986828, 437987072, 438015591, 438034813, 438038966, 438179623, 438347971, 438483573, 438547062, 438895551, 441592676, 442032555, 443548979, 447881379, 447881655, 447881895, 447887844, 448416189, 448445746, 448449012, 450942191, 452816744, 453668677, 454434495, 456610076, 456642844, 456738709, 457544600, 459451897, 459680944, 468058810, 468083581, 470964084, 471470955, 471567278, 472267822, 481177859, 481210627, 481435874, 481455115, 481485378, 481490218, 485105638, 486005878, 486383494, 487988916, 488103783, 490661867, 491574090, 491578272, 493041952, 493441205, 493582844, 493716979, 504577572, 504740359, 505091638, 505592418, 505656212, 509516275, 514998531, 515571132, 515594682, 518712698, 521362273, 526592419, 526807354, 527348842, 538294791, 539214049, 544689535, 545535009, 548544752, 548563346, 548595116, 551679010, 558034099, 560329411, 560356209, 560671018, 560671152, 560692590, 560845442, 569212097, 569474241, 572252718, 572768481, 575326764, 576174758, 576190819, 582099184, 582099438, 582372519, 582558889, 586552164, 591325418, 594231990, 594243961, 605711268, 615672071, 616086845, 621792370, 624879850, 627432831, 640040548, 654392808, 658675477, 659420283, 672891587, 694768102, 705890982, 725543146, 759097578, 761686526, 795383908, 843809551, 878105336, 908643300, 945213471 };
+static int32_t const ATTRIBUTE_HASHES_DATA[] = { 1153, 1383, 1601, 1793, 1827, 1857, 68600, 69146, 69177, 70237, 70270, 71572, 71669, 72415, 72444, 74846, 74904, 74943, 75001, 75276, 75590, 84742, 84839, 85575, 85963, 85992, 87204, 88074, 88171, 89130, 89163, 3207892, 3283895, 3284791, 3338752, 3358197, 3369562, 3539124, 3562402, 3574260, 3670335, 3696933, 3721879, 135280021, 135346322, 136317019, 136475749, 136548517, 136652214, 136884919, 136902418, 136942992, 137292068, 139120259, 139785574, 142250603, 142314056, 142331176, 142519584, 144752417, 145106895, 146147200, 146765926, 148805544, 149655723, 149809441, 150018784, 150445028, 150813181, 150923321, 152528754, 152536216, 152647366, 152962785, 155219321, 155654904, 157317483, 157350248, 157437941, 157447478, 157604838, 157685404, 157894402, 158315188, 166078431, 169409980, 169700259, 169856932, 170007032, 170409695, 170466488, 170513710, 170608367, 173028944, 173896963, 176090625, 176129212, 179390001, 179489057, 179627464, 179840468, 179849042, 180004216, 181779081, 183027151, 183645319, 183698797, 185922012, 185997252, 188312483, 188675799, 190977533, 190992569, 191006194, 191033518, 191038774, 191096249, 191166163, 191194426, 191522106, 191568039, 200104642, 202506661, 202537381, 202602917, 203070590, 203120766, 203389054, 203690071, 203971238, 203986524, 209040857, 209125756, 212055489, 212322418, 212746849, 213002877, 213055164, 213088023, 213259873, 213273386, 213435118, 213437318, 213438231, 213493071, 213532268, 213542834, 213584431, 213659891, 215285828, 215880731, 216112976, 216684637, 217369699, 217565298, 217576549, 218186795, 219743185, 220082234, 221623802, 221986406, 222283890, 223089542, 223138630, 223311265, 224431494, 224547358, 224587256, 224589550, 224655650, 224785518, 224810917, 224813302, 225429618, 225432950, 225440869, 236107233, 236709921, 236838947, 237117095, 237143271, 237172455, 237209953, 237354143, 237372743, 237668065, 237703073, 237714273, 239743521, 240512803, 240522627, 240560417, 240656513, 241015715, 241062755, 241065383, 243523041, 245865199, 246261793, 246556195, 246774817, 246923491, 246928419, 246981667, 247014847, 247058369, 247112833, 247118177, 247119137, 247128739, 247316903, 249533729, 250235623, 250269543, 251402351, 252339047, 253260911, 253293679, 254844367, 255547879, 256077281, 256345377, 258124199, 258354465, 258605063, 258744193, 258845603, 258856961, 258926689, 269869248, 270174334, 270709417, 270778994, 270781796, 271102503, 271478858, 271490090, 272870654, 273335275, 273369140, 273924313, 274108530, 274116736, 276818662, 277476156, 279156579, 279349675, 280108533, 280128712, 280132869, 280162403, 280280292, 280413430, 280506130, 280677397, 280678580, 280686710, 280689066, 282736758, 283110901, 283275116, 283823226, 283890012, 284479340, 284606461, 286700477, 286798916, 291557706, 291665349, 291804100, 292138018, 292166446, 292418738, 292451039, 300298041, 300374839, 300597935, 303073389, 303083839, 303266673, 303354997, 303430688, 303576261, 303724281, 303819694, 304242723, 304382625, 306247792, 307227811, 307468786, 307724489, 309671175, 310252031, 310358241, 310373094, 311015256, 313357609, 313683893, 313701861, 313706996, 313707317, 313710350, 314027746, 314038181, 314091299, 314205627, 314233813, 316741830, 316797986, 317486755, 317794164, 320076137, 322657125, 322887778, 323506876, 323572412, 323605180, 325060058, 325320188, 325398738, 325541490, 325671619, 333868843, 336806130, 337212108, 337282686, 337285434, 337585223, 338036037, 338298087, 338566051, 340943551, 341190970, 342995704, 343352124, 343912673, 344585053, 346977248, 347218098, 347262163, 347278576, 347438191, 347655959, 347684788, 347726430, 347727772, 347776035, 347776629, 349500753, 350880161, 350887073, 353384123, 355496998, 355906922, 355979793, 356545959, 358637867, 358905016, 359164318, 359247286, 359350571, 359579447, 365560330, 367399355, 367420285, 367510727, 368013212, 370234760, 370353345, 370710317, 371074566, 371122285, 371194213, 371448425, 371448430, 371545055, 371593469, 371596922, 371758751, 371964792, 372151328, 376550136, 376710172, 376795771, 376826271, 376906556, 380514830, 380774774, 380775037, 381030322, 381136500, 381281631, 381282269, 381285504, 381330595, 381331422, 381335911, 381336484, 383907298, 383917408, 384595009, 384595013, 387799894, 387823201, 392581647, 392584937, 392742684, 392906485, 393003349, 400644707, 400973830, 404428547, 404432113, 404432865, 404469244, 404478897, 404694860, 406887479, 408294949, 408789955, 410022510, 410467324, 410586448, 410945965, 411845275, 414327152, 414327932, 414329781, 414346257, 414346439, 414639928, 414835998, 414894517, 414986533, 417465377, 417465381, 417492216, 418259232, 419310946, 420103495, 420242342, 420380455, 420658662, 420717432, 423183880, 424539259, 425929170, 425972964, 426050649, 426126450, 426142833, 426607922, 437289840, 437347469, 437412335, 437423943, 437455540, 437462252, 437597991, 437617485, 437986305, 437986507, 437986828, 437987072, 438015591, 438034813, 438038966, 438179623, 438347971, 438483573, 438547062, 438895551, 441592676, 442032555, 443548979, 447881379, 447881655, 447881895, 447887844, 448416189, 448445746, 448449012, 450942191, 452816744, 453668677, 454434495, 456610076, 456642844, 456738709, 457544600, 459451897, 459680944, 468058810, 468083581, 470964084, 471470955, 471567278, 472267822, 481177859, 481210627, 481435874, 481455115, 481485378, 481490218, 485105638, 486005878, 486383494, 487988916, 488103783, 490661867, 491574090, 491578272, 493041952, 493441205, 493582844, 493716979, 504577572, 504740359, 505091638, 505592418, 505656212, 509516275, 514998531, 515571132, 515594682, 518712698, 521362273, 526592419, 526807354, 527348842, 538294791, 539214049, 544689535, 545535009, 548544752, 548563346, 548595116, 551679010, 558034099, 560329411, 560356209, 560671018, 560671152, 560692590, 560845442, 569212097, 569474241, 572252718, 572768481, 575326764, 576174758, 576190819, 582099184, 582099438, 582372519, 582558889, 586552164, 591325418, 594231990, 594243961, 605711268, 615672071, 616086845, 621792370, 624879850, 627432831, 640040548, 654392808, 658675477, 659420283, 672891587, 694768102, 705890982, 725543146, 759097578, 761686526, 795383908, 843809551, 878105336, 908643300, 945213471 };
 staticJArray<int32_t,int32_t> nsHtml5AttributeName::ATTRIBUTE_HASHES = { ATTRIBUTE_HASHES_DATA, MOZ_ARRAY_LENGTH(ATTRIBUTE_HASHES_DATA) };
 void
 nsHtml5AttributeName::initializeStatics()
 {
   ALL_NO_NS = new int32_t[3];
   ALL_NO_NS[0] = kNameSpaceID_None;
   ALL_NO_NS[1] = kNameSpaceID_None;
   ALL_NO_NS[2] = kNameSpaceID_None;
@@ -972,16 +973,17 @@ nsHtml5AttributeName::initializeStatics(
   ATTR_WIDTHS = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::widths), ALL_NO_PREFIX);
   ATTR_TARGET = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::target), ALL_NO_PREFIX);
   ATTR_VALUES = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::values), ALL_NO_PREFIX);
   ATTR_VALIGN = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::valign), ALL_NO_PREFIX);
   ATTR_VSPACE = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::vspace), ALL_NO_PREFIX);
   ATTR_POSTER = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::poster), ALL_NO_PREFIX);
   ATTR_POINTS = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::points), ALL_NO_PREFIX);
   ATTR_PROMPT = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::prompt), ALL_NO_PREFIX);
+  ATTR_SRCDOC = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::srcdoc), ALL_NO_PREFIX);
   ATTR_SCOPED = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::scoped), ALL_NO_PREFIX);
   ATTR_STRING = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::string), ALL_NO_PREFIX);
   ATTR_SCHEME = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::scheme), ALL_NO_PREFIX);
   ATTR_STROKE = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::stroke), ALL_NO_PREFIX);
   ATTR_RADIUS = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::radius), ALL_NO_PREFIX);
   ATTR_RESULT = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::result), ALL_NO_PREFIX);
   ATTR_REPEAT = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::repeat), ALL_NO_PREFIX);
   ATTR_RSPACE = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::rspace), ALL_NO_PREFIX);
@@ -1387,17 +1389,17 @@ nsHtml5AttributeName::initializeStatics(
   ATTR_VERYVERYTHINMATHSPACE = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::veryverythinmathspace), ALL_NO_PREFIX);
   ATTR_VERYVERYTHICKMATHSPACE = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::veryverythickmathspace), ALL_NO_PREFIX);
   ATTR_STRIKETHROUGH_POSITION = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::strikethrough_position), ALL_NO_PREFIX);
   ATTR_STRIKETHROUGH_THICKNESS = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::strikethrough_thickness), ALL_NO_PREFIX);
   ATTR_EXTERNALRESOURCESREQUIRED = new nsHtml5AttributeName(ALL_NO_NS, SVG_DIFFERENT(nsHtml5Atoms::externalresourcesrequired, nsHtml5Atoms::externalResourcesRequired), ALL_NO_PREFIX);
   ATTR_GLYPH_ORIENTATION_VERTICAL = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::glyph_orientation_vertical), ALL_NO_PREFIX);
   ATTR_COLOR_INTERPOLATION_FILTERS = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::color_interpolation_filters), ALL_NO_PREFIX);
   ATTR_GLYPH_ORIENTATION_HORIZONTAL = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::glyph_orientation_horizontal), ALL_NO_PREFIX);
-  ATTRIBUTE_NAMES = new nsHtml5AttributeName*[580];
+  ATTRIBUTE_NAMES = new nsHtml5AttributeName*[581];
   ATTRIBUTE_NAMES[0] = ATTR_D;
   ATTRIBUTE_NAMES[1] = ATTR_K;
   ATTRIBUTE_NAMES[2] = ATTR_R;
   ATTRIBUTE_NAMES[3] = ATTR_X;
   ATTRIBUTE_NAMES[4] = ATTR_Y;
   ATTRIBUTE_NAMES[5] = ATTR_Z;
   ATTRIBUTE_NAMES[6] = ATTR_BY;
   ATTRIBUTE_NAMES[7] = ATTR_CX;
@@ -1553,431 +1555,432 @@ nsHtml5AttributeName::initializeStatics(
   ATTRIBUTE_NAMES[157] = ATTR_WIDTHS;
   ATTRIBUTE_NAMES[158] = ATTR_TARGET;
   ATTRIBUTE_NAMES[159] = ATTR_VALUES;
   ATTRIBUTE_NAMES[160] = ATTR_VALIGN;
   ATTRIBUTE_NAMES[161] = ATTR_VSPACE;
   ATTRIBUTE_NAMES[162] = ATTR_POSTER;
   ATTRIBUTE_NAMES[163] = ATTR_POINTS;
   ATTRIBUTE_NAMES[164] = ATTR_PROMPT;
-  ATTRIBUTE_NAMES[165] = ATTR_SCOPED;
-  ATTRIBUTE_NAMES[166] = ATTR_STRING;
-  ATTRIBUTE_NAMES[167] = ATTR_SCHEME;
-  ATTRIBUTE_NAMES[168] = ATTR_STROKE;
-  ATTRIBUTE_NAMES[169] = ATTR_RADIUS;
-  ATTRIBUTE_NAMES[170] = ATTR_RESULT;
-  ATTRIBUTE_NAMES[171] = ATTR_REPEAT;
-  ATTRIBUTE_NAMES[172] = ATTR_RSPACE;
-  ATTRIBUTE_NAMES[173] = ATTR_ROTATE;
-  ATTRIBUTE_NAMES[174] = ATTR_RQUOTE;
-  ATTRIBUTE_NAMES[175] = ATTR_ALTTEXT;
-  ATTRIBUTE_NAMES[176] = ATTR_ARCHIVE;
-  ATTRIBUTE_NAMES[177] = ATTR_AZIMUTH;
-  ATTRIBUTE_NAMES[178] = ATTR_CLOSURE;
-  ATTRIBUTE_NAMES[179] = ATTR_CHECKED;
-  ATTRIBUTE_NAMES[180] = ATTR_CLASSID;
-  ATTRIBUTE_NAMES[181] = ATTR_CHAROFF;
-  ATTRIBUTE_NAMES[182] = ATTR_BGCOLOR;
-  ATTRIBUTE_NAMES[183] = ATTR_COLSPAN;
-  ATTRIBUTE_NAMES[184] = ATTR_CHARSET;
-  ATTRIBUTE_NAMES[185] = ATTR_COMPACT;
-  ATTRIBUTE_NAMES[186] = ATTR_CONTENT;
-  ATTRIBUTE_NAMES[187] = ATTR_ENCTYPE;
-  ATTRIBUTE_NAMES[188] = ATTR_DATASRC;
-  ATTRIBUTE_NAMES[189] = ATTR_DATAFLD;
-  ATTRIBUTE_NAMES[190] = ATTR_DECLARE;
-  ATTRIBUTE_NAMES[191] = ATTR_DISPLAY;
-  ATTRIBUTE_NAMES[192] = ATTR_DIVISOR;
-  ATTRIBUTE_NAMES[193] = ATTR_DEFAULT;
-  ATTRIBUTE_NAMES[194] = ATTR_DESCENT;
-  ATTRIBUTE_NAMES[195] = ATTR_KERNING;
-  ATTRIBUTE_NAMES[196] = ATTR_HANGING;
-  ATTRIBUTE_NAMES[197] = ATTR_HEADERS;
-  ATTRIBUTE_NAMES[198] = ATTR_ONPASTE;
-  ATTRIBUTE_NAMES[199] = ATTR_ONCLICK;
-  ATTRIBUTE_NAMES[200] = ATTR_OPTIMUM;
-  ATTRIBUTE_NAMES[201] = ATTR_ONBEGIN;
-  ATTRIBUTE_NAMES[202] = ATTR_ONKEYUP;
-  ATTRIBUTE_NAMES[203] = ATTR_ONFOCUS;
-  ATTRIBUTE_NAMES[204] = ATTR_ONERROR;
-  ATTRIBUTE_NAMES[205] = ATTR_ONINPUT;
-  ATTRIBUTE_NAMES[206] = ATTR_ONABORT;
-  ATTRIBUTE_NAMES[207] = ATTR_ONSTART;
-  ATTRIBUTE_NAMES[208] = ATTR_ONRESET;
-  ATTRIBUTE_NAMES[209] = ATTR_OPACITY;
-  ATTRIBUTE_NAMES[210] = ATTR_NOSHADE;
-  ATTRIBUTE_NAMES[211] = ATTR_MINSIZE;
-  ATTRIBUTE_NAMES[212] = ATTR_MAXSIZE;
-  ATTRIBUTE_NAMES[213] = ATTR_LARGEOP;
-  ATTRIBUTE_NAMES[214] = ATTR_UNICODE;
-  ATTRIBUTE_NAMES[215] = ATTR_TARGETX;
-  ATTRIBUTE_NAMES[216] = ATTR_TARGETY;
-  ATTRIBUTE_NAMES[217] = ATTR_VIEWBOX;
-  ATTRIBUTE_NAMES[218] = ATTR_VERSION;
-  ATTRIBUTE_NAMES[219] = ATTR_PATTERN;
-  ATTRIBUTE_NAMES[220] = ATTR_PROFILE;
-  ATTRIBUTE_NAMES[221] = ATTR_SPACING;
-  ATTRIBUTE_NAMES[222] = ATTR_RESTART;
-  ATTRIBUTE_NAMES[223] = ATTR_ROWSPAN;
-  ATTRIBUTE_NAMES[224] = ATTR_SANDBOX;
-  ATTRIBUTE_NAMES[225] = ATTR_SUMMARY;
-  ATTRIBUTE_NAMES[226] = ATTR_STANDBY;
-  ATTRIBUTE_NAMES[227] = ATTR_REPLACE;
-  ATTRIBUTE_NAMES[228] = ATTR_AUTOPLAY;
-  ATTRIBUTE_NAMES[229] = ATTR_ADDITIVE;
-  ATTRIBUTE_NAMES[230] = ATTR_CALCMODE;
-  ATTRIBUTE_NAMES[231] = ATTR_CODETYPE;
-  ATTRIBUTE_NAMES[232] = ATTR_CODEBASE;
-  ATTRIBUTE_NAMES[233] = ATTR_CONTROLS;
-  ATTRIBUTE_NAMES[234] = ATTR_BEVELLED;
-  ATTRIBUTE_NAMES[235] = ATTR_BASELINE;
-  ATTRIBUTE_NAMES[236] = ATTR_EXPONENT;
-  ATTRIBUTE_NAMES[237] = ATTR_EDGEMODE;
-  ATTRIBUTE_NAMES[238] = ATTR_ENCODING;
-  ATTRIBUTE_NAMES[239] = ATTR_GLYPHREF;
-  ATTRIBUTE_NAMES[240] = ATTR_DATETIME;
-  ATTRIBUTE_NAMES[241] = ATTR_DISABLED;
-  ATTRIBUTE_NAMES[242] = ATTR_FONTSIZE;
-  ATTRIBUTE_NAMES[243] = ATTR_KEYTIMES;
-  ATTRIBUTE_NAMES[244] = ATTR_PANOSE_1;
-  ATTRIBUTE_NAMES[245] = ATTR_HREFLANG;
-  ATTRIBUTE_NAMES[246] = ATTR_ONRESIZE;
-  ATTRIBUTE_NAMES[247] = ATTR_ONCHANGE;
-  ATTRIBUTE_NAMES[248] = ATTR_ONBOUNCE;
-  ATTRIBUTE_NAMES[249] = ATTR_ONUNLOAD;
-  ATTRIBUTE_NAMES[250] = ATTR_ONFINISH;
-  ATTRIBUTE_NAMES[251] = ATTR_ONSCROLL;
-  ATTRIBUTE_NAMES[252] = ATTR_OPERATOR;
-  ATTRIBUTE_NAMES[253] = ATTR_OVERFLOW;
-  ATTRIBUTE_NAMES[254] = ATTR_ONSUBMIT;
-  ATTRIBUTE_NAMES[255] = ATTR_ONREPEAT;
-  ATTRIBUTE_NAMES[256] = ATTR_ONSELECT;
-  ATTRIBUTE_NAMES[257] = ATTR_NOTATION;
-  ATTRIBUTE_NAMES[258] = ATTR_NORESIZE;
-  ATTRIBUTE_NAMES[259] = ATTR_MANIFEST;
-  ATTRIBUTE_NAMES[260] = ATTR_MATHSIZE;
-  ATTRIBUTE_NAMES[261] = ATTR_MULTIPLE;
-  ATTRIBUTE_NAMES[262] = ATTR_LONGDESC;
-  ATTRIBUTE_NAMES[263] = ATTR_LANGUAGE;
-  ATTRIBUTE_NAMES[264] = ATTR_TEMPLATE;
-  ATTRIBUTE_NAMES[265] = ATTR_TABINDEX;
-  ATTRIBUTE_NAMES[266] = ATTR_READONLY;
-  ATTRIBUTE_NAMES[267] = ATTR_SELECTED;
-  ATTRIBUTE_NAMES[268] = ATTR_ROWLINES;
-  ATTRIBUTE_NAMES[269] = ATTR_SEAMLESS;
-  ATTRIBUTE_NAMES[270] = ATTR_ROWALIGN;
-  ATTRIBUTE_NAMES[271] = ATTR_STRETCHY;
-  ATTRIBUTE_NAMES[272] = ATTR_REQUIRED;
-  ATTRIBUTE_NAMES[273] = ATTR_XML_BASE;
-  ATTRIBUTE_NAMES[274] = ATTR_XML_LANG;
-  ATTRIBUTE_NAMES[275] = ATTR_X_HEIGHT;
-  ATTRIBUTE_NAMES[276] = ATTR_ARIA_OWNS;
-  ATTRIBUTE_NAMES[277] = ATTR_AUTOFOCUS;
-  ATTRIBUTE_NAMES[278] = ATTR_ARIA_SORT;
-  ATTRIBUTE_NAMES[279] = ATTR_ACCESSKEY;
-  ATTRIBUTE_NAMES[280] = ATTR_ARIA_BUSY;
-  ATTRIBUTE_NAMES[281] = ATTR_ARIA_GRAB;
-  ATTRIBUTE_NAMES[282] = ATTR_AMPLITUDE;
-  ATTRIBUTE_NAMES[283] = ATTR_ARIA_LIVE;
-  ATTRIBUTE_NAMES[284] = ATTR_CLIP_RULE;
-  ATTRIBUTE_NAMES[285] = ATTR_CLIP_PATH;
-  ATTRIBUTE_NAMES[286] = ATTR_EQUALROWS;
-  ATTRIBUTE_NAMES[287] = ATTR_ELEVATION;
-  ATTRIBUTE_NAMES[288] = ATTR_DIRECTION;
-  ATTRIBUTE_NAMES[289] = ATTR_DRAGGABLE;
-  ATTRIBUTE_NAMES[290] = ATTR_FILTERRES;
-  ATTRIBUTE_NAMES[291] = ATTR_FILL_RULE;
-  ATTRIBUTE_NAMES[292] = ATTR_FONTSTYLE;
-  ATTRIBUTE_NAMES[293] = ATTR_FONT_SIZE;
-  ATTRIBUTE_NAMES[294] = ATTR_KEYPOINTS;
-  ATTRIBUTE_NAMES[295] = ATTR_HIDEFOCUS;
-  ATTRIBUTE_NAMES[296] = ATTR_ONMESSAGE;
-  ATTRIBUTE_NAMES[297] = ATTR_INTERCEPT;
-  ATTRIBUTE_NAMES[298] = ATTR_ONDRAGEND;
-  ATTRIBUTE_NAMES[299] = ATTR_ONMOVEEND;
-  ATTRIBUTE_NAMES[300] = ATTR_ONINVALID;
-  ATTRIBUTE_NAMES[301] = ATTR_ONKEYDOWN;
-  ATTRIBUTE_NAMES[302] = ATTR_ONFOCUSIN;
-  ATTRIBUTE_NAMES[303] = ATTR_ONMOUSEUP;
-  ATTRIBUTE_NAMES[304] = ATTR_INPUTMODE;
-  ATTRIBUTE_NAMES[305] = ATTR_ONROWEXIT;
-  ATTRIBUTE_NAMES[306] = ATTR_MATHCOLOR;
-  ATTRIBUTE_NAMES[307] = ATTR_MASKUNITS;
-  ATTRIBUTE_NAMES[308] = ATTR_MAXLENGTH;
-  ATTRIBUTE_NAMES[309] = ATTR_LINEBREAK;
-  ATTRIBUTE_NAMES[310] = ATTR_TRANSFORM;
-  ATTRIBUTE_NAMES[311] = ATTR_V_HANGING;
-  ATTRIBUTE_NAMES[312] = ATTR_VALUETYPE;
-  ATTRIBUTE_NAMES[313] = ATTR_POINTSATZ;
-  ATTRIBUTE_NAMES[314] = ATTR_POINTSATX;
-  ATTRIBUTE_NAMES[315] = ATTR_POINTSATY;
-  ATTRIBUTE_NAMES[316] = ATTR_SYMMETRIC;
-  ATTRIBUTE_NAMES[317] = ATTR_SCROLLING;
-  ATTRIBUTE_NAMES[318] = ATTR_REPEATDUR;
-  ATTRIBUTE_NAMES[319] = ATTR_SELECTION;
-  ATTRIBUTE_NAMES[320] = ATTR_SEPARATOR;
-  ATTRIBUTE_NAMES[321] = ATTR_XML_SPACE;
-  ATTRIBUTE_NAMES[322] = ATTR_AUTOSUBMIT;
-  ATTRIBUTE_NAMES[323] = ATTR_ALPHABETIC;
-  ATTRIBUTE_NAMES[324] = ATTR_ACTIONTYPE;
-  ATTRIBUTE_NAMES[325] = ATTR_ACCUMULATE;
-  ATTRIBUTE_NAMES[326] = ATTR_ARIA_LEVEL;
-  ATTRIBUTE_NAMES[327] = ATTR_COLUMNSPAN;
-  ATTRIBUTE_NAMES[328] = ATTR_CAP_HEIGHT;
-  ATTRIBUTE_NAMES[329] = ATTR_BACKGROUND;
-  ATTRIBUTE_NAMES[330] = ATTR_GLYPH_NAME;
-  ATTRIBUTE_NAMES[331] = ATTR_GROUPALIGN;
-  ATTRIBUTE_NAMES[332] = ATTR_FONTFAMILY;
-  ATTRIBUTE_NAMES[333] = ATTR_FONTWEIGHT;
-  ATTRIBUTE_NAMES[334] = ATTR_FONT_STYLE;
-  ATTRIBUTE_NAMES[335] = ATTR_KEYSPLINES;
-  ATTRIBUTE_NAMES[336] = ATTR_HTTP_EQUIV;
-  ATTRIBUTE_NAMES[337] = ATTR_ONACTIVATE;
-  ATTRIBUTE_NAMES[338] = ATTR_OCCURRENCE;
-  ATTRIBUTE_NAMES[339] = ATTR_IRRELEVANT;
-  ATTRIBUTE_NAMES[340] = ATTR_ONDBLCLICK;
-  ATTRIBUTE_NAMES[341] = ATTR_ONDRAGDROP;
-  ATTRIBUTE_NAMES[342] = ATTR_ONKEYPRESS;
-  ATTRIBUTE_NAMES[343] = ATTR_ONROWENTER;
-  ATTRIBUTE_NAMES[344] = ATTR_ONDRAGOVER;
-  ATTRIBUTE_NAMES[345] = ATTR_ONFOCUSOUT;
-  ATTRIBUTE_NAMES[346] = ATTR_ONMOUSEOUT;
-  ATTRIBUTE_NAMES[347] = ATTR_NUMOCTAVES;
-  ATTRIBUTE_NAMES[348] = ATTR_MARKER_MID;
-  ATTRIBUTE_NAMES[349] = ATTR_MARKER_END;
-  ATTRIBUTE_NAMES[350] = ATTR_TEXTLENGTH;
-  ATTRIBUTE_NAMES[351] = ATTR_VISIBILITY;
-  ATTRIBUTE_NAMES[352] = ATTR_VIEWTARGET;
-  ATTRIBUTE_NAMES[353] = ATTR_VERT_ADV_Y;
-  ATTRIBUTE_NAMES[354] = ATTR_PATHLENGTH;
-  ATTRIBUTE_NAMES[355] = ATTR_REPEAT_MAX;
-  ATTRIBUTE_NAMES[356] = ATTR_RADIOGROUP;
-  ATTRIBUTE_NAMES[357] = ATTR_STOP_COLOR;
-  ATTRIBUTE_NAMES[358] = ATTR_SEPARATORS;
-  ATTRIBUTE_NAMES[359] = ATTR_REPEAT_MIN;
-  ATTRIBUTE_NAMES[360] = ATTR_ROWSPACING;
-  ATTRIBUTE_NAMES[361] = ATTR_ZOOMANDPAN;
-  ATTRIBUTE_NAMES[362] = ATTR_XLINK_TYPE;
-  ATTRIBUTE_NAMES[363] = ATTR_XLINK_ROLE;
-  ATTRIBUTE_NAMES[364] = ATTR_XLINK_HREF;
-  ATTRIBUTE_NAMES[365] = ATTR_XLINK_SHOW;
-  ATTRIBUTE_NAMES[366] = ATTR_ACCENTUNDER;
-  ATTRIBUTE_NAMES[367] = ATTR_ARIA_SECRET;
-  ATTRIBUTE_NAMES[368] = ATTR_ARIA_ATOMIC;
-  ATTRIBUTE_NAMES[369] = ATTR_ARIA_HIDDEN;
-  ATTRIBUTE_NAMES[370] = ATTR_ARIA_FLOWTO;
-  ATTRIBUTE_NAMES[371] = ATTR_ARABIC_FORM;
-  ATTRIBUTE_NAMES[372] = ATTR_CELLPADDING;
-  ATTRIBUTE_NAMES[373] = ATTR_CELLSPACING;
-  ATTRIBUTE_NAMES[374] = ATTR_COLUMNWIDTH;
-  ATTRIBUTE_NAMES[375] = ATTR_CROSSORIGIN;
-  ATTRIBUTE_NAMES[376] = ATTR_COLUMNALIGN;
-  ATTRIBUTE_NAMES[377] = ATTR_COLUMNLINES;
-  ATTRIBUTE_NAMES[378] = ATTR_CONTEXTMENU;
-  ATTRIBUTE_NAMES[379] = ATTR_BASEPROFILE;
-  ATTRIBUTE_NAMES[380] = ATTR_FONT_FAMILY;
-  ATTRIBUTE_NAMES[381] = ATTR_FRAMEBORDER;
-  ATTRIBUTE_NAMES[382] = ATTR_FILTERUNITS;
-  ATTRIBUTE_NAMES[383] = ATTR_FLOOD_COLOR;
-  ATTRIBUTE_NAMES[384] = ATTR_FONT_WEIGHT;
-  ATTRIBUTE_NAMES[385] = ATTR_HORIZ_ADV_X;
-  ATTRIBUTE_NAMES[386] = ATTR_ONDRAGLEAVE;
-  ATTRIBUTE_NAMES[387] = ATTR_ONMOUSEMOVE;
-  ATTRIBUTE_NAMES[388] = ATTR_ORIENTATION;
-  ATTRIBUTE_NAMES[389] = ATTR_ONMOUSEDOWN;
-  ATTRIBUTE_NAMES[390] = ATTR_ONMOUSEOVER;
-  ATTRIBUTE_NAMES[391] = ATTR_ONDRAGENTER;
-  ATTRIBUTE_NAMES[392] = ATTR_IDEOGRAPHIC;
-  ATTRIBUTE_NAMES[393] = ATTR_ONBEFORECUT;
-  ATTRIBUTE_NAMES[394] = ATTR_ONFORMINPUT;
-  ATTRIBUTE_NAMES[395] = ATTR_ONDRAGSTART;
-  ATTRIBUTE_NAMES[396] = ATTR_ONMOVESTART;
-  ATTRIBUTE_NAMES[397] = ATTR_MARKERUNITS;
-  ATTRIBUTE_NAMES[398] = ATTR_MATHVARIANT;
-  ATTRIBUTE_NAMES[399] = ATTR_MARGINWIDTH;
-  ATTRIBUTE_NAMES[400] = ATTR_MARKERWIDTH;
-  ATTRIBUTE_NAMES[401] = ATTR_TEXT_ANCHOR;
-  ATTRIBUTE_NAMES[402] = ATTR_TABLEVALUES;
-  ATTRIBUTE_NAMES[403] = ATTR_SCRIPTLEVEL;
-  ATTRIBUTE_NAMES[404] = ATTR_REPEATCOUNT;
-  ATTRIBUTE_NAMES[405] = ATTR_STITCHTILES;
-  ATTRIBUTE_NAMES[406] = ATTR_STARTOFFSET;
-  ATTRIBUTE_NAMES[407] = ATTR_SCROLLDELAY;
-  ATTRIBUTE_NAMES[408] = ATTR_XMLNS_XLINK;
-  ATTRIBUTE_NAMES[409] = ATTR_XLINK_TITLE;
-  ATTRIBUTE_NAMES[410] = ATTR_ARIA_INVALID;
-  ATTRIBUTE_NAMES[411] = ATTR_ARIA_PRESSED;
-  ATTRIBUTE_NAMES[412] = ATTR_ARIA_CHECKED;
-  ATTRIBUTE_NAMES[413] = ATTR_AUTOCOMPLETE;
-  ATTRIBUTE_NAMES[414] = ATTR_ARIA_SETSIZE;
-  ATTRIBUTE_NAMES[415] = ATTR_ARIA_CHANNEL;
-  ATTRIBUTE_NAMES[416] = ATTR_EQUALCOLUMNS;
-  ATTRIBUTE_NAMES[417] = ATTR_DISPLAYSTYLE;
-  ATTRIBUTE_NAMES[418] = ATTR_DATAFORMATAS;
-  ATTRIBUTE_NAMES[419] = ATTR_FILL_OPACITY;
-  ATTRIBUTE_NAMES[420] = ATTR_FONT_VARIANT;
-  ATTRIBUTE_NAMES[421] = ATTR_FONT_STRETCH;
-  ATTRIBUTE_NAMES[422] = ATTR_FRAMESPACING;
-  ATTRIBUTE_NAMES[423] = ATTR_KERNELMATRIX;
-  ATTRIBUTE_NAMES[424] = ATTR_ONDEACTIVATE;
-  ATTRIBUTE_NAMES[425] = ATTR_ONROWSDELETE;
-  ATTRIBUTE_NAMES[426] = ATTR_ONMOUSELEAVE;
-  ATTRIBUTE_NAMES[427] = ATTR_ONFORMCHANGE;
-  ATTRIBUTE_NAMES[428] = ATTR_ONCELLCHANGE;
-  ATTRIBUTE_NAMES[429] = ATTR_ONMOUSEWHEEL;
-  ATTRIBUTE_NAMES[430] = ATTR_ONMOUSEENTER;
-  ATTRIBUTE_NAMES[431] = ATTR_ONAFTERPRINT;
-  ATTRIBUTE_NAMES[432] = ATTR_ONBEFORECOPY;
-  ATTRIBUTE_NAMES[433] = ATTR_MARGINHEIGHT;
-  ATTRIBUTE_NAMES[434] = ATTR_MARKERHEIGHT;
-  ATTRIBUTE_NAMES[435] = ATTR_MARKER_START;
-  ATTRIBUTE_NAMES[436] = ATTR_MATHEMATICAL;
-  ATTRIBUTE_NAMES[437] = ATTR_LENGTHADJUST;
-  ATTRIBUTE_NAMES[438] = ATTR_UNSELECTABLE;
-  ATTRIBUTE_NAMES[439] = ATTR_UNICODE_BIDI;
-  ATTRIBUTE_NAMES[440] = ATTR_UNITS_PER_EM;
-  ATTRIBUTE_NAMES[441] = ATTR_WORD_SPACING;
-  ATTRIBUTE_NAMES[442] = ATTR_WRITING_MODE;
-  ATTRIBUTE_NAMES[443] = ATTR_V_ALPHABETIC;
-  ATTRIBUTE_NAMES[444] = ATTR_PATTERNUNITS;
-  ATTRIBUTE_NAMES[445] = ATTR_SPREADMETHOD;
-  ATTRIBUTE_NAMES[446] = ATTR_SURFACESCALE;
-  ATTRIBUTE_NAMES[447] = ATTR_STROKE_WIDTH;
-  ATTRIBUTE_NAMES[448] = ATTR_REPEAT_START;
-  ATTRIBUTE_NAMES[449] = ATTR_STDDEVIATION;
-  ATTRIBUTE_NAMES[450] = ATTR_STOP_OPACITY;
-  ATTRIBUTE_NAMES[451] = ATTR_ARIA_CONTROLS;
-  ATTRIBUTE_NAMES[452] = ATTR_ARIA_HASPOPUP;
-  ATTRIBUTE_NAMES[453] = ATTR_ACCENT_HEIGHT;
-  ATTRIBUTE_NAMES[454] = ATTR_ARIA_VALUENOW;
-  ATTRIBUTE_NAMES[455] = ATTR_ARIA_RELEVANT;
-  ATTRIBUTE_NAMES[456] = ATTR_ARIA_POSINSET;
-  ATTRIBUTE_NAMES[457] = ATTR_ARIA_VALUEMAX;
-  ATTRIBUTE_NAMES[458] = ATTR_ARIA_READONLY;
-  ATTRIBUTE_NAMES[459] = ATTR_ARIA_SELECTED;
-  ATTRIBUTE_NAMES[460] = ATTR_ARIA_REQUIRED;
-  ATTRIBUTE_NAMES[461] = ATTR_ARIA_EXPANDED;
-  ATTRIBUTE_NAMES[462] = ATTR_ARIA_DISABLED;
-  ATTRIBUTE_NAMES[463] = ATTR_ATTRIBUTETYPE;
-  ATTRIBUTE_NAMES[464] = ATTR_ATTRIBUTENAME;
-  ATTRIBUTE_NAMES[465] = ATTR_ARIA_DATATYPE;
-  ATTRIBUTE_NAMES[466] = ATTR_ARIA_VALUEMIN;
-  ATTRIBUTE_NAMES[467] = ATTR_BASEFREQUENCY;
-  ATTRIBUTE_NAMES[468] = ATTR_COLUMNSPACING;
-  ATTRIBUTE_NAMES[469] = ATTR_COLOR_PROFILE;
-  ATTRIBUTE_NAMES[470] = ATTR_CLIPPATHUNITS;
-  ATTRIBUTE_NAMES[471] = ATTR_DEFINITIONURL;
-  ATTRIBUTE_NAMES[472] = ATTR_GRADIENTUNITS;
-  ATTRIBUTE_NAMES[473] = ATTR_FLOOD_OPACITY;
-  ATTRIBUTE_NAMES[474] = ATTR_ONAFTERUPDATE;
-  ATTRIBUTE_NAMES[475] = ATTR_ONERRORUPDATE;
-  ATTRIBUTE_NAMES[476] = ATTR_ONBEFOREPASTE;
-  ATTRIBUTE_NAMES[477] = ATTR_ONLOSECAPTURE;
-  ATTRIBUTE_NAMES[478] = ATTR_ONCONTEXTMENU;
-  ATTRIBUTE_NAMES[479] = ATTR_ONSELECTSTART;
-  ATTRIBUTE_NAMES[480] = ATTR_ONBEFOREPRINT;
-  ATTRIBUTE_NAMES[481] = ATTR_MOVABLELIMITS;
-  ATTRIBUTE_NAMES[482] = ATTR_LINETHICKNESS;
-  ATTRIBUTE_NAMES[483] = ATTR_UNICODE_RANGE;
-  ATTRIBUTE_NAMES[484] = ATTR_THINMATHSPACE;
-  ATTRIBUTE_NAMES[485] = ATTR_VERT_ORIGIN_X;
-  ATTRIBUTE_NAMES[486] = ATTR_VERT_ORIGIN_Y;
-  ATTRIBUTE_NAMES[487] = ATTR_V_IDEOGRAPHIC;
-  ATTRIBUTE_NAMES[488] = ATTR_PRESERVEALPHA;
-  ATTRIBUTE_NAMES[489] = ATTR_SCRIPTMINSIZE;
-  ATTRIBUTE_NAMES[490] = ATTR_SPECIFICATION;
-  ATTRIBUTE_NAMES[491] = ATTR_XLINK_ACTUATE;
-  ATTRIBUTE_NAMES[492] = ATTR_XLINK_ARCROLE;
-  ATTRIBUTE_NAMES[493] = ATTR_ACCEPT_CHARSET;
-  ATTRIBUTE_NAMES[494] = ATTR_ALIGNMENTSCOPE;
-  ATTRIBUTE_NAMES[495] = ATTR_ARIA_MULTILINE;
-  ATTRIBUTE_NAMES[496] = ATTR_BASELINE_SHIFT;
-  ATTRIBUTE_NAMES[497] = ATTR_HORIZ_ORIGIN_X;
-  ATTRIBUTE_NAMES[498] = ATTR_HORIZ_ORIGIN_Y;
-  ATTRIBUTE_NAMES[499] = ATTR_ONBEFOREUPDATE;
-  ATTRIBUTE_NAMES[500] = ATTR_ONFILTERCHANGE;
-  ATTRIBUTE_NAMES[501] = ATTR_ONROWSINSERTED;
-  ATTRIBUTE_NAMES[502] = ATTR_ONBEFOREUNLOAD;
-  ATTRIBUTE_NAMES[503] = ATTR_MATHBACKGROUND;
-  ATTRIBUTE_NAMES[504] = ATTR_LETTER_SPACING;
-  ATTRIBUTE_NAMES[505] = ATTR_LIGHTING_COLOR;
-  ATTRIBUTE_NAMES[506] = ATTR_THICKMATHSPACE;
-  ATTRIBUTE_NAMES[507] = ATTR_TEXT_RENDERING;
-  ATTRIBUTE_NAMES[508] = ATTR_V_MATHEMATICAL;
-  ATTRIBUTE_NAMES[509] = ATTR_POINTER_EVENTS;
-  ATTRIBUTE_NAMES[510] = ATTR_PRIMITIVEUNITS;
-  ATTRIBUTE_NAMES[511] = ATTR_SYSTEMLANGUAGE;
-  ATTRIBUTE_NAMES[512] = ATTR_STROKE_LINECAP;
-  ATTRIBUTE_NAMES[513] = ATTR_SUBSCRIPTSHIFT;
-  ATTRIBUTE_NAMES[514] = ATTR_STROKE_OPACITY;
-  ATTRIBUTE_NAMES[515] = ATTR_ARIA_DROPEFFECT;
-  ATTRIBUTE_NAMES[516] = ATTR_ARIA_LABELLEDBY;
-  ATTRIBUTE_NAMES[517] = ATTR_ARIA_TEMPLATEID;
-  ATTRIBUTE_NAMES[518] = ATTR_COLOR_RENDERING;
-  ATTRIBUTE_NAMES[519] = ATTR_CONTENTEDITABLE;
-  ATTRIBUTE_NAMES[520] = ATTR_DIFFUSECONSTANT;
-  ATTRIBUTE_NAMES[521] = ATTR_ONDATAAVAILABLE;
-  ATTRIBUTE_NAMES[522] = ATTR_ONCONTROLSELECT;
-  ATTRIBUTE_NAMES[523] = ATTR_IMAGE_RENDERING;
-  ATTRIBUTE_NAMES[524] = ATTR_MEDIUMMATHSPACE;
-  ATTRIBUTE_NAMES[525] = ATTR_TEXT_DECORATION;
-  ATTRIBUTE_NAMES[526] = ATTR_SHAPE_RENDERING;
-  ATTRIBUTE_NAMES[527] = ATTR_STROKE_LINEJOIN;
-  ATTRIBUTE_NAMES[528] = ATTR_REPEAT_TEMPLATE;
-  ATTRIBUTE_NAMES[529] = ATTR_ARIA_DESCRIBEDBY;
-  ATTRIBUTE_NAMES[530] = ATTR_CONTENTSTYLETYPE;
-  ATTRIBUTE_NAMES[531] = ATTR_FONT_SIZE_ADJUST;
-  ATTRIBUTE_NAMES[532] = ATTR_KERNELUNITLENGTH;
-  ATTRIBUTE_NAMES[533] = ATTR_ONBEFOREACTIVATE;
-  ATTRIBUTE_NAMES[534] = ATTR_ONPROPERTYCHANGE;
-  ATTRIBUTE_NAMES[535] = ATTR_ONDATASETCHANGED;
-  ATTRIBUTE_NAMES[536] = ATTR_MASKCONTENTUNITS;
-  ATTRIBUTE_NAMES[537] = ATTR_PATTERNTRANSFORM;
-  ATTRIBUTE_NAMES[538] = ATTR_REQUIREDFEATURES;
-  ATTRIBUTE_NAMES[539] = ATTR_RENDERING_INTENT;
-  ATTRIBUTE_NAMES[540] = ATTR_SPECULAREXPONENT;
-  ATTRIBUTE_NAMES[541] = ATTR_SPECULARCONSTANT;
-  ATTRIBUTE_NAMES[542] = ATTR_SUPERSCRIPTSHIFT;
-  ATTRIBUTE_NAMES[543] = ATTR_STROKE_DASHARRAY;
-  ATTRIBUTE_NAMES[544] = ATTR_XCHANNELSELECTOR;
-  ATTRIBUTE_NAMES[545] = ATTR_YCHANNELSELECTOR;
-  ATTRIBUTE_NAMES[546] = ATTR_ARIA_AUTOCOMPLETE;
-  ATTRIBUTE_NAMES[547] = ATTR_CONTENTSCRIPTTYPE;
-  ATTRIBUTE_NAMES[548] = ATTR_ENABLE_BACKGROUND;
-  ATTRIBUTE_NAMES[549] = ATTR_DOMINANT_BASELINE;
-  ATTRIBUTE_NAMES[550] = ATTR_GRADIENTTRANSFORM;
-  ATTRIBUTE_NAMES[551] = ATTR_ONBEFORDEACTIVATE;
-  ATTRIBUTE_NAMES[552] = ATTR_ONDATASETCOMPLETE;
-  ATTRIBUTE_NAMES[553] = ATTR_OVERLINE_POSITION;
-  ATTRIBUTE_NAMES[554] = ATTR_ONBEFOREEDITFOCUS;
-  ATTRIBUTE_NAMES[555] = ATTR_LIMITINGCONEANGLE;
-  ATTRIBUTE_NAMES[556] = ATTR_VERYTHINMATHSPACE;
-  ATTRIBUTE_NAMES[557] = ATTR_STROKE_DASHOFFSET;
-  ATTRIBUTE_NAMES[558] = ATTR_STROKE_MITERLIMIT;
-  ATTRIBUTE_NAMES[559] = ATTR_ALIGNMENT_BASELINE;
-  ATTRIBUTE_NAMES[560] = ATTR_ONREADYSTATECHANGE;
-  ATTRIBUTE_NAMES[561] = ATTR_OVERLINE_THICKNESS;
-  ATTRIBUTE_NAMES[562] = ATTR_UNDERLINE_POSITION;
-  ATTRIBUTE_NAMES[563] = ATTR_VERYTHICKMATHSPACE;
-  ATTRIBUTE_NAMES[564] = ATTR_REQUIREDEXTENSIONS;
-  ATTRIBUTE_NAMES[565] = ATTR_COLOR_INTERPOLATION;
-  ATTRIBUTE_NAMES[566] = ATTR_UNDERLINE_THICKNESS;
-  ATTRIBUTE_NAMES[567] = ATTR_PRESERVEASPECTRATIO;
-  ATTRIBUTE_NAMES[568] = ATTR_PATTERNCONTENTUNITS;
-  ATTRIBUTE_NAMES[569] = ATTR_ARIA_MULTISELECTABLE;
-  ATTRIBUTE_NAMES[570] = ATTR_SCRIPTSIZEMULTIPLIER;
-  ATTRIBUTE_NAMES[571] = ATTR_ARIA_ACTIVEDESCENDANT;
-  ATTRIBUTE_NAMES[572] = ATTR_VERYVERYTHINMATHSPACE;
-  ATTRIBUTE_NAMES[573] = ATTR_VERYVERYTHICKMATHSPACE;
-  ATTRIBUTE_NAMES[574] = ATTR_STRIKETHROUGH_POSITION;
-  ATTRIBUTE_NAMES[575] = ATTR_STRIKETHROUGH_THICKNESS;
-  ATTRIBUTE_NAMES[576] = ATTR_EXTERNALRESOURCESREQUIRED;
-  ATTRIBUTE_NAMES[577] = ATTR_GLYPH_ORIENTATION_VERTICAL;
-  ATTRIBUTE_NAMES[578] = ATTR_COLOR_INTERPOLATION_FILTERS;
-  ATTRIBUTE_NAMES[579] = ATTR_GLYPH_ORIENTATION_HORIZONTAL;
+  ATTRIBUTE_NAMES[165] = ATTR_SRCDOC;
+  ATTRIBUTE_NAMES[166] = ATTR_SCOPED;
+  ATTRIBUTE_NAMES[167] = ATTR_STRING;
+  ATTRIBUTE_NAMES[168] = ATTR_SCHEME;
+  ATTRIBUTE_NAMES[169] = ATTR_STROKE;
+  ATTRIBUTE_NAMES[170] = ATTR_RADIUS;
+  ATTRIBUTE_NAMES[171] = ATTR_RESULT;
+  ATTRIBUTE_NAMES[172] = ATTR_REPEAT;
+  ATTRIBUTE_NAMES[173] = ATTR_RSPACE;
+  ATTRIBUTE_NAMES[174] = ATTR_ROTATE;
+  ATTRIBUTE_NAMES[175] = ATTR_RQUOTE;
+  ATTRIBUTE_NAMES[176] = ATTR_ALTTEXT;
+  ATTRIBUTE_NAMES[177] = ATTR_ARCHIVE;
+  ATTRIBUTE_NAMES[178] = ATTR_AZIMUTH;
+  ATTRIBUTE_NAMES[179] = ATTR_CLOSURE;
+  ATTRIBUTE_NAMES[180] = ATTR_CHECKED;
+  ATTRIBUTE_NAMES[181] = ATTR_CLASSID;
+  ATTRIBUTE_NAMES[182] = ATTR_CHAROFF;
+  ATTRIBUTE_NAMES[183] = ATTR_BGCOLOR;
+  ATTRIBUTE_NAMES[184] = ATTR_COLSPAN;
+  ATTRIBUTE_NAMES[185] = ATTR_CHARSET;
+  ATTRIBUTE_NAMES[186] = ATTR_COMPACT;
+  ATTRIBUTE_NAMES[187] = ATTR_CONTENT;
+  ATTRIBUTE_NAMES[188] = ATTR_ENCTYPE;
+  ATTRIBUTE_NAMES[189] = ATTR_DATASRC;
+  ATTRIBUTE_NAMES[190] = ATTR_DATAFLD;
+  ATTRIBUTE_NAMES[191] = ATTR_DECLARE;
+  ATTRIBUTE_NAMES[192] = ATTR_DISPLAY;
+  ATTRIBUTE_NAMES[193] = ATTR_DIVISOR;
+  ATTRIBUTE_NAMES[194] = ATTR_DEFAULT;
+  ATTRIBUTE_NAMES[195] = ATTR_DESCENT;
+  ATTRIBUTE_NAMES[196] = ATTR_KERNING;
+  ATTRIBUTE_NAMES[197] = ATTR_HANGING;
+  ATTRIBUTE_NAMES[198] = ATTR_HEADERS;
+  ATTRIBUTE_NAMES[199] = ATTR_ONPASTE;
+  ATTRIBUTE_NAMES[200] = ATTR_ONCLICK;
+  ATTRIBUTE_NAMES[201] = ATTR_OPTIMUM;
+  ATTRIBUTE_NAMES[202] = ATTR_ONBEGIN;
+  ATTRIBUTE_NAMES[203] = ATTR_ONKEYUP;
+  ATTRIBUTE_NAMES[204] = ATTR_ONFOCUS;
+  ATTRIBUTE_NAMES[205] = ATTR_ONERROR;
+  ATTRIBUTE_NAMES[206] = ATTR_ONINPUT;
+  ATTRIBUTE_NAMES[207] = ATTR_ONABORT;
+  ATTRIBUTE_NAMES[208] = ATTR_ONSTART;
+  ATTRIBUTE_NAMES[209] = ATTR_ONRESET;
+  ATTRIBUTE_NAMES[210] = ATTR_OPACITY;
+  ATTRIBUTE_NAMES[211] = ATTR_NOSHADE;
+  ATTRIBUTE_NAMES[212] = ATTR_MINSIZE;
+  ATTRIBUTE_NAMES[213] = ATTR_MAXSIZE;
+  ATTRIBUTE_NAMES[214] = ATTR_LARGEOP;
+  ATTRIBUTE_NAMES[215] = ATTR_UNICODE;
+  ATTRIBUTE_NAMES[216] = ATTR_TARGETX;
+  ATTRIBUTE_NAMES[217] = ATTR_TARGETY;
+  ATTRIBUTE_NAMES[218] = ATTR_VIEWBOX;
+  ATTRIBUTE_NAMES[219] = ATTR_VERSION;
+  ATTRIBUTE_NAMES[220] = ATTR_PATTERN;
+  ATTRIBUTE_NAMES[221] = ATTR_PROFILE;
+  ATTRIBUTE_NAMES[222] = ATTR_SPACING;
+  ATTRIBUTE_NAMES[223] = ATTR_RESTART;
+  ATTRIBUTE_NAMES[224] = ATTR_ROWSPAN;
+  ATTRIBUTE_NAMES[225] = ATTR_SANDBOX;
+  ATTRIBUTE_NAMES[226] = ATTR_SUMMARY;
+  ATTRIBUTE_NAMES[227] = ATTR_STANDBY;
+  ATTRIBUTE_NAMES[228] = ATTR_REPLACE;
+  ATTRIBUTE_NAMES[229] = ATTR_AUTOPLAY;
+  ATTRIBUTE_NAMES[230] = ATTR_ADDITIVE;
+  ATTRIBUTE_NAMES[231] = ATTR_CALCMODE;
+  ATTRIBUTE_NAMES[232] = ATTR_CODETYPE;
+  ATTRIBUTE_NAMES[233] = ATTR_CODEBASE;
+  ATTRIBUTE_NAMES[234] = ATTR_CONTROLS;
+  ATTRIBUTE_NAMES[235] = ATTR_BEVELLED;
+  ATTRIBUTE_NAMES[236] = ATTR_BASELINE;
+  ATTRIBUTE_NAMES[237] = ATTR_EXPONENT;
+  ATTRIBUTE_NAMES[238] = ATTR_EDGEMODE;
+  ATTRIBUTE_NAMES[239] = ATTR_ENCODING;
+  ATTRIBUTE_NAMES[240] = ATTR_GLYPHREF;
+  ATTRIBUTE_NAMES[241] = ATTR_DATETIME;
+  ATTRIBUTE_NAMES[242] = ATTR_DISABLED;
+  ATTRIBUTE_NAMES[243] = ATTR_FONTSIZE;
+  ATTRIBUTE_NAMES[244] = ATTR_KEYTIMES;
+  ATTRIBUTE_NAMES[245] = ATTR_PANOSE_1;
+  ATTRIBUTE_NAMES[246] = ATTR_HREFLANG;
+  ATTRIBUTE_NAMES[247] = ATTR_ONRESIZE;
+  ATTRIBUTE_NAMES[248] = ATTR_ONCHANGE;
+  ATTRIBUTE_NAMES[249] = ATTR_ONBOUNCE;
+  ATTRIBUTE_NAMES[250] = ATTR_ONUNLOAD;
+  ATTRIBUTE_NAMES[251] = ATTR_ONFINISH;
+  ATTRIBUTE_NAMES[252] = ATTR_ONSCROLL;
+  ATTRIBUTE_NAMES[253] = ATTR_OPERATOR;
+  ATTRIBUTE_NAMES[254] = ATTR_OVERFLOW;
+  ATTRIBUTE_NAMES[255] = ATTR_ONSUBMIT;
+  ATTRIBUTE_NAMES[256] = ATTR_ONREPEAT;
+  ATTRIBUTE_NAMES[257] = ATTR_ONSELECT;
+  ATTRIBUTE_NAMES[258] = ATTR_NOTATION;
+  ATTRIBUTE_NAMES[259] = ATTR_NORESIZE;
+  ATTRIBUTE_NAMES[260] = ATTR_MANIFEST;
+  ATTRIBUTE_NAMES[261] = ATTR_MATHSIZE;
+  ATTRIBUTE_NAMES[262] = ATTR_MULTIPLE;
+  ATTRIBUTE_NAMES[263] = ATTR_LONGDESC;
+  ATTRIBUTE_NAMES[264] = ATTR_LANGUAGE;
+  ATTRIBUTE_NAMES[265] = ATTR_TEMPLATE;
+  ATTRIBUTE_NAMES[266] = ATTR_TABINDEX;
+  ATTRIBUTE_NAMES[267] = ATTR_READONLY;
+  ATTRIBUTE_NAMES[268] = ATTR_SELECTED;
+  ATTRIBUTE_NAMES[269] = ATTR_ROWLINES;
+  ATTRIBUTE_NAMES[270] = ATTR_SEAMLESS;
+  ATTRIBUTE_NAMES[271] = ATTR_ROWALIGN;
+  ATTRIBUTE_NAMES[272] = ATTR_STRETCHY;
+  ATTRIBUTE_NAMES[273] = ATTR_REQUIRED;
+  ATTRIBUTE_NAMES[274] = ATTR_XML_BASE;
+  ATTRIBUTE_NAMES[275] = ATTR_XML_LANG;
+  ATTRIBUTE_NAMES[276] = ATTR_X_HEIGHT;
+  ATTRIBUTE_NAMES[277] = ATTR_ARIA_OWNS;
+  ATTRIBUTE_NAMES[278] = ATTR_AUTOFOCUS;
+  ATTRIBUTE_NAMES[279] = ATTR_ARIA_SORT;
+  ATTRIBUTE_NAMES[280] = ATTR_ACCESSKEY;
+  ATTRIBUTE_NAMES[281] = ATTR_ARIA_BUSY;
+  ATTRIBUTE_NAMES[282] = ATTR_ARIA_GRAB;
+  ATTRIBUTE_NAMES[283] = ATTR_AMPLITUDE;
+  ATTRIBUTE_NAMES[284] = ATTR_ARIA_LIVE;
+  ATTRIBUTE_NAMES[285] = ATTR_CLIP_RULE;
+  ATTRIBUTE_NAMES[286] = ATTR_CLIP_PATH;
+  ATTRIBUTE_NAMES[287] = ATTR_EQUALROWS;
+  ATTRIBUTE_NAMES[288] = ATTR_ELEVATION;
+  ATTRIBUTE_NAMES[289] = ATTR_DIRECTION;
+  ATTRIBUTE_NAMES[290] = ATTR_DRAGGABLE;
+  ATTRIBUTE_NAMES[291] = ATTR_FILTERRES;
+  ATTRIBUTE_NAMES[292] = ATTR_FILL_RULE;
+  ATTRIBUTE_NAMES[293] = ATTR_FONTSTYLE;
+  ATTRIBUTE_NAMES[294] = ATTR_FONT_SIZE;
+  ATTRIBUTE_NAMES[295] = ATTR_KEYPOINTS;
+  ATTRIBUTE_NAMES[296] = ATTR_HIDEFOCUS;
+  ATTRIBUTE_NAMES[297] = ATTR_ONMESSAGE;
+  ATTRIBUTE_NAMES[298] = ATTR_INTERCEPT;
+  ATTRIBUTE_NAMES[299] = ATTR_ONDRAGEND;
+  ATTRIBUTE_NAMES[300] = ATTR_ONMOVEEND;
+  ATTRIBUTE_NAMES[301] = ATTR_ONINVALID;
+  ATTRIBUTE_NAMES[302] = ATTR_ONKEYDOWN;
+  ATTRIBUTE_NAMES[303] = ATTR_ONFOCUSIN;
+  ATTRIBUTE_NAMES[304] = ATTR_ONMOUSEUP;
+  ATTRIBUTE_NAMES[305] = ATTR_INPUTMODE;
+  ATTRIBUTE_NAMES[306] = ATTR_ONROWEXIT;
+  ATTRIBUTE_NAMES[307] = ATTR_MATHCOLOR;
+  ATTRIBUTE_NAMES[308] = ATTR_MASKUNITS;
+  ATTRIBUTE_NAMES[309] = ATTR_MAXLENGTH;
+  ATTRIBUTE_NAMES[310] = ATTR_LINEBREAK;
+  ATTRIBUTE_NAMES[311] = ATTR_TRANSFORM;
+  ATTRIBUTE_NAMES[312] = ATTR_V_HANGING;
+  ATTRIBUTE_NAMES[313] = ATTR_VALUETYPE;
+  ATTRIBUTE_NAMES[314] = ATTR_POINTSATZ;
+  ATTRIBUTE_NAMES[315] = ATTR_POINTSATX;
+  ATTRIBUTE_NAMES[316] = ATTR_POINTSATY;
+  ATTRIBUTE_NAMES[317] = ATTR_SYMMETRIC;
+  ATTRIBUTE_NAMES[318] = ATTR_SCROLLING;
+  ATTRIBUTE_NAMES[319] = ATTR_REPEATDUR;
+  ATTRIBUTE_NAMES[320] = ATTR_SELECTION;
+  ATTRIBUTE_NAMES[321] = ATTR_SEPARATOR;
+  ATTRIBUTE_NAMES[322] = ATTR_XML_SPACE;
+  ATTRIBUTE_NAMES[323] = ATTR_AUTOSUBMIT;
+  ATTRIBUTE_NAMES[324] = ATTR_ALPHABETIC;
+  ATTRIBUTE_NAMES[325] = ATTR_ACTIONTYPE;
+  ATTRIBUTE_NAMES[326] = ATTR_ACCUMULATE;
+  ATTRIBUTE_NAMES[327] = ATTR_ARIA_LEVEL;
+  ATTRIBUTE_NAMES[328] = ATTR_COLUMNSPAN;
+  ATTRIBUTE_NAMES[329] = ATTR_CAP_HEIGHT;
+  ATTRIBUTE_NAMES[330] = ATTR_BACKGROUND;
+  ATTRIBUTE_NAMES[331] = ATTR_GLYPH_NAME;
+  ATTRIBUTE_NAMES[332] = ATTR_GROUPALIGN;
+  ATTRIBUTE_NAMES[333] = ATTR_FONTFAMILY;
+  ATTRIBUTE_NAMES[334] = ATTR_FONTWEIGHT;
+  ATTRIBUTE_NAMES[335] = ATTR_FONT_STYLE;
+  ATTRIBUTE_NAMES[336] = ATTR_KEYSPLINES;
+  ATTRIBUTE_NAMES[337] = ATTR_HTTP_EQUIV;
+  ATTRIBUTE_NAMES[338] = ATTR_ONACTIVATE;
+  ATTRIBUTE_NAMES[339] = ATTR_OCCURRENCE;
+  ATTRIBUTE_NAMES[340] = ATTR_IRRELEVANT;
+  ATTRIBUTE_NAMES[341] = ATTR_ONDBLCLICK;
+  ATTRIBUTE_NAMES[342] = ATTR_ONDRAGDROP;
+  ATTRIBUTE_NAMES[343] = ATTR_ONKEYPRESS;
+  ATTRIBUTE_NAMES[344] = ATTR_ONROWENTER;
+  ATTRIBUTE_NAMES[345] = ATTR_ONDRAGOVER;
+  ATTRIBUTE_NAMES[346] = ATTR_ONFOCUSOUT;
+  ATTRIBUTE_NAMES[347] = ATTR_ONMOUSEOUT;
+  ATTRIBUTE_NAMES[348] = ATTR_NUMOCTAVES;
+  ATTRIBUTE_NAMES[349] = ATTR_MARKER_MID;
+  ATTRIBUTE_NAMES[350] = ATTR_MARKER_END;
+  ATTRIBUTE_NAMES[351] = ATTR_TEXTLENGTH;
+  ATTRIBUTE_NAMES[352] = ATTR_VISIBILITY;
+  ATTRIBUTE_NAMES[353] = ATTR_VIEWTARGET;
+  ATTRIBUTE_NAMES[354] = ATTR_VERT_ADV_Y;
+  ATTRIBUTE_NAMES[355] = ATTR_PATHLENGTH;
+  ATTRIBUTE_NAMES[356] = ATTR_REPEAT_MAX;
+  ATTRIBUTE_NAMES[357] = ATTR_RADIOGROUP;
+  ATTRIBUTE_NAMES[358] = ATTR_STOP_COLOR;
+  ATTRIBUTE_NAMES[359] = ATTR_SEPARATORS;
+  ATTRIBUTE_NAMES[360] = ATTR_REPEAT_MIN;
+  ATTRIBUTE_NAMES[361] = ATTR_ROWSPACING;
+  ATTRIBUTE_NAMES[362] = ATTR_ZOOMANDPAN;
+  ATTRIBUTE_NAMES[363] = ATTR_XLINK_TYPE;
+  ATTRIBUTE_NAMES[364] = ATTR_XLINK_ROLE;
+  ATTRIBUTE_NAMES[365] = ATTR_XLINK_HREF;
+  ATTRIBUTE_NAMES[366] = ATTR_XLINK_SHOW;
+  ATTRIBUTE_NAMES[367] = ATTR_ACCENTUNDER;
+  ATTRIBUTE_NAMES[368] = ATTR_ARIA_SECRET;
+  ATTRIBUTE_NAMES[369] = ATTR_ARIA_ATOMIC;
+  ATTRIBUTE_NAMES[370] = ATTR_ARIA_HIDDEN;
+  ATTRIBUTE_NAMES[371] = ATTR_ARIA_FLOWTO;
+  ATTRIBUTE_NAMES[372] = ATTR_ARABIC_FORM;
+  ATTRIBUTE_NAMES[373] = ATTR_CELLPADDING;
+  ATTRIBUTE_NAMES[374] = ATTR_CELLSPACING;
+  ATTRIBUTE_NAMES[375] = ATTR_COLUMNWIDTH;
+  ATTRIBUTE_NAMES[376] = ATTR_CROSSORIGIN;
+  ATTRIBUTE_NAMES[377] = ATTR_COLUMNALIGN;
+  ATTRIBUTE_NAMES[378] = ATTR_COLUMNLINES;
+  ATTRIBUTE_NAMES[379] = ATTR_CONTEXTMENU;
+  ATTRIBUTE_NAMES[380] = ATTR_BASEPROFILE;
+  ATTRIBUTE_NAMES[381] = ATTR_FONT_FAMILY;
+  ATTRIBUTE_NAMES[382] = ATTR_FRAMEBORDER;
+  ATTRIBUTE_NAMES[383] = ATTR_FILTERUNITS;
+  ATTRIBUTE_NAMES[384] = ATTR_FLOOD_COLOR;
+  ATTRIBUTE_NAMES[385] = ATTR_FONT_WEIGHT;
+  ATTRIBUTE_NAMES[386] = ATTR_HORIZ_ADV_X;
+  ATTRIBUTE_NAMES[387] = ATTR_ONDRAGLEAVE;
+  ATTRIBUTE_NAMES[388] = ATTR_ONMOUSEMOVE;
+  ATTRIBUTE_NAMES[389] = ATTR_ORIENTATION;
+  ATTRIBUTE_NAMES[390] = ATTR_ONMOUSEDOWN;
+  ATTRIBUTE_NAMES[391] = ATTR_ONMOUSEOVER;
+  ATTRIBUTE_NAMES[392] = ATTR_ONDRAGENTER;
+  ATTRIBUTE_NAMES[393] = ATTR_IDEOGRAPHIC;
+  ATTRIBUTE_NAMES[394] = ATTR_ONBEFORECUT;
+  ATTRIBUTE_NAMES[395] = ATTR_ONFORMINPUT;
+  ATTRIBUTE_NAMES[396] = ATTR_ONDRAGSTART;
+  ATTRIBUTE_NAMES[397] = ATTR_ONMOVESTART;
+  ATTRIBUTE_NAMES[398] = ATTR_MARKERUNITS;
+  ATTRIBUTE_NAMES[399] = ATTR_MATHVARIANT;
+  ATTRIBUTE_NAMES[400] = ATTR_MARGINWIDTH;
+  ATTRIBUTE_NAMES[401] = ATTR_MARKERWIDTH;
+  ATTRIBUTE_NAMES[402] = ATTR_TEXT_ANCHOR;
+  ATTRIBUTE_NAMES[403] = ATTR_TABLEVALUES;
+  ATTRIBUTE_NAMES[404] = ATTR_SCRIPTLEVEL;
+  ATTRIBUTE_NAMES[405] = ATTR_REPEATCOUNT;
+  ATTRIBUTE_NAMES[406] = ATTR_STITCHTILES;
+  ATTRIBUTE_NAMES[407] = ATTR_STARTOFFSET;
+  ATTRIBUTE_NAMES[408] = ATTR_SCROLLDELAY;
+  ATTRIBUTE_NAMES[409] = ATTR_XMLNS_XLINK;
+  ATTRIBUTE_NAMES[410] = ATTR_XLINK_TITLE;
+  ATTRIBUTE_NAMES[411] = ATTR_ARIA_INVALID;
+  ATTRIBUTE_NAMES[412] = ATTR_ARIA_PRESSED;
+  ATTRIBUTE_NAMES[413] = ATTR_ARIA_CHECKED;
+  ATTRIBUTE_NAMES[414] = ATTR_AUTOCOMPLETE;
+  ATTRIBUTE_NAMES[415] = ATTR_ARIA_SETSIZE;
+  ATTRIBUTE_NAMES[416] = ATTR_ARIA_CHANNEL;
+  ATTRIBUTE_NAMES[417] = ATTR_EQUALCOLUMNS;
+  ATTRIBUTE_NAMES[418] = ATTR_DISPLAYSTYLE;
+  ATTRIBUTE_NAMES[419] = ATTR_DATAFORMATAS;
+  ATTRIBUTE_NAMES[420] = ATTR_FILL_OPACITY;
+  ATTRIBUTE_NAMES[421] = ATTR_FONT_VARIANT;
+  ATTRIBUTE_NAMES[422] = ATTR_FONT_STRETCH;
+  ATTRIBUTE_NAMES[423] = ATTR_FRAMESPACING;
+  ATTRIBUTE_NAMES[424] = ATTR_KERNELMATRIX;
+  ATTRIBUTE_NAMES[425] = ATTR_ONDEACTIVATE;
+  ATTRIBUTE_NAMES[426] = ATTR_ONROWSDELETE;
+  ATTRIBUTE_NAMES[427] = ATTR_ONMOUSELEAVE;
+  ATTRIBUTE_NAMES[428] = ATTR_ONFORMCHANGE;
+  ATTRIBUTE_NAMES[429] = ATTR_ONCELLCHANGE;
+  ATTRIBUTE_NAMES[430] = ATTR_ONMOUSEWHEEL;
+  ATTRIBUTE_NAMES[431] = ATTR_ONMOUSEENTER;
+  ATTRIBUTE_NAMES[432] = ATTR_ONAFTERPRINT;
+  ATTRIBUTE_NAMES[433] = ATTR_ONBEFORECOPY;
+  ATTRIBUTE_NAMES[434] = ATTR_MARGINHEIGHT;
+  ATTRIBUTE_NAMES[435] = ATTR_MARKERHEIGHT;
+  ATTRIBUTE_NAMES[436] = ATTR_MARKER_START;
+  ATTRIBUTE_NAMES[437] = ATTR_MATHEMATICAL;
+  ATTRIBUTE_NAMES[438] = ATTR_LENGTHADJUST;
+  ATTRIBUTE_NAMES[439] = ATTR_UNSELECTABLE;
+  ATTRIBUTE_NAMES[440] = ATTR_UNICODE_BIDI;
+  ATTRIBUTE_NAMES[441] = ATTR_UNITS_PER_EM;
+  ATTRIBUTE_NAMES[442] = ATTR_WORD_SPACING;
+  ATTRIBUTE_NAMES[443] = ATTR_WRITING_MODE;
+  ATTRIBUTE_NAMES[444] = ATTR_V_ALPHABETIC;
+  ATTRIBUTE_NAMES[445] = ATTR_PATTERNUNITS;
+  ATTRIBUTE_NAMES[446] = ATTR_SPREADMETHOD;
+  ATTRIBUTE_NAMES[447] = ATTR_SURFACESCALE;
+  ATTRIBUTE_NAMES[448] = ATTR_STROKE_WIDTH;
+  ATTRIBUTE_NAMES[449] = ATTR_REPEAT_START;
+  ATTRIBUTE_NAMES[450] = ATTR_STDDEVIATION;
+  ATTRIBUTE_NAMES[451] = ATTR_STOP_OPACITY;
+  ATTRIBUTE_NAMES[452] = ATTR_ARIA_CONTROLS;
+  ATTRIBUTE_NAMES[453] = ATTR_ARIA_HASPOPUP;
+  ATTRIBUTE_NAMES[454] = ATTR_ACCENT_HEIGHT;
+  ATTRIBUTE_NAMES[455] = ATTR_ARIA_VALUENOW;
+  ATTRIBUTE_NAMES[456] = ATTR_ARIA_RELEVANT;
+  ATTRIBUTE_NAMES[457] = ATTR_ARIA_POSINSET;
+  ATTRIBUTE_NAMES[458] = ATTR_ARIA_VALUEMAX;
+  ATTRIBUTE_NAMES[459] = ATTR_ARIA_READONLY;
+  ATTRIBUTE_NAMES[460] = ATTR_ARIA_SELECTED;
+  ATTRIBUTE_NAMES[461] = ATTR_ARIA_REQUIRED;
+  ATTRIBUTE_NAMES[462] = ATTR_ARIA_EXPANDED;
+  ATTRIBUTE_NAMES[463] = ATTR_ARIA_DISABLED;
+  ATTRIBUTE_NAMES[464] = ATTR_ATTRIBUTETYPE;
+  ATTRIBUTE_NAMES[465] = ATTR_ATTRIBUTENAME;
+  ATTRIBUTE_NAMES[466] = ATTR_ARIA_DATATYPE;
+  ATTRIBUTE_NAMES[467] = ATTR_ARIA_VALUEMIN;
+  ATTRIBUTE_NAMES[468] = ATTR_BASEFREQUENCY;
+  ATTRIBUTE_NAMES[469] = ATTR_COLUMNSPACING;
+  ATTRIBUTE_NAMES[470] = ATTR_COLOR_PROFILE;
+  ATTRIBUTE_NAMES[471] = ATTR_CLIPPATHUNITS;
+  ATTRIBUTE_NAMES[472] = ATTR_DEFINITIONURL;
+  ATTRIBUTE_NAMES[473] = ATTR_GRADIENTUNITS;
+  ATTRIBUTE_NAMES[474] = ATTR_FLOOD_OPACITY;
+  ATTRIBUTE_NAMES[475] = ATTR_ONAFTERUPDATE;
+  ATTRIBUTE_NAMES[476] = ATTR_ONERRORUPDATE;
+  ATTRIBUTE_NAMES[477] = ATTR_ONBEFOREPASTE;
+  ATTRIBUTE_NAMES[478] = ATTR_ONLOSECAPTURE;
+  ATTRIBUTE_NAMES[479] = ATTR_ONCONTEXTMENU;
+  ATTRIBUTE_NAMES[480] = ATTR_ONSELECTSTART;
+  ATTRIBUTE_NAMES[481] = ATTR_ONBEFOREPRINT;
+  ATTRIBUTE_NAMES[482] = ATTR_MOVABLELIMITS;
+  ATTRIBUTE_NAMES[483] = ATTR_LINETHICKNESS;
+  ATTRIBUTE_NAMES[484] = ATTR_UNICODE_RANGE;
+  ATTRIBUTE_NAMES[485] = ATTR_THINMATHSPACE;
+  ATTRIBUTE_NAMES[486] = ATTR_VERT_ORIGIN_X;
+  ATTRIBUTE_NAMES[487] = ATTR_VERT_ORIGIN_Y;
+  ATTRIBUTE_NAMES[488] = ATTR_V_IDEOGRAPHIC;
+  ATTRIBUTE_NAMES[489] = ATTR_PRESERVEALPHA;
+  ATTRIBUTE_NAMES[490] = ATTR_SCRIPTMINSIZE;
+  ATTRIBUTE_NAMES[491] = ATTR_SPECIFICATION;
+  ATTRIBUTE_NAMES[492] = ATTR_XLINK_ACTUATE;
+  ATTRIBUTE_NAMES[493] = ATTR_XLINK_ARCROLE;
+  ATTRIBUTE_NAMES[494] = ATTR_ACCEPT_CHARSET;
+  ATTRIBUTE_NAMES[495] = ATTR_ALIGNMENTSCOPE;
+  ATTRIBUTE_NAMES[496] = ATTR_ARIA_MULTILINE;
+  ATTRIBUTE_NAMES[497] = ATTR_BASELINE_SHIFT;
+  ATTRIBUTE_NAMES[498] = ATTR_HORIZ_ORIGIN_X;
+  ATTRIBUTE_NAMES[499] = ATTR_HORIZ_ORIGIN_Y;
+  ATTRIBUTE_NAMES[500] = ATTR_ONBEFOREUPDATE;
+  ATTRIBUTE_NAMES[501] = ATTR_ONFILTERCHANGE;
+  ATTRIBUTE_NAMES[502] = ATTR_ONROWSINSERTED;
+  ATTRIBUTE_NAMES[503] = ATTR_ONBEFOREUNLOAD;
+  ATTRIBUTE_NAMES[504] = ATTR_MATHBACKGROUND;
+  ATTRIBUTE_NAMES[505] = ATTR_LETTER_SPACING;
+  ATTRIBUTE_NAMES[506] = ATTR_LIGHTING_COLOR;
+  ATTRIBUTE_NAMES[507] = ATTR_THICKMATHSPACE;
+  ATTRIBUTE_NAMES[508] = ATTR_TEXT_RENDERING;
+  ATTRIBUTE_NAMES[509] = ATTR_V_MATHEMATICAL;
+  ATTRIBUTE_NAMES[510] = ATTR_POINTER_EVENTS;
+  ATTRIBUTE_NAMES[511] = ATTR_PRIMITIVEUNITS;
+  ATTRIBUTE_NAMES[512] = ATTR_SYSTEMLANGUAGE;
+  ATTRIBUTE_NAMES[513] = ATTR_STROKE_LINECAP;
+  ATTRIBUTE_NAMES[514] = ATTR_SUBSCRIPTSHIFT;
+  ATTRIBUTE_NAMES[515] = ATTR_STROKE_OPACITY;
+  ATTRIBUTE_NAMES[516] = ATTR_ARIA_DROPEFFECT;
+  ATTRIBUTE_NAMES[517] = ATTR_ARIA_LABELLEDBY;
+  ATTRIBUTE_NAMES[518] = ATTR_ARIA_TEMPLATEID;
+  ATTRIBUTE_NAMES[519] = ATTR_COLOR_RENDERING;
+  ATTRIBUTE_NAMES[520] = ATTR_CONTENTEDITABLE;
+  ATTRIBUTE_NAMES[521] = ATTR_DIFFUSECONSTANT;
+  ATTRIBUTE_NAMES[522] = ATTR_ONDATAAVAILABLE;
+  ATTRIBUTE_NAMES[523] = ATTR_ONCONTROLSELECT;
+  ATTRIBUTE_NAMES[524] = ATTR_IMAGE_RENDERING;
+  ATTRIBUTE_NAMES[525] = ATTR_MEDIUMMATHSPACE;
+  ATTRIBUTE_NAMES[526] = ATTR_TEXT_DECORATION;
+  ATTRIBUTE_NAMES[527] = ATTR_SHAPE_RENDERING;
+  ATTRIBUTE_NAMES[528] = ATTR_STROKE_LINEJOIN;
+  ATTRIBUTE_NAMES[529] = ATTR_REPEAT_TEMPLATE;
+  ATTRIBUTE_NAMES[530] = ATTR_ARIA_DESCRIBEDBY;
+  ATTRIBUTE_NAMES[531] = ATTR_CONTENTSTYLETYPE;
+  ATTRIBUTE_NAMES[532] = ATTR_FONT_SIZE_ADJUST;
+  ATTRIBUTE_NAMES[533] = ATTR_KERNELUNITLENGTH;
+  ATTRIBUTE_NAMES[534] = ATTR_ONBEFOREACTIVATE;
+  ATTRIBUTE_NAMES[535] = ATTR_ONPROPERTYCHANGE;
+  ATTRIBUTE_NAMES[536] = ATTR_ONDATASETCHANGED;
+  ATTRIBUTE_NAMES[537] = ATTR_MASKCONTENTUNITS;
+  ATTRIBUTE_NAMES[538] = ATTR_PATTERNTRANSFORM;
+  ATTRIBUTE_NAMES[539] = ATTR_REQUIREDFEATURES;
+  ATTRIBUTE_NAMES[540] = ATTR_RENDERING_INTENT;
+  ATTRIBUTE_NAMES[541] = ATTR_SPECULAREXPONENT;
+  ATTRIBUTE_NAMES[542] = ATTR_SPECULARCONSTANT;
+  ATTRIBUTE_NAMES[543] = ATTR_SUPERSCRIPTSHIFT;
+  ATTRIBUTE_NAMES[544] = ATTR_STROKE_DASHARRAY;
+  ATTRIBUTE_NAMES[545] = ATTR_XCHANNELSELECTOR;
+  ATTRIBUTE_NAMES[546] = ATTR_YCHANNELSELECTOR;
+  ATTRIBUTE_NAMES[547] = ATTR_ARIA_AUTOCOMPLETE;
+  ATTRIBUTE_NAMES[548] = ATTR_CONTENTSCRIPTTYPE;
+  ATTRIBUTE_NAMES[549] = ATTR_ENABLE_BACKGROUND;
+  ATTRIBUTE_NAMES[550] = ATTR_DOMINANT_BASELINE;
+  ATTRIBUTE_NAMES[551] = ATTR_GRADIENTTRANSFORM;
+  ATTRIBUTE_NAMES[552] = ATTR_ONBEFORDEACTIVATE;
+  ATTRIBUTE_NAMES[553] = ATTR_ONDATASETCOMPLETE;
+  ATTRIBUTE_NAMES[554] = ATTR_OVERLINE_POSITION;
+  ATTRIBUTE_NAMES[555] = ATTR_ONBEFOREEDITFOCUS;
+  ATTRIBUTE_NAMES[556] = ATTR_LIMITINGCONEANGLE;
+  ATTRIBUTE_NAMES[557] = ATTR_VERYTHINMATHSPACE;
+  ATTRIBUTE_NAMES[558] = ATTR_STROKE_DASHOFFSET;
+  ATTRIBUTE_NAMES[559] = ATTR_STROKE_MITERLIMIT;
+  ATTRIBUTE_NAMES[560] = ATTR_ALIGNMENT_BASELINE;
+  ATTRIBUTE_NAMES[561] = ATTR_ONREADYSTATECHANGE;
+  ATTRIBUTE_NAMES[562] = ATTR_OVERLINE_THICKNESS;
+  ATTRIBUTE_NAMES[563] = ATTR_UNDERLINE_POSITION;
+  ATTRIBUTE_NAMES[564] = ATTR_VERYTHICKMATHSPACE;
+  ATTRIBUTE_NAMES[565] = ATTR_REQUIREDEXTENSIONS;
+  ATTRIBUTE_NAMES[566] = ATTR_COLOR_INTERPOLATION;
+  ATTRIBUTE_NAMES[567] = ATTR_UNDERLINE_THICKNESS;
+  ATTRIBUTE_NAMES[568] = ATTR_PRESERVEASPECTRATIO;
+  ATTRIBUTE_NAMES[569] = ATTR_PATTERNCONTENTUNITS;
+  ATTRIBUTE_NAMES[570] = ATTR_ARIA_MULTISELECTABLE;
+  ATTRIBUTE_NAMES[571] = ATTR_SCRIPTSIZEMULTIPLIER;
+  ATTRIBUTE_NAMES[572] = ATTR_ARIA_ACTIVEDESCENDANT;
+  ATTRIBUTE_NAMES[573] = ATTR_VERYVERYTHINMATHSPACE;
+  ATTRIBUTE_NAMES[574] = ATTR_VERYVERYTHICKMATHSPACE;
+  ATTRIBUTE_NAMES[575] = ATTR_STRIKETHROUGH_POSITION;
+  ATTRIBUTE_NAMES[576] = ATTR_STRIKETHROUGH_THICKNESS;
+  ATTRIBUTE_NAMES[577] = ATTR_EXTERNALRESOURCESREQUIRED;
+  ATTRIBUTE_NAMES[578] = ATTR_GLYPH_ORIENTATION_VERTICAL;
+  ATTRIBUTE_NAMES[579] = ATTR_COLOR_INTERPOLATION_FILTERS;
+  ATTRIBUTE_NAMES[580] = ATTR_GLYPH_ORIENTATION_HORIZONTAL;
 }
 
 void
 nsHtml5AttributeName::releaseStatics()
 {
   delete[] ALL_NO_NS;
   delete[] XMLNS_NS;
   delete[] XML_NS;
@@ -2146,16 +2149,17 @@ nsHtml5AttributeName::releaseStatics()
   delete ATTR_WIDTHS;
   delete ATTR_TARGET;
   delete ATTR_VALUES;
   delete ATTR_VALIGN;
   delete ATTR_VSPACE;
   delete ATTR_POSTER;
   delete ATTR_POINTS;
   delete ATTR_PROMPT;
+  delete ATTR_SRCDOC;
   delete ATTR_SCOPED;
   delete ATTR_STRING;
   delete ATTR_SCHEME;
   delete ATTR_STROKE;
   delete ATTR_RADIUS;
   delete ATTR_RESULT;
   delete ATTR_REPEAT;
   delete ATTR_RSPACE;
--- a/parser/html/nsHtml5AttributeName.h
+++ b/parser/html/nsHtml5AttributeName.h
@@ -251,16 +251,17 @@ class nsHtml5AttributeName
     static nsHtml5AttributeName* ATTR_WIDTHS;
     static nsHtml5AttributeName* ATTR_TARGET;
     static nsHtml5AttributeName* ATTR_VALUES;
     static nsHtml5AttributeName* ATTR_VALIGN;
     static nsHtml5AttributeName* ATTR_VSPACE;
     static nsHtml5AttributeName* ATTR_POSTER;
     static nsHtml5AttributeName* ATTR_POINTS;
     static nsHtml5AttributeName* ATTR_PROMPT;
+    static nsHtml5AttributeName* ATTR_SRCDOC;
     static nsHtml5AttributeName* ATTR_SCOPED;
     static nsHtml5AttributeName* ATTR_STRING;
     static nsHtml5AttributeName* ATTR_SCHEME;
     static nsHtml5AttributeName* ATTR_STROKE;
     static nsHtml5AttributeName* ATTR_RADIUS;
     static nsHtml5AttributeName* ATTR_RESULT;
     static nsHtml5AttributeName* ATTR_REPEAT;
     static nsHtml5AttributeName* ATTR_RSPACE;
--- a/parser/html/nsHtml5Parser.cpp
+++ b/parser/html/nsHtml5Parser.cpp
@@ -5,16 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsContentUtils.h"
 #include "nsHtml5Tokenizer.h"
 #include "nsHtml5TreeBuilder.h"
 #include "nsHtml5Parser.h"
 #include "nsHtml5AtomTable.h"
 #include "nsHtml5DependentUTF16Buffer.h"
+#include "nsIInputStreamChannel.h"
 
 NS_INTERFACE_TABLE_HEAD(nsHtml5Parser)
   NS_INTERFACE_TABLE2(nsHtml5Parser, nsIParser, nsISupportsWeakReference)
   NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(nsHtml5Parser)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsHtml5Parser)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsHtml5Parser)
@@ -208,16 +209,19 @@ nsHtml5Parser::Parse(const nsAString& aS
   nsRefPtr<nsHtml5TreeOpExecutor> treeOpKungFuDeathGrip(mExecutor);
 
   if (!mExecutor->HasStarted()) {
     NS_ASSERTION(!mStreamParser,
                  "Had stream parser but document.write started life cycle.");
     // This is the first document.write() on a document.open()ed document
     mExecutor->SetParser(this);
     mTreeBuilder->setScriptingEnabled(mExecutor->IsScriptEnabled());
+
+    mTreeBuilder->setIsSrcdocDocument(IsSrcdocDocument());
+
     mTokenizer->start();
     mExecutor->Start();
     if (!aContentType.EqualsLiteral("text/html")) {
       mTreeBuilder->StartPlainText();
       mTokenizer->StartPlainText();
     }
     /*
      * If you move the following line, be very careful not to cause 
@@ -669,16 +673,19 @@ nsHtml5Parser::Initialize(nsIDocument* a
                           nsISupports* aContainer,
                           nsIChannel* aChannel)
 {
   return mExecutor->Init(aDoc, aURI, aContainer, aChannel);
 }
 
 void
 nsHtml5Parser::StartTokenizer(bool aScriptingEnabled) {
+
+  mTreeBuilder->setIsSrcdocDocument(IsSrcdocDocument());
+
   mTreeBuilder->SetPreventScriptExecution(!aScriptingEnabled);
   mTreeBuilder->setScriptingEnabled(aScriptingEnabled);
   mTokenizer->start();
 }
 
 void
 nsHtml5Parser::InitializeDocWriteParserState(nsAHtml5TreeBuilderState* aState,
                                              int32_t aLine)
@@ -692,8 +699,26 @@ nsHtml5Parser::InitializeDocWriteParserS
 
 void
 nsHtml5Parser::ContinueAfterFailedCharsetSwitch()
 {
   NS_PRECONDITION(mStreamParser, 
     "Tried to continue after failed charset switch without a stream parser");
   mStreamParser->ContinueAfterFailedCharsetSwitch();
 }
+
+bool
+nsHtml5Parser::IsSrcdocDocument()
+{
+  nsresult rv;
+
+  bool isSrcdoc = false;
+  nsCOMPtr<nsIChannel> channel;
+  rv = GetChannel(getter_AddRefs(channel));
+  if (NS_SUCCEEDED(rv)) {
+    nsCOMPtr<nsIInputStreamChannel> isr = do_QueryInterface(channel);
+    if (isr) {
+      isr->GetIsSrcdocChannel(&isSrcdoc);
+    }
+  }
+  return isSrcdoc;
+}
+
--- a/parser/html/nsHtml5Parser.h
+++ b/parser/html/nsHtml5Parser.h
@@ -253,16 +253,18 @@ class nsHtml5Parser : public nsIParser,
       return mStreamParser;
     }
 
     /**
      * Parse until pending data is exhausted or a script blocks the parser
      */
     void ParseUntilBlocked();
 
+    bool IsSrcdocDocument();
+
   private:
 
     // State variables
 
     /**
      * Whether the last character tokenized was a carriage return (for CRLF)
      */
     bool                          mLastWasCR;
--- a/parser/html/nsHtml5StreamParser.cpp
+++ b/parser/html/nsHtml5StreamParser.cpp
@@ -21,16 +21,17 @@
 #include "nsIScriptError.h"
 #include "mozilla/Preferences.h"
 #include "nsHtml5Highlighter.h"
 #include "expat_config.h"
 #include "expat.h"
 #include "nsINestedURI.h"
 #include "nsCharsetSource.h"
 #include "nsIWyciwygChannel.h"
+#include "nsIInputStreamChannel.h"
 
 #include "mozilla/dom/EncodingUtils.h"
 
 using namespace mozilla;
 using mozilla::dom::EncodingUtils;
 
 int32_t nsHtml5StreamParser::sTimerInitialDelay = 120;
 int32_t nsHtml5StreamParser::sTimerSubsequentDelay = 120;
@@ -867,16 +868,17 @@ nsHtml5StreamParser::OnStartRequest(nsIR
     mTokenizer->StartViewSource(NS_ConvertUTF8toUTF16(mViewSourceTitle));
   }
 
   // For View Source, the parser should run with scripts "enabled" if a normal
   // load would have scripts enabled.
   bool scriptingEnabled = mMode == LOAD_AS_DATA ?
                                    false : mExecutor->IsScriptEnabled();
   mOwner->StartTokenizer(scriptingEnabled);
+  mTreeBuilder->setIsSrcdocDocument(IsSrcdocDocument());
   mTreeBuilder->setScriptingEnabled(scriptingEnabled);
   mTreeBuilder->SetPreventScriptExecution(!((mMode == NORMAL) &&
                                             scriptingEnabled));
   mTokenizer->start();
   mExecutor->Start();
   mExecutor->StartReadingFromStage();
 
   if (mMode == PLAIN_TEXT) {
@@ -1604,8 +1606,25 @@ nsHtml5StreamParser::MarkAsBroken()
   Terminate();
   mTreeBuilder->MarkAsBroken();
   mozilla::DebugOnly<bool> hadOps = mTreeBuilder->Flush(false);
   NS_ASSERTION(hadOps, "Should have had the markAsBroken op!");
   if (NS_FAILED(NS_DispatchToMainThread(mExecutorFlusher))) {
     NS_WARNING("failed to dispatch executor flush event");
   }
 }
+
+bool
+nsHtml5StreamParser::IsSrcdocDocument()
+{
+  nsresult rv;
+
+  bool isSrcdoc = false;
+  nsCOMPtr<nsIChannel> channel;
+  rv = GetChannel(getter_AddRefs(channel));
+  if (NS_SUCCEEDED(rv)) {
+    nsCOMPtr<nsIInputStreamChannel> isr = do_QueryInterface(channel);
+    if (isr) {
+      isr->GetIsSrcdocChannel(&isSrcdoc);
+    }
+  }
+  return isSrcdoc;
+}
--- a/parser/html/nsHtml5StreamParser.h
+++ b/parser/html/nsHtml5StreamParser.h
@@ -193,16 +193,18 @@ class nsHtml5StreamParser : public nsISt
 
     /**
      * Sets the URL for View Source title in case this parser ends up being
      * used for View Source. If aURL is a view-source: URL, takes the inner
      * URL. data: URLs are shown with an ellipsis instead of the actual data.
      */
     void SetViewSourceTitle(nsIURI* aURL);
 
+    bool IsSrcdocDocument();
+
   private:
 
 #ifdef DEBUG
     bool IsParserThread() {
       bool ret;
       mThread->IsOnCurrentThread(&ret);
       return ret;
     }
--- a/parser/html/nsHtml5StringParser.cpp
+++ b/parser/html/nsHtml5StringParser.cpp
@@ -97,16 +97,17 @@ nsHtml5StringParser::Tokenize(const nsAS
   mExecutor->Init(aDocument, uri, nullptr, nullptr);
 
   mExecutor->SetParser(this);
   mExecutor->SetNodeInfoManager(aDocument->NodeInfoManager());
 
   NS_PRECONDITION(!mExecutor->HasStarted(),
                   "Tried to start parse without initializing the parser.");
   mTreeBuilder->setScriptingEnabled(aScriptingEnabledForNoscriptParsing);
+  mTreeBuilder->setIsSrcdocDocument(aDocument->IsSrcdocDocument()); 
   mTokenizer->start();
   mExecutor->Start(); // Don't call WillBuildModel in fragment case
   if (!aSourceBuffer.IsEmpty()) {
     bool lastWasCR = false;
     nsHtml5DependentUTF16Buffer buffer(aSourceBuffer);
     while (buffer.hasMore()) {
       buffer.adjust(lastWasCR);
       lastWasCR = false;
--- a/parser/html/nsHtml5TreeBuilder.cpp
+++ b/parser/html/nsHtml5TreeBuilder.cpp
@@ -3114,16 +3114,23 @@ bool
 nsHtml5TreeBuilder::isSecondOnStackBody()
 {
   return currentPtr >= 1 && stack[1]->getGroup() == NS_HTML5TREE_BUILDER_BODY;
 }
 
 void 
 nsHtml5TreeBuilder::documentModeInternal(nsHtml5DocumentMode m, nsString* publicIdentifier, nsString* systemIdentifier, bool html4SpecificAdditionalErrorChecks)
 {
+  if (isSrcdocDocument) {
+    quirks = false;
+    if (this) {
+      this->documentMode(STANDARDS_MODE);
+    }
+    return;
+  }
   quirks = (m == QUIRKS_MODE);
   if (this) {
     this->documentMode(m);
   }
 }
 
 bool 
 nsHtml5TreeBuilder::isAlmostStandards(nsString* publicIdentifier, nsString* systemIdentifier)
@@ -4060,16 +4067,22 @@ nsHtml5TreeBuilder::isScriptingEnabled()
 
 void 
 nsHtml5TreeBuilder::setScriptingEnabled(bool scriptingEnabled)
 {
   this->scriptingEnabled = scriptingEnabled;
 }
 
 void 
+nsHtml5TreeBuilder::setIsSrcdocDocument(bool isSrcdocDocument)
+{
+  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()) {
       errNonSpaceInTable();
       reconstructTheActiveFormattingElements();
       if (!stack[currentPtr]->isFosterParenting()) {
         appendCharacters(currentNode(), charBuffer, 0, charBufferLen);
--- a/parser/html/nsHtml5TreeBuilder.h
+++ b/parser/html/nsHtml5TreeBuilder.h
@@ -93,16 +93,17 @@ class nsHtml5TreeBuilder : public nsAHtm
     nsIContent** formPointer;
     nsIContent** headPointer;
     nsIContent** deepTreeSurrogateParent;
   protected:
     autoJArray<PRUnichar,int32_t> charBuffer;
     int32_t charBufferLen;
   private:
     bool quirks;
+    bool isSrcdocDocument;
   public:
     void startTokenization(nsHtml5Tokenizer* self);
     void doctype(nsIAtom* name, nsString* publicIdentifier, nsString* systemIdentifier, bool forceQuirks);
     void comment(PRUnichar* buf, int32_t start, int32_t length);
     void characters(const PRUnichar* buf, int32_t start, int32_t length);
     void zeroOriginatingReplacementCharacter();
     void eof();
     void endTokenization();
@@ -230,16 +231,17 @@ class nsHtml5TreeBuilder : public nsAHtm
     bool isInForeignButNotHtmlOrMathTextIntegrationPoint();
   public:
     void setFragmentContext(nsIAtom* context, int32_t ns, nsIContent** node, bool quirks);
   protected:
     nsIContent** currentNode();
   public:
     bool isScriptingEnabled();
     void setScriptingEnabled(bool scriptingEnabled);
+    void setIsSrcdocDocument(bool isSrcdocDocument);
     void flushCharacters();
   private:
     bool charBufferContainsNonWhitespace();
   public:
     nsAHtml5TreeBuilderState* newSnapshot();
     bool snapshotMatches(nsAHtml5TreeBuilderState* snapshot);
     void loadState(nsAHtml5TreeBuilderState* snapshot, nsHtml5AtomTable* interner);
   private:
--- a/parser/html/nsHtml5TreeBuilderCppSupplement.h
+++ b/parser/html/nsHtml5TreeBuilderCppSupplement.h
@@ -818,25 +818,25 @@ nsHtml5TreeBuilder::errStrayDoctype()
   if (MOZ_UNLIKELY(mViewSource)) {
     mViewSource->AddErrorToCurrentRun("errStrayDoctype");
   }
 }
 
 void
 nsHtml5TreeBuilder::errAlmostStandardsDoctype()
 {
-  if (MOZ_UNLIKELY(mViewSource)) {
+  if (MOZ_UNLIKELY(mViewSource) && !isSrcdocDocument) {
     mViewSource->AddErrorToCurrentRun("errAlmostStandardsDoctype");
   }
 }
 
 void
 nsHtml5TreeBuilder::errQuirkyDoctype()
 {
-  if (MOZ_UNLIKELY(mViewSource)) {
+  if (MOZ_UNLIKELY(mViewSource) && !isSrcdocDocument) {
     mViewSource->AddErrorToCurrentRun("errQuirkyDoctype");
   }
 }
 
 void
 nsHtml5TreeBuilder::errNonSpaceInTrailer()
 {
   if (MOZ_UNLIKELY(mViewSource)) {
@@ -890,17 +890,17 @@ nsHtml5TreeBuilder::errFooBetweenHeadAnd
   if (MOZ_UNLIKELY(mViewSource)) {
     mViewSource->AddErrorToCurrentRun("errFooBetweenHeadAndBody", aName);
   }
 }
 
 void
 nsHtml5TreeBuilder::errStartTagWithoutDoctype()
 {
-  if (MOZ_UNLIKELY(mViewSource)) {
+  if (MOZ_UNLIKELY(mViewSource) && !isSrcdocDocument) {
     mViewSource->AddErrorToCurrentRun("errStartTagWithoutDoctype");
   }
 }
 
 void
 nsHtml5TreeBuilder::errNoSelectInTableScope()
 {
   if (MOZ_UNLIKELY(mViewSource)) {
@@ -1011,17 +1011,17 @@ nsHtml5TreeBuilder::errStartTagInTableBo
   if (MOZ_UNLIKELY(mViewSource)) {
     mViewSource->AddErrorToCurrentRun("errStartTagInTableBody", aName);
   }
 }
 
 void
 nsHtml5TreeBuilder::errEndTagSeenWithoutDoctype()
 {
-  if (MOZ_UNLIKELY(mViewSource)) {
+  if (MOZ_UNLIKELY(mViewSource) && !isSrcdocDocument) {
     mViewSource->AddErrorToCurrentRun("errEndTagSeenWithoutDoctype");
   }
 }
 
 void
 nsHtml5TreeBuilder::errEndTagAfterBody()
 {
   if (MOZ_UNLIKELY(mViewSource)) {