uBlockOrigin / uBOL-home

uBO Lite home (MV3)
GNU General Public License v3.0
1.22k stars 50 forks source link

Embedded Ublock Lite in our extension leads to chrome web store rejection. #219

Closed ahmed-rafiullah closed 1 month ago

ahmed-rafiullah commented 1 month ago

Hi, we have an extension where we embed ublock lite, when we upload to the chrome webstore it keeps getting rejected these hits are false positives.

This is what they send us

Violating Content: Code snippet: rulesets/scripting/procedural/jpn-1.js: script[src^=\"https://js.ad-stir.com/\"] script[src^=\"http://spdeliver.i-mobile.co.jp/script/ads.js\"] script[src^=\"https://js.gsspcln.jp/\"] script[src^=\"https://js.ad-stir.com/\"] Code snippet: rulesets/scripting/specific/annoyances-widgets.js: script[src="https://blogroll.livedoor.net/js/blogroll.js"] Code snippet: rulesets/scripting/specific/jpn-1.js: script[src^="https://js.ad-stir.com/"] script[src="http://pagead2.googlesyndication.com/pagead/show_ads.js"] script[src^="https://js.ad-spire.net/"] Code snippet: rulesets/scripting/scriptlet/tur-0.no-fetch-if.js: const i = function() { const i = new Map, l = [ ["pagead2.googlesyndication.com"], ["https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"], ["/assets/js/prebid"], ["www3.doubleclick.net"], ["doubleclick.net"] ] if ("object" != typeof wrappedJSObject) return i(); { const l = self.wrappedJSObject; let d, o; try { l.uBOL_noFetchIf = cloneInto([ ["(", i.toString(), ")();"], { type: "text/javascript; charset=utf-8" } ], self); const c = new l.Blob(...l.uBOL_noFetchIf); o = l.URL.createObjectURL(c); const a = l.document; d = a.createElement("script"), d.async = !1, d.src = o

This is what i sent them

In the files mentioned here

rulesets/scripting/specific/annoyances-social.js rulesets/scripting/specific/annoyances-widgets.js The scripts mentioned are part of this larger context (note some of the code is not shown here for sake of saving space) This below snippet is part of rulesets/scripting/specific/annoyances-social.js ;(self.specificImports = self.specificImports || []), self.specificImports.push({ argsList: [ […, '.video-cta > .js-share,\n.video-infocardshare-icons', '.vgc-socialshare', 'a[href*="http://assets.pinterest.com/js/pinmarklet.js"]', '.player-detailcontrols-item > .icon-share,\n.player-detailcontrols-item > .icon-share + noindex', '.interaction-barshare', …] http://assets.pinterest.com/js/pinmarklet.js is part of css attribute selector that targets hrefs containing this url Similarly this below snippet is part of rulesets/scripting/specific/annoyances-widgets.js ;(function uBOL_cssSpecificImports() { /**/ const argsList = [ '#SinoptikInformer', '#customer-survey_feature_div', …, 'div[style="height:340px;margin:0;padding:0;overflow:auto;"]', '.rss-wrap', '#center > div.plugin3_outline:has(> div[class$="_body"] p > a[href^="http://newmofu.doorblog.jp/"]),\n#center > div.plugin3_outline:has(> div[class] script[src="https://blogroll.livedoor.net/js/blogroll.js"]),\n.ently_text > div[style="background-color: #FFFFFF;margin: 10px 0px 25px 0px;padding: 14px 8px 20px;"]', '#custom_html-18', '#container > div[style^="width:1218px;"],\niframe[src="http://matometanews.com/rss.html"]', '#header_outline > center > table[width="395"]', …, ]

Did you ever encounter this if so how did you get this extension to pass review. We have around 2 million users and the mv3 deadline is right around the corner.

Any help or tips would be greatly greatly appreciated.

Thank you in advance!