Repository Analysis

gorhill/uBlock

uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.

0.5 Likely human-written View on GitHub
0.5
Adjusted Score
0.5
Raw Score
100%
Time Factor
2026-05-29
Last Push
65,087
Stars
JavaScript
Language
250,707
Lines of Code
648
Files
92
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 4HIGH 0MEDIUM 1LOW 87

Pattern Findings

92 matches across 6 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers59 hits · 60 pts
SeverityFileLineSnippet
LOWplatform/mv3/make-rulesets.js727async function processGenericCosmeticFilters(
LOWplatform/mv3/extension/js/scripting-manager.js368export async function getRegisteredContentScripts() {
LOWplatform/mv3/extension/js/ruleset-manager.js434export async function getDefaultRulesetsFromEnv() {
LOWplatform/mv3/extension/js/ruleset-manager.js613async function getEnabledRulesetsDetails() {
LOWplatform/mv3/extension/js/action.js76export async function registerToolbarIconToggler(context) {
LOWplatform/mv3/extension/js/background.js146async function onPermissionGrantedThruExtension(details, origins) {
LOWplatform/mv3/extension/js/background.js163async function onPermissionGrantedThruBrowser(origins) {
LOWplatform/mv3/extension/js/background.js227async function registerDeclarativeAssets(
LOWplatform/mv3/extension/js/filter-manager-ui.js90async function removeSelectorsFromHostname(node) {
LOWplatform/mv3/extension/js/filter-manager-ui.js107async function unremoveSelectorsFromHostname(node) {
LOWplatform/mv3/extension/js/filter-manager-ui.js209async function debounceRenderCustomFilters() {
LOWplatform/mv3/extension/js/picker-ui.js245function attributeNameFromSelector(part) {
LOWplatform/mv3/extension/js/mode-manager.js277async function writeFilteringModeDetails(afterDetails) {
LOWplatform/mv3/extension/js/mode-manager.js354export async function syncWithBrowserPermissions() {
LOWplatform/mv3/extension/js/report.js69async function reportSpecificFilterIssue() {
LOWplatform/mv3/extension/js/filter-manager.js78export async function customFiltersFromHostname(hostname) {
LOWplatform/mv3/extension/js/offscreen/compile-filters.js117function sanitizeCompiledCosmeticFilter(compiled) {
LOWsrc/js/diff-updater.js183async function fetchPatchDetailsFromCDNs(assetDetails) {
LOWsrc/js/support.js230function reportSpecificFilterIssue() {
LOWsrc/js/benchmarks.js133export async function benchmarkStaticNetFiltering(options = {}) {
LOWsrc/js/benchmarks.js283export async function benchmarkDynamicNetFiltering() {
LOWsrc/js/benchmarks.js310export async function benchmarkCosmeticFiltering() {
LOWsrc/js/benchmarks.js354export async function benchmarkScriptletFiltering() {
LOWsrc/js/assets.js614function updateAssetSourceRegistry(json, silent = false) {
LOWsrc/js/static-net-filtering.js5667function parseRedirectRequestValue(directive) {
LOWsrc/js/traffic.js367function onBeforeBehindTheSceneRequest(fctxt) {
LOWsrc/js/resources/object-prune.js162function trustedPruneInboundObject(
LOWsrc/js/resources/object-prune.js241function trustedPruneOutboundObject(
LOWsrc/js/resources/json-edit.js115function trustedEditOutboundObject(propChain = '', jsonq = '') {
LOWsrc/js/resources/json-edit.js425function trustedJsonEditXhrResponse(jsonq = '', ...args) {
LOWsrc/js/resources/json-edit.js543function trustedJsonEditXhrRequest(jsonq = '', ...args) {
LOWsrc/js/resources/json-edit.js665function trustedJsonEditFetchResponse(jsonq = '', ...args) {
LOWsrc/js/resources/json-edit.js782function trustedJsonEditFetchRequest(jsonq = '', ...args) {
LOWsrc/js/resources/json-edit.js942function trustedJsonlEditXhrResponse(jsonq = '', ...args) {
LOWsrc/js/resources/json-edit.js1070function trustedJsonlEditFetchResponse(jsonq = '', ...args) {
LOWsrc/js/resources/localstorage.js233export function trustedSetLocalStorageItem(key = '', value = '') {
LOWsrc/js/resources/localstorage.js248export function trustedSetSessionStorageItem(key = '', value = '') {
LOWsrc/js/resources/prevent-settimeout.js205export function preventRequestAnimationFrame(
LOWsrc/js/resources/scriptlets.js1718function trustedReplaceFetchResponse(...args) {
LOWsrc/js/resources/scriptlets.js1734function trustedReplaceXhrResponse(
LOWsrc/js/resources/scriptlets.js2018function trustedReplaceOutboundText(
LOWsrc/js/resources/scriptlets.js2085function trustedSuppressNativeMethod(
LOWsrc/js/resources/scriptlets.js2270function trustedOverrideElementMethod(
LOWsrc/js/scriptlets/cosmetic-logger.js121function processDeclarativeComplex(out) {
LOWsrc/js/scriptlets/cosmetic-logger.js170function processProceduralExceptions(out) {
LOWsrc/lib/codemirror/lib/codemirror.js1527 function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
LOWsrc/lib/codemirror/lib/codemirror.js1784 function defaultSpecialCharPlaceholder(ch) {
LOWsrc/lib/codemirror/lib/codemirror.js2355 function updateExternalMeasurement(cm, line) {
LOWsrc/lib/codemirror/lib/codemirror.js2531 function maybeUpdateRectForZooming(measure, rect) {
LOWsrc/lib/codemirror/lib/codemirror.js2541 function clearLineMeasurementCacheFor(lineView) {
LOWsrc/lib/codemirror/lib/codemirror.js2550 function clearLineMeasurementCache(cm) {
LOWsrc/lib/codemirror/lib/codemirror.js4271 function maybeUpdateLineNumberWidth(cm) {
LOWsrc/lib/codemirror/lib/codemirror.js4895 function selectionEventCanBeMerged(doc, origin, prev, sel) {
LOWsrc/lib/codemirror/lib/codemirror.js5094 function setSelectionReplaceHistory(doc, sel, options) {
LOWsrc/lib/codemirror/lib/codemirror.js5425 function makeChangeSingleDocInEditor(cm, change, spans) {
LOWsrc/lib/codemirror/lib/codemirror.js5763 function adjustScrollWhenAboveVisible(cm, line, diff) {
LOWsrc/lib/codemirror/addon/merge/merge.js777 function collapseIdenticalStretches(mv, margin) {
LOWsrc/lib/codemirror/addon/search/searchcursor.js45 function searchRegexpForwardMultiline(doc, regexp, start) {
LOWsrc/lib/codemirror/addon/search/searchcursor.js102 function searchRegexpBackwardMultiline(doc, regexp, start) {
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippet
CRITICALplatform/mv3/extension/js/dnr-parser.js190 rule.action.redirect.transform.queryTransform.addOrReplaceParams.push({});
CRITICALplatform/mv3/extension/js/dnr-parser.js197 const item = rule.action.redirect.transform.queryTransform.addOrReplaceParams.at(-1);
CRITICALplatform/mv3/extension/js/dnr-parser.js214 rule.action.redirect.transform.queryTransform.removeParams.push(node.val);
CRITICALsrc/lib/codemirror/lib/codemirror.js8869 return this.cm.display.wrapper.ownerDocument.getSelection()
Over-Commented Block22 hits · 22 pts
SeverityFileLineSnippet
LOWplatform/common/vapi-background.js421 }
LOWplatform/common/vapi-background.js921 select: true,
LOWplatform/common/vapi-background.js1441/******************************************************************************/
LOWsrc/css/popup-fenix.css421 flex-direction: row;
LOWsrc/css/popup-fenix.css441#firewall.show3pScript.show3pFrame > div:not([data-des="*"]).is3p:not(.hasScript):not(.hasFrame) *,
LOWsrc/css/popup-fenix.css501#firewall > div > span[data-acount]::before,
LOWsrc/js/tab.js81 };
LOWsrc/js/tab.js101// result: a b c d
LOWsrc/js/tab.js781 }
LOWsrc/js/tab.js901 // The webRequest.onBeforeRequest() won't be called for everything
LOWsrc/js/reverselookup-worker.js101// completely unaffected by reverse lookup requirements.
LOWsrc/js/benchmarks.js41// https://cdn.cliqz.com/adblocking/requests_top500.json.gz
LOWsrc/js/static-net-filtering.js41// need to be called by module clients. For now, I want modularizing with
LOWsrc/js/static-net-filtering.js3341registerFilterClass(FilterMessage);
LOWsrc/js/traffic.js241/******************************************************************************/
LOWsrc/js/traffic.js301 if ( rg === 1 && validateStrictBlock(fctxt, ldg) === false ) {
LOWsrc/js/traffic.js321 // | 0 | 1 | 1i | 2 |
LOWsrc/js/codemirror/search.js1// The following code is heavily based on the standard CodeMirror
LOWsrc/js/resources/scriptlets.js521 ],
LOWsrc/js/resources/scriptlets.js581// https://github.com/NanoAdblocker/NanoFilters/blob/1f3be7211bb0809c5106996f52564bf10c4525f7/NanoFiltersSource/NanoReso
LOWsrc/js/scriptlets/epicker.js1221// - Install the element picker UI, and wait for the component to establish
LOWsrc/lib/codemirror/lib/codemirror.js341 else { bidiOther = i; }
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippet
LOWdocs/tests/procedural-cosmetic-filters.html147 <div class="pass"><div class="fail"><a>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempo
LOWdocs/tests/procedural-cosmetic-filters.html147 <div class="pass"><div class="fail"><a>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempo
LOWdocs/tests/procedural-html-filters.html117 <div class="pass"><div class="fail"><a>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempo
LOWdocs/tests/procedural-html-filters.html117 <div class="pass"><div class="fail"><a>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempo
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippet
LOWsrc/js/dashboard-common.js34 // Step 1: build dictionary for existing lines.
LOWsrc/js/dashboard-common.js60 // Step 2: use above dictionary to filter out duplicate lines.
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMsrc/js/assets.js390// Support the seamless loading of sublists.