1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-08 12:57:57 +02:00

Render List stats below on mobile

This commit is contained in:
Raymond Hill 2023-05-16 12:10:40 -04:00
parent 5ba3055bc7
commit 9ea39886b6
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
2 changed files with 38 additions and 12 deletions

View File

@ -130,13 +130,18 @@ builtinScriptlets.push({
}); });
function runAt(fn, when) { function runAt(fn, when) {
const intFromReadyState = state => { const intFromReadyState = state => {
return ({ const targets = {
loading: 1, 'loading': 1,
interactive: 2, 'interactive': 2, 'end': 2, '2': 2,
end: 2, 'complete': 3, 'idle': 3, '3': 3,
complete: 3, };
idle: 3, const tokens = Array.isArray(state) ? state : [ state ];
})[`${state}`] || 0; for ( const token of tokens ) {
const prop = `${token}`;
if ( targets.hasOwnProperty(prop) === false ) { continue; }
return targets[prop];
}
return 0;
}; };
const runAt = intFromReadyState(when); const runAt = intFromReadyState(when);
if ( intFromReadyState(document.readyState) >= runAt ) { if ( intFromReadyState(document.readyState) >= runAt ) {
@ -1030,14 +1035,22 @@ builtinScriptlets.push({
function setConstant( function setConstant(
arg1 = '', arg1 = '',
arg2 = '', arg2 = '',
arg3 = 0 arg3 = ''
) { ) {
const details = typeof arg1 !== 'object' const details = typeof arg1 !== 'object'
? { prop: arg1, value: arg2, runAt: parseInt(arg3, 10) || 0 } ? { prop: arg1, value: arg2 }
: arg1; : arg1;
if ( arg3 !== '' ) {
if ( /^\d$/.test(arg3) ) {
details.options = [ arg3 ];
} else {
details.options = Array.from(arguments).slice(2);
}
}
const { prop: chain = '', value: cValue = '' } = details; const { prop: chain = '', value: cValue = '' } = details;
if ( typeof chain !== 'string' ) { return; } if ( typeof chain !== 'string' ) { return; }
if ( chain === '' ) { return; } if ( chain === '' ) { return; }
const options = details.options || [];
function setConstant(chain, cValue) { function setConstant(chain, cValue) {
const trappedProp = (( ) => { const trappedProp = (( ) => {
const pos = chain.lastIndexOf('.'); const pos = chain.lastIndexOf('.');
@ -1093,13 +1106,20 @@ function setConstant(
cValue = cloakFunc(function(){ return true; }); cValue = cloakFunc(function(){ return true; });
} else if ( cValue === 'falseFunc' ) { } else if ( cValue === 'falseFunc' ) {
cValue = cloakFunc(function(){ return false; }); cValue = cloakFunc(function(){ return false; });
} else if ( /^\d+$/.test(cValue) ) { } else if ( /^-?\d+$/.test(cValue) ) {
cValue = parseFloat(cValue); cValue = parseInt(cValue);
if ( isNaN(cValue) ) { return; } if ( isNaN(cValue) ) { return; }
if ( Math.abs(cValue) > 0x7FFF ) { return; } if ( Math.abs(cValue) > 0x7FFF ) { return; }
} else { } else {
return; return;
} }
if ( options.includes('asCallback') ) {
cValue = ( ) => cValue;
} else if ( options.includes('asResolve') ) {
cValue = Promise.resolve(cValue);
} else if ( options.includes('asReject') ) {
cValue = Promise.reject(cValue);
}
let aborted = false; let aborted = false;
const mustAbort = function(v) { const mustAbort = function(v) {
if ( aborted ) { return true; } if ( aborted ) { return true; }
@ -1193,7 +1213,7 @@ function setConstant(
} }
runAt(( ) => { runAt(( ) => {
setConstant(chain, cValue); setConstant(chain, cValue);
}, details.runAt); }, options);
} }
/******************************************************************************/ /******************************************************************************/

View File

@ -182,6 +182,12 @@ const renderFilterLists = ( ) => {
} }
for ( const [ listkey, listDetails ] of treeEntries ) { for ( const [ listkey, listDetails ] of treeEntries ) {
const listEntry = createListEntry(listDetails, depth); const listEntry = createListEntry(listDetails, depth);
if ( dom.cl.has(dom.root, 'mobile') ) {
const leafStats = qs$(listEntry, '.leafstats');
if ( leafStats ) {
listEntry.append(leafStats);
}
}
listEntry.dataset.key = listkey; listEntry.dataset.key = listkey;
listEntry.dataset.parent = parentkey; listEntry.dataset.parent = parentkey;
dom.text(qs$(listEntry, '.listname'), listDetails.title); dom.text(qs$(listEntry, '.listname'), listDetails.title);