Skip to content

Commit 3f3d476

Browse files
committed
Improve set-attr/trusted-set-attr scriptlets
Related discussion: uBlockOrigin/uAssets#31323 (comment)
1 parent e0fcb84 commit 3f3d476

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/js/resources/attribute.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ export function setAttrFn(
3131
logPrefix,
3232
selector = '',
3333
attr = '',
34-
value = ''
34+
value = '',
35+
options = {}
3536
) {
3637
if ( selector === '' ) { return; }
3738
if ( attr === '' ) { return; }
@@ -93,7 +94,7 @@ export function setAttrFn(
9394
childList: true,
9495
});
9596
};
96-
runAt(( ) => { start(); }, 'idle');
97+
runAt(( ) => { start(); }, options.runAt || 'idle');
9798
}
9899
registerScriptlet(setAttrFn, {
99100
name: 'set-attr.fn',
@@ -136,7 +137,6 @@ export function setAttr(
136137
const safe = safeSelf();
137138
const logPrefix = safe.makeLogPrefix('set-attr', selector, attr, value);
138139
const validValues = [ '', 'false', 'true' ];
139-
140140
if ( validValues.includes(value.toLowerCase()) === false ) {
141141
if ( /^\d+$/.test(value) ) {
142142
const n = parseInt(value, 10);
@@ -146,8 +146,8 @@ export function setAttr(
146146
return;
147147
}
148148
}
149-
150-
setAttrFn(false, logPrefix, selector, attr, value);
149+
const options = safe.getExtraArgs(Array.from(arguments), 3);
150+
setAttrFn(false, logPrefix, selector, attr, value, options);
151151
}
152152
registerScriptlet(setAttr, {
153153
name: 'set-attr.js',
@@ -186,7 +186,8 @@ export function trustedSetAttr(
186186
) {
187187
const safe = safeSelf();
188188
const logPrefix = safe.makeLogPrefix('trusted-set-attr', selector, attr, value);
189-
setAttrFn(true, logPrefix, selector, attr, value);
189+
const options = safe.getExtraArgs(Array.from(arguments), 3);
190+
setAttrFn(true, logPrefix, selector, attr, value, options);
190191
}
191192
registerScriptlet(trustedSetAttr, {
192193
name: 'trusted-set-attr.js',

0 commit comments

Comments
 (0)