tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit cbd0a09437ba55ffd2f7c886b819f5a7427050bb
parent 4e46dd4854670153f9d574b4a3a179f46d2b7654
Author: Tom Schuster <tschuster@mozilla.com>
Date:   Thu, 23 Oct 2025 06:41:38 +0000

Bug 1995726 - Sanitizer: Sort the default configuration. r=smaug

This only changes the order of the items.
https://github.com/WICG/sanitizer-api/commit/fc36ba125ff6f175e1b5619c4ec20ab611cc5858

This change isn't observable, because we already did sorting for get().

Differential Revision: https://phabricator.services.mozilla.com/D269564

Diffstat:
Mdom/security/sanitizer/Sanitizer.cpp | 4++--
Mdom/security/sanitizer/SanitizerDefaultConfig.h | 320++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mdom/security/sanitizer/safe-default-configuration.json | 1062++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mdom/security/sanitizer/update-safe-default-configuration.py | 2+-
4 files changed, 694 insertions(+), 694 deletions(-)

diff --git a/dom/security/sanitizer/Sanitizer.cpp b/dom/security/sanitizer/Sanitizer.cpp @@ -1434,11 +1434,11 @@ bool Sanitizer::SetDataAttributes(bool aAllow) { // https://wicg.github.io/sanitizer-api/#built-in-safe-baseline-configuration // The built-in safe baseline configuration #define FOR_EACH_BASELINE_REMOVE_ELEMENT(ELEMENT) \ - ELEMENT(XHTML, xhtml, script) \ + ELEMENT(XHTML, xhtml, embed) \ ELEMENT(XHTML, xhtml, frame) \ ELEMENT(XHTML, xhtml, iframe) \ ELEMENT(XHTML, xhtml, object) \ - ELEMENT(XHTML, xhtml, embed) \ + ELEMENT(XHTML, xhtml, script) \ ELEMENT(SVG, svg, script) \ ELEMENT(SVG, svg, use) diff --git a/dom/security/sanitizer/SanitizerDefaultConfig.h b/dom/security/sanitizer/SanitizerDefaultConfig.h @@ -15,81 +15,81 @@ namespace mozilla::dom::sanitizer { constexpr nsStaticAtom* kDefaultHTMLElements[] = { // clang-format off - nsGkAtoms::html, - nsGkAtoms::head, - nsGkAtoms::title, - nsGkAtoms::body, + nsGkAtoms::a, + nsGkAtoms::abbr, + nsGkAtoms::address, nsGkAtoms::article, - nsGkAtoms::section, - nsGkAtoms::nav, nsGkAtoms::aside, + nsGkAtoms::b, + nsGkAtoms::bdi, + nsGkAtoms::bdo, + nsGkAtoms::blockquote, + nsGkAtoms::body, + nsGkAtoms::br, + nsGkAtoms::caption, + nsGkAtoms::cite, + nsGkAtoms::code, + nsGkAtoms::col, + nsGkAtoms::colgroup, + nsGkAtoms::data, + nsGkAtoms::dd, + nsGkAtoms::del, + nsGkAtoms::dfn, + nsGkAtoms::div, + nsGkAtoms::dl, + nsGkAtoms::dt, + nsGkAtoms::em, + nsGkAtoms::figcaption, + nsGkAtoms::figure, + nsGkAtoms::footer, nsGkAtoms::h1, nsGkAtoms::h2, nsGkAtoms::h3, nsGkAtoms::h4, nsGkAtoms::h5, nsGkAtoms::h6, - nsGkAtoms::hgroup, + nsGkAtoms::head, nsGkAtoms::header, - nsGkAtoms::footer, - nsGkAtoms::address, - nsGkAtoms::p, + nsGkAtoms::hgroup, nsGkAtoms::hr, - nsGkAtoms::pre, - nsGkAtoms::blockquote, - nsGkAtoms::ol, - nsGkAtoms::ul, - nsGkAtoms::menu, + nsGkAtoms::html, + nsGkAtoms::i, + nsGkAtoms::ins, + nsGkAtoms::kbd, nsGkAtoms::li, - nsGkAtoms::dl, - nsGkAtoms::dt, - nsGkAtoms::dd, - nsGkAtoms::figure, - nsGkAtoms::figcaption, nsGkAtoms::main, - nsGkAtoms::search, - nsGkAtoms::div, - nsGkAtoms::a, - nsGkAtoms::em, - nsGkAtoms::strong, - nsGkAtoms::small, - nsGkAtoms::s, - nsGkAtoms::cite, + nsGkAtoms::mark, + nsGkAtoms::menu, + nsGkAtoms::nav, + nsGkAtoms::ol, + nsGkAtoms::p, + nsGkAtoms::pre, nsGkAtoms::q, - nsGkAtoms::dfn, - nsGkAtoms::abbr, - nsGkAtoms::ruby, - nsGkAtoms::rt, nsGkAtoms::rp, - nsGkAtoms::data, - nsGkAtoms::time, - nsGkAtoms::code, - nsGkAtoms::var, + nsGkAtoms::rt, + nsGkAtoms::ruby, + nsGkAtoms::s, nsGkAtoms::samp, - nsGkAtoms::kbd, + nsGkAtoms::search, + nsGkAtoms::section, + nsGkAtoms::small, + nsGkAtoms::span, + nsGkAtoms::strong, nsGkAtoms::sub, nsGkAtoms::sup, - nsGkAtoms::i, - nsGkAtoms::b, - nsGkAtoms::u, - nsGkAtoms::mark, - nsGkAtoms::bdi, - nsGkAtoms::bdo, - nsGkAtoms::span, - nsGkAtoms::br, - nsGkAtoms::wbr, - nsGkAtoms::ins, - nsGkAtoms::del, nsGkAtoms::table, - nsGkAtoms::caption, - nsGkAtoms::colgroup, - nsGkAtoms::col, nsGkAtoms::tbody, - nsGkAtoms::thead, - nsGkAtoms::tfoot, - nsGkAtoms::tr, nsGkAtoms::td, + nsGkAtoms::tfoot, nsGkAtoms::th, + nsGkAtoms::thead, + nsGkAtoms::time, + nsGkAtoms::title, + nsGkAtoms::tr, + nsGkAtoms::u, + nsGkAtoms::ul, + nsGkAtoms::var, + nsGkAtoms::wbr, // clang-format on }; @@ -127,39 +127,29 @@ constexpr nsStaticAtom* kDefaultMathMLElements[] = { constexpr nsStaticAtom* kDefaultSVGElements[] = { // clang-format off - nsGkAtoms::svg, - nsGkAtoms::g, + nsGkAtoms::circle, nsGkAtoms::defs, - nsGkAtoms::title, nsGkAtoms::desc, - nsGkAtoms::metadata, - nsGkAtoms::path, - nsGkAtoms::rect, - nsGkAtoms::circle, nsGkAtoms::ellipse, + nsGkAtoms::foreignObject, + nsGkAtoms::g, nsGkAtoms::line, - nsGkAtoms::polyline, + nsGkAtoms::marker, + nsGkAtoms::metadata, + nsGkAtoms::path, nsGkAtoms::polygon, + nsGkAtoms::polyline, + nsGkAtoms::rect, + nsGkAtoms::svg, nsGkAtoms::text, - nsGkAtoms::tspan, nsGkAtoms::textPath, - nsGkAtoms::foreignObject, - nsGkAtoms::marker, + nsGkAtoms::title, + nsGkAtoms::tspan, // clang-format on }; constexpr nsStaticAtom* kDefaultAttributes[] = { // clang-format off - nsGkAtoms::dir, - nsGkAtoms::lang, - nsGkAtoms::title, - nsGkAtoms::displaystyle, - nsGkAtoms::mathbackground, - nsGkAtoms::mathcolor, - nsGkAtoms::mathsize, - nsGkAtoms::scriptlevel, - nsGkAtoms::fill, - nsGkAtoms::transform, nsGkAtoms::alignment_baseline, nsGkAtoms::baseline_shift, nsGkAtoms::clip_path, @@ -167,9 +157,12 @@ constexpr nsStaticAtom* kDefaultAttributes[] = { nsGkAtoms::color, nsGkAtoms::color_interpolation, nsGkAtoms::cursor, + nsGkAtoms::dir, nsGkAtoms::direction, nsGkAtoms::display, + nsGkAtoms::displaystyle, nsGkAtoms::dominant_baseline, + nsGkAtoms::fill, nsGkAtoms::fill_opacity, nsGkAtoms::fill_rule, nsGkAtoms::font_family, @@ -179,13 +172,18 @@ constexpr nsStaticAtom* kDefaultAttributes[] = { nsGkAtoms::font_style, nsGkAtoms::font_variant, nsGkAtoms::font_weight, + nsGkAtoms::lang, nsGkAtoms::letter_spacing, nsGkAtoms::marker_end, nsGkAtoms::marker_mid, nsGkAtoms::marker_start, + nsGkAtoms::mathbackground, + nsGkAtoms::mathcolor, + nsGkAtoms::mathsize, nsGkAtoms::opacity, nsGkAtoms::paint_order, nsGkAtoms::pointer_events, + nsGkAtoms::scriptlevel, nsGkAtoms::shape_rendering, nsGkAtoms::stop_color, nsGkAtoms::stop_opacity, @@ -201,6 +199,8 @@ constexpr nsStaticAtom* kDefaultAttributes[] = { nsGkAtoms::text_decoration, nsGkAtoms::text_overflow, nsGkAtoms::text_rendering, + nsGkAtoms::title, + nsGkAtoms::transform, nsGkAtoms::transform_origin, nsGkAtoms::unicode_bidi, nsGkAtoms::vector_effect, @@ -214,54 +214,54 @@ constexpr nsStaticAtom* kDefaultAttributes[] = { // Data is encoded as: element, attributes..., nullptr constexpr nsStaticAtom* kHTMLElementWithAttributes[] = { // clang-format off - /* element */ nsGkAtoms::blockquote, - nsGkAtoms::cite, - nullptr, - /* element */ nsGkAtoms::ol, - nsGkAtoms::reversed, - nsGkAtoms::start, - nsGkAtoms::type, - nullptr, - /* element */ nsGkAtoms::li, - nsGkAtoms::value, - nullptr, /* element */ nsGkAtoms::a, nsGkAtoms::href, - nsGkAtoms::rel, nsGkAtoms::hreflang, + nsGkAtoms::rel, nsGkAtoms::type, nullptr, + /* element */ nsGkAtoms::blockquote, + nsGkAtoms::cite, + nullptr, + /* element */ nsGkAtoms::col, + nsGkAtoms::span, + nullptr, + /* element */ nsGkAtoms::colgroup, + nsGkAtoms::span, + nullptr, /* element */ nsGkAtoms::data, nsGkAtoms::value, nullptr, - /* element */ nsGkAtoms::time, - nsGkAtoms::datetime, - nullptr, - /* element */ nsGkAtoms::ins, + /* element */ nsGkAtoms::del, nsGkAtoms::cite, nsGkAtoms::datetime, nullptr, - /* element */ nsGkAtoms::del, + /* element */ nsGkAtoms::ins, nsGkAtoms::cite, nsGkAtoms::datetime, nullptr, - /* element */ nsGkAtoms::colgroup, - nsGkAtoms::span, + /* element */ nsGkAtoms::li, + nsGkAtoms::value, nullptr, - /* element */ nsGkAtoms::col, - nsGkAtoms::span, + /* element */ nsGkAtoms::ol, + nsGkAtoms::reversed, + nsGkAtoms::start, + nsGkAtoms::type, nullptr, /* element */ nsGkAtoms::td, nsGkAtoms::colspan, - nsGkAtoms::rowspan, nsGkAtoms::headers, + nsGkAtoms::rowspan, nullptr, /* element */ nsGkAtoms::th, + nsGkAtoms::abbr, nsGkAtoms::colspan, - nsGkAtoms::rowspan, nsGkAtoms::headers, + nsGkAtoms::rowspan, nsGkAtoms::scope, - nsGkAtoms::abbr, + nullptr, + /* element */ nsGkAtoms::time, + nsGkAtoms::datetime, nullptr, /* sentinel */ nullptr, // clang-format on @@ -270,32 +270,32 @@ constexpr nsStaticAtom* kHTMLElementWithAttributes[] = { constexpr nsStaticAtom* kMathMLElementWithAttributes[] = { // clang-format off /* element */ nsGkAtoms::mo, - nsGkAtoms::form, nsGkAtoms::fence, - nsGkAtoms::separator, + nsGkAtoms::form, + nsGkAtoms::largeop, nsGkAtoms::lspace, - nsGkAtoms::rspace, - nsGkAtoms::stretchy, - nsGkAtoms::symmetric, nsGkAtoms::maxsize, nsGkAtoms::minsize, - nsGkAtoms::largeop, nsGkAtoms::movablelimits, + nsGkAtoms::rspace, + nsGkAtoms::separator, + nsGkAtoms::stretchy, + nsGkAtoms::symmetric, nullptr, /* element */ nsGkAtoms::mover, nsGkAtoms::accent, nullptr, /* element */ nsGkAtoms::mpadded, - nsGkAtoms::width, - nsGkAtoms::height, nsGkAtoms::depth, + nsGkAtoms::height, nsGkAtoms::lspace, nsGkAtoms::voffset, + nsGkAtoms::width, nullptr, /* element */ nsGkAtoms::mspace, - nsGkAtoms::width, - nsGkAtoms::height, nsGkAtoms::depth, + nsGkAtoms::height, + nsGkAtoms::width, nullptr, /* element */ nsGkAtoms::mtd, nsGkAtoms::columnspan, @@ -314,97 +314,97 @@ constexpr nsStaticAtom* kMathMLElementWithAttributes[] = { constexpr nsStaticAtom* kSVGElementWithAttributes[] = { // clang-format off - /* element */ nsGkAtoms::svg, - nsGkAtoms::viewBox, - nsGkAtoms::preserveAspectRatio, - nsGkAtoms::height, - nsGkAtoms::width, - nsGkAtoms::x, - nsGkAtoms::y, - nullptr, - /* element */ nsGkAtoms::path, - nsGkAtoms::pathLength, - nsGkAtoms::d, - nullptr, - /* element */ nsGkAtoms::rect, - nsGkAtoms::pathLength, - nsGkAtoms::x, - nsGkAtoms::y, - nsGkAtoms::width, - nsGkAtoms::height, - nsGkAtoms::rx, - nsGkAtoms::ry, - nullptr, /* element */ nsGkAtoms::circle, - nsGkAtoms::pathLength, nsGkAtoms::cx, nsGkAtoms::cy, + nsGkAtoms::pathLength, nsGkAtoms::r, nullptr, /* element */ nsGkAtoms::ellipse, - nsGkAtoms::pathLength, nsGkAtoms::cx, nsGkAtoms::cy, + nsGkAtoms::pathLength, nsGkAtoms::rx, nsGkAtoms::ry, nullptr, + /* element */ nsGkAtoms::foreignObject, + nsGkAtoms::height, + nsGkAtoms::width, + nsGkAtoms::x, + nsGkAtoms::y, + nullptr, /* element */ nsGkAtoms::line, nsGkAtoms::pathLength, nsGkAtoms::x1, - nsGkAtoms::y1, nsGkAtoms::x2, + nsGkAtoms::y1, nsGkAtoms::y2, nullptr, - /* element */ nsGkAtoms::polyline, + /* element */ nsGkAtoms::marker, + nsGkAtoms::markerHeight, + nsGkAtoms::markerUnits, + nsGkAtoms::markerWidth, + nsGkAtoms::orient, + nsGkAtoms::preserveAspectRatio, + nsGkAtoms::refX, + nsGkAtoms::refY, + nsGkAtoms::viewBox, + nullptr, + /* element */ nsGkAtoms::path, + nsGkAtoms::d, nsGkAtoms::pathLength, - nsGkAtoms::points, nullptr, /* element */ nsGkAtoms::polygon, nsGkAtoms::pathLength, nsGkAtoms::points, nullptr, - /* element */ nsGkAtoms::text, - nsGkAtoms::lengthAdjust, + /* element */ nsGkAtoms::polyline, + nsGkAtoms::pathLength, + nsGkAtoms::points, + nullptr, + /* element */ nsGkAtoms::rect, + nsGkAtoms::height, + nsGkAtoms::pathLength, + nsGkAtoms::rx, + nsGkAtoms::ry, + nsGkAtoms::width, nsGkAtoms::x, nsGkAtoms::y, - nsGkAtoms::dx, - nsGkAtoms::dy, - nsGkAtoms::rotate, - nsGkAtoms::textLength, nullptr, - /* element */ nsGkAtoms::tspan, - nsGkAtoms::lengthAdjust, + /* element */ nsGkAtoms::svg, + nsGkAtoms::height, + nsGkAtoms::preserveAspectRatio, + nsGkAtoms::viewBox, + nsGkAtoms::width, nsGkAtoms::x, nsGkAtoms::y, + nullptr, + /* element */ nsGkAtoms::text, nsGkAtoms::dx, nsGkAtoms::dy, + nsGkAtoms::lengthAdjust, nsGkAtoms::rotate, nsGkAtoms::textLength, + nsGkAtoms::x, + nsGkAtoms::y, nullptr, /* element */ nsGkAtoms::textPath, nsGkAtoms::lengthAdjust, - nsGkAtoms::textLength, - nsGkAtoms::path, - nsGkAtoms::startOffset, nsGkAtoms::method, - nsGkAtoms::spacing, + nsGkAtoms::path, nsGkAtoms::side, + nsGkAtoms::spacing, + nsGkAtoms::startOffset, + nsGkAtoms::textLength, nullptr, - /* element */ nsGkAtoms::foreignObject, + /* element */ nsGkAtoms::tspan, + nsGkAtoms::dx, + nsGkAtoms::dy, + nsGkAtoms::lengthAdjust, + nsGkAtoms::rotate, + nsGkAtoms::textLength, nsGkAtoms::x, nsGkAtoms::y, - nsGkAtoms::width, - nsGkAtoms::height, - nullptr, - /* element */ nsGkAtoms::marker, - nsGkAtoms::viewBox, - nsGkAtoms::preserveAspectRatio, - nsGkAtoms::refX, - nsGkAtoms::refY, - nsGkAtoms::markerUnits, - nsGkAtoms::markerWidth, - nsGkAtoms::markerHeight, - nsGkAtoms::orient, nullptr, /* sentinel */ nullptr, // clang-format on diff --git a/dom/security/sanitizer/safe-default-configuration.json b/dom/security/sanitizer/safe-default-configuration.json @@ -1,385 +1,375 @@ { "elements": [ { - "name": "html", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "head", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "title", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "body", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "article", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "section", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "nav", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "aside", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h1", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h2", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h3", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h4", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h5", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "h6", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "hgroup", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "header", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "math", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "footer", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "merror", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "address", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mfrac", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "p", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mi", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "hr", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mmultiscripts", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "pre", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mn", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "blockquote", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mo", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [ { - "name": "cite", + "name": "fence", "namespace": null - } - ] - }, - { - "name": "ol", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [ + }, { - "name": "reversed", + "name": "form", "namespace": null }, { - "name": "start", + "name": "largeop", "namespace": null }, { - "name": "type", + "name": "lspace", + "namespace": null + }, + { + "name": "maxsize", + "namespace": null + }, + { + "name": "minsize", + "namespace": null + }, + { + "name": "movablelimits", + "namespace": null + }, + { + "name": "rspace", + "namespace": null + }, + { + "name": "separator", + "namespace": null + }, + { + "name": "stretchy", + "namespace": null + }, + { + "name": "symmetric", "namespace": null } ] }, { - "name": "ul", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "menu", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "li", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mover", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [ { - "name": "value", + "name": "accent", "namespace": null } ] }, { - "name": "dl", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "dt", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "dd", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "name": "mpadded", + "namespace": "http://www.w3.org/1998/Math/MathML", + "attributes": [ + { + "name": "depth", + "namespace": null + }, + { + "name": "height", + "namespace": null + }, + { + "name": "lspace", + "namespace": null + }, + { + "name": "voffset", + "namespace": null + }, + { + "name": "width", + "namespace": null + } + ] }, { - "name": "figure", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mphantom", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "figcaption", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mprescripts", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "main", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mroot", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "search", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mrow", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "div", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "ms", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "a", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mspace", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [ { - "name": "href", - "namespace": null - }, - { - "name": "rel", + "name": "depth", "namespace": null }, { - "name": "hreflang", + "name": "height", "namespace": null }, { - "name": "type", + "name": "width", "namespace": null } ] }, { - "name": "em", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] - }, - { - "name": "strong", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "msqrt", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "small", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mstyle", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "s", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "msub", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "cite", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "msubsup", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "q", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "msup", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "dfn", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mtable", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "abbr", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "name": "mtd", + "namespace": "http://www.w3.org/1998/Math/MathML", + "attributes": [ + { + "name": "columnspan", + "namespace": null + }, + { + "name": "rowspan", + "namespace": null + } + ] }, { - "name": "ruby", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mtext", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "rt", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "mtr", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [] }, { - "name": "rp", - "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "name": "munder", + "namespace": "http://www.w3.org/1998/Math/MathML", + "attributes": [ + { + "name": "accentunder", + "namespace": null + } + ] }, { - "name": "data", - "namespace": "http://www.w3.org/1999/xhtml", + "name": "munderover", + "namespace": "http://www.w3.org/1998/Math/MathML", "attributes": [ { - "name": "value", + "name": "accent", + "namespace": null + }, + { + "name": "accentunder", "namespace": null } ] }, { - "name": "time", + "name": "semantics", + "namespace": "http://www.w3.org/1998/Math/MathML", + "attributes": [] + }, + { + "name": "a", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "datetime", + "name": "href", + "namespace": null + }, + { + "name": "hreflang", + "namespace": null + }, + { + "name": "rel", + "namespace": null + }, + { + "name": "type", "namespace": null } ] }, { - "name": "code", + "name": "abbr", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "var", + "name": "address", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "samp", + "name": "article", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "kbd", + "name": "aside", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "sub", + "name": "b", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "sup", + "name": "bdi", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "i", + "name": "bdo", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "b", + "name": "blockquote", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "attributes": [ + { + "name": "cite", + "namespace": null + } + ] }, { - "name": "u", + "name": "body", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mark", + "name": "br", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "bdi", + "name": "caption", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "bdo", + "name": "cite", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "span", + "name": "code", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "br", + "name": "col", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "attributes": [ + { + "name": "span", + "namespace": null + } + ] }, { - "name": "wbr", + "name": "colgroup", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [] + "attributes": [ + { + "name": "span", + "namespace": null + } + ] }, { - "name": "ins", + "name": "data", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "cite", - "namespace": null - }, - { - "name": "datetime", + "name": "value", "namespace": null } ] }, { + "name": "dd", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { "name": "del", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ @@ -394,432 +384,397 @@ ] }, { - "name": "table", + "name": "dfn", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "caption", + "name": "div", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "colgroup", + "name": "dl", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [ - { - "name": "span", - "namespace": null - } - ] + "attributes": [] }, { - "name": "col", + "name": "dt", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [ - { - "name": "span", - "namespace": null - } - ] + "attributes": [] }, { - "name": "tbody", + "name": "em", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "thead", + "name": "figcaption", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "tfoot", + "name": "figure", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "tr", + "name": "footer", "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "td", + "name": "h1", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [ - { - "name": "colspan", - "namespace": null - }, - { - "name": "rowspan", - "namespace": null - }, - { - "name": "headers", - "namespace": null - } - ] + "attributes": [] }, { - "name": "th", + "name": "h2", "namespace": "http://www.w3.org/1999/xhtml", - "attributes": [ - { - "name": "colspan", - "namespace": null - }, - { - "name": "rowspan", - "namespace": null - }, - { - "name": "headers", - "namespace": null - }, - { - "name": "scope", - "namespace": null - }, - { - "name": "abbr", - "namespace": null - } - ] + "attributes": [] }, { - "name": "math", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "h3", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "merror", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "h4", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mfrac", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "h5", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mi", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "h6", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mmultiscripts", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "head", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mn", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "header", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mo", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "hgroup", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "hr", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "html", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "i", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "ins", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "form", - "namespace": null - }, - { - "name": "fence", - "namespace": null - }, - { - "name": "separator", - "namespace": null - }, - { - "name": "lspace", - "namespace": null - }, - { - "name": "rspace", - "namespace": null - }, - { - "name": "stretchy", - "namespace": null - }, - { - "name": "symmetric", - "namespace": null - }, - { - "name": "maxsize", - "namespace": null - }, - { - "name": "minsize", - "namespace": null - }, - { - "name": "largeop", + "name": "cite", "namespace": null }, { - "name": "movablelimits", + "name": "datetime", "namespace": null } ] }, { - "name": "mover", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "kbd", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "li", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "accent", + "name": "value", "namespace": null } ] }, { - "name": "mpadded", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "main", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "mark", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "menu", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "nav", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "ol", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "width", - "namespace": null - }, - { - "name": "height", - "namespace": null - }, - { - "name": "depth", + "name": "reversed", "namespace": null }, { - "name": "lspace", + "name": "start", "namespace": null }, { - "name": "voffset", + "name": "type", "namespace": null } ] }, { - "name": "mphantom", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "p", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mprescripts", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "pre", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mroot", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "q", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mrow", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "rp", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "ms", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "rt", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mspace", - "namespace": "http://www.w3.org/1998/Math/MathML", - "attributes": [ - { - "name": "width", - "namespace": null - }, - { - "name": "height", - "namespace": null - }, - { - "name": "depth", - "namespace": null - } - ] + "name": "ruby", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] }, { - "name": "msqrt", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "s", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mstyle", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "samp", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "msub", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "search", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "msubsup", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "section", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "msup", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "small", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mtable", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "span", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mtd", - "namespace": "http://www.w3.org/1998/Math/MathML", - "attributes": [ - { - "name": "columnspan", - "namespace": null - }, - { - "name": "rowspan", - "namespace": null - } - ] + "name": "strong", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] }, { - "name": "mtext", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "sub", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "mtr", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "sup", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "munder", - "namespace": "http://www.w3.org/1998/Math/MathML", - "attributes": [ - { - "name": "accentunder", - "namespace": null - } - ] + "name": "table", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] }, { - "name": "munderover", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "tbody", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "td", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "accent", + "name": "colspan", "namespace": null }, { - "name": "accentunder", + "name": "headers", + "namespace": null + }, + { + "name": "rowspan", "namespace": null } ] }, { - "name": "semantics", - "namespace": "http://www.w3.org/1998/Math/MathML", + "name": "tfoot", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "svg", - "namespace": "http://www.w3.org/2000/svg", + "name": "th", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [ { - "name": "viewBox", + "name": "abbr", "namespace": null }, { - "name": "preserveAspectRatio", + "name": "colspan", "namespace": null }, { - "name": "height", + "name": "headers", "namespace": null }, { - "name": "width", + "name": "rowspan", "namespace": null }, { - "name": "x", + "name": "scope", "namespace": null - }, + } + ] + }, + { + "name": "thead", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "time", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [ { - "name": "y", + "name": "datetime", "namespace": null } ] }, { - "name": "g", - "namespace": "http://www.w3.org/2000/svg", + "name": "title", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "defs", - "namespace": "http://www.w3.org/2000/svg", + "name": "tr", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "title", - "namespace": "http://www.w3.org/2000/svg", + "name": "u", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "desc", - "namespace": "http://www.w3.org/2000/svg", + "name": "ul", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "metadata", - "namespace": "http://www.w3.org/2000/svg", + "name": "var", + "namespace": "http://www.w3.org/1999/xhtml", "attributes": [] }, { - "name": "path", + "name": "wbr", + "namespace": "http://www.w3.org/1999/xhtml", + "attributes": [] + }, + { + "name": "circle", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "pathLength", + "name": "cx", "namespace": null }, { - "name": "d", + "name": "cy", "namespace": null - } - ] - }, - { - "name": "rect", - "namespace": "http://www.w3.org/2000/svg", - "attributes": [ + }, { "name": "pathLength", "namespace": null }, { - "name": "x", + "name": "r", "namespace": null - }, + } + ] + }, + { + "name": "defs", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [] + }, + { + "name": "desc", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [] + }, + { + "name": "ellipse", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [ { - "name": "y", + "name": "cx", "namespace": null }, { - "name": "width", + "name": "cy", "namespace": null }, { - "name": "height", + "name": "pathLength", "namespace": null }, { @@ -833,29 +788,34 @@ ] }, { - "name": "circle", + "name": "foreignObject", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "pathLength", + "name": "height", "namespace": null }, { - "name": "cx", + "name": "width", "namespace": null }, { - "name": "cy", + "name": "x", "namespace": null }, { - "name": "r", + "name": "y", "namespace": null } ] }, { - "name": "ellipse", + "name": "g", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [] + }, + { + "name": "line", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { @@ -863,51 +823,82 @@ "namespace": null }, { - "name": "cx", + "name": "x1", "namespace": null }, { - "name": "cy", + "name": "x2", "namespace": null }, { - "name": "rx", + "name": "y1", "namespace": null }, { - "name": "ry", + "name": "y2", "namespace": null } ] }, { - "name": "line", + "name": "marker", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "pathLength", + "name": "markerHeight", "namespace": null }, { - "name": "x1", + "name": "markerUnits", "namespace": null }, { - "name": "y1", + "name": "markerWidth", "namespace": null }, { - "name": "x2", + "name": "orient", "namespace": null }, { - "name": "y2", + "name": "preserveAspectRatio", + "namespace": null + }, + { + "name": "refX", + "namespace": null + }, + { + "name": "refY", + "namespace": null + }, + { + "name": "viewBox", "namespace": null } ] }, { - "name": "polyline", + "name": "metadata", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [] + }, + { + "name": "path", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [ + { + "name": "d", + "namespace": null + }, + { + "name": "pathLength", + "namespace": null + } + ] + }, + { + "name": "polygon", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { @@ -921,7 +912,7 @@ ] }, { - "name": "polygon", + "name": "polyline", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { @@ -935,163 +926,172 @@ ] }, { - "name": "text", + "name": "rect", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "lengthAdjust", + "name": "height", "namespace": null }, { - "name": "x", + "name": "pathLength", "namespace": null }, { - "name": "y", + "name": "rx", "namespace": null }, { - "name": "dx", + "name": "ry", "namespace": null }, { - "name": "dy", + "name": "width", "namespace": null }, { - "name": "rotate", + "name": "x", "namespace": null }, { - "name": "textLength", + "name": "y", "namespace": null } ] }, { - "name": "tspan", + "name": "svg", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "lengthAdjust", - "namespace": null - }, - { - "name": "x", + "name": "height", "namespace": null }, { - "name": "y", + "name": "preserveAspectRatio", "namespace": null }, { - "name": "dx", + "name": "viewBox", "namespace": null }, { - "name": "dy", + "name": "width", "namespace": null }, { - "name": "rotate", + "name": "x", "namespace": null }, { - "name": "textLength", + "name": "y", "namespace": null } ] }, { - "name": "textPath", + "name": "text", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "lengthAdjust", + "name": "dx", "namespace": null }, { - "name": "textLength", + "name": "dy", "namespace": null }, { - "name": "path", + "name": "lengthAdjust", "namespace": null }, { - "name": "startOffset", + "name": "rotate", "namespace": null }, { - "name": "method", + "name": "textLength", "namespace": null }, { - "name": "spacing", + "name": "x", "namespace": null }, { - "name": "side", + "name": "y", "namespace": null } ] }, { - "name": "foreignObject", + "name": "textPath", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "x", + "name": "lengthAdjust", "namespace": null }, { - "name": "y", + "name": "method", "namespace": null }, { - "name": "width", + "name": "path", "namespace": null }, { - "name": "height", + "name": "side", + "namespace": null + }, + { + "name": "spacing", + "namespace": null + }, + { + "name": "startOffset", + "namespace": null + }, + { + "name": "textLength", "namespace": null } ] }, { - "name": "marker", + "name": "title", + "namespace": "http://www.w3.org/2000/svg", + "attributes": [] + }, + { + "name": "tspan", "namespace": "http://www.w3.org/2000/svg", "attributes": [ { - "name": "viewBox", - "namespace": null - }, - { - "name": "preserveAspectRatio", + "name": "dx", "namespace": null }, { - "name": "refX", + "name": "dy", "namespace": null }, { - "name": "refY", + "name": "lengthAdjust", "namespace": null }, { - "name": "markerUnits", + "name": "rotate", "namespace": null }, { - "name": "markerWidth", + "name": "textLength", "namespace": null }, { - "name": "markerHeight", + "name": "x", "namespace": null }, { - "name": "orient", + "name": "y", "namespace": null } ] @@ -1099,46 +1099,6 @@ ], "attributes": [ { - "name": "dir", - "namespace": null - }, - { - "name": "lang", - "namespace": null - }, - { - "name": "title", - "namespace": null - }, - { - "name": "displaystyle", - "namespace": null - }, - { - "name": "mathbackground", - "namespace": null - }, - { - "name": "mathcolor", - "namespace": null - }, - { - "name": "mathsize", - "namespace": null - }, - { - "name": "scriptlevel", - "namespace": null - }, - { - "name": "fill", - "namespace": null - }, - { - "name": "transform", - "namespace": null - }, - { "name": "alignment-baseline", "namespace": null }, @@ -1167,6 +1127,10 @@ "namespace": null }, { + "name": "dir", + "namespace": null + }, + { "name": "direction", "namespace": null }, @@ -1175,10 +1139,18 @@ "namespace": null }, { + "name": "displaystyle", + "namespace": null + }, + { "name": "dominant-baseline", "namespace": null }, { + "name": "fill", + "namespace": null + }, + { "name": "fill-opacity", "namespace": null }, @@ -1215,6 +1187,10 @@ "namespace": null }, { + "name": "lang", + "namespace": null + }, + { "name": "letter-spacing", "namespace": null }, @@ -1231,6 +1207,18 @@ "namespace": null }, { + "name": "mathbackground", + "namespace": null + }, + { + "name": "mathcolor", + "namespace": null + }, + { + "name": "mathsize", + "namespace": null + }, + { "name": "opacity", "namespace": null }, @@ -1243,6 +1231,10 @@ "namespace": null }, { + "name": "scriptlevel", + "namespace": null + }, + { "name": "shape-rendering", "namespace": null }, @@ -1303,6 +1295,14 @@ "namespace": null }, { + "name": "title", + "namespace": null + }, + { + "name": "transform", + "namespace": null + }, + { "name": "transform-origin", "namespace": null }, diff --git a/dom/security/sanitizer/update-safe-default-configuration.py b/dom/security/sanitizer/update-safe-default-configuration.py @@ -5,7 +5,7 @@ import json from urllib.request import urlretrieve -REVISION = "54b7efe39472f031ee6e3eab3fd3d14175564581" +REVISION = "fc36ba125ff6f175e1b5619c4ec20ab611cc5858" urlretrieve( f"https://raw.githubusercontent.com/WICG/sanitizer-api/{REVISION}/builtins/safe-default-configuration.json",