Limit recursion when parsing URL in document-blocked page

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1649
This commit is contained in:
Raymond Hill 2021-07-06 10:13:50 -04:00
parent a7184a7874
commit b75921c2fd
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
1 changed files with 5 additions and 3 deletions

View File

@ -144,7 +144,9 @@ uDom.nodeFromId('why').textContent = details.fs;
return s;
};
const renderParams = function(parentNode, rawURL) {
// https://github.com/uBlockOrigin/uBlock-issues/issues/1649
// Limit recursion.
const renderParams = function(parentNode, rawURL, depth = 0) {
const a = document.createElement('a');
a.href = rawURL;
if ( a.search.length === 0 ) { return false; }
@ -165,9 +167,9 @@ uDom.nodeFromId('why').textContent = details.fs;
const name = safeDecodeURIComponent(param.slice(0, pos));
const value = safeDecodeURIComponent(param.slice(pos + 1));
const li = liFromParam(name, value);
if ( reURL.test(value) ) {
if ( depth < 2 && reURL.test(value) ) {
const ul = document.createElement('ul');
renderParams(ul, value);
renderParams(ul, value, depth + 1);
li.appendChild(ul);
}
parentNode.appendChild(li);