Bug 502804, bug 510063 - Update the HTML5 tree builder to spec as of 2009-11-24. rs=sicking.

--HG--
extra : rebase_source : 3707836f9ad9d61921bf7455d74ee0844f6a4d02
This commit is contained in:
Henri Sivonen 2009-11-30 17:34:51 +02:00
Родитель 279a50ebf4
Коммит 8447be2850
5 изменённых файлов: 209 добавлений и 140 удалений

Просмотреть файл

@ -20,9 +20,11 @@ HTML5_ATOM(button, "button")
HTML5_ATOM(input, "input")
HTML5_ATOM(option, "option")
HTML5_ATOM(ruby, "ruby")
HTML5_ATOM(select, "select")
HTML5_ATOM(optgroup, "optgroup")
HTML5_ATOM(frameset, "frameset")
HTML5_ATOM(select, "select")
HTML5_ATOM(ul, "ul")
HTML5_ATOM(ol, "ol")
HTML5_ATOM(html, "html")
HTML5_ATOM(td, "td")
HTML5_ATOM(th, "th")
@ -711,12 +713,10 @@ HTML5_ATOM(mi, "mi")
HTML5_ATOM(mn, "mn")
HTML5_ATOM(mo, "mo")
HTML5_ATOM(ms, "ms")
HTML5_ATOM(ol, "ol")
HTML5_ATOM(or_, "or")
HTML5_ATOM(pi, "pi")
HTML5_ATOM(rp, "rp")
HTML5_ATOM(tt, "tt")
HTML5_ATOM(ul, "ul")
HTML5_ATOM(and_, "and")
HTML5_ATOM(arg, "arg")
HTML5_ATOM(abs, "abs")
@ -841,7 +841,6 @@ HTML5_ATOM(center, "center")
HTML5_ATOM(canvas, "canvas")
HTML5_ATOM(divide, "divide")
HTML5_ATOM(degree, "degree")
HTML5_ATOM(dialog, "dialog")
HTML5_ATOM(domain, "domain")
HTML5_ATOM(exists, "exists")
HTML5_ATOM(fetile, "fetile")
@ -849,6 +848,7 @@ HTML5_ATOM(feTile, "feTile")
HTML5_ATOM(figure, "figure")
HTML5_ATOM(forall, "forall")
HTML5_ATOM(footer, "footer")
HTML5_ATOM(hgroup, "hgroup")
HTML5_ATOM(header, "header")
HTML5_ATOM(keygen, "keygen")
HTML5_ATOM(lambda, "lambda")
@ -983,7 +983,6 @@ HTML5_ATOM(solidcolor, "solidcolor")
HTML5_ATOM(altglyphdef, "altglyphdef")
HTML5_ATOM(altGlyphDef, "altGlyphDef")
HTML5_ATOM(determinant, "determinant")
HTML5_ATOM(eventsource, "eventsource")
HTML5_ATOM(femergenode, "femergenode")
HTML5_ATOM(feMergeNode, "feMergeNode")
HTML5_ATOM(fecomposite, "fecomposite")

Просмотреть файл

