From 3b1875efed94e721a7c8d701043f597aca696ce7 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 15 Jun 2018 11:26:26 +0200 Subject: [PATCH] Release 67.0.3396.88 --- CHANGELOG.md | 11 + README.md | 11 +- filters/adblock_entries.h | 177 ++++- .../BRM017_Disable-Omaha-update-checks.patch | 23 - .../BRM018_Add-DuckDuckGo-search-engine.patch | 715 ----------------- .../BRM019_Add-StartPage-search-engine.patch | 714 ----------------- ...020_Added-Google-English-only-engine.patch | 727 ------------------ patches/BRM021_Add-Qwant-search-engine.patch | 715 ----------------- ...en-accessing-page-info-site-settings.patch | 24 - ...nH264-enable-ARM-ARM64-optimizations.patch | 109 --- ...AMP-and-tracking-from-search-results.patch | 74 -- .../BRM025_Play-videos-in-background.patch | 79 -- ...026_Never-send-any-crash-upload-data.patch | 24 - .../BRM027_Never-fetch-popular-sites.patch | 27 - ...28_ungoogled-chromium-Disable-signin.patch | 56 -- ...chromium-Disable-webRTC-log-uploader.patch | 56 -- ...ed-chromium-Disable-untraceable-URLs.patch | 136 ---- ...romium-Disable-translate-integration.patch | 53 -- ...m-Disable-profile-avatar-downloading.patch | 35 - ...m-Disable-intranet-redirect-detector.patch | 28 - ...romium-Disable-Google-host-detection.patch | 374 --------- ...RM035_ungoogled-chromium-Disable-GCM.patch | 39 - ...M036_ungoogled-chromium-Disable-Gaia.patch | 134 ---- ...-chromium-Clear-HTTP-cache-menu-item.patch | 181 ----- ...38_url_request-hooks-and-ad-url-data.patch | 189 ----- patches/BRM039_Bromite-adblock-engine.patch | 584 -------------- patches/BRM040_User-Agent-anonymize.patch | 54 -- .../BRM041_Battery-API-return-nothing.patch | 77 -- .../BRM042_Disable-plugins-enumeration.patch | 27 - ...e-fingerprinting-mitigations-via-IDL.patch | 57 -- ...-toggle-global-Javascript-preference.patch | 183 ----- ...-account-access-permission-on-reboot.patch | 45 -- ...046_Punt-the-Widevine-version-string.patch | 24 - ...7_Disable-metrics-on-all-I-O-threads.patch | 23 - ...048_Enable-DNS-over-HTTPS-by-default.patch | 22 - ...getClientRects-getBoundingClientRect.patch | 130 ---- ...le-custom-tab-activities-permanently.patch | 28 - ...s-fingerprinting-mitigations-via-IDL.patch | 67 -- ...Started-work-on-canvas-randomisation.patch | 273 ------- ...-to-toggle-global-Adblock-preference.patch | 259 ------- ...e-for-cronet-async-DNS-configuration.patch | 46 -- 41 files changed, 165 insertions(+), 6445 deletions(-) delete mode 100644 patches/BRM017_Disable-Omaha-update-checks.patch delete mode 100644 patches/BRM018_Add-DuckDuckGo-search-engine.patch delete mode 100644 patches/BRM019_Add-StartPage-search-engine.patch delete mode 100644 patches/BRM020_Added-Google-English-only-engine.patch delete mode 100644 patches/BRM021_Add-Qwant-search-engine.patch delete mode 100644 patches/BRM022_Fix-crash-when-accessing-page-info-site-settings.patch delete mode 100644 patches/BRM023_openH264-enable-ARM-ARM64-optimizations.patch delete mode 100644 patches/BRM024_Cure-AMP-and-tracking-from-search-results.patch delete mode 100644 patches/BRM025_Play-videos-in-background.patch delete mode 100644 patches/BRM026_Never-send-any-crash-upload-data.patch delete mode 100644 patches/BRM027_Never-fetch-popular-sites.patch delete mode 100644 patches/BRM028_ungoogled-chromium-Disable-signin.patch delete mode 100644 patches/BRM029_ungoogled-chromium-Disable-webRTC-log-uploader.patch delete mode 100644 patches/BRM030_ungoogled-chromium-Disable-untraceable-URLs.patch delete mode 100644 patches/BRM031_ungoogled-chromium-Disable-translate-integration.patch delete mode 100644 patches/BRM032_ungoogled-chromium-Disable-profile-avatar-downloading.patch delete mode 100644 patches/BRM033_ungoogled-chromium-Disable-intranet-redirect-detector.patch delete mode 100644 patches/BRM034_ungoogled-chromium-Disable-Google-host-detection.patch delete mode 100644 patches/BRM035_ungoogled-chromium-Disable-GCM.patch delete mode 100644 patches/BRM036_ungoogled-chromium-Disable-Gaia.patch delete mode 100644 patches/BRM037_ungoogled-chromium-Clear-HTTP-cache-menu-item.patch delete mode 100644 patches/BRM038_url_request-hooks-and-ad-url-data.patch delete mode 100644 patches/BRM039_Bromite-adblock-engine.patch delete mode 100644 patches/BRM040_User-Agent-anonymize.patch delete mode 100644 patches/BRM041_Battery-API-return-nothing.patch delete mode 100644 patches/BRM042_Disable-plugins-enumeration.patch delete mode 100644 patches/BRM043_AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch delete mode 100644 patches/BRM044_Add-menu-option-to-toggle-global-Javascript-preference.patch delete mode 100644 patches/BRM045_Remove-google-account-access-permission-on-reboot.patch delete mode 100644 patches/BRM046_Punt-the-Widevine-version-string.patch delete mode 100644 patches/BRM047_Disable-metrics-on-all-I-O-threads.patch delete mode 100644 patches/BRM048_Enable-DNS-over-HTTPS-by-default.patch delete mode 100644 patches/BRM049_Add-fingerprinting-mitigation-for-getClientRects-getBoundingClientRect.patch delete mode 100644 patches/BRM050_Disable-custom-tab-activities-permanently.patch delete mode 100644 patches/BRM051_Canvas-fingerprinting-mitigations-via-IDL.patch delete mode 100644 patches/BRM052_Started-work-on-canvas-randomisation.patch delete mode 100644 patches/BRM053_Add-menu-option-to-toggle-global-Adblock-preference.patch delete mode 100644 patches/BRM054_Always-respect-async-dns-flag-regardless-of-SDK-version-do-not-read-experiment-value-for-cronet-async-DNS-configuration.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 93aa1d5f..a479b194 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# 67.0.3396.88 +* add flag for DNS-over-HTTPS (Google experimental DNS) (fixes https://github.com/bromite/bromite/issues/68) +* disable signin, translate and data saver UI/internal components (fixes https://github.com/bromite/bromite/issues/67) +* rename `GoogleEN` -> `Google In English` (fixes https://github.com/bromite/bromite/issues/66) +* re-enabled text metrics and ToDataURL, ToBlob with randomisation of color data (fixes https://github.com/bromite/bromite/issues/52) +* open YouTube links in Bromite +* use Android Media Player for URLs +* add exit menu item +* hide "send reports to Google" menu item +* updated AdBlock filters + # 67.0.3396.82 * updated AdBlock filters diff --git a/README.md b/README.md index 59137c8f..922e757b 100644 --- a/README.md +++ b/README.md @@ -55,15 +55,16 @@ We cannot add add-ons to Bromite (merely some features) and anyway HTTPS everywh * baked-in adblock engine with filters from EasyList, EasyPrivacy and others * remove click-tracking and AMP from Google search results +* DNS-over-HTTPS support via Google/CloudFlare servers * allow playing videos in background -* [StartPage](https://startpage.com/) search engine -* [DuckDuckGo](https://duckduckgo.com/) search engine -* [Qwant](https://www.qwant.com/) search engine +* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines * Google search engine English-only with reduced tracking * privacy enhancement patches from [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/), [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) and [Iridium](https://github.com/iridium-browser) projects * webRTC, canvas, audio and other anti-fingerprinting mitigations * all codecs included (proprietary, open H.264 etc.) -* built with official optimizations +* built with official speed optimizations + +You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/patches # Releases @@ -72,7 +73,7 @@ All built versions are available as [releases](https://github.com/bromite/bromit Each tag corresponds to a Chromium release tag. Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21 -Additionally, SystemWebView, Monochrome and the vanilla Chromium builds are provided. +Additionally, SystemWebView, Monochrome and the [vanilla Chromium](https://www.bromite.org/chromium) builds are provided. # How to build diff --git a/filters/adblock_entries.h b/filters/adblock_entries.h index 24c9d14c..9aef7ee4 100644 --- a/filters/adblock_entries.h +++ b/filters/adblock_entries.h @@ -19,7 +19,7 @@ struct adblock_entry { const char **domains, **domains_neg; }; -#define ADBLOCK_ENTRY_COUNT 51354 +#define ADBLOCK_ENTRY_COUNT 51411 const char *m10030a28[] = { "/InsightTrk/", NULL }; const char *m10045299[] = { "award.sitekeuring.net^", NULL }; const char *m100458cd[] = { "eluhhfyxx.com^", NULL }; @@ -2557,6 +2557,7 @@ const char *m1c406a10[] = { "plgdhrvzsvxp.com^", NULL }; const char *m1c418ab6[] = { "proext.com^", NULL }; const char *m1c423403[] = { "fimserve.ign.com^", NULL }; const char *m1c448fae[] = { "/3market.php?", NULL }; +const char *m1c465bb6[] = { "ghjwogfexch.com^", NULL }; const char *m1c4661aa[] = { "portlanddailysun.me/images/banners/", NULL }; const char *m1c483ff6[] = { "/hmapxy.js", NULL }; const char *m1c491768[] = { "exelator.com^", NULL }; @@ -2822,6 +2823,7 @@ const char *m1d6f22f9[] = { "/__sttm.gif?", NULL }; const char *m1d706377[] = { "61.129.118.83^", NULL }; const char *m1d706591[] = { "hypemagazine.co.za/assets/bg/", NULL }; const char *m1d71754a[] = { "header.tech/MetOffice_", NULL }; +const char *m1d71857d[] = { "/cookie.gif?", NULL }; const char *m1d718a29[] = { "d1clfvuu2240eh.cloudfront.net^", NULL }; const char *m1d7800da[] = { "whatismyip.win^", NULL }; const char *m1d78a3e1[] = { "ads.bigchurch.com^", NULL }; @@ -2977,7 +2979,6 @@ const char *m1e421082[] = { "/eureka-ads.", NULL }; const char *m1e4284f [] = { "choicestream.com^", "^pixel^", NULL }; const char *m1e483f6 [] = { "airvpn.org/images/promotional/", NULL }; const char *m1e48f5b9[] = { "youtubelike.com/ftt2/toplists/", NULL }; -const char *m1e490054[] = { "chestionar.ro^", NULL }; const char *m1e493cf5[] = { "pornup.me/js/pp.js", NULL }; const char *m1e4d380d[] = { "effectivemeasure.net^", NULL }; const char *m1e4d9406[] = { "tongji.baidu.com/analytics/js/", NULL }; @@ -3143,6 +3144,7 @@ const char *m1f033c50[] = { "adnetxchange.com^", NULL }; const char *m1f034dd3[] = { "demanier.com^", NULL }; const char *m1f04b6a9[] = { "/adriver.", NULL }; const char *m1f05d08f[] = { "freeones.com/cd/?cookies=", NULL }; +const char *m1f05d2af[] = { "rjxspgol.com^", NULL }; const char *m1f098ebb[] = { "ctnetwork.hu^", NULL }; const char *m1f0ce3d4[] = { "ssvolkkihcyp.com^", NULL }; const char *m1f1058a1[] = { "/advertize_", NULL }; @@ -4278,6 +4280,7 @@ const char *m244e7135[] = { "/ad/600-", NULL }; const char *m24507467[] = { "innovid.com^", NULL }; const char *m245204e4[] = { "edplsrtjpxamr.bid^", NULL }; const char *m24533a09[] = { "/tracking_pix.", NULL }; +const char *m2453ed6c[] = { "jldstutlnz.com^", NULL }; const char *m245531d [] = { "tubecorporate.com^", NULL }; const char *m245708a [] = { "isportconnect.com//images/banners/", NULL }; const char *m24576031[] = { "nudeflix.com/ads/video-player/", NULL }; @@ -4474,6 +4477,7 @@ const char *m2543eaef[] = { "acpxgmzozlxtbj.bid^", NULL }; const char *m25459279[] = { "stat.tudou.com^", NULL }; const char *m25463112[] = { "popupdomination.com^", NULL }; const char *m25477ca5[] = { "morningdigit.com^", NULL }; +const char *m25480cd7[] = { "ads.miarroba.com^", NULL }; const char *m25485534[] = { "bblznptpffqc.com^", NULL }; const char *m25486d49[] = { "adit-media.com^", NULL }; const char *m254933f2[] = { "free-torrents.org^", "^banners^", NULL }; @@ -5069,6 +5073,7 @@ const char *m282d3a4a[] = { "pubarticles.com/add_hits_by_user_click.php", NULL } const char *m282df9cc[] = { "/clicklog.", NULL }; const char *m2831035f[] = { "^analytics^ping^", NULL }; const char *m2832f715[] = { "/ads/oas_", NULL }; +const char *m2833934b[] = { " ! https://github.com/uBlockOrigin/uAssets/issues/2514", NULL }; const char *m28354ec8[] = { "/FoxAnalyticsExtension.", NULL }; const char *m2836a404[] = { "freegeoip.net/json/", NULL }; const char *m2839409e[] = { ".ro/ads/", NULL }; @@ -6855,6 +6860,7 @@ const char *m3098fb20[] = { "wmhksxycucxb.com^", NULL }; const char *m309ae42f[] = { "theequalground.info^", NULL }; const char *m309bcb94[] = { "surf-bar-traffic.com^", NULL }; const char *m309ebd3a[] = { "dvdbox.com/promo/", NULL }; +const char *m309f6178[] = { "wugwwcqjdfa.com^", NULL }; const char *m309fc3db[] = { "/bnrimg.", NULL }; const char *m30a041bc[] = { "/adsrotateheader.", NULL }; const char *m30a15200[] = { "appelamule.com^", NULL }; @@ -7957,6 +7963,7 @@ const char *m35d87f71[] = { "metartmoney.met-art.com^", NULL }; const char *m35d8d980[] = { "bet365.com^", "affiliate^", NULL }; const char *m35dc0cc9[] = { "shareasale.com^", NULL }; const char *m35de28cf[] = { "yumenetworks.com^", NULL }; +const char *m35dff821[] = { "bbc.co.uk/radio/player/", "/logger.js", NULL }; const char *m35e2771a[] = { "ts.blogo.it^", NULL }; const char *m35e277d9[] = { "talk-blog.com^", NULL }; const char *m35e44cc [] = { "/postprofileverticalad.", NULL }; @@ -8480,6 +8487,7 @@ const char *m3864897 [] = { "d1d43ayl08oaq2.cloudfront.net^", NULL }; const char *m386548d4[] = { "europagerank.com^", NULL }; const char *m3868348e[] = { "morebabes.to/morebabes.js", NULL }; const char *m3869314c[] = { "de-mi-nis-ner2.info^", NULL }; +const char *m386ce860[] = { "tmffmrsa.com^", NULL }; const char *m386ce99c[] = { "daq0d0aotgq0f.cloudfront.net^", NULL }; const char *m386d1630[] = { "servingit.co^", NULL }; const char *m38707904[] = { "/xtclick.", NULL }; @@ -8540,6 +8548,7 @@ const char *m38ab8e9b[] = { "osd.oxygem.it^", NULL }; const char *m38abc2cd[] = { "_ad2.", NULL }; const char *m38abcf8 [] = { "thefourthperiod.com/ads/tfplogo_", NULL }; const char *m38ac2cc7[] = { "aimatch.com^", NULL }; +const char *m38ac7b16[] = { "azofucrzkkaa.com^", NULL }; const char *m38ad738b[] = { "afovelsa.com^", NULL }; const char *m38ad9eb6[] = { "hanksgalleries.com/stxt_", NULL }; const char *m38af4662[] = { "/img_ad_", NULL }; @@ -8643,6 +8652,7 @@ const char *m391c46b9[] = { "srizwhcdjruf.com^", NULL }; const char *m391d5ed0[] = { "clmbtech.com^", NULL }; const char *m39212f03[] = { "gtvnygwfzrhfti.com^", NULL }; const char *m392163ca[] = { "/ping_g.jsp?", NULL }; +const char *m392203a5[] = { "/v1/pixel?", NULL }; const char *m39222d80[] = { "volvocars.com^", "^swfaddress.js^", NULL }; const char *m3922f7aa[] = { "newt1.adultadworld.com^", NULL }; const char *m3923a18e[] = { "player.1800coupon.com^", NULL }; @@ -10376,6 +10386,7 @@ const char *m418c5315[] = { "-ad-rotators/", NULL }; const char *m418cadc5[] = { "gypxbcrmxsmikqbmnlwtezmjotrrdxpqtafumympsdtsfvkkza.com^", NULL }; const char *m418dbafc[] = { "sxprcyzcpqil.com^", NULL }; const char *m418dfd04[] = { "trafikkfondet.no^", NULL }; +const char *m418fd0ea[] = { "jovzikimk.com^", NULL }; const char *m418feec2[] = { "betrad.com^", NULL }; const char *m419130dc[] = { "zawya.com/zscripts/ajaxztrack.cfm?", NULL }; const char *m419414d3[] = { "108.166.93.81/rotate/", NULL }; @@ -11248,6 +11259,7 @@ const char *m45b4117a[] = { "statcounter.com/chart.php?", NULL }; const char *m45b41c79[] = { "cex.io/img/b/", NULL }; const char *m45b5e250[] = { "abcompteur.com^", NULL }; const char *m45b9ec8b[] = { "mikkvpggxg.bid^", NULL }; +const char *m45ba8074[] = { "qhaavcekkhckzi.com^", NULL }; const char *m45bad56b[] = { "ads.img.co.za^", NULL }; const char *m45bc026a[] = { "vbnvvzedvgx.com^", NULL }; const char *m45bcd0e8[] = { "ads.eu.com/ads-", NULL }; @@ -11302,6 +11314,7 @@ const char *m45f3d2aa[] = { "spilcdn.com/vda/css/sgadfamily2.css", NULL }; const char *m45f4461e[] = { "cashtrafic.com^", NULL }; const char *m45f55d9a[] = { "idntfy.ru^", NULL }; const char *m45f65a75[] = { "nextthreedays.com/Include/Javascript/AdFunctions.js", NULL }; +const char *m45f72af0[] = { "xiuekdmfaqwh.com^", NULL }; const char *m45f77e96[] = { "banner.galabingo.com^", NULL }; const char *m45f9f212[] = { "hasxepvkld.com^", NULL }; const char *m45fae4e5[] = { "doubleclick.net/pfadx/intl.sps.com/", NULL }; @@ -11575,7 +11588,6 @@ const char *m4744a911[] = { "fantasticfiction.co.uk/cgi-bin/checker.cgi", NULL } const char *m4745213f[] = { "w00tmedia.net^", NULL }; const char *m4745341e[] = { "yvqdhpyaoike.bid^", NULL }; const char *m47460b3d[] = { "juba-get.com^", "^advertisement.js", NULL }; -const char *m474635aa[] = { "^^https^^\\^\\^([0-9a-z\\-]+\\.)^(watchcartoononline|9anime|memecenter|kimcartoon|animeflv).", "[a-zA-Z0-9^%^\\^^]{40,}^", NULL }; const char *m4749d190[] = { "aykosfkx.bid^", NULL }; const char *m474b8c16[] = { "tracking.i-click.com.hk^", NULL }; const char *m474bb176[] = { "zgalwqht.com^", NULL }; @@ -11855,6 +11867,7 @@ const char *m48787ab3[] = { "djtclldgsocbv.bid^", NULL }; const char *m487f9871[] = { "rvmwyfvfxendw.bid^", NULL }; const char *m4882edec[] = { "viysseop.bid^", NULL }; const char *m48838df0[] = { "qaazzemfo.com^", NULL }; +const char *m4883c138[] = { "adition.de^", NULL }; const char *m4884b8a6[] = { "ecircle-ag.com^", NULL }; const char *m4888ec2 [] = { "youporn.com/recommendedtoyou.php", NULL }; const char *m488aef64[] = { "7u8a8i88.com^", NULL }; @@ -12286,6 +12299,7 @@ const char *m4aac3053[] = { "/imgad?", NULL }; const char *m4aac4f6f[] = { "analytics.groupe-seb.com^", NULL }; const char *m4aaccd25[] = { "gqnotcpintcq.bid^", NULL }; const char *m4aad0b84[] = { "pornorips.com/hwpop.js", NULL }; +const char *m4ab04317[] = { "kjkwrmwdyhi.com^", NULL }; const char *m4ab233b1[] = { "/adserver2/", NULL }; const char *m4ab30408[] = { "sp.argusleader.com^", NULL }; const char *m4ab3b5f3[] = { "/newads/", NULL }; @@ -12476,7 +12490,6 @@ const char *m4ba100c5[] = { "cdn.assets.gorillanation.com^", NULL }; const char *m4ba26922[] = { "firstrowusa.eu/js/bn.js", NULL }; const char *m4ba3373a[] = { "tms-st.cdn.ngenix.net^", NULL }; const char *m4ba34758[] = { "mzbcdn.net^", NULL }; -const char *m4ba41a5c[] = { "kniverto.com^", NULL }; const char *m4ba9045 [] = { "ads.horsehero.com^", NULL }; const char *m4baa43cf[] = { "cdnanalytics.xyz^", NULL }; const char *m4baa73e2[] = { "httpool.com^", NULL }; @@ -12999,7 +13012,6 @@ const char *m4e372603[] = { "dtiserv2.com^", NULL }; const char *m4e393ae [] = { "jryywrczwcfmw.com^", NULL }; const char *m4e396047[] = { "yumenetworks.com/content/static/", NULL }; const char *m4e39a8bd[] = { "funtonia.com/promo/", NULL }; -const char *m4e39ef4d[] = { "www1.gto-media.com^", NULL }; const char *m4e3aa112[] = { "cnhv.co^", NULL }; const char *m4e3bf989[] = { "adpacks.com^", NULL }; const char *m4e3c6b4 [] = { "/stats/et_track.asp?", NULL }; @@ -14462,6 +14474,7 @@ const char *m550dfb86[] = { "hdmxceunntsy.bid^", NULL }; const char *m55101121[] = { "ad.jetsoftware.com^", NULL }; const char *m55120f14[] = { "/mma/?t=", NULL }; const char *m55135fe0[] = { "/sponsers.cgi", NULL }; +const char *m55137afb[] = { "nrich.ai^", NULL }; const char *m551411f4[] = { "kzqrjfulybvv.com^", NULL }; const char *m5515f567[] = { "trustedreviews.com/mobile/widgets/html/promoted-phones?", NULL }; const char *m5517681e[] = { "heapanalytics.com^", NULL }; @@ -15274,6 +15287,7 @@ const char *m5937a8f4[] = { "alachuacountytoday.com/images/banners/", NULL }; const char *m5938b8cb[] = { "/ad?iframe_", NULL }; const char *m5939704c[] = { "nbbvpxfxnamb.com^", NULL }; const char *m593a18f [] = { "jllveksikabohj.bid^", NULL }; +const char *m593a1f8e[] = { "ehzcbife.com^", NULL }; const char *m593afd03[] = { "vid2c.com/pap.js", NULL }; const char *m593bb40b[] = { "_120h600.", NULL }; const char *m593bc8a5[] = { "gwasavfgelbuah.bid^", NULL }; @@ -15924,6 +15938,7 @@ const char *m5c69cfbc[] = { "jewishvoiceny.com/ban2/", NULL }; const char *m5c6b3f28[] = { "cdn.mxpnl.com^", NULL }; const char *m5c6c771f[] = { "ospserver.net^", NULL }; const char *m5c6d9b66[] = { "legitonlinejobs.com/images/", NULL }; +const char *m5c6e2939[] = { "uzagahwfnt.com^", NULL }; const char *m5c6ed41c[] = { "ofajzowbwzzi.com^", NULL }; const char *m5c6f9f2a[] = { "vulging.pro^", NULL }; const char *m5c702d37[] = { "rb1.design.ru^", NULL }; @@ -16391,6 +16406,7 @@ const char *m5e979a7c[] = { "trackjs.com^", NULL }; const char *m5e9863f6[] = { "/tide_stat.js", NULL }; const char *m5e98f686[] = { "ads.co.com^", NULL }; const char *m5e9a5bfa[] = { "rapizoda.com^", NULL }; +const char *m5e9ccfa9[] = { "filmpornoita.net/advertisement.js", NULL }; const char *m5e9ea09e[] = { "telemetry.jivosite.com^", NULL }; const char *m5ea032a1[] = { "scripte-monster.de^", NULL }; const char *m5ea058fb[] = { "bworldonline.com/adserver/", NULL }; @@ -16735,6 +16751,7 @@ const char *m6028cfe3[] = { "/cdn-cgi/pe/bag2?", "adsrvmedia", NULL }; const char *m602d3ed2[] = { "banners.fastcupid.com^", NULL }; const char *m602eab23[] = { "getclicky.com^", NULL }; const char *m602f09c3[] = { "audienceserver.aws.forebase.com^", NULL }; +const char *m602f5bbd[] = { "nzwwrvywcfqmsq.com^", NULL }; const char *m60303fa [] = { "poewhatnvxydts.com^", NULL }; const char *m60327bbb[] = { "/incmpuad.", NULL }; const char *m6035df80[] = { "/incotrading-ads/", NULL }; @@ -17870,6 +17887,7 @@ const char *m654b0995[] = { ";sz=1x1;ord=", NULL }; const char *m654b3b43[] = { "/doubleclick.aspx", NULL }; const char *m654c04f5[] = { "_ad_box.", NULL }; const char *m654cd16c[] = { "hubturkey.net/", "/ads.js", NULL }; +const char *m654dd254[] = { "cipohwidxc.com^", NULL }; const char *m654e83e9[] = { "/statistics?counter=", NULL }; const char *m654edbcb[] = { "/adview?", NULL }; const char *m654f61e2[] = { "sexgalaxy.net/wp-includes/js/masonry.min.js?", NULL }; @@ -18606,7 +18624,6 @@ const char *m68b98664[] = { "_ad_close.", NULL }; const char *m68bc15f [] = { "/ad_label_", NULL }; const char *m68bf1522[] = { "/RadioAnalyticsIframe.js", NULL }; const char *m68bf17c1[] = { "foodieblogroll.com^", NULL }; -const char *m68c08b2f[] = { "paradisehill.cc/assets/bae8a07d/", NULL }; const char *m68c0abea[] = { "/dmn-advert.", NULL }; const char *m68c314db[] = { "zedo.com/asw/", NULL }; const char *m68c3fbf8[] = { "/sikquantcast_", NULL }; @@ -18642,6 +18659,7 @@ const char *m68e10557[] = { "/geoip_cc", NULL }; const char *m68e4e13f[] = { "bitterstrawberry.com^", NULL }; const char *m68e636a6[] = { "jndclagxkvpn.com^", NULL }; const char *m68e70a70[] = { "v11media.com^", NULL }; +const char *m68e73424[] = { "flntdbwafec.com^", NULL }; const char *m68e8d915[] = { "veoxa.com^", NULL }; const char *m68e8f823[] = { "/banner-ad-", NULL }; const char *m68eb581e[] = { "monetate.net^", "^entry.js", NULL }; @@ -19417,6 +19435,7 @@ const char *m6c86e672[] = { "tracker.everestnutrition.com^", NULL }; const char *m6c87f6ef[] = { "/ads/rawstory_", NULL }; const char *m6c88cca6[] = { "comwgi.com^", NULL }; const char *m6c8a314f[] = { "/adblock-relief.js", NULL }; +const char *m6c8b306e[] = { "miltqbfqstsf.com^", NULL }; const char *m6c8b564c[] = { "/adviframe/", NULL }; const char *m6c8b8b72[] = { "/pv.gif?url", NULL }; const char *m6c8c15ae[] = { "classic97.net^", "^banner^", NULL }; @@ -20728,6 +20747,7 @@ const char *m729c2c80[] = { "aff.marathonbet.com^", NULL }; const char *m729c5d5e[] = { "mehrwertdienstekompetenz.de/cp/", NULL }; const char *m729cc21e[] = { "d1gyluhoxet66h.cloudfront.net^", NULL }; const char *m729d65dd[] = { "/athenastgbeacon.", NULL }; +const char *m729d836c[] = { "bzqqaoeufrld.com^", NULL }; const char *m729ddebc[] = { "/checkstat.asp", NULL }; const char *m729e1819[] = { "motherless.com/scripts/responsive.min.js", NULL }; const char *m729f4205[] = { "aiprvqqnhm.com^", NULL }; @@ -20919,6 +20939,7 @@ const char *m7382a575[] = { "cmmeglobal.com^", NULL }; const char *m7383598 [] = { "/bin/stats?", NULL }; const char *m7385cc29[] = { "btbuckets.com^", NULL }; const char *m7386d766[] = { "utrack.hexun.com^", NULL }; +const char *m73885cec[] = { "fmoihhvbehopc.com^", NULL }; const char *m738b497d[] = { "/advcounter.", NULL }; const char *m738bb930[] = { "unztsvrjofqp.com^", NULL }; const char *m738dcb2 [] = { "pixel.anyclip.com^", NULL }; @@ -20960,6 +20981,7 @@ const char *m73bbba95[] = { "asafesite.com^", NULL }; const char *m73bd49ae[] = { "gayporntimes.com/img/GP_Heroes.jpg", NULL }; const char *m73be2a88[] = { "graphracer.com/js/libs/heatmap.js", NULL }; const char *m73be4f72[] = { "jwbdezxfl.bid^", NULL }; +const char *m73c05f0d[] = { "oieeezzld.com^", NULL }; const char *m73c27c0c[] = { "phuketgazette.net/banners/", NULL }; const char *m73c664e2[] = { "/acbeacon2.", NULL }; const char *m73c9225d[] = { "aoqviogrwckf.com^", NULL }; @@ -21575,6 +21597,7 @@ const char *m76b4d08 [] = { "?vmAdID=", NULL }; const char *m76b7862f[] = { "fncnet1.com^", NULL }; const char *m76b7eca4[] = { "/netreachtextads/", NULL }; const char *m76b813f0[] = { "rapidvideo.com/jwplayer", "/jwplayer.js", NULL }; +const char *m76b9bf6c[] = { "akamaized.net^", "^js^tracking^ninja.js", NULL }; const char *m76ba091f[] = { "/~cdn/ads/", NULL }; const char *m76bab4a9[] = { "hancinema.net/images/banner_", NULL }; const char *m76babcba[] = { "clicktrace.info^", NULL }; @@ -22198,6 +22221,7 @@ const char *m79a635c1[] = { "lcuprkufusba.com^", NULL }; const char *m79a671ab[] = { "ad.tv2.no^", NULL }; const char *m79a82c6d[] = { "openclose.click^", NULL }; const char *m79a85359[] = { "zinzimo.info^", NULL }; +const char *m79aaba7d[] = { "tvshqiphd.com/adblock.js", NULL }; const char *m79aaf7fe[] = { "ohpojzltnt.bid^", NULL }; const char *m79ab2f3b[] = { "gamesites100.net^", NULL }; const char *m79ac7c5b[] = { "herbalaffiliateprogram.com^", NULL }; @@ -22819,7 +22843,6 @@ const char *m7cbc1ad1[] = { "/api.ad.", NULL }; const char *m7cbdd0c1[] = { "phncdn.com/js/editUserDropDown/", NULL }; const char *m7cbe4fd1[] = { "://top.", "/hit/", NULL }; const char *m7cbf81f3[] = { "llnwd.net^", "^takeover_", NULL }; -const char *m7cc23227[] = { "trafficbalancerouting.com^", NULL }; const char *m7cc275c6[] = { "getsmartcontent.com/gateway/?callback", NULL }; const char *m7cc39c5 [] = { "secumine.net^", NULL }; const char *m7cc5ae19[] = { "/homepage_ad_", NULL }; @@ -23617,6 +23640,7 @@ const char *m806fbce1[] = { "gunggo.com^", NULL }; const char *m8070bb39[] = { "tubeplus.me/geoip.php?", NULL }; const char *m807127ac[] = { "flappysquid.net^", NULL }; const char *m8071814 [] = { "surfmusic.de/banner", NULL }; +const char *m807211e6[] = { "fxlyhuluw.com^", NULL }; const char *m80741534[] = { "/adspf.", NULL }; const char *m80748d9 [] = { "gestetnerupdates.com^", "^Gestetner-Miles.gif", NULL }; const char *m80752ece[] = { "/awesc.php?", NULL }; @@ -24095,7 +24119,6 @@ const char *m82bffee7[] = { "-adspace.", NULL }; const char *m82c00f82[] = { "haymarket.com/injector/deliver/", NULL }; const char *m82c0c468[] = { "/eftracking.", NULL }; const char *m82c0f917[] = { "time4hemp.com/wp-content/uploads/", "/WeedSeedShop.jpg", NULL }; -const char *m82c344cc[] = { "twitch.tv/ad/", "=preroll", NULL }; const char *m82c427f5[] = { "spinbox.freedom.com^", NULL }; const char *m82c5deda[] = { "/ad000/", NULL }; const char *m82c7098f[] = { "tinyurl.com/firefox_banner_", NULL }; @@ -24379,6 +24402,7 @@ const char *m841f4fa4[] = { "trkrdel.com^", NULL }; const char *m8420a3e4[] = { "/ads-restrictions.", NULL }; const char *m842252c8[] = { "linktausch-pagerank.de^", NULL }; const char *m84230b69[] = { "lvrvufurxhgp.com^", NULL }; +const char *m842347d6[] = { "reshet.tv//third-party/dfp/dfp", NULL }; const char *m8423f322[] = { ".pj?adv=", NULL }; const char *m84243aa6[] = { "pastebin.com/ablock/", NULL }; const char *m84249853[] = { "apmex.com/resources/ads/", NULL }; @@ -25116,7 +25140,6 @@ const char *m87ccba8a[] = { "stat.kbs.co.kr^", NULL }; const char *m87cd1d8f[] = { "audit.macworld.co.uk^", NULL }; const char *m87cdcfc9[] = { "enhovesepdhxph.bid^", NULL }; const char *m87d0b28e[] = { "banggood.com/?p=", NULL }; -const char *m87d48a40[] = { "twitch.tv^", "^ads^", NULL }; const char *m87d7a0ee[] = { "porn-ad.org^", NULL }; const char *m87db2b34[] = { "thedailysheeple.com/images/banners/", NULL }; const char *m87dcdf29[] = { "hplose.de^", NULL }; @@ -25271,6 +25294,7 @@ const char *m888e4837[] = { "limenewsonedailyn.com^", NULL }; const char *m888f01d0[] = { "imghost.us.to/xxx/content/system/js/iframe.html", NULL }; const char *m888feb79[] = { "/newstat/", NULL }; const char *m889224be[] = { "travelocity.com/html.ng/", "558x262", NULL }; +const char *m88928eb4[] = { "smhqmrxplvnx.com^", NULL }; const char *m889339c1[] = { "/promos/pixels?", NULL }; const char *m88973cd8[] = { "whdh.com/images/promotions/", NULL }; const char *m88987134[] = { "/statsd_proxy", NULL }; @@ -26333,6 +26357,7 @@ const char *m8ddafb74[] = { "newscdn.com.au^", "^aldi^", NULL }; const char *m8ddc1855[] = { "opencdb84509.com^", NULL }; const char *m8ddcc6d7[] = { "dz4ad.com^", NULL }; const char *m8dddef61[] = { "jumptime.com^", NULL }; +const char *m8ddfc4b3[] = { "/pixel?m=", NULL }; const char *m8de3493c[] = { "homad.eu^", NULL }; const char *m8de47e2a[] = { "cpaevent.ru^", NULL }; const char *m8de57670[] = { "livesmarter.com^", NULL }; @@ -27230,6 +27255,7 @@ const char *m91eca690[] = { "jyxckvhds.bid^", NULL }; const char *m91ee11b4[] = { "guardian.bz/images/banners/", NULL }; const char *m91f16e51[] = { "/600-60.", NULL }; const char *m91f5e57c[] = { "betigo.work^", NULL }; +const char *m91f5f3b2[] = { "gafoswegc.com^", NULL }; const char *m91f7263e[] = { "/ads/views/", NULL }; const char *m91f74468[] = { "igameunion.com^", NULL }; const char *m91f751d5[] = { "_336x280s.", NULL }; @@ -27258,6 +27284,7 @@ const char *m921cc3a6[] = { "kilorama.com^", NULL }; const char *m921f005b[] = { "filedroid.net/af_ta/", NULL }; const char *m92224c47[] = { "fpvfeyjrwlio.com^", NULL }; const char *m92234c5d[] = { "_adBottom_", NULL }; +const char *m9224a012[] = { "xcvlescqkwan.com^", NULL }; const char *m922586b8[] = { "yimg.com^", "^sponsored.js", NULL }; const char *m9226210 [] = { "lagacetanewspaper.com^", "^banners^", NULL }; const char *m92268d36[] = { "/460x60.", NULL }; @@ -27457,6 +27484,7 @@ const char *m93158c08[] = { "evisitcs.com^", NULL }; const char *m9315adbb[] = { "tbwaaekocue.bid^", NULL }; const char *m9315fca4[] = { "jzthapvjlq.bid^", NULL }; const char *m93166799[] = { ".jsp/?Log=", NULL }; +const char *m931a6179[] = { "dkvzpqcqan.com^", NULL }; const char *m931d5eb [] = { "iyi.net^", NULL }; const char *m931f6003[] = { "bbtlombqjr.bid^", NULL }; const char *m9320bf2f[] = { "vtnlog-", ".elb.amazonaws.com^", NULL }; @@ -28055,6 +28083,7 @@ const char *m9632e43a[] = { "cleafs.com^", NULL }; const char *m9632f084[] = { "cdn.playwire.com^", NULL }; const char *m9633b7ca[] = { "/track_visit?", NULL }; const char *m9633fa6d[] = { "_hr_advt/", NULL }; +const char *m96353ed [] = { "uptain.de^", NULL }; const char *m963547b2[] = { "bizrotator.com^", NULL }; const char *m96376454[] = { "images.", ".criteo.net^", NULL }; const char *m963766bf[] = { "speedtrap.shopdirect.com^", NULL }; @@ -28572,6 +28601,7 @@ const char *m98a5d7b5[] = { "pkucwwgcnuxzo.bid^", NULL }; const char *m98a7bf49[] = { "dodahirwudrhv.com^", NULL }; const char *m98a9b861[] = { "websponsors.com^", NULL }; const char *m98a9cb85[] = { "odcdn.com^", "^cm.js", NULL }; +const char *m98aa207a[] = { "ladhyjqqgerr.com^", NULL }; const char *m98adba9d[] = { "botiviga.com^", NULL }; const char *m98adbe8b[] = { "/mod_ad/", NULL }; const char *m98add167[] = { "shjuivapg.bid^", NULL }; @@ -30248,6 +30278,7 @@ const char *ma0e5f68d[] = { "/VisitorIdentification.js", NULL }; const char *ma0e5fb81[] = { "investhash.com^", NULL }; const char *ma0e635e3[] = { "salecycle.com^", NULL }; const char *ma0e6744c[] = { "/showpost-ad-", NULL }; +const char *ma0e77b4e[] = { "wcksovhmd.com^", NULL }; const char *ma0e98133[] = { "camsense.com^", NULL }; const char *ma0e989ad[] = { "healte.de^", NULL }; const char *ma0ea66e3[] = { "/endpoint/stats.", NULL }; @@ -30278,6 +30309,7 @@ const char *ma1040c1b[] = { "mail.biz.rr.com/images/portal/blank.gif", NULL }; const char *ma104821f[] = { "amadagasca.com^", NULL }; const char *ma10668f3[] = { "_Spot-Ad_", NULL }; const char *ma106c858[] = { "/mendelstats.", NULL }; +const char *ma1078f65[] = { "ad.period-calendar.com^", NULL }; const char *ma1081721[] = { "clickter.net^", NULL }; const char *ma109a7de[] = { ".php?adsid=", NULL }; const char *ma109e [] = { "/affbeat/banners/", NULL }; @@ -30312,6 +30344,7 @@ const char *ma13398a0[] = { "vlijpebmjxmlbp.bid^", NULL }; const char *ma13523a6[] = { "ad.leadbolt.net^", NULL }; const char *ma1355250[] = { "roitrack.addlvr.com^", NULL }; const char *ma1356d53[] = { "digits.com^", "^sdk.js", NULL }; +const char *ma1369350[] = { "aacgeuvaoqbw.com^", NULL }; const char *ma1383b8b[] = { "/adfly/", NULL }; const char *ma13b159f[] = { "deadspin.com/sp/", NULL }; const char *ma13be968[] = { "allsp.ch/feeder.php", NULL }; @@ -30658,6 +30691,7 @@ const char *ma2d69809[] = { "brucelead.com^", NULL }; const char *ma2d72697[] = { "vbjvbjertwov.com^", NULL }; const char *ma2d939f [] = { "babylon.com/trans_box/", "&affiliate=", NULL }; const char *ma2da76df[] = { "foodnavigator.com/tracker/", NULL }; +const char *ma2dadec0[] = { "uwqrwgxxkaoydo.com^", NULL }; const char *ma2dcb1a0[] = { "_framed_ad/", NULL }; const char *ma2dce92b[] = { "amazon-cornerstone.com^", NULL }; const char *ma2dd18c1[] = { "vox-cdn.com/campaigns_images/", NULL }; @@ -30904,6 +30938,7 @@ const char *ma3f97db5[] = { "cheezburger-analytics.com^", NULL }; const char *ma3fc3ced[] = { "domainnamesales.com/return_js.php?", NULL }; const char *ma3fc7bc3[] = { "-page-peel/", NULL }; const char *ma3fceed7[] = { "insta-cash.net^", NULL }; +const char *ma3febec9[] = { "jairtejvkqiux.com^", NULL }; const char *ma4006131[] = { "webengage.com^", NULL }; const char *ma4008389[] = { "data.neuroxmedia.com^", NULL }; const char *ma4010646[] = { "fulhudhoo.com^", NULL }; @@ -30916,6 +30951,7 @@ const char *ma4070e6e[] = { "/web/ads/", NULL }; const char *ma40719b8[] = { "ucaster.eu/static/scripts/adscript.js", NULL }; const char *ma4073622[] = { "checkpagerank.net/banners/", NULL }; const char *ma4078cd5[] = { "filmey.com/Filmey.Ad.js", NULL }; +const char *ma4079ba5[] = { "digwzeutydo.com^", NULL }; const char *ma4082c3b[] = { "whoson.com/include.js?", NULL }; const char *ma40a1928[] = { "jkjoxlhkwnxd.com^", NULL }; const char *ma40aca3b[] = { "embed.docstoc.com/Flash.asmx/StoreReffer?", NULL }; @@ -31321,7 +31357,6 @@ const char *ma5dd0d21[] = { "/getvdopiaads.", NULL }; const char *ma5de0b48[] = { "netavenir.com^", NULL }; const char *ma5e2c281[] = { "mediaplex.com^", NULL }; const char *ma5e3cbf5[] = { "/admeld.", NULL }; -const char *ma5e4aa2d[] = { "adspace.ro^", NULL }; const char *ma5e72d34[] = { "chanel.com/js/chanel-tracking.js", NULL }; const char *ma5e86caf[] = { "l3op.info^", NULL }; const char *ma5e889df[] = { "consolpub.com/weatherwindow/", NULL }; @@ -31430,6 +31465,7 @@ const char *ma655939d[] = { "newsday.co.zw^", "^HPTO-1.jpg", NULL }; const char *ma656191f[] = { "/adonly468.", NULL }; const char *ma65793d5[] = { "zizmvnytmdto.com^", NULL }; const char *ma6579ea0[] = { "t-staging.powerreviews.com^", NULL }; +const char *ma657b884[] = { "qbfibmzxaqtfi.com^", NULL }; const char *ma658a905[] = { "/fastclick160.", NULL }; const char *ma658e834[] = { "sapo.", "/clk?u=", NULL }; const char *ma65a5a13[] = { "dynatrace.com^", NULL }; @@ -31664,6 +31700,7 @@ const char *ma789eafd[] = { "/assets/js/ad.", NULL }; const char *ma78a04d0[] = { ".pk/ads/", NULL }; const char *ma78a97d4[] = { "azureedge.net^", "^eventtracking.js", NULL }; const char *ma78b648b[] = { "ads.lesbianpersonals.com^", NULL }; +const char *ma78d9f8f[] = { "spot.im^", "^pixel^", NULL }; const char *ma78e3733[] = { "porkolt.com^", NULL }; const char *ma793ec9 [] = { "divisionid.com^", "^ads.js", NULL }; const char *ma7948250[] = { "ads1.virtual-nights.com^", NULL }; @@ -31846,6 +31883,7 @@ const char *ma87df34a[] = { "tower-colocation.info^", NULL }; const char *ma881e0dc[] = { "evergage.com^", NULL }; const char *ma88540f8[] = { "/468x060.", NULL }; const char *ma88648a0[] = { "fvrvxmksxhut.com^", NULL }; +const char *ma8881cf4[] = { "pxvnhcdzuozqn.com^", NULL }; const char *ma8882303[] = { "/com_joomla-visites/", NULL }; const char *ma889860 [] = { "vk.com/share.php?", NULL }; const char *ma88af8f4[] = { "kiohmgklwi.com^", NULL }; @@ -32202,6 +32240,7 @@ const char *maa2aef0e[] = { "2mdn.net/viewad/", ".jpg", NULL }; const char *maa2c7464[] = { "wkgaqvvwvqjg.com^", NULL }; const char *maa2d1699[] = { "rhfvzboqkjfmabakkxggqdmulrsxmisvuzqijzvysbcgyycwfk.com^", NULL }; const char *maa2d27d5[] = { "nymag.com/partners/", NULL }; +const char *maa2dabee[] = { "theboys.be/nvrbl/", NULL }; const char *maa2e4d98[] = { "_stat_counter.php?", NULL }; const char *maa305e40[] = { "/adimg.", NULL }; const char *maa31448f[] = { "adelement.com^", NULL }; @@ -33879,6 +33918,7 @@ const char *mb1c7ddcb[] = { "adobetag.com^", "^amc.js", NULL }; const char *mb1c83279[] = { "html5player.gamezone.com^", NULL }; const char *mb1ca3ed8[] = { "uefa.com^", "^srp^", NULL }; const char *mb1ceefbf[] = { "counterserver.de^", NULL }; +const char *mb1d1f9ac[] = { "mruxsxrnu.com^", NULL }; const char *mb1d202c6[] = { "/all/ad/", NULL }; const char *mb1d50ba9[] = { "w4statistics.info^", NULL }; const char *mb1d644a6[] = { "/adsky.", NULL }; @@ -35348,6 +35388,7 @@ const char *mb8f56eb5[] = { "epvhmxyqa.bid^", NULL }; const char *mb8f63306[] = { "/adsnew.", NULL }; const char *mb8f65564[] = { "romhustler.net/square.js", NULL }; const char *mb8f6be83[] = { "originalfm.com/images/hotspots/", NULL }; +const char *mb8f6bf53[] = { "/hm.pl?p=", NULL }; const char *mb8f7c5b9[] = { "d3cxv97fi8q177.cloudfront.net^", NULL }; const char *mb8f92b5d[] = { "fxcc.com/promo/", NULL }; const char *mb8f938d0[] = { "ykwdfjergthe.com^", NULL }; @@ -36318,6 +36359,7 @@ const char *mbd764036[] = { "qnfarzjp.bid^", NULL }; const char *mbd764c2d[] = { "impdesk.com/smartpix/", NULL }; const char *mbd792394[] = { "lyifwfhdizcc.com^", NULL }; const char *mbd799488[] = { "evanetpro.com^", NULL }; +const char *mbd79ef33[] = { "qdajmhpwzdmaji.com^", NULL }; const char *mbd7bf492[] = { "opencdb84508.com^", NULL }; const char *mbd7c7c09[] = { "youjizz.com/js/contentlist.js", NULL }; const char *mbd7d0a9e[] = { "thejesperbay.com^", NULL }; @@ -36727,6 +36769,7 @@ const char *mbf65cb88[] = { "songs.pk/ie/ietext.html", NULL }; const char *mbf69408e[] = { "rqgrdrqs.com^", NULL }; const char *mbf6aac58[] = { "s3.amazonaws.com/dmas-public/revcontent/bundle.js", NULL }; const char *mbf6c7aa9[] = { "/ad-logger/", NULL }; +const char *mbf6dc79 [] = { "pjtycinmerhb.com^", NULL }; const char *mbf6e7469[] = { "omnitagjs.com/fo-", "/captcha/", NULL }; const char *mbf6e75cd[] = { "beenetworks.net/traffic", NULL }; const char *mbf6f3810[] = { "_partner_ad.", NULL }; @@ -36740,6 +36783,7 @@ const char *mbf7ab79 [] = { "frtyh.com^", NULL }; const char *mbf7e7f89[] = { "wrtnetixxrmg.com^", NULL }; const char *mbf7f8476[] = { "snapads.com^", NULL }; const char *mbf81465d[] = { "mms.jalopnik.com^", NULL }; +const char *mbf817eb0[] = { "hhiprhclh.com^", NULL }; const char *mbf8220b2[] = { "querylead.com^", NULL }; const char *mbf82d25f[] = { "naij.com^", "^branding^", NULL }; const char *mbf85b01e[] = { "xewzazxkmzpc.com^", NULL }; @@ -36940,6 +36984,7 @@ const char *mc06d4414[] = { "/metriweb/spring.js", NULL }; const char *mc06e0bfd[] = { "zapto.org^", NULL }; const char *mc070018e[] = { "_advertise180.", NULL }; const char *mc0700652[] = { "fudzilla.com^", "^banners^", NULL }; +const char *mc0702d75[] = { "iyqnxpkzfq.com^", NULL }; const char *mc070e676[] = { "-newsletter-ad-", NULL }; const char *mc0735e01[] = { "targetspot.com^", NULL }; const char *mc0752153[] = { "texasstudentmedia.com/advertise/", NULL }; @@ -37174,6 +37219,7 @@ const char *mc18bb301[] = { "mrxvgpzath.bid^", NULL }; const char *mc192a904[] = { "vmebrrdrtmiaan.bid^", NULL }; const char *mc195273a[] = { "208.100.24.244^", NULL }; const char *mc19ac13e[] = { "credio.com/ajax_get_sponsor_listings?", NULL }; +const char *mc19bef86[] = { "nbrokpopimjbw.com^", NULL }; const char *mc19d3a1f[] = { "/imp.ads/", NULL }; const char *mc19d8747[] = { "taplytics.com^", NULL }; const char *mc19dc7ce[] = { "^name^atatracker^", NULL }; @@ -37313,6 +37359,7 @@ const char *mc2341390[] = { "midnightclicking.com^", NULL }; const char *mc23416af[] = { "licantrum.com^", NULL }; const char *mc2366f72[] = { "buxp.org^", NULL }; const char *mc2387c64[] = { ".com/s/at?site", NULL }; +const char *mc238ad1b[] = { "/om.gif?", NULL }; const char *mc239566 [] = { "/adrotator.", NULL }; const char *mc23b44dc[] = { "kqvpjbau.com^", NULL }; const char *mc23c9d1d[] = { "pqpcgykgtyrfdh.bid^", NULL }; @@ -38121,6 +38168,7 @@ const char *mc6333920[] = { "weblist.de^", NULL }; const char *mc6395c08[] = { "/google-adverts-", NULL }; const char *mc63d804c[] = { "188server.com^", NULL }; const char *mc63de63b[] = { "akamaihd.net/preroll", ".mp4?", NULL }; +const char *mc63e1bb6[] = { "dmxoedcqcb.com^", NULL }; const char *mc63e91e0[] = { "silimbompom.com^", NULL }; const char *mc63ef44a[] = { "pushnest.com^", NULL }; const char *mc63f55b2[] = { "afminer.com^", NULL }; @@ -38240,6 +38288,7 @@ const char *mc6c8043 [] = { "romance-net.com^", NULL }; const char *mc6c92cd7[] = { "c3caf79a8df36.party^", NULL }; const char *mc6cbe20f[] = { "qbdgnjwaknl.bid^", NULL }; const char *mc6cd1544[] = { "google.com^tools^feedback^open.js^", "^url^https^^^adwords.google.com^", NULL }; +const char *mc6ced718[] = { "online.miarroba.com^", NULL }; const char *mc6cf0f34[] = { "rwdkcusan.com^", NULL }; const char *mc6cf35a3[] = { ".clkads.", NULL }; const char *mc6d03808[] = { "/ads/index_", NULL }; @@ -38584,7 +38633,6 @@ const char *mc85f252c[] = { "/YahooAd_", NULL }; const char *mc85fb6c0[] = { "jtacrwtaf.com^", NULL }; const char *mc8605bc7[] = { "/ad_horisontal.", NULL }; const char *mc860db1e[] = { "/showadv2.", NULL }; -const char *mc86194cb[] = { "miarroba.com^", NULL }; const char *mc861ebc1[] = { "/ads_yahoo.", NULL }; const char *mc863efd9[] = { "qzxtbsnaebfw.com^", NULL }; const char *mc865fda2[] = { "askandyaboutclothes.com/images/", NULL }; @@ -40026,6 +40074,7 @@ const char *mcf23d219[] = { "definefetish.com/df/js/dpcm.js", NULL }; const char *mcf246279[] = { "ad.domainfactory.de^", NULL }; const char *mcf2515b5[] = { "fielerac.net^", NULL }; const char *mcf25fb4b[] = { "_ad_domain_", NULL }; +const char *mcf2660ed[] = { "hitcounters.miarroba.com^", NULL }; const char *mcf295e11[] = { "/masonad.gif", NULL }; const char *mcf29da9e[] = { "vibraporn.com/vg/", NULL }; const char *mcf2a240e[] = { "/dfp/head/", NULL }; @@ -40529,6 +40578,7 @@ const char *md18f40cf[] = { "/VideoAd/", NULL }; const char *md18f7656[] = { "/ads/rect_", NULL }; const char *md191390 [] = { "portkingric.net^", NULL }; const char *md19144cd[] = { "_680x93_", NULL }; +const char *md1918943[] = { "taljdzwer.com^", NULL }; const char *md1932333[] = { "/media_viewed_tracking.", NULL }; const char *md19338ad[] = { "ectnews.com/shared/missing.gif?", NULL }; const char *md194440a[] = { "nih.gov/medlineplus/images/mplus_en_survey.js", NULL }; @@ -40566,6 +40616,7 @@ const char *md1b45fdb[] = { "/traffic_link_client.php?", NULL }; const char *md1b4ee1c[] = { "stripedcollar.net^", NULL }; const char *md1b79f7e[] = { "=display_ad&", NULL }; const char *md1b8e748[] = { "hegrinhar.com^", NULL }; +const char *md1b9df3e[] = { "qtvnesozf.com^", NULL }; const char *md1ba63 [] = { "banners.amigos.com^", NULL }; const char *md1bb6b5c[] = { "cubeecraft.com/openx/", NULL }; const char *md1bd180d[] = { "freetrafficsystem.com/fts/ban/", NULL }; @@ -41668,6 +41719,7 @@ const char *md7035f83[] = { "/cdn-cgi/pe/bag2?r", ".zergnet.com", NULL }; const char *md7040431[] = { "adsrv.eacdn.com^", NULL }; const char *md706cd6f[] = { "clnk.me^", NULL }; const char *md707f8b7[] = { "adserver.spankaway.com^", NULL }; +const char *md7082216[] = { "niaqaltky.com^", NULL }; const char *md70938f0[] = { "/Ads-bdl?", NULL }; const char *md70fd617[] = { "vodconcepts.com^", "^banners^", NULL }; const char *md7125827[] = { "ttgtmedia.com/Marketing/", NULL }; @@ -43257,6 +43309,7 @@ const char *mde6d9d1d[] = { "78.140.131.214^", NULL }; const char *mde6e8287[] = { "affiliates-cdn.mozilla.org^", NULL }; const char *mde6fd908[] = { "zpwqekgztngd.bid^", NULL }; const char *mde6feda4[] = { "proxysolutions.net/affiliates/", NULL }; +const char *mde70336e[] = { "gzxjfkhwvhwfzr.com^", NULL }; const char *mde713114[] = { "idg.com.au/files/skins/", NULL }; const char *mde74946b[] = { "v.movad.de^", NULL }; const char *mde74bf8a[] = { "1clickdownloads.com^", NULL }; @@ -44724,6 +44777,7 @@ const char *me5868f8c[] = { "marketing.nyi.net^", NULL }; const char *me586e08 [] = { "manta.com/sbb?", NULL }; const char *me5871c1a[] = { "hitiz.com^", NULL }; const char *me5872d6c[] = { "shiveringsail.com^", NULL }; +const char *me588d0c8[] = { "vsvdwpuomwjhd.com^", NULL }; const char *me58a8168[] = { "/get.ad?", NULL }; const char *me58d0378[] = { "/bottom_ads.", NULL }; const char *me58d456a[] = { "tickco.com/track.js", NULL }; @@ -44821,6 +44875,7 @@ const char *me60742aa[] = { "/ga_dpc_youtube.", NULL }; const char *me60b69b2[] = { "193.197.158.209^", NULL }; const char *me60b71d9[] = { "fleshlightcash.com^", NULL }; const char *me60fb6c9[] = { "cdn.mobicow.com^", NULL }; +const char *me6119d8a[] = { "rule34.xxx/bf/", NULL }; const char *me613de42[] = { "/iframeadsensewrapper.", NULL }; const char *me61c9142[] = { "chicbuy.info^", NULL }; const char *me61cdbae[] = { "/stats/mark?", NULL }; @@ -44922,6 +44977,7 @@ const char *me685abc3[] = { "&admid=", NULL }; const char *me685c7c0[] = { "/v5.3nse.", NULL }; const char *me688e036[] = { "dy48bnzanqw0v.cloudfront.net^", NULL }; const char *me6891a85[] = { "isubdom.com^", NULL }; +const char *me68931d1[] = { "jdmconkw.com^", NULL }; const char *me68a4455[] = { "officeworks.com.au^", "^site-tracker.js", NULL }; const char *me68a915e[] = { "blingbucks.com^", NULL }; const char *me68c7b05[] = { "motorcycles-motorbikes.com/pictures/sponsors/", NULL }; @@ -46971,6 +47027,7 @@ const char *mf04f93c9[] = { "ikmmsoihdmfkbh.bid^", NULL }; const char *mf050d2d5[] = { "regnow.img.digitalriver.com/vendor/37587/ud_box", NULL }; const char *mf052a571[] = { "/rightbanner/", NULL }; const char *mf05534ea[] = { "fmbjxqvkjfmj.com^", NULL }; +const char *mf05644b [] = { "poxwphidbuedh.com^", NULL }; const char *mf0593494[] = { "adsensecamp.com^", NULL }; const char *mf05e916d[] = { "ads.aceweb.net^", NULL }; const char *mf061c5e1[] = { "/easyadstrack.", NULL }; @@ -46992,6 +47049,7 @@ const char *mf0733d23[] = { "aid-ad.jp^", NULL }; const char *mf073d5f0[] = { "money-cpm.fr^", NULL }; const char *mf0741e3c[] = { "/ads/yahoo/", NULL }; const char *mf0746a2e[] = { "bigtracker.com^", NULL }; +const char *mf07720bc[] = { "omniconvert.com^", NULL }; const char *mf0772439[] = { "theweatherspace.com^", "^advertisement.js", NULL }; const char *mf0775524[] = { "f5b44da3a1ab55.com^", NULL }; const char *mf0777786[] = { "/sl.gif?1=", NULL }; @@ -47664,7 +47722,6 @@ const char *mf3c595a1[] = { "/ad_footer.", NULL }; const char *mf3c7704e[] = { "rvtlife.com^", NULL }; const char *mf3ca3137[] = { "/owa.Analytics.", NULL }; const char *mf3cb4236[] = { "/xtrack.php?", NULL }; -const char *mf3cbd41f[] = { "clickiocdn.com^", NULL }; const char *mf3cc941a[] = { "phncdn.com/www-static/js/header-menu.js?", NULL }; const char *mf3ce19c7[] = { "adstest.zaman.com.tr^", NULL }; const char *mf3ce2db2[] = { "/timeslog.", NULL }; @@ -48534,6 +48591,7 @@ const char *mf7f2ba67[] = { "statm.the-adult-company.com^", NULL }; const char *mf7f2c494[] = { "t.devnet.com^", NULL }; const char *mf7f2ccec[] = { "mxsads.com^", NULL }; const char *mf7f69d18[] = { "xq1.net^", NULL }; +const char *mf7f747c9[] = { "qbalehgc.com^", NULL }; const char *mf7f74a56[] = { "top.elec.ru^", NULL }; const char *mf7fe964c[] = { "putrr10.com^", NULL }; const char *mf7fec1f1[] = { "tracer.perezhilton.com^", NULL }; @@ -49177,6 +49235,7 @@ const char *mfae96bf0[] = { "rxisfwvggzot.com^", NULL }; const char *mfaea8914[] = { "ads.scifi.com^", NULL }; const char *mfaebd126[] = { "youinsure.co.za/frame/", NULL }; const char *mfaed0835[] = { "sdvgglhp.bid^", NULL }; +const char *mfaee8d29[] = { "ptrqrnadg.com^", NULL }; const char *mfaf19833[] = { "kompas.com^", "^supersized.", ".min_ads.js^", NULL }; const char *mfaf1b811[] = { "optimizeadvert.biz^", NULL }; const char *mfaf3f6a2[] = { "pixhost.to/plupload/i18n/en.js?", NULL }; @@ -50079,6 +50138,7 @@ const char *mff34bf46[] = { "phncdn.com/js/nextBtn/", NULL }; const char *mff35536 [] = { "cadulscdfhtcb.bid^", NULL }; const char *mff35558d[] = { "/cdn-cgi/pe/bag2?r", "popads.net", NULL }; const char *mff35defd[] = { "grxpaizsvdzw.com^", NULL }; +const char *mff36f641[] = { "esgvhaspsjg.com^", NULL }; const char *mff3744fc[] = { "dcdn.lt/b/", NULL }; const char *mff3814e1[] = { "0a2e1434439ed3a7a2.com^", NULL }; const char *mff383802[] = { "/quantserve.com/", NULL }; @@ -50187,6 +50247,7 @@ const char *mffb339d7[] = { "boom.ro^", NULL }; const char *mffb57cd8[] = { "ranklink.de^", NULL }; const char *mffb7a7cc[] = { "/ads/inner_", NULL }; const char *mffb80ae4[] = { "/housead/", NULL }; +const char *mffb8d5c9[] = { "ykaakgddajbt.com^", NULL }; const char *mffbb5095[] = { "kxwkbkfespyh.com^", NULL }; const char *mffbbd07c[] = { "c.mgid.com^", NULL }; const char *mffbc088 [] = { "/ad728f.", NULL }; @@ -50488,6 +50549,7 @@ const char *d2dddef3e[] = { "backin.net", NULL }; const char *d2de0c68 [] = { "fillinn.com", NULL }; const char *d2de42e01[] = { "www.msn.com", NULL }; const char *d2dea7e0b[] = { "vroniplag.wikia.com", NULL }; +const char *d2e34ec98[] = { "olx.ua", NULL }; const char *d2e4f1377[] = { "breitbart.com", NULL }; const char *d2e77974f[] = { "tntdrama.com", NULL }; const char *d2eb06044[] = { "streamwoop.tv", NULL }; @@ -61516,7 +61578,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mdd31a147, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1d932c5c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mdc1faec6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, - {mf3cbd41f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md78faf9b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4f9ab6fa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8b78cdaa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66046,6 +66107,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mc7648b10, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4c0c7163, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcb391da2, ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma1369350, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf3732fa4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf1a697e5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m99c89545, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66291,6 +66353,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m5268ed21, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m34e34a75, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m76c978bb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m38ac7b16, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbe9fe622, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m569a54c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m17669d5c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66555,6 +66618,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m34c4e283, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mad60c507, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m906232f6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m729d836c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9e6e1b7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m301770b5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mff35536, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66631,6 +66695,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m774c476a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7a0ba061, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m719d72ce, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m654dd254, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m907ac7fd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m93246300, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfb641aff, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66884,6 +66949,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {me3aa283a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfbfeef77, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma9df595a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma4079ba5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m22973f0c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7db47289, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7befcba8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66909,6 +66975,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m218c2ac2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m21030afd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4724f13a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m931a6179, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m33cd2a0d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma8c776de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma59843af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -66925,6 +66992,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m1c3dc4d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma2794991, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5ffa7c7c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mc63e1bb6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbf74eabb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m818f026, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb4259c68, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67110,6 +67178,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m37812684, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb4af290e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me67562e8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m593a1f8e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb8e257dd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m483ce235, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcf4f21bd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67205,6 +67274,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mfa3fd038, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m41f0a044, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1d1f5706, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mff36f641, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4c6ba0f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m71dbe360, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9ad6a79c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67391,6 +67461,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m1cee7ac6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4d0dc15b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m938f9c52, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m68e73424, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m42cd4976, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9eea3ce2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8d54e497, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67398,6 +67469,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf05534ea, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1a84dae4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6ae455ad, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m73885cec, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb97b674f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcd74163a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m45ce2f34, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67511,6 +67583,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m15180f9d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1c521b2b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc1a5bc4e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m807211e6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me86c0dc9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2f40fd08, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4f148225, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67537,6 +67610,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf8446af2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3ccd5998, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2f3ab58d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m91f5f3b2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb79897b8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m543f8bb6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf0c8116c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67596,6 +67670,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m20014d72, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md21ecdb3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m201dc14d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m1c465bb6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5ef74d76, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3402bf98, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me08d87c0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67793,6 +67868,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {me519161b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8409318, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md2d739e4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mde70336e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc0bcd5c0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {meb6139c7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf567792e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -67865,6 +67941,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m5f64c392, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {maf26c86b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m22188a5d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mbf817eb0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb94b80e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3c0d176f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mce4cd110, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68286,6 +68363,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m236b4a85, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mca041f81, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma1621707, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mc0702d75, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m36bfd881, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m516d4ec4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc7bb2241, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68304,6 +68382,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m28ebb826, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc22d5c60, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m59edc63e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma3febec9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2def7530, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md7dc73b0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6fac6b06, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68341,6 +68420,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m6a97f7df, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8b5518df, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5e78e7e7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {me68931d1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m989f8b82, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcddcedd2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md9b904de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68414,6 +68494,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {maa396631, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m113f84f1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mdd9e4a4f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m2453ed6c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbb7f7048, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mafd60fe4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m593a18f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68460,6 +68541,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m6ecad744, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8e714f3f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m267e54ac, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m418fd0ea, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb99fe5fb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6c64cdf1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m83c121ea, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68650,6 +68732,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m66a44255, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m10304fa5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4f3c6e31, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m4ab04317, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m279207f2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbb3436c9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m963264c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -68844,6 +68927,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m8029bb10, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2bcf2028, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me3584287, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m98aa207a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m32857d0f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma06d2e1b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfc15b597, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69198,6 +69282,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m4b4966e4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m90d45331, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m45b9ec8b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m6c8b306e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma7aa7d0a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbfde4488, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m44fe24ae, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69305,6 +69390,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {med3946df, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma541c1d3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfb58c809, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mb1d1f9ac, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2c62e013, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc18bb301, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb9b9fa9a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69398,6 +69484,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m6cb0580c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me52cc276, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6310b6f8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mc19bef86, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mac1c215a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7ce7a049, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf57e963d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69453,6 +69540,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {md549e6ba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {meec4b0c7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1e4eeb92, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {md7082216, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m74a23596, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me52b6f27, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf648b3d4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69614,6 +69702,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m16612e62, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me18a4b95, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m639ecd0a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m602f5bbd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7283fefb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf4f3e86a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m553a97de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69697,6 +69786,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m79aaf7fe, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb1664e49, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m543b80ea, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m73c05f0d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2d0e8478, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me5126817, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m23073e3c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69941,6 +70031,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m4398b429, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m881f8a21, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb13814e1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mbf6dc79, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1aa43756, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m89280910, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3d36b779, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -69997,6 +70088,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {ma23e9113, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8c2510bf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8263d94a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mf05644b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m56b04d13, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m93bf2fca, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m74c52cbf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70052,6 +70144,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf38ebdee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf0d34b2a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1cdf3adc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mfaee8d29, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4fa8b490, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m29f0569c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6961513b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70090,6 +70183,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m3a8cd1a8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf2e59993, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m68d2aaca, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma8881cf4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb5c0e63f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb91ba80a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m124ab46, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70116,7 +70210,9 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m36cd90d4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me8a48c02, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m66b50ee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mf7f747c9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc6cbe20f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma657b884, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m62283dc0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3a5757b7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m60166096, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70135,6 +70231,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mcfff7609, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m97ce95de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1ef8e98d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mbd79ef33, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m99680541, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m51c2d93c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {madd8a335, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70180,6 +70277,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m44de4649, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m69c8c8ef, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m16d719a0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m45ba8074, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb2f20709, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {maf1a1548, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc777a23, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70296,6 +70394,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m352fdb08, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mce64ceee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m280a4562, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {md1b9df3e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me17a97dc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8269767a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9fbc78d5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70445,6 +70544,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m5d6ddbd9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m10f55cbc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3579efa1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m1f05d2af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m740223ba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me64fd5c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m28ce4f92, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70698,6 +70798,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf94bb745, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1d2fe561, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m45a9e9d0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m88928eb4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf4180387, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6b6cced, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m43d93297, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70829,6 +70930,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m897e4fe7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m30b001f5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m43ba0b2e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {md1918943, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc68b9013, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mea69b43e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcbc8f0c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -70958,6 +71060,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {ma8bc9a29, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2374cca2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m76215f97, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m386ce860, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m30ae8723, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mb2a8d36a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m95fd116b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71286,6 +71389,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m69d2128b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcb73d805, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc607697e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma2dadec0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9ef996eb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m29e7d81b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md9d4cfa6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71315,6 +71419,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m9067f1c5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7a0a4f00, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6fe699b6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m5c6e2939, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1c3a74a4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m38bf1102, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me56bb87a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71530,6 +71635,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mfea53897, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfc131cc3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m517f5db0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {me588d0c8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1315e386, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2ab5e0d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc6fc8f5a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71631,6 +71737,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m7ebd93f6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2a731ae5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me1ea61c2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {ma0e77b4e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m3a51a0a0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mcd4ae2a4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m646564f9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71806,6 +71913,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf8f4bbac, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf46184b4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mbc1316f7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m309f6178, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5f4ef764, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5afc68fd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me1f9b20d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71884,6 +71992,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m96fd3ba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m53123342, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m58463783, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m9224a012, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2bd72bc7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma17c4ff6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {ma9286575, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -71926,6 +72035,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {md30ea27e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m27ea2a84, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6c787078, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m45f72af0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m8e3a4ba0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m2f4de939, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m9801655a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -72180,6 +72290,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m5aeaaaf0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m99592ccd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m679f1d3a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mffb8d5c9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me288b43f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6b9026e0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m7a6b19a8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -80892,9 +81003,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mbc10cf44, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m8d5792f8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, {m44e8fe41, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, - {m82c344cc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, {m2e433dc3, ADBLOCK_FLAG_MATCH_DOMAIN, d45c72baf, NULL }, - {m87d48a40, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m29d76bfd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, {mc1a8d6ec, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m46707150, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -81424,7 +81533,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {ma9b66181, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, db94bccb1, NULL }, {m34ceab24, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d5038c71a, NULL }, {m905f762e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d5038c71a, NULL }, - {m474635aa, ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, {me7aed79f, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m2db15b3, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {mcce05e89, ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, @@ -82573,7 +82681,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mb49d3ea7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m51312a7c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m13e2bbae, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, - {m68c08b2f, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m133629d9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m1390eebf, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m180ccb93, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, @@ -82766,6 +82873,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mba3d6feb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mce8cb3ec, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m42c924d6, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, + {me6119d8a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m24bcaf5b, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m90f6e8b9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d38516403, NULL }, {mb0cfaaa1, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, @@ -82858,6 +82966,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m34228be7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m66029a31, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m86a248e8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {maa2dabee, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m8827cbf2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d45c72baf, NULL }, {mad7cfda4, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {mb95468a5, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, @@ -86460,6 +86569,10 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mfff15400, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d73af20e0, NULL }, {m8ddcc6d7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mfc23311b, ADBLOCK_FLAG_MATCH_DOMAIN, da8c5ded1, NULL }, + {m79aaba7d, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, + {m2833934b, 0, NULL, NULL }, + {m5e9ccfa9, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, + {m842347d6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, {m480a1f0f, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, {mbdfd5ddc, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, {mb82b6e67, 0, NULL, NULL }, @@ -87464,6 +87577,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m384cc719, 0, NULL, NULL }, {m32d9051, 0, NULL, NULL }, {m3483437b, 0, NULL, NULL }, + {m1d71857d, 0, NULL, NULL }, {md96f23c8, 0, NULL, NULL }, {m12ae3418, 0, NULL, NULL }, {m5f29b874, 0, NULL, NULL }, @@ -88060,6 +88174,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m612b00e0, 0, NULL, NULL }, {m67a5ce8a, 0, NULL, NULL }, {mb55e3786, 0, NULL, NULL }, + {mb8f6bf53, 0, NULL, NULL }, {m1c483ff6, 0, NULL, NULL }, {m243787ed, 0, NULL, NULL }, {m8df1703d, 0, NULL, NULL }, @@ -88629,6 +88744,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m8dbeae7, 0, NULL, NULL }, {m460d548c, 0, NULL, NULL }, {m799108a, 0, NULL, NULL }, + {mc238ad1b, 0, NULL, NULL }, {mb179b7ed, 0, NULL, NULL }, {mecf1c63d, 0, NULL, NULL }, {m2cbe050a, 0, NULL, NULL }, @@ -88808,6 +88924,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {md45bfd91, 0, NULL, NULL }, {m5ee13fa5, 0, NULL, NULL }, {m666f7539, 0, NULL, NULL }, + {m8ddfc4b3, 0, NULL, NULL }, {m88e1d9cc, 0, NULL, NULL }, {m80bebcec, 0, NULL, NULL }, {m5df096cf, 0, NULL, NULL }, @@ -89834,6 +89951,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m1895f581, 0, NULL, NULL }, {m1c69b81a, 0, NULL, NULL }, {m9bd9f1e6, 0, NULL, NULL }, + {m392203a5, 0, NULL, NULL }, {mf6f32a77, 0, NULL, NULL }, {m3af5d41a, 0, NULL, NULL }, {me685c7c0, 0, NULL, NULL }, @@ -91752,6 +91870,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m98023858, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mc96b3aa9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m1d78f616, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m55137afb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md91e3388, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {md6da9dfa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m4a52444a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -91781,6 +91900,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m11fda237, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m96c0bef9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me8319082, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {mf07720bc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m6ece5355, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mf40004af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m37cec372, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -92476,6 +92596,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mb9b9fe8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m465ab3de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m11eb43c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, + {m96353ed, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {me91c3af2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {mde6a74cc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, {m5e5ad0ed, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL }, @@ -95350,6 +95471,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m963766bf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md77faf47, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m76fcdca6, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, + {ma78d9f8f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mf3bcd902, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m6cbb49e4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, d93f89464, NULL }, {md2de2ec5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -96463,7 +96585,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mc0684f54, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m31cb92c4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m72a02793, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m8c2f4535, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m922c0dfe, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mb55c7c0a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m1c97fbeb, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, @@ -99864,6 +99985,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {ma7347754, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, {m6747fa1c, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d58555e61, NULL }, {m30b31541, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, + {m35dff821, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL }, {m433b0cbf, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, d1e963058, NULL }, {mdcf86c05, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, d1e963058, NULL }, {m678773aa, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL }, @@ -100653,6 +100775,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m725a0dc, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d61c53140, NULL }, {m9609a6b8, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, ddaf436d1, NULL }, {m86928ea, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {m76b9bf6c, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, d2e34ec98, NULL }, {md42cc193, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d638d049c, NULL }, {m29ac39c9, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d638d049c, NULL }, {mbc1b0a1d, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL }, @@ -100783,6 +100906,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mb21e89ba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md8f0b0d0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mf08ad0e3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {ma1078f65, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mccb3dd71, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m549d4785, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma92958ac, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -100901,6 +101025,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m814df03c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mae195548, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m84055122, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {m4883c138, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m1fdcc0c8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m5d4acb8a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m9798cd7c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101172,6 +101297,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m8cfe440a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m9274dc55, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md78d2e16, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {m25480cd7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m6be9455b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m54a85655, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mdbb9b5a0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101419,7 +101545,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {ma908c94c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m6320308d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mdc080438, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {ma5e4aa2d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {me6a81c12, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md1f4e382, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m94ba2a47, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101817,7 +101942,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m2d497f4d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mbd3067c5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m816dbc31, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m1e490054, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m96f0ccba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m7b6b5507, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m71cefa36, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101869,7 +101993,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mc08bc758, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m3fbe8e04, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m22336ee2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m4f28cd7a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m5a3d93f1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m1782ed7d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m2c5e6db3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101895,6 +102018,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mc15c2aa2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m8727892c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m89bff739, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {m8c2f4535, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m4849c6ee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m88ccddd1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mc1d60aab, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -101963,7 +102087,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m3a243326, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m9c3478b4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma45a40c6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m2c403619, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mb283b5d0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m3eebebce, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mafcec65, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102173,7 +102296,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m89180e26, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mf85266a9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m71b45952, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {mc417bb82, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mccb4a4a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m79cf95e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m3b3918c6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102184,7 +102306,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m9f3b4f7e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m1b6c5a87, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m64b9a42, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {mcd281533, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mf8a0d953, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m1eb48db6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {maa7a0b76, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102209,6 +102330,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mb109066c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mea69bbbb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mbc058492, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {mcf2660ed, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m35e4b9d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {me5871c1a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma2be8a7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102329,7 +102451,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m42b8213c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m7cfb62af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m70c2ac4f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m4ba41a5c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m8d6ddc69, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m655eecc5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mc9afae82, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102457,7 +102578,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m9fb07bee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma5a9ccd7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mc95e54c9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {mc86194cb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mdc8c5393, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m919688d6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mc2341390, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102580,6 +102700,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mf4663e66, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m68f8eb14, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m5b37f3bd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {mc6ced718, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md6f98b74, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m8b9983e9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m2da27529, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102671,6 +102792,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m92feba0c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma04ae649, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mad1d484e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, + {ma2ef61d9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md4550838, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m7641e165, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m86c29e06, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -102888,7 +103010,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mc13efb70, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mba06f0dc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m56092849, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m77aea52a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m8f68f388, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md03ac309, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m7a48b25e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -103100,7 +103221,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {mbf5bbf75, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m5d19198e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {ma700542f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m7cc23227, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m412d2d1d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {md441d727, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {madc2dd98, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, @@ -103254,7 +103374,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = { {m95659dcc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mf7475aa7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mbf4876df, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, - {m4e39ef4d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mcb5fb0c8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {m88a97659, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, {mfddb24ab, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL }, diff --git a/patches/BRM017_Disable-Omaha-update-checks.patch b/patches/BRM017_Disable-Omaha-update-checks.patch deleted file mode 100644 index 4c2d5feb..00000000 --- a/patches/BRM017_Disable-Omaha-update-checks.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 26 Nov 2017 23:11:56 +0100 -Subject: Disable Omaha update checks - ---- - .../android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java -@@ -132,7 +132,7 @@ public class OmahaBase { - - /** See {@link #sIsDisabled}. */ - static boolean isDisabled() { -- return sIsDisabled; -+ return true; - } - - /** --- -2.7.4 - diff --git a/patches/BRM018_Add-DuckDuckGo-search-engine.patch b/patches/BRM018_Add-DuckDuckGo-search-engine.patch deleted file mode 100644 index 10d3e3fd..00000000 --- a/patches/BRM018_Add-DuckDuckGo-search-engine.patch +++ /dev/null @@ -1,715 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Thu, 12 Oct 2017 11:06:18 +0200 -Subject: Add DuckDuckGo search engine - ---- - .../search_engines/prepopulated_engines.json | 19 ++ - components/search_engines/search_engine_type.h | 2 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 130 insertions(+), 109 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -38,6 +38,25 @@ - // The following engines are included in country lists and are added to the - // list of search engines on the first run depending on user's country. - "elements": { -+ "duckduckgo": { -+ "name": "DuckDuckGo", -+ "keyword": "duckduckgo.com", -+ "favicon_url": "https://duckduckgo.com/favicon.ico", -+ "search_url": "https://duckduckgo.com/?q={searchTerms}", -+ "suggest_url": "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list", -+ "type": "SEARCH_ENGINE_DUCKDUCKGO", -+ "id": 11 -+ }, -+ -+ "duckduckgo_light": { -+ "name": "DuckDuckGo Light", -+ "keyword": "duckduckgo.com/lite", -+ "favicon_url": "https://duckduckgo.com/favicon.ico", -+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}", -+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT", -+ "id": 12 -+ }, -+ - "aol": { - "name": "AOL", - "keyword": "aol.com", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -63,6 +63,8 @@ enum SearchEngineType { - SEARCH_ENGINE_YANDEX, - SEARCH_ENGINE_ZOZNAM, - SEARCH_ENGINE_360, -+ SEARCH_ENGINE_DUCKDUCKGO, -+ SEARCH_ENGINE_DUCKDUCKGOLIGHT, - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; - -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -51,548 +51,548 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &google, &bing, &yahoo_ar, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, - }; - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &google, &bing, &yahoo_at, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, - }; - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &google, &bing, &yahoo_au, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, - }; - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &google, &bing, &yahoo, &yahoo_fr, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, - }; - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &google, &bing, &ask, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &google, &yahoo_my, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &google, &ask_br, &bing, &yahoo_br, -+ &google, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, - }; - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &google, &yandex_by, &mail_ru, -+ &google, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, - }; - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &google, &bing, &ask, &yahoo_ca, &yahoo_qc, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &google, &bing, &yahoo_ch, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, - }; - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &google, &bing, &yahoo_cl, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, - }; - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &google, &baidu, &sogou, &so_360, -+ &google, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &google, &bing, &yahoo_co, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, - }; - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &google, &seznam, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &seznam, &bing, - }; - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &google, &bing, &yahoo_de, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &google, &bing, &yahoo_dk, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, - }; - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &google, &bing, &yahoo_es, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, - }; - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &google, &bing, &ask, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &google, &bing, &yahoo_fi, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, - }; - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &google, &bing, &yahoo_fr, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &google, &bing, &yahoo_uk, &ask_uk, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, - }; - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &google, &bing, &yahoo_gr, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, - }; - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &google, &yahoo_hk, &baidu, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, - }; - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &google, &yahoo_id, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, - }; - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &google, &bing, &yahoo_uk, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, - }; - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &google, &bing, &yahoo_in, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, - }; - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &google, &virgilio, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &virgilio, &bing, - }; - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &google, &yahoo_jp, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, - }; - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &google, &naver, &daum, -+ &google, &duckduckgo, &duckduckgo_light, &naver, &daum, - }; - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &google, &mail_ru, &yandex_kz, -+ &google, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, - }; - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &google, &bing, &yahoo_de, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &google, &bing, &yandex_ru, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, - }; - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &google, &bing, &yahoo_fr, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &google, &yandex_ru, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, - }; - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &google, &yahoo_fr, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, - }; - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &google, &bing, &yahoo_mx, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, - }; - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &google, &yahoo_my, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &google, &yahoo_nl, &vinden, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, - }; - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &google, &bing, &kvasir, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &kvasir, - }; - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &google, &bing, &yahoo_nz, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, - }; - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &google, &bing, &yahoo_pe, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, - }; - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &google, &yahoo_ph, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, - }; - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &google, &onet, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &onet, &bing, - }; - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &google, &yahoo_ro, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, - }; - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Russia - const PrepopulatedEngine* const engines_RU[] = { -- &google, &yandex_ru, &mail_ru, -+ &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &google, &yahoo_maktoob, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &google, &bing, &yahoo_se, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, - }; - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &google, &yahoo_sg, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, - }; - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &google, &najdi, &ask, -+ &google, &duckduckgo, &duckduckgo_light, &najdi, &ask, - }; - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &google, &yahoo_th, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, - }; - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &google, &bing, &yahoo_tr, &yandex_tr, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, - }; - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &google, &yahoo_tw, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, - }; - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &google, &yahoo, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &google, &yandex_ua, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, - }; - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &google, &bing, &yahoo, &aol, &ask, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, - }; - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &google, &bing, &yahoo_ve, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, - }; - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &google, &yahoo_vn, &bing, -+ &google, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, - }; - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &google, &bing, &yahoo_maktoob, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &google, &bing, &yahoo, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &google, &bing, &yahoo, &ask, -+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, - }; - - // A list of all the engines that we know about. - const PrepopulatedEngine* const kAllEngines[] = { - // Prepopulated engines: -- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &kvasir, -+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &duckduckgo, &duckduckgo_light, &kvasir, - &mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio, - &yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch, - &yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr, --- -2.7.4 - diff --git a/patches/BRM019_Add-StartPage-search-engine.patch b/patches/BRM019_Add-StartPage-search-engine.patch deleted file mode 100644 index 4c5f53b4..00000000 --- a/patches/BRM019_Add-StartPage-search-engine.patch +++ /dev/null @@ -1,714 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:24:05 +0200 -Subject: Add StartPage search engine - ---- - .../search_engines/prepopulated_engines.json | 12 +- - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 121 insertions(+), 110 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -32,7 +32,7 @@ - - // Increment this if you change the data in ways that mean users with - // existing data should get a new version. -- "kCurrentDataVersion": 100 -+ "kCurrentDataVersion": 101 - }, - - // The following engines are included in country lists and are added to the -@@ -232,6 +232,16 @@ - "id": 56 - }, - -+ "startpage": { -+ "name": "StartPage", -+ "keyword": "startpage.com", -+ "favicon_url": "https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png", -+ "search_url": "https://www.startpage.com/do/dsearch?query={searchTerms}&cat=web&pl=opensearch", -+ "suggest_url": "https://www.startpage.com/cgi-bin/csuggest?query={searchTerms}&limit=10&format=json", -+ "type": "SEARCH_ENGINE_STARTPAGE", -+ "id": 33 -+ }, -+ - "vinden": { - "name": "Vinden.nl", - "keyword": "vinden.nl", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -65,6 +65,7 @@ enum SearchEngineType { - SEARCH_ENGINE_360, - SEARCH_ENGINE_DUCKDUCKGO, - SEARCH_ENGINE_DUCKDUCKGOLIGHT, -+ SEARCH_ENGINE_STARTPAGE, - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; - -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -51,548 +51,548 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, - }; - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, - }; - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, - }; - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, - }; - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &google, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, - }; - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &google, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, - }; - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, - }; - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, - }; - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &google, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, - }; - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &seznam, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing, - }; - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, - }; - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, - }; - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, - }; - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, - }; - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, - }; - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, - }; - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, - }; - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, - }; - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, - }; - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &google, &duckduckgo, &duckduckgo_light, &virgilio, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing, - }; - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, - }; - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &google, &duckduckgo, &duckduckgo_light, &naver, &daum, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum, - }; - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, - }; - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, - }; - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, - }; - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, - }; - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, - }; - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, - }; - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &kvasir, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir, - }; - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, - }; - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, - }; - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, - }; - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &google, &duckduckgo, &duckduckgo_light, &onet, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing, - }; - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, - }; - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Russia - const PrepopulatedEngine* const engines_RU[] = { -- &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, - }; - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, - }; - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &google, &duckduckgo, &duckduckgo_light, &najdi, &ask, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask, - }; - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, - }; - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, - }; - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, - }; - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &google, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, - }; - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, - }; - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, - }; - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &google, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, - }; - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, -+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, - }; - - // A list of all the engines that we know about. - const PrepopulatedEngine* const kAllEngines[] = { - // Prepopulated engines: -- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &duckduckgo, &duckduckgo_light, &kvasir, -+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir, - &mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio, - &yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch, - &yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr, --- -2.7.4 - diff --git a/patches/BRM020_Added-Google-English-only-engine.patch b/patches/BRM020_Added-Google-English-only-engine.patch deleted file mode 100644 index 77b6fcb0..00000000 --- a/patches/BRM020_Added-Google-English-only-engine.patch +++ /dev/null @@ -1,727 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 11 Dec 2017 22:42:11 +0100 -Subject: Added Google English-only engine - -Add a Google search engine that forces languages to English, -disable from all its searches RLZ and field experiments querystring parameters. ---- - .../search_engines/prepopulated_engines.json | 23 ++- - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 132 insertions(+), 110 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -32,7 +32,7 @@ - - // Increment this if you change the data in ways that mean users with - // existing data should get a new version. -- "kCurrentDataVersion": 101 -+ "kCurrentDataVersion": 102 - }, - - // The following engines are included in country lists and are added to the -@@ -154,6 +154,27 @@ - "id": 1 - }, - -+ "googleen": { -+ "name": "GoogleEN", -+ "keyword": "google.co.uk", -+ "favicon_url": "https://www.google.com/favicon.ico", -+ "search_url": "{google:baseURL}search?q={searchTerms}&{google:originalQueryForSuggestion}{google:iOSSearchLanguage}{google:searchClient}{google:contextualSearchVersion}ie={inputEncoding}&hl=en", -+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:pageClassification}{google:searchVersion}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}&hl=en", -+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en", -+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}", -+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en", -+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}", -+ "alternate_urls": [ -+ "{google:baseURL}?hl=en#q={searchTerms}", -+ "{google:baseURL}search?hl=en#q={searchTerms}", -+ "{google:baseURL}webhp?hl=en#q={searchTerms}", -+ "{google:baseURL}s?hl=en#q={searchTerms}", -+ "{google:baseURL}s?hl=en&q={searchTerms}" -+ ], -+ "type": "SEARCH_ENGINE_GOOGLE_EN", -+ "id": 13 -+ }, -+ - "kvasir": { - "name": "Kvasir", - "keyword": "kvasir.no", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -66,6 +66,7 @@ enum SearchEngineType { - SEARCH_ENGINE_DUCKDUCKGO, - SEARCH_ENGINE_DUCKDUCKGOLIGHT, - SEARCH_ENGINE_STARTPAGE, -+ SEARCH_ENGINE_GOOGLE_EN, - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; - -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -51,548 +51,548 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, - }; - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, - }; - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, - }; - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, - }; - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, - }; - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, - }; - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, - }; - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, - }; - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, - }; - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing, - }; - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, - }; - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, - }; - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, - }; - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, - }; - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, - }; - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, - }; - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, - }; - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, - }; - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, - }; - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing, - }; - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, - }; - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum, - }; - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, - }; - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, - }; - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, - }; - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, - }; - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, - }; - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, - }; - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir, - }; - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, - }; - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, - }; - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, - }; - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing, - }; - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, - }; - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Russia - const PrepopulatedEngine* const engines_RU[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, - }; - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, - }; - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask, - }; - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, - }; - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, - }; - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, - }; - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, - }; - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, - }; - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, - }; - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, - }; - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, -+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, - }; - - // A list of all the engines that we know about. - const PrepopulatedEngine* const kAllEngines[] = { - // Prepopulated engines: -- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir, -+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir, - &mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio, - &yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch, - &yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr, --- -2.7.4 - diff --git a/patches/BRM021_Add-Qwant-search-engine.patch b/patches/BRM021_Add-Qwant-search-engine.patch deleted file mode 100644 index f77a8286..00000000 --- a/patches/BRM021_Add-Qwant-search-engine.patch +++ /dev/null @@ -1,715 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Mar 2018 20:31:44 +0100 -Subject: Add Qwant search engine - ---- - .../search_engines/prepopulated_engines.json | 13 +- - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 122 insertions(+), 110 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -32,7 +32,7 @@ - - // Increment this if you change the data in ways that mean users with - // existing data should get a new version. -- "kCurrentDataVersion": 102 -+ "kCurrentDataVersion": 103 - }, - - // The following engines are included in country lists and are added to the -@@ -939,6 +939,17 @@ - "id": 6 - }, - -+ "qwant": { -+ "name": "Qwant", -+ "keyword": "qwant.com", -+ "favicon_url": "https://www.qwant.com/favicon.ico", -+ "search_url": "https://www.qwant.com/?client=opensearch&q={searchTerms}", -+ "suggest_url": "https://api.qwant.com/api/suggest/?client=opensearch&q={searchTerms}", -+ "image_url": "https://www.qwant.com/?t=images&q={searchTerms}", -+ "type": "SEARCH_ENGINE_QWANT", -+ "id": 14 -+ }, -+ - "rambler": { - "name": "\u0420\u0430\u043c\u0431\u043b\u0435\u0440", - "keyword": "rambler.ru", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -67,6 +67,7 @@ enum SearchEngineType { - SEARCH_ENGINE_DUCKDUCKGOLIGHT, - SEARCH_ENGINE_STARTPAGE, - SEARCH_ENGINE_GOOGLE_EN, -+ SEARCH_ENGINE_QWANT, - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; - -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -51,548 +51,548 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar, - }; - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at, - }; - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au, - }; - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr, - }; - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br, - }; - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru, - }; - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch, - }; - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl, - }; - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co, - }; - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &seznam, &bing, - }; - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk, - }; - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es, - }; - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask, - }; - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi, - }; - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk, - }; - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr, - }; - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing, - }; - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing, - }; - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, - }; - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in, - }; - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &virgilio, &bing, - }; - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing, - }; - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &naver, &daum, - }; - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz, - }; - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de, - }; - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru, - }; - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr, - }; - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing, - }; - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing, - }; - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx, - }; - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing, - }; - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden, - }; - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &kvasir, - }; - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz, - }; - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe, - }; - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing, - }; - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &onet, &bing, - }; - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing, - }; - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Russia - const PrepopulatedEngine* const engines_RU[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing, - }; - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se, - }; - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing, - }; - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &najdi, &ask, - }; - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing, - }; - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr, - }; - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing, - }; - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing, - }; - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing, - }; - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask, - }; - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve, - }; - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing, - }; - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob, - }; - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, - }; - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, -+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask, - }; - - // A list of all the engines that we know about. - const PrepopulatedEngine* const kAllEngines[] = { - // Prepopulated engines: -- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir, -+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &kvasir, - &mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio, - &yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch, - &yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr, --- -2.7.4 - diff --git a/patches/BRM022_Fix-crash-when-accessing-page-info-site-settings.patch b/patches/BRM022_Fix-crash-when-accessing-page-info-site-settings.patch deleted file mode 100644 index 65a5f9e7..00000000 --- a/patches/BRM022_Fix-crash-when-accessing-page-info-site-settings.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 20 Jan 2018 19:44:43 +0100 -Subject: Fix crash when accessing page info / site settings - ---- - chrome/browser/permissions/permission_manager.cc | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc ---- a/chrome/browser/permissions/permission_manager.cc -+++ b/chrome/browser/permissions/permission_manager.cc -@@ -632,6 +632,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper( - GURL canonical_requesting_origin = - GetCanonicalOrigin(requesting_origin, embedding_origin); - PermissionContextBase* context = GetPermissionContext(permission); -+ if (context == nullptr) { -+ return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED); -+ } - PermissionResult result = context->GetPermissionStatus( - render_frame_host, canonical_requesting_origin.GetOrigin(), - embedding_origin.GetOrigin()); --- -2.7.4 - diff --git a/patches/BRM023_openH264-enable-ARM-ARM64-optimizations.patch b/patches/BRM023_openH264-enable-ARM-ARM64-optimizations.patch deleted file mode 100644 index b7341c30..00000000 --- a/patches/BRM023_openH264-enable-ARM-ARM64-optimizations.patch +++ /dev/null @@ -1,109 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 20 Jan 2018 21:17:27 +0100 -Subject: openH264: enable ARM/ARM64 optimizations - -Enable the optimizations not only for ChromeOS but for all compatbile ARM/ARM64 architectures -Limit threads auto-detect only for iOS ---- - content/renderer/media_recorder/h264_encoder.cc | 6 ++-- - third_party/openh264/BUILD.gn | 39 +++++++++++++++++++++++++ - 2 files changed, 42 insertions(+), 3 deletions(-) - -diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc ---- a/content/renderer/media_recorder/h264_encoder.cc -+++ b/content/renderer/media_recorder/h264_encoder.cc -@@ -149,11 +149,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) { - init_params.iRCMode = RC_OFF_MODE; - } - --#if defined(OS_CHROMEOS) -- init_params.iMultipleThreadIdc = 0; --#else -+#if defined(OS_MACOSX) - // Threading model: Set to 1 due to https://crbug.com/583348. - init_params.iMultipleThreadIdc = 1; -+#else -+ init_params.iMultipleThreadIdc = 0; - #endif - - // TODO(mcasas): consider reducing complexity if there are few CPUs available. -diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn ---- a/third_party/openh264/BUILD.gn -+++ b/third_party/openh264/BUILD.gn -@@ -10,6 +10,7 @@ import("//third_party/yasm/yasm_assemble.gni") - # Config shared by all openh264 targets. - config("config") { - cflags = [] -+ defines = [] - - if (is_chromeos && target_cpu == "arm") { - # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS -@@ -20,6 +21,20 @@ config("config") { - ] - } - -+ # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS -+ # devices. -+ if (is_chromeos && target_cpu == "arm") { -+ defines += [ -+ "__chromeos__", -+ ] -+ } -+ -+ if (target_cpu == "arm" || target_cpu == "arm64") { -+ defines += [ -+ "HAVE_NEON", -+ ] -+ } -+ - # GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags. - if (!is_win || is_clang) { - cflags += [ -@@ -128,6 +143,14 @@ source_set("common") { - } - include_dirs = openh264_common_include_dirs - -+ # enable ARM optimizations -+ if (target_cpu == "arm") { -+ sources += openh264_common_sources_asm_arm -+ } -+ if (target_cpu == "arm64") { -+ sources += openh264_common_sources_asm_arm64 -+ } -+ - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":config" ] -@@ -154,6 +177,14 @@ source_set("processing") { - } - include_dirs = openh264_processing_include_dirs - -+ # enable ARM optimizations -+ if (target_cpu == "arm") { -+ sources += openh264_common_sources_asm_arm -+ } -+ if (target_cpu == "arm64") { -+ sources += openh264_common_sources_asm_arm64 -+ } -+ - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":config" ] -@@ -173,6 +204,14 @@ source_set("encoder") { - } - include_dirs = openh264_encoder_include_dirs - -+ # enable ARM optimizations -+ if (target_cpu == "arm") { -+ sources += openh264_common_sources_asm_arm -+ } -+ if (target_cpu == "arm64") { -+ sources += openh264_common_sources_asm_arm64 -+ } -+ - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":config" ] --- -2.7.4 - diff --git a/patches/BRM024_Cure-AMP-and-tracking-from-search-results.patch b/patches/BRM024_Cure-AMP-and-tracking-from-search-results.patch deleted file mode 100644 index 301ef34f..00000000 --- a/patches/BRM024_Cure-AMP-and-tracking-from-search-results.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 28 Oct 2017 10:09:41 +0200 -Subject: Cure AMP and tracking from search results - ---- - third_party/blink/renderer/core/dom/BUILD.gn | 1 + - third_party/blink/renderer/core/dom/document.cc | 20 +++++++++++++++++++- - .../renderer/core/dom/extensions/anti_amp_cure.h | 6 ++++++ - 3 files changed, 26 insertions(+), 1 deletion(-) - create mode 100644 third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h - -diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn ---- a/third_party/blink/renderer/core/dom/BUILD.gn -+++ b/third_party/blink/renderer/core/dom/BUILD.gn -@@ -147,6 +147,7 @@ blink_core_sources("dom") { - "events/tree_scope_event_context.h", - "events/window_event_context.cc", - "events/window_event_context.h", -+ "extensions/dont-track-me.h", - "exception_code.h", - "first_letter_pseudo_element.cc", - "first_letter_pseudo_element.h", -diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc ---- a/third_party/blink/renderer/core/dom/document.cc -+++ b/third_party/blink/renderer/core/dom/document.cc -@@ -276,6 +276,8 @@ - #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" - #include "third_party/blink/renderer/platform/wtf/time.h" - -+#include "extensions/anti_amp_cure.h" -+ - #ifndef NDEBUG - using WeakDocumentSet = - blink::PersistentHeapHashSet>; -@@ -5839,8 +5841,24 @@ void Document::FinishedParsing() { - fetcher_->ClearResourcesFromPreviousFetcher(); - } - -- if (IsPrefetchOnly()) -+ if (IsPrefetchOnly()) { - WebPrerenderingSupport::Current()->PrefetchFinished(); -+ return; -+ } -+ -+ // determine whether this is a Google search results page -+ const SecurityOrigin *origin = GetSecurityOrigin(); -+ if (origin) { -+ WTF::String domain = origin->Domain(); -+ size_t pos = domain.Find(".google."); -+ auto* bodyElement = body(); -+ if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) { -+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload"; -+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags()); -+ e->setText(ANTI_AMP_CURE_JS); -+ bodyElement->AppendChild(e); -+ } -+ } - } - - void Document::ElementDataCacheClearTimerFired(TimerBase*) { -diff --git a/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h -new file mode 100644 ---- /dev/null -+++ b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h -@@ -0,0 +1,6 @@ -+#ifndef anti_amp_cure_h -+#define anti_amp_cure_h -+ -+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=)\n // Mobile (/url?q=)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n" -+ -+#endif // anti_amp_cure_h --- -2.7.4 - diff --git a/patches/BRM025_Play-videos-in-background.patch b/patches/BRM025_Play-videos-in-background.patch deleted file mode 100644 index 1ca6f89d..00000000 --- a/patches/BRM025_Play-videos-in-background.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 18 Feb 2018 22:15:25 +0100 -Subject: Play videos in background - -Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com -Original Javascript code by timdream ---- - third_party/blink/renderer/core/dom/BUILD.gn | 1 + - third_party/blink/renderer/core/dom/document.cc | 17 +++++++++++++---- - .../blink/renderer/core/dom/extensions/video_bg_play.h | 6 ++++++ - 3 files changed, 20 insertions(+), 4 deletions(-) - create mode 100644 third_party/blink/renderer/core/dom/extensions/video_bg_play.h - -diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn ---- a/third_party/blink/renderer/core/dom/BUILD.gn -+++ b/third_party/blink/renderer/core/dom/BUILD.gn -@@ -148,6 +148,7 @@ blink_core_sources("dom") { - "events/window_event_context.cc", - "events/window_event_context.h", - "extensions/dont-track-me.h", -+ "extensions/video-bg-play.h", - "exception_code.h", - "first_letter_pseudo_element.cc", - "first_letter_pseudo_element.h", -diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc ---- a/third_party/blink/renderer/core/dom/document.cc -+++ b/third_party/blink/renderer/core/dom/document.cc -@@ -221,6 +221,7 @@ - #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" - #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" - #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" -+#include "extensions/video_bg_play.h" - #include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h" - #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h" - #include "third_party/blink/renderer/core/policy/document_policy.h" -@@ -5848,17 +5849,25 @@ void Document::FinishedParsing() { - - // determine whether this is a Google search results page - const SecurityOrigin *origin = GetSecurityOrigin(); -- if (origin) { -+ auto* bodyElement = body(); -+ if (origin && bodyElement) { - WTF::String domain = origin->Domain(); - size_t pos = domain.Find(".google."); -- auto* bodyElement = body(); -- if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) { -+ if ((pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) { - LOG(INFO) << "injecting anti-AMP-cure Javascript payload"; - HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags()); - e->setText(ANTI_AMP_CURE_JS); - bodyElement->AppendChild(e); - } -- } -+ -+ // check for eligibility of the video bg fix -+ if ((WTF::kNotFound != domain.Find("youtube.com")) || (WTF::kNotFound != domain.Find("vimeo.com"))) { -+ LOG(INFO) << "injecting video-bg-play Javascript payload"; -+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags()); -+ e->setText(VIDEO_BG_PLAY_JS); -+ bodyElement->AppendChild(e); -+ } -+ } // has origin and body element - } - - void Document::ElementDataCacheClearTimerFired(TimerBase*) { -diff --git a/third_party/blink/renderer/core/dom/extensions/video_bg_play.h b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h -new file mode 100644 ---- /dev/null -+++ b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h -@@ -0,0 +1,6 @@ -+#ifndef video_bg_play_h -+#define video_bg_play_h -+ -+#define VIDEO_BG_PLAY_JS "'use strict';\n\n/* video background play fix - original version by timdream */\ndocument.videoBGFix = {};\n\n// Page Visibility API\nObject.defineProperties(document.videoBGFix,\n { 'hidden': {value: false}, 'visibilityState': {value: 'visible'} });\n\nwindow.addEventListener(\n 'visibilitychange', evt => evt.stopImmediatePropagation(), true);\nwindow.addEventListener(\n 'blur', evt => evt.stopImmediatePropagation(), true);\n\n// Fullscreen API\nwindow.addEventListener('fullscreenchange', evt => {\n Object.defineProperties(document.videoBGFix,\n { 'fullscreenEnabled': {value: true},\n 'fullscreen': {value: true},\n 'fullscreenElement': {value: document.fullscreenElement.videoBGFix}});\n window.addEventListener(\n 'fullscreenchange', evt => evt.stopImmediatePropagation(), true);\n}, { capture: true, once: true });\n" -+ -+#endif // video_bg_play_h --- -2.7.4 - diff --git a/patches/BRM026_Never-send-any-crash-upload-data.patch b/patches/BRM026_Never-send-any-crash-upload-data.patch deleted file mode 100644 index be8dda2b..00000000 --- a/patches/BRM026_Never-send-any-crash-upload-data.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:43:35 +0100 -Subject: Never send any crash upload data - ---- - chrome/browser/tracing/crash_service_uploader.cc | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc ---- a/chrome/browser/tracing/crash_service_uploader.cc -+++ b/chrome/browser/tracing/crash_service_uploader.cc -@@ -122,6 +122,9 @@ void TraceCrashServiceUploader::DoUpload( - std::unique_ptr metadata, - const UploadProgressCallback& progress_callback, - const UploadDoneCallback& done_callback) { -+ -+ return; -+ - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - - progress_callback_ = progress_callback; --- -2.7.4 - diff --git a/patches/BRM027_Never-fetch-popular-sites.patch b/patches/BRM027_Never-fetch-popular-sites.patch deleted file mode 100644 index b4f93be1..00000000 --- a/patches/BRM027_Never-fetch-popular-sites.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 14 Feb 2018 12:56:01 +0100 -Subject: Never fetch popular sites - ---- - components/ntp_tiles/popular_sites_impl.cc | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/popular_sites_impl.cc ---- a/components/ntp_tiles/popular_sites_impl.cc -+++ b/components/ntp_tiles/popular_sites_impl.cc -@@ -289,6 +289,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download, - DCHECK(!callback_); - callback_ = callback; - -+ if (force_download) { -+ callback_.Run(true); -+ return true; -+ } -+ return false; -+ - const base::Time last_download_time = base::Time::FromInternalValue( - prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref)); - const base::TimeDelta time_since_last_download = --- -2.7.4 - diff --git a/patches/BRM028_ungoogled-chromium-Disable-signin.patch b/patches/BRM028_ungoogled-chromium-Disable-signin.patch deleted file mode 100644 index ab19c3e9..00000000 --- a/patches/BRM028_ungoogled-chromium-Disable-signin.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:14:39 +0100 -Subject: ungoogled-chromium: Disable signin - ---- - chrome/browser/ui/chrome_pages.cc | 8 ++------ - components/signin/core/browser/signin_manager_base.cc | 2 +- - 2 files changed, 3 insertions(+), 7 deletions(-) - -diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc ---- a/chrome/browser/ui/chrome_pages.cc -+++ b/chrome/browser/ui/chrome_pages.cc -@@ -77,12 +77,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) { - ShowSingletonTabOverwritingNTP(browser, params); - } - --void NavigateToSingletonTab(Browser* browser, const GURL& url) { -- NavigateParams params(GetSingletonTabNavigateParams(browser, url)); -- params.path_behavior = NavigateParams::IGNORE_AND_NAVIGATE; -- ShowSingletonTabOverwritingNTP(browser, params); --} -- - // Shows either the help app or the appropriate help page for |source|. If - // |browser| is NULL and the help page is used (vs the app), the help page is - // shown in the last active browser. If there is no such browser, a new browser -@@ -397,6 +391,7 @@ void ShowSearchEngineSettings(Browser* browser) { - #if !defined(OS_ANDROID) - void ShowBrowserSignin(Browser* browser, - signin_metrics::AccessPoint access_point) { -+#if 0 - Profile* original_profile = browser->profile()->GetOriginalProfile(); - SigninManagerBase* manager = - SigninManagerFactory::GetForProfile(original_profile); -@@ -442,6 +437,7 @@ void ShowBrowserSignin(Browser* browser, - BrowserWindow::AVATAR_BUBBLE_MODE_SIGNIN, - signin::ManageAccountsParams(), access_point, false); - } -+#endif - } - - void ShowBrowserSigninOrSettings(Browser* browser, -diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/signin/core/browser/signin_manager_base.cc ---- a/components/signin/core/browser/signin_manager_base.cc -+++ b/components/signin/core/browser/signin_manager_base.cc -@@ -158,7 +158,7 @@ void SigninManagerBase::Initialize(PrefService* local_state) { - bool SigninManagerBase::IsInitialized() const { return initialized_; } - - bool SigninManagerBase::IsSigninAllowed() const { -- return client_->GetPrefs()->GetBoolean(prefs::kSigninAllowed); -+ return false; - } - - AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const { --- -2.7.4 - diff --git a/patches/BRM029_ungoogled-chromium-Disable-webRTC-log-uploader.patch b/patches/BRM029_ungoogled-chromium-Disable-webRTC-log-uploader.patch deleted file mode 100644 index e0199643..00000000 --- a/patches/BRM029_ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:21:36 +0100 -Subject: ungoogled-chromium: Disable webRTC log uploader - ---- - chrome/browser/media/webrtc/webrtc_log_uploader.cc | 28 ++++------------------ - 1 file changed, 4 insertions(+), 24 deletions(-) - -diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc ---- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc -+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc -@@ -115,30 +115,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload( - DCHECK(meta_data.get()); - DCHECK(!upload_done_data.log_path.empty()); - -- std::string compressed_log; -- CompressLog(&compressed_log, log_buffer.get()); -- -- std::string local_log_id; -- -- if (base::PathExists(upload_done_data.log_path)) { -- webrtc_logging::DeleteOldWebRtcLogFiles(upload_done_data.log_path); -- -- local_log_id = base::NumberToString(base::Time::Now().ToDoubleT()); -- base::FilePath log_file_path = -- upload_done_data.log_path.AppendASCII(local_log_id) -- .AddExtension(FILE_PATH_LITERAL(".gz")); -- WriteCompressedLogToFile(compressed_log, log_file_path); -- -- base::FilePath log_list_path = -- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory( -- upload_done_data.log_path); -- AddLocallyStoredLogInfoToUploadListFile(log_list_path, local_log_id); -- } -- -- WebRtcLogUploadDoneData upload_done_data_with_log_id = upload_done_data; -- upload_done_data_with_log_id.local_log_id = local_log_id; -- PrepareMultipartPostData(compressed_log, std::move(meta_data), -- upload_done_data_with_log_id); -+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data); - } - - void WebRtcLogUploader::PrepareMultipartPostData( -@@ -149,6 +126,9 @@ void WebRtcLogUploader::PrepareMultipartPostData( - DCHECK(!compressed_log.empty()); - DCHECK(meta_data.get()); - -+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data); -+ return; -+ - std::unique_ptr post_data(new std::string()); - SetupMultipart(post_data.get(), - compressed_log, --- -2.7.4 - diff --git a/patches/BRM030_ungoogled-chromium-Disable-untraceable-URLs.patch b/patches/BRM030_ungoogled-chromium-Disable-untraceable-URLs.patch deleted file mode 100644 index 115cedf9..00000000 --- a/patches/BRM030_ungoogled-chromium-Disable-untraceable-URLs.patch +++ /dev/null @@ -1,136 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:28:11 +0100 -Subject: ungoogled-chromium: Disable untraceable URLs - -Disable additional URLs that are not caught by the "trk" scheme ---- - chrome/browser/android/rlz/rlz_ping_handler.cc | 2 +- - chrome/browser/plugins/plugins_resource_service.cc | 5 +---- - chrome/browser/safe_browsing/client_side_model_loader.cc | 6 ++---- - chrome/browser/safe_browsing/client_side_model_loader.h | 1 - - rlz/lib/financial_ping.cc | 4 ++-- - rlz/lib/lib_values.cc | 1 - - rlz/lib/lib_values.h | 1 - - 7 files changed, 6 insertions(+), 14 deletions(-) - -diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc ---- a/chrome/browser/android/rlz/rlz_ping_handler.cc -+++ b/chrome/browser/android/rlz/rlz_ping_handler.cc -@@ -66,7 +66,7 @@ void RlzPingHandler::Ping( - DCHECK_EQ(id.length(), 50u); - - GURL request_url(base::StringPrintf( -- "https://%s%s?", rlz_lib::kFinancialServer, rlz_lib::kFinancialPingPath)); -+ "about:blank")); - request_url = net::AppendQueryParameter( - request_url, rlz_lib::kProductSignatureCgiVariable, "chrome"); - request_url = -diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser/plugins/plugins_resource_service.cc ---- a/chrome/browser/plugins/plugins_resource_service.cc -+++ b/chrome/browser/plugins/plugins_resource_service.cc -@@ -51,9 +51,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000; - // Delay between calls to update the cache 1 day and 2 minutes in testing mode. - const int kCacheUpdateDelayMs = 24 * 60 * 60 * 1000; - --const char kPluginsServerUrl[] = -- "https://www.gstatic.com/chrome/config/plugins_3/"; -- - GURL GetPluginsServerURL() { - std::string filename; - #if defined(OS_WIN) -@@ -68,7 +65,7 @@ GURL GetPluginsServerURL() { - #error Unknown platform - #endif - -- return GURL(kPluginsServerUrl + filename); -+ return GURL("about:blank"); - } - - } // namespace -diff --git a/chrome/browser/safe_browsing/client_side_model_loader.cc b/chrome/browser/safe_browsing/client_side_model_loader.cc ---- a/chrome/browser/safe_browsing/client_side_model_loader.cc -+++ b/chrome/browser/safe_browsing/client_side_model_loader.cc -@@ -35,8 +35,6 @@ namespace safe_browsing { - // Model Loader strings - const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024; - const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000; --const char ModelLoader::kClientModelUrlPrefix[] = -- "https://ssl.gstatic.com/safebrowsing/csd/"; - const char ModelLoader::kClientModelNamePattern[] = - "client_model_v5%s_variation_%d.pb"; - const char ModelLoader::kClientModelFinchExperiment[] = -@@ -90,7 +88,7 @@ ModelLoader::ModelLoader( - scoped_refptr url_loader_factory, - bool is_extended_reporting) - : name_(FillInModelName(is_extended_reporting, GetModelNumber())), -- url_(kClientModelUrlPrefix + name_), -+ url_("about:blank"), - update_renderers_callback_(update_renderers_callback), - url_loader_factory_(url_loader_factory), - weak_factory_(this) { -@@ -103,7 +101,7 @@ ModelLoader::ModelLoader( - scoped_refptr url_loader_factory, - const std::string& model_name) - : name_(model_name), -- url_(kClientModelUrlPrefix + name_), -+ url_("about:blank"), - update_renderers_callback_(update_renderers_callback), - url_loader_factory_(url_loader_factory), - weak_factory_(this) { -diff --git a/chrome/browser/safe_browsing/client_side_model_loader.h b/chrome/browser/safe_browsing/client_side_model_loader.h ---- a/chrome/browser/safe_browsing/client_side_model_loader.h -+++ b/chrome/browser/safe_browsing/client_side_model_loader.h -@@ -42,7 +42,6 @@ class ModelLoader { - static const int kClientModelFetchIntervalMs; - static const char kClientModelFinchExperiment[]; - static const char kClientModelFinchParam[]; -- static const char kClientModelUrlPrefix[]; - static const char kClientModelNamePattern[]; - - // Constructs a model loader to fetch a model using |url_loader_factory|. -diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc ---- a/rlz/lib/financial_ping.cc -+++ b/rlz/lib/financial_ping.cc -@@ -351,7 +351,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request, - - // Open network connection. - InternetHandle connection_handle = InternetConnectA(inet_handle, -- kFinancialServer, kFinancialPort, "", "", INTERNET_SERVICE_HTTP, -+ "about:blank", kFinancialPort, "", "", INTERNET_SERVICE_HTTP, - INTERNET_FLAG_NO_CACHE_WRITE, 0); - if (!connection_handle) - return PING_FAILURE; -@@ -395,7 +395,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request, - return PING_SUCCESSFUL; - #else - std::string url = -- base::StringPrintf("https://%s%s", kFinancialServer, request); -+ base::StringPrintf("about:blank"); - - // Use a waitable event to cause this function to block, to match the - // wininet implementation. -diff --git a/rlz/lib/lib_values.cc b/rlz/lib/lib_values.cc ---- a/rlz/lib/lib_values.cc -+++ b/rlz/lib/lib_values.cc -@@ -41,7 +41,6 @@ const char kSetDccResponseVariable[] = "set_dcc"; - // - - const char kFinancialPingPath[] = "/tools/pso/ping"; --const char kFinancialServer[] = "clients1.google.com"; - const int kFinancialPort = 443; - - // Ping times in 100-nanosecond intervals. -diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h ---- a/rlz/lib/lib_values.h -+++ b/rlz/lib/lib_values.h -@@ -72,7 +72,6 @@ extern const char kSetDccResponseVariable[]; - // - - extern const char kFinancialPingPath[]; --extern const char kFinancialServer[]; - - extern const int kFinancialPort; - --- -2.7.4 - diff --git a/patches/BRM031_ungoogled-chromium-Disable-translate-integration.patch b/patches/BRM031_ungoogled-chromium-Disable-translate-integration.patch deleted file mode 100644 index 7afec597..00000000 --- a/patches/BRM031_ungoogled-chromium-Disable-translate-integration.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:28:53 +0100 -Subject: ungoogled-chromium: Disable translate integration - ---- - components/translate/content/renderer/translate_helper.cc | 4 +++- - components/translate/core/browser/translate_manager.cc | 2 +- - components/translate/core/browser/translate_script.cc | 3 +-- - 3 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/components/translate/content/renderer/translate_helper.cc b/components/translate/content/renderer/translate_helper.cc ---- a/components/translate/content/renderer/translate_helper.cc -+++ b/components/translate/content/renderer/translate_helper.cc -@@ -74,7 +74,9 @@ TranslateHelper::TranslateHelper(content::RenderFrame* render_frame, - world_id_(world_id), - extension_scheme_(extension_scheme), - binding_(this), -- weak_method_factory_(this) {} -+ weak_method_factory_(this) { -+ CancelPendingTranslation(); -+} - - TranslateHelper::~TranslateHelper() { - } -diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc ---- a/components/translate/core/browser/translate_manager.cc -+++ b/components/translate/core/browser/translate_manager.cc -@@ -102,7 +102,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { - if (net::NetworkChangeNotifier::IsOffline()) - return; - -- if (!ignore_missing_key_for_testing_ && !::google_apis::HasKeysConfigured()) { -+ if (true) { - // Without an API key, translate won't work, so don't offer to translate in - // the first place. Leave prefs::kOfferTranslateEnabled on, though, because - // that settings syncs and we don't want to turn off translate everywhere -diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc ---- a/components/translate/core/browser/translate_script.cc -+++ b/components/translate/core/browser/translate_script.cc -@@ -149,9 +149,8 @@ void TranslateScript::OnScriptFetchComplete( - base::StringAppendF(&data_, "var serverParams = '%s';\n", - server_params.c_str()); - -- GURL security_origin = translate::GetTranslateSecurityOrigin(); - base::StringAppendF( -- &data_, "var securityOrigin = '%s';", security_origin.spec().c_str()); -+ &data_, "var securityOrigin = '';"); - - // Append embedded translate.js and a remote element library. - base::StringPiece str = --- -2.7.4 - diff --git a/patches/BRM032_ungoogled-chromium-Disable-profile-avatar-downloading.patch b/patches/BRM032_ungoogled-chromium-Disable-profile-avatar-downloading.patch deleted file mode 100644 index b73a3530..00000000 --- a/patches/BRM032_ungoogled-chromium-Disable-profile-avatar-downloading.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:29:30 +0100 -Subject: ungoogled-chromium: Disable profile avatar downloading - ---- - chrome/browser/profiles/profile_avatar_downloader.cc | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc ---- a/chrome/browser/profiles/profile_avatar_downloader.cc -+++ b/chrome/browser/profiles/profile_avatar_downloader.cc -@@ -16,19 +16,13 @@ - #include "net/traffic_annotation/network_traffic_annotation.h" - #include "ui/gfx/image/image.h" - --namespace { --const char kHighResAvatarDownloadUrlPrefix[] = -- "https://www.gstatic.com/chrome/profile_avatars/"; --} -- - ProfileAvatarDownloader::ProfileAvatarDownloader( - size_t icon_index, - const FetchCompleteCallback& callback) - : icon_index_(icon_index), - callback_(callback) { - DCHECK(!callback_.is_null()); -- GURL url(std::string(kHighResAvatarDownloadUrlPrefix) + -- profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index)); -+ GURL url(std::string("about:blank")); - net::NetworkTrafficAnnotationTag traffic_annotation = - net::DefineNetworkTrafficAnnotation("profile_avatar", R"( - semantics { --- -2.7.4 - diff --git a/patches/BRM033_ungoogled-chromium-Disable-intranet-redirect-detector.patch b/patches/BRM033_ungoogled-chromium-Disable-intranet-redirect-detector.patch deleted file mode 100644 index 64547d0a..00000000 --- a/patches/BRM033_ungoogled-chromium-Disable-intranet-redirect-detector.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:30:30 +0100 -Subject: ungoogled-chromium: Disable intranet redirect detector - -Disables the intranet redirect detector. It generates extra DNS requests and the functionality using this is disabled. - -See this page for more information: https://mikewest.org/2012/02/chrome-connects-to-three-random-domains-at-startup ---- - chrome/browser/intranet_redirect_detector.cc | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc ---- a/chrome/browser/intranet_redirect_detector.cc -+++ b/chrome/browser/intranet_redirect_detector.cc -@@ -75,9 +75,7 @@ void IntranetRedirectDetector::FinishSleep() { - simple_loaders_.clear(); - resulting_origins_.clear(); - -- const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); -- if (cmd_line->HasSwitch(switches::kDisableBackgroundNetworking)) -- return; -+ return; - - DCHECK(simple_loaders_.empty() && resulting_origins_.empty()); - --- -2.7.4 - diff --git a/patches/BRM034_ungoogled-chromium-Disable-Google-host-detection.patch b/patches/BRM034_ungoogled-chromium-Disable-Google-host-detection.patch deleted file mode 100644 index 97aa39d9..00000000 --- a/patches/BRM034_ungoogled-chromium-Disable-Google-host-detection.patch +++ /dev/null @@ -1,374 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:36:33 +0100 -Subject: ungoogled-chromium: Disable Google host detection - -Disables various detections of Google hosts and functionality specific to them ---- - .../page_load_metrics/page_load_metrics_util.cc | 4 +- - .../page_load_metrics/page_load_metrics_util.cc | 33 +--- - components/google/core/browser/google_util.cc | 193 ++------------------- - components/search_engines/template_url.cc | 6 +- - net/base/url_util.cc | 22 --- - 5 files changed, 14 insertions(+), 244 deletions(-) - -diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc ---- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc -+++ b/chrome/browser/page_load_metrics/page_load_metrics_util.cc -@@ -169,9 +169,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( - } - - bool IsGoogleSearchHostname(const GURL& url) { -- base::Optional result = -- page_load_metrics::GetGoogleHostnamePrefix(url); -- return result && result.value() == "www"; -+ return false; - } - - bool IsGoogleSearchResultUrl(const GURL& url) { -diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.cc b/chrome/common/page_load_metrics/page_load_metrics_util.cc ---- a/chrome/common/page_load_metrics/page_load_metrics_util.cc -+++ b/chrome/common/page_load_metrics/page_load_metrics_util.cc -@@ -12,38 +12,7 @@ - namespace page_load_metrics { - - base::Optional GetGoogleHostnamePrefix(const GURL& url) { -- const size_t registry_length = -- net::registry_controlled_domains::GetRegistryLength( -- url, -- -- // Do not include unknown registries (registries that don't have any -- // matches in effective TLD names). -- net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES, -- -- // Do not include private registries, such as appspot.com. We don't -- // want to match URLs like www.google.appspot.com. -- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); -- -- const base::StringPiece hostname = url.host_piece(); -- if (registry_length == 0 || registry_length == std::string::npos || -- registry_length >= hostname.length()) { -- return base::Optional(); -- } -- -- // Removes the tld and the preceding dot. -- const base::StringPiece hostname_minus_registry = -- hostname.substr(0, hostname.length() - (registry_length + 1)); -- -- if (hostname_minus_registry == "google") -- return std::string(""); -- -- if (!base::EndsWith(hostname_minus_registry, ".google", -- base::CompareCase::INSENSITIVE_ASCII)) { -- return base::Optional(); -- } -- -- return std::string(hostname_minus_registry.substr( -- 0, hostname_minus_registry.length() - strlen(".google"))); -+ return base::Optional(); - } - - bool IsGoogleHostname(const GURL& url) { -diff --git a/components/google/core/browser/google_util.cc b/components/google/core/browser/google_util.cc ---- a/components/google/core/browser/google_util.cc -+++ b/components/google/core/browser/google_util.cc -@@ -41,118 +41,16 @@ namespace { - - bool gUseMockLinkDoctorBaseURLForTesting = false; - --bool IsPathHomePageBase(base::StringPiece path) { -- return (path == "/") || (path == "/webhp"); --} -- --// Removes a single trailing dot if present in |host|. --void StripTrailingDot(base::StringPiece* host) { -- if (host->ends_with(".")) -- host->remove_suffix(1); --} -- --// True if the given canonical |host| is "[www.]." --// with a valid TLD. If |subdomain_permission| is ALLOW_SUBDOMAIN, we check --// against host "*.." instead. Will return the TLD --// string in |tld|, if specified and the |host| can be parsed. --bool IsValidHostName(base::StringPiece host, -- base::StringPiece domain_in_lower_case, -- SubdomainPermission subdomain_permission, -- base::StringPiece* tld) { -- // Fast path to avoid searching the registry set. -- if (host.find(domain_in_lower_case) == base::StringPiece::npos) -- return false; -- -- size_t tld_length = -- net::registry_controlled_domains::GetCanonicalHostRegistryLength( -- host, net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES, -- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); -- if ((tld_length == 0) || (tld_length == std::string::npos)) -- return false; -- -- // Removes the tld and the preceding dot. -- base::StringPiece host_minus_tld = -- host.substr(0, host.length() - tld_length - 1); -- -- if (tld) -- *tld = host.substr(host.length() - tld_length); -- -- if (base::LowerCaseEqualsASCII(host_minus_tld, domain_in_lower_case)) -- return true; -- -- if (subdomain_permission == ALLOW_SUBDOMAIN) { -- std::string dot_domain("."); -- domain_in_lower_case.AppendToString(&dot_domain); -- return base::EndsWith(host_minus_tld, dot_domain, -- base::CompareCase::INSENSITIVE_ASCII); -- } -- -- std::string www_domain("www."); -- domain_in_lower_case.AppendToString(&www_domain); -- return base::LowerCaseEqualsASCII(host_minus_tld, www_domain); --} -- --// True if |url| is a valid URL with HTTP or HTTPS scheme. If |port_permission| --// is DISALLOW_NON_STANDARD_PORTS, this also requires |url| to use the standard --// port for its scheme (80 for HTTP, 443 for HTTPS). --bool IsValidURL(const GURL& url, PortPermission port_permission) { -- return url.is_valid() && url.SchemeIsHTTPOrHTTPS() && -- (url.port().empty() || (port_permission == ALLOW_NON_STANDARD_PORTS)); --} -- --bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host, -- SubdomainPermission subdomain_permission) { -- const GURL& base_url(CommandLineGoogleBaseURL()); -- if (base_url.is_valid() && (canonical_host == base_url.host_piece())) -- return true; -- -- base::StringPiece tld; -- if (!IsValidHostName(canonical_host, "google", subdomain_permission, &tld)) -- return false; -- -- // Remove the trailing dot from tld if present, as for google domain it's the -- // same page. -- StripTrailingDot(&tld); -- -- CR_DEFINE_STATIC_LOCAL(std::set, google_tlds, -- ({GOOGLE_TLD_LIST})); -- return base::ContainsKey(google_tlds, tld.as_string()); --} -- --// True if |url| is a valid URL with a host that is in the static list of --// Google subdomains for google search, and an HTTP or HTTPS scheme. Requires --// |url| to use the standard port for its scheme (80 for HTTP, 443 for HTTPS). --bool IsGoogleSearchSubdomainUrl(const GURL& url) { -- if (!IsValidURL(url, PortPermission::DISALLOW_NON_STANDARD_PORTS)) -- return false; -- -- base::StringPiece host(url.host_piece()); -- StripTrailingDot(&host); -- -- CR_DEFINE_STATIC_LOCAL(std::set, google_subdomains, -- ({"ipv4.google.com", "ipv6.google.com"})); -- -- return base::ContainsKey(google_subdomains, host.as_string()); --} -- - } // namespace - - // Global functions ----------------------------------------------------------- - - bool HasGoogleSearchQueryParam(base::StringPiece str) { -- url::Component query(0, static_cast(str.length())), key, value; -- while (url::ExtractQueryKeyValue(str.data(), &query, &key, &value)) { -- base::StringPiece key_str = str.substr(key.begin, key.len); -- if (key_str == "q" || key_str == "as_q") -- return true; -- } - return false; - } - - GURL LinkDoctorBaseURL() { -- if (gUseMockLinkDoctorBaseURLForTesting) -- return GURL("http://mock.linkdoctor.url/for?testing"); -- return GURL(LINKDOCTOR_SERVER_REQUEST_URL); -+ return GURL(); - } - - void SetMockLinkDoctorBaseURLForTesting() { -@@ -166,119 +64,50 @@ std::string GetGoogleLocale(const std::string& application_locale) { - - GURL AppendGoogleLocaleParam(const GURL& url, - const std::string& application_locale) { -- return net::AppendQueryParameter( -- url, "hl", GetGoogleLocale(application_locale)); -+ return url; - } - - std::string GetGoogleCountryCode(const GURL& google_homepage_url) { -- base::StringPiece google_hostname = google_homepage_url.host_piece(); -- // TODO(igorcov): This needs a fix for case when the host has a trailing dot, -- // like "google.com./". https://crbug.com/720295. -- const size_t last_dot = google_hostname.find_last_of('.'); -- DCHECK_NE(std::string::npos, last_dot); -- base::StringPiece country_code = google_hostname.substr(last_dot + 1); -- // Assume the com TLD implies the US. -- if (country_code == "com") -- return "us"; -- // Google uses the Unicode Common Locale Data Repository (CLDR), and the CLDR -- // code for the UK is "gb". -- if (country_code == "uk") -- return "gb"; -- // Catalonia does not have a CLDR country code, since it's a region in Spain, -- // so use Spain instead. -- if (country_code == "cat") -- return "es"; -- return country_code.as_string(); -+ return "nolocale"; - } - - GURL GetGoogleSearchURL(const GURL& google_homepage_url) { -- // To transform the homepage URL into the corresponding search URL, add the -- // "search" and the "q=" query string. -- GURL::Replacements replacements; -- replacements.SetPathStr("search"); -- replacements.SetQueryStr("q="); -- return google_homepage_url.ReplaceComponents(replacements); -+ return google_homepage_url; - } - - const GURL& CommandLineGoogleBaseURL() { -- // Unit tests may add command-line flags after the first call to this -- // function, so we don't simply initialize a static |base_url| directly and -- // then unconditionally return it. -- CR_DEFINE_STATIC_LOCAL(std::string, switch_value, ()); - CR_DEFINE_STATIC_LOCAL(GURL, base_url, ()); -- std::string current_switch_value( -- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( -- switches::kGoogleBaseURL)); -- if (current_switch_value != switch_value) { -- switch_value = current_switch_value; -- base_url = url_formatter::FixupURL(switch_value, std::string()); -- if (!base_url.is_valid() || base_url.has_query() || base_url.has_ref()) -- base_url = GURL(); -- } -+ base_url = GURL(); - return base_url; - } - - bool StartsWithCommandLineGoogleBaseURL(const GURL& url) { -- const GURL& base_url(CommandLineGoogleBaseURL()); -- return base_url.is_valid() && -- base::StartsWith(url.possibly_invalid_spec(), base_url.spec(), -- base::CompareCase::SENSITIVE); -+ return false; - } - - bool IsGoogleHostname(base::StringPiece host, - SubdomainPermission subdomain_permission) { -- url::CanonHostInfo host_info; -- return IsCanonicalHostGoogleHostname(net::CanonicalizeHost(host, &host_info), -- subdomain_permission); -+ return false; - } - - bool IsGoogleDomainUrl(const GURL& url, - SubdomainPermission subdomain_permission, - PortPermission port_permission) { -- return IsValidURL(url, port_permission) && -- IsCanonicalHostGoogleHostname(url.host_piece(), subdomain_permission); -+ return false; - } - - bool IsGoogleHomePageUrl(const GURL& url) { -- // First check to see if this has a Google domain. -- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN, -- DISALLOW_NON_STANDARD_PORTS) && -- !IsGoogleSearchSubdomainUrl(url)) { -- return false; -- } -- -- // Make sure the path is a known home page path. -- base::StringPiece path(url.path_piece()); -- return IsPathHomePageBase(path) || -- base::StartsWith(path, "/ig", base::CompareCase::INSENSITIVE_ASCII); -+ return false; - } - - bool IsGoogleSearchUrl(const GURL& url) { -- // First check to see if this has a Google domain. -- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN, -- DISALLOW_NON_STANDARD_PORTS) && -- !IsGoogleSearchSubdomainUrl(url)) { -- return false; -- } -- -- // Make sure the path is a known search path. -- base::StringPiece path(url.path_piece()); -- bool is_home_page_base = IsPathHomePageBase(path); -- if (!is_home_page_base && (path != "/search")) -- return false; -- -- // Check for query parameter in URL parameter and hash fragment, depending on -- // the path type. -- return HasGoogleSearchQueryParam(url.ref_piece()) || -- (!is_home_page_base && HasGoogleSearchQueryParam(url.query_piece())); -+ return false; - } - - bool IsYoutubeDomainUrl(const GURL& url, - SubdomainPermission subdomain_permission, - PortPermission port_permission) { -- return IsValidURL(url, port_permission) && -- IsValidHostName(url.host_piece(), "youtube", subdomain_permission, -- nullptr); -+ return false; - } - - const std::vector& GetGoogleRegistrableDomains() { -diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc ---- a/components/search_engines/template_url.cc -+++ b/components/search_engines/template_url.cc -@@ -510,11 +510,7 @@ base::string16 TemplateURLRef::SearchTermToString16( - bool TemplateURLRef::HasGoogleBaseURLs( - const SearchTermsData& search_terms_data) const { - ParseIfNecessary(search_terms_data); -- return std::any_of(replacements_.begin(), replacements_.end(), -- [](const Replacement& replacement) { -- return replacement.type == GOOGLE_BASE_URL || -- replacement.type == GOOGLE_BASE_SUGGEST_URL; -- }); -+ return false; - } - - bool TemplateURLRef::ExtractSearchTermsFromURL( -diff --git a/net/base/url_util.cc b/net/base/url_util.cc ---- a/net/base/url_util.cc -+++ b/net/base/url_util.cc -@@ -383,28 +383,6 @@ void GetIdentityFromURL(const GURL& url, - } - - bool HasGoogleHost(const GURL& url) { -- static const char* kGoogleHostSuffixes[] = { -- ".google.com", -- ".youtube.com", -- ".gmail.com", -- ".doubleclick.net", -- ".gstatic.com", -- ".googlevideo.com", -- ".googleusercontent.com", -- ".googlesyndication.com", -- ".google-analytics.com", -- ".googleadservices.com", -- ".googleapis.com", -- ".ytimg.com", -- }; -- base::StringPiece host = url.host_piece(); -- for (const char* suffix : kGoogleHostSuffixes) { -- // Here it's possible to get away with faster case-sensitive comparisons -- // because the list above is all lowercase, and a GURL's host name will -- // always be canonicalized to lowercase as well. -- if (base::EndsWith(host, suffix, base::CompareCase::SENSITIVE)) -- return true; -- } - return false; - } - --- -2.7.4 - diff --git a/patches/BRM035_ungoogled-chromium-Disable-GCM.patch b/patches/BRM035_ungoogled-chromium-Disable-GCM.patch deleted file mode 100644 index 401e868a..00000000 --- a/patches/BRM035_ungoogled-chromium-Disable-GCM.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:37:10 +0100 -Subject: ungoogled-chromium: Disable GCM - -Disable Google Cloud Messaging (GCM) client ---- - components/gcm_driver/gcm_client_impl.cc | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc ---- a/components/gcm_driver/gcm_client_impl.cc -+++ b/components/gcm_driver/gcm_client_impl.cc -@@ -502,6 +502,7 @@ void GCMClientImpl::StartGCM() { - } - - void GCMClientImpl::InitializeMCSClient() { -+ return; - std::vector endpoints; - endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); - GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -699,6 +700,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { - } - - void GCMClientImpl::StartCheckin() { -+ return; - // Make sure no checkin is in progress. - if (checkin_request_.get()) - return; -@@ -777,6 +779,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { - } - - void GCMClientImpl::SchedulePeriodicCheckin() { -+ return; - // Make sure no checkin is in progress. - if (checkin_request_.get() || !device_checkin_info_.accounts_set) - return; --- -2.7.4 - diff --git a/patches/BRM036_ungoogled-chromium-Disable-Gaia.patch b/patches/BRM036_ungoogled-chromium-Disable-Gaia.patch deleted file mode 100644 index 8434a16f..00000000 --- a/patches/BRM036_ungoogled-chromium-Disable-Gaia.patch +++ /dev/null @@ -1,134 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:37:52 +0100 -Subject: ungoogled-chromium: Disable Gaia - -Disables Gaia code. -Somehow it is still being activated even without being signed-in. - -See also: https://github.com/Eloston/ungoogled-chromium/issues/104 ---- - chrome/browser/browser_resources.grd | 2 -- - .../component_extensions_whitelist/whitelist.cc | 1 - - .../signin/gaia_auth_extension_loader.cc | 7 ------ - .../resources/component_extension_resources.grd | 2 -- - chrome/browser/ui/webui/signin/inline_login_ui.cc | 1 - - google_apis/gaia/gaia_auth_fetcher.cc | 29 ---------------------- - 6 files changed, 42 deletions(-) - -diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd ---- a/chrome/browser/browser_resources.grd -+++ b/chrome/browser/browser_resources.grd -@@ -301,7 +301,6 @@ - - - -- - - - -@@ -436,7 +435,6 @@ - - - -- - - - -diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc ---- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc -+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc -@@ -68,7 +68,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) { - #endif - case IDR_CRYPTOTOKEN_MANIFEST: - case IDR_FEEDBACK_MANIFEST: -- case IDR_GAIA_AUTH_MANIFEST: - #if BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION) - case IDR_HANGOUT_SERVICES_MANIFEST: - #endif -diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc ---- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc -+++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc -@@ -42,18 +42,11 @@ extensions::ComponentLoader* GetComponentLoader(BrowserContext* context) { - void LoadGaiaAuthExtension(BrowserContext* context) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - -- extensions::ComponentLoader* component_loader = GetComponentLoader(context); - const base::CommandLine* command_line = - base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kAuthExtensionPath)) { -- base::FilePath auth_extension_path = -- command_line->GetSwitchValuePath(switches::kAuthExtensionPath); -- component_loader->Add(IDR_GAIA_AUTH_MANIFEST, auth_extension_path); - return; - } -- -- component_loader->Add(IDR_GAIA_AUTH_MANIFEST, -- base::FilePath(FILE_PATH_LITERAL("gaia_auth"))); - } - - void UnloadGaiaAuthExtension(BrowserContext* context) { -diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome/browser/resources/component_extension_resources.grd ---- a/chrome/browser/resources/component_extension_resources.grd -+++ b/chrome/browser/resources/component_extension_resources.grd -@@ -40,8 +40,6 @@ - - - -- -- - - - -diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc ---- a/chrome/browser/ui/webui/signin/inline_login_ui.cc -+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc -@@ -44,7 +44,6 @@ content::WebUIDataSource* CreateWebUIDataSource() { - - source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS); - source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS); -- source->AddResourcePath("gaia_auth_host.js", IDR_GAIA_AUTH_AUTHENTICATOR_JS); - - source->AddLocalizedString("title", IDS_CHROME_SIGNIN_TITLE); - source->AddLocalizedString( -diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc ---- a/google_apis/gaia/gaia_auth_fetcher.cc -+++ b/google_apis/gaia/gaia_auth_fetcher.cc -@@ -248,35 +248,6 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( - int load_flags, - const net::NetworkTrafficAnnotationTag& traffic_annotation) { - DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; -- fetcher_ = net::URLFetcher::Create( -- 0, gaia_gurl, body.empty() ? net::URLFetcher::GET : net::URLFetcher::POST, -- this, traffic_annotation); -- fetcher_->SetRequestContext(getter_); -- fetcher_->SetUploadData("application/x-www-form-urlencoded", body); -- gaia::MarkURLFetcherAsGaia(fetcher_.get()); -- -- VLOG(2) << "Gaia fetcher URL: " << gaia_gurl.spec(); -- VLOG(2) << "Gaia fetcher headers: " << headers; -- VLOG(2) << "Gaia fetcher body: " << body; -- -- // The Gaia token exchange requests do not require any cookie-based -- // identification as part of requests. We suppress sending any cookies to -- // maintain a separation between the user's browsing and Chrome's internal -- // services. Where such mixing is desired (MergeSession or OAuthLogin), it -- // will be done explicitly. -- fetcher_->SetLoadFlags(load_flags); -- -- // Fetchers are sometimes cancelled because a network change was detected, -- // especially at startup and after sign-in on ChromeOS. Retrying once should -- // be enough in those cases; let the fetcher retry up to 3 times just in case. -- // http://crbug.com/163710 -- fetcher_->SetAutomaticallyRetryOnNetworkChanges(3); -- -- if (!headers.empty()) -- fetcher_->SetExtraRequestHeaders(headers); -- -- fetch_pending_ = true; -- fetcher_->Start(); - } - - // static --- -2.7.4 - diff --git a/patches/BRM037_ungoogled-chromium-Clear-HTTP-cache-menu-item.patch b/patches/BRM037_ungoogled-chromium-Clear-HTTP-cache-menu-item.patch deleted file mode 100644 index df00d83f..00000000 --- a/patches/BRM037_ungoogled-chromium-Clear-HTTP-cache-menu-item.patch +++ /dev/null @@ -1,181 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Feb 2018 21:45:21 +0100 -Subject: ungoogled-chromium: Clear HTTP cache menu item - -Adds a menu item under "More tools" to clear the HTTP authentication cache on demand ---- - chrome/app/chrome_command_ids.h | 1 + - chrome/app/generated_resources.grd | 6 ++++++ - chrome/browser/ui/browser_command_controller.cc | 7 +++++++ - chrome/browser/ui/toolbar/app_menu_model.cc | 8 ++++++++ - chrome/browser/ui/toolbar/app_menu_model.h | 1 + - chrome/browser/ui/views/frame/global_menu_bar_x11.cc | 1 + - net/http/http_auth_cache.cc | 4 ++++ - net/http/http_auth_cache.h | 2 ++ - tools/metrics/histograms/enums.xml | 1 + - tools/metrics/histograms/histograms.xml | 1 + - 10 files changed, 32 insertions(+) - -diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h ---- a/chrome/app/chrome_command_ids.h -+++ b/chrome/app/chrome_command_ids.h -@@ -152,6 +152,7 @@ - #define IDC_DEV_TOOLS_INSPECT 40023 - #define IDC_UPGRADE_DIALOG 40024 - #define IDC_VIEW_INCOMPATIBILITIES 40025 -+#define IDC_CLEAR_HTTP_AUTH_CACHE 40026 - #define IDC_SHOW_KEYBOARD_OVERLAY 40027 - #define IDC_PROFILING_ENABLED 40028 - #define IDC_BOOKMARKS_MENU 40029 -diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd ---- a/chrome/app/generated_resources.grd -+++ b/chrome/app/generated_resources.grd -@@ -1053,6 +1053,9 @@ are declared in build/common.gypi. - - &Clear browsing data... - -+ -+ Clear &HTTP auth cache -+ - - &Downloads - -@@ -1091,6 +1094,9 @@ are declared in build/common.gypi. - - &Clear Browsing Data... - -+ -+ Clear &HTTP Auth Cache -+ - - &Downloads - -diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc ---- a/chrome/browser/ui/browser_command_controller.cc -+++ b/chrome/browser/ui/browser_command_controller.cc -@@ -60,6 +60,9 @@ - #include "extensions/browser/extension_system.h" - #include "printing/buildflags/buildflags.h" - #include "ui/events/keycodes/keyboard_codes.h" -+#include "net/url_request/url_request_context.h" -+#include "net/url_request/url_request_context_getter.h" -+#include "net/http/http_transaction_factory.h" - - #if defined(OS_MACOSX) - #include "chrome/browser/ui/browser_commands_mac.h" -@@ -629,6 +632,9 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( - case IDC_CLEAR_BROWSING_DATA: - ShowClearBrowsingDataDialog(browser_); - break; -+ case IDC_CLEAR_HTTP_AUTH_CACHE: -+ profile()->GetRequestContext()->GetURLRequestContext()->http_transaction_factory()->GetSession()->http_auth_cache()->Clear(); -+ break; - case IDC_IMPORT_SETTINGS: - ShowImportDialog(browser_); - break; -@@ -871,6 +877,7 @@ void BrowserCommandController::InitCommandState() { - !profile()->IsOffTheRecord()); - command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA, - !guest_session); -+ command_updater_.UpdateCommandEnabled(IDC_CLEAR_HTTP_AUTH_CACHE, true); - #if defined(OS_CHROMEOS) - command_updater_.UpdateCommandEnabled(IDC_TAKE_SCREENSHOT, true); - #else -diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc ---- a/chrome/browser/ui/toolbar/app_menu_model.cc -+++ b/chrome/browser/ui/toolbar/app_menu_model.cc -@@ -215,6 +215,7 @@ void ToolsMenuModel::Build(Browser* browser) { - - AddSeparator(ui::NORMAL_SEPARATOR); - AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); -+ AddItemWithStringId(IDC_CLEAR_HTTP_AUTH_CACHE, IDS_CLEAR_HTTP_AUTH_CACHE); - AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS); - if (chrome::CanOpenTaskManager()) - AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); -@@ -475,6 +476,13 @@ void AppMenuModel::LogMenuMetrics(int command_id) { - } - LogMenuAction(MENU_ACTION_CLEAR_BROWSING_DATA); - break; -+ case IDC_CLEAR_HTTP_AUTH_CACHE: -+ if (!uma_action_recorded_) { -+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearHttpAuthCache", -+ delta); -+ } -+ LogMenuAction(MENU_ACTION_CLEAR_HTTP_AUTH_CACHE); -+ break; - case IDC_VIEW_SOURCE: - if (!uma_action_recorded_) - UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", delta); -diff --git a/chrome/browser/ui/toolbar/app_menu_model.h b/chrome/browser/ui/toolbar/app_menu_model.h ---- a/chrome/browser/ui/toolbar/app_menu_model.h -+++ b/chrome/browser/ui/toolbar/app_menu_model.h -@@ -76,6 +76,7 @@ enum AppMenuAction { - MENU_ACTION_OPEN_IN_CHROME = 48, - MENU_ACTION_SITE_SETTINGS = 49, - MENU_ACTION_APP_INFO = 50, -+ MENU_ACTION_CLEAR_HTTP_AUTH_CACHE = 51, - LIMIT_MENU_ACTION - }; - -diff --git a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc ---- a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc -+++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc -@@ -225,6 +225,7 @@ GlobalMenuBarCommand tools_menu[] = { - - {IDS_TASK_MANAGER, IDC_TASK_MANAGER}, - {IDS_CLEAR_BROWSING_DATA, IDC_CLEAR_BROWSING_DATA}, -+ {IDS_CLEAR_HTTP_AUTH_CACHE, IDC_CLEAR_HTTP_AUTH_CACHE}, - - {MENU_SEPARATOR, MENU_SEPARATOR}, - -diff --git a/net/http/http_auth_cache.cc b/net/http/http_auth_cache.cc ---- a/net/http/http_auth_cache.cc -+++ b/net/http/http_auth_cache.cc -@@ -250,6 +250,10 @@ bool HttpAuthCache::Remove(const GURL& origin, - return false; - } - -+void HttpAuthCache::Clear() { -+ entries_.clear(); -+} -+ - void HttpAuthCache::ClearEntriesAddedWithin(base::TimeDelta duration) { - base::TimeTicks begin_time = base::TimeTicks::Now() - duration; - base::EraseIf(entries_, [begin_time](const Entry& entry) { -diff --git a/net/http/http_auth_cache.h b/net/http/http_auth_cache.h ---- a/net/http/http_auth_cache.h -+++ b/net/http/http_auth_cache.h -@@ -166,6 +166,8 @@ class NET_EXPORT HttpAuthCache { - HttpAuth::Scheme scheme, - const AuthCredentials& credentials); - -+ void Clear(); -+ - // Clears cache entries created within |duration| of base::TimeTicks::Now(). - void ClearEntriesAddedWithin(base::TimeDelta duration); - -diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml ---- a/tools/metrics/histograms/enums.xml -+++ b/tools/metrics/histograms/enums.xml -@@ -48309,6 +48309,7 @@ Full version information for the fingerprint enum values: - - - -+ - - - -diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml ---- a/tools/metrics/histograms/histograms.xml -+++ b/tools/metrics/histograms/histograms.xml -@@ -107908,6 +107908,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. - -+ - --- -2.7.4 - diff --git a/patches/BRM038_url_request-hooks-and-ad-url-data.patch b/patches/BRM038_url_request-hooks-and-ad-url-data.patch deleted file mode 100644 index 5d430d6e..00000000 --- a/patches/BRM038_url_request-hooks-and-ad-url-data.patch +++ /dev/null @@ -1,189 +0,0 @@ -From: NoChromo -Date: Sun, 3 Apr 2016 12:44:50 +0800 -Subject: url_request: hooks and ad url data - ---- - net/BUILD.gn | 2 + - net/url_request/nochromo_intercept.cc | 116 ++++++++++++++++++++++++++++++++++ - net/url_request/nochromo_intercept.h | 13 ++++ - net/url_request/url_request.cc | 4 ++ - 4 files changed, 135 insertions(+) - create mode 100644 net/url_request/nochromo_intercept.cc - create mode 100644 net/url_request/nochromo_intercept.h - -diff --git a/net/BUILD.gn b/net/BUILD.gn ---- a/net/BUILD.gn -+++ b/net/BUILD.gn -@@ -1756,6 +1756,8 @@ component("net") { - "url_request/url_fetcher_response_writer.h", - "url_request/url_range_request_job.cc", - "url_request/url_range_request_job.h", -+ "url_request/nochromo_intercept.cc", -+ "url_request/nochromo_intercept.h", - "url_request/url_request.cc", - "url_request/url_request.h", - "url_request/url_request_context.cc", -diff --git a/net/url_request/nochromo_intercept.cc b/net/url_request/nochromo_intercept.cc -new file mode 100644 ---- /dev/null -+++ b/net/url_request/nochromo_intercept.cc -@@ -0,0 +1,116 @@ -+#include "url/gurl.h" -+#include "net/url_request/nochromo_entries.h" -+ -+#include -+ -+namespace net { -+ -+#define NOCHROMO_LOG 0 -+#define NOCHROMO_LOG_MORE 0 -+ -+static char* strtolower(const char* str) { -+ int len = strlen(str); -+ char* ret = (char*)malloc(len + 1); -+ ret[len] = '\0'; -+ for (int i = 0; i < len; i++) { -+ if ((65 <= str[i]) && (str[i] <= 90)) { -+ ret[i] = str[i] + 32; -+ } else { -+ ret[i] = str[i]; -+ } -+ } -+ return ret; -+} -+ -+static char* strtosep(const char* str) { -+ int len = strlen(str); -+ char* ret = (char*)malloc(len + 3); -+ ret[0] = '^'; -+ ret[len + 1] = '^'; -+ ret[len + 2] = '\0'; -+ for (int i = 0; i < len; i++) { -+ if ((str[i] == ':') || (str[i] == '/') || (str[i] == '?') || (str[i] == '&') || (str[i] == '=')) { -+ ret[i + 1] = '^'; -+ } else { -+ ret[i + 1] = str[i]; -+ } -+ } -+ return ret; -+} -+ -+int nochromo_intercept(const GURL& url) { -+ if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) { -+ const char* c_url = url.spec().c_str(); -+ char* c_url_lower = strtolower(c_url); -+ char* c_url_sep = strtosep(c_url); -+ char* c_url_lower_sep = strtosep(c_url_lower); -+ -+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s]", c_url); -+ -+ bool intercept = false; -+ for (int i = 0; i < NOCHROMO_ENTRY_COUNT; i++) { -+ nochromo_entry* entry = &NOCHROMO_ENTRIES[i]; -+ -+ // no use checking rules when we're intercepting, or exceptions when not -+ bool check = -+ (!intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) == 0)) || -+ (intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) != 0)); -+ -+ if (check) { -+ bool match = false; -+ -+ // select comparison string based on case and separator presence (separator takes some shortcuts) -+ bool match_case = ((entry->flags & NOCHROMO_FLAG_MATCH_CASE) != 0); -+ bool match_separator = ((entry->flags & NOCHROMO_FLAG_HAS_SEPARATOR) != 0); -+ const char* match_url = match_case ? (match_separator ? c_url_sep : c_url) : (match_separator ? c_url_lower_sep : c_url_lower); -+ -+ if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[case:%d][sep:%d][%s]", match_case, match_separator, match_url); -+ -+ // check for all match parts at >= position of last match -+ const char* last = match_url; -+ for (int m = 0; m < entry->matchcount; m++) { -+ const char* pos = strstr(last, entry->matches[m]); -+ match = (pos != NULL); -+ -+ if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s][found:%d][match:%d]", entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0); -+ -+ // check if the url starts with the first match part -+ if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_BEGIN) != 0) && (pos != match_url)) match = false; -+ -+ // check if the url ends with the last match part -+ if (match && (m == entry->matchcount - 1) && ((entry->flags & NOCHROMO_FLAG_MATCH_END) != 0) && (pos != &match_url[strlen(match_url) - strlen(entry->matches[m])])) match = false; -+ -+ // check domain match -+ if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_DOMAIN) != 0) && (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') && (pos[-1] != '/')) match = false; -+ -+ // short circuit -+ if (!match) break; -+ } -+ -+ if (match) { -+ if (NOCHROMO_LOG) { -+ if (!intercept) { -+ __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> intercept (%d) (%d)", i, entry->flags); -+ } else { -+ __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> pass (%d) (%d)", i, entry->flags); -+ } -+ } -+ intercept = !intercept; -+ } -+ } -+ } -+ -+ free(c_url_sep); -+ free(c_url_lower); -+ free(c_url_lower_sep); -+ -+ if (intercept) { -+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "intercepted!"); -+ return 1; -+ } -+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "pass!"); -+ } -+ return 0; -+} -+ -+} // namespace net -\ No newline at end of file -diff --git a/net/url_request/nochromo_intercept.h b/net/url_request/nochromo_intercept.h -new file mode 100644 ---- /dev/null -+++ b/net/url_request/nochromo_intercept.h -@@ -0,0 +1,13 @@ -+#ifndef NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ -+#define NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ -+ -+#include "url/gurl.h" -+ -+namespace net { -+ -+GURL nochromo_intercepted = GURL("http://127.0.0.1/"); -+int nochromo_intercept(const GURL& url); -+ -+} // namespace net -+ -+#endif // NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ -diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc ---- a/net/url_request/url_request.cc -+++ b/net/url_request/url_request.cc -@@ -44,6 +44,8 @@ - #include "url/gurl.h" - #include "url/origin.h" - -+#include "net/url_request/nochromo_intercept.h" -+ - #if BUILDFLAG(ENABLE_REPORTING) - #include "net/network_error_logging/network_error_logging_service.h" - #include "net/reporting/reporting_service.h" -@@ -583,6 +585,8 @@ URLRequest::URLRequest(const GURL& url, - // Sanity check out environment. - DCHECK(base::ThreadTaskRunnerHandle::IsSet()); - -+ if (nochromo_intercept(url)) url_chain_.push_back(nochromo_intercepted); -+ - context->url_requests()->insert(this); - net_log_.BeginEvent( - NetLogEventType::REQUEST_ALIVE, --- -2.7.4 - diff --git a/patches/BRM039_Bromite-adblock-engine.patch b/patches/BRM039_Bromite-adblock-engine.patch deleted file mode 100644 index 49507738..00000000 --- a/patches/BRM039_Bromite-adblock-engine.patch +++ /dev/null @@ -1,584 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 28 Mar 2018 15:55:11 +0200 -Subject: Bromite adblock engine - -Ported from NoChromo patch -Make interception testable -Add domain support -Re-land: third-party filters support ---- - net/BUILD.gn | 9 +- - net/url_request/adblock_intercept.cc | 324 ++++++++++++++++++++++++++++++++++ - net/url_request/adblock_intercept.h | 16 ++ - net/url_request/nochromo_intercept.cc | 116 ------------ - net/url_request/nochromo_intercept.h | 13 -- - net/url_request/url_request.cc | 19 +- - 6 files changed, 364 insertions(+), 133 deletions(-) - create mode 100644 net/url_request/adblock_intercept.cc - create mode 100644 net/url_request/adblock_intercept.h - delete mode 100644 net/url_request/nochromo_intercept.cc - delete mode 100644 net/url_request/nochromo_intercept.h - -diff --git a/net/BUILD.gn b/net/BUILD.gn ---- a/net/BUILD.gn -+++ b/net/BUILD.gn -@@ -1756,8 +1756,6 @@ component("net") { - "url_request/url_fetcher_response_writer.h", - "url_request/url_range_request_job.cc", - "url_request/url_range_request_job.h", -- "url_request/nochromo_intercept.cc", -- "url_request/nochromo_intercept.h", - "url_request/url_request.cc", - "url_request/url_request.h", - "url_request/url_request_context.cc", -@@ -1815,6 +1813,13 @@ component("net") { - "//third_party/zlib", - ] - -+ if (is_android) { -+ sources += [ -+ "url_request/adblock_intercept.cc", -+ "url_request/adblock_intercept.h" -+ ] -+ } -+ - if (enable_reporting) { - sources += [ - "network_error_logging/network_error_logging_delegate.cc", -diff --git a/net/url_request/adblock_intercept.cc b/net/url_request/adblock_intercept.cc -new file mode 100644 ---- /dev/null -+++ b/net/url_request/adblock_intercept.cc -@@ -0,0 +1,324 @@ -+#include "url/gurl.h" -+ -+#ifdef ADB_TESTER -+#include -+#include -+#include -+ -+#include "log.h" -+#include -+ -+#else -+ -+#include "net/base/registry_controlled_domains/registry_controlled_domain.h" -+#include -+ -+#endif -+ -+#include "net/url_request/adblock_entries.h" -+ -+namespace net { -+ -+const char *LOG_TAG = "Bromite"; -+ -+#ifdef ADB_TESTER -+int adblock_rules_count() { return ADBLOCK_ENTRY_COUNT; } -+#endif -+ -+// True if the given canonical |host| is "[www.]." -+// with a valid TLD. If |subdomain_permission| is ALLOW_SUBDOMAIN, we check -+// against host "*.." instead. Will return the TLD -+// string in |tld|, if specified and the |host| can be parsed. -+static bool is_first_party(char *l_host, char *l_url_host) { -+ size_t tld_length; -+ -+#ifdef ADB_TESTER -+ char *found_tld; -+ -+ if (TLD_SUCCESS != tld_get_z(l_host, &found_tld)) -+ return false; -+ tld_length = strlen(found_tld); -+ if (tld_length == 0) -+ return false; -+#else -+ tld_length = net::registry_controlled_domains::GetCanonicalHostRegistryLength( -+ l_host, net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES, -+ net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); -+ if ((tld_length == 0) || (tld_length == std::string::npos)) -+ return false; -+#endif -+ -+ int len = strlen(l_host); -+ char *tld = l_host + len - tld_length; -+ -+ // Removes any subdomain from origin host. -+ int i = len - tld_length - 2, top_i = i; -+ if (i < 0) { -+ return false; -+ } -+ char *domain = l_host; -+ for (; i >= 0; i--) { -+ if (l_host[i] == '.') { -+ int p_len = top_i - i; -+ // skip "co" in "co.uk", "org" in "org.uk" -+ if (p_len <= 3) { -+ tld -= p_len + 1; -+ continue; -+ } -+ -+ // segment is long enough, accept it at as a domain -+ domain = l_host + i; -+ len -= i; -+ break; -+ } -+ } -+ -+#ifdef ADBLOCK_LOG -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, -+ "%s: extracted domain suffix: \"%s\" (TLD=\"%s\")", -+ l_host, domain, tld); -+#endif -+ -+ // Check if supplied URL host matches, including the dot. -+ int b_len = strlen(l_url_host); -+ if (b_len < len) { -+ return false; -+ } -+ for (int i = 0; i < len; i++) { -+ if (l_url_host[b_len - 1 - i] != domain[len - 1 - i]) -+ return false; -+ } -+ -+ // pass with flying colors -+ return true; -+} -+ -+static char *strtolower(const char *str) { -+ int len = strlen(str); -+ char *ret = (char *)malloc(len + 1); -+ ret[len] = '\0'; -+ for (int i = 0; i < len; i++) { -+ if ((65 <= str[i]) && (str[i] <= 90)) { -+ ret[i] = str[i] + 32; -+ } else { -+ ret[i] = str[i]; -+ } -+ } -+ return ret; -+} -+ -+static char *strtosep(const char *str) { -+ int len = strlen(str); -+ char *ret = (char *)malloc(len + 3); -+ ret[0] = '^'; -+ ret[len + 1] = '^'; -+ ret[len + 2] = '\0'; -+ for (int i = 0; i < len; i++) { -+ if ((str[i] == ':') || (str[i] == '/') || (str[i] == '?') || -+ (str[i] == '&') || (str[i] == '=')) { -+ ret[i + 1] = '^'; -+ } else { -+ ret[i + 1] = str[i]; -+ } -+ } -+ return ret; -+} -+ -+static bool url_matches(const char *c_url, char *c_url_sep, char *c_url_lower, -+ char *c_url_lower_sep, adblock_entry *entry) { -+ bool match = false; -+ // select comparison string based on case and separator presence (separator -+ // takes some shortcuts) -+ bool match_case = ((entry->flags & ADBLOCK_FLAG_MATCH_CASE) != 0); -+ bool match_separator = ((entry->flags & ADBLOCK_FLAG_HAS_SEPARATOR) != 0); -+ const char *match_url = -+ match_case ? (match_separator ? c_url_sep : c_url) -+ : (match_separator ? c_url_lower_sep : c_url_lower); -+ -+#ifdef ADBLOCK_LOG_MORE -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[case:%d][sep:%d][%s]", -+ match_case, match_separator, match_url); -+#endif -+ // check for all match parts at >= position of last match -+ const char *last = match_url; -+ for (int m = 0; const char *url_match = entry->matches[m]; m++) { -+ bool is_last_match = entry->matches[m + 1] == NULL; -+ const char *pos = strstr(last, url_match); -+ match = (pos != NULL); -+ -+#ifdef ADBLOCK_LOG_MORE -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s][found:%d][match:%d]", -+ entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0); -+#endif -+ // check if the url starts with the first match part -+ if (match && (m == 0) && ((entry->flags & ADBLOCK_FLAG_MATCH_BEGIN) != 0) && -+ (pos != match_url)) -+ match = false; -+ -+ // check if the url ends with the last match part -+ if (match && is_last_match && -+ ((entry->flags & ADBLOCK_FLAG_MATCH_END) != 0) && -+ (pos != &match_url[strlen(match_url) - strlen(entry->matches[m])])) -+ match = false; -+ -+ // check domain match -+ if (match && (m == 0) && -+ ((entry->flags & ADBLOCK_FLAG_MATCH_DOMAIN) != 0) && -+ (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') && -+ (pos[-1] != '/')) -+ match = false; -+ -+ // short circuit -+ if (!match) -+ break; -+ } -+ return match; -+} -+ -+bool url_match_domain(adblock_entry *entry, const std::string &origin_host) { -+ bool match_domain = true; -+ // check for a negative domain match -+ if (entry->domains_neg) { -+ if (origin_host.empty()) { -+ // skip this rule, cannot match on domain -+ return false; -+ } -+ for (int d = 0; const char *domain = entry->domains_neg[d]; d++) { -+ if (domain == origin_host) { -+ match_domain = false; -+ break; -+ } -+ } -+ } -+ -+ // check for a required positive domain match -+ if (entry->domains) { -+ if (origin_host.empty()) { -+ // skip this rule, cannot match on domain -+ return false; -+ } -+ for (int d = 0; const char *domain = entry->domains[d]; d++) { -+ if (domain != origin_host) { -+ match_domain = false; -+ break; -+ } -+ } -+ } -+ return match_domain; -+} -+ -+static bool url_match_party(adblock_entry *entry, const GURL &url, -+ const std::string &origin_host, bool &checked_fp, -+ bool &fp) { -+ bool wanted_fp; -+ if ((entry->flags & ADBLOCK_FLAG_THIRD_PARTY) != 0) { -+ wanted_fp = false; -+ } else if ((entry->flags & ADBLOCK_FLAG_FIRST_PARTY) != 0) { -+ wanted_fp = true; -+ } else { -+ // no-op -+ return true; -+ } -+ -+ if (origin_host.empty()) { -+ // cannot match this rule, no origin host to determine first/third party -+ return false; -+ } -+ -+#ifdef ADB_TESTER -+//__android_log_print(ANDROID_LOG_INFO, LOG_TAG, "matchFirst=%d matchThird=%d", -+// matchFirstParty, matchThirdParty); -+#endif -+ if (!checked_fp) { -+ // lower-case version -+ char *l_host = strtolower(origin_host.c_str()), -+ *l_url_host = strtolower(url.host().c_str()); -+ -+ // is the URL a first-party to the current page's host? -+ fp = is_first_party(l_host, l_url_host); -+ -+ checked_fp = true; -+#ifdef ADB_TESTER -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, -+ "is_first_party(\"%s\", \"%s\") = %s", l_host, -+ l_url_host, fp ? "true" : "false"); -+#endif -+ free(l_host); -+ free(l_url_host); -+ } -+ -+ return fp == wanted_fp; -+} -+ -+int adblock_intercept(const GURL &url, const std::string &origin_host) { -+ // if (!url.is_valid() || !url.SchemeIsHTTPOrHTTPS()) { -+ // return 0; -+ // } -+ -+ if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) { -+ const char *c_url = url.spec().c_str(); -+ char *c_url_lower = strtolower(c_url); -+ char *c_url_sep = strtosep(c_url); -+ char *c_url_lower_sep = strtosep(c_url_lower); -+ -+#ifdef ADBLOCK_LOG -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s with host '%s'] [%s]", -+ c_url, url.host().c_str(), origin_host.c_str()); -+#endif -+ -+ bool checked_fp = false, fp = false; -+ -+ bool intercept = false; -+ for (int i = 0; i < ADBLOCK_ENTRY_COUNT; i++) { -+ adblock_entry *entry = &ADBLOCK_ENTRIES[i]; -+ -+ // no use checking rules when we're intercepting, or exceptions when not -+ bool check = -+ (!intercept && ((entry->flags & ADBLOCK_FLAG_EXCEPTION) == 0)) || -+ (intercept && ((entry->flags & ADBLOCK_FLAG_EXCEPTION) != 0)); -+ if (!check) -+ continue; -+ -+ // first check for domain matches, a quick branch out if matching -+ if (!url_match_domain(entry, origin_host)) -+ continue; -+ -+ // check on the URL matcher -+ if (!url_matches(c_url, c_url_sep, c_url_lower, c_url_lower_sep, entry)) -+ continue; -+ -+ // finally check first/third-party -+ if (!url_match_party(entry, url, origin_host, checked_fp, fp)) -+ continue; -+ -+#ifdef ADBLOCK_LOG -+ if (!intercept) { -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, -+ "--> intercept (#%d: \"%s\") (%x)", i, -+ entry->matches[0], entry->flags); -+ } else { -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "--> pass (%d) (#%d)", i, -+ entry->flags); -+ } -+#endif -+ intercept = !intercept; -+ } // for each entry -+ -+ free(c_url_sep); -+ free(c_url_lower); -+ free(c_url_lower_sep); -+ -+ if (intercept) { -+#ifdef ADBLOCK_LOG -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "blocked"); -+#endif -+ return 1; -+ } -+#ifdef ADBLOCK_LOG -+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "pass"); -+#endif -+ } -+ return 0; -+} -+ -+} // namespace net -diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_intercept.h -new file mode 100644 ---- /dev/null -+++ b/net/url_request/adblock_intercept.h -@@ -0,0 +1,16 @@ -+#ifndef NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_ -+#define NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_ -+ -+#include "url/gurl.h" -+ -+namespace net { -+ -+#ifdef ADB_TESTER -+int adblock_rules_count(); -+#endif -+ -+int adblock_intercept(const GURL &url, const std::string &origin_host); -+ -+} // namespace net -+ -+#endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_ -diff --git a/net/url_request/nochromo_intercept.cc b/net/url_request/nochromo_intercept.cc -deleted file mode 100644 ---- a/net/url_request/nochromo_intercept.cc -+++ /dev/null -@@ -1,116 +0,0 @@ --#include "url/gurl.h" --#include "net/url_request/nochromo_entries.h" -- --#include -- --namespace net { -- --#define NOCHROMO_LOG 0 --#define NOCHROMO_LOG_MORE 0 -- --static char* strtolower(const char* str) { -- int len = strlen(str); -- char* ret = (char*)malloc(len + 1); -- ret[len] = '\0'; -- for (int i = 0; i < len; i++) { -- if ((65 <= str[i]) && (str[i] <= 90)) { -- ret[i] = str[i] + 32; -- } else { -- ret[i] = str[i]; -- } -- } -- return ret; --} -- --static char* strtosep(const char* str) { -- int len = strlen(str); -- char* ret = (char*)malloc(len + 3); -- ret[0] = '^'; -- ret[len + 1] = '^'; -- ret[len + 2] = '\0'; -- for (int i = 0; i < len; i++) { -- if ((str[i] == ':') || (str[i] == '/') || (str[i] == '?') || (str[i] == '&') || (str[i] == '=')) { -- ret[i + 1] = '^'; -- } else { -- ret[i + 1] = str[i]; -- } -- } -- return ret; --} -- --int nochromo_intercept(const GURL& url) { -- if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) { -- const char* c_url = url.spec().c_str(); -- char* c_url_lower = strtolower(c_url); -- char* c_url_sep = strtosep(c_url); -- char* c_url_lower_sep = strtosep(c_url_lower); -- -- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s]", c_url); -- -- bool intercept = false; -- for (int i = 0; i < NOCHROMO_ENTRY_COUNT; i++) { -- nochromo_entry* entry = &NOCHROMO_ENTRIES[i]; -- -- // no use checking rules when we're intercepting, or exceptions when not -- bool check = -- (!intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) == 0)) || -- (intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) != 0)); -- -- if (check) { -- bool match = false; -- -- // select comparison string based on case and separator presence (separator takes some shortcuts) -- bool match_case = ((entry->flags & NOCHROMO_FLAG_MATCH_CASE) != 0); -- bool match_separator = ((entry->flags & NOCHROMO_FLAG_HAS_SEPARATOR) != 0); -- const char* match_url = match_case ? (match_separator ? c_url_sep : c_url) : (match_separator ? c_url_lower_sep : c_url_lower); -- -- if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[case:%d][sep:%d][%s]", match_case, match_separator, match_url); -- -- // check for all match parts at >= position of last match -- const char* last = match_url; -- for (int m = 0; m < entry->matchcount; m++) { -- const char* pos = strstr(last, entry->matches[m]); -- match = (pos != NULL); -- -- if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s][found:%d][match:%d]", entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0); -- -- // check if the url starts with the first match part -- if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_BEGIN) != 0) && (pos != match_url)) match = false; -- -- // check if the url ends with the last match part -- if (match && (m == entry->matchcount - 1) && ((entry->flags & NOCHROMO_FLAG_MATCH_END) != 0) && (pos != &match_url[strlen(match_url) - strlen(entry->matches[m])])) match = false; -- -- // check domain match -- if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_DOMAIN) != 0) && (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') && (pos[-1] != '/')) match = false; -- -- // short circuit -- if (!match) break; -- } -- -- if (match) { -- if (NOCHROMO_LOG) { -- if (!intercept) { -- __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> intercept (%d) (%d)", i, entry->flags); -- } else { -- __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> pass (%d) (%d)", i, entry->flags); -- } -- } -- intercept = !intercept; -- } -- } -- } -- -- free(c_url_sep); -- free(c_url_lower); -- free(c_url_lower_sep); -- -- if (intercept) { -- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "intercepted!"); -- return 1; -- } -- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "pass!"); -- } -- return 0; --} -- --} // namespace net -\ No newline at end of file -diff --git a/net/url_request/nochromo_intercept.h b/net/url_request/nochromo_intercept.h -deleted file mode 100644 ---- a/net/url_request/nochromo_intercept.h -+++ /dev/null -@@ -1,13 +0,0 @@ --#ifndef NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ --#define NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ -- --#include "url/gurl.h" -- --namespace net { -- --GURL nochromo_intercepted = GURL("http://127.0.0.1/"); --int nochromo_intercept(const GURL& url); -- --} // namespace net -- --#endif // NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_ -diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc ---- a/net/url_request/url_request.cc -+++ b/net/url_request/url_request.cc -@@ -44,7 +44,9 @@ - #include "url/gurl.h" - #include "url/origin.h" - --#include "net/url_request/nochromo_intercept.h" -+#if defined(OS_ANDROID) -+#include "net/url_request/adblock_intercept.h" -+#endif - - #if BUILDFLAG(ENABLE_REPORTING) - #include "net/network_error_logging/network_error_logging_service.h" -@@ -559,7 +561,9 @@ URLRequest::URLRequest(const GURL& url, - : context->network_delegate()), - net_log_(NetLogWithSource::Make(context->net_log(), - NetLogSourceType::URL_REQUEST)), -+#if !defined(OS_ANDROID) - url_chain_(1, url), -+#endif - attach_same_site_cookies_(false), - method_("GET"), - referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), -@@ -585,7 +589,18 @@ URLRequest::URLRequest(const GURL& url, - // Sanity check out environment. - DCHECK(base::ThreadTaskRunnerHandle::IsSet()); - -- if (nochromo_intercept(url)) url_chain_.push_back(nochromo_intercepted); -+#if defined(OS_ANDROID) -+ std::string initiatorHost; -+ if (initiator_.has_value()) { -+ initiatorHost = initiator_.value().host(); -+ } -+ -+ if (adblock_intercept(url, initiatorHost)) { -+ url_chain_ = { url, GURL("http://127.0.0.1") }; -+ } else { -+ url_chain_ = { url }; -+ } -+#endif - - context->url_requests()->insert(this); - net_log_.BeginEvent( --- -2.7.4 - diff --git a/patches/BRM040_User-Agent-anonymize.patch b/patches/BRM040_User-Agent-anonymize.patch deleted file mode 100644 index 1c3577ff..00000000 --- a/patches/BRM040_User-Agent-anonymize.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 21 Mar 2018 14:15:28 +0100 -Subject: User Agent: anonymize - -Remove device name and build id ---- - content/common/user_agent.cc | 25 ++----------------------- - 1 file changed, 2 insertions(+), 23 deletions(-) - -diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc ---- a/content/common/user_agent.cc -+++ b/content/common/user_agent.cc -@@ -79,26 +79,6 @@ std::string BuildOSCpuInfo() { - - #if defined(OS_ANDROID) - std::string android_version_str = base::SysInfo::OperatingSystemVersion(); -- -- std::string android_info_str; -- -- // Send information about the device. -- bool semicolon_inserted = false; -- std::string android_build_codename = base::SysInfo::GetAndroidBuildCodename(); -- std::string android_device_name = base::SysInfo::HardwareModelName(); -- if ("REL" == android_build_codename && android_device_name.size() > 0) { -- android_info_str += "; " + android_device_name; -- semicolon_inserted = true; -- } -- -- // Append the build ID. -- std::string android_build_id = base::SysInfo::GetAndroidBuildID(); -- if (android_build_id.size() > 0) { -- if (!semicolon_inserted) { -- android_info_str += ";"; -- } -- android_info_str += " Build/" + android_build_id; -- } - #endif - - base::StringAppendF( -@@ -121,9 +101,8 @@ std::string BuildOSCpuInfo() { - os_minor_version, - os_bugfix_version - #elif defined(OS_ANDROID) -- "Android %s%s", -- android_version_str.c_str(), -- android_info_str.c_str() -+ "Android %s", -+ android_version_str.c_str() - #else - "%s %s", - unixinfo.sysname, // e.g. Linux --- -2.7.4 - diff --git a/patches/BRM041_Battery-API-return-nothing.patch b/patches/BRM041_Battery-API-return-nothing.patch deleted file mode 100644 index b7aef748..00000000 --- a/patches/BRM041_Battery-API-return-nothing.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Thu, 22 Mar 2018 22:11:57 +0100 -Subject: Battery API: return nothing - ---- - services/device/battery/battery_status_service.cc | 2 +- - .../renderer/modules/battery/battery_manager.cc | 25 ++++------------------ - 2 files changed, 5 insertions(+), 22 deletions(-) - -diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc ---- a/services/device/battery/battery_status_service.cc -+++ b/services/device/battery/battery_status_service.cc -@@ -41,7 +41,7 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) { - if (!battery_fetcher_) - battery_fetcher_ = BatteryStatusManager::Create(update_callback_); - --#if 0 -+#if !defined(OS_ANDROID) - if (callback_list_.empty()) { - bool success = battery_fetcher_->StartListeningBatteryChange(); - // On failure pass the default values back. -diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc ---- a/third_party/blink/renderer/modules/battery/battery_manager.cc -+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc -@@ -42,45 +42,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) { - } - - bool BatteryManager::charging() { -- return battery_status_.Charging(); -+ return false; - } - - double BatteryManager::chargingTime() { -- return battery_status_.charging_time(); -+ return 0; - } - - double BatteryManager::dischargingTime() { -- return battery_status_.discharging_time(); -+ return 0; - } - - double BatteryManager::level() { -- return battery_status_.Level(); -+ return 1; - } - - void BatteryManager::DidUpdateData() { - DCHECK(battery_property_); - -- BatteryStatus old_status = battery_status_; -- battery_status_ = *BatteryDispatcher::Instance().LatestData(); -- - if (battery_property_->GetState() == ScriptPromisePropertyBase::kPending) { - battery_property_->Resolve(this); - return; - } -- -- Document* document = ToDocument(GetExecutionContext()); -- DCHECK(document); -- if (document->IsContextPaused() || document->IsContextDestroyed()) -- return; -- -- if (battery_status_.Charging() != old_status.Charging()) -- DispatchEvent(Event::Create(EventTypeNames::chargingchange)); -- if (battery_status_.charging_time() != old_status.charging_time()) -- DispatchEvent(Event::Create(EventTypeNames::chargingtimechange)); -- if (battery_status_.discharging_time() != old_status.discharging_time()) -- DispatchEvent(Event::Create(EventTypeNames::dischargingtimechange)); -- if (battery_status_.Level() != old_status.Level()) -- DispatchEvent(Event::Create(EventTypeNames::levelchange)); - } - - void BatteryManager::RegisterWithDispatcher() { --- -2.7.4 - diff --git a/patches/BRM042_Disable-plugins-enumeration.patch b/patches/BRM042_Disable-plugins-enumeration.patch deleted file mode 100644 index 56e2276f..00000000 --- a/patches/BRM042_Disable-plugins-enumeration.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Thu, 22 Mar 2018 22:38:00 +0100 -Subject: Disable plugins enumeration - ---- - third_party/blink/renderer/core/frame/local_frame.cc | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc ---- a/third_party/blink/renderer/core/frame/local_frame.cc -+++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1175,10 +1175,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { - } - - PluginData* LocalFrame::GetPluginData() const { -- if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) -- return nullptr; -- return GetPage()->GetPluginData( -- Tree().Top().GetSecurityContext()->GetSecurityOrigin()); -+ // what about no -+ return nullptr; - } - - DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); --- -2.7.4 - diff --git a/patches/BRM043_AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch b/patches/BRM043_AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch deleted file mode 100644 index 24803ee1..00000000 --- a/patches/BRM043_AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 25 Mar 2018 21:49:37 +0200 -Subject: AudioBuffer, AnalyserNode: fingerprinting mitigations via IDL - -Return fixed base latency ---- - third_party/blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- - third_party/blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- - third_party/blink/renderer/modules/webaudio/audio_context.cc | 2 +- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl ---- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl -+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl -@@ -42,10 +42,10 @@ interface AnalyserNode : AudioNode { - - // Copies the current frequency data into the passed array. - // If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped. -- void getFloatFrequencyData(Float32Array array); -- void getByteFrequencyData(Uint8Array array); -+ //void getFloatFrequencyData(Float32Array array); -+ //void getByteFrequencyData(Uint8Array array); - - // Real-time waveform data -- void getFloatTimeDomainData(Float32Array array); -- void getByteTimeDomainData(Uint8Array array); -+ //void getFloatTimeDomainData(Float32Array array); -+ //void getByteTimeDomainData(Uint8Array array); - }; -diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl ---- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl -+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl -@@ -38,7 +38,7 @@ - - // Channel access - readonly attribute unsigned long numberOfChannels; -- [RaisesException] Float32Array getChannelData(unsigned long channelIndex); -- [RaisesException] void copyFromChannel(Float32Array destination, long channelNumber, optional unsigned long startInChannel = 0); -+ //[RaisesException] Float32Array getChannelData(unsigned long channelIndex); -+ //[RaisesException] void copyFromChannel(Float32Array destination, long channelNumber, optional unsigned long startInChannel = 0); - [RaisesException] void copyToChannel(Float32Array source, long channelNumber, optional unsigned long startInChannel = 0); - }; -diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc ---- a/third_party/blink/renderer/modules/webaudio/audio_context.cc -+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -261,7 +261,7 @@ void AudioContext::StopRendering() { - } - - double AudioContext::baseLatency() const { -- return FramesPerBuffer() / static_cast(sampleRate()); -+ return 0.04; - } - - } // namespace blink --- -2.7.4 - diff --git a/patches/BRM044_Add-menu-option-to-toggle-global-Javascript-preference.patch b/patches/BRM044_Add-menu-option-to-toggle-global-Javascript-preference.patch deleted file mode 100644 index 011bdf59..00000000 --- a/patches/BRM044_Add-menu-option-to-toggle-global-Javascript-preference.patch +++ /dev/null @@ -1,183 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:26:53 +0200 -Subject: Add menu option to toggle global Javascript preference - ---- - chrome/android/java/res/menu/custom_tabs_menu.xml | 13 ++++++++ - chrome/android/java/res/menu/main_menu.xml | 13 ++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../browser/appmenu/AppMenuPropertiesDelegate.java | 37 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../java/strings/android_chrome_strings.grd | 11 +++++++ - 7 files changed, 91 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -49,6 +49,19 @@ - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml ---- a/chrome/android/java/res/menu/main_menu.xml -+++ b/chrome/android/java/res/menu/main_menu.xml -@@ -59,6 +59,19 @@ - android:title="@string/menu_add_to_homescreen" /> - -+ -+ -+ -+ -+ -+ -+ -+ - - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2050,6 +2050,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity - final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent(); - currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange); - RecordUserAction.record("MobileMenuRequestDesktopSite"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled(); -+ PrefServiceBridge.getInstance().setJavaScriptEnabled(!jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); - } else { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1710,6 +1710,14 @@ public class ChromeTabbedActivity - NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); - } - RecordUserAction.record("MobileMenuDownloadManager"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled(); -+ PrefServiceBridge.getInstance().setJavaScriptEnabled(!jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.open_recently_closed_tab) { - TabModel currentModel = mTabModelSelectorImpl.getCurrentModel(); - if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java -@@ -214,6 +214,8 @@ public class AppMenuPropertiesDelegate { - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); - -+ updateEnableJavascriptMenuItem(menu, currentTab); -+ - // Only display reader mode settings menu option if the current page is in reader mode. - menu.findItem(R.id.reader_mode_prefs_id) - .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl())); -@@ -469,4 +471,39 @@ public class AppMenuPropertiesDelegate { - - return chromeHomeMenuItemFlagEnabled && !sHideChromeHomeMenuItems; - } -+ -+ /** -+ * Updates the enable JavaScript item's state. -+ * -+ * @param menu {@link Menu} for enable javascript -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableJavascriptMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id); -+ -+ // Hide enable javascript on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled(); -+ -+ // Mark the checkbox if Javascript is activated on this tab. -+ enableMenuCheck.setChecked(jsEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(jsEnabled -+ ? mActivity.getString(R.string.menu_enable_javascript_on) -+ : mActivity.getString(R.string.menu_enable_javascript_off)); -+ } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -171,6 +171,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); -+ updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); - } - } -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2548,6 +2548,17 @@ Google may use your browsing activity, content on some sites you visit, and othe - - Find in page - -+ -+ -+ Enable JavaScript -+ -+ -+ Turn off JavaScript -+ -+ -+ Turn on JavaScript -+ -+ - - Desktop site - --- -2.7.4 - diff --git a/patches/BRM045_Remove-google-account-access-permission-on-reboot.patch b/patches/BRM045_Remove-google-account-access-permission-on-reboot.patch deleted file mode 100644 index 4770636d..00000000 --- a/patches/BRM045_Remove-google-account-access-permission-on-reboot.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: SergeyZhukovsky -Date: Tue, 15 Aug 2017 15:33:16 -0400 -Subject: Remove google account access permission on reboot - ---- - chrome/android/BUILD.gn | 3 +-- - chrome/android/java/AndroidManifest.xml | 4 ++-- - 2 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ---- a/chrome/android/BUILD.gn -+++ b/chrome/android/BUILD.gn -@@ -784,8 +784,7 @@ jinja_template_resources("chrome_public_apk_template_resources") { - 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", -+ "java/res_template/xml/searchable.xml" - ] - res_dir = "java/res_template" - variables = chrome_public_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 -@@ -804,14 +804,14 @@ by a child template that "extends" this file. - - - -- - - - - -- -+ --> - - - --- -2.7.4 - diff --git a/patches/BRM046_Punt-the-Widevine-version-string.patch b/patches/BRM046_Punt-the-Widevine-version-string.patch deleted file mode 100644 index 4d01f500..00000000 --- a/patches/BRM046_Punt-the-Widevine-version-string.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 2 Apr 2018 11:36:02 +0200 -Subject: Punt the Widevine version string - -Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromium-browser.wily.beta/view/head:/debian/patches/fix_building_widevinecdm_with_chromium.patch ---- - chrome/common/chrome_content_client.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc ---- a/chrome/common/chrome_content_client.cc -+++ b/chrome/common/chrome_content_client.cc -@@ -526,7 +526,7 @@ void ChromeContentClient::AddContentDecryptionModules( - bool supports_persistent_license = false; - if (IsWidevineAvailable(&cdm_path, &video_codecs_supported, - &supports_persistent_license)) { -- const base::Version version(WIDEVINE_CDM_VERSION_STRING); -+ const base::Version version("1.0.123.456"); - DCHECK(version.IsValid()); - - cdms->push_back(content::CdmInfo( --- -2.7.4 - diff --git a/patches/BRM047_Disable-metrics-on-all-I-O-threads.patch b/patches/BRM047_Disable-metrics-on-all-I-O-threads.patch deleted file mode 100644 index cb130d29..00000000 --- a/patches/BRM047_Disable-metrics-on-all-I-O-threads.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 25 Apr 2018 10:23:51 +0200 -Subject: Disable metrics on all I/O threads - ---- - chrome/browser/profiles/profile_io_data.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc ---- a/chrome/browser/profiles/profile_io_data.cc -+++ b/chrome/browser/profiles/profile_io_data.cc -@@ -964,7 +964,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() { - - bool ProfileIOData::GetMetricsEnabledStateOnIOThread() const { - DCHECK_CURRENTLY_ON(BrowserThread::IO); -- return enable_metrics_.GetValue(); -+ return false; - } - - chrome_browser_net::Predictor* ProfileIOData::GetPredictor() { --- -2.7.4 - diff --git a/patches/BRM048_Enable-DNS-over-HTTPS-by-default.patch b/patches/BRM048_Enable-DNS-over-HTTPS-by-default.patch deleted file mode 100644 index 290e16f8..00000000 --- a/patches/BRM048_Enable-DNS-over-HTTPS-by-default.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 28 Apr 2018 08:30:26 +0200 -Subject: Enable DNS-over-HTTPS by default - ---- - components/network_session_configurator/common/network_features.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc ---- a/components/network_session_configurator/common/network_features.cc -+++ b/components/network_session_configurator/common/network_features.cc -@@ -10,6 +10,6 @@ const base::Feature kTokenBinding{"token-binding", - base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kDnsOverHttps{"dns-over-https", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - } // namespace features --- -2.7.4 - diff --git a/patches/BRM049_Add-fingerprinting-mitigation-for-getClientRects-getBoundingClientRect.patch b/patches/BRM049_Add-fingerprinting-mitigation-for-getClientRects-getBoundingClientRect.patch deleted file mode 100644 index 80ed1de2..00000000 --- a/patches/BRM049_Add-fingerprinting-mitigation-for-getClientRects-getBoundingClientRect.patch +++ /dev/null @@ -1,130 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Fri, 30 Mar 2018 10:09:03 +0200 -Subject: Add fingerprinting mitigation for getClientRects, - getBoundingClientRect - -Scale the result of Range::getClientRects and Element::getBoundingClientRect -by a random +/-3% of the original value for each float in the Rect/Quad. -The random value is generated once for each Document and re-used for all the -attached elements. -The rationale is that such value, albeit constant within the rendered Document, -is within the same order of magniture of the floating point precision being -used for fingerprinting and sufficient to poison the well. - -See also: http://www.gsd.inesc-id.pt/~mpc/pubs/fingerprinting-trustcom2016.pdf ---- - third_party/blink/renderer/core/dom/document.cc | 14 ++++++++++++++ - third_party/blink/renderer/core/dom/document.h | 5 +++++ - third_party/blink/renderer/core/dom/element.cc | 7 +++++++ - third_party/blink/renderer/core/dom/range.cc | 8 +++++++- - 4 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc ---- a/third_party/blink/renderer/core/dom/document.cc -+++ b/third_party/blink/renderer/core/dom/document.cc -@@ -279,6 +279,8 @@ - - #include "extensions/anti_amp_cure.h" - -+#include "base/rand_util.h" -+ - #ifndef NDEBUG - using WeakDocumentSet = - blink::PersistentHeapHashSet>; -@@ -740,6 +742,10 @@ Document::Document(const DocumentInit& initializer, - #ifndef NDEBUG - liveDocumentSet().insert(this); - #endif -+ -+ // add +/- 3% noise against fingerprinting -+ shuffleFactorX_ = 1 + (base::RandDouble() - 0.5) * 0.03; -+ shuffleFactorY_ = 1 + (base::RandDouble() - 0.5) * 0.03; - } - - Document::~Document() { -@@ -766,6 +772,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope, - Position::BeforeNode(*shadow_host)); - } - -+double Document::GetShuffleFactorX() { -+ return shuffleFactorX_; -+} -+ -+double Document::GetShuffleFactorY() { -+ return shuffleFactorY_; -+} -+ - SelectorQueryCache& Document::GetSelectorQueryCache() { - if (!selector_query_cache_) - selector_query_cache_ = std::make_unique(); -diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h ---- a/third_party/blink/renderer/core/dom/document.h -+++ b/third_party/blink/renderer/core/dom/document.h -@@ -408,6 +408,9 @@ class CORE_EXPORT Document : public ContainerNode, - - String origin() const; - -+ double GetShuffleFactorX(); -+ double GetShuffleFactorY(); -+ - String visibilityState() const; - mojom::PageVisibilityState GetPageVisibilityState() const; - bool hidden() const; -@@ -1670,6 +1673,8 @@ class CORE_EXPORT Document : public ContainerNode, - - double start_time_; - -+ double shuffleFactorX_, shuffleFactorY_; -+ - TraceWrapperMember script_runner_; - - HeapVector> current_script_stack_; -diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc ---- a/third_party/blink/renderer/core/dom/element.cc -+++ b/third_party/blink/renderer/core/dom/element.cc -@@ -1348,6 +1348,11 @@ DOMRectList* Element::getClientRects() { - DCHECK(element_layout_object); - GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom( - quads, *element_layout_object); -+ -+ for (FloatQuad& quad : quads) { -+ quad.Scale(GetDocument().GetShuffleFactorX(), GetDocument().GetShuffleFactorY()); -+ } -+ - return DOMRectList::Create(quads); - } - -@@ -1365,6 +1370,8 @@ DOMRect* Element::getBoundingClientRect() { - DCHECK(element_layout_object); - GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result, - *element_layout_object); -+ result.Scale(GetDocument().GetShuffleFactorX(), GetDocument().GetShuffleFactorY()); -+ - return DOMRect::FromFloatRect(result); - } - -diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc ---- a/third_party/blink/renderer/core/dom/range.cc -+++ b/third_party/blink/renderer/core/dom/range.cc -@@ -1575,11 +1575,17 @@ DOMRectList* Range::getClientRects() const { - Vector quads; - GetBorderAndTextQuads(quads); - -+ for (FloatQuad& quad : quads) { -+ quad.Scale(owner_document_->GetShuffleFactorX(), owner_document_->GetShuffleFactorY()); -+ } -+ - return DOMRectList::Create(quads); - } - - DOMRect* Range::getBoundingClientRect() const { -- return DOMRect::FromFloatRect(BoundingRect()); -+ auto rect = BoundingRect(); -+ rect.Scale(owner_document_->GetShuffleFactorX(), owner_document_->GetShuffleFactorY()); -+ return DOMRect::FromFloatRect(rect); - } - - // TODO(editing-dev): We should make --- -2.7.4 - diff --git a/patches/BRM050_Disable-custom-tab-activities-permanently.patch b/patches/BRM050_Disable-custom-tab-activities-permanently.patch deleted file mode 100644 index dc905be4..00000000 --- a/patches/BRM050_Disable-custom-tab-activities-permanently.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 2 May 2018 01:04:07 +0200 -Subject: Disable custom tab activities permanently - ---- - .../src/org/chromium/chrome/browser/LaunchIntentDispatcher.java | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -149,9 +149,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega - recordIntentMetrics(); - - mIsVrIntent = VrIntentUtils.isVrIntent(mIntent); -- boolean isCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent)) -- || (mIsVrIntent && VrIntentUtils.isCustomTabVrIntent(mIntent)); -- mIsCustomTabIntent = isCustomTabIntent; -+ //boolean isCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent)) -+ // || (mIsVrIntent && VrIntentUtils.isCustomTabVrIntent(mIntent)); -+ //mIsCustomTabIntent = isCustomTabIntent; -+ mIsCustomTabIntent = false; - } - - /** --- -2.7.4 - diff --git a/patches/BRM051_Canvas-fingerprinting-mitigations-via-IDL.patch b/patches/BRM051_Canvas-fingerprinting-mitigations-via-IDL.patch deleted file mode 100644 index f5c837d3..00000000 --- a/patches/BRM051_Canvas-fingerprinting-mitigations-via-IDL.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 24 Mar 2018 05:18:03 +0100 -Subject: Canvas: fingerprinting mitigations via IDL - -Disable toDataURL, toBlob, getImageData and webGL renderering info ---- - third_party/blink/renderer/core/html/canvas/html_canvas_element.idl | 4 ++-- - .../renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl | 4 ++-- - third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc | 4 ++-- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl ---- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl -+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl -@@ -37,9 +37,9 @@ interface HTMLCanvasElement : HTMLElement - // Note: The arguments argument is variadic in the spec, but not here as - // only one extra argument is actually used. - // FIXME: type should not have a default value. -- [MeasureAs=CanvasToDataURL, RaisesException] DOMString toDataURL(optional DOMString type = null, optional any arguments); -+ //[MeasureAs=CanvasToDataURL, RaisesException] DOMString toDataURL(optional DOMString type = null, optional any arguments); - -- [MeasureAs=CanvasToBlob, RaisesException] void toBlob(BlobCallback _callback, optional DOMString type = null, optional any arguments); -+ //[MeasureAs=CanvasToBlob, RaisesException] void toBlob(BlobCallback _callback, optional DOMString type = null, optional any arguments); - }; - - // https://html.spec.whatwg.org/multipage/canvas.html#blobcallback -diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl ---- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl -+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl -@@ -110,7 +110,7 @@ interface CanvasRenderingContext2D { - // text (see also the CanvasDrawingStyles interface) - void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth); - void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth); -- TextMetrics measureText(DOMString text); -+ //TextMetrics measureText(DOMString text); - - // drawing images - [CallWith=ScriptState, RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y); -@@ -125,7 +125,7 @@ interface CanvasRenderingContext2D { - // pixel manipulation - [RaisesException] ImageData createImageData(ImageData imagedata); - [RaisesException] ImageData createImageData(long sw, long sh); -- [RaisesException] ImageData getImageData(long sx, long sy, long sw, long sh); -+ //[RaisesException] ImageData getImageData(long sx, long sy, long sw, long sh); - [RaisesException] void putImageData(ImageData imagedata, long dx, long dy); - [RaisesException] void putImageData(ImageData imagedata, long dx, long dy, long dirtyX, long dirtyY, long dirtyWidth, long dirtyHeight); - -diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc ---- a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc -+++ b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc -@@ -37,11 +37,11 @@ WebGLExtensionName WebGLDebugRendererInfo::GetName() const { - - WebGLDebugRendererInfo* WebGLDebugRendererInfo::Create( - WebGLRenderingContextBase* context) { -- return new WebGLDebugRendererInfo(context); -+ return nullptr; - } - - bool WebGLDebugRendererInfo::Supported(WebGLRenderingContextBase*) { -- return true; -+ return false; - } - - const char* WebGLDebugRendererInfo::ExtensionName() { --- -2.7.4 - diff --git a/patches/BRM052_Started-work-on-canvas-randomisation.patch b/patches/BRM052_Started-work-on-canvas-randomisation.patch deleted file mode 100644 index a70d75b2..00000000 --- a/patches/BRM052_Started-work-on-canvas-randomisation.patch +++ /dev/null @@ -1,273 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 30 Apr 2018 15:39:58 +0200 -Subject: Started work on canvas randomisation - -Add shuffling for TextMetrics ---- - .../renderer/core/html/canvas/canvas_async_blob_creator.cc | 14 +++++++------- - .../renderer/core/html/canvas/canvas_async_blob_creator.h | 6 +++--- - .../blink/renderer/core/html/canvas/html_canvas_element.cc | 4 ++-- - .../blink/renderer/core/html/canvas/text_metrics.cc | 4 ++++ - third_party/blink/renderer/core/html/canvas/text_metrics.h | 2 ++ - .../blink/renderer/core/inspector/InspectorAuditsAgent.cpp | 2 +- - .../renderer/core/offscreencanvas/offscreen_canvas.cc | 6 +++++- - .../renderer/modules/accessibility/ax_layout_object.cc | 2 +- - .../modules/canvas/canvas2d/base_rendering_context_2d.cc | 3 +++ - .../modules/canvas/canvas2d/canvas_rendering_context_2d.cc | 6 +++++- - .../blink/renderer/platform/graphics/image_data_buffer.cc | 6 ++++-- - .../blink/renderer/platform/graphics/image_data_buffer.h | 3 ++- - 12 files changed, 39 insertions(+), 19 deletions(-) - -diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc ---- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc -+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc -@@ -218,14 +218,14 @@ void CanvasAsyncBlobCreator::Dispose() { - image_ = nullptr; - } - --bool CanvasAsyncBlobCreator::EncodeImage(const double& quality) { -+bool CanvasAsyncBlobCreator::EncodeImage(const double& quality, const double shuffleAmt) { - std::unique_ptr buffer = ImageDataBuffer::Create(src_data_); - if (!buffer) - return false; -- return buffer->EncodeImage("image/webp", quality, &encoded_image_); -+ return buffer->EncodeImage("image/webp", quality, shuffleAmt, &encoded_image_); - } - --void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) { -+void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality, const double shuffleAmt) { - if (!static_bitmap_image_loaded_) { - context_->GetTaskRunner(TaskType::kCanvasBlobSerialization) - ->PostTask(FROM_HERE, -@@ -239,7 +239,7 @@ void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) { - // When OffscreenCanvas.convertToBlob() occurs on worker thread, - // we do not need to use background task runner to reduce load on main. - // So we just directly encode images on the worker thread. -- if (!EncodeImage(quality)) { -+ if (!EncodeImage(quality, shuffleAmt)) { - context_->GetTaskRunner(TaskType::kCanvasBlobSerialization) - ->PostTask( - FROM_HERE, -@@ -258,7 +258,7 @@ void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) { - BackgroundTaskRunner::PostOnBackgroundThread( - FROM_HERE, - CrossThreadBind(&CanvasAsyncBlobCreator::EncodeImageOnEncoderThread, -- WrapCrossThreadPersistent(this), quality)); -+ WrapCrossThreadPersistent(this), quality, shuffleAmt)); - } - } else { - idle_task_status_ = kIdleTaskNotStarted; -@@ -430,11 +430,11 @@ void CanvasAsyncBlobCreator::CreateNullAndReturnResult() { - Dispose(); - } - --void CanvasAsyncBlobCreator::EncodeImageOnEncoderThread(double quality) { -+void CanvasAsyncBlobCreator::EncodeImageOnEncoderThread(double quality, double shuffleAmt) { - DCHECK(!IsMainThread()); - DCHECK(mime_type_ == kMimeTypeWebp); - -- if (!EncodeImage(quality)) { -+ if (!EncodeImage(quality, shuffleAmt)) { - PostCrossThreadTask( - *parent_frame_task_runner_, FROM_HERE, - CrossThreadBind(&CanvasAsyncBlobCreator::CreateNullAndReturnResult, -diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h ---- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h -+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h -@@ -38,7 +38,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator - ExecutionContext*, - ScriptPromiseResolver*); - -- void ScheduleAsyncBlobCreation(const double& quality); -+ void ScheduleAsyncBlobCreation(const double& quality, const double shuffleAmt); - virtual ~CanvasAsyncBlobCreator(); - enum MimeType { - kMimeTypePng, -@@ -130,7 +130,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator - Member script_promise_resolver_; - - void LoadStaticBitmapImage(); -- bool EncodeImage(const double&); -+ bool EncodeImage(const double&, const double); - - // PNG, JPEG - bool InitializeEncoder(double quality); -@@ -138,7 +138,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator - // without deadline - - // WEBP -- void EncodeImageOnEncoderThread(double quality); -+ void EncodeImageOnEncoderThread(double quality, double shuffleAmt); - - void IdleTaskStartTimeoutEvent(double quality); - void IdleTaskCompleteTimeoutEvent(); -diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc ---- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -@@ -850,7 +850,7 @@ String HTMLCanvasElement::ToDataURLInternal( - std::unique_ptr data_buffer = - ImageDataBuffer::Create(image_bitmap); - if (data_buffer) -- return data_buffer->ToDataURL(encoding_mime_type, quality); -+ return data_buffer->ToDataURL(encoding_mime_type, quality, GetDocument().GetShuffleFactorX()); - } - return String("data:,"); - } -@@ -916,7 +916,7 @@ void HTMLCanvasElement::toBlob(V8BlobCallback* callback, - } - - if (async_creator) { -- async_creator->ScheduleAsyncBlobCreation(quality); -+ async_creator->ScheduleAsyncBlobCreation(quality, GetDocument().GetShuffleFactorX()); - } else { - GetDocument() - .GetTaskRunner(TaskType::kCanvasBlobSerialization) -diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc ---- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc -+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc -@@ -47,6 +47,10 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline, - return 0; - } - -+void TextMetrics::Shuffle(const double amt) { -+ //TODO: shuffle here -+} -+ - void TextMetrics::Update(const Font& font, - const TextDirection& direction, - const TextBaseline& baseline, -diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h ---- a/third_party/blink/renderer/core/html/canvas/text_metrics.h -+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h -@@ -67,6 +67,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { - - static float GetFontBaseline(const TextBaseline&, const FontMetrics&); - -+ void Shuffle(const double amt); -+ - private: - void Update(const Font&, - const TextDirection&, -diff --git a/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp b/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp ---- a/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp -+++ b/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp -@@ -56,7 +56,7 @@ bool EncodeAsImage(char* body, - - String mime_type = "image/"; - mime_type.append(encoding); -- return image_to_encode->EncodeImage(mime_type, quality, output); -+ return image_to_encode->EncodeImage(mime_type, quality, 0, output); - } - - } // namespace -diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc ---- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc -+++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc -@@ -5,6 +5,7 @@ - #include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h" - - #include -+#include "base/rand_util.h" - #include - - #include "gpu/config/gpu_feature_info.h" -@@ -403,7 +404,10 @@ ScriptPromise OffscreenCanvas::convertToBlob(ScriptState* script_state, - CanvasAsyncBlobCreator* async_creator = CanvasAsyncBlobCreator::Create( - snapshot, encoding_mime_type, start_time, - ExecutionContext::From(script_state), resolver); -- async_creator->ScheduleAsyncBlobCreation(options.quality()); -+ -+ // add +/- 3% noise against fingerprinting -+ double shuffleAmt = (base::RandDouble() - 0.5) * 0.03; -+ async_creator->ScheduleAsyncBlobCreation(options.quality(), shuffleAmt); - return resolver->Promise(); - } else { - exception_state.ThrowDOMException( -diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc ---- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc -+++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc -@@ -1009,7 +1009,7 @@ String AXLayoutObject::ImageDataUrl(const IntSize& max_size) const { - if (!buffer) - return String(); - -- return buffer->ToDataURL("image/png", 1.0); -+ return buffer->ToDataURL("image/png", 1.0, document->GetShuffleFactorX()); - } - - String AXLayoutObject::GetText() const { -diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc ---- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -1620,6 +1620,9 @@ ImageData* BaseRenderingContext2D::getImageData( - const CanvasColorParams& color_params = ColorParams(); - scoped_refptr snapshot = GetImage(kPreferNoAcceleration); - -+ //TODO: calculate some random value and use it to shuffle pixel data in 'snapshot' -+ // it should StaticBitmapImage somehow -+ - if (!StaticBitmapImage::ConvertToArrayBufferContents( - snapshot, contents, image_data_rect, color_params, IsAccelerated())) { - exception_state.ThrowRangeError("Out of memory at ImageData creation"); -diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc ---- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -@@ -773,8 +773,12 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { - else - direction = ToTextDirection(GetState().GetDirection(), canvas()); - -- return TextMetrics::Create(font, direction, GetState().GetTextBaseline(), -+ TextMetrics* textMetrics = TextMetrics::Create(font, direction, GetState().GetTextBaseline(), - GetState().GetTextAlign(), text); -+ -+ textMetrics->Shuffle(canvas()->GetDocument().GetShuffleFactorX()); -+ -+ return textMetrics; - } - - void CanvasRenderingContext2D::DrawTextInternal( -diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc ---- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc -+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc -@@ -118,7 +118,9 @@ const unsigned char* ImageDataBuffer::Pixels() const { - - bool ImageDataBuffer::EncodeImage(const String& mime_type, - const double& quality, -+ const double shuffleAmt, - Vector* encoded_image) const { -+ //TODO: this is the only place where shuffleAmt should be used - DCHECK(is_valid_); - - if (mime_type == "image/jpeg") { -@@ -154,12 +156,12 @@ bool ImageDataBuffer::EncodeImage(const String& mime_type, - } - - String ImageDataBuffer::ToDataURL(const String& mime_type, -- const double& quality) const { -+ const double& quality, const double shuffleAmt) const { - DCHECK(is_valid_); - DCHECK(MIMETypeRegistry::IsSupportedImageMIMETypeForEncoding(mime_type)); - - Vector result; -- if (!EncodeImage(mime_type, quality, &result)) -+ if (!EncodeImage(mime_type, quality, shuffleAmt, &result)) - return "data:,"; - - return "data:" + mime_type + ";base64," + Base64Encode(result); -diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.h b/third_party/blink/renderer/platform/graphics/image_data_buffer.h ---- a/third_party/blink/renderer/platform/graphics/image_data_buffer.h -+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.h -@@ -47,9 +47,10 @@ class PLATFORM_EXPORT ImageDataBuffer { - scoped_refptr); - static std::unique_ptr Create(const SkPixmap&); - -- String ToDataURL(const String& mime_type, const double& quality) const; -+ String ToDataURL(const String& mime_type, const double& quality, const double shuffleAmt) const; - bool EncodeImage(const String& mime_type, - const double& quality, -+ double shuffleAmt, - Vector* encoded_image) const; - const unsigned char* Pixels() const; - const IntSize& size() const { return size_; } --- -2.7.4 - diff --git a/patches/BRM053_Add-menu-option-to-toggle-global-Adblock-preference.patch b/patches/BRM053_Add-menu-option-to-toggle-global-Adblock-preference.patch deleted file mode 100644 index f1849fde..00000000 --- a/patches/BRM053_Add-menu-option-to-toggle-global-Adblock-preference.patch +++ /dev/null @@ -1,259 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Thu, 26 Apr 2018 10:37:05 +0200 -Subject: Add menu option to toggle global Adblock preference - -Allow toggling Chromium's "ads enabled" content settings option together with Bromite adblock engine. ---- - chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++ - chrome/android/java/res/menu/main_menu.xml | 13 ++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../browser/appmenu/AppMenuPropertiesDelegate.java | 38 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 2 ++ - .../java/strings/android_chrome_strings.grd | 11 +++++++ - .../subresource_filter_content_settings_manager.cc | 3 ++ - net/url_request/adblock_intercept.cc | 2 ++ - net/url_request/adblock_intercept.h | 2 ++ - net/url_request/url_request.cc | 4 +++ - 11 files changed, 103 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -74,6 +74,18 @@ - - - -+ -+ -+ -+ -+ -+ -+ - - - - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2060,6 +2060,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity - RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled(); -+ PrefServiceBridge.getInstance().setAllowAdsEnabled(adBlockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else { - return false; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1724,6 +1724,14 @@ public class ChromeTabbedActivity - RecordUserAction.record("MobileTabClosedUndoShortCut"); - } else if (id == R.id.enter_vr_id) { - VrShellDelegate.enterVrIfNecessary(); -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled(); -+ PrefServiceBridge.getInstance().setAllowAdsEnabled(adBlockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else { - return super.onMenuOrKeyboardAction(id, fromMenu); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java -@@ -212,6 +212,8 @@ public class AppMenuPropertiesDelegate { - && !TextUtils.isEmpty(url); - prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem); - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); - - updateEnableJavascriptMenuItem(menu, currentTab); -@@ -445,6 +447,42 @@ public class AppMenuPropertiesDelegate { - } - - /** -+ * Updates the enable AdBlock item's state. -+ * -+ * @param menu {@link Menu} for enable adblock -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableAdBlockMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id); -+ -+ -+ // Hide enable adblock on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled(); -+ -+ // Mark the checkbox if adblock is globally activate. -+ enableMenuCheck.setChecked(adBlockEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(adBlockEnabled -+ ? mActivity.getString(R.string.menu_enable_adblock_on) -+ : mActivity.getString(R.string.menu_enable_adblock_off)); -+ } -+ -+ /** - * @return Whether bookmarks, downloads, and history should be shown in the menu. - */ - public static boolean shouldShowNavMenuItems() { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -170,6 +170,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - } - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); - updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2568,6 +2568,17 @@ Google may use your browsing activity, content on some sites you visit, and othe - - Turn on Request desktop site - -+ -+ -+ Enable AdBlock -+ -+ -+ Turn off AdBlock -+ -+ -+ Turn on AdBlock -+ -+ - - Appearance - -diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc ---- a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc -+++ b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc -@@ -22,6 +22,7 @@ - #include "components/keyed_service/core/service_access_type.h" - #include "components/subresource_filter/core/browser/subresource_filter_features.h" - #include "url/gurl.h" -+#include "net/url_request/adblock_intercept.h" - - namespace { - -@@ -160,9 +161,11 @@ void SubresourceFilterContentSettingsManager::OnContentSettingChanged( - if (global_setting == CONTENT_SETTING_ALLOW) { - ChromeSubresourceFilterClient::LogAction( - kActionContentSettingsAllowedGlobal); -+ net::adblock_enabled = false; - } else if (global_setting == CONTENT_SETTING_BLOCK) { - ChromeSubresourceFilterClient::LogAction( - kActionContentSettingsBlockedGlobal); -+ net::adblock_enabled = true; - } else { - NOTREACHED(); - } -diff --git a/net/url_request/adblock_intercept.cc b/net/url_request/adblock_intercept.cc ---- a/net/url_request/adblock_intercept.cc -+++ b/net/url_request/adblock_intercept.cc -@@ -19,6 +19,8 @@ - - namespace net { - -+bool adblock_enabled = true; -+ - const char *LOG_TAG = "Bromite"; - - #ifdef ADB_TESTER -diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_intercept.h ---- a/net/url_request/adblock_intercept.h -+++ b/net/url_request/adblock_intercept.h -@@ -11,6 +11,8 @@ int adblock_rules_count(); - - int adblock_intercept(const GURL &url, const std::string &origin_host); - -+extern bool adblock_enabled; -+ - } // namespace net - - #endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_ -diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc ---- a/net/url_request/url_request.cc -+++ b/net/url_request/url_request.cc -@@ -590,6 +590,7 @@ URLRequest::URLRequest(const GURL& url, - DCHECK(base::ThreadTaskRunnerHandle::IsSet()); - - #if defined(OS_ANDROID) -+ if (net::adblock_enabled) { - std::string initiatorHost; - if (initiator_.has_value()) { - initiatorHost = initiator_.value().host(); -@@ -600,6 +601,9 @@ URLRequest::URLRequest(const GURL& url, - } else { - url_chain_ = { url }; - } -+ } else { -+ url_chain_ = { url }; -+ } - #endif - - context->url_requests()->insert(this); --- -2.7.4 - diff --git a/patches/BRM054_Always-respect-async-dns-flag-regardless-of-SDK-version-do-not-read-experiment-value-for-cronet-async-DNS-configuration.patch b/patches/BRM054_Always-respect-async-dns-flag-regardless-of-SDK-version-do-not-read-experiment-value-for-cronet-async-DNS-configuration.patch deleted file mode 100644 index 9e78698a..00000000 --- a/patches/BRM054_Always-respect-async-dns-flag-regardless-of-SDK-version-do-not-read-experiment-value-for-cronet-async-DNS-configuration.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Tue, 5 Jun 2018 13:46:40 +0200 -Subject: Always respect async dns flag (regardless of SDK version), do not - read experiment value for cronet async DNS configuration - ---- - chrome/browser/io_thread.cc | 10 +--------- - components/cronet/url_request_context_config.cc | 3 ++- - 2 files changed, 3 insertions(+), 10 deletions(-) - -diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc ---- a/chrome/browser/io_thread.cc -+++ b/chrome/browser/io_thread.cc -@@ -257,15 +257,7 @@ void UpdateMetricsUsagePrefsOnUIThread(const std::string& service_name, - // Check the AsyncDns field trial and return true if it should be enabled. On - // Android this includes checking the Android version in the field trial. - bool ShouldEnableAsyncDns() { -- bool feature_can_be_enabled = true; --#if defined(OS_ANDROID) -- int min_sdk = -- base::GetFieldTrialParamByFeatureAsInt(features::kAsyncDns, "min_sdk", 0); -- if (base::android::BuildInfo::GetInstance()->sdk_int() < min_sdk) -- feature_can_be_enabled = false; --#endif -- return feature_can_be_enabled && -- base::FeatureList::IsEnabled(features::kAsyncDns); -+ return base::FeatureList::IsEnabled(features::kAsyncDns); - } - - } // namespace -diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc ---- a/components/cronet/url_request_context_config.cc -+++ b/components/cronet/url_request_context_config.cc -@@ -398,7 +398,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions( - effective_experimental_options->Remove(it.key(), nullptr); - continue; - } -- async_dns_args->GetBoolean(kAsyncDnsEnable, &async_dns_enable); -+ bool ignored; -+ async_dns_args->GetBoolean(kAsyncDnsEnable, &ignored); - } else if (it.key() == kStaleDnsFieldTrialName) { - const base::DictionaryValue* stale_dns_args = nullptr; - if (!it.value().GetAsDictionary(&stale_dns_args)) { --- -2.7.4 -