SanitizerDefaultConfig.h (9986B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef mozilla_dom_SanitizerDefaultConfig_h 6 #define mozilla_dom_SanitizerDefaultConfig_h 7 8 // This file is automatically generated by update-safe-default-configuration.py 9 10 #include "mozilla/dom/SanitizerTypes.h" 11 #include "nsGkAtoms.h" 12 13 namespace mozilla::dom::sanitizer { 14 15 constexpr nsStaticAtom* kDefaultHTMLElements[] = { 16 // clang-format off 17 nsGkAtoms::a, 18 nsGkAtoms::abbr, 19 nsGkAtoms::address, 20 nsGkAtoms::article, 21 nsGkAtoms::aside, 22 nsGkAtoms::b, 23 nsGkAtoms::bdi, 24 nsGkAtoms::bdo, 25 nsGkAtoms::blockquote, 26 nsGkAtoms::body, 27 nsGkAtoms::br, 28 nsGkAtoms::caption, 29 nsGkAtoms::cite, 30 nsGkAtoms::code, 31 nsGkAtoms::col, 32 nsGkAtoms::colgroup, 33 nsGkAtoms::data, 34 nsGkAtoms::dd, 35 nsGkAtoms::del, 36 nsGkAtoms::dfn, 37 nsGkAtoms::div, 38 nsGkAtoms::dl, 39 nsGkAtoms::dt, 40 nsGkAtoms::em, 41 nsGkAtoms::figcaption, 42 nsGkAtoms::figure, 43 nsGkAtoms::footer, 44 nsGkAtoms::h1, 45 nsGkAtoms::h2, 46 nsGkAtoms::h3, 47 nsGkAtoms::h4, 48 nsGkAtoms::h5, 49 nsGkAtoms::h6, 50 nsGkAtoms::head, 51 nsGkAtoms::header, 52 nsGkAtoms::hgroup, 53 nsGkAtoms::hr, 54 nsGkAtoms::html, 55 nsGkAtoms::i, 56 nsGkAtoms::ins, 57 nsGkAtoms::kbd, 58 nsGkAtoms::li, 59 nsGkAtoms::main, 60 nsGkAtoms::mark, 61 nsGkAtoms::menu, 62 nsGkAtoms::nav, 63 nsGkAtoms::ol, 64 nsGkAtoms::p, 65 nsGkAtoms::pre, 66 nsGkAtoms::q, 67 nsGkAtoms::rp, 68 nsGkAtoms::rt, 69 nsGkAtoms::ruby, 70 nsGkAtoms::s, 71 nsGkAtoms::samp, 72 nsGkAtoms::search, 73 nsGkAtoms::section, 74 nsGkAtoms::small, 75 nsGkAtoms::span, 76 nsGkAtoms::strong, 77 nsGkAtoms::sub, 78 nsGkAtoms::sup, 79 nsGkAtoms::table, 80 nsGkAtoms::tbody, 81 nsGkAtoms::td, 82 nsGkAtoms::tfoot, 83 nsGkAtoms::th, 84 nsGkAtoms::thead, 85 nsGkAtoms::time, 86 nsGkAtoms::title, 87 nsGkAtoms::tr, 88 nsGkAtoms::u, 89 nsGkAtoms::ul, 90 nsGkAtoms::var, 91 nsGkAtoms::wbr, 92 // clang-format on 93 }; 94 95 constexpr nsStaticAtom* kDefaultMathMLElements[] = { 96 // clang-format off 97 nsGkAtoms::math, 98 nsGkAtoms::merror, 99 nsGkAtoms::mfrac, 100 nsGkAtoms::mi, 101 nsGkAtoms::mmultiscripts, 102 nsGkAtoms::mn, 103 nsGkAtoms::mo, 104 nsGkAtoms::mover, 105 nsGkAtoms::mpadded, 106 nsGkAtoms::mphantom, 107 nsGkAtoms::mprescripts, 108 nsGkAtoms::mroot, 109 nsGkAtoms::mrow, 110 nsGkAtoms::ms, 111 nsGkAtoms::mspace, 112 nsGkAtoms::msqrt, 113 nsGkAtoms::mstyle, 114 nsGkAtoms::msub, 115 nsGkAtoms::msubsup, 116 nsGkAtoms::msup, 117 nsGkAtoms::mtable, 118 nsGkAtoms::mtd, 119 nsGkAtoms::mtext, 120 nsGkAtoms::mtr, 121 nsGkAtoms::munder, 122 nsGkAtoms::munderover, 123 nsGkAtoms::semantics, 124 // clang-format on 125 }; 126 127 constexpr nsStaticAtom* kDefaultSVGElements[] = { 128 // clang-format off 129 nsGkAtoms::a, 130 nsGkAtoms::circle, 131 nsGkAtoms::defs, 132 nsGkAtoms::desc, 133 nsGkAtoms::ellipse, 134 nsGkAtoms::foreignObject, 135 nsGkAtoms::g, 136 nsGkAtoms::line, 137 nsGkAtoms::marker, 138 nsGkAtoms::metadata, 139 nsGkAtoms::path, 140 nsGkAtoms::polygon, 141 nsGkAtoms::polyline, 142 nsGkAtoms::rect, 143 nsGkAtoms::svg, 144 nsGkAtoms::text, 145 nsGkAtoms::textPath, 146 nsGkAtoms::title, 147 nsGkAtoms::tspan, 148 // clang-format on 149 }; 150 151 constexpr nsStaticAtom* kDefaultAttributes[] = { 152 // clang-format off 153 nsGkAtoms::alignment_baseline, 154 nsGkAtoms::baseline_shift, 155 nsGkAtoms::clip_path, 156 nsGkAtoms::clip_rule, 157 nsGkAtoms::color, 158 nsGkAtoms::color_interpolation, 159 nsGkAtoms::cursor, 160 nsGkAtoms::dir, 161 nsGkAtoms::direction, 162 nsGkAtoms::display, 163 nsGkAtoms::displaystyle, 164 nsGkAtoms::dominant_baseline, 165 nsGkAtoms::fill, 166 nsGkAtoms::fill_opacity, 167 nsGkAtoms::fill_rule, 168 nsGkAtoms::font_family, 169 nsGkAtoms::font_size, 170 nsGkAtoms::font_size_adjust, 171 nsGkAtoms::font_stretch, 172 nsGkAtoms::font_style, 173 nsGkAtoms::font_variant, 174 nsGkAtoms::font_weight, 175 nsGkAtoms::lang, 176 nsGkAtoms::letter_spacing, 177 nsGkAtoms::marker_end, 178 nsGkAtoms::marker_mid, 179 nsGkAtoms::marker_start, 180 nsGkAtoms::mathbackground, 181 nsGkAtoms::mathcolor, 182 nsGkAtoms::mathsize, 183 nsGkAtoms::opacity, 184 nsGkAtoms::paint_order, 185 nsGkAtoms::pointer_events, 186 nsGkAtoms::scriptlevel, 187 nsGkAtoms::shape_rendering, 188 nsGkAtoms::stop_color, 189 nsGkAtoms::stop_opacity, 190 nsGkAtoms::stroke, 191 nsGkAtoms::stroke_dasharray, 192 nsGkAtoms::stroke_dashoffset, 193 nsGkAtoms::stroke_linecap, 194 nsGkAtoms::stroke_linejoin, 195 nsGkAtoms::stroke_miterlimit, 196 nsGkAtoms::stroke_opacity, 197 nsGkAtoms::stroke_width, 198 nsGkAtoms::text_anchor, 199 nsGkAtoms::text_decoration, 200 nsGkAtoms::text_overflow, 201 nsGkAtoms::text_rendering, 202 nsGkAtoms::title, 203 nsGkAtoms::transform, 204 nsGkAtoms::transform_origin, 205 nsGkAtoms::unicode_bidi, 206 nsGkAtoms::vector_effect, 207 nsGkAtoms::visibility, 208 nsGkAtoms::white_space, 209 nsGkAtoms::word_spacing, 210 nsGkAtoms::writing_mode, 211 // clang-format on 212 }; 213 214 // Data is encoded as: element, attributes..., nullptr 215 constexpr nsStaticAtom* kHTMLElementWithAttributes[] = { 216 // clang-format off 217 /* element */ nsGkAtoms::a, 218 nsGkAtoms::href, 219 nsGkAtoms::hreflang, 220 nsGkAtoms::type, 221 nullptr, 222 /* element */ nsGkAtoms::blockquote, 223 nsGkAtoms::cite, 224 nullptr, 225 /* element */ nsGkAtoms::col, 226 nsGkAtoms::span, 227 nullptr, 228 /* element */ nsGkAtoms::colgroup, 229 nsGkAtoms::span, 230 nullptr, 231 /* element */ nsGkAtoms::data, 232 nsGkAtoms::value, 233 nullptr, 234 /* element */ nsGkAtoms::del, 235 nsGkAtoms::cite, 236 nsGkAtoms::datetime, 237 nullptr, 238 /* element */ nsGkAtoms::ins, 239 nsGkAtoms::cite, 240 nsGkAtoms::datetime, 241 nullptr, 242 /* element */ nsGkAtoms::li, 243 nsGkAtoms::value, 244 nullptr, 245 /* element */ nsGkAtoms::ol, 246 nsGkAtoms::reversed, 247 nsGkAtoms::start, 248 nsGkAtoms::type, 249 nullptr, 250 /* element */ nsGkAtoms::td, 251 nsGkAtoms::colspan, 252 nsGkAtoms::headers, 253 nsGkAtoms::rowspan, 254 nullptr, 255 /* element */ nsGkAtoms::th, 256 nsGkAtoms::abbr, 257 nsGkAtoms::colspan, 258 nsGkAtoms::headers, 259 nsGkAtoms::rowspan, 260 nsGkAtoms::scope, 261 nullptr, 262 /* element */ nsGkAtoms::time, 263 nsGkAtoms::datetime, 264 nullptr, 265 /* sentinel */ nullptr, 266 // clang-format on 267 }; 268 269 constexpr nsStaticAtom* kMathMLElementWithAttributes[] = { 270 // clang-format off 271 /* element */ nsGkAtoms::mo, 272 nsGkAtoms::fence, 273 nsGkAtoms::form, 274 nsGkAtoms::largeop, 275 nsGkAtoms::lspace, 276 nsGkAtoms::maxsize, 277 nsGkAtoms::minsize, 278 nsGkAtoms::movablelimits, 279 nsGkAtoms::rspace, 280 nsGkAtoms::separator, 281 nsGkAtoms::stretchy, 282 nsGkAtoms::symmetric, 283 nullptr, 284 /* element */ nsGkAtoms::mover, 285 nsGkAtoms::accent, 286 nullptr, 287 /* element */ nsGkAtoms::mpadded, 288 nsGkAtoms::depth, 289 nsGkAtoms::height, 290 nsGkAtoms::lspace, 291 nsGkAtoms::voffset, 292 nsGkAtoms::width, 293 nullptr, 294 /* element */ nsGkAtoms::mspace, 295 nsGkAtoms::depth, 296 nsGkAtoms::height, 297 nsGkAtoms::width, 298 nullptr, 299 /* element */ nsGkAtoms::mtd, 300 nsGkAtoms::columnspan, 301 nsGkAtoms::rowspan, 302 nullptr, 303 /* element */ nsGkAtoms::munder, 304 nsGkAtoms::accentunder, 305 nullptr, 306 /* element */ nsGkAtoms::munderover, 307 nsGkAtoms::accent, 308 nsGkAtoms::accentunder, 309 nullptr, 310 /* sentinel */ nullptr, 311 // clang-format on 312 }; 313 314 constexpr nsStaticAtom* kSVGElementWithAttributes[] = { 315 // clang-format off 316 /* element */ nsGkAtoms::a, 317 nsGkAtoms::href, 318 nsGkAtoms::hreflang, 319 nsGkAtoms::type, 320 nullptr, 321 /* element */ nsGkAtoms::circle, 322 nsGkAtoms::cx, 323 nsGkAtoms::cy, 324 nsGkAtoms::pathLength, 325 nsGkAtoms::r, 326 nullptr, 327 /* element */ nsGkAtoms::ellipse, 328 nsGkAtoms::cx, 329 nsGkAtoms::cy, 330 nsGkAtoms::pathLength, 331 nsGkAtoms::rx, 332 nsGkAtoms::ry, 333 nullptr, 334 /* element */ nsGkAtoms::foreignObject, 335 nsGkAtoms::height, 336 nsGkAtoms::width, 337 nsGkAtoms::x, 338 nsGkAtoms::y, 339 nullptr, 340 /* element */ nsGkAtoms::line, 341 nsGkAtoms::pathLength, 342 nsGkAtoms::x1, 343 nsGkAtoms::x2, 344 nsGkAtoms::y1, 345 nsGkAtoms::y2, 346 nullptr, 347 /* element */ nsGkAtoms::marker, 348 nsGkAtoms::markerHeight, 349 nsGkAtoms::markerUnits, 350 nsGkAtoms::markerWidth, 351 nsGkAtoms::orient, 352 nsGkAtoms::preserveAspectRatio, 353 nsGkAtoms::refX, 354 nsGkAtoms::refY, 355 nsGkAtoms::viewBox, 356 nullptr, 357 /* element */ nsGkAtoms::path, 358 nsGkAtoms::d, 359 nsGkAtoms::pathLength, 360 nullptr, 361 /* element */ nsGkAtoms::polygon, 362 nsGkAtoms::pathLength, 363 nsGkAtoms::points, 364 nullptr, 365 /* element */ nsGkAtoms::polyline, 366 nsGkAtoms::pathLength, 367 nsGkAtoms::points, 368 nullptr, 369 /* element */ nsGkAtoms::rect, 370 nsGkAtoms::height, 371 nsGkAtoms::pathLength, 372 nsGkAtoms::rx, 373 nsGkAtoms::ry, 374 nsGkAtoms::width, 375 nsGkAtoms::x, 376 nsGkAtoms::y, 377 nullptr, 378 /* element */ nsGkAtoms::svg, 379 nsGkAtoms::height, 380 nsGkAtoms::preserveAspectRatio, 381 nsGkAtoms::viewBox, 382 nsGkAtoms::width, 383 nsGkAtoms::x, 384 nsGkAtoms::y, 385 nullptr, 386 /* element */ nsGkAtoms::text, 387 nsGkAtoms::dx, 388 nsGkAtoms::dy, 389 nsGkAtoms::lengthAdjust, 390 nsGkAtoms::rotate, 391 nsGkAtoms::textLength, 392 nsGkAtoms::x, 393 nsGkAtoms::y, 394 nullptr, 395 /* element */ nsGkAtoms::textPath, 396 nsGkAtoms::lengthAdjust, 397 nsGkAtoms::method, 398 nsGkAtoms::path, 399 nsGkAtoms::side, 400 nsGkAtoms::spacing, 401 nsGkAtoms::startOffset, 402 nsGkAtoms::textLength, 403 nullptr, 404 /* element */ nsGkAtoms::tspan, 405 nsGkAtoms::dx, 406 nsGkAtoms::dy, 407 nsGkAtoms::lengthAdjust, 408 nsGkAtoms::rotate, 409 nsGkAtoms::textLength, 410 nsGkAtoms::x, 411 nsGkAtoms::y, 412 nullptr, 413 /* sentinel */ nullptr, 414 // clang-format on 415 }; 416 417 } // namespace mozilla::dom::sanitizer 418 419 #endif // mozilla_dom_SanitizerDefaultConfig_h