@ -131,7 +131,7 @@ nsHtml5ElementName::cloneElementName(nsHtml5AtomTable* interner)
return this;
}
static PRInt32 const ELEMENT_HASHES_DATA[] = { 1057, 1090, 1255, 1321, 1552, 1585, 1651, 1717, 68162, 68899, 69059, 69764, 70020, 70276, 71077, 71205, 72134, 72232, 72264, 72296, 72328, 72360, 72392, 73351, 74312, 75209, 78124, 78284, 78476, 79149, 79309, 79341, 79469, 81295, 81487, 82224, 84498, 84626, 86164, 86292, 86612, 86676, 87445, 3183041, 3186241, 3198017, 3218722, 3226754, 3247715, 3256803, 3263971, 3264995, 3289252, 3291332, 3295524, 3299620, 3326725, 3379303, 3392679, 3448233, 3460553, 3461577, 3510347, 3546604, 3552364, 3556524, 3576461, 3586349, 3588141, 3590797, 3596333, 3622062, 3625454, 3627054, 3675728, 3749042, 3771059, 3771571, 3776211, 3782323, 3782963, 3784883, 3785395, 3788979, 3815476, 3839605, 3885110, 3917911, 3948984, 3951096, 135304769, 135858241, 136498210, 136906434, 137138658, 137512995, 137531875, 137548067, 137629283, 137645539, 137646563, 137775779, 138529956, 138615076, 139040932, 140954086, 141179366, 141690439, 142738600, 143013512, 146979116, 147175724, 147475756, 147902637, 147936877, 148017645, 148131885, 148228141, 148229165, 148309165, 148395629, 148551853, 148618829, 149076462, 149490158, 149572782, 151277616, 151639440, 153268914, 153486514, 153563314, 153750706, 153763314, 153914034, 154406067, 154417459, 154600979, 154678323, 154680979, 154866835, 155366708, 155375188, 155391572, 155465780, 155869364, 158045494, 168988979, 169321621, 169652752, 173151309, 174240818, 174247297, 174669292, 175391532, 176638123, 177380397, 177879204, 177886734, 180753473, 181020073, 181503558, 181686320, 181999237, 181999311, 182048201, 182074866, 182078003, 182083764, 182920847, 184716457, 184976961, 185145071, 187281445, 187872052, 188100653, 188875944, 188919873, 188920457, 189203987, 189371817, 189414886, 189567458, 190266670, 191318187, 191337609, 202479203, 202493027, 202835587, 202843747, 203013219, 203036048, 203045987, 203177552, 203898516, 204648562, 205067918, 205078130, 205096654, 205689142, 205690439, 205766017, 205988909, 207213161, 207794484, 207800999, 208023602, 208213644, 208213647, 210310273, 210940978, 213325049, 213946445, 214055079, 215125040, 215134273, 215135028, 215237420, 215418148, 215553166, 215553394, 215563858, 215627949, 215754324, 217529652, 217713834, 217732628, 218731945, 221417045, 221424946, 221493746, 221515401, 221658189, 221844577, 221908140, 221910626, 221921586, 222659762, 225001091, 236105833, 236113965, 236194995, 236195427, 236206132, 236206387, 236211683, 236212707, 236381647, 236571826, 237124271, 238172205, 238210544, 238270764, 238435405, 238501172, 239224867, 239257644, 239710497, 240307721, 241208789, 241241557, 241318060, 241319404, 241343533, 241344069, 241405397, 241765845, 243864964, 244502085, 244946220, 245109902, 247647266, 247707956, 248648814, 248648836, 248682161, 248986932, 249058914, 249697357, 252132601, 252135604, 252317348, 255007012, 255278388, 256365156, 257566121, 269763372, 271202790, 271863856, 272049197, 272127474, 272770631, 274339449, 274939471, 275388004, 275388005, 275388006, 275977800, 278267602, 278513831, 278712622, 281613765, 281683369, 282120228, 282250732, 282508942, 283743649, 283787570, 284710386, 285391148, 285478533, 285854898, 285873762, 286931113, 288964227, 289445441, 289689648, 291671489, 303512884, 305319975, 305610036, 305764101, 308448294, 308675890, 312085683, 312264750, 315032867, 316391000, 317331042, 317902135, 318950711, 319447220, 321499182, 322538804, 323145200, 337067316, 337826293, 339905989, 340833697, 341457068, 345302593, 349554733, 349771471, 349786245, 350819405, 356072847, 370349192, 373962798, 374509141, 375558638, 375574835, 376053993, 383276530, 383373833, 383407586, 384439906, 386079012, 404133513, 404307343, 407031852, 408072233, 409112005, 409608425, 409771500, 419040932, 437730612, 439529766, 442616365, 442813037, 443157674, 443295316, 450118444, 450482697, 456789668, 459935396, 471217869, 474073645, 476230702, 476665218, 476717289, 483014825, 485083298, 489306281, 538364390, 540675748, 543819186, 543958612, 576960820, 577242548, 610515252, 642202932, 644420819 };
static PRInt32 const ELEMENT_HASHES_DATA[] = { 1057, 1090, 1255, 1321, 1552, 1585, 1651, 1717, 68162, 68899, 69059, 69764, 70020, 70276, 71077, 71205, 72134, 72232, 72264, 72296, 72328, 72360, 72392, 73351, 74312, 75209, 78124, 78284, 78476, 79149, 79309, 79341, 79469, 81295, 81487, 82224, 84498, 84626, 86164, 86292, 86612, 86676, 87445, 3183041, 3186241, 3198017, 3218722, 3226754, 3247715, 3256803, 3263971, 3264995, 3289252, 3291332, 3295524, 3299620, 3326725, 3379303, 3392679, 3448233, 3460553, 3461577, 3510347, 3546604, 3552364, 3556524, 3576461, 3586349, 3588141, 3590797, 3596333, 3622062, 3625454, 3627054, 3675728, 3749042, 3771059, 3771571, 3776211, 3782323, 3782963, 3784883, 3785395, 3788979, 3815476, 3839605, 3885110, 3917911, 3948984, 3951096, 135304769, 135858241, 136498210, 136906434, 137138658, 137512995, 137531875, 137548067, 137629283, 137645539, 137646563, 137775779, 138529956, 138615076, 139040932, 140954086, 141179366, 141690439, 142738600, 143013512, 146979116, 147175724, 147475756, 147902637, 147936877, 148017645, 148131885, 148228141, 148229165, 148309165, 148395629, 148551853, 148618829, 149076462, 149490158, 149572782, 151277616, 151639440, 153268914, 153486514, 153563314, 153750706, 153763314, 153914034, 154406067, 154417459, 154600979, 154678323, 154680979, 154866835, 155366708, 155375188, 155391572, 155465780, 155869364, 158045494, 168988979, 169321621, 169652752, 173151309, 174240818, 174247297, 174669292, 175391532, 176638123, 177380397, 177879204, 177886734, 180753473, 181020073, 181503558, 181686320, 181999237, 181999311, 182048201, 182074866, 182078003, 182083764, 182920847, 184716457, 184976961, 185145071, 187281445, 187872052, 188100653, 188875944, 188919873, 188920457, 189203987, 189371817, 189414886, 189567458, 190266670, 191318187, 191337609, 202479203, 202493027, 202835587, 202843747, 203013219, 203036048, 203045987, 203177552, 203898516, 204648562, 205067918, 205078130, 205096654, 205689142, 205690439, 205988909, 207213161, 207794484, 207800999, 208023602, 208213644, 208213647, 210261490, 210310273, 210940978, 213325049, 213946445, 214055079, 215125040, 215134273, 215135028, 215237420, 215418148, 215553166, 215553394, 215563858, 215627949, 215754324, 217529652, 217713834, 217732628, 218731945, 221417045, 221424946, 221493746, 221515401, 221658189, 221844577, 221908140, 221910626, 221921586, 222659762, 225001091, 236105833, 236113965, 236194995, 236195427, 236206132, 236206387, 236211683, 236212707, 236381647, 236571826, 237124271, 238172205, 238210544, 238270764, 238435405, 238501172, 239224867, 239257644, 239710497, 240307721, 241208789, 241241557, 241318060, 241319404, 241343533, 241344069, 241405397, 241765845, 243864964, 244502085, 244946220, 245109902, 247647266, 247707956, 248648814, 248648836, 248682161, 248986932, 249058914, 249697357, 252132601, 252135604, 252317348, 255007012, 255278388, 256365156, 257566121, 269763372, 271202790, 271863856, 272049197, 272127474, 272770631, 274339449, 274939471, 275388004, 275388005, 275388006, 275977800, 278267602, 278513831, 278712622, 281613765, 281683369, 282120228, 282250732, 282508942, 283743649, 283787570, 284710386, 285391148, 285478533, 285854898, 285873762, 286931113, 288964227, 289445441, 289689648, 291671489, 303512884, 305319975, 305610036, 305764101, 308448294, 308675890, 312085683, 312264750, 315032867, 316391000, 317331042, 317902135, 318950711, 319447220, 321499182, 322538804, 323145200, 337067316, 337826293, 339905989, 340833697, 341457068, 345302593, 349554733, 349771471, 349786245, 350819405, 356072847, 370349192, 373962798, 375558638, 375574835, 376053993, 383276530, 383373833, 383407586, 384439906, 386079012, 404133513, 404307343, 407031852, 408072233, 409112005, 409608425, 409771500, 419040932, 437730612, 439529766, 442616365, 442813037, 443157674, 443295316, 450118444, 450482697, 456789668, 459935396, 471217869, 474073645, 476230702, 476665218, 476717289, 483014825, 485083298, 489306281, 538364390, 540675748, 543819186, 543958612, 576960820, 577242548, 610515252, 642202932, 644420819 };
void
nsHtml5ElementName::initializeStatics()
{
@ -190,7 +190,7 @@ nsHtml5ElementName::initializeStatics()
ELT_COT = new nsHtml5ElementName(nsHtml5Atoms::cot, nsHtml5Atoms::cot, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DEL = new nsHtml5ElementName(nsHtml5Atoms::del, nsHtml5Atoms::del, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DFN = new nsHtml5ElementName(nsHtml5Atoms::dfn, nsHtml5Atoms::dfn, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DIR = new nsHtml5ElementName(nsHtml5Atoms::dir, nsHtml5Atoms::dir, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DIR = new nsHtml5ElementName(nsHtml5Atoms::dir, nsHtml5Atoms::dir, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DIV = new nsHtml5ElementName(nsHtml5Atoms::div, nsHtml5Atoms::div, NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_EXP = new nsHtml5ElementName(nsHtml5Atoms::exp, nsHtml5Atoms::exp, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_GCD = new nsHtml5ElementName(nsHtml5Atoms::gcd, nsHtml5Atoms::gcd, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -209,7 +209,7 @@ nsHtml5ElementName::initializeStatics()
ELT_MAX = new nsHtml5ElementName(nsHtml5Atoms::max, nsHtml5Atoms::max, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_NEQ = new nsHtml5ElementName(nsHtml5Atoms::neq, nsHtml5Atoms::neq, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_NOT = new nsHtml5ElementName(nsHtml5Atoms::not_, nsHtml5Atoms::not_, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_NAV = new nsHtml5ElementName(nsHtml5Atoms::nav, nsHtml5Atoms::nav, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_NAV = new nsHtml5ElementName(nsHtml5Atoms::nav, nsHtml5Atoms::nav, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_PRE = new nsHtml5ElementName(nsHtml5Atoms::pre, nsHtml5Atoms::pre, NS_HTML5TREE_BUILDER_PRE_OR_LISTING, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_REM = new nsHtml5ElementName(nsHtml5Atoms::rem, nsHtml5Atoms::rem, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_SUB = new nsHtml5ElementName(nsHtml5Atoms::sub, nsHtml5Atoms::sub, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, PR_FALSE, PR_FALSE, PR_FALSE);
@ -282,7 +282,7 @@ nsHtml5ElementName::initializeStatics()
ELT_TANH = new nsHtml5ElementName(nsHtml5Atoms::tanh, nsHtml5Atoms::tanh, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_TEXT = new nsHtml5ElementName(nsHtml5Atoms::text, nsHtml5Atoms::text, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_VIEW = new nsHtml5ElementName(nsHtml5Atoms::view, nsHtml5Atoms::view, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ASIDE = new nsHtml5ElementName(nsHtml5Atoms::aside, nsHtml5Atoms::aside, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_ASIDE = new nsHtml5ElementName(nsHtml5Atoms::aside, nsHtml5Atoms::aside, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_AUDIO = new nsHtml5ElementName(nsHtml5Atoms::audio, nsHtml5Atoms::audio, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_APPLY = new nsHtml5ElementName(nsHtml5Atoms::apply, nsHtml5Atoms::apply, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_EMBED = new nsHtml5ElementName(nsHtml5Atoms::embed, nsHtml5Atoms::embed, NS_HTML5TREE_BUILDER_EMBED_OR_IMG, PR_TRUE, PR_FALSE, PR_FALSE);
@ -336,15 +336,15 @@ nsHtml5ElementName::initializeStatics()
ELT_CANVAS = new nsHtml5ElementName(nsHtml5Atoms::canvas, nsHtml5Atoms::canvas, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DIVIDE = new nsHtml5ElementName(nsHtml5Atoms::divide, nsHtml5Atoms::divide, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DEGREE = new nsHtml5ElementName(nsHtml5Atoms::degree, nsHtml5Atoms::degree, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DIALOG = new nsHtml5ElementName(nsHtml5Atoms::dialog, nsHtml5Atoms::dialog, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DOMAIN = new nsHtml5ElementName(nsHtml5Atoms::domain, nsHtml5Atoms::domain, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_EXISTS = new nsHtml5ElementName(nsHtml5Atoms::exists, nsHtml5Atoms::exists, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FETILE = new nsHtml5ElementName(nsHtml5Atoms::fetile, nsHtml5Atoms::feTile, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FIGURE = new nsHtml5ElementName(nsHtml5Atoms::figure, nsHtml5Atoms::figure, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_FIGURE = new nsHtml5ElementName(nsHtml5Atoms::figure, nsHtml5Atoms::figure, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_FORALL = new nsHtml5ElementName(nsHtml5Atoms::forall, nsHtml5Atoms::forall, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FILTER = new nsHtml5ElementName(nsHtml5Atoms::filter, nsHtml5Atoms::filter, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FOOTER = new nsHtml5ElementName(nsHtml5Atoms::footer, nsHtml5Atoms::footer, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_HEADER = new nsHtml5ElementName(nsHtml5Atoms::header, nsHtml5Atoms::header, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_FOOTER = new nsHtml5ElementName(nsHtml5Atoms::footer, nsHtml5Atoms::footer, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_HGROUP = new nsHtml5ElementName(nsHtml5Atoms::hgroup, nsHtml5Atoms::hgroup, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_HEADER = new nsHtml5ElementName(nsHtml5Atoms::header, nsHtml5Atoms::header, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_IFRAME = new nsHtml5ElementName(nsHtml5Atoms::iframe, nsHtml5Atoms::iframe, NS_HTML5TREE_BUILDER_IFRAME, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_KEYGEN = new nsHtml5ElementName(nsHtml5Atoms::keygen, nsHtml5Atoms::keygen, NS_HTML5TREE_BUILDER_KEYGEN, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_LAMBDA = new nsHtml5ElementName(nsHtml5Atoms::lambda, nsHtml5Atoms::lambda, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -374,7 +374,7 @@ nsHtml5ElementName::initializeStatics()
ELT_SCRIPT = new nsHtml5ElementName(nsHtml5Atoms::script, nsHtml5Atoms::script, NS_HTML5TREE_BUILDER_SCRIPT, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_TBREAK = new nsHtml5ElementName(nsHtml5Atoms::tbreak, nsHtml5Atoms::tbreak, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_VECTOR = new nsHtml5ElementName(nsHtml5Atoms::vector, nsHtml5Atoms::vector, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ARTICLE = new nsHtml5ElementName(nsHtml5Atoms::article, nsHtml5Atoms::article, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_ARTICLE = new nsHtml5ElementName(nsHtml5Atoms::article, nsHtml5Atoms::article, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_ANIMATE = new nsHtml5ElementName(nsHtml5Atoms::animate, nsHtml5Atoms::animate, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ARCSECH = new nsHtml5ElementName(nsHtml5Atoms::arcsech, nsHtml5Atoms::arcsech, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ARCCSCH = new nsHtml5ElementName(nsHtml5Atoms::arccsch, nsHtml5Atoms::arccsch, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -383,16 +383,16 @@ nsHtml5ElementName::initializeStatics()
ELT_ARCCOSH = new nsHtml5ElementName(nsHtml5Atoms::arccosh, nsHtml5Atoms::arccosh, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ARCCOTH = new nsHtml5ElementName(nsHtml5Atoms::arccoth, nsHtml5Atoms::arccoth, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ACRONYM = new nsHtml5ElementName(nsHtml5Atoms::acronym, nsHtml5Atoms::acronym, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ADDRESS = new nsHtml5ElementName(nsHtml5Atoms::address, nsHtml5Atoms::address, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_ADDRESS = new nsHtml5ElementName(nsHtml5Atoms::address, nsHtml5Atoms::address, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_BGSOUND = new nsHtml5ElementName(nsHtml5Atoms::bgsound, nsHtml5Atoms::bgsound, NS_HTML5TREE_BUILDER_AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_COMMAND = new nsHtml5ElementName(nsHtml5Atoms::command, nsHtml5Atoms::command, NS_HTML5TREE_BUILDER_COMMAND_OR_EVENT_SOURCE, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_COMMAND = new nsHtml5ElementName(nsHtml5Atoms::command, nsHtml5Atoms::command, NS_HTML5TREE_BUILDER_COMMAND, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_COMPOSE = new nsHtml5ElementName(nsHtml5Atoms::compose, nsHtml5Atoms::compose, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_CEILING = new nsHtml5ElementName(nsHtml5Atoms::ceiling, nsHtml5Atoms::ceiling, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_CSYMBOL = new nsHtml5ElementName(nsHtml5Atoms::csymbol, nsHtml5Atoms::csymbol, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_CAPTION = new nsHtml5ElementName(nsHtml5Atoms::caption, nsHtml5Atoms::caption, NS_HTML5TREE_BUILDER_CAPTION, PR_FALSE, PR_TRUE, PR_FALSE);
ELT_DISCARD = new nsHtml5ElementName(nsHtml5Atoms::discard, nsHtml5Atoms::discard, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DECLARE = new nsHtml5ElementName(nsHtml5Atoms::declare, nsHtml5Atoms::declare, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DETAILS = new nsHtml5ElementName(nsHtml5Atoms::details, nsHtml5Atoms::details, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DETAILS = new nsHtml5ElementName(nsHtml5Atoms::details, nsHtml5Atoms::details, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_ELLIPSE = new nsHtml5ElementName(nsHtml5Atoms::ellipse, nsHtml5Atoms::ellipse, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FEFUNCA = new nsHtml5ElementName(nsHtml5Atoms::fefunca, nsHtml5Atoms::feFuncA, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FEFUNCB = new nsHtml5ElementName(nsHtml5Atoms::fefuncb, nsHtml5Atoms::feFuncB, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -418,7 +418,7 @@ nsHtml5ElementName::initializeStatics()
ELT_PATTERN = new nsHtml5ElementName(nsHtml5Atoms::pattern, nsHtml5Atoms::pattern, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_PRODUCT = new nsHtml5ElementName(nsHtml5Atoms::product, nsHtml5Atoms::product, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_SETDIFF = new nsHtml5ElementName(nsHtml5Atoms::setdiff, nsHtml5Atoms::setdiff, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_SECTION = new nsHtml5ElementName(nsHtml5Atoms::section, nsHtml5Atoms::section, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_SECTION = new nsHtml5ElementName(nsHtml5Atoms::section, nsHtml5Atoms::section, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_TENDSTO = new nsHtml5ElementName(nsHtml5Atoms::tendsto, nsHtml5Atoms::tendsto, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_UPLIMIT = new nsHtml5ElementName(nsHtml5Atoms::uplimit, nsHtml5Atoms::uplimit, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ALTGLYPH = new nsHtml5ElementName(nsHtml5Atoms::altglyph, nsHtml5Atoms::altGlyph, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -426,7 +426,7 @@ nsHtml5ElementName::initializeStatics()
ELT_CLIPPATH = new nsHtml5ElementName(nsHtml5Atoms::clippath, nsHtml5Atoms::clipPath, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_CODOMAIN = new nsHtml5ElementName(nsHtml5Atoms::codomain, nsHtml5Atoms::codomain, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_COLGROUP = new nsHtml5ElementName(nsHtml5Atoms::colgroup, nsHtml5Atoms::colgroup, NS_HTML5TREE_BUILDER_COLGROUP, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DATAGRID = new nsHtml5ElementName(nsHtml5Atoms::datagrid, nsHtml5Atoms::datagrid, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_DATAGRID = new nsHtml5ElementName(nsHtml5Atoms::datagrid, nsHtml5Atoms::datagrid, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_EMPTYSET = new nsHtml5ElementName(nsHtml5Atoms::emptyset, nsHtml5Atoms::emptyset, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FACTOROF = new nsHtml5ElementName(nsHtml5Atoms::factorof, nsHtml5Atoms::factorof, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FIELDSET = new nsHtml5ElementName(nsHtml5Atoms::fieldset, nsHtml5Atoms::fieldset, NS_HTML5TREE_BUILDER_FIELDSET, PR_TRUE, PR_FALSE, PR_FALSE);
@ -483,7 +483,6 @@ nsHtml5ElementName::initializeStatics()
ELT_SOLIDCOLOR = new nsHtml5ElementName(nsHtml5Atoms::solidcolor, nsHtml5Atoms::solidcolor, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_ALTGLYPHDEF = new nsHtml5ElementName(nsHtml5Atoms::altglyphdef, nsHtml5Atoms::altGlyphDef, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DETERMINANT = new nsHtml5ElementName(nsHtml5Atoms::determinant, nsHtml5Atoms::determinant, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_EVENTSOURCE = new nsHtml5ElementName(nsHtml5Atoms::eventsource, nsHtml5Atoms::eventsource, NS_HTML5TREE_BUILDER_COMMAND_OR_EVENT_SOURCE, PR_TRUE, PR_FALSE, PR_FALSE);
ELT_FEMERGENODE = new nsHtml5ElementName(nsHtml5Atoms::femergenode, nsHtml5Atoms::feMergeNode, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FECOMPOSITE = new nsHtml5ElementName(nsHtml5Atoms::fecomposite, nsHtml5Atoms::feComposite, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FESPOTLIGHT = new nsHtml5ElementName(nsHtml5Atoms::fespotlight, nsHtml5Atoms::feSpotLight, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@ -527,7 +526,7 @@ nsHtml5ElementName::initializeStatics()
ELT_FESPECULARLIGHTING = new nsHtml5ElementName(nsHtml5Atoms::fespecularlighting, nsHtml5Atoms::feSpecularLighting, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_DOMAINOFAPPLICATION = new nsHtml5ElementName(nsHtml5Atoms::domainofapplication, nsHtml5Atoms::domainofapplication, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELT_FECOMPONENTTRANSFER = new nsHtml5ElementName(nsHtml5Atoms::fecomponenttransfer, nsHtml5Atoms::feComponentTransfer, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
ELEMENT_NAMES = new nsHtml5ElementName*[391];
ELEMENT_NAMES = new nsHtml5ElementName*[390];
ELEMENT_NAMES[0] = ELT_A;
ELEMENT_NAMES[1] = ELT_B;
ELEMENT_NAMES[2] = ELT_G;
@ -728,14 +727,14 @@ nsHtml5ElementName::initializeStatics()
ELEMENT_NAMES[197] = ELT_CANVAS;
ELEMENT_NAMES[198] = ELT_DIVIDE;
ELEMENT_NAMES[199] = ELT_DEGREE;
ELEMENT_NAMES[200] = ELT_DIALOG;
ELEMENT_NAMES[201] = ELT_DOMAIN;
ELEMENT_NAMES[202] = ELT_EXISTS;
ELEMENT_NAMES[203] = ELT_FETILE;
ELEMENT_NAMES[204] = ELT_FIGURE;
ELEMENT_NAMES[205] = ELT_FORALL;
ELEMENT_NAMES[206] = ELT_FILTER;
ELEMENT_NAMES[207] = ELT_FOOTER;
ELEMENT_NAMES[200] = ELT_DOMAIN;
ELEMENT_NAMES[201] = ELT_EXISTS;
ELEMENT_NAMES[202] = ELT_FETILE;
ELEMENT_NAMES[203] = ELT_FIGURE;
ELEMENT_NAMES[204] = ELT_FORALL;
ELEMENT_NAMES[205] = ELT_FILTER;
ELEMENT_NAMES[206] = ELT_FOOTER;
ELEMENT_NAMES[207] = ELT_HGROUP;
ELEMENT_NAMES[208] = ELT_HEADER;
ELEMENT_NAMES[209] = ELT_IFRAME;
ELEMENT_NAMES[210] = ELT_KEYGEN;
@ -875,51 +874,50 @@ nsHtml5ElementName::initializeStatics()
ELEMENT_NAMES[344] = ELT_SOLIDCOLOR;
ELEMENT_NAMES[345] = ELT_ALTGLYPHDEF;
ELEMENT_NAMES[346] = ELT_DETERMINANT;
ELEMENT_NAMES[347] = ELT_EVENTSOURCE;
ELEMENT_NAMES[348] = ELT_FEMERGENODE;
ELEMENT_NAMES[349] = ELT_FECOMPOSITE;
ELEMENT_NAMES[350] = ELT_FESPOTLIGHT;
ELEMENT_NAMES[351] = ELT_MALIGNGROUP;
ELEMENT_NAMES[352] = ELT_MPRESCRIPTS;
ELEMENT_NAMES[353] = ELT_MOMENTABOUT;
ELEMENT_NAMES[354] = ELT_NOTPRSUBSET;
ELEMENT_NAMES[355] = ELT_PARTIALDIFF;
ELEMENT_NAMES[356] = ELT_ALTGLYPHITEM;
ELEMENT_NAMES[357] = ELT_ANIMATECOLOR;
ELEMENT_NAMES[358] = ELT_DATATEMPLATE;
ELEMENT_NAMES[359] = ELT_EXPONENTIALE;
ELEMENT_NAMES[360] = ELT_FETURBULENCE;
ELEMENT_NAMES[361] = ELT_FEPOINTLIGHT;
ELEMENT_NAMES[362] = ELT_FEMORPHOLOGY;
ELEMENT_NAMES[363] = ELT_OUTERPRODUCT;
ELEMENT_NAMES[364] = ELT_ANIMATEMOTION;
ELEMENT_NAMES[365] = ELT_COLOR_PROFILE;
ELEMENT_NAMES[366] = ELT_FONT_FACE_SRC;
ELEMENT_NAMES[367] = ELT_FONT_FACE_URI;
ELEMENT_NAMES[368] = ELT_FOREIGNOBJECT;
ELEMENT_NAMES[369] = ELT_FECOLORMATRIX;
ELEMENT_NAMES[370] = ELT_MISSING_GLYPH;
ELEMENT_NAMES[371] = ELT_MMULTISCRIPTS;
ELEMENT_NAMES[372] = ELT_SCALARPRODUCT;
ELEMENT_NAMES[373] = ELT_VECTORPRODUCT;
ELEMENT_NAMES[374] = ELT_ANNOTATION_XML;
ELEMENT_NAMES[375] = ELT_DEFINITION_SRC;
ELEMENT_NAMES[376] = ELT_FONT_FACE_NAME;
ELEMENT_NAMES[377] = ELT_FEGAUSSIANBLUR;
ELEMENT_NAMES[378] = ELT_FEDISTANTLIGHT;
ELEMENT_NAMES[379] = ELT_LINEARGRADIENT;
ELEMENT_NAMES[380] = ELT_NATURALNUMBERS;
ELEMENT_NAMES[381] = ELT_RADIALGRADIENT;
ELEMENT_NAMES[382] = ELT_ANIMATETRANSFORM;
ELEMENT_NAMES[383] = ELT_CARTESIANPRODUCT;
ELEMENT_NAMES[384] = ELT_FONT_FACE_FORMAT;
ELEMENT_NAMES[385] = ELT_FECONVOLVEMATRIX;
ELEMENT_NAMES[386] = ELT_FEDIFFUSELIGHTING;
ELEMENT_NAMES[387] = ELT_FEDISPLACEMENTMAP;
ELEMENT_NAMES[388] = ELT_FESPECULARLIGHTING;
ELEMENT_NAMES[389] = ELT_DOMAINOFAPPLICATION;
ELEMENT_NAMES[390] = ELT_FECOMPONENTTRANSFER;
ELEMENT_HASHES = jArray<PRInt32,PRInt32>((PRInt32*)ELEMENT_HASHES_DATA, 391);
ELEMENT_NAMES[347] = ELT_FEMERGENODE;
ELEMENT_NAMES[348] = ELT_FECOMPOSITE;
ELEMENT_NAMES[349] = ELT_FESPOTLIGHT;
ELEMENT_NAMES[350] = ELT_MALIGNGROUP;
ELEMENT_NAMES[351] = ELT_MPRESCRIPTS;
ELEMENT_NAMES[352] = ELT_MOMENTABOUT;
ELEMENT_NAMES[353] = ELT_NOTPRSUBSET;
ELEMENT_NAMES[354] = ELT_PARTIALDIFF;
ELEMENT_NAMES[355] = ELT_ALTGLYPHITEM;
ELEMENT_NAMES[356] = ELT_ANIMATECOLOR;
ELEMENT_NAMES[357] = ELT_DATATEMPLATE;
ELEMENT_NAMES[358] = ELT_EXPONENTIALE;
ELEMENT_NAMES[359] = ELT_FETURBULENCE;
ELEMENT_NAMES[360] = ELT_FEPOINTLIGHT;
ELEMENT_NAMES[361] = ELT_FEMORPHOLOGY;
ELEMENT_NAMES[362] = ELT_OUTERPRODUCT;
ELEMENT_NAMES[363] = ELT_ANIMATEMOTION;
ELEMENT_NAMES[364] = ELT_COLOR_PROFILE;
ELEMENT_NAMES[365] = ELT_FONT_FACE_SRC;
ELEMENT_NAMES[366] = ELT_FONT_FACE_URI;
ELEMENT_NAMES[367] = ELT_FOREIGNOBJECT;
ELEMENT_NAMES[368] = ELT_FECOLORMATRIX;
ELEMENT_NAMES[369] = ELT_MISSING_GLYPH;
ELEMENT_NAMES[370] = ELT_MMULTISCRIPTS;
ELEMENT_NAMES[371] = ELT_SCALARPRODUCT;
ELEMENT_NAMES[372] = ELT_VECTORPRODUCT;
ELEMENT_NAMES[373] = ELT_ANNOTATION_XML;
ELEMENT_NAMES[374] = ELT_DEFINITION_SRC;
ELEMENT_NAMES[375] = ELT_FONT_FACE_NAME;
ELEMENT_NAMES[376] = ELT_FEGAUSSIANBLUR;
ELEMENT_NAMES[377] = ELT_FEDISTANTLIGHT;
ELEMENT_NAMES[378] = ELT_LINEARGRADIENT;
ELEMENT_NAMES[379] = ELT_NATURALNUMBERS;
ELEMENT_NAMES[380] = ELT_RADIALGRADIENT;
ELEMENT_NAMES[381] = ELT_ANIMATETRANSFORM;
ELEMENT_NAMES[382] = ELT_CARTESIANPRODUCT;
ELEMENT_NAMES[383] = ELT_FONT_FACE_FORMAT;
ELEMENT_NAMES[384] = ELT_FECONVOLVEMATRIX;
ELEMENT_NAMES[385] = ELT_FEDIFFUSELIGHTING;
ELEMENT_NAMES[386] = ELT_FEDISPLACEMENTMAP;
ELEMENT_NAMES[387] = ELT_FESPECULARLIGHTING;
ELEMENT_NAMES[388] = ELT_DOMAINOFAPPLICATION;
ELEMENT_NAMES[389] = ELT_FECOMPONENTTRANSFER;
ELEMENT_HASHES = jArray<PRInt32,PRInt32>((PRInt32*)ELEMENT_HASHES_DATA, 390);
}
void
@ -1126,7 +1124,6 @@ nsHtml5ElementName::releaseStatics()
delete ELT_CANVAS;
delete ELT_DIVIDE;
delete ELT_DEGREE;
delete ELT_DIALOG;
delete ELT_DOMAIN;
delete ELT_EXISTS;
delete ELT_FETILE;
@ -1134,6 +1131,7 @@ nsHtml5ElementName::releaseStatics()
delete ELT_FORALL;
delete ELT_FILTER;
delete ELT_FOOTER;
delete ELT_HGROUP;
delete ELT_HEADER;
delete ELT_IFRAME;
delete ELT_KEYGEN;
@ -1273,7 +1271,6 @@ nsHtml5ElementName::releaseStatics()
delete ELT_SOLIDCOLOR;
delete ELT_ALTGLYPHDEF;
delete ELT_DETERMINANT;
delete ELT_EVENTSOURCE;
delete ELT_FEMERGENODE;
delete ELT_FECOMPOSITE;
delete ELT_FESPOTLIGHT;

Просмотреть файл

@ -278,7 +278,6 @@ class nsHtml5ElementName
static nsHtml5ElementName* ELT_CANVAS;
static nsHtml5ElementName* ELT_DIVIDE;
static nsHtml5ElementName* ELT_DEGREE;
static nsHtml5ElementName* ELT_DIALOG;
static nsHtml5ElementName* ELT_DOMAIN;
static nsHtml5ElementName* ELT_EXISTS;
static nsHtml5ElementName* ELT_FETILE;
@ -286,6 +285,7 @@ class nsHtml5ElementName
static nsHtml5ElementName* ELT_FORALL;
static nsHtml5ElementName* ELT_FILTER;
static nsHtml5ElementName* ELT_FOOTER;
static nsHtml5ElementName* ELT_HGROUP;
static nsHtml5ElementName* ELT_HEADER;
static nsHtml5ElementName* ELT_IFRAME;
static nsHtml5ElementName* ELT_KEYGEN;
@ -425,7 +425,6 @@ class nsHtml5ElementName
static nsHtml5ElementName* ELT_SOLIDCOLOR;
static nsHtml5ElementName* ELT_ALTGLYPHDEF;
static nsHtml5ElementName* ELT_DETERMINANT;
static nsHtml5ElementName* ELT_EVENTSOURCE;
static nsHtml5ElementName* ELT_FEMERGENODE;
static nsHtml5ElementName* ELT_FECOMPOSITE;
static nsHtml5ElementName* ELT_FESPOTLIGHT;
@ -679,7 +678,6 @@ nsHtml5ElementName* nsHtml5ElementName::ELT_CURSOR = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_CANVAS = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_DIVIDE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_DEGREE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_DIALOG = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_DOMAIN = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_EXISTS = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FETILE = nsnull;
@ -687,6 +685,7 @@ nsHtml5ElementName* nsHtml5ElementName::ELT_FIGURE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FORALL = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FILTER = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FOOTER = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_HGROUP = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_HEADER = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_IFRAME = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_KEYGEN = nsnull;
@ -826,7 +825,6 @@ nsHtml5ElementName* nsHtml5ElementName::ELT_NOTANUMBER = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_SOLIDCOLOR = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_ALTGLYPHDEF = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_DETERMINANT = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_EVENTSOURCE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FEMERGENODE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FECOMPOSITE = nsnull;
nsHtml5ElementName* nsHtml5ElementName::ELT_FESPOTLIGHT = nsnull;

Просмотреть файл

@ -209,7 +209,7 @@ nsHtml5TreeBuilder::characters(PRUnichar* buf, PRInt32 start, PRInt32 length)
case NS_HTML5TREE_BUILDER_IN_CAPTION: {
reconstructTheActiveFormattingElements();
}
case NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA: {
case NS_HTML5TREE_BUILDER_TEXT: {
accumulateCharacters(buf, start, length);
return;
}
@ -495,7 +495,7 @@ nsHtml5TreeBuilder::eof()
case NS_HTML5TREE_BUILDER_IN_BODY: {
goto eofloop_end;
}
case NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA: {
case NS_HTML5TREE_BUILDER_TEXT: {
if (originalMode == NS_HTML5TREE_BUILDER_AFTER_HEAD) {
popOnEof();
@ -769,7 +769,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_STYLE: {
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -783,6 +783,12 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
attributes = nsnull;
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_FORM: {
appendVoidElementToCurrent(kNameSpaceID_XHTML, name, attributes);
attributes = nsnull;
goto starttagloop_end;
}
default: {
goto intableloop_end;
@ -904,7 +910,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_STYLE:
case NS_HTML5TREE_BUILDER_SCRIPT:
case NS_HTML5TREE_BUILDER_TITLE:
case NS_HTML5TREE_BUILDER_COMMAND_OR_EVENT_SOURCE: {
case NS_HTML5TREE_BUILDER_COMMAND: {
goto inbodyloop_end;
}
case NS_HTML5TREE_BUILDER_BODY: {
@ -916,7 +922,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_P:
case NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
case NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL:
case NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION: {
case NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION: {
implicitlyCloseP();
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
attributes = nsnull;
@ -1058,15 +1064,6 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
attributes = nsnull;
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_XMP: {
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_TABLE: {
if (!quirks) {
implicitlyCloseP();
@ -1120,7 +1117,6 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
}
appendToCurrentNodeAndPushFormElementMayFoster(formAttrs);
appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, nsHtml5ElementName::ELT_HR, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, nsHtml5ElementName::ELT_P, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, nsHtml5ElementName::ELT_LABEL, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
PRInt32 promptIndex = attributes->getIndex(nsHtml5AttributeName::ATTR_PROMPT);
if (promptIndex > -1) {
@ -1143,7 +1139,6 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
attributes->clearWithoutReleasingContents();
appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, nsHtml5Atoms::input, inputAttributes, formPointer);
pop();
pop();
appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, nsHtml5ElementName::ELT_HR, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
pop();
selfClosing = PR_FALSE;
@ -1156,11 +1151,21 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes, formPointer);
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_RCDATA, elementName);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
needToDropLF = PR_TRUE;
attributes = nsnull;
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_XMP: {
implicitlyCloseP();
reconstructTheActiveFormattingElements();
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_NOSCRIPT: {
if (!scriptingEnabled) {
reconstructTheActiveFormattingElements();
@ -1175,7 +1180,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_NOEMBED: {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1310,7 +1315,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
goto starttagloop_end;
}
case NS_HTML5TREE_BUILDER_BASE:
case NS_HTML5TREE_BUILDER_COMMAND_OR_EVENT_SOURCE: {
case NS_HTML5TREE_BUILDER_COMMAND: {
appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, elementName, attributes);
selfClosing = PR_FALSE;
attributes = nsnull;
@ -1323,7 +1328,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_TITLE: {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_RCDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1332,7 +1337,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
if (scriptingEnabled) {
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
} else {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
@ -1346,7 +1351,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_NOFRAMES: {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1389,7 +1394,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_NOFRAMES: {
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1444,7 +1449,15 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_TD_OR_TH:
case NS_HTML5TREE_BUILDER_TABLE: {
endSelect();
eltPos = findLastInTableScope(nsHtml5Atoms::select);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
goto starttagloop_end;
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
}
default:
@ -1494,15 +1507,24 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
}
}
case NS_HTML5TREE_BUILDER_INPUT:
case NS_HTML5TREE_BUILDER_TEXTAREA: {
case NS_HTML5TREE_BUILDER_TEXTAREA:
case NS_HTML5TREE_BUILDER_KEYGEN: {
endSelect();
eltPos = findLastInTableScope(nsHtml5Atoms::select);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
goto starttagloop_end;
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
}
case NS_HTML5TREE_BUILDER_SCRIPT: {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1556,7 +1578,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_NOFRAMES: {
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1626,7 +1648,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
} else {
appendToCurrentNodeAndPushBodyElement(attributes);
}
mode = NS_HTML5TREE_BUILDER_FRAMESET_OK;
mode = NS_HTML5TREE_BUILDER_IN_BODY;
attributes = nsnull;
goto starttagloop_end;
}
@ -1669,7 +1691,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1680,7 +1702,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1690,7 +1712,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
pushHeadPointerOntoStack();
appendToCurrentNodeAndPushElement(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_RCDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -1727,7 +1749,7 @@ nsHtml5TreeBuilder::startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttribu
case NS_HTML5TREE_BUILDER_NOFRAMES: {
appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
originalMode = mode;
mode = NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA;
mode = NS_HTML5TREE_BUILDER_TEXT;
tokenizer->setContentModelFlag(NS_HTML5TOKENIZER_CDATA, elementName);
attributes = nsnull;
goto starttagloop_end;
@ -2222,7 +2244,7 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
case NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL:
case NS_HTML5TREE_BUILDER_PRE_OR_LISTING:
case NS_HTML5TREE_BUILDER_FIELDSET:
case NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION: {
case NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION: {
eltPos = findLastInScope(name);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
@ -2280,8 +2302,22 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
}
goto endtagloop_end;
}
case NS_HTML5TREE_BUILDER_DD_OR_DT:
case NS_HTML5TREE_BUILDER_LI: {
eltPos = findLastInListScope(name);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
} else {
generateImpliedEndTagsExceptFor(name);
if (eltPos != currentPtr) {
}
while (currentPtr >= eltPos) {
pop();
}
}
goto endtagloop_end;
}
case NS_HTML5TREE_BUILDER_DD_OR_DT: {
eltPos = findLastInScope(name);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
@ -2436,7 +2472,15 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
case NS_HTML5TREE_BUILDER_TD_OR_TH: {
if (findLastInTableScope(name) != NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
endSelect();
eltPos = findLastInTableScope(nsHtml5Atoms::select);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
goto endtagloop_end;
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
continue;
} else {
goto endtagloop_end;
@ -2469,7 +2513,16 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
goto endtagloop_end;
}
case NS_HTML5TREE_BUILDER_SELECT: {
endSelect();
eltPos = findLastInTableScope(nsHtml5Atoms::select);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
goto endtagloop_end;
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
goto endtagloop_end;
}
default: {
@ -2534,10 +2587,21 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
continue;
}
case NS_HTML5TREE_BUILDER_BEFORE_HTML: {
switch(group) {
case NS_HTML5TREE_BUILDER_HEAD:
case NS_HTML5TREE_BUILDER_BR:
case NS_HTML5TREE_BUILDER_HTML:
case NS_HTML5TREE_BUILDER_BODY: {
appendHtmlElementToDocumentAndPush();
mode = NS_HTML5TREE_BUILDER_BEFORE_HEAD;
continue;
}
default: {
goto endtagloop_end;
}
}
}
case NS_HTML5TREE_BUILDER_BEFORE_HEAD: {
switch(group) {
case NS_HTML5TREE_BUILDER_HEAD:
@ -2618,7 +2682,7 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
mode = NS_HTML5TREE_BUILDER_IN_FRAMESET;
continue;
}
case NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA: {
case NS_HTML5TREE_BUILDER_TEXT: {
if (originalMode == NS_HTML5TREE_BUILDER_AFTER_HEAD) {
pop();
}
@ -2634,21 +2698,6 @@ nsHtml5TreeBuilder::endTag(nsHtml5ElementName* elementName)
}
}
void
nsHtml5TreeBuilder::endSelect()
{
PRInt32 eltPos = findLastInTableScope(nsHtml5Atoms::select);
if (eltPos == NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK) {
return;
}
while (currentPtr >= eltPos) {
pop();
}
resetTheInsertionMode();
}
PRInt32
nsHtml5TreeBuilder::findLastInTableScopeOrRootTbodyTheadTfoot()
{
@ -2697,6 +2746,19 @@ nsHtml5TreeBuilder::findLastInScope(nsIAtom* name)
return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
}
PRInt32
nsHtml5TreeBuilder::findLastInListScope(nsIAtom* name)
{
for (PRInt32 i = currentPtr; i > 0; i--) {
if (stack[i]->name == name) {
return i;
} else if (stack[i]->scoping || stack[i]->name == nsHtml5Atoms::ul || stack[i]->name == nsHtml5Atoms::ol) {
return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
}
}
return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
}
PRInt32
nsHtml5TreeBuilder::findLastInScopeHn()
{
@ -3601,6 +3663,18 @@ nsHtml5TreeBuilder::appendVoidElementToCurrent(PRInt32 ns, nsIAtom* name, nsHtml
;
}
void
nsHtml5TreeBuilder::appendVoidElementToCurrent(PRInt32 ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes)
{
flushCharacters();
nsIContent** elt = createElement(ns, name, attributes);
nsHtml5StackNode* current = stack[currentPtr];
appendElement(elt, current->node);
elementPushed(ns, name, elt);
elementPopped(ns, name, elt);
;
}
void
nsHtml5TreeBuilder::accumulateCharacter(PRUnichar c)
{

Просмотреть файл

@ -110,11 +110,11 @@ class nsHtml5TreeBuilder : public nsAHtml5TreeBuilderState
public:
void endTag(nsHtml5ElementName* elementName);
private:
void endSelect();
PRInt32 findLastInTableScopeOrRootTbodyTheadTfoot();
PRInt32 findLast(nsIAtom* name);
PRInt32 findLastInTableScope(nsIAtom* name);
PRInt32 findLastInScope(nsIAtom* name);
PRInt32 findLastInListScope(nsIAtom* name);
PRInt32 findLastInScopeHn();
PRBool hasForeignInScope();
void generateImpliedEndTagsExceptFor(nsIAtom* name);
@ -177,6 +177,7 @@ class nsHtml5TreeBuilder : public nsAHtml5TreeBuilderState
void appendVoidElementToCurrentMayFoster(PRInt32 ns, nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
void appendVoidElementToCurrentMayFosterCamelCase(PRInt32 ns, nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
void appendVoidElementToCurrent(PRInt32 ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContent** form);
void appendVoidElementToCurrent(PRInt32 ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes);
protected:
void accumulateCharacters(PRUnichar* buf, PRInt32 start, PRInt32 length);
void accumulateCharacter(PRUnichar c);
@ -289,10 +290,10 @@ jArray<const char*,PRInt32> nsHtml5TreeBuilder::QUIRKY_PUBLIC_IDS = nsnull;
#define NS_HTML5TREE_BUILDER_EMBED_OR_IMG 48
#define NS_HTML5TREE_BUILDER_AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR 49
#define NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU 50
#define NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION 51
#define NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION 51
#define NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR 52
#define NS_HTML5TREE_BUILDER_RT_OR_RP 53
#define NS_HTML5TREE_BUILDER_COMMAND_OR_EVENT_SOURCE 54
#define NS_HTML5TREE_BUILDER_COMMAND 54
#define NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE 55
#define NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK 56
#define NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT 57
@ -324,7 +325,7 @@ jArray<const char*,PRInt32> nsHtml5TreeBuilder::QUIRKY_PUBLIC_IDS = nsnull;
#define NS_HTML5TREE_BUILDER_AFTER_FRAMESET 17
#define NS_HTML5TREE_BUILDER_AFTER_AFTER_BODY 18
#define NS_HTML5TREE_BUILDER_AFTER_AFTER_FRAMESET 19
#define NS_HTML5TREE_BUILDER_IN_CDATA_RCDATA 20
#define NS_HTML5TREE_BUILDER_TEXT 20
#define NS_HTML5TREE_BUILDER_FRAMESET_OK 21
#define NS_HTML5TREE_BUILDER_CHARSET_INITIAL 0
#define NS_HTML5TREE_BUILDER_CHARSET_C 1