dompurify 3.4.12 → 3.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/purify.cjs.d.ts +1 -1
- package/dist/purify.cjs.js +96 -33
- package/dist/purify.cjs.js.map +1 -1
- package/dist/purify.es.d.mts +1 -1
- package/dist/purify.es.mjs +96 -33
- package/dist/purify.es.mjs.map +1 -1
- package/dist/purify.js +96 -33
- package/dist/purify.js.map +1 -1
- package/dist/purify.min.js +2 -2
- package/dist/purify.min.js.map +1 -1
- package/package.json +1 -1
- package/src/purify.ts +123 -34
package/dist/purify.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purify.min.js","sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"sourcesContent":[null,null,null,null,null],"names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len4","_key4","lastIndex","_len3","_key3","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","lookupGetter","prop","desc","get","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","window","_resolveSetOption","cfg","key","fallback","options","base","transform","purify","createDOMPurify","undefined","DOMPurify","root","version","VERSION","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","template","createElement","content","ownerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","createHTML","_getDefaultTrustedTypesPolicy","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createScriptURL","scriptUrl","_","console","warn","_createTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_forceRemove","node","removeChild","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","attribute","name","removeAttribute","_removeAttribute","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","data","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","parentNode","hoisted","_sanitizeDisallowedNode","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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AEjCA,GACiB,iBAAVA,GACPA,EAAMC,cAAgBzF,OAEtBmF,EAAUI,GAAYN,EAAMO,GAE5BL,EAAUI,GAAYC,EAG5B,CAEA,OAAOL,CACT,CAmEA,SAASO,EACPR,EACAS,GAEA,KAAkB,OAAXT,GAAiB,CACtB,MAAMU,EAAOxF,EAAyB8E,EAAQS,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOpE,EAAQmE,EAAKC,KAGtB,GAA0B,mBAAfD,EAAKJ,MACd,OAAO/D,EAAQmE,EAAKJ,MAExB,CAEAN,EAAS/E,EAAe+E,EAC1B,CAMA,OAJA,WACE,OAAO,IACT,CAGF,CC1RO,MAAMY,EAAOzF,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGW0F,EAAM1F,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2F,EAAa3F,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4F,EAAgB5F,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6F,EAAS7F,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8F,EAAmB9F,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW+F,EAAO/F,EAAO,CAAC,UC1RfyF,EAAOzF,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,UAGW0F,EAAM1F,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6F,EAAS7F,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,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"}
|
|
1
|
+
{"version":3,"file":"purify.min.js","sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"sourcesContent":[null,null,null,null,null],"names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len4","_key4","lastIndex","_len3","_key3","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","lookupGetter","prop","desc","get","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","window","_resolveSetOption","cfg","key","fallback","options","base","transform","purify","createDOMPurify","undefined","DOMPurify","root","version","VERSION","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","template","createElement","content","ownerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","createHTML","_getDefaultTrustedTypesPolicy","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createScriptURL","scriptUrl","_","console","warn","_createTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_forceRemove","node","removeChild","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","attribute","name","removeAttribute","_removeAttribute","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","data","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","parentNode","hoisted","_sanitizeDisallowedNode","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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AEjCA,GACiB,iBAAVA,GACPA,EAAMC,cAAgBzF,OAEtBmF,EAAUI,GAAYN,EAAMO,GAE5BL,EAAUI,GAAYC,EAG5B,CAEA,OAAOL,CACT,CAmEA,SAASO,EACPR,EACAS,GAEA,KAAkB,OAAXT,GAAiB,CACtB,MAAMU,EAAOxF,EAAyB8E,EAAQS,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOpE,EAAQmE,EAAKC,KAGtB,GAA0B,mBAAfD,EAAKJ,MACd,OAAO/D,EAAQmE,EAAKJ,MAExB,CAEAN,EAAS/E,EAAe+E,EAC1B,CAMA,OAJA,WACE,OAAO,IACT,CAGF,CC1RO,MAAMY,EAAOzF,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGW0F,EAAM1F,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2F,EAAa3F,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4F,EAAgB5F,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6F,EAAS7F,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8F,EAAmB9F,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW+F,EAAO/F,EAAO,CAAC,UC1RfyF,EAAOzF,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,UAGW0F,EAAM1F,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6F,EAAS7F,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,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"}
|
package/package.json
CHANGED
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
},
|
|
155
155
|
"name": "dompurify",
|
|
156
156
|
"description": "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It runs as JavaScript and works in all modern browsers, as well as in Node.js (via jsdom). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.",
|
|
157
|
-
"version": "3.4.
|
|
157
|
+
"version": "3.4.13",
|
|
158
158
|
"directories": {
|
|
159
159
|
"test": "test"
|
|
160
160
|
},
|
package/src/purify.ts
CHANGED
|
@@ -213,6 +213,10 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
213
213
|
Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;
|
|
214
214
|
const getNodeName =
|
|
215
215
|
Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;
|
|
216
|
+
const getOwnerDocument =
|
|
217
|
+
Node && Node.prototype
|
|
218
|
+
? lookupGetter(Node.prototype, 'ownerDocument')
|
|
219
|
+
: null;
|
|
216
220
|
|
|
217
221
|
// As per issue #47, the web-components registry is inherited by a
|
|
218
222
|
// new document created via createHTMLDocument. As per the spec
|
|
@@ -1509,8 +1513,18 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1509
1513
|
* @return The created NodeIterator
|
|
1510
1514
|
*/
|
|
1511
1515
|
const _createNodeIterator = function (root: Node): NodeIterator {
|
|
1516
|
+
/* Read ownerDocument through the cached Node.prototype getter, never the
|
|
1517
|
+
direct property. HTMLFormElement has [LegacyOverrideBuiltIns], so a
|
|
1518
|
+
clobbering child (<input name="ownerDocument"> or a form-associated
|
|
1519
|
+
external input) shadows the prototype getter and makes a direct read
|
|
1520
|
+
return that <input>. createNodeIterator.call(<input>, ...) then throws
|
|
1521
|
+
"Illegal invocation", and on the IN_PLACE path that throw lands before
|
|
1522
|
+
the walk's fail-closed barrier - leaving the caller's live tree, with
|
|
1523
|
+
any already-armed handler in it, un-neutralized. The cached getter
|
|
1524
|
+
returns the real Document regardless of the clobber. */
|
|
1525
|
+
const doc = getOwnerDocument ? getOwnerDocument(root) : root.ownerDocument;
|
|
1512
1526
|
return createNodeIterator.call(
|
|
1513
|
-
|
|
1527
|
+
doc || root,
|
|
1514
1528
|
root,
|
|
1515
1529
|
// eslint-disable-next-line no-bitwise
|
|
1516
1530
|
NodeFilter.SHOW_ELEMENT |
|
|
@@ -1558,8 +1572,12 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1558
1572
|
*/
|
|
1559
1573
|
const _scrubTemplateExpressions = function (node: Element): void {
|
|
1560
1574
|
node.normalize();
|
|
1575
|
+
/* Clobber-safe ownerDocument read, same reasoning as _createNodeIterator:
|
|
1576
|
+
under SAFE_FOR_TEMPLATES this runs on the live IN_PLACE root, which may
|
|
1577
|
+
carry a form-named-getter override of ownerDocument. */
|
|
1578
|
+
const doc = getOwnerDocument ? getOwnerDocument(node) : node.ownerDocument;
|
|
1561
1579
|
const walker = createNodeIterator.call(
|
|
1562
|
-
|
|
1580
|
+
doc || node,
|
|
1563
1581
|
node,
|
|
1564
1582
|
// eslint-disable-next-line no-bitwise
|
|
1565
1583
|
NodeFilter.SHOW_TEXT |
|
|
@@ -1779,7 +1797,8 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1779
1797
|
*/
|
|
1780
1798
|
const _sanitizeDisallowedNode = function (
|
|
1781
1799
|
currentNode: any,
|
|
1782
|
-
tagName: string
|
|
1800
|
+
tagName: string,
|
|
1801
|
+
root: Node
|
|
1783
1802
|
): boolean {
|
|
1784
1803
|
/* Check if we have a custom element to handle */
|
|
1785
1804
|
if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
|
|
@@ -1813,31 +1832,31 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1813
1832
|
if (childNodes && parentNode) {
|
|
1814
1833
|
const childCount = childNodes.length;
|
|
1815
1834
|
|
|
1816
|
-
/*
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
event to neutralise.
|
|
1835
|
+
/* Hoist by moving each child up one level rather than deep-cloning
|
|
1836
|
+
it. Moving transfers every descendant exactly once, so a chain of
|
|
1837
|
+
nested disallowed elements costs O(n) instead of the O(n^2) that
|
|
1838
|
+
re-cloning the shrinking subtree at each level produced; it also
|
|
1839
|
+
empties the removed original, so `DOMPurify.removed` no longer
|
|
1840
|
+
pins whole subtrees. Moving preserves the in-place guarantee too:
|
|
1841
|
+
an original carrying already-queued resource events (`<img
|
|
1842
|
+
onerror>`, `<video>`/`<audio>` error, lazy/`onload`, …) is
|
|
1843
|
+
relocated and sanitised rather than left detached but still armed.
|
|
1844
|
+
|
|
1845
|
+
The sole case that must clone is removing the walk root itself.
|
|
1846
|
+
The result is serialised from the root's subtree, so a restrictive
|
|
1847
|
+
ALLOWED_TAGS that strips the root (`body` on the string path) must
|
|
1848
|
+
leave the content inside it, which only cloning does. In IN_PLACE
|
|
1849
|
+
the root is pre-validated as an allowed tag and so is never removed
|
|
1850
|
+
here, so that path always takes the move branch.
|
|
1833
1851
|
|
|
1834
1852
|
`childNodes` is live; a tail-to-head walk keeps `childNodes[i]`
|
|
1835
1853
|
valid whether we move (drops the trailing entry) or clone (leaves
|
|
1836
1854
|
the list intact). */
|
|
1837
1855
|
for (let i = childCount - 1; i >= 0; --i) {
|
|
1838
|
-
const hoisted =
|
|
1839
|
-
|
|
1840
|
-
|
|
1856
|
+
const hoisted =
|
|
1857
|
+
currentNode === root
|
|
1858
|
+
? cloneNode(childNodes[i], true)
|
|
1859
|
+
: childNodes[i];
|
|
1841
1860
|
parentNode.insertBefore(hoisted, getNextSibling(currentNode));
|
|
1842
1861
|
}
|
|
1843
1862
|
}
|
|
@@ -1847,6 +1866,33 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1847
1866
|
return true;
|
|
1848
1867
|
};
|
|
1849
1868
|
|
|
1869
|
+
/**
|
|
1870
|
+
* Fork a hook-mutable allowlist off its shared binding the first time a
|
|
1871
|
+
* (possibly lazily-installed) uponSanitize* hook is about to see it, so the
|
|
1872
|
+
* hook cannot widen the per-instance default or the setConfig binding by
|
|
1873
|
+
* reference and leak past the call. Returns the set unchanged once it is
|
|
1874
|
+
* already call-local, so repeated calls across elements are idempotent.
|
|
1875
|
+
*
|
|
1876
|
+
* @param hookList the uponSanitize* hook array for this event
|
|
1877
|
+
* @param set the current ALLOWED_TAGS / ALLOWED_ATTR binding
|
|
1878
|
+
* @param defaultSet the per-instance DEFAULT_ALLOWED_* constant
|
|
1879
|
+
* @param setConfigSet the captured setConfig() binding, or null
|
|
1880
|
+
* @return a call-local clone if a hook is present and set is still shared,
|
|
1881
|
+
* else set unchanged
|
|
1882
|
+
*/
|
|
1883
|
+
const _forkSharedAllowlist = function <T extends Record<string, any>>(
|
|
1884
|
+
hookList: unknown[],
|
|
1885
|
+
set: T,
|
|
1886
|
+
defaultSet: T,
|
|
1887
|
+
setConfigSet: T | null
|
|
1888
|
+
): T {
|
|
1889
|
+
if (hookList.length === 0) {
|
|
1890
|
+
return set;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
return set === defaultSet || set === setConfigSet ? clone(set) : set;
|
|
1894
|
+
};
|
|
1895
|
+
|
|
1850
1896
|
/**
|
|
1851
1897
|
* _sanitizeElements
|
|
1852
1898
|
*
|
|
@@ -1861,9 +1907,15 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1861
1907
|
/* Execute a hook if present */
|
|
1862
1908
|
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
1863
1909
|
|
|
1864
|
-
/* A hook may have detached the node
|
|
1865
|
-
detached-node comment after the uponSanitizeElement hook below).
|
|
1910
|
+
/* A hook may have detached the node - treat it as removed (see the
|
|
1911
|
+
detached-node comment after the uponSanitizeElement hook below). On
|
|
1912
|
+
the IN_PLACE path, neutralize the detached subtree first so a queued
|
|
1913
|
+
resource handler on it cannot fire in page scope after we return. */
|
|
1866
1914
|
if (currentNode !== root && getParentNode(currentNode) === null) {
|
|
1915
|
+
if (IN_PLACE) {
|
|
1916
|
+
_neutralizeSubtree(currentNode);
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1867
1919
|
return true;
|
|
1868
1920
|
}
|
|
1869
1921
|
|
|
@@ -1878,6 +1930,18 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1878
1930
|
getNodeName ? getNodeName(currentNode) : currentNode.nodeName
|
|
1879
1931
|
);
|
|
1880
1932
|
|
|
1933
|
+
/* Close the pre-walk clone-guard's timing gap: an uponSanitizeElement
|
|
1934
|
+
hook may have been installed after that guard sampled the hook arrays
|
|
1935
|
+
(e.g. lazily from beforeSanitizeElements), leaving ALLOWED_TAGS still
|
|
1936
|
+
aliasing a shared binding that a widening hook would mutate by
|
|
1937
|
+
reference. Fork it before exposing it to the hook. */
|
|
1938
|
+
ALLOWED_TAGS = _forkSharedAllowlist(
|
|
1939
|
+
hooks.uponSanitizeElement,
|
|
1940
|
+
ALLOWED_TAGS,
|
|
1941
|
+
DEFAULT_ALLOWED_TAGS,
|
|
1942
|
+
SET_CONFIG_ALLOWED_TAGS
|
|
1943
|
+
);
|
|
1944
|
+
|
|
1881
1945
|
/* Execute a hook if present */
|
|
1882
1946
|
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
1883
1947
|
tagName,
|
|
@@ -1896,10 +1960,23 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1896
1960
|
opposite of a node that is already safely gone. The walk root is
|
|
1897
1961
|
exempt: a detached IN_PLACE root is legitimate input and must still
|
|
1898
1962
|
be fully sanitized, and a kill-decision on it must keep hitting the
|
|
1899
|
-
REPORT-3 throw. Nodes detached by hooks
|
|
1900
|
-
responsibility: they are not recorded in
|
|
1901
|
-
|
|
1963
|
+
REPORT-3 throw. Nodes detached by hooks stay the hook's
|
|
1964
|
+
responsibility for placement: they are not recorded in
|
|
1965
|
+
DOMPurify.removed, so the post-walk IN_PLACE pass (which iterates
|
|
1966
|
+
DOMPurify.removed) does not reach them. But a hook-detached subtree
|
|
1967
|
+
can still hold a queued resource-event handler - e.g. an <img onload>
|
|
1968
|
+
that began loading when the caller built the live tree - which fires
|
|
1969
|
+
in page scope after sanitize returns even though the handler never
|
|
1970
|
+
reached the returned tree. That is the audit-5 F1 hazard, and the
|
|
1971
|
+
documented node.remove() hook pattern walks straight into it. So on
|
|
1972
|
+
the IN_PLACE path we neutralize the detached subtree inline here,
|
|
1973
|
+
stripping its non-allow-listed attributes before returning, exactly
|
|
1974
|
+
as the post-walk pass does for _forceRemove'd subtrees. */
|
|
1902
1975
|
if (currentNode !== root && getParentNode(currentNode) === null) {
|
|
1976
|
+
if (IN_PLACE) {
|
|
1977
|
+
_neutralizeSubtree(currentNode);
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1903
1980
|
return true;
|
|
1904
1981
|
}
|
|
1905
1982
|
|
|
@@ -1918,7 +1995,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
1918
1995
|
) &&
|
|
1919
1996
|
!ALLOWED_TAGS[tagName])
|
|
1920
1997
|
) {
|
|
1921
|
-
const removed = _sanitizeDisallowedNode(currentNode, tagName);
|
|
1998
|
+
const removed = _sanitizeDisallowedNode(currentNode, tagName, root);
|
|
1922
1999
|
|
|
1923
2000
|
/* A false return means the node is a custom element kept via
|
|
1924
2001
|
CUSTOM_ELEMENT_HANDLING - the only keep path through
|
|
@@ -2250,6 +2327,15 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
2250
2327
|
return;
|
|
2251
2328
|
}
|
|
2252
2329
|
|
|
2330
|
+
/* Same lazy-install guard as uponSanitizeElement (see there): fork the
|
|
2331
|
+
attribute allowlist off its shared binding before a hook can see it. */
|
|
2332
|
+
ALLOWED_ATTR = _forkSharedAllowlist(
|
|
2333
|
+
hooks.uponSanitizeAttribute,
|
|
2334
|
+
ALLOWED_ATTR,
|
|
2335
|
+
DEFAULT_ALLOWED_ATTR,
|
|
2336
|
+
SET_CONFIG_ALLOWED_ATTR
|
|
2337
|
+
);
|
|
2338
|
+
|
|
2253
2339
|
const hookEvent = {
|
|
2254
2340
|
attrName: '',
|
|
2255
2341
|
attrValue: '',
|
|
@@ -2692,18 +2778,21 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
|
|
|
2692
2778
|
|
|
2693
2779
|
/* Get node iterator */
|
|
2694
2780
|
const walkRoot: Node = inPlace ? (dirty as Node) : body;
|
|
2695
|
-
const nodeIterator = _createNodeIterator(walkRoot);
|
|
2696
2781
|
|
|
2697
2782
|
/* Now start iterating over the created document.
|
|
2698
2783
|
The walk runs inside an exception barrier (campaign-3 F2): a re-entrant
|
|
2699
2784
|
engine/custom-element mutation can detach a node mid-walk so
|
|
2700
2785
|
`_forceRemove`'s parentless guard throws, aborting the loop. Without the
|
|
2701
2786
|
barrier the caller's in-place tree would be left half-sanitized with the
|
|
2702
|
-
unvisited tail still armed.
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2787
|
+
unvisited tail still armed. _createNodeIterator itself is inside the
|
|
2788
|
+
barrier too: constructing the iterator dereferences the root's document,
|
|
2789
|
+
and any failure there (e.g. an exotic/clobbered root) must still fail
|
|
2790
|
+
closed rather than skip the neutralize. On any throw we fail closed -
|
|
2791
|
+
strip the in-place root bare - then rethrow so the existing throw
|
|
2792
|
+
contract is preserved. (String/DOM-copy paths never return the partial
|
|
2793
|
+
body, so the propagating throw is already fail-closed there.) */
|
|
2706
2794
|
try {
|
|
2795
|
+
const nodeIterator = _createNodeIterator(walkRoot);
|
|
2707
2796
|
while ((currentNode = nodeIterator.nextNode())) {
|
|
2708
2797
|
/* Sanitize tags and elements */
|
|
2709
2798
|
_sanitizeElements(currentNode, walkRoot);
|