Code Monkey home page Code Monkey logo

adblock-lists's Introduction

Lists

If you modify any of these lists, follow these instructions to test your changes locally.

brave-unbreak.txt

Combined with all lists, including regional.

coin-miners.txt

Tracks URLs that do coin mining.

adblock-lists's People

Contributors

alexeybarabash avatar antonok-edm avatar arthuredelstein avatar bbondy avatar bcaller avatar brave-browser-releases avatar bridiver avatar claucece avatar emi-emi-emi avatar fmarier avatar gianmarko72 avatar iambrianfung avatar jonathansampson avatar kim0 avatar legopin avatar lukemulks avatar pes10k avatar pilgrim-brave avatar renovate-bot avatar renovate[bot] avatar ryanbr avatar scripthunter7 avatar shivankaul avatar snyderp avatar szilardszaloki avatar thypon avatar toignore avatar wknapik avatar yuki2718 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adblock-lists's Issues

Logger for adblocker

I see if there is logger in brave browser adblockers ,just like ublock origin, it would be nice...
Iam currently using brave browser android....

tomtop.com

1.The website was attacked and has been inserted script,But we have cleared the script.
2.As long as the buyer's browser has installed Adblock,then he cannot go shopping normally
3.We find that coin-miners.txt has put our website tomtop.com into the blacklist
4. Really hope you can help us to solve this problem,we want to appeal for this,if you need any information just feel free to ask us,we will reply you asap.
Best Regards

ESPN should allow espncdn.com

CC @jonathansampson in case you want to take this. You can ping me for help on how to do that.

Migrated from Serg's bug here:
brave-experiments/ad-block#41

We block that huge resource, probably we should allow to load espncdn.com domain in espn.com:

http://a.espncdn.com/combiner/c?v=1.0.2&css=m/reset.css,m/fonts.css,m/base.css,m/layout/body.css,m/layout/navigation.css,m/layout/footer.css,m/layout/hidepageshell.css,m/modules/forms.css,m/modules/filters.css,m/modules/tables.css,m/modules/images.css,m/modules/icons.css,m/modules/media.css,m/modules/legacy.css,m/modules/overlays.css,m/modules/expander.css,m/modules/module.css,m/modules/subsection.css,m/modules/pagination.css,m/modules/ads.css,m/modules/ads.popup.css,m/modules/sponsored.css,m/modules/myespnPanel.css,m/modules/inline-nav.css,m/modules/zebra-links.css,m/modules/mem.css,m/modules/handset-button-controls.css,m/modules/p13n.css,m/modules/featured-columnist.css,m/modules/date-picker.css,m/modules/photogallery.css,m/modules/playersform.css,m/modules/poll.css,m/modules/rankings.css,m/modules/scoreboard-carousel.css,m/modules/sportsnation.css,m/modules/paginatedModule.css,m/modules/standings.css,m/modules/stats-table.css,m/modules/story.css,m/modules/storypage.css,m/modules/insider.css,m/modules/video.css,m/modules/watchespn.css,m/modules/btn-toggle-tablet.css,m/modules/add2home.r2.css,m/modules/foresee.css,m/modules/tabs.css,m/modules/share.css,m/modules/facts.css,m/modules/bites.css,m/modules/weekendwatch.css,m/modules/pickcenter.css,m/themes/sports.css,m/themes/games.css,m/themes/local.css,m/sprite.css,m/layout/device.css,m/page/deportes/redirect.css,m/modules/conversations.css,m/modules/accordion.css,m/page/video/videoPlayer.css,m/modules/nflnation.css,m/modules/teams.r9.css,m/page/embed/embed.css,m/modules/freshmanfocus.css,m/modules/tidbits_module.css,m/modules/d_image_module.css,m/page/jquery.smartbanner.css

g.3gl.net RPC tracking & refresh call fix

Observed RPC tracking bypassing Shields on boston.com and sfgate.com (likely Google gRPC)

Strong suspicion this is google, or from a google partner. Definite references to hawklogserver domains, but searches result in either pen testing for windows or vague google references. The absence of search results is suspect given the data passed, and behavior of the requests.

I've tested the filter rule and am able to confirm successful blocking, and no noticeable issues with Google access.

Two requests take place, which then refresh. The second request passes ad, cookie and location data from the user, which appears to pass device data as well.

This is what we're blocking:

Request URL:
https://g.3gl.net/jp/100/v2/C

Response:

function RPClient(){}
(function(){RPClient.c =100; RPClient.pu = "r.3gl.net/hawklogserver/r.p"; RPClient.r =2000; document.onConfigLoaded!==undefined&&document.onConfigLoaded();})(); 

Request URL:

http://g.3gl.net/jp/147/v3/M

Response:

