Clear return value of vapi.js content script #3721
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Upon start-up, uBlock runs all content scripts in manifest.json using
chrome.tabs.executeScript
. When this API is used, the value of the last expression is automatically cloned and transferred to the callback ofchrome.tabs.executeScript
. This is convenient if needed, and a performance burden otherwise (the latter is the case for uBlock).There are three content scripts that need to be checked:
vapi.js
The last expression is often the vAPI object, and it is relatively expensive to clone this object. This commit sets the value of the last expression to
void 0
to solve this inefficiency.uBlock/platform/chromium/vapi.js
Lines 51 to 56 in 820ec69
vapi-client.js
No action needed yet; The last expression is
vAPI.shutdown.add(...)
, which has a void return value.uBlock/platform/chromium/vapi-client.js
Lines 49 to 53 in 820ec69
uBlock/platform/chromium/vapi-client.js
Lines 436 to 447 in 820ec69
contentscript.js
No action needed yet; The last expression is an immediately-invoked function expression without return value.
uBlock/src/js/contentscript.js
Lines 1267 to 1417 in 820ec69