diff --git a/content/base/public/nsIDocument.h b/content/base/public/nsIDocument.h index 631647b7a0b6..7a32553424fd 100644 --- a/content/base/public/nsIDocument.h +++ b/content/base/public/nsIDocument.h @@ -126,8 +126,8 @@ class Element; #define NS_IDOCUMENT_IID \ -{ 0x18e4d4bd, 0x006b, 0x4008, \ - { 0x90, 0x05, 0x27, 0x57, 0x35, 0xf0, 0xd4, 0x85 } } +{ 0xe4bc7342, 0x6528, 0x4979, \ + { 0x9e, 0xb5, 0x12, 0xef, 0x4a, 0x97, 0xe1, 0xea } } // Flag for AddStyleSheet(). #define NS_STYLESHEET_FROM_CATALOG (1 << 0) @@ -1386,7 +1386,8 @@ public: * to nsPreloadURIs::PreloadURIs() in file nsParser.cpp whenever the * parser-module is linked with gklayout-module. */ - virtual void MaybePreLoadImage(nsIURI* uri) = 0; + virtual void MaybePreLoadImage(nsIURI* uri, + const nsAString& aCrossOriginAttr) = 0; /** * Called by nsParser to preload style sheets. Can also be merged into diff --git a/content/base/src/nsDocument.cpp b/content/base/src/nsDocument.cpp index a8761d46b0d7..7f3ac04b8f6e 100644 --- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -7668,7 +7668,7 @@ FireOrClearDelayedEvents(nsTArray >& aDocuments, } void -nsDocument::MaybePreLoadImage(nsIURI* uri) +nsDocument::MaybePreLoadImage(nsIURI* uri, const nsAString &aCrossOriginAttr) { // Early exit if the img is already present in the img-cache // which indicates that the "real" load has already started and @@ -7680,6 +7680,17 @@ nsDocument::MaybePreLoadImage(nsIURI* uri) return; } + nsLoadFlags loadFlags = nsIRequest::LOAD_NORMAL; + PRInt32 corsmode = GetCORSMode(); + if (aCrossOriginAttr.LowercaseEqualsLiteral("anonymous")) { + loadFlags |= imgILoader::LOAD_CORS_ANONYMOUS; + } else if (aCrossOriginAttr.LowercaseEqualsLiteral("use-credentials")) { + loadFlags |= imgILoader::LOAD_CORS_USE_CREDENTIALS; + } + // else should we err on the side of not doing the preload if + // aCrossOriginAttr is nonempty? Let's err on the side of doing the + // preload as CORS_NONE. + // Image not in cache - trigger preload nsCOMPtr request; nsresult rv = @@ -7688,7 +7699,7 @@ nsDocument::MaybePreLoadImage(nsIURI* uri) NodePrincipal(), mDocumentURI, // uri of document used as referrer nsnull, // no observer - nsIRequest::LOAD_NORMAL, + loadFlags, getter_AddRefs(request)); // Pin image-reference to avoid evicting it from the img-cache before diff --git a/parser/html/javasrc/AttributeName.java b/parser/html/javasrc/AttributeName.java index 4a422455df27..8e5d7f0809d9 100644 --- a/parser/html/javasrc/AttributeName.java +++ b/parser/html/javasrc/AttributeName.java @@ -1094,6 +1094,7 @@ public final class AttributeName public static final AttributeName CELLPADDING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellpadding"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); public static final AttributeName CELLSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); public static final AttributeName COLUMNWIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnwidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); + public static final AttributeName CROSSORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("crossorigin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); public static final AttributeName COLUMNALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); public static final AttributeName COLUMNLINES = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnlines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); public static final AttributeName CONTEXTMENU = new AttributeName(ALL_NO_NS, SAME_LOCAL("contextmenu"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG); @@ -1676,6 +1677,7 @@ public final class AttributeName CELLPADDING, CELLSPACING, COLUMNWIDTH, + CROSSORIGIN, COLUMNALIGN, COLUMNLINES, CONTEXTMENU, @@ -2259,6 +2261,7 @@ public final class AttributeName 371448425, 371448430, 371545055, + 371593469, 371596922, 371758751, 371964792, diff --git a/parser/html/nsHtml5AtomList.h b/parser/html/nsHtml5AtomList.h index 7ffc25e1e5a5..f375710c25b8 100644 --- a/parser/html/nsHtml5AtomList.h +++ b/parser/html/nsHtml5AtomList.h @@ -458,6 +458,7 @@ HTML5_ATOM(arabic_form, "arabic-form") HTML5_ATOM(cellpadding, "cellpadding") HTML5_ATOM(cellspacing, "cellspacing") HTML5_ATOM(columnwidth, "columnwidth") +HTML5_ATOM(crossorigin, "crossorigin") HTML5_ATOM(columnalign, "columnalign") HTML5_ATOM(columnlines, "columnlines") HTML5_ATOM(contextmenu, "contextmenu") diff --git a/parser/html/nsHtml5AttributeName.cpp b/parser/html/nsHtml5AttributeName.cpp index 07bdf434c4a1..82748c3c29ac 100644 --- a/parser/html/nsHtml5AttributeName.cpp +++ b/parser/html/nsHtml5AttributeName.cpp @@ -576,6 +576,7 @@ nsHtml5AttributeName* nsHtml5AttributeName::ATTR_ARABIC_FORM = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_CELLPADDING = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_CELLSPACING = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_COLUMNWIDTH = nsnull; +nsHtml5AttributeName* nsHtml5AttributeName::ATTR_CROSSORIGIN = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_COLUMNALIGN = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_COLUMNLINES = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_CONTEXTMENU = nsnull; @@ -781,7 +782,7 @@ nsHtml5AttributeName* nsHtml5AttributeName::ATTR_GLYPH_ORIENTATION_VERTICAL = ns nsHtml5AttributeName* nsHtml5AttributeName::ATTR_COLOR_INTERPOLATION_FILTERS = nsnull; nsHtml5AttributeName* nsHtml5AttributeName::ATTR_GLYPH_ORIENTATION_HORIZONTAL = nsnull; nsHtml5AttributeName** nsHtml5AttributeName::ATTRIBUTE_NAMES = 0; -static PRInt32 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, 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, 251083937, 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, 318721061, 320076137, 322657125, 322887778, 323506876, 323572412, 323605180, 323938869, 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, 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 PRInt32 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, 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, 251083937, 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, 318721061, 320076137, 322657125, 322887778, 323506876, 323572412, 323605180, 323938869, 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 nsHtml5AttributeName::ATTRIBUTE_HASHES = { ATTRIBUTE_HASHES_DATA, NS_ARRAY_LENGTH(ATTRIBUTE_HASHES_DATA) }; void nsHtml5AttributeName::initializeStatics() @@ -1195,6 +1196,7 @@ nsHtml5AttributeName::initializeStatics() ATTR_CELLPADDING = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::cellpadding), ALL_NO_PREFIX); ATTR_CELLSPACING = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::cellspacing), ALL_NO_PREFIX); ATTR_COLUMNWIDTH = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::columnwidth), ALL_NO_PREFIX); + ATTR_CROSSORIGIN = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::crossorigin), ALL_NO_PREFIX); ATTR_COLUMNALIGN = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::columnalign), ALL_NO_PREFIX); ATTR_COLUMNLINES = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::columnlines), ALL_NO_PREFIX); ATTR_CONTEXTMENU = new nsHtml5AttributeName(ALL_NO_NS, SAME_LOCAL(nsHtml5Atoms::contextmenu), ALL_NO_PREFIX); @@ -1399,7 +1401,7 @@ nsHtml5AttributeName::initializeStatics() 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*[581]; + ATTRIBUTE_NAMES = new nsHtml5AttributeName*[582]; ATTRIBUTE_NAMES[0] = ATTR_D; ATTRIBUTE_NAMES[1] = ATTR_K; ATTRIBUTE_NAMES[2] = ATTR_R; @@ -1777,210 +1779,211 @@ nsHtml5AttributeName::initializeStatics() ATTRIBUTE_NAMES[374] = ATTR_CELLPADDING; ATTRIBUTE_NAMES[375] = ATTR_CELLSPACING; ATTRIBUTE_NAMES[376] = ATTR_COLUMNWIDTH; - 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; + ATTRIBUTE_NAMES[377] = ATTR_CROSSORIGIN; + ATTRIBUTE_NAMES[378] = ATTR_COLUMNALIGN; + ATTRIBUTE_NAMES[379] = ATTR_COLUMNLINES; + ATTRIBUTE_NAMES[380] = ATTR_CONTEXTMENU; + ATTRIBUTE_NAMES[381] = ATTR_BASEPROFILE; + ATTRIBUTE_NAMES[382] = ATTR_FONT_FAMILY; + ATTRIBUTE_NAMES[383] = ATTR_FRAMEBORDER; + ATTRIBUTE_NAMES[384] = ATTR_FILTERUNITS; + ATTRIBUTE_NAMES[385] = ATTR_FLOOD_COLOR; + ATTRIBUTE_NAMES[386] = ATTR_FONT_WEIGHT; + ATTRIBUTE_NAMES[387] = ATTR_HORIZ_ADV_X; + ATTRIBUTE_NAMES[388] = ATTR_ONDRAGLEAVE; + ATTRIBUTE_NAMES[389] = ATTR_ONMOUSEMOVE; + ATTRIBUTE_NAMES[390] = ATTR_ORIENTATION; + ATTRIBUTE_NAMES[391] = ATTR_ONMOUSEDOWN; + ATTRIBUTE_NAMES[392] = ATTR_ONMOUSEOVER; + ATTRIBUTE_NAMES[393] = ATTR_ONDRAGENTER; + ATTRIBUTE_NAMES[394] = ATTR_IDEOGRAPHIC; + ATTRIBUTE_NAMES[395] = ATTR_ONBEFORECUT; + ATTRIBUTE_NAMES[396] = ATTR_ONFORMINPUT; + ATTRIBUTE_NAMES[397] = ATTR_ONDRAGSTART; + ATTRIBUTE_NAMES[398] = ATTR_ONMOVESTART; + ATTRIBUTE_NAMES[399] = ATTR_MARKERUNITS; + ATTRIBUTE_NAMES[400] = ATTR_MATHVARIANT; + ATTRIBUTE_NAMES[401] = ATTR_MARGINWIDTH; + ATTRIBUTE_NAMES[402] = ATTR_MARKERWIDTH; + ATTRIBUTE_NAMES[403] = ATTR_TEXT_ANCHOR; + ATTRIBUTE_NAMES[404] = ATTR_TABLEVALUES; + ATTRIBUTE_NAMES[405] = ATTR_SCRIPTLEVEL; + ATTRIBUTE_NAMES[406] = ATTR_REPEATCOUNT; + ATTRIBUTE_NAMES[407] = ATTR_STITCHTILES; + ATTRIBUTE_NAMES[408] = ATTR_STARTOFFSET; + ATTRIBUTE_NAMES[409] = ATTR_SCROLLDELAY; + ATTRIBUTE_NAMES[410] = ATTR_XMLNS_XLINK; + ATTRIBUTE_NAMES[411] = ATTR_XLINK_TITLE; + ATTRIBUTE_NAMES[412] = ATTR_ARIA_INVALID; + ATTRIBUTE_NAMES[413] = ATTR_ARIA_PRESSED; + ATTRIBUTE_NAMES[414] = ATTR_ARIA_CHECKED; + ATTRIBUTE_NAMES[415] = ATTR_AUTOCOMPLETE; + ATTRIBUTE_NAMES[416] = ATTR_ARIA_SETSIZE; + ATTRIBUTE_NAMES[417] = ATTR_ARIA_CHANNEL; + ATTRIBUTE_NAMES[418] = ATTR_EQUALCOLUMNS; + ATTRIBUTE_NAMES[419] = ATTR_DISPLAYSTYLE; + ATTRIBUTE_NAMES[420] = ATTR_DATAFORMATAS; + ATTRIBUTE_NAMES[421] = ATTR_FILL_OPACITY; + ATTRIBUTE_NAMES[422] = ATTR_FONT_VARIANT; + ATTRIBUTE_NAMES[423] = ATTR_FONT_STRETCH; + ATTRIBUTE_NAMES[424] = ATTR_FRAMESPACING; + ATTRIBUTE_NAMES[425] = ATTR_KERNELMATRIX; + ATTRIBUTE_NAMES[426] = ATTR_ONDEACTIVATE; + ATTRIBUTE_NAMES[427] = ATTR_ONROWSDELETE; + ATTRIBUTE_NAMES[428] = ATTR_ONMOUSELEAVE; + ATTRIBUTE_NAMES[429] = ATTR_ONFORMCHANGE; + ATTRIBUTE_NAMES[430] = ATTR_ONCELLCHANGE; + ATTRIBUTE_NAMES[431] = ATTR_ONMOUSEWHEEL; + ATTRIBUTE_NAMES[432] = ATTR_ONMOUSEENTER; + ATTRIBUTE_NAMES[433] = ATTR_ONAFTERPRINT; + ATTRIBUTE_NAMES[434] = ATTR_ONBEFORECOPY; + ATTRIBUTE_NAMES[435] = ATTR_MARGINHEIGHT; + ATTRIBUTE_NAMES[436] = ATTR_MARKERHEIGHT; + ATTRIBUTE_NAMES[437] = ATTR_MARKER_START; + ATTRIBUTE_NAMES[438] = ATTR_MATHEMATICAL; + ATTRIBUTE_NAMES[439] = ATTR_LENGTHADJUST; + ATTRIBUTE_NAMES[440] = ATTR_UNSELECTABLE; + ATTRIBUTE_NAMES[441] = ATTR_UNICODE_BIDI; + ATTRIBUTE_NAMES[442] = ATTR_UNITS_PER_EM; + ATTRIBUTE_NAMES[443] = ATTR_WORD_SPACING; + ATTRIBUTE_NAMES[444] = ATTR_WRITING_MODE; + ATTRIBUTE_NAMES[445] = ATTR_V_ALPHABETIC; + ATTRIBUTE_NAMES[446] = ATTR_PATTERNUNITS; + ATTRIBUTE_NAMES[447] = ATTR_SPREADMETHOD; + ATTRIBUTE_NAMES[448] = ATTR_SURFACESCALE; + ATTRIBUTE_NAMES[449] = ATTR_STROKE_WIDTH; + ATTRIBUTE_NAMES[450] = ATTR_REPEAT_START; + ATTRIBUTE_NAMES[451] = ATTR_STDDEVIATION; + ATTRIBUTE_NAMES[452] = ATTR_STOP_OPACITY; + ATTRIBUTE_NAMES[453] = ATTR_ARIA_CONTROLS; + ATTRIBUTE_NAMES[454] = ATTR_ARIA_HASPOPUP; + ATTRIBUTE_NAMES[455] = ATTR_ACCENT_HEIGHT; + ATTRIBUTE_NAMES[456] = ATTR_ARIA_VALUENOW; + ATTRIBUTE_NAMES[457] = ATTR_ARIA_RELEVANT; + ATTRIBUTE_NAMES[458] = ATTR_ARIA_POSINSET; + ATTRIBUTE_NAMES[459] = ATTR_ARIA_VALUEMAX; + ATTRIBUTE_NAMES[460] = ATTR_ARIA_READONLY; + ATTRIBUTE_NAMES[461] = ATTR_ARIA_SELECTED; + ATTRIBUTE_NAMES[462] = ATTR_ARIA_REQUIRED; + ATTRIBUTE_NAMES[463] = ATTR_ARIA_EXPANDED; + ATTRIBUTE_NAMES[464] = ATTR_ARIA_DISABLED; + ATTRIBUTE_NAMES[465] = ATTR_ATTRIBUTETYPE; + ATTRIBUTE_NAMES[466] = ATTR_ATTRIBUTENAME; + ATTRIBUTE_NAMES[467] = ATTR_ARIA_DATATYPE; + ATTRIBUTE_NAMES[468] = ATTR_ARIA_VALUEMIN; + ATTRIBUTE_NAMES[469] = ATTR_BASEFREQUENCY; + ATTRIBUTE_NAMES[470] = ATTR_COLUMNSPACING; + ATTRIBUTE_NAMES[471] = ATTR_COLOR_PROFILE; + ATTRIBUTE_NAMES[472] = ATTR_CLIPPATHUNITS; + ATTRIBUTE_NAMES[473] = ATTR_DEFINITIONURL; + ATTRIBUTE_NAMES[474] = ATTR_GRADIENTUNITS; + ATTRIBUTE_NAMES[475] = ATTR_FLOOD_OPACITY; + ATTRIBUTE_NAMES[476] = ATTR_ONAFTERUPDATE; + ATTRIBUTE_NAMES[477] = ATTR_ONERRORUPDATE; + ATTRIBUTE_NAMES[478] = ATTR_ONBEFOREPASTE; + ATTRIBUTE_NAMES[479] = ATTR_ONLOSECAPTURE; + ATTRIBUTE_NAMES[480] = ATTR_ONCONTEXTMENU; + ATTRIBUTE_NAMES[481] = ATTR_ONSELECTSTART; + ATTRIBUTE_NAMES[482] = ATTR_ONBEFOREPRINT; + ATTRIBUTE_NAMES[483] = ATTR_MOVABLELIMITS; + ATTRIBUTE_NAMES[484] = ATTR_LINETHICKNESS; + ATTRIBUTE_NAMES[485] = ATTR_UNICODE_RANGE; + ATTRIBUTE_NAMES[486] = ATTR_THINMATHSPACE; + ATTRIBUTE_NAMES[487] = ATTR_VERT_ORIGIN_X; + ATTRIBUTE_NAMES[488] = ATTR_VERT_ORIGIN_Y; + ATTRIBUTE_NAMES[489] = ATTR_V_IDEOGRAPHIC; + ATTRIBUTE_NAMES[490] = ATTR_PRESERVEALPHA; + ATTRIBUTE_NAMES[491] = ATTR_SCRIPTMINSIZE; + ATTRIBUTE_NAMES[492] = ATTR_SPECIFICATION; + ATTRIBUTE_NAMES[493] = ATTR_XLINK_ACTUATE; + ATTRIBUTE_NAMES[494] = ATTR_XLINK_ARCROLE; + ATTRIBUTE_NAMES[495] = ATTR_ACCEPT_CHARSET; + ATTRIBUTE_NAMES[496] = ATTR_ALIGNMENTSCOPE; + ATTRIBUTE_NAMES[497] = ATTR_ARIA_MULTILINE; + ATTRIBUTE_NAMES[498] = ATTR_BASELINE_SHIFT; + ATTRIBUTE_NAMES[499] = ATTR_HORIZ_ORIGIN_X; + ATTRIBUTE_NAMES[500] = ATTR_HORIZ_ORIGIN_Y; + ATTRIBUTE_NAMES[501] = ATTR_ONBEFOREUPDATE; + ATTRIBUTE_NAMES[502] = ATTR_ONFILTERCHANGE; + ATTRIBUTE_NAMES[503] = ATTR_ONROWSINSERTED; + ATTRIBUTE_NAMES[504] = ATTR_ONBEFOREUNLOAD; + ATTRIBUTE_NAMES[505] = ATTR_MATHBACKGROUND; + ATTRIBUTE_NAMES[506] = ATTR_LETTER_SPACING; + ATTRIBUTE_NAMES[507] = ATTR_LIGHTING_COLOR; + ATTRIBUTE_NAMES[508] = ATTR_THICKMATHSPACE; + ATTRIBUTE_NAMES[509] = ATTR_TEXT_RENDERING; + ATTRIBUTE_NAMES[510] = ATTR_V_MATHEMATICAL; + ATTRIBUTE_NAMES[511] = ATTR_POINTER_EVENTS; + ATTRIBUTE_NAMES[512] = ATTR_PRIMITIVEUNITS; + ATTRIBUTE_NAMES[513] = ATTR_SYSTEMLANGUAGE; + ATTRIBUTE_NAMES[514] = ATTR_STROKE_LINECAP; + ATTRIBUTE_NAMES[515] = ATTR_SUBSCRIPTSHIFT; + ATTRIBUTE_NAMES[516] = ATTR_STROKE_OPACITY; + ATTRIBUTE_NAMES[517] = ATTR_ARIA_DROPEFFECT; + ATTRIBUTE_NAMES[518] = ATTR_ARIA_LABELLEDBY; + ATTRIBUTE_NAMES[519] = ATTR_ARIA_TEMPLATEID; + ATTRIBUTE_NAMES[520] = ATTR_COLOR_RENDERING; + ATTRIBUTE_NAMES[521] = ATTR_CONTENTEDITABLE; + ATTRIBUTE_NAMES[522] = ATTR_DIFFUSECONSTANT; + ATTRIBUTE_NAMES[523] = ATTR_ONDATAAVAILABLE; + ATTRIBUTE_NAMES[524] = ATTR_ONCONTROLSELECT; + ATTRIBUTE_NAMES[525] = ATTR_IMAGE_RENDERING; + ATTRIBUTE_NAMES[526] = ATTR_MEDIUMMATHSPACE; + ATTRIBUTE_NAMES[527] = ATTR_TEXT_DECORATION; + ATTRIBUTE_NAMES[528] = ATTR_SHAPE_RENDERING; + ATTRIBUTE_NAMES[529] = ATTR_STROKE_LINEJOIN; + ATTRIBUTE_NAMES[530] = ATTR_REPEAT_TEMPLATE; + ATTRIBUTE_NAMES[531] = ATTR_ARIA_DESCRIBEDBY; + ATTRIBUTE_NAMES[532] = ATTR_CONTENTSTYLETYPE; + ATTRIBUTE_NAMES[533] = ATTR_FONT_SIZE_ADJUST; + ATTRIBUTE_NAMES[534] = ATTR_KERNELUNITLENGTH; + ATTRIBUTE_NAMES[535] = ATTR_ONBEFOREACTIVATE; + ATTRIBUTE_NAMES[536] = ATTR_ONPROPERTYCHANGE; + ATTRIBUTE_NAMES[537] = ATTR_ONDATASETCHANGED; + ATTRIBUTE_NAMES[538] = ATTR_MASKCONTENTUNITS; + ATTRIBUTE_NAMES[539] = ATTR_PATTERNTRANSFORM; + ATTRIBUTE_NAMES[540] = ATTR_REQUIREDFEATURES; + ATTRIBUTE_NAMES[541] = ATTR_RENDERING_INTENT; + ATTRIBUTE_NAMES[542] = ATTR_SPECULAREXPONENT; + ATTRIBUTE_NAMES[543] = ATTR_SPECULARCONSTANT; + ATTRIBUTE_NAMES[544] = ATTR_SUPERSCRIPTSHIFT; + ATTRIBUTE_NAMES[545] = ATTR_STROKE_DASHARRAY; + ATTRIBUTE_NAMES[546] = ATTR_XCHANNELSELECTOR; + ATTRIBUTE_NAMES[547] = ATTR_YCHANNELSELECTOR; + ATTRIBUTE_NAMES[548] = ATTR_ARIA_AUTOCOMPLETE; + ATTRIBUTE_NAMES[549] = ATTR_CONTENTSCRIPTTYPE; + ATTRIBUTE_NAMES[550] = ATTR_ENABLE_BACKGROUND; + ATTRIBUTE_NAMES[551] = ATTR_DOMINANT_BASELINE; + ATTRIBUTE_NAMES[552] = ATTR_GRADIENTTRANSFORM; + ATTRIBUTE_NAMES[553] = ATTR_ONBEFORDEACTIVATE; + ATTRIBUTE_NAMES[554] = ATTR_ONDATASETCOMPLETE; + ATTRIBUTE_NAMES[555] = ATTR_OVERLINE_POSITION; + ATTRIBUTE_NAMES[556] = ATTR_ONBEFOREEDITFOCUS; + ATTRIBUTE_NAMES[557] = ATTR_LIMITINGCONEANGLE; + ATTRIBUTE_NAMES[558] = ATTR_VERYTHINMATHSPACE; + ATTRIBUTE_NAMES[559] = ATTR_STROKE_DASHOFFSET; + ATTRIBUTE_NAMES[560] = ATTR_STROKE_MITERLIMIT; + ATTRIBUTE_NAMES[561] = ATTR_ALIGNMENT_BASELINE; + ATTRIBUTE_NAMES[562] = ATTR_ONREADYSTATECHANGE; + ATTRIBUTE_NAMES[563] = ATTR_OVERLINE_THICKNESS; + ATTRIBUTE_NAMES[564] = ATTR_UNDERLINE_POSITION; + ATTRIBUTE_NAMES[565] = ATTR_VERYTHICKMATHSPACE; + ATTRIBUTE_NAMES[566] = ATTR_REQUIREDEXTENSIONS; + ATTRIBUTE_NAMES[567] = ATTR_COLOR_INTERPOLATION; + ATTRIBUTE_NAMES[568] = ATTR_UNDERLINE_THICKNESS; + ATTRIBUTE_NAMES[569] = ATTR_PRESERVEASPECTRATIO; + ATTRIBUTE_NAMES[570] = ATTR_PATTERNCONTENTUNITS; + ATTRIBUTE_NAMES[571] = ATTR_ARIA_MULTISELECTABLE; + ATTRIBUTE_NAMES[572] = ATTR_SCRIPTSIZEMULTIPLIER; + ATTRIBUTE_NAMES[573] = ATTR_ARIA_ACTIVEDESCENDANT; + ATTRIBUTE_NAMES[574] = ATTR_VERYVERYTHINMATHSPACE; + ATTRIBUTE_NAMES[575] = ATTR_VERYVERYTHICKMATHSPACE; + ATTRIBUTE_NAMES[576] = ATTR_STRIKETHROUGH_POSITION; + ATTRIBUTE_NAMES[577] = ATTR_STRIKETHROUGH_THICKNESS; + ATTRIBUTE_NAMES[578] = ATTR_EXTERNALRESOURCESREQUIRED; + ATTRIBUTE_NAMES[579] = ATTR_GLYPH_ORIENTATION_VERTICAL; + ATTRIBUTE_NAMES[580] = ATTR_COLOR_INTERPOLATION_FILTERS; + ATTRIBUTE_NAMES[581] = ATTR_GLYPH_ORIENTATION_HORIZONTAL; } void @@ -2371,6 +2374,7 @@ nsHtml5AttributeName::releaseStatics() delete ATTR_CELLPADDING; delete ATTR_CELLSPACING; delete ATTR_COLUMNWIDTH; + delete ATTR_CROSSORIGIN; delete ATTR_COLUMNALIGN; delete ATTR_COLUMNLINES; delete ATTR_CONTEXTMENU; diff --git a/parser/html/nsHtml5AttributeName.h b/parser/html/nsHtml5AttributeName.h index 15e246f38c2f..07c3c8e7ba90 100644 --- a/parser/html/nsHtml5AttributeName.h +++ b/parser/html/nsHtml5AttributeName.h @@ -473,6 +473,7 @@ class nsHtml5AttributeName static nsHtml5AttributeName* ATTR_CELLPADDING; static nsHtml5AttributeName* ATTR_CELLSPACING; static nsHtml5AttributeName* ATTR_COLUMNWIDTH; + static nsHtml5AttributeName* ATTR_CROSSORIGIN; static nsHtml5AttributeName* ATTR_COLUMNALIGN; static nsHtml5AttributeName* ATTR_COLUMNLINES; static nsHtml5AttributeName* ATTR_CONTEXTMENU; diff --git a/parser/html/nsHtml5SpeculativeLoad.cpp b/parser/html/nsHtml5SpeculativeLoad.cpp index 733842b58151..8b102fff9dc8 100644 --- a/parser/html/nsHtml5SpeculativeLoad.cpp +++ b/parser/html/nsHtml5SpeculativeLoad.cpp @@ -61,13 +61,13 @@ nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor) aExecutor->SetSpeculationBase(mUrl); break; case eSpeculativeLoadImage: - aExecutor->PreloadImage(mUrl); + aExecutor->PreloadImage(mUrl, mCharsetOrCrossOrigin); break; case eSpeculativeLoadScript: - aExecutor->PreloadScript(mUrl, mCharset, mType); + aExecutor->PreloadScript(mUrl, mCharsetOrCrossOrigin, mType); break; case eSpeculativeLoadStyle: - aExecutor->PreloadStyle(mUrl, mCharset); + aExecutor->PreloadStyle(mUrl, mCharsetOrCrossOrigin); break; case eSpeculativeLoadManifest: aExecutor->ProcessOfflineManifest(mUrl); diff --git a/parser/html/nsHtml5SpeculativeLoad.h b/parser/html/nsHtml5SpeculativeLoad.h index d6c8c0ba87ee..700540a1c23b 100644 --- a/parser/html/nsHtml5SpeculativeLoad.h +++ b/parser/html/nsHtml5SpeculativeLoad.h @@ -65,11 +65,13 @@ class nsHtml5SpeculativeLoad { mUrl.Assign(aUrl); } - inline void InitImage(const nsAString& aUrl) { + inline void InitImage(const nsAString& aUrl, + const nsAString& aCrossOrigin) { NS_PRECONDITION(mOpCode == eSpeculativeLoadUninitialized, "Trying to reinitialize a speculative load!"); mOpCode = eSpeculativeLoadImage; mUrl.Assign(aUrl); + mCharsetOrCrossOrigin.Assign(aCrossOrigin); } inline void InitScript(const nsAString& aUrl, @@ -79,7 +81,7 @@ class nsHtml5SpeculativeLoad { "Trying to reinitialize a speculative load!"); mOpCode = eSpeculativeLoadScript; mUrl.Assign(aUrl); - mCharset.Assign(aCharset); + mCharsetOrCrossOrigin.Assign(aCharset); mType.Assign(aType); } @@ -88,7 +90,7 @@ class nsHtml5SpeculativeLoad { "Trying to reinitialize a speculative load!"); mOpCode = eSpeculativeLoadStyle; mUrl.Assign(aUrl); - mCharset.Assign(aCharset); + mCharsetOrCrossOrigin.Assign(aCharset); } /** @@ -114,7 +116,11 @@ class nsHtml5SpeculativeLoad { private: eHtml5SpeculativeLoad mOpCode; nsString mUrl; - nsString mCharset; + // If mOpCode is eSpeculativeLoadImage, this is the value of the + // "crossorigin" attribute. If mOpCode is eSpeculativeLoadStyle + // or eSpeculativeLoadScript then this is the value of the + // "charset" attribute. Otherwise it's empty. + nsString mCharsetOrCrossOrigin; nsString mType; }; diff --git a/parser/html/nsHtml5TreeBuilderCppSupplement.h b/parser/html/nsHtml5TreeBuilderCppSupplement.h index 02cd9ccfb52c..cb93d8f876f0 100644 --- a/parser/html/nsHtml5TreeBuilderCppSupplement.h +++ b/parser/html/nsHtml5TreeBuilderCppSupplement.h @@ -105,7 +105,13 @@ nsHtml5TreeBuilder::createElement(PRInt32 aNamespace, nsIAtom* aName, nsHtml5Htm if (nsHtml5Atoms::img == aName) { nsString* url = aAttributes->getValue(nsHtml5AttributeName::ATTR_SRC); if (url) { - mSpeculativeLoadQueue.AppendElement()->InitImage(*url); + nsString* crossOrigin = + aAttributes->getValue(nsHtml5AttributeName::ATTR_CROSSORIGIN); + if (crossOrigin) { + mSpeculativeLoadQueue.AppendElement()->InitImage(*url, *crossOrigin); + } else { + mSpeculativeLoadQueue.AppendElement()->InitImage(*url, EmptyString()); + } } } else if (nsHtml5Atoms::script == aName) { nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement(); @@ -138,7 +144,7 @@ nsHtml5TreeBuilder::createElement(PRInt32 aNamespace, nsIAtom* aName, nsHtml5Htm } else if (nsHtml5Atoms::video == aName) { nsString* url = aAttributes->getValue(nsHtml5AttributeName::ATTR_POSTER); if (url) { - mSpeculativeLoadQueue.AppendElement()->InitImage(*url); + mSpeculativeLoadQueue.AppendElement()->InitImage(*url, EmptyString()); } } else if (nsHtml5Atoms::style == aName) { nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement(); @@ -163,7 +169,7 @@ nsHtml5TreeBuilder::createElement(PRInt32 aNamespace, nsIAtom* aName, nsHtml5Htm if (nsHtml5Atoms::image == aName) { nsString* url = aAttributes->getValue(nsHtml5AttributeName::ATTR_XLINK_HREF); if (url) { - mSpeculativeLoadQueue.AppendElement()->InitImage(*url); + mSpeculativeLoadQueue.AppendElement()->InitImage(*url, EmptyString()); } } else if (nsHtml5Atoms::script == aName) { nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement(); diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp index 4cefddcfa62b..537013a17391 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp @@ -891,13 +891,14 @@ nsHtml5TreeOpExecutor::PreloadStyle(const nsAString& aURL, } void -nsHtml5TreeOpExecutor::PreloadImage(const nsAString& aURL) +nsHtml5TreeOpExecutor::PreloadImage(const nsAString& aURL, + const nsAString& aCrossOrigin) { nsCOMPtr uri = ConvertIfNotPreloadedYet(aURL); if (!uri) { return; } - mDocument->MaybePreLoadImage(uri); + mDocument->MaybePreLoadImage(uri, aCrossOrigin); } void diff --git a/parser/html/nsHtml5TreeOpExecutor.h b/parser/html/nsHtml5TreeOpExecutor.h index 7d45f8663dcc..bf036ed8d713 100644 --- a/parser/html/nsHtml5TreeOpExecutor.h +++ b/parser/html/nsHtml5TreeOpExecutor.h @@ -401,7 +401,7 @@ class nsHtml5TreeOpExecutor : public nsContentSink, void PreloadStyle(const nsAString& aURL, const nsAString& aCharset); - void PreloadImage(const nsAString& aURL); + void PreloadImage(const nsAString& aURL, const nsAString& aCrossOrigin); void SetSpeculationBase(const nsAString& aURL); diff --git a/parser/htmlparser/src/nsParser.cpp b/parser/htmlparser/src/nsParser.cpp index 211ebd2d43d4..0fc7aacd0abc 100644 --- a/parser/htmlparser/src/nsParser.cpp +++ b/parser/htmlparser/src/nsParser.cpp @@ -362,7 +362,7 @@ nsPreloadURIs::PreloadURIs(const nsAutoTArrayScriptLoader()->PreloadURI(uri, pe.charset, pe.elementType); break; case nsSpeculativeScriptThread::IMAGE: - doc->MaybePreLoadImage(uri); + doc->MaybePreLoadImage(uri, EmptyString()); break; case nsSpeculativeScriptThread::STYLESHEET: doc->PreloadStyle(uri, pe.charset);