Release 70.0.3538.102

This commit is contained in:
csagan5 2018-11-11 16:44:36 +01:00
parent 8c3fcd08de
commit 628ddf9b60
No known key found for this signature in database
GPG key ID: 64190A51D85DC0C5
23 changed files with 1630 additions and 188 deletions

View file

@ -1,3 +1,8 @@
# 70.0.3538.102
* do not grant notifications to default search engine
* remove all promos from bookmark manager page
* re-introduced various patches to eradicate binary blob dependencies (only Cast left)
# 70.0.3538.95
* fix crash on bookmark edit activity (fixes https://github.com/bromite/bromite/issues/172)
* fix slow chrome://flags (fixes https://github.com/bromite/bromite/issues/173)

View file

@ -19,7 +19,7 @@ struct adblock_entry {
const char **domains, **domains_skip;
};
#define ADBLOCK_ENTRY_COUNT 54616
#define ADBLOCK_ENTRY_COUNT 54642
const char *m10030a28[] = { "/InsightTrk/", NULL };
const char *m10045299[] = { "award.sitekeuring.net^", NULL };
const char *m100458cd[] = { "eluhhfyxx.com^", NULL };
@ -2905,6 +2905,7 @@ const char *m1cf8a296[] = { "sysomos.com/track/", NULL };
const char *m1cf915a7[] = { "xrpcbukuwdvkc.com^", NULL };
const char *m1cfabb7f[] = { "samlmqljptbd.com^", NULL };
const char *m1cfe890d[] = { "/adjs_", NULL };
const char *m1d007dac[] = { "/counter_liveinternet.", NULL };
const char *m1d028d4b[] = { "mediaplus.fm/cntr.php?", NULL };
const char *m1d0571c2[] = { "/bcsensor.js", NULL };
const char *m1d064838[] = { "/embed-ad-", NULL };
@ -3862,7 +3863,6 @@ const char *m2140190f[] = { "aboutads.quantcast.com^", NULL };
const char *m21401a97[] = { "webring.com/cgi-bin/logit?", NULL };
const char *m214624c5[] = { "bmhvaoxr.com^", NULL };
const char *m2147a020[] = { "vnekbyzxamo.bid^", NULL };
const char *m21497b92[] = { "adsagony.com", NULL };
const char *m214c9fbc[] = { "mobinozer.com^", "^advert.js", NULL };
const char *m214e67f3[] = { "host-tracker.com^", NULL };
const char *m214f5479[] = { "viadeo.com/pub/", NULL };
@ -6240,6 +6240,7 @@ const char *m2bf33dc6[] = { "levisites.com^", NULL };
const char *m2bf3960d[] = { "mzhyrgyo.bid^", NULL };
const char *m2bf3b512[] = { "eyjuwcrnu.bid^", NULL };
const char *m2bf914da[] = { "experteerads.com^", NULL };
const char *m2bf9bb28[] = { "/ad-ace/", NULL };
const char *m2bf9d48b[] = { "zappos.com/karakoram/js/main.", NULL };
const char *m2bfba73d[] = { "sascdn.com/video/", NULL };
const char *m2bfd5561[] = { "ef867a1be4f83922.com^", NULL };
@ -6457,6 +6458,7 @@ const char *m2cee6e52[] = { "60eaae1ac88a.online^", NULL };
const char *m2ceea9dd[] = { "/banner-ad/", NULL };
const char *m2cefc9aa[] = { "mmo4rpg.com^", ".gif", NULL };
const char *m2cf1b3b8[] = { "ettevotja.ee/templates/", "/images/advert.gif", NULL };
const char *m2cf3fa2 [] = { "/sponsored_content-", NULL };
const char *m2cf48b1c[] = { "_advertisment.", NULL };
const char *m2cf4ee22[] = { "/sidebar-ads/", NULL };
const char *m2cf67f2e[] = { "/refads/", NULL };
@ -7611,6 +7613,7 @@ const char *m3203e4da[] = { "/tracker/tracker.js", NULL };
const char *m3204cb37[] = { "kzawrekf.bid^", NULL };
const char *m3205cfc3[] = { "bigcommerce.com^", "^product_images^", NULL };
const char *m3205f48c[] = { "d258j801nsw1p7.cloudfront.net^", NULL };
const char *m3209c23b[] = { "deltaleech.com/adframe.js", NULL };
const char *m3209e095[] = { "advprotraffic.com^", NULL };
const char *m320a641 [] = { "yxghdgwi.bid^", NULL };
const char *m320ac31d[] = { "netbiscuits.net^", "^analytics^", NULL };
@ -7731,6 +7734,7 @@ const char *m3287e45f[] = { "s-yoolk-banner-assets.yoolk.com^", NULL };
const char *m32895de7[] = { "zjk24.com^", NULL };
const char *m3289bd6c[] = { "_advert_overview.", NULL };
const char *m328afc1b[] = { "468x60.php", NULL };
const char *m328bed83[] = { "/GoogleAdSense-", NULL };
const char *m328c8a3a[] = { "_638x200_", NULL };
const char *m328d2805[] = { "/sp/delivery/", NULL };
const char *m328d8b40[] = { "clicsante.ca^", "^angulartics-google-tag-manager.min.js", NULL };
@ -8544,6 +8548,7 @@ const char *m3632521e[] = { "d276dbe50af7e29d81.com^", NULL };
const char *m363369c [] = { "counter.1i.kz^", NULL };
const char *m3633bb1a[] = { "rate.ru^", NULL };
const char *m3633f6d8[] = { "clkfeed.com^", NULL };
const char *m3634bc7b[] = { "xhcdn.com^", "^xpops.", NULL };
const char *m3634d986[] = { "phonedog.com/geo.php", NULL };
const char *m36355c8e[] = { "160x600.php", NULL };
const char *m36369600[] = { "view-ads.de^", NULL };
@ -9716,9 +9721,11 @@ const char *m3bb5e3cc[] = { "adobedtm.com^", "^mbox-contents-", NULL };
const char *m3bb70dec[] = { "pokewatchers.com/ads.js", NULL };
const char *m3bb791a6[] = { "sqopuafrwvnouz.bid^", NULL };
const char *m3bb8cc2f[] = { ".cn/s.gif?", NULL };
const char *m3bb94d3a[] = { "/ad-layers.", NULL };
const char *m3bb96a39[] = { "fybrwdikdsvzt.com^", NULL };
const char *m3bb9a68b[] = { "cl96rwprue.com^", NULL };
const char *m3bbb610f[] = { "213.174.140.38^", "^msn-", ".js", NULL };
const char *m3bbb8bd1[] = { "/ad-layers-", NULL };
const char *m3bbc6fcc[] = { "randomarchive.com/js/linkify-jquery.min.js", NULL };
const char *m3bbd680a[] = { "powerlinks.com^", NULL };
const char *m3bbdcb3e[] = { "valshara.com^", NULL };
@ -10309,6 +10316,7 @@ const char *m3e4bddea[] = { "l33tsite.info^", NULL };
const char *m3e4eb441[] = { "/uchkr.swf", NULL };
const char *m3e563584[] = { "arcadebannerexchange.org^", NULL };
const char *m3e564a89[] = { "/advert/", NULL };
const char *m3e566177[] = { "dash.tmearn.com^", NULL };
const char *m3e568d2f[] = { "hoomefodl.com^", NULL };
const char *m3e56e3ed[] = { "pc1.io^", NULL };
const char *m3e57e96d[] = { "imwx.com/js/adstwo/adcontroller.js", NULL };
@ -10406,6 +10414,7 @@ const char *m3eccadf9[] = { "/counter.lt?", NULL };
const char *m3ece4318[] = { "app.link^", NULL };
const char *m3ece5be6[] = { "satopsites.com^", "^banners^", NULL };
const char *m3ece726b[] = { "/webTracking.", NULL };
const char *m3ed41b44[] = { "/sponsored_content/", NULL };
const char *m3ed42cf9[] = { "phncdn.com/js/fav_like_user_feed/", NULL };
const char *m3ed50475[] = { "-468x70.", NULL };
const char *m3ed6355c[] = { "affilae.com^", NULL };
@ -12272,6 +12281,7 @@ const char *m47252ec9[] = { "stylight.net/track/", NULL };
const char *m4725f8a2[] = { "/globalAdTag.", NULL };
const char *m4726080a[] = { "/play?refer=", NULL };
const char *m472612e4[] = { "usfakdxuo.bid^", NULL };
const char *m47290420[] = { "t2lgo.com^", NULL };
const char *m47297af6[] = { "4chan.org/support/", NULL };
const char *m472a3abd[] = { "glo-glo-oom.com^", NULL };
const char *m472a697c[] = { "xmlconfig.ltassrv.com^", NULL };
@ -12570,6 +12580,7 @@ const char *m485c4a80[] = { "chaturbate.com/sitestats/openwindow/", NULL };
const char *m485dc2c4[] = { "folue.info/player/", ".js", NULL };
const char *m485e5ba1[] = { "ovchjqpdh.com^", NULL };
const char *m485e931a[] = { "dimestore.com^", NULL };
const char *m485f2424[] = { "clyp.it^", "^log^", NULL };
const char *m485f543d[] = { "tcadops.ca^", NULL };
const char *m4860e744[] = { "/ad728x15.", NULL };
const char *m486294b8[] = { ".adnetwork.", NULL };
@ -16930,6 +16941,7 @@ const char *m5c5488db[] = { "vfasewomnmco.com^", NULL };
const char *m5c551ecd[] = { "site-rips.org^", NULL };
const char *m5c57ed8c[] = { "thefile.me^", NULL };
const char *m5c580695[] = { "/fingerprint.js", NULL };
const char *m5c586992[] = { "/targeting/render.", NULL };
const char *m5c5acd26[] = { "adserver.adreactor.com/js/libcode1_noajax.js", NULL };
const char *m5c5bcf7d[] = { "bahamaslocal.com/img/banners/", NULL };
const char *m5c5bfc41[] = { "virtualearth.net/mapcontrol/", "/veapiAnalytics.js", NULL };
@ -18839,6 +18851,7 @@ const char *m64952963[] = { "mashery.com/analytics/", NULL };
const char *m6495690c[] = { "tm-awx.com/felix.min.js", NULL };
const char *m6496615c[] = { "channel4.com/foresee_c4/", NULL };
const char *m6496f6cd[] = { "/content_ad.", NULL };
const char *m6497f928[] = { "cvtr.io^", NULL };
const char *m6498dbef[] = { "/ga-lite.", NULL };
const char *m64993dd5[] = { "/ad_locations/", NULL };
const char *m6499e122[] = { "/magiq-", NULL };
@ -19095,6 +19108,7 @@ const char *m658d4db0[] = { "et.grabnetworks.com^", NULL };
const char *m658e4cd9[] = { "cashfiesta.com^", NULL };
const char *m659313c [] = { "longinglettuce.com^", NULL };
const char *m6593c7d3[] = { "linkwithin.com/pixel.png", NULL };
const char *m65962340[] = { "/commercial/sponsor/", NULL };
const char *m65974820[] = { "trepit.pro^", NULL };
const char *m6598f32c[] = { "kinley.com^", NULL };
const char *m65991992[] = { "/affclick/", NULL };
@ -21624,6 +21638,7 @@ const char *m70b1abb3[] = { "adnami.io^", NULL };
const char *m70b3411a[] = { "/adbox2.", NULL };
const char *m70b4233f[] = { "picsee.net/clk.js", NULL };
const char *m70b4ce45[] = { "media.truex.com/release/", "TrueXRenderer.js", NULL };
const char *m70b5ca41[] = { "multporn.net/frunti_", NULL };
const char *m70b79e03[] = { "wmfsbxjcdsbkrw.com^", NULL };
const char *m70bbdcb4[] = { "/parking_caf_", NULL };
const char *m70bdc511[] = { "yukwxqnxwzghxb.com^", NULL };
@ -23722,6 +23737,7 @@ const char *m7a18295a[] = { "intergi.com^", NULL };
const char *m7a184616[] = { "/ad-400.", NULL };
const char *m7a197b9a[] = { "partnermax.de^", NULL };
const char *m7a1c1e64[] = { "nike.com/cms/analytics-store-desktop.js", NULL };
const char *m7a1c9e0 [] = { "/css/ad-", NULL };
const char *m7a1cc788[] = { "/meme_ad.", NULL };
const char *m7a1dc07e[] = { "-ads.js?", NULL };
const char *m7a1e1e7b[] = { "/commercial_horizontal.", NULL };
@ -32091,6 +32107,7 @@ const char *ma06d2e1b[] = { "lapbekessbozpx.bid^", NULL };
const char *ma06fbd [] = { "/adline.", NULL };
const char *ma06ff08f[] = { "/ad_icons/", NULL };
const char *ma070c3c2[] = { "h-bid.com^", NULL };
const char *ma07131ce[] = { "stackpathdns.com/static/", NULL };
const char *ma0715d96[] = { "ossdqciz.com^", NULL };
const char *ma0735840[] = { "baltchd.net^", NULL };
const char *ma0746ce7[] = { "nation.co.ke^", "_bg.png", NULL };
@ -32930,6 +32947,7 @@ const char *ma4078cd5[] = { "filmey.com/Filmey.Ad.js", NULL };
const char *ma4079ba5[] = { "digwzeutydo.com^", NULL };
const char *ma407c8a0[] = { "jackettrain.com^", NULL };
const char *ma4082c3b[] = { "whoson.com/include.js?", NULL };
const char *ma40901a9[] = { "usersegment.wpdigital.net^", NULL };
const char *ma40a1928[] = { "jkjoxlhkwnxd.com^", NULL };
const char *ma40aca3b[] = { "embed.docstoc.com/Flash.asmx/StoreReffer?", NULL };
const char *ma40b502c[] = { "adidas.com^", "^analytics^", NULL };
@ -39009,6 +39027,7 @@ const char *mbf0dc1ec[] = { "sunmaker.com^", "^a_aid^", NULL };
const char *mbf1000c9[] = { "northclick-statistiken.de^", NULL };
const char *mbf11311b[] = { "ads.elefant.ro/ajs.php?", NULL };
const char *mbf12fecc[] = { "adserver.friendfinder.com^", NULL };
const char *mbf1312c7[] = { "logger.kataweb.it^", NULL };
const char *mbf135bff[] = { "105app.com^", NULL };
const char *mbf13f88e[] = { "&adsize=", NULL };
const char *mbf15f99c[] = { "/puff_ad?", NULL };
@ -40414,6 +40433,7 @@ const char *mc5941f5d[] = { "gtqfsxrrerzu.com^", NULL };
const char *mc594725a[] = { "cnn.com^", "^banner.html^^csiid^", NULL };
const char *mc594eade[] = { "lego.com^", "^affiliate^", NULL };
const char *mc595527 [] = { "/www/xengine/", NULL };
const char *mc5956719[] = { "/track?", "&event=", NULL };
const char *mc595ad0f[] = { "asci.freenet.de^", NULL };
const char *mc5984fb [] = { "featence.com^", NULL };
const char *mc598574a[] = { "/AdvertisementShare.", NULL };
@ -42107,6 +42127,7 @@ const char *mccfde3c [] = { "iwantmoar.net^", NULL };
const char *mcd01a2e7[] = { "irxtcbkoql.bid^", NULL };
const char *mcd0255b8[] = { "logo-net.co.uk^", NULL };
const char *mcd0595dc[] = { "redtube.com/htmllogin", NULL };
const char *mcd079a85[] = { "nile.works^", NULL };
const char *mcd09a1d [] = { "/js.ng/channel_", NULL };
const char *mcd09ad24[] = { "postadsnow.com/panbanners/", NULL };
const char *mcd09b3ca[] = { "nadstive.com^", NULL };
@ -46883,6 +46904,7 @@ const char *me224458e[] = { "thisav.com/js/thisav_pop.js", NULL };
const char *me225b91e[] = { "rtl.fr/stats/", NULL };
const char *me226c13f[] = { "bslqjxmltuel.bid^", NULL };
const char *me226ca5f[] = { "ultrastats.it^", NULL };
const char *me2279319[] = { "/LoadAudienceSegs-", NULL };
const char *me2296fb8[] = { "furk.net/counter.yadro.ru/", NULL };
const char *me22a9546[] = { "korexo.com^", NULL };
const char *me22bbeae[] = { "exoplanetwar.com/l/landing.php?", NULL };
@ -48092,6 +48114,7 @@ const char *me7d614cc[] = { "ltwlxoedrydz.com^", NULL };
const char *me7d6d3fe[] = { ".org/ad/", NULL };
const char *me7d87dc1[] = { "cheerfulrange.com^", NULL };
const char *me7d9502a[] = { "/gs-analytics-", NULL };
const char *me7de3498[] = { "d23pi6hvdpcc5i.cloudfront.net^", NULL };
const char *me7de4bcd[] = { "ukvkloytfaw.bid^", NULL };
const char *me7de5b21[] = { "adbrn.com^", NULL };
const char *me7dec11e[] = { "propertyeu.info/peu_storage_banners/", NULL };
@ -48509,6 +48532,7 @@ const char *me9b0a7aa[] = { "temnos.com^", NULL };
const char *me9b1663c[] = { "allnewspipeline.com^", "^Launch_Banner.", NULL };
const char *me9b4c1d4[] = { "realitytvworld.com/images/pixel.gif", NULL };
const char *me9b55ac0[] = { "ker.pic2pic.site^", NULL };
const char *me9b764b0[] = { "_content/sponsored_", NULL };
const char *me9b7aa3a[] = { "sirablivefbxul.bid^", NULL };
const char *me9b9e9a4[] = { "uktv.co.uk/static/js/ads.js", NULL };
const char *me9bad382[] = { "globaldating.online^", NULL };
@ -51598,6 +51622,7 @@ const char *mf7a0f3ce[] = { "traffic.tuberip.com^", NULL };
const char *mf7a1a817[] = { "qcogokgclksa.com^", NULL };
const char *mf7a22a53[] = { "c1e1084410050e34ef.com^", NULL };
const char *mf7a250bf[] = { "/ping.gif?", NULL };
const char *mf7a256a2[] = { "_dfp_targeting.", NULL };
const char *mf7a5a634[] = { "/add728.", NULL };
const char *mf7a75abf[] = { "wvmtyaqdp.bid^", NULL };
const char *mf7a87c51[] = { "breakingburner.com/stats.html?", NULL };
@ -52144,6 +52169,7 @@ const char *mf9ff8195[] = { ".650x100.", NULL };
const char *mfa0160b6[] = { "kbrwlgzazfnv.com^", NULL };
const char *mfa025436[] = { "shmential.co^", NULL };
const char *mfa03029 [] = { "340ca71c.space^", NULL };
const char *mfa05857f[] = { "/CookieManager-bdl?", NULL };
const char *mfa063dab[] = { "pleaseletmeadvertise.com/.adcenter.", NULL };
const char *mfa0667a2[] = { "yahoo.com^", "^eyc-themis^", NULL };
const char *mfa079a73[] = { "slack.com/clog/track/", NULL };
@ -53495,7 +53521,6 @@ const char *d143d3e80[] = { "verliga.net", NULL };
const char *d143df0d8[] = { "batmanstream.com", "collectivelyconscious.net", "live.robinwidget.com", NULL };
const char *d144b8e9 [] = { "hanime.tv", NULL };
const char *d145428c4[] = { "weather.com", NULL };
const char *d146d9e46[] = { "dplay.dk", NULL };
const char *d146fc812[] = { "freeallmusic.net", NULL };
const char *d14781b7d[] = { "armstrongmywire.com", "atlanticbb.net", "bestbuy.com", "bresnan.net", "broadstripe.net", "buckeyecablesystem.net", "cableone.net", "centurylink.net", "charter.net", "cincinnatibell.net", "dish.net", "forbbbs.org", "gumtree.com.au", "hargray.net", "hawaiiantel.net", "hickorytech.net", "homeaway.co.uk", "knology.net", "livestrong.com", "mediacomtoday.com", "midco.net", "mybendbroadband.com", "mybrctv.com", "mycenturylink.com", "myconsolidated.net", "myepb.net", "mygrande.net", "mygvtc.com", "myhughesnet.com", "myritter.com", "northstate.net", "nwcable.net", "query.nytimes.com", "rentals.com", "search.rr.com", "searchresults.verizon.com", "suddenlink.net", "surewest.com", "synacor.net", "tds.net", "toshiba.com", "trustedreviews.com", "truvista.net", "windstream.net", "windstreambusiness.net", "wowway.net", "www.google.com", "zoover.co.uk", "zoover.com", NULL };
const char *d149b274c[] = { "dailygames.com", NULL };
@ -53751,6 +53776,7 @@ const char *d37b98303[] = { "100percentfedup.com", "activistpost.com", "addictin
const char *d37d130d7[] = { "spatialbuzz.com", NULL };
const char *d37d55046[] = { "rarbg.is", "rarbg.to", "rarbgmirror.com", "rarbgproxy.org", "rarbgprx.org", NULL };
const char *d37d76785[] = { "publicleech.xyz", "sznpaste.net", NULL };
const char *d37f989cc[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "greatamericanrepublic.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "healthstatus.com", "hngn.com", "honesttopaws.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "intellectualconservative.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "patriotnewswire.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "readysethealth.com", "realfarmacy.com", "realmomsrealreviews.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "urbantabloid.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "wakingtimes.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d381ae572[] = { "espn.go.com", NULL };
const char *d3846dd25[] = { "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "askmefast.com", "breathecast.com", "bulletsfirst.net", "clashdaily.com", "classicalite.com", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "crossmap.com", "dailyheadlines.net", "dailysurge.com", "dccrimestories.com", "digitaljournal.com", "eaglerising.com", "enstarz.com", "girlsjustwannahaveguns.com", "greatamericanrepublic.com", "hngn.com", "infowars.com", "instigatornews.com", "joeforamerica.com", "kdramastars.com", "kpopstarz.com", "latinpost.com", "libertyunyielding.com", "minutemennews.com", "musictimes.com", "naturalblaze.com", "naturalnews.com", "natureworldnews.com", "newser.com", "oddee.com", "patriotoutdoornews.com", "rantlifestyle.com", "realfarmacy.com", "redmaryland.com", "rightwingnews.com", "shark-tank.com", "spectator.org", "stevedeace.com", "techtimes.com", "theblacksphere.net", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "valuewalk.comvcpost.com", "victoriajackson.com", "viralnova.com", "viralthread.com", NULL };
const char *d384e0c02[] = { "adidas.de", NULL };
@ -53762,6 +53788,7 @@ const char *d38d76a2d[] = { "sportube.tv", NULL };
const char *d391c81af[] = { "dillards.com", NULL };
const char *d391c8ce8[] = { "nydailynews.com", "travelscream.com", "yahoo.com", NULL };
const char *d39409c50[] = { "shares.enetres.net", "videos.13tv.es", NULL };
const char *d396ade6a[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breathecast.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativeintel.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "faithit.com", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "greatamericanrepublic.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "intellectualconservative.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "opednews.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "readysethealth.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "urbantabloid.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d398c400f[] = { "pumpkinpatch.co.nz", "pumpkinpatch.co.uk", "pumpkinpatch.com", "pumpkinpatch.com.au", NULL };
const char *d39a5afaf[] = { "civilization5cheats.com", "kzupload.com", NULL };
const char *d39c0dc35[] = { "stylished.de", NULL };
@ -53870,6 +53897,7 @@ const char *d4b6a3f74[] = { "100percentfedup.com", "activistpost.com", "addictin
const char *d4b6c1d72[] = { "smartertravel.com", NULL };
const char *d4b6ea9ef[] = { "itworld.com", "juniper.net", NULL };
const char *d4b8eec0 [] = { "backupload.net", NULL };
const char *d4ba054f8[] = { "gamezhero.com", NULL };
const char *d4c1ca440[] = { "yonhapnews.co.kr", NULL };
const char *d4c2ab000[] = { "pga.com", NULL };
const char *d4c3182d6[] = { "dielochis.de", NULL };
@ -53984,7 +54012,6 @@ const char *d5d685d0 [] = { "microsoft.com", "store.office.live.com", "xbox.com"
const char *d5d8aa4d [] = { "softgames.com", NULL };
const char *d5dca9eaf[] = { "forwardprogressives.com", NULL };
const char *d5e67cc71[] = { "cyberdevilz.net", NULL };
const char *d5ecb54b4[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "greatamericanrepublic.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "healthstatus.com", "hngn.com", "honesttopaws.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "intellectualconservative.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "patriotnewswire.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "urbantabloid.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "wakingtimes.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d5ee758b5[] = { "whitepages.com", NULL };
const char *d5eed0668[] = { "sporcle.com", NULL };
const char *d5f0acbca[] = { "bingads.microsoft.com", NULL };
@ -54452,7 +54479,6 @@ const char *da7ff8ce9[] = { "classifieds.nydailynews.com", NULL };
const char *da8079d1b[] = { "fcportables.com", NULL };
const char *da856ef1 [] = { "zeperfs.com", NULL };
const char *da85eddea[] = { "tugaflix.net", NULL };
const char *da87390b3[] = { "girlsocool.com", NULL };
const char *da887953e[] = { "coinarge.com", NULL };
const char *da8c3dbca[] = { "kmvt.com", NULL };
const char *da8fa6476[] = { "watchfreemovies.ch", NULL };
@ -54563,7 +54589,6 @@ const char *db723f4c0[] = { "openx.com", NULL };
const char *db728eb42[] = { "blesk.cz", "open.fm", NULL };
const char *db76f1b39[] = { "eio.manhattan.yahoo.com", NULL };
const char *db7ba5860[] = { "hulu.com", NULL };
const char *db7cc8a60[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breathecast.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativeintel.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "faithit.com", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "greatamericanrepublic.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "intellectualconservative.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "opednews.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "urbantabloid.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *db7e2aca5[] = { "tmz.com", NULL };
const char *db7f66c5d[] = { "slashdot.org", NULL };
const char *db7f843c5[] = { "secureupload.eu", NULL };
@ -54672,6 +54697,7 @@ const char *dc7453a93[] = { "netcombo.com.br", NULL };
const char *dc79cdc1b[] = { "unknowncheats.me", NULL };
const char *dc7e8820d[] = { "investing.com", NULL };
const char *dc7f73b94[] = { "miliblog.co.uk", NULL };
const char *dc811bba7[] = { "ruutu.fi", NULL };
const char *dc86704af[] = { "live.scity.tv", NULL };
const char *dc8d0ae3 [] = { "eurogamer.net", "nintendolife.com", "onehourtranslation.com", "rockpapershotgun.com", "usgamer.net", "vg247.com", NULL };
const char *dc903b8b7[] = { "allmusic.com", "blinkx.com", NULL };
@ -54692,6 +54718,7 @@ const char *dcb9e5448[] = { "limonfree.nl", NULL };
const char *dcbc0c6b8[] = { "iherb.com", NULL };
const char *dcbfa29f1[] = { "aim.com", "autoblog.com", "autos.aol.com", "engadget.com", "mapquest.com", "video.aol.com", "www.aol.com", NULL };
const char *dcc180a37[] = { "nextag.com", NULL };
const char *dcc2caf32[] = { "enstarz.com", "itechpost.com", "kdramastars.com", "kpopstarz.com", "musictimes.com", "natureworldnews.com", "realtytoday.com", NULL };
const char *dcc338217[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breathecast.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativeintel.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "damnlol.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "faithit.com", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "godfatherpolitics.com", "gosocial.co", "greatamericanrepublic.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "headcramp.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "opednews.com", "parentherald.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "reverbpress.com", "reviveusa.com", "rightwingnews.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "thelibertarianrepublic.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tinypic.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "universityherald.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "wakingtimes.com", "westernjournalism.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *dccbe7ff1[] = { "allmusic.com", "hulkusc.com", "sc2casts.com", NULL };
const char *dcd7b8fdc[] = { "forums.redflagdeals.com", NULL };
@ -56133,6 +56160,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m49a3eb0f, 0, NULL, NULL },
{m97aab2eb, 0, NULL, NULL },
{m61d975f5, 0, NULL, NULL },
{m2bf9bb28, 0, NULL, NULL },
{ma0624766, 0, NULL, NULL },
{m9841c419, 0, NULL, NULL },
{m543cdbdf, 0, NULL, NULL },
@ -56193,6 +56221,8 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mdcb85ff7, 0, NULL, NULL },
{mdcc0aebc, 0, NULL, NULL },
{m39001d38, 0, NULL, NULL },
{m3bbb8bd1, 0, NULL, NULL },
{m3bb94d3a, 0, NULL, NULL },
{m72d437c1, 0, NULL, NULL },
{ma9e41185, 0, NULL, NULL },
{m3c42cbdc, 0, NULL, NULL },
@ -59265,6 +59295,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m58972a5d, 0, NULL, NULL },
{m5b923348, 0, NULL, NULL },
{m5b8b7783, 0, NULL, NULL },
{m65962340, 0, NULL, NULL },
{m7a1e1e7b, 0, NULL, NULL },
{m5120e148, 0, NULL, NULL },
{macfeb041, 0, NULL, NULL },
@ -59348,6 +59379,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mf06cfb94, 0, NULL, NULL },
{m6aca9ec0, 0, NULL, NULL },
{m25d6e44e, 0, NULL, NULL },
{m7a1c9e0, 0, NULL, NULL },
{mc79aa95b, 0, NULL, NULL },
{m98dd2235, 0, NULL, NULL },
{md8db485e, 0, NULL, NULL },
@ -59964,6 +59996,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7071c106, 0, NULL, NULL },
{m62560bd6, 0, NULL, NULL },
{ma311e7a6, 0, NULL, NULL },
{m328bed83, 0, NULL, NULL },
{mc631a5a8, 0, NULL, NULL },
{m3e150d8a, 0, NULL, NULL },
{macb11c7f, 0, NULL, NULL },
@ -61497,6 +61530,8 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m10724692, 0, NULL, NULL },
{m9e333b87, 0, NULL, NULL },
{m2c0ccc77, 0, NULL, NULL },
{m2cf3fa2, 0, NULL, NULL },
{m3ed41b44, 0, NULL, NULL },
{mf4f59842, 0, NULL, NULL },
{ma412ced1, 0, NULL, NULL },
{mb989dab2, 0, NULL, NULL },
@ -62614,6 +62649,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m39a9e67c, 0, NULL, NULL },
{me65cb0ae, 0, NULL, NULL },
{m6ef60e93, 0, NULL, NULL },
{me9b764b0, 0, NULL, NULL },
{m8b2dc1bd, 0, NULL, NULL },
{m470885d8, 0, NULL, NULL },
{me26564fb, 0, NULL, NULL },
@ -62623,6 +62659,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7bbd6204, 0, NULL, NULL },
{m1a4f0a02, 0, NULL, NULL },
{m95d8644d, 0, NULL, NULL },
{mf7a256a2, 0, NULL, NULL },
{m4d6b044e, 0, NULL, NULL },
{m72ff3135, 0, NULL, NULL },
{m5fd7382b, 0, NULL, NULL },
@ -64171,7 +64208,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma2672437, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m720717ce, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1d20dadd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m75aa7a06, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m46f27a74, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m688112e7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7ddf8a55, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -69399,6 +69435,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7fcde7ac, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf7df9bff, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5bda7a85, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m47290420, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m75daeb75, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcfe079ad, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m75e6286f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -83616,6 +83653,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m2e93bb6a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m893f45af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{me1b0029d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m3e566177, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mc8fbc253, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m1a119d1a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m389dca79, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -87281,7 +87319,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9818f6a8, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m2eebf9b8, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, dbd47168a, NULL },
{mc013e090, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, deeee052f, NULL },
{md07330ef, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, db7cc8a60, NULL },
{md07330ef, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, d396ade6a, NULL },
{md2d439df, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, db21290fe, NULL },
{maeae25b, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d38b293a6, NULL },
{m347c0e67, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d831c4d20, NULL },
@ -87322,7 +87360,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m19bd7b5d, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, d5f4b38f2, NULL },
{mcd7b5ad, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2b6ef855, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d984dc2b2, NULL },
{m3d8633ea, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, d5ecb54b4, NULL },
{m3d8633ea, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, d37f989cc, NULL },
{m7acc9b50, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, dd4029dcc, NULL },
{me5299c51, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, dcf5054d8, NULL },
{mc740dc51, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, d8be651e8, NULL },
@ -87999,6 +88037,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m14c0c80e, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m757ee383, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m9de0d53c, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m70b5ca41, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m6c90f735, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m13554a39, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mdd4daea1, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -88392,6 +88431,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m743efd82, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mfacfd40a, ADBLOCK_FLAG_MATCH_DOMAIN, d433b238a, NULL },
{m9dfc9414, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m3634bc7b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m97772fae, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m416b2d8b, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m3d184d21, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -91282,6 +91322,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m892ab560, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m62ec0feb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m27960a60, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma07131ce, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, dcc2caf32, NULL },
{m14fb9d0c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mce6022b0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m37c845a4, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
@ -91356,7 +91397,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7f24c592, ADBLOCK_FLAG_MATCH_DOMAIN, def102471, NULL },
{m2a9d13fa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m1e74a73d, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m21497b92, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m75aa7a06, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m80de4c79, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m8184b4a0, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d8d1d96cc, NULL },
{ma1e7a98d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, dbf0f5d9b, NULL },
@ -91732,7 +91773,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m1a3584d2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m8ca39593, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf51e184f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m57d20d3c, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d146d9e46, NULL },
{m6dac3d96, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mb7cfb034, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{m583009a8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
@ -92088,8 +92128,10 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mb57941da, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m5e6ca2cd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m153ba2af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5d0f3e9, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, da87390b3, NULL },
{m36ecb5fc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, de9510849, NULL },
{m57d20d3c, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, dc811bba7, NULL },
{m3209c23b, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{m5d0f3e9, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d4ba054f8, NULL },
{m959374f7, 0, NULL, NULL },
{m69eee246, 0, NULL, NULL },
{m480a1f0f, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
@ -93170,6 +93212,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m74f794db, 0, NULL, NULL },
{m34ace6d0, 0, NULL, NULL },
{m6c85715e, 0, NULL, NULL },
{mfa05857f, 0, NULL, NULL },
{mc0cab245, 0, NULL, NULL },
{me390cf5e, 0, NULL, NULL },
{mff64452, 0, NULL, NULL },
@ -93221,6 +93264,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{me77668ca, 0, NULL, NULL },
{m60a124d0, 0, NULL, NULL },
{m9f726233, 0, NULL, NULL },
{m1d007dac, 0, NULL, NULL },
{m685b0f27, 0, NULL, NULL },
{m1911679c, 0, NULL, NULL },
{mf44945f9, 0, NULL, NULL },
@ -94066,6 +94110,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mbda5bce8, 0, NULL, NULL },
{m6b6798ab, 0, NULL, NULL },
{m1b7cc01f, 0, NULL, NULL },
{me2279319, 0, NULL, NULL },
{m74f435e8, 0, NULL, NULL },
{m4a1a71d4, 0, NULL, NULL },
{m71c3c0b4, 0, NULL, NULL },
@ -95256,6 +95301,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m79382307, 0, NULL, NULL },
{m87f80ff4, 0, NULL, NULL },
{me12886a0, 0, NULL, NULL },
{m5c586992, 0, NULL, NULL },
{mee3766a4, 0, NULL, NULL },
{m5f1e51c, 0, NULL, NULL },
{mee3400f4, 0, NULL, NULL },
@ -95362,6 +95408,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9e82cd08, 0, NULL, NULL },
{m3d90a18d, 0, NULL, NULL },
{m4b5ed0db, 0, NULL, NULL },
{mc5956719, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m9707598, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m521c04d3, 0, NULL, NULL },
{md68f664, 0, NULL, NULL },
@ -96832,6 +96879,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m6443e38e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc777f1e1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m22cef2f9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6497f928, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9c3478b4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdbd27cce, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m42cc5579, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -97679,6 +97727,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9229a2f8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m52c36651, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m34f9997f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcd079a85, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2cff4ec, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf55d0f70, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m19e28b12, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -100679,6 +100728,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mf4114e84, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mab4dceba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m1b40aa4d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{me7de3498, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m6423a217, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mbed593cd, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m2e8639f4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
@ -101931,6 +101981,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9c49275f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mc7cff7e7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m2299966a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{ma40901a9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mbafc68bd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{md7b7a601, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m124348e6, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -102461,6 +102512,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{md3d830d2, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mb4a7cd90, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{ma96928d6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mbf1312c7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m4c03c8a9, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m86a76742, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m24986b80, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -103136,6 +103188,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m49e00a35, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m85720f2c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m96b4c5cc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m485f2424, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mdd4d3033, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mc7ebea92, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m259e4692, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },

View file

@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -2993,7 +2999,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
@@ -2997,7 +3003,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
// If suspending background video, pause any video that's not remoted or
// not unlocked to play in the background.
if (IsBackgroundSuspendEnabled(delegate_)) {

View file

@ -31,7 +31,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
@@ -1383,6 +1384,15 @@ DOMRectList* Element::getClientRects() {
@@ -1384,6 +1385,15 @@ DOMRectList* Element::getClientRects() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
quads, *element_layout_object);
@ -47,7 +47,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
return DOMRectList::Create(quads);
}
@@ -1400,6 +1410,13 @@ DOMRect* Element::getBoundingClientRect() {
@@ -1401,6 +1411,13 @@ DOMRect* Element::getBoundingClientRect() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
*element_layout_object);

View file

@ -7,7 +7,7 @@ Thanks to Arnaud for the snippet on how to add toast notifications
.../java/res/menu/bookmark_action_bar_menu.xml | 14 ++
.../browser/bookmarks/BookmarkActionBar.java | 12 ++
.../chrome/browser/bookmarks/BookmarkActivity.java | 19 ++
.../chrome/browser/bookmarks/BookmarkBridge.java | 55 ++++++
.../chrome/browser/bookmarks/BookmarkBridge.java | 56 ++++++
.../chrome/browser/bookmarks/BookmarkDelegate.java | 10 +
.../chrome/browser/bookmarks/BookmarkManager.java | 20 ++
.../chrome/browser/bookmarks/BookmarkPage.java | 1 +
@ -20,7 +20,7 @@ Thanks to Arnaud for the snippet on how to add toast notifications
chrome/utility/BUILD.gn | 7 +-
chrome/utility/importer/bookmark_html_reader.cc | 27 ++-
chrome/utility/importer/bookmark_html_reader.h | 9 +
16 files changed, 418 insertions(+), 10 deletions(-)
16 files changed, 419 insertions(+), 10 deletions(-)
diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
--- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
@ -196,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
* Synchronously gets a list of bookmarks that match the specified search query.
* @param query Keyword used for searching bookmarks.
* @param maxNumberOfResult Maximum number of result to fetch.
@@ -840,6 +867,32 @@ public class BookmarkBridge {
@@ -840,6 +867,33 @@ public class BookmarkBridge {
depthList.add(depth);
}
@ -205,7 +205,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ public void bookmarksImported() {
+ Context context = ContextUtils.getApplicationContext();
+
+ Toast.makeText(ContextUtils.getApplicationContext(), "Bookmarks imported", Toast.LENGTH_LONG).show();
+ //TODO: call this after actual import
+ //Toast.makeText(ContextUtils.getApplicationContext(), "Bookmarks imported", Toast.LENGTH_LONG).show();
+ }
+
+ @CalledByNative
@ -229,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
for (int i = 0; i < left.length; i++) {
@@ -906,6 +959,8 @@ public class BookmarkBridge {
@@ -906,6 +960,8 @@ public class BookmarkBridge {
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
int index);

View file

@ -3,9 +3,9 @@ Date: Tue, 15 Aug 2017 15:33:16 -0400
Subject: Remove google account access permission on reboot
---
chrome/android/BUILD.gn | 3 +--
chrome/android/BUILD.gn | 4 +---
chrome/android/java/AndroidManifest.xml | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@ -20,6 +20,14 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
]
res_dir = "java/res_template"
variables = chrome_public_jinja_variables
@@ -936,7 +935,6 @@ jinja_template_resources("chrome_sync_shell_apk_template_resources") {
"java/res_template/xml/file_paths.xml",
"java/res_template/xml/launchershortcuts.xml",
"java/res_template/xml/searchable.xml",
- "java/res_template/xml/syncadapter.xml",
]
res_dir = "java/res_template"
variables = chrome_sync_shell_jinja_variables
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml

View file

@ -1,156 +0,0 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:04:43 +0200
Subject: kill Vision
---
.../org/chromium/shape_detection/BarcodeDetectionImpl.java | 6 +++---
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
.../chromium/shape_detection/FaceDetectionImplGmsCore.java | 6 +++---
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 2 +-
.../src/org/chromium/shape_detection/InterfaceRegistrar.java | 10 +++++-----
.../src/org/chromium/shape_detection/TextDetectionImpl.java | 6 +++---
6 files changed, 15 insertions(+), 27 deletions(-)
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
@@ -43,11 +43,11 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
// on the device; this happens "fast", but it might have not completed,
// bail in this case. Also, the API was disabled between and v.9.0 and
// v.9.2, see https://developers.google.com/android/guides/releases.
- if (!mBarcodeDetector.isOperational()) {
+// if (!mBarcodeDetector.isOperational()) {
Log.e(TAG, "BarcodeDetector is not operational");
callback.call(new BarcodeDetectionResult[0]);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -77,7 +77,7 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
barcodeArray[i].cornerPoints[j].y = corners[j].y;
}
}
- callback.call(barcodeArray);
+ callback.call(barcodeArray);*/
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
import android.graphics.Bitmap;
-import com.google.android.gms.vision.Frame;
-
import org.chromium.mojo_base.BigBufferUtil;
import org.chromium.skia.mojom.ColorType;
@@ -44,14 +42,4 @@ public class BitmapUtils {
return bitmap;
}
-
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
- Bitmap bitmap = convertToBitmap(bitmapData);
- if (bitmap == null) {
- return null;
- }
-
- // This constructor implies a pixel format conversion to YUV.
- return new Frame.Builder().setBitmap(bitmap).build();
- }
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
@@ -63,7 +63,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
// The vision library will be downloaded the first time the API is used
// on the device; this happens "fast", but it might have not completed,
// bail in this case.
- if (!mFaceDetector.isOperational()) {
+// if (!mFaceDetector.isOperational()) {
Log.e(TAG, "FaceDetector is not operational");
// Fallback to Android's FaceDetectionImpl.
@@ -73,7 +73,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
FaceDetectionImpl detector = new FaceDetectionImpl(options);
detector.detect(bitmapData, callback);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -157,7 +157,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
faceArray[i].boundingBox.height = face.getHeight();
}
}
- callback.call(faceArray);
+ callback.call(faceArray);*/
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -30,7 +30,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
== ConnectionResult.SUCCESS;
if (isGmsCoreSupported) {
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
+ //FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
} else {
FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
@@ -20,10 +20,10 @@ class InterfaceRegistrar {
// is not necessary to hold on to a reference to it explicitly.
InterfaceRegistry registry = InterfaceRegistry.create(
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
- registry.addInterface(
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
- registry.addInterface(
- FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
+// registry.addInterface(
+// BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
+// registry.addInterface(
+// FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
+// registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
}
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
@@ -42,11 +42,11 @@ public class TextDetectionImpl implements TextDetection {
// on the device; this happens "fast", but it might have not completed,
// bail in this case. Also, the API was disabled between and v.9.0 and
// v.9.2, see https://developers.google.com/android/guides/releases.
- if (!mTextRecognizer.isOperational()) {
+// if (!mTextRecognizer.isOperational()) {
Log.e(TAG, "TextDetector is not operational");
callback.call(new TextDetectionResult[0]);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -76,7 +76,7 @@ public class TextDetectionImpl implements TextDetection {
detectedTextArray[i].cornerPoints[j].y = corners[j].y;
}
}
- callback.call(detectedTextArray);
+ callback.call(detectedTextArray); */
}
@Override
--
2.11.0

View file

@ -1,11 +1,11 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:16:43 +0200
Subject: kill Translate(doesn't work)
Subject: kill Translate
---
chrome/android/java/res/xml/languages_preferences.xml | 3 ++-
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/xml/languages_preferences.xml b/chrome/android/java/res/xml/languages_preferences.xml
--- a/chrome/android/java/res/xml/languages_preferences.xml
@ -30,14 +30,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
import org.chromium.ui.base.LocalizationUtils;
@@ -143,6 +144,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
mFreProgressStates.add(FRE_PROGRESS_DATA_SAVER_SHOWN);
notifyAdapter = true;
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
}
@@ -138,6 +139,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
if (mPostNativePageSequenceCreated) return;
mFirstRunFlowSequencer.onNativeInitialized(mFreProperties);
// An optional page to select a default search engine.
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
+
boolean notifyAdapter = false;
// An optional Data Saver page.
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
--
2.11.0

View file

@ -0,0 +1,113 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:04:43 +0200
Subject: kill Vision
Barcode, face and text detection APIs
---
services/shape_detection/BUILD.gn | 4 ----
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 13 ++-----------
.../org/chromium/shape_detection/InterfaceRegistrar.java | 5 -----
4 files changed, 2 insertions(+), 32 deletions(-)
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
--- a/services/shape_detection/BUILD.gn
+++ b/services/shape_detection/BUILD.gn
@@ -84,14 +84,10 @@ if (is_android) {
android_library("shape_detection_java") {
java_files = [
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java",
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java",
"android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java",
- "android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java",
"android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java",
"android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java",
"android/java/src/org/chromium/shape_detection/BitmapUtils.java",
- "android/java/src/org/chromium/shape_detection/TextDetectionImpl.java",
]
deps = [
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
import android.graphics.Bitmap;
-import com.google.android.gms.vision.Frame;
-
import org.chromium.mojo_base.BigBufferUtil;
import org.chromium.skia.mojom.ColorType;
@@ -44,14 +42,4 @@ public class BitmapUtils {
return bitmap;
}
-
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
- Bitmap bitmap = convertToBitmap(bitmapData);
- if (bitmap == null) {
- return null;
- }
-
- // This constructor implies a pixel format conversion to YUV.
- return new Frame.Builder().setBitmap(bitmap).build();
- }
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -5,7 +5,6 @@
package org.chromium.shape_detection;
import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
import org.chromium.base.ContextUtils;
import org.chromium.mojo.bindings.InterfaceRequest;
@@ -24,16 +23,8 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
@Override
public void createFaceDetection(
InterfaceRequest<FaceDetection> request, FaceDetectorOptions options) {
- final boolean isGmsCoreSupported =
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())
- == ConnectionResult.SUCCESS;
-
- if (isGmsCoreSupported) {
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
- } else {
- FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
- }
+
+ FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
@@ -8,9 +8,7 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.mojo.system.impl.CoreImpl;
import org.chromium.services.service_manager.InterfaceRegistry;
-import org.chromium.shape_detection.mojom.BarcodeDetectionProvider;
import org.chromium.shape_detection.mojom.FaceDetectionProvider;
-import org.chromium.shape_detection.mojom.TextDetection;
@JNINamespace("shape_detection")
class InterfaceRegistrar {
@@ -21,9 +19,6 @@ class InterfaceRegistrar {
InterfaceRegistry registry = InterfaceRegistry.create(
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
registry.addInterface(
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
- registry.addInterface(
FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
}
}
--
2.11.0

View file

@ -0,0 +1,48 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:05:17 +0200
Subject: kill Location, fall back to system
---
services/device/geolocation/BUILD.gn | 1 -
.../chromium/device/geolocation/LocationProviderFactory.java | 10 ++--------
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
--- a/services/device/geolocation/BUILD.gn
+++ b/services/device/geolocation/BUILD.gn
@@ -131,7 +131,6 @@ if (is_android) {
"android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
"android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
"android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
- "android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java",
]
deps = [
diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
--- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
+++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
@@ -26,19 +26,13 @@ public class LocationProviderFactory {
@CalledByNative
public static void useGmsCoreLocationProvider() {
- sUseGmsCoreLocationProvider = true;
+ sUseGmsCoreLocationProvider = false;
}
public static LocationProvider create() {
if (sProviderImpl != null) return sProviderImpl;
- if (sUseGmsCoreLocationProvider
- && LocationProviderGmsCore.isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())) {
- sProviderImpl = new LocationProviderGmsCore(ContextUtils.getApplicationContext());
- } else {
- sProviderImpl = new LocationProviderAndroid();
- }
+ sProviderImpl = new LocationProviderAndroid();
return sProviderImpl;
}
}
--
2.11.0

View file

@ -0,0 +1,161 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:06:15 +0200
Subject: kill Auth
---
.../chrome/browser/signin/SigninHelper.java | 22 +---------
.../components/signin/AccountIdProvider.java | 9 +---
.../signin/SystemAccountManagerDelegate.java | 50 ++--------------------
3 files changed, 5 insertions(+), 76 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
@@ -8,10 +8,6 @@ import android.accounts.Account;
import android.annotation.SuppressLint;
import android.content.Context;
-import com.google.android.gms.auth.AccountChangeEvent;
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
-
import org.chromium.base.AsyncTask;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
@@ -71,23 +67,7 @@ public class SigninHelper {
@Override
public List<String> getAccountChangeEvents(
Context context, int index, String accountName) {
- try {
- List<AccountChangeEvent> list = GoogleAuthUtil.getAccountChangeEvents(
- context, index, accountName);
- List<String> result = new ArrayList<>(list.size());
- for (AccountChangeEvent e : list) {
- if (e.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) {
- result.add(e.getChangeData());
- } else {
- result.add(null);
- }
- }
- return result;
- } catch (IOException e) {
- Log.w(TAG, "Failed to get change events", e);
- } catch (GoogleAuthException e) {
- Log.w(TAG, "Failed to get change events", e);
- }
+
return new ArrayList<>(0);
}
}
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
@@ -4,8 +4,6 @@
package org.chromium.components.signin;
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
@@ -40,12 +38,7 @@ public class AccountIdProvider {
* @param accountName The email address of a Google account.
*/
public String getAccountId(String accountName) {
- try {
- return GoogleAuthUtil.getAccountId(ContextUtils.getApplicationContext(), accountName);
- } catch (IOException | GoogleAuthException ex) {
- Log.e("cr.AccountIdProvider", "AccountIdProvider.getAccountId", ex);
- return null;
- }
+ return null;
}
/**
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
@@ -24,9 +24,6 @@ import android.os.PatternMatcher;
import android.os.Process;
import android.os.SystemClock;
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
-import com.google.android.gms.auth.GooglePlayServicesAvailabilityException;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
@@ -117,48 +114,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
// so don't report any accounts if Google Play Services are out of date.
checkCanUseGooglePlayServices();
- if (!hasGetAccountsPermission()) {
- return new Account[] {};
- }
- long now = SystemClock.elapsedRealtime();
- Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
- long elapsed = SystemClock.elapsedRealtime() - now;
- recordElapsedTimeHistogram("Signin.AndroidGetAccountsTime_AccountManager", elapsed);
- if (ThreadUtils.runningOnUiThread()) {
- recordElapsedTimeHistogram(
- "Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed);
- }
- return accounts;
+ return new Account[] {};
}
@Override
public String getAuthToken(Account account, String authTokenScope) throws AuthException {
assert !ThreadUtils.runningOnUiThread();
assert AccountManagerFacade.GOOGLE_ACCOUNT_TYPE.equals(account.type);
- try {
- return GoogleAuthUtil.getTokenWithNotification(
- ContextUtils.getApplicationContext(), account, authTokenScope, null);
- } catch (GoogleAuthException ex) {
- // This case includes a UserRecoverableNotifiedException, but most clients will have
- // their own retry mechanism anyway.
- throw new AuthException(AuthException.NONTRANSIENT,
- "Error while getting token for scope '" + authTokenScope + "'", ex);
- } catch (IOException ex) {
- throw new AuthException(AuthException.TRANSIENT, ex);
- }
+ return null;
}
@Override
- public void invalidateAuthToken(String authToken) throws AuthException {
- try {
- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
- } catch (GooglePlayServicesAvailabilityException ex) {
- throw new AuthException(AuthException.NONTRANSIENT, ex);
- } catch (GoogleAuthException ex) {
- throw new AuthException(AuthException.NONTRANSIENT, ex);
- } catch (IOException ex) {
- throw new AuthException(AuthException.TRANSIENT, ex);
- }
+ public void invalidateAuthToken(String authToken) {
}
@Override
@@ -198,17 +165,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@SuppressLint("MissingPermission")
@Override
public void createAddAccountIntent(Callback<Intent> callback) {
- AccountManagerCallback<Bundle> accountManagerCallback = accountManagerFuture -> {
- try {
- Bundle bundle = accountManagerFuture.getResult();
- callback.onResult(bundle.getParcelable(AccountManager.KEY_INTENT));
- } catch (OperationCanceledException | IOException | AuthenticatorException e) {
- Log.e(TAG, "Error while creating an intent to add an account: ", e);
- callback.onResult(null);
- }
- };
- mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
- accountManagerCallback, null);
}
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
--
2.11.0

View file

@ -0,0 +1,977 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:11:38 +0200
Subject: kill GCM
---
build/secondary/third_party/android_tools/BUILD.gn | 3 -
chrome/android/BUILD.gn | 1 -
chrome/android/java/AndroidManifest.xml | 62 ---------
.../chrome/browser/BackgroundSyncLauncher.java | 97 --------------
.../chrome/browser/ChromeBackgroundService.java | 1 -
.../invalidation/InvalidationController.java | 13 --
.../browser/ntp/snippets/SnippetsLauncher.java | 44 -------
.../browser/services/gcm/GCMBackgroundTask.java | 2 -
.../gcm/InvalidationGcmUpstreamSender.java | 15 ---
chrome/android/java_sources.gni | 2 -
components/background_task_scheduler/BUILD.gn | 1 -
.../BackgroundTaskSchedulerGcmNetworkManager.java | 146 +--------------------
components/gcm_driver/android/BUILD.gn | 1 -
components/gcm_driver/instance_id/android/BUILD.gn | 1 -
.../gcm_driver/instance_id/InstanceIDBridge.java | 30 +----
components/sync/android/BUILD.gn | 1 -
third_party/cacheinvalidation/BUILD.gn | 6 -
.../client/contrib/MultiplexingGcmListener.java | 92 +------------
.../android2/channel/AndroidNetworkChannel.java | 18 +--
19 files changed, 14 insertions(+), 522 deletions(-)
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
--- a/build/secondary/third_party/android_tools/BUILD.gn
+++ b/build/secondary/third_party/android_tools/BUILD.gn
@@ -53,9 +53,6 @@ if (enable_java_templates) {
testonly = true
java_files = [ "//third_party/android_tools/sdk/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java" ]
}
- android_java_prebuilt("android_gcm_java") {
- jar_path = "//third_party/android_tools/sdk/extras/google/gcm/gcm-client/dist/gcm.jar"
- }
android_java_prebuilt("emma_device_java") {
jar_path = "//third_party/android_tools/sdk/tools/lib/emma_device.jar"
include_java_resources = true
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -281,7 +281,6 @@ android_library("chrome_java") {
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
"//third_party/android_tools:android_arch_lifecycle_common_java",
"//third_party/android_tools:android_arch_lifecycle_runtime_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/android_tools:android_support_annotations_java",
"//third_party/android_tools:android_support_compat_java",
"//third_party/android_tools:android_support_design_java",
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -78,22 +78,17 @@ by a child template that "extends" this file.
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
- <!-- Only chrome can receive the messages and registration result -->
- <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
- android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.DEBUG"
android:label="Debug web pages"
android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
android:protectionLevel="signature" />
- <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
<uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
<uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />
<uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
- <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
@@ -888,43 +883,6 @@ by a child template that "extends" this file.
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:hardwareAccelerated="false" />
- <!-- Receiver for GCM messages. -->
- <receiver android:name="com.google.android.gms.gcm.GcmReceiver"
- android:exported="true"
- android:permission="com.google.android.c2dm.permission.SEND">
- <intent-filter>
- <action android:name="com.google.android.c2dm.intent.RECEIVE" />
- <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
- <category android:name="{{ manifest_package }}"/>
- </intent-filter>
- </receiver>
- <!-- GcmTaskService for registration for Invalidations. -->
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService"
- android:exported="true"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
- </intent-filter>
- </service>
- <!-- InstanceIDListenerService for token refresh events from GCM. -->
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidInstanceIDListenerService"
- android:exported="false">
- <intent-filter>
- <action android:name="com.google.android.gms.iid.InstanceID"/>
- </intent-filter>
- </service>
- <!-- GcmListenerService for messages from GCM. -->
- <service android:name="org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService"
- android:exported="false" >
- <intent-filter>
- <action android:name="com.google.android.c2dm.intent.RECEIVE" />
- </intent-filter>
- </service>
- <meta-data android:name="ipc.invalidation.ticl.gcm_upstream_service_class"
- android:value="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender" />
- <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
- android:exported="false"/>
-
<!-- Notification service for sync. -->
<meta-data android:name="ipc.invalidation.ticl.listener_service_class"
android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
@@ -936,8 +894,6 @@ by a child template that "extends" this file.
</service>
<service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
android:exported="false"/>
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
- android:exported="false"/>
<receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
android:exported="false"/>
<receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
@@ -964,24 +920,6 @@ by a child template that "extends" this file.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
- <!-- Background Task Scheduler GCM task service -->
- <service android:name="org.chromium.components.background_task_scheduler.BackgroundTaskGcmTaskService"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- android:exported="true">
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- </intent-filter>
- </service>
-
- <!-- GcmTaskService implementation to wake Chrome on scheduled events -->
- <service android:name="org.chromium.chrome.browser.ChromeBackgroundService"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- android:exported="true">
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- </intent-filter>
- </service>
-
<service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService"
android:exported="true"
tools:ignore="ExportedService" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
@@ -8,10 +8,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.StrictMode;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.OneoffTask;
-import com.google.android.gms.gcm.Task;
-
import org.chromium.base.AsyncTask;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
@@ -37,8 +33,6 @@ public class BackgroundSyncLauncher {
// BackgroundSyncLauncherAndroid, if any. If it is non-null then the browser is running.
private static BackgroundSyncLauncher sInstance;
- private GcmNetworkManager mScheduler;
-
/**
* Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
* interact with GCM can still be used, but will not be called automatically on creation, or by
@@ -124,30 +118,6 @@ public class BackgroundSyncLauncher {
@VisibleForTesting
@CalledByNative
protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
- mLaunchBrowserIfStoppedTask = new AsyncTask<Void>() {
- @Override
- protected Void doInBackground() {
- SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
- prefs.edit()
- .putBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, shouldLaunch)
- .apply();
- return null;
- }
- @Override
- protected void onPostExecute(Void params) {
- if (sGCMEnabled) {
- if (shouldLaunch) {
- RecordHistogram.recordBooleanHistogram(
- "BackgroundSync.LaunchTask.ScheduleSuccess",
- scheduleLaunchTask(mScheduler, minDelayMs));
- } else {
- RecordHistogram.recordBooleanHistogram(
- "BackgroundSync.LaunchTask.CancelSuccess",
- removeScheduledTasks(mScheduler));
- }
- }
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
/**
@@ -159,7 +129,6 @@ public class BackgroundSyncLauncher {
}
protected BackgroundSyncLauncher() {
- mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationContext());
launchBrowserIfStopped(false, 0);
}
@@ -188,72 +157,6 @@ public class BackgroundSyncLauncher {
return !sGCMEnabled;
}
- private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) {
- // Google Play Services may not be up to date, if the application was not installed through
- // the Play Store. In this case, scheduling the task will fail silently.
- final long minDelaySecs = minDelayMs / 1000;
- OneoffTask oneoff = new OneoffTask.Builder()
- .setService(ChromeBackgroundService.class)
- .setTag(TASK_TAG)
- // We have to set a non-zero execution window here
- .setExecutionWindow(minDelaySecs, minDelaySecs + 1)
- .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
- .setPersisted(true)
- .setUpdateCurrent(true)
- .build();
- try {
- scheduler.schedule(oneoff);
- } catch (IllegalArgumentException e) {
- // Disable GCM for the remainder of this session.
- setGCMEnabled(false);
- // Return false so that the failure will be logged.
- return false;
- }
- return true;
- }
-
- private static boolean removeScheduledTasks(GcmNetworkManager scheduler) {
- // Third-party code causes broadcast to touch disk. http://crbug.com/614679
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
- try {
- scheduler.cancelTask(TASK_TAG, ChromeBackgroundService.class);
- } catch (IllegalArgumentException e) {
- // This occurs when BackgroundSyncLauncherService is not found in the application
- // manifest. This should not happen in code that reaches here, but has been seen in
- // the past. See https://crbug.com/548314
- // Disable GCM for the remainder of this session.
- setGCMEnabled(false);
- // Return false so that the failure will be logged.
- return false;
- } finally {
- StrictMode.setThreadPolicy(oldPolicy);
- }
- return true;
- }
-
- /**
- * Reschedule any required background sync tasks, if they have been removed due to an
- * application upgrade.
- *
- * This method checks the saved preferences, and reschedules the sync tasks as appropriate
- * to match the preferences.
- * This method is static so that it can be run without actually instantiating a
- * BackgroundSyncLauncher.
- */
- protected static void rescheduleTasksOnUpgrade(final Context context) {
- final GcmNetworkManager scheduler = GcmNetworkManager.getInstance(context);
- BackgroundSyncLauncher.ShouldLaunchCallback callback = shouldLaunch -> {
- if (shouldLaunch) {
- // It's unclear what time the sync event was supposed to fire, so fire
- // without delay and let the browser reschedule if necessary.
- // TODO(iclelland): If this fails, report the failure via UMA (not now,
- // since the browser is not running, but on next startup.)
- scheduleLaunchTask(scheduler, 0);
- }
- };
- BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback);
- }
-
@VisibleForTesting
static void setGCMEnabled(boolean enabled) {
sGCMEnabled = enabled;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
@@ -106,7 +106,6 @@ public class ChromeBackgroundService extends GcmTaskService {
@VisibleForTesting
protected void rescheduleBackgroundSyncTasksOnUpgrade() {
- BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this);
}
private void handleSnippetsOnBrowserUpgraded() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
@@ -10,8 +10,6 @@ import android.os.Build;
import android.os.Handler;
import android.os.SystemClock;
-import com.google.ipc.invalidation.ticl.android2.channel.AndroidGcmController;
-
import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.AsyncTask;
@@ -198,18 +196,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
* Registers for Google Cloud Messaging (GCM) for Invalidations.
*/
private void ensureGcmIsInitialized() {
- if (mGcmInitialized) return;
mGcmInitialized = true;
- new AsyncTask<Void>() {
- @Override
- protected Void doInBackground() {
- boolean useGcmUpstream = true;
- AndroidGcmController.get(ContextUtils.getApplicationContext())
- .initializeGcm(useGcmUpstream);
- return null;
- }
- }
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
@@ -7,15 +7,10 @@ package org.chromium.chrome.browser.ntp.snippets;
import android.content.Context;
import android.net.ConnectivityManager;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.PeriodicTask;
-import com.google.android.gms.gcm.Task;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
-import org.chromium.chrome.browser.ChromeBackgroundService;
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
/**
@@ -40,8 +35,6 @@ public class SnippetsLauncher {
// If it is non-null then the browser is running.
private static SnippetsLauncher sInstance;
- private GcmNetworkManager mScheduler;
-
private boolean mGCMEnabled = true;
/**
@@ -78,7 +71,6 @@ public class SnippetsLauncher {
protected SnippetsLauncher() {
checkGCM();
- mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationContext());
}
private void checkGCM() {
@@ -89,32 +81,7 @@ public class SnippetsLauncher {
}
}
- private static PeriodicTask buildFetchTask(
- String tag, long periodSeconds, int requiredNetwork) {
- // Add a bit of "flex" around the target period. This achieves the following:
- // - It makes sure the task doesn't run (significantly) before its initial period has
- // elapsed. In practice, the scheduler seems to behave like that anyway, but it doesn't
- // guarantee that, so we shouldn't rely on it.
- // - It gives the scheduler a bit of room to optimize for battery life.
- long effectivePeriodSeconds = (long) (periodSeconds * (1.0 + FLEX_FACTOR));
- long flexSeconds = (long) (periodSeconds * (2.0 * FLEX_FACTOR));
- return new PeriodicTask.Builder()
- .setService(ChromeBackgroundService.class)
- .setTag(tag)
- .setPeriod(effectivePeriodSeconds)
- .setFlex(flexSeconds)
- .setRequiredNetwork(requiredNetwork)
- .setPersisted(true)
- .setUpdateCurrent(true)
- .build();
- }
-
private void scheduleOrCancelFetchTask(String taskTag, long period, int requiredNetwork) {
- if (period > 0) {
- mScheduler.schedule(buildFetchTask(taskTag, period, requiredNetwork));
- } else {
- mScheduler.cancelTask(taskTag, ChromeBackgroundService.class);
- }
}
@CalledByNative
@@ -127,23 +94,12 @@ public class SnippetsLauncher {
.edit()
.putBoolean(PREF_IS_SCHEDULED, isScheduled)
.apply();
-
- // Google Play Services may not be up to date, if the application was not installed through
- // the Play Store. In this case, scheduling the task will fail silently.
- try {
- scheduleOrCancelFetchTask(
- TASK_TAG_WIFI, periodWifiSeconds, Task.NETWORK_STATE_UNMETERED);
- scheduleOrCancelFetchTask(
- TASK_TAG_FALLBACK, periodFallbackSeconds, Task.NETWORK_STATE_CONNECTED);
- } catch (IllegalArgumentException e) {
// Disable GCM for the remainder of this session.
mGCMEnabled = false;
ContextUtils.getAppSharedPreferences().edit().remove(PREF_IS_SCHEDULED).apply();
// Return false so that the failure will be logged.
return false;
- }
- return true;
}
@CalledByNative
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
@@ -39,8 +39,6 @@ public class GCMBackgroundTask implements BackgroundTask {
Log.e(TAG, "The received bundle containing message data could not be validated.");
return false;
}
-
- ChromeGcmListenerService.dispatchMessageToDriver(context, new GCMMessage(extras));
return false;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
@@ -12,7 +12,6 @@ import android.os.Parcel;
import android.support.annotation.MainThread;
import android.util.Log;
-import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
import org.chromium.base.AsyncTask;
@@ -96,20 +95,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
* This function runs on a thread from the AsyncTask.THREAD_POOL_EXECUTOR.
*/
private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
- // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
- data.putString("Authorization", "Bearer " + token);
- if (!isMessageWithinLimit(data)) {
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SIZE_LIMIT_EXCEEDED);
- return;
- }
- String msgId = UUID.randomUUID().toString();
- try {
- GoogleCloudMessaging.getInstance(ContextUtils.getApplicationContext())
- .send(to, msgId, 1, data);
- } catch (IOException | IllegalArgumentException exception) {
- Log.w(TAG, "Send message failed");
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SEND_FAILED);
- }
}
private boolean isMessageWithinLimit(Bundle data) {
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -26,7 +26,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
"java/src/org/chromium/chrome/browser/ChromeApplication.java",
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
"java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
@@ -1283,7 +1282,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
"java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
"java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
"java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
"java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
"java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
--- a/components/background_task_scheduler/BUILD.gn
+++ b/components/background_task_scheduler/BUILD.gn
@@ -30,7 +30,6 @@ if (is_android) {
android_library("background_task_scheduler_java") {
java_files = [
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTask.java",
- "android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskService.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskJobService.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskReflection.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java",
diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
--- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
+++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
@@ -8,14 +8,6 @@ import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.OneoffTask;
-import com.google.android.gms.gcm.PeriodicTask;
-import com.google.android.gms.gcm.Task;
-import com.google.android.gms.gcm.TaskParams;
-
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
@@ -34,104 +26,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
@VisibleForTesting
static final String BACKGROUND_TASK_EXTRAS_KEY = "_background_task_extras";
- static BackgroundTask getBackgroundTaskFromTaskParams(@NonNull TaskParams taskParams) {
- String backgroundTaskClassName = getBackgroundTaskClassFromTaskParams(taskParams);
- return BackgroundTaskReflection.getBackgroundTaskFromClassName(backgroundTaskClassName);
- }
-
- private static String getBackgroundTaskClassFromTaskParams(@NonNull TaskParams taskParams) {
- Bundle extras = taskParams.getExtras();
- if (extras == null) return null;
- return extras.getString(BACKGROUND_TASK_CLASS_KEY);
- }
-
- /**
- * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as
- * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other
- * values are stripped at the time when the task is scheduled.
- *
- * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from.
- * @return the {@link TaskParameters} for the current job.
- */
- static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) {
- int taskId;
- try {
- taskId = Integer.parseInt(taskParams.getTag());
- } catch (NumberFormatException e) {
- Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag());
- return null;
- }
-
- TaskParameters.Builder builder = TaskParameters.create(taskId);
-
- Bundle extras = taskParams.getExtras();
- Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY);
- builder.addExtras(taskExtras);
-
- return builder.build();
- }
-
- @VisibleForTesting
- static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) {
- Bundle taskExtras = new Bundle();
- taskExtras.putString(
- BACKGROUND_TASK_CLASS_KEY, taskInfo.getBackgroundTaskClass().getName());
- taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras());
-
- Task.Builder builder;
- if (taskInfo.isPeriodic()) {
- builder = getPeriodicTaskBuilder(taskInfo.getPeriodicInfo());
- } else {
- builder = getOneOffTaskBuilder(taskInfo.getOneOffInfo());
- }
-
- builder.setExtras(taskExtras)
- .setPersisted(taskInfo.isPersisted())
- .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- taskInfo.getRequiredNetworkType()))
- .setRequiresCharging(taskInfo.requiresCharging())
- .setService(BackgroundTaskGcmTaskService.class)
- .setTag(taskIdToTaskTag(taskInfo.getTaskId()))
- .setUpdateCurrent(taskInfo.shouldUpdateCurrent());
-
- return builder.build();
- }
-
- private static Task.Builder getPeriodicTaskBuilder(TaskInfo.PeriodicInfo periodicInfo) {
- PeriodicTask.Builder builder = new PeriodicTask.Builder();
- builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs()));
- if (periodicInfo.hasFlex()) {
- builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs()));
- }
- return builder;
- }
-
- private static Task.Builder getOneOffTaskBuilder(TaskInfo.OneOffInfo oneOffInfo) {
- OneoffTask.Builder builder = new OneoffTask.Builder();
- long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint()
- ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs())
- : 0;
- builder.setExecutionWindow(windowStartSeconds,
- TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowEndTimeMs()));
- return builder;
- }
-
- private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- @TaskInfo.NetworkType int networkType) {
- switch (networkType) {
- // This is correct: GcmNM ANY means no network is guaranteed.
- case TaskInfo.NETWORK_TYPE_NONE:
- return Task.NETWORK_STATE_ANY;
- case TaskInfo.NETWORK_TYPE_ANY:
- return Task.NETWORK_STATE_CONNECTED;
- case TaskInfo.NETWORK_TYPE_UNMETERED:
- return Task.NETWORK_STATE_UNMETERED;
- default:
- assert false;
- }
- return Task.NETWORK_STATE_ANY;
- }
-
@Override
public boolean schedule(Context context, @NonNull TaskInfo taskInfo) {
ThreadUtils.assertOnUiThread();
@@ -142,50 +36,12 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
+ " has no parameterless public constructor.");
return false;
}
-
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- if (gcmNetworkManager == null) {
- Log.e(TAG, "GcmNetworkManager is not available.");
- return false;
- }
-
- try {
- Task task = createTaskFromTaskInfo(taskInfo);
- gcmNetworkManager.schedule(task);
- } catch (IllegalArgumentException e) {
- String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage();
- Log.e(TAG,
- "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage);
- return false;
- }
-
- return true;
+ return false;
}
@Override
public void cancel(Context context, int taskId) {
ThreadUtils.assertOnUiThread();
-
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- if (gcmNetworkManager == null) {
- Log.e(TAG, "GcmNetworkManager is not available.");
- return;
- }
-
- try {
- gcmNetworkManager.cancelTask(
- taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "GcmNetworkManager failed to cancel task.");
- }
- }
-
- private GcmNetworkManager getGcmNetworkManager(Context context) {
- if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
- == ConnectionResult.SUCCESS) {
- return GcmNetworkManager.getInstance(context);
- }
- return null;
}
private static String taskIdToTaskTag(int taskId) {
diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/android/BUILD.gn
--- a/components/gcm_driver/android/BUILD.gn
+++ b/components/gcm_driver/android/BUILD.gn
@@ -15,7 +15,6 @@ android_library("gcm_driver_java") {
deps = [
"//base:base_java",
"//content/public/android:content_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/jsr-305:jsr_305_javalib",
]
diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
--- a/components/gcm_driver/instance_id/android/BUILD.gn
+++ b/components/gcm_driver/instance_id/android/BUILD.gn
@@ -26,7 +26,6 @@ android_library("instance_id_driver_java") {
java_files = [
"java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java",
- "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java",
]
}
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
@@ -25,7 +25,6 @@ public class InstanceIDBridge {
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
* initialized on a background thread.
*/
- private InstanceIDWithSubtype mInstanceID;
private static boolean sBlockOnAsyncTasksForTesting;
@@ -70,7 +69,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- return mInstanceID.getId();
+ return "";
}
@Override
protected void sendResultToNative(String id) {
@@ -85,7 +84,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Long>() {
@Override
protected Long doBackgroundWork() {
- return mInstanceID.getCreationTime();
+ return 0L;
}
@Override
protected void sendResultToNative(Long creationTime) {
@@ -106,11 +105,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- try {
- return mInstanceID.getToken(authorizedEntity, scope, extras);
- } catch (IOException ex) {
- return "";
- }
+ return "";
}
@Override
protected void sendResultToNative(String token) {
@@ -126,12 +121,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteToken(authorizedEntity, scope);
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return true;
}
@Override
protected void sendResultToNative(Boolean success) {
@@ -146,12 +136,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteInstanceID();
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return true;
}
@Override
protected void sendResultToNative(Boolean success) {
@@ -190,11 +175,6 @@ public class InstanceIDBridge {
@Override
@SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
protected Result doInBackground() {
- synchronized (InstanceIDBridge.this) {
- if (mInstanceID == null) {
- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
- }
- }
return doBackgroundWork();
}
@Override
diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn
--- a/components/sync/android/BUILD.gn
+++ b/components/sync/android/BUILD.gn
@@ -10,7 +10,6 @@ android_library("sync_java") {
"//base:base_java",
"//components/signin/core/browser/android:java",
"//net/android:net_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/android_tools:android_support_annotations_java",
"//third_party/cacheinvalidation:cacheinvalidation_javalib",
"//third_party/cacheinvalidation:cacheinvalidation_proto_java",
diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn
--- a/third_party/cacheinvalidation/BUILD.gn
+++ b/third_party/cacheinvalidation/BUILD.gn
@@ -141,7 +141,6 @@ if (is_android) {
"$google_play_services_package:google_play_services_iid_java",
"$google_play_services_package:google_play_services_tasks_java",
"//third_party/android_protobuf:protobuf_nano_javalib",
- "//third_party/android_tools:android_gcm_java",
]
java_files = [
@@ -207,13 +206,8 @@ if (is_android) {
"src/java/com/google/ipc/invalidation/ticl/android2/WakeLockManager.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelConstants.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelPreferences.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/CommonUtils.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmUpstreamSenderService.java",
"src/java/com/google/ipc/invalidation/ticl/proto/AndroidChannel.java",
"src/java/com/google/ipc/invalidation/ticl/proto/AndroidListenerProtocol.java",
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
--- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
@@ -16,9 +16,6 @@
package com.google.ipc.invalidation.external.client.contrib;
-import com.google.android.gcm.GCMBaseIntentService;
-import com.google.android.gcm.GCMBroadcastReceiver;
-import com.google.android.gcm.GCMRegistrar;
import com.google.ipc.invalidation.external.client.SystemResources.Logger;
import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
import com.google.ipc.invalidation.ticl.android2.WakeLockManager;
@@ -69,7 +66,7 @@ import android.content.pm.ServiceInfo;
* there is nothing to do except log an error (which this class does).
*
*/
-public class MultiplexingGcmListener extends GCMBaseIntentService {
+public class MultiplexingGcmListener {
/* This class is public so that it can be instantiated by the Android runtime. */
/** Constants used in broadcast Intents. */
@@ -106,18 +103,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
}
/**
- * {@link GCMBroadcastReceiver} that forwards GCM intents to the {@code MultiplexingGcmListener}
- * class.
- */
- public static class GCMReceiver extends GCMBroadcastReceiver {
- /* This class is public so that it can be instantiated by the Android runtime. */
- @Override
- protected String getGCMIntentServiceClassName(Context context) {
- return MultiplexingGcmListener.class.getName();
- }
- }
-
- /**
* Convenience base class for client implementations. It provides base classes for a broadcast
* receiver and an intent service that work together to handle events from the
* {@code MultiplexingGcmListener} while holding a wake lock.
@@ -260,85 +245,10 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
/** Logger. */
private static final Logger logger = AndroidLogger.forTag("MplexGcmListener");
- // All onYYY methods work by constructing an appropriate Intent and broadcasting it.
-
- @Override
- protected void onMessage(Context context, Intent intent) {
- Intent newIntent = new Intent();
- newIntent.putExtra(Intents.EXTRA_OP_MESSAGE, true);
- newIntent.putExtras(intent);
- rebroadcast(newIntent);
- }
-
- @Override
- protected void onRegistered(Context context, String registrationId) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_REGISTERED, true);
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
- rebroadcast(intent);
- }
-
- @Override
- protected void onUnregistered(Context context, String registrationId) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_UNREGISTERED, true);
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
- rebroadcast(intent);
- }
-
- @Override
- protected void onDeletedMessages(Context context, int total) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_DELETED_MESSAGES, true);
- intent.putExtra(Intents.EXTRA_DATA_NUM_DELETED_MSGS, total);
- rebroadcast(intent);
- }
-
- @Override
- protected void onError(Context context, String errorId) {
- // This is called for unrecoverable errors, so just log a warning.
- logger.warning("GCM error: %s", errorId);
- }
-
- @Override
- protected String[] getSenderIds(Context context) {
- return readSenderIdsFromManifestOrDie(this);
- }
-
- /**
- * Broadcasts {@code intent} with the action set to {@link Intents#ACTION} and the package name
- * set to the package name of this service.
- */
- private void rebroadcast(Intent intent) {
- intent.setAction(Intents.ACTION);
- intent.setPackage(getPackageName());
- sendBroadcast(intent);
- }
-
- /**
- * Registers with GCM if not already registered. Also verifies that the device supports GCM
- * and that the manifest is correctly configured. Returns the existing registration id, if one
- * exists, or the empty string if one does not.
- *
- * @throws UnsupportedOperationException if the device does not have all GCM dependencies
- * @throws IllegalStateException if the manifest is not correctly configured
- */
- public static String initializeGcm(Context context) {
- AndroidChannelPreferences.setGcmChannelType(context, GcmChannelType.DEFAULT);
- GCMRegistrar.checkDevice(context);
- GCMRegistrar.checkManifest(context);
- final String regId = GCMRegistrar.getRegistrationId(context);
- if (regId.isEmpty()) {
- GCMRegistrar.register(context, readSenderIdsFromManifestOrDie(context));
- }
- return regId;
- }
-
/**
* Returns the GCM sender ids from {@link #GCM_SENDER_IDS_METADATA_KEY} or throws a
* {@code RuntimeException} if they are not defined.
*/
-
static String[] readSenderIdsFromManifestOrDie(Context context) {
try {
ServiceInfo serviceInfo = context.getPackageManager().getServiceInfo(
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
--- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
@@ -48,16 +48,12 @@ public class AndroidNetworkChannel implements TestableNetworkChannel {
Intent intent = ProtocolIntents.newOutboundMessageIntent(outgoingMessage);
// Select the sender service to use for upstream message.
- if (AndroidChannelPreferences.getGcmChannelType(context) == GcmChannelType.GCM_UPSTREAM){
- String upstreamServiceClass = new AndroidTiclManifest(context).getGcmUpstreamServiceClass();
- if (upstreamServiceClass == null || upstreamServiceClass.isEmpty()) {
- logger.warning("GcmUpstreamSenderService class not found.");
- return;
- }
- intent.setClassName(context, upstreamServiceClass);
- } else {
- intent.setClassName(context, AndroidMessageSenderService.class.getName());
- }
+ String upstreamServiceClass = new AndroidTiclManifest(context).getGcmUpstreamServiceClass();
+ if (upstreamServiceClass == null || upstreamServiceClass.isEmpty()) {
+ logger.warning("GcmUpstreamSenderService class not found.");
+ return;
+ }
+ intent.setClassName(context, upstreamServiceClass);
try {
context.startService(intent);
} catch (IllegalStateException exception) {
@@ -77,6 +73,6 @@ public class AndroidNetworkChannel implements TestableNetworkChannel {
@Override
public NetworkEndpointId getNetworkIdForTest() {
- return AndroidMessageSenderService.getNetworkEndpointId(context, resources.getLogger());
+ return null;
}
}
--
2.11.0

View file

@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 19:47:39 +0100
Subject: Do not grant notifications to default search engine
---
chrome/common/chrome_features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -301,7 +301,7 @@ const base::Feature kGeoLanguage{"GeoLanguage",
#if defined(OS_ANDROID)
const base::Feature kGrantNotificationsToDSE{"GrantNotificationsToDSE",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
#endif // defined(OS_ANDROID)
#if defined (OS_CHROMEOS)
--
2.11.0

View file

@ -0,0 +1,37 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 16:09:26 +0100
Subject: Remove contacts picker permission
---
chrome/android/java/AndroidManifest.xml | 1 -
ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java | 4 +---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -35,7 +35,6 @@ by a child template that "extends" this file.
{% endif %}
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
@@ -324,9 +324,7 @@ public class SelectFileDialog
* 3.) There is a valid Android Activity associated with the file request.
*/
private boolean shouldUseContactsPicker() {
- if (mFileTypes.size() != 1) return false;
- if (!mFileTypes.get(0).equals("text/json+contacts")) return false;
- return UiUtils.shouldShowContactsPicker() && mWindowAndroid.getActivity().get() != null;
+ return false;
}
/**
--
2.11.0

View file

@ -0,0 +1,171 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 17:20:21 +0100
Subject: =?UTF-8?q?Disable=20promos=20displayed=20in=20bookmarks=20manager?=
=?UTF-8?q?=0AXPATCH:=20never=20reach=20signin=20thresholds?=
XPATCH remove promo header from bookmarks
Remove personalized signin promo view from bookmarks
---
.../personalized_signin_promo_view_bookmarks.xml | 30 ----------------------
.../browser/bookmarks/BookmarkItemsAdapter.java | 23 ++---------------
.../browser/signin/SigninPromoController.java | 19 ++------------
chrome/android/java_sources.gni | 1 -
4 files changed, 4 insertions(+), 69 deletions(-)
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
deleted file mode 100644
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. -->
-
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/signin_promo_view_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:background="@drawable/content_card_modern_background"
- android:gravity="center_horizontal"
- android:orientation="vertical"
- android:paddingBottom="12dp"
- android:paddingTop="14dp">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="12dp"
- android:layout_marginEnd="12dp"
- android:layout_marginStart="12dp">
-
- <include layout="@layout/personalized_signin_promo_view_header"/>
- </FrameLayout>
-
- <include layout="@layout/personalized_signin_promo_view_body"/>
-
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
@@ -57,7 +57,6 @@ class BookmarkItemsAdapter
private BookmarkDelegate mDelegate;
private Context mContext;
- private BookmarkPromoHeader mPromoHeaderManager;
private String mSearchText;
private BookmarkId mCurrentFolder;
@@ -211,9 +210,9 @@ class BookmarkItemsAdapter
switch (viewType) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- return mPromoHeaderManager.createPersonalizedSigninPromoHolder(parent);
+ return null;
case ViewType.SYNC_PROMO:
- return mPromoHeaderManager.createSyncPromoHolder(parent);
+ return null;
case ViewType.FOLDER:
BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.from(
parent.getContext()).inflate(R.layout.bookmark_folder_row, parent, false);
@@ -234,8 +233,6 @@ class BookmarkItemsAdapter
public void onBindViewHolder(ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
break;
case ViewType.SYNC_PROMO:
break;
@@ -254,7 +251,6 @@ class BookmarkItemsAdapter
public void onViewRecycled(ViewHolder holder) {
switch (holder.getItemViewType()) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- mPromoHeaderManager.detachPersonalizePromoView();
break;
default:
// Other view holders don't have special recycling code.
@@ -289,7 +285,6 @@ class BookmarkItemsAdapter
}
};
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
populateTopLevelFoldersList();
}
@@ -299,7 +294,6 @@ class BookmarkItemsAdapter
mDelegate.removeUIObserver(this);
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mDelegate = null;
- mPromoHeaderManager.destroy();
}
@Override
@@ -366,19 +360,6 @@ class BookmarkItemsAdapter
if (currentUIState == BookmarkUIState.STATE_SEARCHING) return;
assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI state";
-
- switch (mPromoHeaderManager.getPromoState()) {
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
- return;
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
- mPromoHeaderSection.add(ViewType.PERSONALIZED_SIGNIN_PROMO);
- return;
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
- mPromoHeaderSection.add(ViewType.SYNC_PROMO);
- return;
- default:
- assert false : "Unexpected value for promo state!";
- }
}
private void populateTopLevelFoldersList() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
@@ -77,23 +77,8 @@ public class SigninPromoController {
*/
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
- switch (accessPoint) {
- case SigninAccessPoint.BOOKMARK_MANAGER:
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS, 0)
- < MAX_IMPRESSIONS_BOOKMARKS;
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
- // There is no impression limit for NTP content suggestions.
- return true;
- case SigninAccessPoint.RECENT_TABS:
- // There is no impression limit for Recent Tabs.
- return true;
- case SigninAccessPoint.SETTINGS:
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS, 0)
- < MAX_IMPRESSIONS_SETTINGS;
- default:
- assert false : "Unexpected value for access point: " + accessPoint;
- return false;
- }
+ // never show anything
+ return true;
}
/**
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -137,7 +137,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
- "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
--
2.11.0