diff --git a/src/amo/purify.js b/src/amo/purify.js index 3d721d6bccb..55d3cf0f27a 100644 --- a/src/amo/purify.js +++ b/src/amo/purify.js @@ -2,4 +2,26 @@ import createDOMPurify from 'dompurify'; import universalWindow from 'amo/window'; -export default createDOMPurify(universalWindow); +const _purify = createDOMPurify(universalWindow); +_purify.addHook('uponSanitizeElement', (node, data, config) => { + const _ALLOWED_TAGS = config.ALLOWED_TAGS || []; + if ( + node.tagName && + node.parentNode && + node.tagName === 'LI' && + !['MENU', 'OL', 'UL'].includes(node.parentNode.tagName) && + _ALLOWED_TAGS.includes('ul') && + _ALLOWED_TAGS.includes('li') + ) { + // If we find a
  • with no