var __extends=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)},PostType,DataWrapper;(function(n){n[n.OnLoad=0]="OnLoad";n[n.OnBeforeUnload=1]="OnBeforeUnload";n[n.OnAbort=2]="OnAbort";n[n.Flush=3]="Flush"})(PostType||(PostType={}));DataWrapper=function(){function n(){this.hasErrors=!1;this._appErrors=null;this.hasIndicators=!1;this._indicators=null;this.hasTracepoints=!1;this._tracepoints=null}return n.prototype.addError=function(n,t){this.hasErrors||(this._appErrors={},this.hasErrors=!0);this._appErrors[n]=t},n.prototype.getErrors=function(){return this._appErrors},n.prototype.addIndicator=function(n,t){this.hasIndicators||(this._indicators={},this.hasIndicators=!0);this._indicators[n]=t},n.prototype.getIndicators=function(){return this._indicators},n.prototype.addTracepoint=function(n,t){this.hasTracepoints||(this._tracepoints={},this.hasTracepoints=!0);this._tracepoints[n]=t},n.prototype.getTracepoints=function(){return this._tracepoints},n}(),function(){var r,i,s;if(document.getElementById&&(window.attachEvent||window.addEventListener)){var t=parent.window,h=t.location,n=t.RProfiler,f=t.WindowEvent,c=h.protocol+"//";f.Unload="unload";var e={Load:f.Load,BeforeUnload:f.BeforeUnload,Unload:f.Unload,Abort:f.Abort,Error:f.Error},o="__CG",l="test",w=3,u={sampleRate:1000,postUrl:c+"r.3gl.net/hawklogserver/r.p",siteId:147,debugParameter:"GlimpseDebug",debugUrl:"g.3gl.net/jp/v3/D",waterfallParameter:"GlimpseWaterfall"};!t.__cpPostUrl||(u.postUrl=t.__cpPostUrl.trim());r=function(){function t(){}return t.addScriptTag=function(n,t){var i=t.document.createElement("script");i.type="text/javascript";i.src=c+n;t.document.body.appendChild(i)},t.getQueryStringValue=function(n){for(var u=h.search.substring(1),r=u.split("&"),t,i=0;i<r.length;i++)if(t=r[i].split("="),t[0]==n)return t[1];return""},t.stopEvents=function(){n&&n.eventManager.clear()},t.setCookie=function(n,t,i,r){var f="",u;!i||(u=new Date,u.setTime(u.getTime()+i*864e5),f="; expires="+u.toUTCString());document.cookie=n+"="+encodeURIComponent(t)+f+"; path=/; domain="+r+";"},t.getCookie=function(n){for(var t,u=document.cookie.split(";"),i=0,r=u;i<r.length;i++)if(t=r[i],n.test(t))return decodeURIComponent(t.substring(t.indexOf("=")+1,t.length));return""},t.PostQueryString="data",t}(),function(n){n[n.UserId="u"]="UserId";n[n.SessionId="s"]="SessionId";n[n.SessionTime="t"]="SessionTime";n[n.PageViewCount="c"]="PageViewCount";n[n.UrlCheckSum="k"]="UrlCheckSum";n[n.PostFlag="f"]="PostFlag";n[n.DomainIndex="i"]="DomainIndex"}(i||(i={})),function(n){n[n.GET=0]="GET";n[n.POST=1]="POST";n[n.HEAD=2]="HEAD";n[n.DELETE=3]="DELETE";n[n.OPTIONS=4]="OPTIONS";n[n.PUT=5]="PUT";n[n.TRACE=6]="TRACE";n[n.CONNECT=7]="CONNECT"}(s||(s={}));var b=function(){function n(){this.userId=-1;this.sessionId=0;this.sessionTime=0;this.pageViewCount=0;this.pageViewId=0;this.postFlag=-1;this.sendWaterfall=!1;this.domainIndex=-1;this.exitToEntry=0}return n.prototype.getText=function(){var n=i.UserId+":"+this.userId+",";return n+=i.SessionId+":"+this.sessionId+",",n+=i.SessionTime+":"+this.sessionTime+",",n+=i.PageViewCount+":"+this.pageViewCount+",",n+=i.UrlCheckSum+":"+this.urlCheckSum+",",n+(i.PostFlag+":"+this.postFlag)},n}(),k=function(){function f(){this.cookieRegex=new RegExp("^(\\s)*"+o+"=","i");this.cookieExpire=365;this.sessionExpire=18e5;this.mainObj=null}return f.prototype.updateSessionTime=function(){if(this.mainObj){var n=(new Date).getTime();n-this.mainObj.sessionTime>this.sessionExpire&&(this.mainObj.sessionId=0);this.mainObj.sessionTime=n;this.updateCookie()}},f.prototype.updateCookie=function(){var u,e,n,t,f,s;if(this.mainObj){if(u=this.mainObj.getText(),!this.domain){if(e=this.mainObj.domainIndex,n=document.domain.split("."),e==-1){for(t=n[n.length-1],f=n.length-2;f>=0;f--)if(t=n[f]+"."+t,r.setCookie(o,u,this.cookieExpire,t),r.getCookie(this.cookieRegex)){this.mainObj.domainIndex=f;this.domain=t;break}return}if(e<n.length)for(t=n[n.length-1],s=n.length-2;s>=e;s--)t=n[s]+"."+t;this.domain=t}u=u+","+i.DomainIndex+":"+this.mainObj.domainIndex;r.setCookie(o,u,this.cookieExpire,this.domain)}},f.prototype.userIdFromCookie=function(n){var r,c,u,o,t,l,f,s,h,e;for(n===void 0&&(n=this.cookieRegex),r=-1,c=document.cookie.split(";"),u=0,o=c;u<o.length;u++)if(t=o[u],n.test(t))for(t=decodeURIComponent(t.substring(t.indexOf("=")+1,t.length)),l=t.split(","),f=0,s=l;f<s.length;f++)if(h=s[f],h.indexOf(i.UserId+":")==0){if(e=h.split(":"),e.length!=2||e[1].length<=0)break;if(r=parseInt(e[1]),!isNaN(r))return r}return isNaN(r)?-1:r},f.prototype.readCookie=function(){var h=r.getCookie(this.cookieRegex),o,f,s,c,e,n,t,l;if(this.mainObj=new b,h){for(o=h.split(","),f=0,s=o;f<s.length;f++)if(c=s[f],e=c.split(":"),e.length==2){n=parseInt(e[1],10);t=e[0];typeof t=="string"&&(t=t.trim());switch(t){case i.UserId:isNaN(n)||(this.mainObj.userId=n);break;case i.SessionId:isNaN(n)||(this.mainObj.sessionId=n);break;case i.SessionTime:isNaN(n)||(this.mainObj.sessionTime=n);break;case i.PageViewCount:isNaN(n)||(this.mainObj.pageViewCount=n);break;case i.PostFlag:isNaN(n)||(this.mainObj.postFlag=n);break;case i.DomainIndex:isNaN(n)||(this.mainObj.domainIndex=n);break;case i.UrlCheckSum:this.mainObj.urlCheckSum=o[1]}}this.mainObj.postFlag==1&&(l=this.mainObj.userId%1e4,l<=u.sampleRate/1e3&&(this.mainObj.sendWaterfall=!0))}},f.prototype.setPostFlag=function(){if(this.mainObj.postFlag=0,u.sampleRate<0){this.mainObj.postFlag=-1;return}var n=this.mainObj.userId%1e4;n<=u.sampleRate&&(this.mainObj.postFlag=1,n<=u.sampleRate/1e3&&(this.mainObj.sendWaterfall=!0))},f.prototype.getReferrer=function(n){for(var i=this.getHostName(n).replace(":","-"),r=n.indexOf("?"),u=0,t=i.length;t<n.length;t++)u+=n.charCodeAt(t)%t;return i+"/"+(r<0?n.length:r)+"/"+n.length+"/"+u},f.prototype.getHostName=function(n){var i=n.indexOf("//")+2,t=n.indexOf("/",i);return i<2&&t==-1?n:(t==-1&&(t=n.length),n.substring(i,t))},f.prototype.loadCookie=function(){var u=n.data.start,i;return(this.readCookie(),this.mainObj.userId==-1&&(i=this.userIdFromCookie(),i!=l&&i>-1&&(this.mainObj.userId=i,this.setPostFlag())),(this.mainObj.userId==-1||this.mainObj.userId==l)&&(this.mainObj.userId=Math.floor(1+Math.random()*((Math.pow(2,64)-2)/2)),this.setPostFlag()),this.mainObj.sessionId==0||u-this.mainObj.sessionTime>this.sessionExpire?(this.mainObj.sessionId=Math.floor(1+Math.random()*((Math.pow(2,32)-2)/2)),this.mainObj.pageViewCount=1):(this.mainObj.pageViewCount<65535&&this.mainObj.pageViewCount++,this.getReferrer(t.document.referrer)==this.mainObj.urlCheckSum&&this.mainObj.sessionTime>0&&(this.mainObj.exitToEntry=u-this.mainObj.sessionTime)),this.mainObj.sessionTime=(new Date).getTime(),this.mainObj.pageViewId=Math.floor(1+Math.random()*((Math.pow(2,16)-2)/2)),this.mainObj.urlCheckSum=this.getReferrer(t.location.href),this.updateCookie(),r.getCookie(this.cookieRegex)=="")?!1:!0},f.prototype.shouldPost=function(){return this.mainObj.postFlag==1},f}(),a=function(){function n(n){this.char=n;this.children=[]}return n}(),d=function(){function n(){this.root=new a("");this.isReversed=!0}return n.prototype.add=function(n,t){var u,i,f,e,r;for(n===void 0&&(n=this.root),u=n.children,i=0,f=u;i<f.length;i++)if(e=f[i],e.char==t)return e;return r=new a(t),u.push(r),r.parent=n,r},n.prototype.toObject=function(){var n={},t=this.isReversed;return function i(n,r){var o=n.char=="",e,u,f;if(o)e=r;else{if(u=n.char,n.children.length==1)while(n.children.length==1)n=n.children[0],u=t?n.char+u:u+n.char;r[u]=n.data||{};e=r[u]}for(f=0;f<n.children.length;f++)i(n.children[f],e)}(this.root,n),n},n}(),v=function(){function n(){this.dns=0;this.connect=0;this.load=0;this.wait=0;this.duration=0;this.redirect=0;this.ssl=0}return Object.defineProperty(n.prototype,"url",{get:function(){return this._url},set:function(n){var i,t,u,r;n.indexOf("http://")!=-1?this.protocol=0:n.indexOf("https://")!=-1&&(this.protocol=1);i=n.split("/").slice(1,3).join("");t=i.indexOf(":");t!=-1&&(u=i.substr(t+1),r=parseInt(u),isNaN(r)||(this.port=r));n=n.substr(n.indexOf(i)+i.length);t=n.indexOf("?");t!=-1&&(n=n.substr(0,t));t=n.indexOf("#");t!=-1&&(n=n.substr(0,t));n=n.substr(0,64);this._url=n},enumerable:!0,configurable:!0}),n.prototype.translateForPost=function(){var t=Math.round,i={u:this.url,pr:this.protocol},n=function(n,t){typeof t=="number"&&(i[n]=t)};return n("pt",this.port),n("dn",t(this.dns)),n("fc",t(this.connect)),n("ld",t(this.load)),n("wt",t(this.wait)),n("rd",t(this.redirect)),n("dr",t(this.duration)),n("ssl",t(this.ssl)),i},n}(),y=function(n){function t(t){n.call(this);this.count=1;this.responseTime=0;this.sendSize=0;this.responseSize=0;this.method=s[t.method.toUpperCase()];t.complete&&t.connectionEstablished&&(this.responseTime=t.complete-t.connectionEstablished);this.sendSize=t.sendSize||0;this.responseSize=t.responseSize||0}return __extends(t,n),t.prototype.translateForPost=function(){var t=n.prototype.translateForPost.call(this);return t.n=this.count,t.md=this.method,t.rp=Math.round(this.responseTime),t.ss=this.sendSize,t.rs=this.responseSize,t},t}(v),g=function(){function n(){this.count=1;this.dns=0;this.connect=0;this.load=0;this.wait=0;this.duration=0;this.ssl=0}return n.prototype.addAjaxItem=function(n){var i,r,t;if(typeof this._ajax=="undefined"){this._ajax=[];this._ajax.push(n);return}for(i=0,r=this._ajax;i<r.length;i++)if(t=r[i],t.url==n.url){t.count++;t.dns+=n.dns;t.connect+=n.connect;t.load+=n.load;t.wait+=n.wait;t.duration+=n.duration;t.redirect+=n.redirect;t.ssl+=n.ssl;t.responseTime+=n.responseTime;t.sendSize+=n.sendSize;t.responseSize+=n.responseSize;return}this._ajax.length<10&&this._ajax.push(n)},n.prototype.translateForPost=function(){var n=Math.round;return{n:this.count,dn:n(this.dns),fc:n(this.connect),ld:n(this.load),wt:n(this.wait),dr:n(this.duration),ssl:n(this.ssl)}},n}(),nt=function(){function n(){this._resources=[]}return n.prototype.addWaterfallItem=function(n){this._resources.push(n)},n.prototype.translateForPost=function(){for(var r,t=[],n=0,i=this._resources;n<i.length;n++)r=i[n],t.push(r.translateForPost());return t},n}(),p=function(n){function t(){n.apply(this,arguments);this.maxJsErrors=10;this.charCodes={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\","&":"%26"};this.strRegex=/["&\\\x00-\x1f\x7f-\x9f]/g}return __extends(t,n),t.prototype.toString=function(n){var t=this.translateForPost(n);return typeof JSON=="undefined"?this.jsonStringify(t):JSON.stringify(t)},t.prototype.strEscape=function(n){var i=this.charCodes[n],t;return i?i:(t=n.charCodeAt(0),"\\u00"+Math.floor(t/16).toString(16)+(t%16).toString(16))},t.prototype.jsonStringify=function(n){var t=[],i,u,e,r,f;switch(typeof n){case"string":return this.strRegex.test(n)?'"'+n.replace(this.strRegex,this.strEscape)+'"':'"'+n+'"';case"number":return isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":if(!n)return"null";if(n.constructor===Date,typeof n.length=="number"&&!n.propertyIsEnumerable("length")){for(i=0,u=n;i<u.length;i++)e=u[i],t.push(this.jsonStringify(e));return"["+t.join(",")+"]"}for(r in n)typeof r=="string"&&(f=this.jsonStringify(n[r]),!f||t.push(this.jsonStringify(r)+":"+f));return"{"+t.join(",")+"}"}return""},t.prototype.translateForPost=function(n){var t={},r,i,u;if(t.v=w,t.pt=this.postType,t.ui=this.userId,t.si=this.sessionId,t.di=this.siteId,t.pi=this.pageViewId,t.jsc=this.jsErrorCount||0,t.rf=this.referrer,t.pc=this.pageViewCount,t.dh=this.screenHeight,t.dw=this.screenWidth,t.rc=this.redirectCount||0,t.jsc=this.jsErrorCount||0,this.jsErrors&&this.jsErrors.length>0){for(r=[],i=0;i<Math.min(this.jsErrors.length,this.maxJsErrors);i++)r.push(this.translateErrorForPost(this.jsErrors[i]));t.jse=r}return(this.hasErrors&&(t.ae=this.getErrors()),this.hasIndicators&&(t.ind=this.getIndicators()),this.hasTracepoints&&(t.tra=this.getTracepoints()),this.isConversion&&(t.cv=this.isConversion?1:0,this.revenue&&(t.rv=this.revenue),this.revenueItems&&(t.ri=this.revenueItems)),this.pageGroup&&(t.pg=this.pageGroup),this.variation&&(t.ab=this.variation),(this.resources||this.ajaxRequests)&&(u=this.translateResources(this.resources,this.ajaxRequests,n),t.res=u),!this.isNewPageView)?(t.np=0,t):(t.np=1,t.dn=this.dns,t.fc=this.fullConnect,t.wt=this.wait,t.ld=this.load,t.de=this.domInteractive,t.dl=this.domLoaded,t.dc=this.docComplete,t.rp=this.response,t.cl=this.contentLoad,t.rd=this.redirect,t.dh=this.screenHeight,t.dw=this.screenWidth,t.rc=this.redirectCount||0,this.secureConnect&&(t.sc=this.secureConnect),this.exitToEntry&&(t.xe=this.exitToEntry),this.entryToOnLoad&&(t.el=this.entryToOnLoad),this.spdyVersion&&(t.sv=this.spdyVersion),this.prerender&&(t.pr=this.prerender),t)},t.prototype.translateErrorForPost=function(n){var t={},i,r;return t.m=n.message,t.n=n.lineNumber,t.c=n.count+1,i=n.url,r=i.indexOf("?"),r!=-1&&(i=i.substr(0,r)),t.u=i,t},t.prototype.translateResources=function(n,t,i){var k=!!n,ot=!!t,l,it,f,s,rt,ut,h,v,y,e,o,ft,et,p,w,b,ct;if(!k&&!ot)return null;i=i||!!r.getQueryStringValue(u.waterfallParameter);var st=function(n){var i,r,u;if(!k||!ot)return null;for(i=0,r=t;i<r.length;i++)if(u=r[i],u.url==n.name)return u;return null},c={},tt=[],ht,lt=(n||[]).concat(t||[]);for(l=0,it=lt;l<it.length;l++)if((f=it[l],f)&&(s=(f.name||f.url).split("/").slice(1,3).join(""),s&&s.length!=0)){rt=s.indexOf(":");rt!=-1&&(s=s.substr(0,rt));c.hasOwnProperty(s)||(c[s]=i?new nt:new g);var a=c[s],vt=typeof f.domainLookupStart=="number",at=f.constructor.name=="AjaxTiming"||typeof f.getPerformanceTimings=="function";if(at){ht=f;tt.indexOf(ht.wait)==-1&&(ut=this.getWaterfallItem(f),i?(v=a,v.addWaterfallItem(ut)):(e=a,e.count++,e.addAjaxItem(ut)));continue}h=null;i?(v=a,y=this.getWaterfallItem(f,st(f)),v.addWaterfallItem(y),y.constructor.name=="AjaxItem"&&(h=y,tt.push(h.wait))):(e=a,e.count++,k?(o=f,e.dns+=o.domainLookupEnd-o.domainLookupStart,e.connect+=o.connectEnd-o.connectStart,e.load+=o.responseEnd-o.responseStart,e.wait+=o.startTime,e.duration+=o.duration,o.secureConnectionStart&&(e.ssl+=o.connectEnd-o.secureConnectionStart),ft=st(f),ft!=null&&(h=this.getWaterfallItem(f,ft),e.addAjaxItem(h))):(h=this.getWaterfallItem(f),e.addAjaxItem(h)),h!=null&&tt.push(h.wait))}et=new d;for(p in c){for(w=undefined,b=p.length-1;b>=0;b--)ct=p[b],w=et.add(w,ct);w.data=c[p].translateForPost()}return et.toObject()},t.prototype.getWaterfallItem=function(n,t){var u=typeof n.domainLookupStart=="number",i,r;return u?(i=t?new y(t):new v,r=n,i.url=r.name,i.dns=r.domainLookupEnd-r.domainLookupStart,i.connect=r.responseEnd-r.responseStart,i.wait=r.startTime,i.duration=r.duration,i.redirect=r.redirectEnd-r.redirectStart,r.secureConnectionStart&&(i.ssl=r.connectEnd-r.secureConnectionStart)):(t=n,i=new y(t),i.url=t.url,i.dns=t.dns,i.connect=t.connect,i.wait=t.wait,i.duration=t.duration,i.redirect=t.redirect,i.ssl=t.ssl),i},t}(DataWrapper),tt=function(){function i(){var i=this,f;if(this.visitor=new k,this.postUrl=u.postUrl,this.prevPostObj=null,this.didSendInitial=!1,this.didUnloadPost=!1,this.isDebugging=!1,this.registerPageLoad=function(){if(i.isDebugging){n.debugData=i.createInitPostObject(PostType.OnLoad);r.stopEvents();r.addScriptTag(u.debugUrl,t);return}if(i.visitor.shouldPost()){if(!n.data.loadFired){setTimeout(i.registerPageLoad,100);return}i.doPostReport(PostType.OnLoad,!0)}},this.doPostBeforeUnload=function(){i.visitor.shouldPost()&&!i.didUnloadPost&&(i.didUnloadPost=!0,i.visitor.updateSessionTime(),n.data.loadFired?i.doPostReport(PostType.OnBeforeUnload,!1):i.doPostReport(PostType.OnAbort,!0))},n&&n.data&&!this.didSendInitial){if(this.didSendInitial=!0,f=this.visitor.loadCookie(),this.isDebugging=!!r.getQueryStringValue(u.debugParameter),!this.isDebugging&&!f){r.stopEvents();return}n.data.loadFired?this.registerPageLoad():n.eventManager.add(e.Load,parent.window,this.registerPageLoad);n.eventManager.add(e.BeforeUnload,t,this.doPostBeforeUnload);n.eventManager.add(e.Unload,t,this.doPostBeforeUnload)}}return i.prototype.doPostReport=function(n,t){var r,u,i;if(t){if(r=this.createInitPostObject(n),r.siteId==-1)return}else r=this.createDiffPostObject(n,this.prevPostObj);u=r.toString(this.visitor.mainObj.sendWaterfall);i=new XMLHttpRequest;window.XDomainRequest&&(i=new window.XDomainRequest,i.timeout=0,i.onload=function(){},i.onerror=function(){},i.ontimeout=function(){},i.onprogress=function(){});i.open("POST",this.postUrl,!0);i.setRequestHeader?i.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"):null;i.send(u);i=null;this.prevPostObj=r},i.prototype.createInitPostObject=function(i){var r=new p,e,o,f,s;return r.postType=i,r.isNewPageView=!0,r.siteId=u.siteId,r.referrer=encodeURI(t.location.href),e=this.visitor.mainObj,r.userId=e.userId,r.sessionId=e.sessionId,r.pageViewId=e.pageViewId,r.pageViewCount=e.pageViewCount,r.screenHeight=screen.height,r.screenWidth=screen.width,n.data.jsCount>0&&(r.jsErrorCount=n.data.jsCount,r.jsErrors=n.data.jsErrors),e.exitToEntry>0&&(r.exitToEntry=e.exitToEntry),o=n.data.loadTime-n.data.start,o>0&&(r.entryToOnLoad=o),t.performance&&(f=t.performance.timing,r.dns=f.domainLookupEnd-f.domainLookupStart,r.fullConnect=f.connectEnd-f.connectStart,r.wait=f.responseStart-f.requestStart,r.load=f.responseEnd-f.responseStart,r.domInteractive=f.domInteractive-f.navigationStart,r.domLoaded=f.domContentLoadedEventStart-f.navigationStart,r.docComplete=f.domComplete-f.navigationStart,r.response=f.responseEnd-f.navigationStart,r.contentLoad=f.loadEventStart-f.domLoading,r.redirect=f.redirectEnd-f.redirectStart,f.secureConnectionStart&&(r.secureConnect=f.connectEnd-f.secureConnectionStart),t.performance.navigation&&(r.redirectCount=t.performance.navigation.redirectCount),t.performance.getEntriesByType&&(r.resources=t.performance.getEntriesByType("resource"))),t.chrome&&t.chrome.loadTimes&&(s=t.chrome.loadTimes(),s.wasFetchedViaSpdy&&(r.spdyVersion=s.npnNegotiatedProtocol)),document.webkitVisibilityState==="prerender"&&(r.prerender=1),n.hasInsight&&(this.addInsightForPost(r),n.clearInfo()),n.data.ajax&&(r.ajaxRequests=n.data.ajax.slice()),r},i.prototype.createDiffPostObject=function(i,r){var u=new p,e,f;return u.postType=i,u.isNewPageView=!1,u.userId=r.userId,u.sessionId=r.sessionId,u.siteId=r.siteId,u.pageViewId=r.pageViewId,u.pageViewCount=r.pageViewCount,u.referrer=r.referrer,u.screenHeight=screen.height,u.screenWidth=screen.width,n.data.jsCount>0&&n.data.jsCount>r.jsErrorCount&&(u.jsErrorCount=n.data.jsCount-r.jsErrorCount,u.jsErrors=n.data.jsErrors.slice(-u.jsErrorCount)),t.performance&&(t.performance.navigation&&(f=t.performance.navigation.redirectCount,f>0&&f>r.redirectCount&&(u.redirectCount=f-r.redirectCount)),t.performance.getEntriesByType&&(e=t.performance.getEntriesByType("resource"),e.length>r.resources.length&&(u.resources=e.slice(r.resources.length)))),n.data.ajax&&n.data.ajax.length>r.ajaxRequests.length&&(f=r.ajaxRequests.length,u.ajaxRequests=n.data.ajax.slice(f)),n.hasInsight&&this.addInsightForPost(u),u},i.prototype.addInsightForPost=function(t){var f=n.info,r,s,o,e,u,h,c,i;for(r in f)switch(r){case"appError":if(i=f[r],i&&typeof i=="object")for(e in i)(o=Number(e),isNaN(o))||(u=i[e],u&&typeof u=="string"&&(s=u,s.length>32&&(s=s.substring(0,32)),t.addError(e,s)));break;case"conversion":if(i=f[r],t.isConversion=!0,i&&typeof i=="object")for(e in i)(o=Number(e),isNaN(o))||(u=i[e],u&&typeof u=="number"&&(t.revenue=o,t.revenueItems=u));break;case"indicator":h=this.buildInsight(f[r],0);h[0]&&t.addIndicator(h[1],h[2]);break;case"tracepoint":c=this.buildInsight(f[r],"");c[0]&&t.addTracepoint(c[1],c[2]);break;case"pageGroup":i=f[r];i!==undefined&&typeof i=="string"&&(t.pageGroup=i);break;case"variation":i=f[r];i!==undefined&&typeof i=="string"&&(t.variation=i)}},i.prototype.buildInsight=function(n,t){var f,i=!1,r,u;if(n&&typeof n=="object")for(r in n)r&&(u=n[r],u&&typeof u==typeof t&&(f=[r,u],i=!0));return i?[i,f[0],f[1]]:[i,"",t]},i}(),it=new tt}}();`

**This filter will block:** `||g.3gl.net^`

Blocked webfonts (thetimes.co.uk)

Hello,

With adblocking turned on (both Standard and Aggressive), several webfonts are blocked - which leads to an incorrectly formatted comment section below articles.

URL: https://www.thetimes.co.uk (Paywall)

Blocked content which should be whitelisted:
https://publisher-assets.spot.im/times-of-london/tol-fonts/TimesDigitalRegular.woff2
https://publisher-assets.spot.im/times-of-london/tol-fonts/GillSansW01Medium.woff2
https://publisher-assets.spot.im/times-of-london/tol-fonts/TimesModern-Bold.woff

Thank you!

Correct a filter name in brave://adblock/

The Japanese filter was replaced from ABP-JP to AG-JPN by #355 but I found the name in brave://adblock/ has not changed:

brave

Confirmed both on Windows (Brave 1.11.101) and Android (1.10.99; chrome://adblock) version.

Create a separate ios-extra list for Slimlist/ios

Move admiral filters from brave-unbreak into a ios-extra.txt

To avoid dubes with Easyprivacy for Desktop/Android, moving Admiral trackers into its own ios list for slimlist. Which could also cover other filters not being filtered in slimlist.

#edited

Include Fanboy Social, Annoyances and Enhanced Trackers List

Making these 3 lists available, in sync with the offerings with uBO. All 3 available in uBO.

Social List: https://easylist-downloads.adblockplus.org/fanboy-social.txt

Will Hide Social (buttons, widgets etc) elements on a page

Annoyances List: https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt

Includes Social List, but also hides additional elements, New letter overlays, Cookie messages, self-promo banners.

Enhanced Trackers: https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/enhancedstats-addon.txt

Test-bed for trackers, problematic trackers / some paywall trackers

Replace regional filter list for Japanese

Having seen issue reports have been ignored by the maintainer of ABP Japanese filter, I decided to propose this. Actually the filter is what no sensible Japanese user of adblocker uses. It's almost dead, causes problems even for Japanese sites, doesn't block newer ads, and its maintainer has too rigid support policy which doesn't work well with Brave. Here https://github.com/DandelionSprout/adfilt/issues/7#issuecomment-438127834 was some of related discussion in English. There are better alternatives but as the choice for default is such a big decision I'll just comment on the most popular candidates as objectively as possible (still can't eliminate my subjective opinion).

  • AdGuard Japanese
    https://kb.adguard.com/en/general/adguard-ad-filters#japanese
    well-maintained as you expect, the default filter for Japanese on uBlock Origin. A big plus is this filter is very compatible with EasyList/EasyPrivacy (other candidates have some overlap). A potential problem may be apparently not many Japanese adblock user use this and thus reports are often from foreigners, which resulted in some biases in its coverage, i.e. compared to other candidates, more rules for otaku related sites, roundup blogs, and adult sites while less rules for websites that "average" Japanese internet user will frequently visit.

  • Tofu filter
    https://github.com/tofukko/filter/blob/master/Adblock_Plus_list.txt
    probably the most popular list among Japanese adblock user for PC. Now it is shared on Github (it was not when uBO switched their default filter for Japanese) so I guess it will be possible to report issues there, tho so far no issue was made (Japanese users have been reporting issues on a blog by the maintainer). While it's effective, its generic cosmetic filters tend to be aggressive and occasionally cause false positives - not sure if applying them only for third-party mitigates this or not.

  • 280blocker for japanese mobile site
    https://280blocker.net/download/
    the most popular list for mobile, but can also be used for PC and it seems actually some people, including the maintainer himself, are doing so. It has been most actively developed (1-3+ updates per month for years), and unlike other candidates it uses standard ABP syntax only. The ABP format list blocks some social staff and annoyances too. Reporting issue is usually done by a dedicated form on their homepage. The biggest problem will be it's under CC BY-NC-ND 4.0.

  • Mochi filter
    https://github.com/eEIi0A5L/adblock_filter/blob/master/mochi_filter.txt
    another popular list for PC, and the maintainer offers a list for mobile named Tamago filter (https://github.com/eEIi0A5L/adblock_filter/blob/master/tamago_filter.txt) too. This filter is least likely to cause false positives as few generic rules are used, tho at the same time the coverage of blocking may be limited. The maintainer is very responsive and seems to have no trouble to communicate in English. He declared he doesn't hold any rights on all of his filters, meaning they are under CC0 (if you have doubt, ask him).

Unblocked ad on https://ouo.press/

Steps to reproduce:

  1. Go to: https://ouo.press/L5h46A
  2. Click on 'I'm human'.
  3. See the ad below the 'Get link' button

This particular image is very annoying and if somehow this can be hidden then I'd be really great for me.

Brave browser on Android: Version 1.12.113

Screenshot_20200814_114423

123movies.is - video player display ad overlay fix

Migrated from:

Banner ads are playing over the video:
brave-123movies-overlay-03072017

page url: https://123movies.is/film/interstellar-1655/watching.html

Traced request that calls the banner over the video:
https://cdn.123clouds.ru/js/custombanner.js?v=58bf34c9ac70e

Tested this rule in about:adblock, and it resolves the issue:
||123clouds.ru/*/custombanner.js^$script,domain=123movies.is

Will submit a PR

LAtimes.com - filter rules to fix new native ads

3 different flavors of new, native ads discovered as of this morning on latimes.com - being tracked and investigated here: brave/browser-laptop#7454

These are different and new, unrelated to recent PR that was merged last week.

2 different versions of "sponsored content" ads discovered this morning on Windows, which the rules below have confirmed resolving when tested in about:adblock.

||aggrego.org^$script,image, domain=latimes.com
||adserve.postrelease.com^$script,image, domain=latimes.com
||troncdata.com^$script,image, domain=latimes.com
||polarmobile.com^$script,image, domain=latimes.com
||ntv.io^$script,image, domain=latimes.com
||gigya.com^$script,image, domain=latimes.com

A 3rd issue has been reported from MacOS, but has not yet been reproduced in Windows. Still investigating that.

Will submit a PR for adding the rules above to solve for 2/3, and will follow up here if the third issue is also resolved once I'm able to verify from MacOS.

Please, disable this for these sites.

This sites.

https://g1.globo.com/
https://www.uol.com.br/
https://globoesporte.globo.com

The message reads as "You are seeing this message because ad or script blocking software is interfering with this page. Disable any ad or script blocking software, then reload this page."

For Android .

Thks.

Youtube ads - Additional blocking rules

Follow up from: brave/browser-laptop#7230

I've run comparison checks against uBlock Origin, AdBlock Plus (with Acceptable Ads disabled), and Brave Shields. The data from the comparison checks is included in the following xlsx:
Youtube-blocking-comparison-02172017.xlsx

I ran some additional testing to see if I could apply any new rules in about:adblock , and with the following rules applied I am able to visibly see the video ads blocked for the first 7-10 segments I click on (the "Visit Advertiser's Site" overlay briefly shows up and then goes away quickly):

@@||google.com/jsapi$script,third-party
@@||youtube.com/api/stats/watchtime?$image,domain=youtube.com
||doubleclick.net^
=adunit&
||youtube.com/api/stats/ads?
||youtube.com/ptracking?
/generate_204$image
ad_html5&

The two exceptions applied above were observed in ABP and uBlock, which are likely in place to maintain compatibility with the video player.

However, after about 10-12 playback attempts, I'm seeing an ad appear. This is really strange. The blocking taking place initially matches what is working for users that aren't signed in.

Note: Ads are only observed while authenticated. Users that aren't signed are seeing ad blocking work as expected.

There are the following ELEMHIDE rules applied in both uBlock and ABP that I don't believe we are using:

##.ytp-ad-progress-list
##.video-ads 
youtube.com##.ad-container
###watch7-sidebar-ads
youtube.com###watch-channel-brand-div

I also attempted the isThirdPartyHost test we discussed (referenced in Slack), but I am not 100% confident I am testing that correctly.

Based on the calls that aren't blocked, I can't tell if we're just not blocking 1st party verbatim EasyList rules, or if I was testing isThirdPartyHost incorrectly, as I believe we should be seeing youtube.com requests that contain =adunit& blocked that I'm not seeing blocked in Brave (I am seeing them blocked in ABP & uBlock).

  • I know there's some objection to css blocking, so it might be worth testing the third party host settings in case I was not testing that correctly.

  • If that doesn't work, then css ELEMHIDE blocking for YT would likely be the next option.

  • If neither of those work, I think there could be a larger problem.

  • I noticed that uBlock is using EasyPrivacy, and that a lot of blocking was taking place from that list. If we're not using that, it might be worth exploring.

Thanks for the help here. This one has been a real pain.

Incorrectly hidden elements on page

https://www.soulreaperzone.com/anime/re-zero-starting-life-in-another-world-season-2/

When the adblocker is enabled the website hides the download buttons. Please fix it

Create a new `brave-ads.txt` list

Now that we have entries in brave-unbreak.txt which don't related to unbreaking sites for webcompat reasons, we should have a second list whose name better reflect the purpose of these entries (e.g. brave-ads.txt or just brave.txt).

That way we're transparent about what we're doing and we're not hiding extra blocking rules in a webcompat file.

theatlantic.com - updates to filter list

Background:
These filter updates to our list are included as part of a larger fix for anti-ad blocking on The Atlantic:

The following filters were applied as custom filters in the browser when the PR was reviewed, to ensure that when applied to adblock-lists, they will function as expected:

||theatlantic.blueconic.net$domain=theatlantic.com
||theatlantic.com/please-support-us^

PR has merged, so I'm going to add the filters to the unbreak list now.

SFGate - anti-ad blocking fix

SFGate.com has custom ad calls that bypass shield blocking.

Migrated from brave/browser-laptop#6635

At the time the original issue was submitted, I hadn't been familiar with our about:adblock custom filter options, so I had labeled as a siteHacks fix.

The following filter has tested and effectively blocked the ad calls from taking place on sfgate.com with Shields Up.

||aps.hearstnp.com^$script,image

The above filter will also cover the ad calls on other hearst domains, aside from SFGate.com.

I'm going to submit a PR that includes two other filters that were discovered as bypassing shields. Separate issues for those, as they're more global than this hearst-specific case.

new vendors bypassing shields | (observed on pwinsider.com)

Investigating Easylist, found some vendors that are bypassing shields.

||track.atom-data.io^$third-party | aggregate tracking lumped in with the ads
||vidazoo.com/aggregate^$third-party | vid ads
||vidazoo.com/proxy^$third-party | vid ads
||vidible.tv^$third-party | owned by aol advertising
||mediabong.net^$third-party | inserting calls w/bad doubleclick macros like this:
pwinsider-mediabong-badmacros-03212017
||imprvdosrv.com^$third-party | owned by cedato (programmatic vid ads)

Will commit - noting via issue for reference.

Add AdGuard Mobile ads filter and enable it by default on mobile

While EasyList and regional lists block ads on mobile sites too, majority of reports to them are for PC sites. This reflects a fact that these PC ad-blocker are not as widely used or as powerful on mobile as PC. AG dominates ad-blocking on mobile devices and their Mobile filter is enabled by default on uBO running on Firefox Android. Adding to that, now AG Japanese replaced ABP Japanese, but at AdguardFilters mobile-only issues on Japanese sites are addressed in Mobile filter and not in Japanese filter. So without Mobile filter you need to address these mobile-only issues in Brave Unbreak which will be waste of work.

Anti-adblock

Below websites have Anti-adblock when Brave Shields are enabled:

  • https://justlightnovels.com/
  • https://jnovels.com/light-novels-epub/

Brave browser Shields --> Aggressive

Brave browser version (desktop) --> 1.11.104

Facebook 3p tracking (outside of facebook.com)

I've reviewed the latest API docs, and have tested the following custom filters on a handful of domians that include FB widgets and like buttons. These updates should cover a majority of marketing and ad tracking that takes place in the latest versions of the embedded FB widgets and other FB measurements in the larger web.

||connect.facebook.net/*/fbevents.js$third-party
||facebook.com/tr^$image,third-party
||graph.facebook.com^$third-party

There may be some legacy trackers from older/deprecated APIs and widgets, but these filters will cover off on the latest tracking with minimal webcompat and other breakage.

There may be some additional countermeasures (websockets, xhr using php), but those items need additional investigation, as they are closely linked with functionality that users would be opposed to breaking, based on user feedback.

The additional countermeasures mentioned above extend beyond the scope of the FB Ad and Marketing API documentation, so would be best handled in a separate issue if they are encountered.

ublock-unbreak.txt is out of date

Compared to the upstream ublock unbreak list, our copy of it is quite out of date:

-rw-r--r-- 1 francois francois  24K Feb 26 15:25 ublock-unbreak.txt
-rw-r--r-- 1 francois francois  94K Feb 27 11:18 unbreak.txt

and likely leads to a lot more breakage in Brave than in uBlock Origin.

I found that our original copy of the ublock-unbreak list (from 53ea03f) is this one with one exception:

$ diff -u ublock-unbreak.txt unbreak.20161024.txt 
--- ublock-unbreak.txt	2019-02-27 11:28:27.110823480 -0800
+++ unbreak.20161024.txt	2019-02-27 11:29:28.101839184 -0800
@@ -274,7 +274,7 @@
 # - http://www.surfline.com/video/ (links not working)
 # - https://github.com/gorhill/uBlock/issues/529
 # - http://www.scotrail.co.uk/check-your-journey (via https://twitter.com/andy_pee_tho/status/710508529405263872)
-# */b/ss/*&aqe=$image,redirect=1x1-transparent.gif
+*/b/ss/*&aqe=$image,redirect=1x1-transparent.gif
 
 # This unbreak video player:
 # - http://www.cnet.com/videos/big-mac-survives-molten-copper-and-heats-up-internet-ep-233/

We commented that rule in our original copy (no hint as to why), but it's never been commented out in the upstream list. It was added on 2016-03-17 and is still in today's upstream list.

Later we upgraded to the 2017-08-28 version of the upstream list (in 314de3d) without any customizations (i.e. dropping the mysterious one above).

In other words, we've pretty much always relied on the upstream unbreak list for this.

Twitch.tv - anti-ad blocker, video player (desktop: homepage)

Migrated from brave/browser-laptop#6872

Issue: twitch.tv video player locks up and displays a black overlay on the video player with shields up.
https://www.twitch.tv

Determined root cause & blacklist-tested:

Twitch.tv is using cloudfront to load a script that detects ad blocking:
https://d2lv4zbk7v5f93.cloudfront.net/esf.js

Blacklist rule that worked (via Charles Proxy blacklisting)
https://cloudfront.net/esf.js

Confirmed that blacklisting using this method of wildcarding around Cloudfront did the trick, and blocking behavior resumed once I removed the blacklisting rule.

@bbondy I believe the blacklist rule I applied in Charles Proxy would translate to the unbreak list as:

@@||cloudfront.net/esf.js$domain=twitch.tv

Happy to review/QA/confirm.

Sorry if this is dense, but would you rather me submit issues and propose fixes in this format, or branch & PR? Not sure what's preferred for these cases. (I come from submitting issues to devs over email behind closed gardens)

Create new anti-adblock list

To minimise the use of Anti-adblock filters, and keep brave-unbreak for actual website breakages.

To move any Anti-ablock/Anti-adblock tracking from brave-unbreak.txt

To be used in both Desktop and mobile browsers.

Exceptions for two additional reddit requests

Reddit has connected to mention that the following requests are currently being blocked, that they use for 1st party ads that they run.

These are the requests that Reddit has requested we make exceptions for:

Two possible exception filters:

For 1: @@||redditstatic.com^
For 2: @@||alb.reddit.com^

These would be appended to this section of the unbreak list (should have been added initially, were not discovered until after the fact):

https://github.com/brave/adblock-lists/blob/master/brave-unbreak.txt#L88

sail-horizon.com (sailthru) aggregator (native ads) fix

Discovered on SFGate.com, but observed across many news sites. Sailthru is similar to Taboola and Outbrain, but also does data-only collection which we'll be protecting against.

Display ads primarily viewed on tablets, but data calls have been made across both desktop and mobile platforms.

This is what we're blocking:

Request URL:
https://ak.sail-horizon.com/horizon/v1.js

Response URL:

/** Copyright (c) 2017 Sailthru, Inc. | Revision: de951f8cc25b4c59edf64cbc949c2c5cc86548c0 | Generated: 2017-03-07T22:07:27Z **/
 
(function(){var a,b=Array.prototype.indexOf||function(e){for(var d=0,c=this.length;d<c;d++){if(d in this&&this[d]===e){return d}}return -1};window.Sailthru=window.sailthru=a=(function(){var d;d=null;function c(){this.options={spider:true,concierge:false,track_url:true,useStoredTags:false,useFullUrl:false,cookieDomain:window.location.host};this.hidden=false;this.protocol=window.location.protocol}c.setup=function(l){var i,h,j,m,f,g,e;if(typeof l.domain==="undefined"){return}j=c;j.tracked={};if(!(j.__instance instanceof c)){j.__instance=new this;for(i in l){h=l[i];j.__instance.options[i]=l[i]}if(typeof j.__instance.options.tags==="undefined"){j.__instance.options.tags=j.__instance.getContentTags()}if(j.__instance.options.jQuery){c.jq=j.__instance.options.jQuery}else{if(window.jQuery){c.jq=window.jQuery}else{if(window.$){c.jq=window.$}}}f=j.__instance.cookieIsEnabled();e=document.location.search.indexOf("concierge_stage")!==-1;g=j.__instance.getCookie("sailthru_recommendation_hidden")==="true";if((j.__instance.options.concierge||e)&&f&&!g){j.__instance.options.concierge=j.__instance._conciergeDefaultOptions();if(l.concierge!==true){m=l.concierge;for(i in m){h=m[i];j.__instance.options.concierge[i]=l.concierge[i]}}if(e){j.__instance.options.concierge.stage=1}if(!l.concierge.stage_only||e){j.__instance._recommendationBox()}}else{if(typeof j.__instance.options.tags!=="undefined"||j.__instance.options.spider===true){j.__instance._horizonTrack()}}}return j.__instance};c.logFB=function(g){var i,h,e,f;if(g==null){g=false}if(g===false){g=window.location.href}h={};f=function(j,l){var k;if(typeof window.FB!=="undefined"){window.FB.api("/",{id:j},function(m){if(m.shares!=="undefined"){return l(m.shares)}})}else{k={url:"https://graph.facebook.com/?id="+encodeURIComponent(j),async:false,success:function(m){if(m.shares!=="undefined"){return l(m.shares)}}};$.ajax(k)}};if(window.FB){e=window.FB;i=(function(){var j;j=false;e.getLoginStatus(function(k){if(k.authResponse){if(k.authResponse.userID){j={logged_in:true,uid:k.authResponse.userID!=null}}}else{if(k.session){if(k.session.uid){j={uid:k.session.uid,logged_in:true}}}else{j=false}}});return j})();if(i!==false){h=i}}f(g,function(j){if(j!=="undefined"){h.shares=j}});return h};c.track=function(h){if(typeof h.domain==="undefined"){return}if(typeof h.spider==="undefined"){h.spider=1}var f,e,g=c;g.__trackInstance=new this;for(f in h){e=h[f];g.__trackInstance.options[f]=h[f]}if(typeof g.__trackInstance.options.tags==="undefined"){g.__trackInstance.options.tags=g.__trackInstance.getContentTags()}g.__trackInstance._horizonTrack()};c.prototype.getContentTags=function(){var j,f,i,h,g,e;j=document.getElementsByTagName("meta");if(j.length>0){for(i=0,g=j.length;i<g;i++){f=j[i];if(typeof f.name!=="undefined"&&f.name.toLowerCase()==="sailthru.tags"&&typeof f.content!=="undefined"){return f.content}}for(h=0,e=j.length;h<e;h++){f=j[h];if(typeof f.name!=="undefined"&&f.name.toLowerCase()==="keywords"&&typeof f.content!=="undefined"){return f.content}}}return null};c.prototype.getCookie=function(g){var j,f,i,h,e;if(this.cookieIsEnabled()!==true){return null}i=g+"=";f=document.cookie.split(";");for(h=0,e=f.length;h<e;h++){j=f[h];while(j.charAt(0)===" "){j=j.substring(1,j.length)}if(j.indexOf(i)===0){return j.substring(i.length,j.length)}}return null};c.prototype.setCookie=function(f,g,i){var h,e;if(this.cookieIsEnabled()!==true){return false}e=new Date();e.setDate(e.getDate()+i);h=f+"="+escape(g);if(i!==null){e=new Date();e.setDate(e.getDate()+i);h+=";expires="+e.toUTCString()}h+=";path=/;domain="+this.options.cookieDomain;document.cookie=h;return true};c.prototype.cookieIsEnabled=function(){return navigator.cookieEnabled||(b.call(document,"cookie")>=0&&(document.cookie.length>0||(document.cookie="test").indexOf.call(document.cookie,"test")>-1))};c.prototype.tagsToString=function(f){var e;e=f instanceof Array?f.join(","):f;return e};c.recommendationTrack=function(l,g,f,h,q){var p,m,n,j,i,e,o;if(typeof c.tracked==="undefined"){c.tracked={}}if(c.tracked[f]){return}c.tracked[f]=true;if(window.location.protocol==="https:"){e="https://horizon.sailthru.com/horizon/recommendtrack?id="+g;e+="&d="+l;sailthru_hid=this.getCookie("sailthru_hid");sailthru_bid=this.getCookie("sailthru_bid");if(sailthru_hid!==null){e+="&hid="+sailthru_hid}if(sailthru_bid!==null){e+="&bid="+sailthru_bid}}else{e=window.location.protocol+"//"+l+"/horizon/recommendtrack?id="+g}if(f){e+="&event="+f}if(h){for(j in h){o=h[j];e+="&"+j+"="+encodeURIComponent(o)}}if(q&&q.useFullUrl){e+="&from_url="+encodeURIComponent(document.location)}if(f==="click"){n=c.__instance;p=parseInt(n.getCookie("hcl"));p=isNaN(p)?1:p+1;n.setCookie("hcl",p,5)}i=parseInt(Math.random()*10000,10);e+="&cb="+i;m=new Image(1,1);m.src=e;m.onerror="";return};c.recommendationBoxCallback=function(e){return c.jq(document).trigger("SailthruDataLoaded",[e])};c.emailSignup=function(){var f=c.__instance.options;var e,g;g=c.jq(this).serialize();if(document.getElementById("sailthru_email_address")){e=window.location.protocol+"//"+f.domain+"/horizon/conciergesignup?format=jsonp&callback=?&"+g;if(f.concierge.stage){e+="&concierge_stage=1"}c.jq.getJSON(e)}return false};c.signupCallback=function(g){var f,e;f=c.jq(".recommendationSignup");f.html(g.content.html);e=f.find("form");e.submit(c.emailSignup);if(g.ok){setTimeout(function(){c.prototype._hide();c.__instance.hidden=true},1500)}};c.prototype.test=function(){if(typeof console!=="undefined"){console.log("this is test call")}return};c.prototype._conciergeDefaultOptions=function(){var f,e;f="ak.sail-horizon.com";return e={from:"top",threshold:400,delay:null,offsetBottom:0,cssPath:this.protocol+"//"+f+"/horizon/recommendation.css"}};c.prototype._recommendationBox=function(){var j,g,h,l,e,m,k,f,i;j=c.jq.extend({},this.options.concierge);e=null;g=false;if(this.protocol==="https:"){j.url="https://horizon.sailthru.com/recommend?format=jsonp&callback=?";sailthru_hid=this.getCookie("sailthru_hid");sailthru_bid=this.getCookie("sailthru_bid");j.url+="&d="+this.options.domain;if(sailthru_hid!==null){j.url+="&hid="+sailthru_hid}if(sailthru_bid!==null){j.url+="&bid="+sailthru_bid}}else{j.url=this.protocol+"//"+this.options.domain+"/recommend?format=jsonp&callback=?"}if(this.options.concierge.filter&&this.options.concierge.filter.tags){j.url+="&filter[tags]="+this.tagsToString(this.options.concierge.filter.tags)}if(this.options.spider!==true){j.url+="&nospider=1"}if(this.options.noPageview){j.url+="&nopageview=1"}if(this.options.useStoredTags){j.url+="&use_stored_tags=1"}if(this.options.tags){j.url+="&tags="+encodeURIComponent(this.tagsToString(this.options.tags))}if(this.getCookie("hcl")){j.url+="&num_clicks="+this.getCookie("hcl")}if(this.options.concierge.stage){j.url+="&concierge_stage=1"}if(this.options.useFullUrl){j.url+="&url="+encodeURIComponent(document.location)}j.domain=this.options.domain;this.data={};l=this;h=typeof this.options.delay!=="undefined"?this.options.delay:false;k=function(){var n=this;f(j.cssPath);c.jq(document).bind("SailthruDataLoaded",function(p,o){n.data=o;n.dataLoaded=true;return m.call(n)});c.jq.getJSON(j.url);c.jq(window).scroll(function(s){var r,p,q,t,o;if(n.dataLoaded===true){r=c.jq(this);q=r.scrollTop();p=c.jq(document).height()-c.jq(window).height();if(j.threshold instanceof jQuery){o=0-(j.threshold.eq(0).offset().top-c.jq(window).height());t=0}else{o=j.from==="bottom"?j.threshold:-j.threshold;t=j.from==="bottom"?p:0}if(q>=(t-o)&&!n.hidden){return i.call(n)}else{return c.__instance._hide()}}});if(h){return e=setTimeout(function(){clearTimeout(e);return i.call(n)},h)}};f=function(o){var n;n=document.createElement("link");n.href=o;n.rel="stylesheet";n.type="text/css";n.async=true;document.getElementsByTagName("head")[0].appendChild(n)};m=function(){var q,o,s,p,n,r=this;p=this.data.content;q=c.jq('<div class="recommendation sailthruRecommendation" />');if(navigator.appVersion.indexOf("MSIE 1")!=-1){q.addClass("ie")}if(typeof p.html!=="undefined"){q.html(p.html);o=q.find("a.closeRecommendation");s=q.find("a.openRecommendation");n=q.find("form");q.appendTo("body")}o.click(function(t){t.preventDefault();l.setCookie("sailthru_recommendation_hidden","true",30);r.hidden=true;c.__instance._hide();return false});s.click(function(t){t.preventDefault();l.setCookie("sailthru_recommendation_hidden","false",30);r.hidden=false;i.call(r);return false});n.submit(c.emailSignup);setTimeout(function(){var u,v,t;u=c.jq('<iframe id="sailthru_iframe" src="" FRAMEBORDER="0" />');v={bottom:j.offsetBottom,zIndex:"10000"};q.css(v);t={position:"fixed",width:q.outerWidth(),height:q.outerHeight(),zIndex:"9999",right:0,bottom:j.offsetBottom,display:"none"};u.css(t);u.appendTo("body");r.$elem=q;return r.$iframe=u},100)};i=function(){if(!navigator.cookieEnabled){return false}if(l.getCookie("sailthru_recommendation_hidden"==="true")){return false}if(c.__instance.hidden){return false}if(this.$elem&&!this.$elem.is(":animated")){this.$elem.find(".openWrapper").hide();this.$iframe.show();this.$elem.show().animate({right:0},"normal")}if(!this.data.content.id){return false}return c.recommendationTrack(j.domain,this.data.content.id,"show",this.data.track,this.options)};return k.call(this)};c.prototype._hide=function(){var k,g,i,e,h,f,j=this;g=c.jq(".sailthruRecommendation");i=c.jq("#sailthru_iframe");if(g&&!g.is(":animated")){e=g.find(".openWrapper");k=e.children("a");h=(g.outerHeight()/2)-11;e.show();f=g.outerWidth()-e.outerWidth();return g.animate({right:-f},"normal",function(){return i.hide()})}};c.prototype._horizonTrack=function(){var i,l,f,m,h,g,j,n,k,e;f=parseInt(Math.random()*10000,10);i=this.protocol==="https:"?"horizon.sailthru.com":this.options.domain;g=this.protocol+"//"+i+"/horizon/track";g+="?r="+f;if(this.options.track_url===true){g+="&url="+((this.options.url!=undefined)?encodeURIComponent(this.options.url):encodeURIComponent(document.location))}if(this.options.useFullUrl){g+="&url="+encodeURIComponent(document.location)}if(this.protocol==="https:"){g+="&d="+this.options.domain}m=this.getCookie("sailthru_hid");h=this.getCookie("sailthru_bid");if(m!==null&&(this.protocol==="https:")){g+="&hid="+m}if(h!==null&&(this.protocol==="https:")){g+="&bid="+h}if(typeof this.options.tag!=="undefined"){this.options.tags=this.options.tag}if(this.options.useStoredTags){g+="&use_stored_tags=1"}if(this.options.tags){if(this.options.tags instanceof Array){g+="&tags="+encodeURIComponent(this.options.tags.join(","))}else{if(this.options.tags instanceof Object){k=this.options.tags;for(j in k){e=k[j];g+="&tags["+encodeURIComponent(j)+"]="+encodeURIComponent(e)}}else{g+="&tags="+encodeURIComponent(this.options.tags)}}}if(this.options.spider){g+="&spider=1"}l=new Image(1,1);l.src=g;l.onerror="";return l};return c})()}).call(this);

We'll block with this custom filter:
||ak.sail-horizon.com^$script,image

Will submit with the other SFGate PR tonight.

Create brave tracking list

With the transition away from Disconnect, we'll need a seperate list for trackers. Specifically for filters that aren't in upstream in Easyprivacy, or problematic filters that aren't in Easyprivacy?

In similar vain too; #81

Remove suspicious exception rules from EP

There are many exception rules in EP that are suspicious, and allow google analytics, google tag manager, and similar through for unclear reasons:

ex:

@@||portalbici.es/lib/angulartics-google-analytics/dist/angulartics-ga.min.js
@@||google-analytics.com/analytics.js$domain=tradera.com|xxl.se
@@||google-analytics.com/plugins/ua/ec.js$domain=xxl.se
@@||googletagmanager.com/gtm.js?id=$domain=tradera.com|xxl.se

We should not respect these cases. We could do this most easily by removing the exception rules in these cases.

@bbondy if the above sounds like an attractive idea, I can work with @lukemulks to come up with some rules to filter these out (meta-filter rules? :P)

LATimes.com - content blocking script (forced-whitelisting)

Migrating issue from browser-laptop to here, as this can be fixed via blocklist rules.

brave/browser-laptop#6999

I've tested using this blocking rule, applied via about:adblock and it appears to resolve the issue.

||tribdss.com/meter/assets$script,domain=www.latimes.com

Will submit a PR, but wanted to migrate the issue here first.

Steps to reproduce:

  • Go to LATimes.com w/shields up
  • Get blocked.

Actual result:
https://cloud.githubusercontent.com/assets/8979240/22540685/6e2fc022-e8d6-11e6-85ca-ee358420905b.png

Expected result:
https://cloud.githubusercontent.com/assets/8979240/22540694/7e081daa-e8d6-11e6-9e55-3748a0c974de.png

Unusable site *.taobao.com

Is there a way to add an exclusion for *.taobao.com and alicdn within browsing in taobao.com?
Due to each shop and function has it's own subdomain and cross referencing the main site's cookies, this makes controlling shield up & down hectic to use the site.

Expressen.se & aftonbladet.se - blocklist rules to apply for anti-ad blocking

Domain: http://expressen.se

Domain is among a few that @Jacalz from the Brave Community submitted as getting around our blocking shields, which are being tracked and investigated in this issue:

brave/browser-laptop#6917

This particular issue resolves for display and video ads were being called with shields up on http://expressen.se

Following investigation and testing in about:adblock , the following rules are confirmed to resolve the issue in the US. The user that reported the issue was in Sweden, so they tested and confirmed that the rules have resolved regionally for Sweden as well.

Will submit a PR for these blocking rules:

||biowebb-data.s3.amazonaws.com^$script,image,domain=expressen.se
||richmetrics.com^$script,image,domain=expressen.se
||adtomafusion.net^$script,image,domain=expressen.se
||ld1.lpbeta.com^$script,image,domain=expressen.se
||csp.screen9.com^$script,image,domain=expressen.se
||glimr.io^$script,image,domain=expressen.se

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.