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 idunknown
push userunknown
push dateunknown
reviewershsivonen
bugs802895
milestone25.0a1
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)) {