From ef21fa47065c1308f77877fd55cf4d3fb89b9a5d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 20 Nov 2022 14:53:55 +0100 Subject: [PATCH] bump to 108.0.5359.48 --- build/RELEASE | 2 +- ...er-CFI-crash-mitigations--win-fixup-.patch | 2 +- .../patches/00Add-AudioContextAPI-flags.patch | 80 +- ...proxy-configuration-page--win-fixup-.patch | 2 +- ...an-always-incognito-mode--win-fixup-.patch | 2 +- ...rk-import-export-actions--win-fixup-.patch | 10 +- ...nfigure-maximum-connecti--win-fixup-.patch | 2 +- ...g-to-disable-IPv6-probes--win-fixup-.patch | 55 +- ...sable-external-intent-re--win-fixup-.patch | 2 +- ...-options-for-permissions--win-fixup-.patch | 2 +- ...menu-item-to-view-source--add-fixup-.patch | 2 +- ...00Add-webGL-site-setting--win-fixup-.patch | 16 +- ...Add-webRTC-site-settings--win-fixup-.patch | 16 +- ...00Client-hints-overrides--add-fixup-.patch | 2 +- ...-settings-infrastructure--win-fixup-.patch | 2 +- .../patches/00Disable-Component-Updates.patch | 2 +- ...hing-of-all-field-trials--add-fixup-.patch | 2 +- .../00Disable-safe-browsing--win-fixup-.patch | 237 +- ...0Disable-various-metrics--win-fixup-.patch | 4 +- ...SiteFlagNetworkAnonymizationKey-flag.patch | 14 +- ...e-ThirdPartyStoragePartitioning-flag.patch | 14 +- ...tal-user-scripts-support--win-fixup-.patch | 32 +- .../patches/00Eyeo-Adblock--win-fixup-.patch | 2 +- ...00Eyeo-Adblock-Remove-Privacy-Issues.patch | 318 +- build/patches/00Eyeo-Adblock.patch | 27263 ++++++++++------ .../00JIT-site-settings--win-fixup-.patch | 22 +- ...0Logcat-crash-reports-UI--win-fixup-.patch | 10 +- ...navigation-bar-to-bottom--add-fixup-.patch | 2 +- ...00Remove-EV-certificates--win-fixup-.patch | 2 +- ...binary-blob-integrations--win-fixup-.patch | 8 +- ...in-and-sync-integrations--win-fixup-.patch | 51 +- ...earch-Ready-Omnibox-flag--win-fixup-.patch | 2 +- ...--remove-num-raster-thre--win-fixup-.patch | 4 +- ...emoval-to-block-autoplay--win-fixup-.patch | 22 +- ...00Timezone-customization--win-fixup-.patch | 16 +- .../00Viewport-Protection--win-fixup-.patch | 16 +- ...no-special-hosts-domains--add-fixup-.patch | 43 +- .../AImageReader-CFI-crash-mitigations.patch | 38 +- build/patches/AV1-codec-support.patch | 8 +- .../Add-AllowUserCertificates-flag.patch | 43 +- .../Add-English-only-search-engine.patch | 2 +- .../Add-IsCleartextPermitted-flag.patch | 33 +- .../Add-a-proxy-configuration-page.patch | 111 +- .../Add-an-always-incognito-mode.patch | 228 +- .../Add-bookmark-import-export-actions.patch | 96 +- ...dd-custom-tab-intents-privacy-option.patch | 4 +- build/patches/Add-exit-menu-item.patch | 12 +- ...g-for-omnibox-autocomplete-filtering.patch | 8 +- .../Add-flag-for-save-data-header.patch | 44 +- ...nfigure-maximum-connections-per-host.patch | 8 +- ...ontrol-video-playback-resume-feature.patch | 18 +- .../Add-flag-to-disable-IPv6-probes.patch | 24 +- ...-to-disable-external-intent-requests.patch | 6 +- .../Add-flag-to-disable-vibration.patch | 16 +- ...-switch-for-unsupported-clangd-flags.patch | 8 +- ...Add-lifetime-options-for-permissions.patch | 102 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 38 +- .../Add-menu-item-to-view-source.patch | 12 +- .../Add-option-to-force-tablet-UI.patch | 20 +- ...-to-not-persist-tabs-across-sessions.patch | 8 +- .../Add-option-to-use-home-page-as-NTP.patch | 8 +- build/patches/Add-site-engagement-flag.patch | 8 +- build/patches/Add-webGL-site-setting.patch | 16 +- build/patches/Add-webRTC-site-settings.patch | 10 +- ...ow-building-without-enable_reporting.patch | 65 +- .../Allow-playing-audio-in-background.patch | 6 +- .../Ask-user-before-closing-all-tabs.patch | 18 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 2 +- ...Block-gateway-attacks-via-websockets.patch | 14 +- .../Block-qjz9zk-or-trk-requests.patch | 12 +- .../Bookmarks-select-all-menu-entry.patch | 14 +- .../Bromite-AdBlockUpdaterService.patch | 34 +- build/patches/Bromite-auto-updater.patch | 51 +- build/patches/Bromite-package-name.patch | 16 +- build/patches/Client-hints-overrides.patch | 66 +- .../Content-settings-infrastructure.patch | 30 +- build/patches/Disable-AGSA-by-default.patch | 80 +- ...ble-Accessibility-service-by-default.patch | 2 +- .../patches/Disable-AsyncDNS-by-default.patch | 16 +- ...DRM-media-origin-IDs-preprovisioning.patch | 10 +- .../Disable-FLoC-and-privacy-sandbox.patch | 32 +- ...le-NTP-remote-suggestions-by-default.patch | 28 +- build/patches/Disable-PrivacyGuide.patch | 37 +- build/patches/Disable-TLS-resumption.patch | 48 +- .../patches/Disable-all-predictors-code.patch | 169 +- build/patches/Disable-all-promo-dialogs.patch | 4 +- .../Disable-conversion-measurement-api.patch | 64 +- build/patches/Disable-crash-reporting.patch | 12 +- .../Disable-feeds-support-by-default.patch | 25 +- ...Disable-fetching-of-all-field-trials.patch | 36 +- build/patches/Disable-idle-detection.patch | 10 +- ...-lock-icon-in-address-bar-by-default.patch | 10 +- ...media-router-and-remoting-by-default.patch | 8 +- .../Disable-offline-pages-in-CCT.patch | 14 +- .../patches/Disable-plugins-enumeration.patch | 2 +- build/patches/Disable-safe-browsing.patch | 244 +- build/patches/Disable-safety-check.patch | 56 +- .../Disable-smart-selection-by-default.patch | 45 +- ...isable-some-signed-exchange-features.patch | 17 +- ...ble-support-for-RAR-files-inspection.patch | 11 +- .../Disable-text-fragments-by-default.patch | 58 +- .../Disable-third-party-origin-trials.patch | 16 +- build/patches/Disable-various-metrics.patch | 30 +- .../Do-not-build-API-keys-infobar.patch | 2 +- .../Do-not-compile-QR-code-sharing.patch | 10 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- build/patches/DoH-improvements.patch | 2 +- .../Enable-Certificate-Transparency.patch | 65 +- ...tBlockExternalFormRedirectsNoGesture.patch | 14 +- ...-SPPI-for-devices-with-enough-memory.patch | 22 +- ...ctOriginIsolation-and-SitePerProcess.patch | 20 +- ...e-darken-websites-checkbox-in-themes.patch | 14 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 2 +- .../Enable-native-Android-autofill.patch | 32 +- .../Enable-network-isolation-features.patch | 67 +- ...-prefetch-privacy-changes-by-default.patch | 10 +- build/patches/Enable-share-intent.patch | 55 +- .../Experimental-user-scripts-support.patch | 83 +- .../Fix-WebWorker-requestAnimationFrame.patch | 8 +- ...story-number-of-days-privacy-setting.patch | 14 +- ...ripts-for-AMP-tracking-ads-and-video.patch | 18 +- build/patches/JIT-site-settings.patch | 28 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Logcat-crash-reports-UI.patch | 8 +- .../Make-all-favicon-requests-on-demand.patch | 12 +- .../patches/Modify-default-preferences.patch | 28 +- .../Move-navigation-bar-to-bottom.patch | 246 +- .../Multiple-fingerprinting-mitigations.patch | 38 +- ...uiltin-autocomplete-for-chrome-flags.patch | 2 +- build/patches/OpenSearch-miscellaneous.patch | 34 +- .../patches/Override-Navigator-Language.patch | 8 +- .../Partition-Blink-memory-cache.patch | 32 +- .../Partition-blobs-by-top-frame-url.patch | 24 +- .../patches/Re-introduce-kWebAuthCable.patch | 36 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 42 +- ...e-introduce-override_build_timestamp.patch | 2 +- ...ders-in-DoH-requests-to-bare-minimum.patch | 6 +- build/patches/Remove-EV-certificates.patch | 11 +- build/patches/Remove-SMS-integration.patch | 2 +- .../Remove-binary-blob-integrations.patch | 373 +- ...cklisted-URLs-upon-bookmark-creation.patch | 6 +- .../Remove-contextual-search-manager.patch | 134 +- build/patches/Remove-help-menu-item.patch | 2 +- ...referrals-in-cross-origin-navigation.patch | 2 +- ...-offline-measurement-background-task.patch | 4 +- ...price-shopping-commerce-integrations.patch | 380 +- .../Remove-segmentation-platform.patch | 4 +- .../Remove-signin-and-sync-integrations.patch | 625 +- ...Remove-voice-recognition-integration.patch | 88 +- ...weblayer-dependency-on-Play-Services.patch | 20 +- ...ndow-name-on-cross-origin-navigation.patch | 4 +- .../Restore-Search-Ready-Omnibox-flag.patch | 65 +- .../Restore-Simplified-NTP-launch.patch | 64 +- .../Restore-offline-indicator-v2-flag.patch | 53 +- ...Delete-block-external-form-redirects.patch | 86 +- ...ard-user-gesture-requirement-removal.patch | 2 +- ...emove-disable-pull-to-refresh-effect.patch | 8 +- ...vert-flags-remove-num-raster-threads.patch | 10 +- ...l-of-execution-context-address-space.patch | 76 +- ...moval-of-an-option-to-block-autoplay.patch | 24 +- ...-Note-9-SDK27-crazylinker-workaround.patch | 2 +- ...tings-for-cookies-javascript-and-ads.patch | 10 +- build/patches/Site-setting-for-images.patch | 32 +- .../Switch-to-fstack-protector-strong.patch | 2 +- build/patches/Timezone-customization.patch | 62 +- build/patches/Unexpire-tab-groups-flags.patch | 34 +- build/patches/Update-i18n-zh_CN-support.patch | 23 +- .../Use-4-tile-rows-never-show-logo.patch | 14 +- .../Use-64-bit-WebView-processes.patch | 2 +- build/patches/User-agent-customization.patch | 30 +- build/patches/Viewport-Protection.patch | 34 +- build/patches/Welcome-screen.patch | 2 +- build/patches/autofill-miscellaneous.patch | 36 +- ...build-remove-calling-untrusted-hooks.patch | 20 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 4 +- .../do-not-add-suffix-to-package-name.patch | 18 +- .../enable-ftrivial-auto-var-init-zero.patch | 2 +- build/patches/kill-Vision.patch | 18 +- ...le-fetching-of-languages-from-server.patch | 4 +- .../ungoogled-chromium-Disable-Gaia.patch | 4 +- ...hromium-Disable-Network-Time-Tracker.patch | 2 +- ...gled-chromium-Disable-profile-avatar.patch | 2 +- ...romium-Disable-translate-integration.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 16 +- 185 files changed, 19806 insertions(+), 14228 deletions(-) diff --git a/build/RELEASE b/build/RELEASE index 57b13aa2..42ab7f26 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -107.0.5304.107 \ No newline at end of file +108.0.5359.48 \ No newline at end of file diff --git a/build/patches/00AImageReader-CFI-crash-mitigations--win-fixup-.patch b/build/patches/00AImageReader-CFI-crash-mitigations--win-fixup-.patch index c1802a05..1adf5e0f 100644 --- a/build/patches/00AImageReader-CFI-crash-mitigations--win-fixup-.patch +++ b/build/patches/00AImageReader-CFI-crash-mitigations--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: AImageReader CFI crash mitigations (win fixup) diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -640,10 +640,12 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -626,10 +626,12 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/00Add-AudioContextAPI-flags.patch b/build/patches/00Add-AudioContextAPI-flags.patch index 14cc400b..1f851042 100644 --- a/build/patches/00Add-AudioContextAPI-flags.patch +++ b/build/patches/00Add-AudioContextAPI-flags.patch @@ -18,14 +18,14 @@ Subject: Add AudioContextAPI flags .../modules/webaudio/audio_context.cc | 5 +++ .../modules/webaudio/base_audio_context.cc | 12 +++++ .../modules/webaudio/base_audio_context.h | 2 + - .../modules/webaudio/realtime_analyser.cc | 44 +++++++++++++++++-- + .../modules/webaudio/realtime_analyser.cc | 45 +++++++++++++++++-- .../modules/webaudio/realtime_analyser.h | 10 +++-- - 17 files changed, 163 insertions(+), 39 deletions(-) + 17 files changed, 164 insertions(+), 39 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3567,6 +3567,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3667,6 +3667,14 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS, FEATURE_VALUE_TYPE(features::kKioskEnableAppService)}, #endif // BUILDFLAG(IS_CHROMEOS) @@ -43,7 +43,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3212,6 +3212,15 @@ const char kWebrtcUseMinMaxVEADimensionsDescription[] = +@@ -3353,6 +3353,15 @@ const char kWebrtcUseMinMaxVEADimensionsDescription[] = "When enabled, WebRTC will only use the Video Encode Accelerator for " "video resolutions inside those published as supported."; @@ -62,7 +62,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1821,6 +1821,11 @@ extern const char kWebrtcSrtpAesGcmDescription[]; +@@ -1905,6 +1905,11 @@ extern const char kWebrtcSrtpAesGcmDescription[]; extern const char kWebrtcUseMinMaxVEADimensionsName[]; extern const char kWebrtcUseMinMaxVEADimensionsDescription[]; @@ -77,9 +77,9 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -565,6 +565,11 @@ const base::Feature kWebRtcUseMinMaxVEADimensions { +@@ -620,6 +620,11 @@ BASE_FEATURE(kWebRtcUseMinMaxVEADimensions, #endif - }; + ); +const base::Feature kAudioContextAPIEnabled { + "AudioContextAPIEnabled", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -88,20 +88,20 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea + // Blink garbage collection. // Enables compaction of backing stores on Blink's heap. - const base::Feature kBlinkHeapCompaction{"BlinkHeapCompaction", + BASE_FEATURE(kBlinkHeapCompaction, diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -257,6 +257,9 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled(); +@@ -246,6 +246,9 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled(); - BLINK_COMMON_EXPORT extern const base::Feature kWebRtcUseMinMaxVEADimensions; + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebRtcUseMinMaxVEADimensions); -+BLINK_COMMON_EXPORT extern const base::Feature kAudioContextAPIEnabled; -+BLINK_COMMON_EXPORT extern const base::Feature kAudioContextShuffleEnabled; ++BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextAPIEnabled); ++BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextShuffleEnabled); + // Blink garbage collection. - BLINK_COMMON_EXPORT extern const base::Feature kBlinkHeapCompaction; - BLINK_COMMON_EXPORT extern const base::Feature kBlinkHeapConcurrentMarking; + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapCompaction); + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentMarking); diff --git a/third_party/blink/renderer/modules/webaudio/analyser_handler.h b/third_party/blink/renderer/modules/webaudio/analyser_handler.h --- a/third_party/blink/renderer/modules/webaudio/analyser_handler.h +++ b/third_party/blink/renderer/modules/webaudio/analyser_handler.h @@ -338,7 +338,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -507,6 +508,10 @@ double AudioContext::baseLatency() const { +@@ -508,6 +509,10 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); @@ -360,7 +360,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -701,6 +702,17 @@ Document* BaseAudioContext::GetDocument() const { +@@ -702,6 +703,17 @@ Document* BaseAudioContext::GetDocument() const { return window ? window->document() : nullptr; } @@ -393,23 +393,17 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc --- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc +++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc -@@ -26,7 +26,9 @@ - #include +@@ -29,6 +29,9 @@ #include #include + +#include "third_party/blink/public/common/features.h" - #include "third_party/blink/renderer/modules/webaudio/realtime_analyser.h" ++#include "third_party/blink/renderer/modules/webaudio/realtime_analyser.h" +#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h" #include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/audio/vector_math.h" -@@ -187,15 +189,23 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { - float linear_value = source[i]; - double db_mag = audio_utilities::LinearToDecibels(linear_value); - destination[i] = static_cast(db_mag); -+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i); - } - } +@@ -95,10 +98,17 @@ bool RealtimeAnalyser::SetFftSize(uint32_t size) { } void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array, @@ -428,16 +422,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ if (current_time <= last_analysis_time_) { ConvertFloatToDb(destination_array); return; -@@ -230,6 +240,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { - double scaled_value = - UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; - -+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); -+ - // Clip to valid range. - if (scaled_value < 0) { - scaled_value = 0; -@@ -244,10 +256,17 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { +@@ -112,10 +122,17 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array, } void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, @@ -456,7 +441,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ if (current_time <= last_analysis_time_) { // FIXME: Is it worth caching the data so we don't have to do the conversion // every time? Perhaps not, since we expect many calls in the same -@@ -264,10 +283,17 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, +@@ -132,10 +149,17 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, } void RealtimeAnalyser::GetFloatTimeDomainData( @@ -475,7 +460,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ unsigned fft_size = FftSize(); size_t len = std::min(static_cast(fft_size), destination_array->length()); -@@ -286,15 +312,23 @@ void RealtimeAnalyser::GetFloatTimeDomainData( +@@ -154,15 +178,23 @@ void RealtimeAnalyser::GetFloatTimeDomainData( input_buffer[(i + write_index - fft_size + kInputBufferSize) % kInputBufferSize]; @@ -500,7 +485,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ unsigned fft_size = FftSize(); size_t len = std::min(static_cast(fft_size), destination_array->length()); -@@ -313,6 +347,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { +@@ -181,6 +213,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { input_buffer[(i + write_index - fft_size + kInputBufferSize) % kInputBufferSize]; @@ -509,6 +494,23 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ // Scale from nominal -1 -> +1 to unsigned byte. double scaled_value = 128 * (value + 1); +@@ -308,6 +342,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { + double scaled_value = + UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; + ++ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); ++ + // Clip to valid range. + if (scaled_value < 0) { + scaled_value = 0; +@@ -333,6 +369,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { + float linear_value = source[i]; + double db_mag = audio_utilities::LinearToDecibels(linear_value); + destination[i] = static_cast(db_mag); ++ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i); + } + } + } diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.h b/third_party/blink/renderer/modules/webaudio/realtime_analyser.h --- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.h +++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.h diff --git a/build/patches/00Add-a-proxy-configuration-page--win-fixup-.patch b/build/patches/00Add-a-proxy-configuration-page--win-fixup-.patch index fb0de9fc..f3f6b81e 100644 --- a/build/patches/00Add-a-proxy-configuration-page--win-fixup-.patch +++ b/build/patches/00Add-a-proxy-configuration-page--win-fixup-.patch @@ -10,7 +10,7 @@ Subject: Add a proxy configuration page (win fixup) 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 -@@ -77,10 +77,8 @@ +@@ -82,10 +82,8 @@ diff --git a/build/patches/00Add-an-always-incognito-mode--win-fixup-.patch b/build/patches/00Add-an-always-incognito-mode--win-fixup-.patch index ec277977..088876d8 100644 --- a/build/patches/00Add-an-always-incognito-mode--win-fixup-.patch +++ b/build/patches/00Add-an-always-incognito-mode--win-fixup-.patch @@ -11,7 +11,7 @@ Subject: Add an always-incognito mode (win fixup) diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -309,9 +309,11 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager() +@@ -320,9 +320,11 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager() } bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { diff --git a/build/patches/00Add-bookmark-import-export-actions--win-fixup-.patch b/build/patches/00Add-bookmark-import-export-actions--win-fixup-.patch index f85c91e0..7c517183 100644 --- a/build/patches/00Add-bookmark-import-export-actions--win-fixup-.patch +++ b/build/patches/00Add-bookmark-import-export-actions--win-fixup-.patch @@ -13,7 +13,7 @@ Subject: Add bookmark import/export actions (win fixup) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3617,6 +3617,8 @@ static_library("browser") { +@@ -3632,6 +3632,8 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -25,7 +25,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8937,11 +8937,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9145,11 +9145,13 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)}, #endif @@ -72,7 +72,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b diff --git a/headless/lib/browser/headless_select_file_dialog_factory.cc b/headless/lib/browser/headless_select_file_dialog_factory.cc --- a/headless/lib/browser/headless_select_file_dialog_factory.cc +++ b/headless/lib/browser/headless_select_file_dialog_factory.cc -@@ -54,6 +54,10 @@ class HeadlessSelectFileDialog : public ui::SelectFileDialog { +@@ -57,6 +57,10 @@ class HeadlessSelectFileDialog : public ui::SelectFileDialog { // ui::SelectFileDialog: bool HasMultipleFileTypeChoicesImpl() override { return false; } @@ -86,7 +86,7 @@ diff --git a/headless/lib/browser/headless_select_file_dialog_factory.cc b/headl diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc --- a/ui/shell_dialogs/select_file_dialog_win.cc +++ b/ui/shell_dialogs/select_file_dialog_win.cc -@@ -191,6 +191,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, +@@ -193,6 +193,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, int index); bool HasMultipleFileTypeChoicesImpl() override; @@ -94,7 +94,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec // Returns the filter to be used while displaying the open/save file dialog. // This is computed from the extensions for the file types being opened. -@@ -268,6 +269,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() { +@@ -271,6 +272,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() { return has_multiple_file_type_choices_; } diff --git a/build/patches/00Add-flag-to-configure-maximum-connecti--win-fixup-.patch b/build/patches/00Add-flag-to-configure-maximum-connecti--win-fixup-.patch index c5bd6dda..2a8acc2d 100644 --- a/build/patches/00Add-flag-to-configure-maximum-connecti--win-fixup-.patch +++ b/build/patches/00Add-flag-to-configure-maximum-connecti--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Add flag to configure maximum connecti (win fixup) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1040,10 +1040,12 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { +@@ -1070,10 +1070,12 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { switches::kForceDisplayColorProfile, "hdr10"}, }; diff --git a/build/patches/00Add-flag-to-disable-IPv6-probes--win-fixup-.patch b/build/patches/00Add-flag-to-disable-IPv6-probes--win-fixup-.patch index 72b76f22..1ec0476e 100644 --- a/build/patches/00Add-flag-to-disable-IPv6-probes--win-fixup-.patch +++ b/build/patches/00Add-flag-to-disable-IPv6-probes--win-fixup-.patch @@ -7,17 +7,17 @@ Subject: Add flag to disable IPv6 probes (win fixup) components/subresource_filter/tools/BUILD.gn | 6 ------ components/url_formatter/spoof_checks/top_domains/BUILD.gn | 3 +-- net/BUILD.gn | 1 + - net/base/features.cc | 3 +++ + net/base/features.cc | 4 ++++ net/base/features.h | 3 +++ net/dns/host_resolver_manager.cc | 2 +- services/network/public/cpp/features.cc | 4 ---- services/network/public/cpp/features.h | 2 -- - 9 files changed, 10 insertions(+), 16 deletions(-) + 9 files changed, 11 insertions(+), 16 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5912,7 +5912,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6098,7 +6098,7 @@ const FeatureEntry kFeatureEntries[] = { {"ipv6-probing", flag_descriptions::kIPv6ProbingName, flag_descriptions::kIPv6ProbingDescription, kOsAll, @@ -72,9 +72,9 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1062,6 +1062,7 @@ component("net") { +@@ -1067,6 +1067,7 @@ component("net") { "//build:chromeos_buildflags", - "//net/data/ssl/ev_roots:gen_ev_root_store_inc", + "//net/data/ssl/chrome_root_store:gen_root_store_inc", "//net/http:transport_security_state_generated_files", + "//components/network_session_configurator/common" ] @@ -83,33 +83,34 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -57,6 +57,9 @@ const base::FeatureParam kDnsHttpssvcControlDomains{ - const base::FeatureParam kDnsHttpssvcControlDomainWildcard{ - &kDnsHttpssvc, "DnsHttpssvcControlDomainWildcard", false}; +@@ -39,6 +39,10 @@ BASE_FEATURE(kUseDnsHttpsSvcb, + const base::FeatureParam kUseDnsHttpsSvcbEnforceSecureResponse{ + &kUseDnsHttpsSvcb, "UseDnsHttpsSvcbEnforceSecureResponse", false}; -+const base::Feature kIPv6Probing{"IPv6Probing", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kIPv6Probing, ++ "IPv6Probing", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - namespace dns_httpssvc_experiment { - base::TimeDelta GetExtraTimeAbsolute() { - DCHECK(base::FeatureList::IsEnabled(features::kDnsHttpssvc)); + const base::FeatureParam kUseDnsHttpsSvcbInsecureExtraTimeMax{ + &kUseDnsHttpsSvcb, "UseDnsHttpsSvcbInsecureExtraTimeMax", + base::Milliseconds(50)}; diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -118,6 +118,9 @@ NET_EXPORT extern const base::FeatureParam kUseDnsHttpsSvcbHttpUpgrade; +@@ -53,6 +53,9 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseDnsHttpsSvcb); NET_EXPORT extern const base::FeatureParam kUseDnsHttpsSvcbEnforceSecureResponse; +// Enable IPv6 ping probes to RIPE DNS. +NET_EXPORT extern const base::Feature kIPv6Probing; + - // Param to control whether HTTPS queries will be allowed via Insecure DNS - // (instead of just via Secure DNS). - NET_EXPORT extern const base::FeatureParam kUseDnsHttpsSvcbEnableInsecure; + // If we are still waiting for an HTTPS transaction after all the + // other transactions in an insecure DnsTask have completed, we will compute a + // timeout for the remaining transaction. The timeout will be diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -4087,7 +4087,7 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { +@@ -3730,7 +3730,7 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() > kIPv6ProbePeriodMs) { @@ -121,9 +122,9 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -41,10 +41,6 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; - const base::Feature kThrottleDelayable{"ThrottleDelayable", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -42,10 +42,6 @@ BASE_FEATURE(kThrottleDelayable, + "ThrottleDelayable", + base::FEATURE_ENABLED_BY_DEFAULT); -// Enable IPv6 ping probes to RIPE DNS. -const base::Feature kIPv6Probing{"IPv6Probing", @@ -135,14 +136,14 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -18,8 +18,6 @@ extern const base::Feature kExpectCTReporting; - COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kNetworkErrorLogging; +@@ -48,8 +48,6 @@ COMPONENT_EXPORT(NETWORK_CPP) + extern const base::FeatureParam + kTrustTokenOperationsRequiringOriginTrial; COMPONENT_EXPORT(NETWORK_CPP) -extern const base::Feature kIPv6Probing; -COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kReporting; - COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kThrottleDelayable; + extern const base::FeatureParam kPlatformProvidedTrustTokenIssuance; + + COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader); -- 2.25.1 diff --git a/build/patches/00Add-flag-to-disable-external-intent-re--win-fixup-.patch b/build/patches/00Add-flag-to-disable-external-intent-re--win-fixup-.patch index 77e4306c..48e14cb2 100644 --- a/build/patches/00Add-flag-to-disable-external-intent-re--win-fixup-.patch +++ b/build/patches/00Add-flag-to-disable-external-intent-re--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Add flag to disable external intent re (win fixup) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3528,9 +3528,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3628,9 +3628,11 @@ const FeatureEntry kFeatureEntries[] = { {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, diff --git a/build/patches/00Add-lifetime-options-for-permissions--win-fixup-.patch b/build/patches/00Add-lifetime-options-for-permissions--win-fixup-.patch index 0a2dcac0..9ab38b4b 100644 --- a/build/patches/00Add-lifetime-options-for-permissions--win-fixup-.patch +++ b/build/patches/00Add-lifetime-options-for-permissions--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Add lifetime options for permissions (win fixup) diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_view.cc -@@ -416,7 +416,7 @@ void PermissionPromptBubbleView::AcceptPermission() { +@@ -433,7 +433,7 @@ void PermissionPromptBubbleView::AcceptPermission() { void PermissionPromptBubbleView::AcceptPermissionThisTime() { RecordDecision(permissions::PermissionAction::GRANTED_ONCE); if (delegate_) diff --git a/build/patches/00Add-menu-item-to-view-source--add-fixup-.patch b/build/patches/00Add-menu-item-to-view-source--add-fixup-.patch index 54b0ed7c..57a0a865 100644 --- a/build/patches/00Add-menu-item-to-view-source--add-fixup-.patch +++ b/build/patches/00Add-menu-item-to-view-source--add-fixup-.patch @@ -9,7 +9,7 @@ Subject: Add menu item to view source (add fixup) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -1178,8 +1178,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1212,8 +1212,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate protected void updateViewSourceMenuItem( Menu menu, Tab currentTab) { MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id); diff --git a/build/patches/00Add-webGL-site-setting--win-fixup-.patch b/build/patches/00Add-webGL-site-setting--win-fixup-.patch index f5fe3e7c..9e138672 100644 --- a/build/patches/00Add-webGL-site-setting--win-fixup-.patch +++ b/build/patches/00Add-webGL-site-setting--win-fixup-.patch @@ -23,7 +23,7 @@ Subject: Add webGL site setting (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3802,6 +3802,25 @@ +@@ -3831,6 +3831,25 @@ Random Timezone override @@ -64,7 +64,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1074,4 +1074,26 @@ +@@ -1058,4 +1058,26 @@ @@ -94,7 +94,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -105,6 +105,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -103,6 +103,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_AUTOPLAY = r.SITE_SETTINGS.createChild('autoplay'); r.SITE_SETTINGS_JAVASCRIPT_JIT = r.SITE_SETTINGS.createChild('javascript-jit'); r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override'); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -99,4 +99,5 @@ export interface SettingsRoutes { +@@ -97,4 +97,5 @@ export interface SettingsRoutes { SITE_SETTINGS_AUTOPLAY: Route; SITE_SETTINGS_JAVASCRIPT_JIT: Route; SITE_SETTINGS_TIMEZONE_OVERRIDE: Route; @@ -147,7 +147,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -241,4 +241,9 @@ +@@ -268,4 +268,9 @@ icon="settings:timezone-override" label="$i18n{siteSettingsTimezoneOverride}"> @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2144,6 +2144,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, +@@ -2157,6 +2157,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsTimezoneOverrideAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_ALLOWED_EXCEPTIONS}, {"siteSettingsTimezoneOverrideBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_BLOCKED_EXCEPTIONS}, {"siteSettingsTimezoneOverrideMidSentence", IDS_SITE_SETTINGS_TIMEZONE_OVERRIDE_TITLE}, @@ -228,7 +228,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -118,6 +118,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -117,6 +117,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::AUTOPLAY, "autoplay"}, {ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit"}, {ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"}, @@ -239,7 +239,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -694,7 +694,7 @@ void ContentSettingsRegistry::Init() { +@@ -695,7 +695,7 @@ void ContentSettingsRegistry::Init() { ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, diff --git a/build/patches/00Add-webRTC-site-settings--win-fixup-.patch b/build/patches/00Add-webRTC-site-settings--win-fixup-.patch index f964d9b0..c977238d 100644 --- a/build/patches/00Add-webRTC-site-settings--win-fixup-.patch +++ b/build/patches/00Add-webRTC-site-settings--win-fixup-.patch @@ -23,7 +23,7 @@ Subject: Add webRTC site settings (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3821,6 +3821,25 @@ +@@ -3850,6 +3850,25 @@ Not allowed to use webgl @@ -64,7 +64,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1096,4 +1096,26 @@ +@@ -1080,4 +1080,26 @@ @@ -94,7 +94,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -106,6 +106,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -104,6 +104,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_JAVASCRIPT_JIT = r.SITE_SETTINGS.createChild('javascript-jit'); r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override'); r.SITE_SETTINGS_WEBGL = r.SITE_SETTINGS.createChild('webgl'); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -100,4 +100,5 @@ export interface SettingsRoutes { +@@ -98,4 +98,5 @@ export interface SettingsRoutes { SITE_SETTINGS_JAVASCRIPT_JIT: Route; SITE_SETTINGS_TIMEZONE_OVERRIDE: Route; SITE_SETTINGS_WEBGL: Route; @@ -147,7 +147,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -246,4 +246,9 @@ +@@ -273,4 +273,9 @@ icon="settings:webgl" label="$i18n{siteSettingsWebgl}"> @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2151,6 +2151,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, +@@ -2164,6 +2164,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsWebglAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_WEBGL_ALLOWED_EXCEPTIONS}, {"siteSettingsWebglBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_WEBGL_BLOCKED_EXCEPTIONS}, {"siteSettingsWebglMidSentence", IDS_SITE_SETTINGS_WEBGL_TITLE}, @@ -228,7 +228,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -119,6 +119,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -118,6 +118,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit"}, {ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"}, {ContentSettingsType::WEBGL, "webgl"}, @@ -239,7 +239,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -708,7 +708,7 @@ void ContentSettingsRegistry::Init() { +@@ -709,7 +709,7 @@ void ContentSettingsRegistry::Init() { ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, diff --git a/build/patches/00Client-hints-overrides--add-fixup-.patch b/build/patches/00Client-hints-overrides--add-fixup-.patch index 4d4b45f5..66bde131 100644 --- a/build/patches/00Client-hints-overrides--add-fixup-.patch +++ b/build/patches/00Client-hints-overrides--add-fixup-.patch @@ -9,7 +9,7 @@ Subject: Client hints overrides (add fixup) diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc --- a/components/optimization_guide/core/hints_manager.cc +++ b/components/optimization_guide/core/hints_manager.cc -@@ -1065,6 +1065,7 @@ void HintsManager::CanApplyOptimizationOnDemand( +@@ -1057,6 +1057,7 @@ void HintsManager::CanApplyOptimizationOnDemand( DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // TODO(crbug/1275612): Check whether we have consent to fetch. diff --git a/build/patches/00Content-settings-infrastructure--win-fixup-.patch b/build/patches/00Content-settings-infrastructure--win-fixup-.patch index a37bcf0d..74279736 100644 --- a/build/patches/00Content-settings-infrastructure--win-fixup-.patch +++ b/build/patches/00Content-settings-infrastructure--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Content settings infrastructure (win fixup) diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -130,6 +130,7 @@ ContentSetting IntToContentSetting(int content_setting) { +@@ -131,6 +131,7 @@ ContentSetting IntToContentSetting(int content_setting) { int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting, size_t* num_values) { *num_values = std::size(kHistogramValue); diff --git a/build/patches/00Disable-Component-Updates.patch b/build/patches/00Disable-Component-Updates.patch index 2ca22b00..411e0f70 100644 --- a/build/patches/00Disable-Component-Updates.patch +++ b/build/patches/00Disable-Component-Updates.patch @@ -33,7 +33,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc --- a/components/component_updater/component_updater_service.cc +++ b/components/component_updater/component_updater_service.cc -@@ -501,7 +501,7 @@ std::unique_ptr ComponentUpdateServiceFactory( +@@ -500,7 +500,7 @@ std::unique_ptr ComponentUpdateServiceFactory( // Register prefs required by the component update service. void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) { // The component updates are enabled by default, if the preference is not set. diff --git a/build/patches/00Disable-fetching-of-all-field-trials--add-fixup-.patch b/build/patches/00Disable-fetching-of-all-field-trials--add-fixup-.patch index 92685e63..323f1221 100644 --- a/build/patches/00Disable-fetching-of-all-field-trials--add-fixup-.patch +++ b/build/patches/00Disable-fetching-of-all-field-trials--add-fixup-.patch @@ -35,7 +35,7 @@ diff --git a/components/variations/net/BUILD.gn b/components/variations/net/BUIL diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/loader/url_loader_throttles.cc --- a/content/browser/loader/url_loader_throttles.cc +++ b/content/browser/loader/url_loader_throttles.cc -@@ -43,8 +43,6 @@ CreateContentBrowserURLLoaderThrottles( +@@ -45,8 +45,6 @@ CreateContentBrowserURLLoaderThrottles( // TODO(crbug.com/1094303): Consider whether we want to use the WebContents to // determine the value for variations::Owner. Alternatively, this is the // browser side, and we might be fine with Owner::kUnknown. diff --git a/build/patches/00Disable-safe-browsing--win-fixup-.patch b/build/patches/00Disable-safe-browsing--win-fixup-.patch index 23cb44ce..06932438 100644 --- a/build/patches/00Disable-safe-browsing--win-fixup-.patch +++ b/build/patches/00Disable-safe-browsing--win-fixup-.patch @@ -9,25 +9,25 @@ Subject: Disable safe browsing (win fixup) chrome/browser/chrome_browser_main_win.cc | 6 - .../bubble/download_bubble_controller.cc | 2 + .../chrome_download_manager_delegate.cc | 4 +- - .../browser/download/download_item_model.cc | 68 +------- - .../analysis/content_analysis_delegate.cc | 163 +----------------- + .../browser/download/download_item_model.cc | 92 +---------- + .../analysis/content_analysis_delegate.cc | 153 +----------------- .../analysis/content_analysis_delegate.h | 7 - - .../analysis/request_handler_base.cc | 15 -- + .../analysis/request_handler_base.cc | 20 --- .../reporting/realtime_reporting_client.cc | 2 +- chrome/browser/extensions/BUILD.gn | 5 - .../safe_browsing_private_api.cc | 3 +- .../safe_browsing_private_event_router.cc | 43 ++--- .../webstore_private/webstore_private_api.cc | 15 +- .../extensions/blocklist_state_fetcher.cc | 13 +- - .../chrome_extensions_browser_client.cc | 28 +-- - .../browser/extensions/extension_allowlist.cc | 9 - + .../chrome_extensions_browser_client.cc | 28 +--- + .../browser/extensions/extension_allowlist.cc | 9 -- .../webrtc/display_media_access_handler.cc | 1 - .../safe_browsing/safe_browsing_handler.cc | 5 +- .../safe_browsing/safe_browsing_handler.h | 3 - .../notification_display_service_impl.cc | 7 - ...nfiguration_policy_handler_list_factory.cc | 7 - chrome/browser/prefs/browser_prefs.cc | 2 + - chrome/browser/printing/print_view_manager.cc | 14 -- + chrome/browser/printing/print_view_manager.cc | 15 -- chrome/browser/profiles/profiles_state.cc | 2 - chrome/browser/safe_browsing/BUILD.gn | 8 +- .../safe_browsing/chrome_cleaner/BUILD.gn | 1 - @@ -48,12 +48,12 @@ Subject: Disable safe browsing (win fixup) .../browser/mojo_safe_browsing_impl.cc | 1 + .../core/common/safe_browsing_prefs.cc | 2 +- .../tracked_persistent_pref_store_factory.cc | 10 +- - 45 files changed, 48 insertions(+), 534 deletions(-) + 45 files changed, 48 insertions(+), 554 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1930,10 +1930,6 @@ static_library("browser") { +@@ -1942,10 +1942,6 @@ static_library("browser") { "//chrome/browser/share", "//chrome/browser/ui", "//chrome/browser/storage_access_api:permissions", @@ -64,7 +64,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn # TODO(crbug.com/1030821): Eliminate usages of browser.h from Media Router. "//chrome/browser/media/router", -@@ -2029,10 +2025,7 @@ static_library("browser") { +@@ -2041,10 +2037,7 @@ static_library("browser") { "//chrome/browser/push_messaging:budget_proto", "//chrome/browser/resource_coordinator:mojo_bindings", "//chrome/browser/resource_coordinator:tab_manager_features", @@ -76,7 +76,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/sharing/proto", -@@ -3754,10 +3747,6 @@ static_library("browser") { +@@ -3771,10 +3764,6 @@ static_library("browser") { "enterprise/connectors/analysis/content_analysis_dialog.h", "enterprise/connectors/analysis/content_analysis_downloads_delegate.cc", "enterprise/connectors/analysis/content_analysis_downloads_delegate.h", @@ -87,7 +87,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "enterprise/connectors/analysis/request_handler_base.cc", "enterprise/connectors/analysis/request_handler_base.h", "enterprise/connectors/common.cc", -@@ -8166,7 +8155,6 @@ static_library("test_support") { +@@ -8229,7 +8218,6 @@ static_library("test_support") { public_deps = [ ":browser", "//chrome/browser/profiles:profile", @@ -118,7 +118,7 @@ diff --git a/chrome/browser/accuracy_tips/accuracy_service_factory.cc b/chrome/b diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -656,8 +656,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -660,8 +660,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::BindOnce( &ChromeBrowsingDataRemoverDelegate::CreateTaskCompletionClosure, base::Unretained(this), TracingDataType::kCookies)); @@ -146,7 +146,7 @@ diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_b diff --git a/chrome/browser/download/bubble/download_bubble_controller.cc b/chrome/browser/download/bubble/download_bubble_controller.cc --- a/chrome/browser/download/bubble/download_bubble_controller.cc +++ b/chrome/browser/download/bubble/download_bubble_controller.cc -@@ -400,8 +400,10 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( +@@ -402,8 +402,10 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( ProcessDownloadWarningButtonPress(model, command); break; case DownloadCommands::REVIEW: @@ -174,7 +174,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc --- a/chrome/browser/download/download_item_model.cc +++ b/chrome/browser/download/download_item_model.cc -@@ -879,6 +879,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, +@@ -898,6 +898,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, DownloadUIModel::ExecuteCommand(download_commands, command); break; case DownloadCommands::DEEP_SCAN: @@ -182,7 +182,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); if (!sb_service) -@@ -911,82 +912,17 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, +@@ -930,106 +931,17 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, safe_browsing::DeepScanningRequest::DeepScanTrigger:: TRIGGER_APP_PROMPT, safe_browsing::DownloadCheckResult::UNKNOWN, std::move(settings)); @@ -220,8 +220,32 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow - download::DOWNLOAD_DANGER_TYPE_DANGEROUS_ACCOUNT_COMPROMISE && - tailored_verdict.tailored_verdict_type() == - TailoredVerdict::COOKIE_THEFT) { -- // TODO(crbug.com/1351925): Check the adjustments field and add the account -- // information in the subpage summary. +- if (base::Contains(tailored_verdict.adjustments(), +- TailoredVerdict::ACCOUNT_INFO_STRING)) { +- auto* identity_manager = IdentityManagerFactory::GetForProfile(profile()); +- std::string email = +- identity_manager +- ? identity_manager +- ->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin) +- .email +- : ""; +- base::UmaHistogramBoolean( +- "SBClientDownload.TailoredWarning.HasVaidEmailForAccountInfo", +- !email.empty()); +- if (!email.empty()) { +- return DownloadUIModel::BubbleUIInfo( +- l10n_util::GetStringFUTF16( +- IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_COOKIE_THEFT_AND_ACCOUNT, +- base::ASCIIToUTF16(email))) +- .AddIconAndColor(vector_icons::kNotSecureWarningIcon, +- ui::kColorAlertHighSeverity) +- .AddPrimaryButton(DownloadCommands::Command::DISCARD) +- .AddSubpageButton( +- l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_DELETE), +- DownloadCommands::Command::DISCARD, +- /*is_prominent=*/true); +- } +- } - return DownloadUIModel::BubbleUIInfo( - l10n_util::GetStringUTF16( - IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_COOKIE_THEFT)) @@ -269,7 +293,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc --- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc +++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc -@@ -97,15 +97,9 @@ StringAnalysisRequest::StringAnalysisRequest( +@@ -98,15 +98,9 @@ StringAnalysisRequest::StringAnalysisRequest( data_.contents = std::move(text); result_ = BinaryUploadService::Result::SUCCESS; } @@ -285,33 +309,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } void StringAnalysisRequest::GetRequestData(DataCallback callback) { -@@ -117,25 +111,6 @@ bool* UIEnabledStorage() { - return &enabled; - } - --ContentAnalysisAcknowledgement::FinalAction GetFinalAction( -- FinalContentAnalysisResult final_result) { -- auto final_action = ContentAnalysisAcknowledgement::ALLOW; -- switch (final_result) { -- case FinalContentAnalysisResult::FAILURE: -- case FinalContentAnalysisResult::LARGE_FILES: -- case FinalContentAnalysisResult::ENCRYPTED_FILES: -- final_action = ContentAnalysisAcknowledgement::BLOCK; -- break; -- case FinalContentAnalysisResult::WARNING: -- final_action = ContentAnalysisAcknowledgement::WARN; -- break; -- case FinalContentAnalysisResult::SUCCESS: -- break; -- } -- -- return final_action; --} -- - } // namespace - - ContentAnalysisDelegate::Data::Data() = default; -@@ -156,15 +131,6 @@ void ContentAnalysisDelegate::BypassWarnings( +@@ -140,15 +134,6 @@ void ContentAnalysisDelegate::BypassWarnings( // Mark the full text as complying and report a warning bypass. if (text_warning_) { std::fill(result_.text_results.begin(), result_.text_results.end(), true); @@ -327,7 +325,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } if (!warned_file_indices_.empty()) { -@@ -178,12 +144,6 @@ void ContentAnalysisDelegate::BypassWarnings( +@@ -162,12 +147,6 @@ void ContentAnalysisDelegate::BypassWarnings( // Mark the printed page as complying and report a warning bypass. if (page_warning_) { result_.page_result = true; @@ -340,7 +338,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } RunCallback(); -@@ -193,14 +153,6 @@ void ContentAnalysisDelegate::Cancel(bool warning) { +@@ -177,14 +156,6 @@ void ContentAnalysisDelegate::Cancel(bool warning) { if (callback_.is_null()) return; @@ -355,7 +353,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele // Make sure to reject everything. FillAllResultsWith(false); RunCallback(); -@@ -346,8 +298,7 @@ ContentAnalysisDelegate::ContentAnalysisDelegate( +@@ -330,8 +301,7 @@ ContentAnalysisDelegate::ContentAnalysisDelegate( CompletionCallback callback, safe_browsing::DeepScanAccessPoint access_point) : data_(std::move(data)), @@ -365,9 +363,9 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele DCHECK(web_contents); profile_ = Profile::FromBrowserContext(web_contents->GetBrowserContext()); url_ = web_contents->GetLastCommittedURL(); -@@ -364,13 +315,6 @@ void ContentAnalysisDelegate::StringRequestCallback( +@@ -351,13 +321,6 @@ void ContentAnalysisDelegate::StringRequestCallback( if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) - request_tokens_.push_back(response.request_token()); + final_actions_[response.request_token()] = GetAckFinalAction(response); - int64_t content_size = 0; - for (const std::string& entry : data_.text) @@ -379,7 +377,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele text_request_complete_ = true; RequestHandlerResult request_handler_result = -@@ -383,12 +327,6 @@ void ContentAnalysisDelegate::StringRequestCallback( +@@ -370,12 +333,6 @@ void ContentAnalysisDelegate::StringRequestCallback( std::fill(result_.text_results.begin(), result_.text_results.end(), text_complies); @@ -392,9 +390,9 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele UpdateFinalResult(request_handler_result.final_result, request_handler_result.tag); -@@ -448,10 +386,6 @@ void ContentAnalysisDelegate::PageRequestCallback( +@@ -435,10 +392,6 @@ void ContentAnalysisDelegate::PageRequestCallback( if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) - request_tokens_.push_back(response.request_token()); + final_actions_[response.request_token()] = GetAckFinalAction(response); - RecordDeepScanMetrics(access_point_, - base::TimeTicks::Now() - upload_start_time_, @@ -403,7 +401,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele page_request_complete_ = true; RequestHandlerResult request_handler_result = -@@ -461,13 +395,6 @@ void ContentAnalysisDelegate::PageRequestCallback( +@@ -448,13 +401,6 @@ void ContentAnalysisDelegate::PageRequestCallback( bool should_warn = request_handler_result.final_result == FinalContentAnalysisResult::WARNING; @@ -417,7 +415,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele UpdateFinalResult(request_handler_result.final_result, request_handler_result.tag); -@@ -486,19 +413,7 @@ bool ContentAnalysisDelegate::UploadData() { +@@ -473,19 +419,7 @@ bool ContentAnalysisDelegate::UploadData() { PrepareTextRequest(); PreparePageRequest(); @@ -426,7 +424,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - // MultiFileRequestHandler is owned by this class. - files_request_handler_ = FilesRequestHandler::Create( - GetBinaryUploadService(), profile_, data_.settings, url_, "", "", -- access_point_, data_.paths, +- user_action_id_, access_point_, data_.paths, - base::BindOnce(&ContentAnalysisDelegate::FilesRequestCallback, - GetWeakPtr())); - files_request_complete_ = !files_request_handler_->UploadData(); @@ -438,7 +436,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele data_uploaded_ = true; // Do not add code under this comment. The above line should be the last thing // this function does before the return statement. -@@ -508,70 +423,14 @@ bool ContentAnalysisDelegate::UploadData() { +@@ -495,52 +429,9 @@ bool ContentAnalysisDelegate::UploadData() { } void ContentAnalysisDelegate::PrepareTextRequest() { @@ -490,6 +488,8 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - } } + // This method only prepares requests for print and paste events. File events +@@ -549,31 +440,6 @@ void ContentAnalysisDelegate::PreparePageRequest() { void ContentAnalysisDelegate::PrepareRequest( enterprise_connectors::AnalysisConnector connector, BinaryUploadService::Request* request) { @@ -497,6 +497,18 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - request->set_device_token( - data_.settings.cloud_or_local_settings.dm_token()); - } +- +- // Include tab page title, user action id, and count of requests per user +- // action in local content analysis requests. +- if (data_.settings.cloud_or_local_settings.is_local_analysis()) { +- request->set_tab_title(title_); +- request->set_user_action_id(user_action_id_); +- // Set request count to 1 for print/paste event. Request count for file +- // events are set in +- // chrome/browser/enterprise/connectors/analysis/request_handler_base.cc +- request->set_user_action_requests_count(1); +- } +- - request->set_analysis_connector(connector); - request->set_email(safe_browsing::GetProfileEmail(profile_)); - request->set_url(data_.url.spec()); @@ -509,7 +521,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } void ContentAnalysisDelegate::FillAllResultsWith(bool status) { -@@ -581,8 +440,7 @@ void ContentAnalysisDelegate::FillAllResultsWith(bool status) { +@@ -583,8 +449,7 @@ void ContentAnalysisDelegate::FillAllResultsWith(bool status) { } BinaryUploadService* ContentAnalysisDelegate::GetBinaryUploadService() { @@ -519,7 +531,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } void ContentAnalysisDelegate::UploadTextForDeepScanning( -@@ -642,21 +500,6 @@ void ContentAnalysisDelegate::UpdateFinalResult( +@@ -644,18 +509,6 @@ void ContentAnalysisDelegate::UpdateFinalResult( } void ContentAnalysisDelegate::AckAllRequests() { @@ -527,15 +539,12 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - if (!upload_service) - return; - -- // Calculate final action applied to all requests. -- auto final_action = GetFinalAction(final_result_); -- -- for (auto& token : request_tokens_) { +- for (const auto& token_and_action : final_actions_) { - auto ack = std::make_unique( - data_.settings.cloud_or_local_settings); -- ack->set_request_token(token); +- ack->set_request_token(token_and_action.first); - ack->set_status(ContentAnalysisAcknowledgement::SUCCESS); -- ack->set_final_action(final_action); +- ack->set_final_action(token_and_action.second); - upload_service->MaybeAcknowledge(std::move(ack)); - } } @@ -544,7 +553,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h --- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h +++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h -@@ -307,10 +307,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { +@@ -311,10 +311,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { bool page_warning_ = false; enterprise_connectors::ContentAnalysisResponse page_response_; @@ -555,7 +564,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele // Set to true once the scan of text has completed. If the scan request has // no text requiring deep scanning, this is set to true immediately. bool text_request_complete_ = false; -@@ -330,9 +326,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { +@@ -334,9 +330,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { // Pointer to UI when enabled. raw_ptr dialog_ = nullptr; @@ -568,7 +577,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc b/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc --- a/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc +++ b/chrome/browser/enterprise/connectors/analysis/request_handler_base.cc -@@ -41,21 +41,6 @@ void RequestHandlerBase::AppendRequestTokensTo( +@@ -48,26 +48,6 @@ void RequestHandlerBase::AppendFinalActionsTo( void RequestHandlerBase::PrepareRequest( enterprise_connectors::AnalysisConnector connector, safe_browsing::BinaryUploadService::Request* request) { @@ -576,6 +585,11 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base. - request->set_device_token( - analysis_settings_.cloud_or_local_settings.dm_token()); - } +- if (analysis_settings_.cloud_or_local_settings.is_local_analysis()) { +- request->set_user_action_id(user_action_id_); +- request->set_user_action_requests_count(user_action_requests_count_); +- } +- - request->set_analysis_connector(connector); - request->set_email(safe_browsing::GetProfileEmail(profile_)); - request->set_url(url_.spec()); @@ -593,7 +607,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base. diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc --- a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc +++ b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc -@@ -399,7 +399,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( +@@ -400,7 +400,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( } std::string RealtimeReportingClient::GetProfileUserName() const { @@ -605,7 +619,7 @@ diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_c diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -746,9 +746,6 @@ static_library("extensions") { +@@ -744,9 +744,6 @@ static_library("extensions") { # TODO(crbug.com/1065748): Remove this circular dependency. "//chrome/browser/web_applications/extensions", @@ -615,7 +629,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL ] # Since browser and browser_extensions actually depend on each other, -@@ -798,8 +795,6 @@ static_library("extensions") { +@@ -795,8 +792,6 @@ static_library("extensions") { "//chrome/browser/profiles:profile", "//chrome/browser/resource_coordinator:intervention_policy_database_proto", "//chrome/browser/resource_coordinator:mojo_bindings", @@ -640,7 +654,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc --- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc +++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc -@@ -304,10 +304,7 @@ void SafeBrowsingPrivateEventRouter::OnPolicySpecifiedPasswordReuseDetected( +@@ -301,10 +301,7 @@ void SafeBrowsingPrivateEventRouter::OnPolicySpecifiedPasswordReuseDetected( event.Set(kKeyUserName, params.user_name); event.Set(kKeyIsPhishingUrl, params.is_phishing_url); event.Set(kKeyProfileUserName, GetProfileUserName()); @@ -652,7 +666,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p reporting_client_->ReportRealtimeEvent( kKeyPasswordReuseEvent, std::move(settings.value()), std::move(event)); -@@ -386,8 +383,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadOpened( +@@ -383,8 +380,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadOpened( if (content_size >= 0) event.Set(kKeyContentSize, base::Int64ToValue(content_size)); event.Set(kKeyTrigger, kTriggerFileDownload); @@ -662,7 +676,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p event.Set(kKeyClickedThrough, true); event.Set(kKeyThreatType, DangerTypeToThreatType(danger_type)); // The scan ID can be empty when the reported dangerous download is from a -@@ -431,22 +427,6 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialShown( +@@ -428,22 +424,6 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialShown( settings->enabled_event_names.count(kKeyInterstitialEvent) == 0) { return; } @@ -685,7 +699,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p } void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded( -@@ -486,8 +466,7 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded( +@@ -483,8 +463,7 @@ void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded( event.Set(kKeyNetErrorCode, net_error_code); event.Set(kKeyProfileUserName, params.user_name); event.Set(kKeyClickedThrough, true); @@ -695,7 +709,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p reporting_client_->ReportRealtimeEvent( kKeyInterstitialEvent, std::move(settings.value()), std::move(event)); -@@ -563,7 +542,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDeepScanningResult( +@@ -560,7 +539,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDeepScanningResult( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, trigger); @@ -704,7 +718,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p event.Set(kKeyClickedThrough, event_result == safe_browsing::EventResult::BYPASSED); if (!malware_family.empty()) { -@@ -625,7 +604,7 @@ void SafeBrowsingPrivateEventRouter::OnSensitiveDataEvent( +@@ -622,7 +601,7 @@ void SafeBrowsingPrivateEventRouter::OnSensitiveDataEvent( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, trigger); @@ -713,7 +727,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p event.Set(kKeyClickedThrough, event_result == safe_browsing::EventResult::BYPASSED); if (!result.evidence_locker_filepath().empty()) { -@@ -679,8 +658,7 @@ void SafeBrowsingPrivateEventRouter::OnAnalysisConnectorWarningBypassed( +@@ -676,8 +655,7 @@ void SafeBrowsingPrivateEventRouter::OnAnalysisConnectorWarningBypassed( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, trigger); @@ -723,7 +737,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p event.Set(kKeyClickedThrough, true); if (!result.evidence_locker_filepath().empty()) { event.Set(kKeyEvidenceLockerFilePath, result.evidence_locker_filepath()); -@@ -736,7 +714,7 @@ void SafeBrowsingPrivateEventRouter::OnUnscannedFileEvent( +@@ -733,7 +711,7 @@ void SafeBrowsingPrivateEventRouter::OnUnscannedFileEvent( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, trigger); @@ -732,7 +746,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p event.Set(kKeyClickedThrough, event_result == safe_browsing::EventResult::BYPASSED); -@@ -788,7 +766,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadEvent( +@@ -785,7 +763,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadEvent( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, kTriggerFileDownload); @@ -741,7 +755,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p // The scan ID can be empty when the reported dangerous download is from a // Safe Browsing verdict. -@@ -843,8 +821,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadWarningBypassed( +@@ -840,8 +818,7 @@ void SafeBrowsingPrivateEventRouter::OnDangerousDownloadWarningBypassed( event.Set(kKeyContentSize, base::Int64ToValue(content_size)); } event.Set(kKeyTrigger, kTriggerFileDownload); @@ -751,7 +765,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p // The scan ID can be empty when the reported dangerous download is from a // Safe Browsing verdict. if (!scan_id.empty()) { -@@ -934,7 +911,7 @@ void SafeBrowsingPrivateEventRouter::SetIdentityManagerForTesting( +@@ -931,7 +908,7 @@ void SafeBrowsingPrivateEventRouter::SetIdentityManagerForTesting( } std::string SafeBrowsingPrivateEventRouter::GetProfileUserName() const { @@ -763,7 +777,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -720,18 +720,6 @@ void WebstorePrivateBeginInstallWithManifest3Function::OnFrictionPromptDone( +@@ -722,18 +722,6 @@ void WebstorePrivateBeginInstallWithManifest3Function::OnFrictionPromptDone( void WebstorePrivateBeginInstallWithManifest3Function:: ReportFrictionAcceptedEvent() { @@ -782,7 +796,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone( -@@ -1202,8 +1190,7 @@ WebstorePrivateGetReferrerChainFunction:: +@@ -1216,8 +1204,7 @@ WebstorePrivateGetReferrerChainFunction:: ExtensionFunction::ResponseAction WebstorePrivateGetReferrerChainFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); @@ -886,7 +900,7 @@ diff --git a/chrome/browser/extensions/extension_allowlist.cc b/chrome/browser/e diff --git a/chrome/browser/media/webrtc/display_media_access_handler.cc b/chrome/browser/media/webrtc/display_media_access_handler.cc --- a/chrome/browser/media/webrtc/display_media_access_handler.cc +++ b/chrome/browser/media/webrtc/display_media_access_handler.cc -@@ -130,7 +130,6 @@ void DisplayMediaAccessHandler::HandleRequest( +@@ -124,7 +124,6 @@ void DisplayMediaAccessHandler::HandleRequest( blink::mojom::StreamDevicesSet(), blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED, /*ui=*/nullptr); @@ -949,7 +963,7 @@ diff --git a/chrome/browser/notifications/notification_display_service_impl.cc b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -1876,13 +1876,6 @@ std::unique_ptr BuildHandlerList( +@@ -1902,13 +1902,6 @@ std::unique_ptr BuildHandlerList( prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckMode, prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckScope, chrome_schema)); @@ -966,7 +980,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1572,8 +1572,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1548,8 +1548,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, component_updater::RegisterProfilePrefsForSwReporter(registry); FontPrewarmerTabHelper::RegisterProfilePrefs(registry); NetworkProfileBubble::RegisterProfilePrefs(registry); @@ -980,7 +994,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc --- a/chrome/browser/printing/print_view_manager.cc +++ b/chrome/browser/printing/print_view_manager.cc -@@ -275,20 +275,6 @@ void PrintViewManager::OnDlpPrintingRestrictionsChecked( +@@ -275,21 +275,6 @@ void PrintViewManager::OnDlpPrintingRestrictionsChecked( void PrintViewManager::RejectPrintPreviewRequestIfRestrictedByContentAnalysis( content::GlobalRenderFrameHostId rfh_id, base::OnceCallback callback) { @@ -992,6 +1006,7 @@ diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/prin - Profile::FromBrowserContext(web_contents()->GetBrowserContext()), - web_contents()->GetLastCommittedURL(), &scanning_data, - enterprise_connectors::AnalysisConnector::PRINT)) { +- set_snapshotting_for_content_analysis(); - GetPrintRenderFrame(rfh)->SnapshotForContentAnalysis(base::BindOnce( - &PrintViewManager::OnGotSnapshotCallback, weak_factory_.GetWeakPtr(), - std::move(callback), std::move(scanning_data), rfh_id)); @@ -1025,7 +1040,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin if (false) { sources = [ "chrome_controller_client.cc", -@@ -424,7 +424,7 @@ static_library("safe_browsing") { +@@ -434,7 +434,7 @@ static_library("safe_browsing") { } } @@ -1034,7 +1049,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin sources = [ "verdict_cache_manager_factory.cc", "verdict_cache_manager_factory.h", -@@ -445,7 +445,7 @@ source_set("verdict_cache_manager_factory") { +@@ -455,7 +455,7 @@ source_set("verdict_cache_manager_factory") { ] } @@ -1043,7 +1058,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin sources = [ "advanced_protection_status_manager.cc", "advanced_protection_status_manager.h", -@@ -465,7 +465,7 @@ static_library("advanced_protection") { +@@ -475,7 +475,7 @@ static_library("advanced_protection") { ] } @@ -1077,7 +1092,7 @@ diff --git a/chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.c diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/chrome/browser/safe_browsing/download_protection/file_analyzer.h --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.h +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.h -@@ -17,10 +17,6 @@ +@@ -18,10 +18,6 @@ #include "components/safe_browsing/core/common/proto/csd.pb.h" #include "third_party/protobuf/src/google/protobuf/repeated_field.h" @@ -1088,7 +1103,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/ #if BUILDFLAG(IS_MAC) #include "chrome/common/safe_browsing/disk_image_type_sniffer_mac.h" #include "chrome/services/file_util/public/cpp/sandboxed_dmg_analyzer_mac.h" -@@ -105,12 +101,6 @@ class FileAnalyzer { +@@ -106,12 +102,6 @@ class FileAnalyzer { const safe_browsing::ArchiveAnalyzerResults& archive_results); #endif @@ -1098,10 +1113,10 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/ - const DocumentAnalyzerResults& document_results); -#endif - - void LogAnalysisDurationWithAndWithoutSuffix(const std::string& suffix); - - base::FilePath target_path_; -@@ -128,11 +118,6 @@ class FileAnalyzer { + void StartExtractSevenZipFeatures(); + void OnSevenZipAnalysisFinished( + const ArchiveAnalyzerResults& archive_results); +@@ -133,11 +123,6 @@ class FileAnalyzer { scoped_refptr dmg_analyzer_; #endif @@ -1110,9 +1125,9 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/ - base::TimeTicks document_analysis_start_time_; -#endif - - base::WeakPtrFactory weakptr_factory_{this}; - }; + scoped_refptr seven_zip_analyzer_; + base::WeakPtrFactory weakptr_factory_{this}; diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc --- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc @@ -1168,7 +1183,7 @@ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrom diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -420,7 +420,6 @@ static_library("ui") { +@@ -425,7 +425,6 @@ static_library("ui") { "//chrome/browser/resources/net_internals:resources", "//chrome/browser/resources/omnibox:resources", "//chrome/browser/resources/usb_internals:resources", @@ -1176,7 +1191,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/share", "//chrome/browser/ui/webui:configs", "//chrome/browser/ui/webui/bluetooth_internals", -@@ -669,7 +668,6 @@ static_library("ui") { +@@ -675,7 +674,6 @@ static_library("ui") { # TODO(crbug.com/1158905): Remove this circular dependency. "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -1184,7 +1199,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/ui/webui/bluetooth_internals", "//chrome/browser/profiling_host", "//chrome/browser/ui/webui:configs", -@@ -1785,8 +1783,6 @@ static_library("ui") { +@@ -1789,8 +1787,6 @@ static_library("ui") { "//chrome/browser/resource_coordinator/tab_ranker", "//chrome/browser/resources/identity_internals:resources", "//chrome/browser/resources/support_tool:resources", @@ -1193,7 +1208,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/support_tool:support_tool_proto", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", -@@ -3546,8 +3542,6 @@ static_library("ui") { +@@ -3570,8 +3566,6 @@ static_library("ui") { "views/profiles/profile_picker_force_signin_dialog_host.h", "views/profiles/profile_picker_signed_in_flow_controller.cc", "views/profiles/profile_picker_signed_in_flow_controller.h", @@ -1216,7 +1231,7 @@ diff --git a/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_ma diff --git a/chrome/browser/ui/page_info/chrome_page_info_delegate.cc b/chrome/browser/ui/page_info/chrome_page_info_delegate.cc --- a/chrome/browser/ui/page_info/chrome_page_info_delegate.cc +++ b/chrome/browser/ui/page_info/chrome_page_info_delegate.cc -@@ -240,7 +240,6 @@ void ChromePageInfoDelegate::OpenConnectionHelpCenterPage( +@@ -256,7 +256,6 @@ void ChromePageInfoDelegate::OpenConnectionHelpCenterPage( } void ChromePageInfoDelegate::OpenSafetyTipHelpCenterPage() { @@ -1227,7 +1242,7 @@ diff --git a/chrome/browser/ui/page_info/chrome_page_info_delegate.cc b/chrome/b diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc --- a/chrome/browser/ui/views/download/download_item_view.cc +++ b/chrome/browser/ui/views/download/download_item_view.cc -@@ -835,21 +835,7 @@ void DownloadItemView::UpdateLabels() { +@@ -837,21 +837,7 @@ void DownloadItemView::UpdateLabels() { warning_label_->SizeToFit(GetLabelWidth(*warning_label_)); } @@ -1250,7 +1265,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro } void DownloadItemView::UpdateButtons() { -@@ -1083,11 +1069,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { +@@ -1085,11 +1071,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { switch (danger_type) { case download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT: @@ -1263,7 +1278,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST: -@@ -1366,7 +1348,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, +@@ -1369,7 +1351,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, } void DownloadItemView::OpenDownloadDuringAsyncScanning() { @@ -1440,7 +1455,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/child", "//chrome/common:non_code_constants", "//chrome/common:test_support", -@@ -1242,7 +1241,6 @@ if (!is_android) { +@@ -1267,7 +1266,6 @@ if (!is_android) { "//chrome/browser/profiling_host:profiling_browsertests", "//chrome/browser/resource_coordinator:tab_manager_features", "//chrome/browser/resource_coordinator:tab_metrics_event_proto", @@ -1448,7 +1463,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/browser/segmentation_platform:test_utils", "//chrome/browser/sharing/proto", "//chrome/browser/ui/color:color_headers", -@@ -5748,9 +5746,6 @@ test("unit_tests") { +@@ -5809,9 +5807,6 @@ test("unit_tests") { "//chrome/browser/profile_resetter:profile_reset_report_proto", "//chrome/browser/profiling_host", "//chrome/browser/push_messaging:budget_proto", @@ -1461,7 +1476,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc --- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc +++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc -@@ -111,6 +111,7 @@ void MojoSafeBrowsingImpl::MaybeCreate( +@@ -118,6 +118,7 @@ void MojoSafeBrowsingImpl::MaybeCreate( if (!resource_context || !delegate) return; @@ -1484,7 +1499,7 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc --- a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc +++ b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc -@@ -101,24 +101,18 @@ PersistentPrefStore* CreateTrackedPersistentPrefStore( +@@ -102,24 +102,18 @@ PersistentPrefStore* CreateTrackedPersistentPrefStore( } #endif diff --git a/build/patches/00Disable-various-metrics--win-fixup-.patch b/build/patches/00Disable-various-metrics--win-fixup-.patch index c423668d..af8aa581 100644 --- a/build/patches/00Disable-various-metrics--win-fixup-.patch +++ b/build/patches/00Disable-various-metrics--win-fixup-.patch @@ -10,7 +10,7 @@ Subject: Disable various metrics (win fixup) diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/ui/search/ntp_user_data_logger.cc --- a/chrome/browser/ui/search/ntp_user_data_logger.cc +++ b/chrome/browser/ui/search/ntp_user_data_logger.cc -@@ -429,8 +429,6 @@ void NTPUserDataLogger::LogMostVisitedImpression( +@@ -394,8 +394,6 @@ void NTPUserDataLogger::LogMostVisitedImpression( void NTPUserDataLogger::LogMostVisitedNavigation( const ntp_tiles::NTPTileImpression& impression) { @@ -19,7 +19,7 @@ diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/u // Records the action. This will be available as a time-stamped stream // server-side and can be used to compute time-to-long-dwell. base::RecordAction(base::UserMetricsAction("MostVisited_Clicked")); -@@ -459,10 +457,8 @@ void NTPUserDataLogger::EmitNtpStatistics(base::TimeDelta load_time, +@@ -424,10 +422,8 @@ void NTPUserDataLogger::EmitNtpStatistics(base::TimeDelta load_time, if (!impression.has_value()) { break; } diff --git a/build/patches/00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch b/build/patches/00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch index 0ce4952c..c6acda31 100644 --- a/build/patches/00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch +++ b/build/patches/00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch @@ -9,14 +9,14 @@ Subject: Enable CrossSiteFlagNetworkAnonymizationKey flag diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -164,7 +164,7 @@ const base::Feature kEnableDoubleKeyNetworkAnonymizationKey{ +@@ -131,7 +131,7 @@ BASE_FEATURE(kEnableDoubleKeyNetworkAnonymizationKey, - const base::Feature kEnableCrossSiteFlagNetworkAnonymizationKey{ - "EnableCrossSiteFlagNetworkAnonymizationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kEnableCrossSiteFlagNetworkAnonymizationKey, + "EnableCrossSiteFlagNetworkAnonymizationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kExpectCTPruning{"ExpectCTPruning", - base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kExpectCTPruning, + "ExpectCTPruning", -- 2.25.1 diff --git a/build/patches/00Enable-ThirdPartyStoragePartitioning-flag.patch b/build/patches/00Enable-ThirdPartyStoragePartitioning-flag.patch index b1467ae8..e36f09a2 100644 --- a/build/patches/00Enable-ThirdPartyStoragePartitioning-flag.patch +++ b/build/patches/00Enable-ThirdPartyStoragePartitioning-flag.patch @@ -9,14 +9,14 @@ Subject: Enable ThirdPartyStoragePartitioning flag diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -358,7 +358,7 @@ const base::FeatureParam kStorageAccessAPIAutoDenyOutsideFPS{ - // Enables partitioning of third party storage (IndexedDB, CacheStorage, etc.) +@@ -366,7 +366,7 @@ const base::FeatureParam kStorageAccessAPIAutoDenyOutsideFPS{ // by the top level site to reduce fingerprinting. - const base::Feature kThirdPartyStoragePartitioning{ -- "ThirdPartyStoragePartitioning", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "ThirdPartyStoragePartitioning", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kThirdPartyStoragePartitioning, + "ThirdPartyStoragePartitioning", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); + + BASE_FEATURE(kAlpsParsing, "AlpsParsing", base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kAlpsParsing{"AlpsParsing", - base::FEATURE_ENABLED_BY_DEFAULT}; -- 2.25.1 diff --git a/build/patches/00Experimental-user-scripts-support--win-fixup-.patch b/build/patches/00Experimental-user-scripts-support--win-fixup-.patch index c2db5c81..3db4095d 100644 --- a/build/patches/00Experimental-user-scripts-support--win-fixup-.patch +++ b/build/patches/00Experimental-user-scripts-support--win-fixup-.patch @@ -20,7 +20,7 @@ Subject: Experimental user scripts support (win fixup) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3521,11 +3521,13 @@ static_library("browser") { +@@ -3536,11 +3536,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -42,7 +42,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7554,9 +7554,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7773,9 +7773,11 @@ const FeatureEntry kFeatureEntries[] = { chromeos::features::kClipboardHistoryNudgeSessionReset)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -57,7 +57,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1351,7 +1351,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1324,7 +1324,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -87,7 +87,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -272,7 +272,9 @@ +@@ -273,7 +273,9 @@ #include "chrome/browser/enterprise/idle/idle_service_factory.h" #endif @@ -97,7 +97,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { -@@ -637,7 +639,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -639,7 +641,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -110,7 +110,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -115,7 +115,9 @@ +@@ -116,7 +116,9 @@ #include "extensions/common/manifest.h" #endif @@ -120,7 +120,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" -@@ -1699,11 +1701,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1708,11 +1710,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, #endif @@ -188,7 +188,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -822,8 +822,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -835,8 +835,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; @@ -251,7 +251,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) -@@ -585,12 +589,14 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -596,12 +600,14 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, registry); #endif @@ -266,7 +266,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); -@@ -1561,6 +1567,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1572,6 +1578,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. @@ -276,7 +276,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = -@@ -1569,6 +1578,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1580,6 +1589,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( userscript_client->RunScriptsAtDocumentStart( render_frame); } @@ -284,7 +284,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1577,6 +1587,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1588,6 +1598,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. @@ -294,7 +294,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = -@@ -1585,6 +1598,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1596,6 +1609,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( userscript_client->RunScriptsAtDocumentEnd( render_frame); } @@ -302,7 +302,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1593,6 +1607,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1604,6 +1618,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. @@ -312,7 +312,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = -@@ -1601,6 +1618,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1612,6 +1629,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( userscript_client->RunScriptsAtDocumentIdle( render_frame); } @@ -323,7 +323,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc --- a/chrome/renderer/chrome_render_thread_observer.cc +++ b/chrome/renderer/chrome_render_thread_observer.cc -@@ -255,7 +255,9 @@ void ChromeRenderThreadObserver::SetInitialConfiguration( +@@ -261,7 +261,9 @@ void ChromeRenderThreadObserver::SetInitialConfiguration( void ChromeRenderThreadObserver::SetConfiguration( chrome::mojom::DynamicParamsPtr params) { *GetDynamicConfigParams() = std::move(*params); diff --git a/build/patches/00Eyeo-Adblock--win-fixup-.patch b/build/patches/00Eyeo-Adblock--win-fixup-.patch index 4947a409..75afc1c0 100644 --- a/build/patches/00Eyeo-Adblock--win-fixup-.patch +++ b/build/patches/00Eyeo-Adblock--win-fixup-.patch @@ -22,7 +22,7 @@ diff --git a/chrome/browser/resources/settings/adblock_page/adblock_page.ts b/ch diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -2350,10 +2350,6 @@ if (!is_android) { +@@ -2378,10 +2378,6 @@ if (!is_android) { "v8/wasm_trap_handler_browsertest.cc", ] diff --git a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch index 886a25c6..8d58f9cd 100644 --- a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch +++ b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch @@ -6,8 +6,8 @@ Subject: Eyeo Adblock Remove .../android/java/res/xml/main_preferences.xml | 11 +- chrome/browser/BUILD.gn | 2 - .../adblock/adblock_content_browser_client.cc | 23 - - .../adblock_telemetry_service_factory.cc | 91 - - .../adblock_telemetry_service_factory.h | 50 - + .../adblock_telemetry_service_factory.cc | 115 - + .../adblock_telemetry_service_factory.h | 56 - .../adblock/subscription_updater_factory.cc | 2 +- ...hrome_browser_main_extra_parts_profiles.cc | 2 - chrome/test/BUILD.gn | 1 - @@ -19,12 +19,12 @@ Subject: Eyeo Adblock Remove components/adblock/content/common/BUILD.gn | 14 - .../adblock_url_loader_factory_for_test.cc | 194 - .../adblock_url_loader_factory_for_test.h | 73 - - components/adblock/core/BUILD.gn | 49 - - .../activeping_telemetry_topic_provider.cc | 206 -- - .../activeping_telemetry_topic_provider.h | 72 - + components/adblock/core/BUILD.gn | 45 - + .../activeping_telemetry_topic_provider.cc | 239 -- + .../activeping_telemetry_topic_provider.h | 80 - .../adblock/core/adblock_controller_impl.cc | 8 +- - .../adblock/core/adblock_telemetry_service.cc | 216 -- - .../adblock/core/adblock_telemetry_service.h | 96 - + .../adblock/core/adblock_telemetry_service.cc | 236 -- + .../adblock/core/adblock_telemetry_service.h | 103 - .../adblock/core/common/adblock_constants.cc | 2 - .../adblock/core/common/adblock_constants.h | 1 - .../adblock/core/common/adblock_prefs.cc | 42 +- @@ -48,7 +48,7 @@ Subject: Eyeo Adblock Remove components/resources/adblocking/BUILD.gn | 25 +- .../snippets/dist/isolated-first.jst | 62 + .../snippets/dist/isolated-first.source.jst | 3126 +++++++++++++++++ - 45 files changed, 3259 insertions(+), 1308 deletions(-) + 45 files changed, 3259 insertions(+), 1402 deletions(-) delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (100%) @@ -65,28 +65,21 @@ Subject: Eyeo Adblock Remove diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -1,11 +1,4 @@ +@@ -1,13 +1,4 @@ --<<<<<<< HEAD - --======= - - -->>>>>>> 619c30d2d529e... Squashed commits - -@@ -90,7 +81,7 @@ found in the LICENSE file. +@@ -83,7 +74,7 @@ Use of this source code is governed by the GPLv3 that can be found in the compon android:title="@string/prefs_accessibility"/> g_check_interval_for_testing; +-std::optional g_initial_delay_for_testing; +- +-base::TimeDelta GetInitialDelay() { +- static base::TimeDelta kInitialDelay = +- g_initial_delay_for_testing ? g_initial_delay_for_testing.value() +- : base::Seconds(30); +- return kInitialDelay; +-} +- +-base::TimeDelta GetCheckInterval() { +- static base::TimeDelta kCheckInterval = +- g_check_interval_for_testing ? g_check_interval_for_testing.value() +- : base::Minutes(5); +- return kCheckInterval; +-} +-} // namespace - -// static -AdblockTelemetryService* AdblockTelemetryServiceFactory::GetForProfile( @@ -207,9 +218,8 @@ deleted file mode 100644 - context->GetDefaultStoragePartition() - ->GetURLLoaderFactoryForBrowserProcess(); - auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); -- auto service = -- std::make_unique(prefs, url_loader_factory); -- +- auto service = std::make_unique( +- prefs, url_loader_factory, GetInitialDelay(), GetCheckInterval()); - service->AddTopicProvider(std::make_unique( - utils::GetAppInfo(), prefs, - ActivepingTelemetryTopicProvider::DefaultBaseUrl(), @@ -235,12 +245,19 @@ deleted file mode 100644 - return true; -} - +-void AdblockTelemetryServiceFactory::SetCheckAndDelayIntervalsForTesting( +- base::TimeDelta check_interval, +- base::TimeDelta initial_delay) { +- g_check_interval_for_testing = check_interval; +- g_initial_delay_for_testing = initial_delay; +-} +- -} // namespace adblock diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.h b/chrome/browser/adblock/adblock_telemetry_service_factory.h deleted file mode 100644 --- a/chrome/browser/adblock/adblock_telemetry_service_factory.h +++ /dev/null -@@ -1,50 +0,0 @@ +@@ -1,56 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -262,6 +279,7 @@ deleted file mode 100644 -#define CHROME_BROWSER_ADBLOCK_ADBLOCK_TELEMETRY_SERVICE_FACTORY_H_ - -#include "base/no_destructor.h" +-#include "base/time/time.h" -#include "components/keyed_service/content/browser_context_keyed_service_factory.h" - -class Profile; @@ -274,6 +292,11 @@ deleted file mode 100644 - static AdblockTelemetryService* GetForProfile(Profile* profile); - static AdblockTelemetryServiceFactory* GetInstance(); - +- // Sets the initial delay and interval checks required for browser tests. +- // Must be called before BuildServiceInstanceFor(). +- void SetCheckAndDelayIntervalsForTesting(base::TimeDelta check_interval, +- base::TimeDelta initial_delay); +- - private: - friend class base::NoDestructor; - AdblockTelemetryServiceFactory(); @@ -314,7 +337,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/adblock/resource_classification_runner_factory.h" #include "chrome/browser/adblock/session_stats_factory.h" #include "chrome/browser/adblock/sitekey_storage_factory.h" -@@ -394,7 +393,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -395,7 +394,6 @@ void ChromeBrowserMainExtraPartsProfiles:: ExitTypeServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); @@ -388,7 +411,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java --- a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java -@@ -114,7 +114,7 @@ public class AdblockSettingsFragment +@@ -103,7 +103,7 @@ public class AdblockSettingsFragment @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -784,22 +807,11 @@ diff --git a/components/adblock/core/BUILD.gn b/components/adblock/core/BUILD.gn } source_set("test_support") { -@@ -160,10 +115,6 @@ source_set("unit_tests") { - "test/sitekey_storage_impl_test.cc", - ] - -- if (eyeo_telemetry_client_id != "") { -- sources += [ "test/adblock_telemetry_service_unittest.cc" ] -- } -- - deps = [ - ":core", - ":test_support", diff --git a/components/adblock/core/activeping_telemetry_topic_provider.cc b/components/adblock/core/activeping_telemetry_topic_provider.cc deleted file mode 100644 --- a/components/adblock/core/activeping_telemetry_topic_provider.cc +++ /dev/null -@@ -1,206 +0,0 @@ +@@ -1,239 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -828,9 +840,35 @@ deleted file mode 100644 - -namespace adblock { -namespace { --constexpr base::TimeDelta kInitialDelay = base::Seconds(10); --constexpr base::TimeDelta kNormalPingInterval = base::Hours(8); --constexpr base::TimeDelta kRetryPingInterval = base::Hours(1); +-int g_http_port_for_testing = 0; +-std::optional g_time_delta_for_testing; +- +-GURL GetUrl() { +- GURL url(EYEO_TELEMETRY_SERVER_URL); +- if (!g_http_port_for_testing) { +- return url; +- } +- DCHECK_EQ(url::kHttpsScheme, url.scheme()); +- GURL::Replacements replacements; +- replacements.SetSchemeStr(url::kHttpScheme); +- const std::string port_str = base::NumberToString(g_http_port_for_testing); +- replacements.SetPortStr(port_str); +- return url.ReplaceComponents(replacements); +-} +- +-base::TimeDelta GetNormalPingInterval() { +- static base::TimeDelta kNormalPingInterval = +- g_time_delta_for_testing ? g_time_delta_for_testing.value() +- : base::Hours(8); +- return kNormalPingInterval; +-} +- +-base::TimeDelta GetRetryPingInterval() { +- static base::TimeDelta kRetryPingInterval = +- g_time_delta_for_testing ? g_time_delta_for_testing.value() +- : base::Hours(1); +- return kRetryPingInterval; +-} - -void AppendStringIfPresent(PrefService* pref_service, - const std::string& pref_name, @@ -864,7 +902,7 @@ deleted file mode 100644 - "not provided. Users will not be counted correctly by eyeo. Please " - "set an ID via \"eyeo_telemetry_client_id\" gn argument."; -#endif -- return GURL(EYEO_TELEMETRY_SERVER_URL); +- return GetUrl(); -} - -// static @@ -890,7 +928,7 @@ deleted file mode 100644 - return auth_token_; -} - --std::string ActivepingTelemetryTopicProvider::GetPayload() const { +-void ActivepingTelemetryTopicProvider::GetPayload(PayloadCallback callback) { - base::Value payload(base::Value::Type::DICTIONARY); - payload.SetStringKey("addon_name", "eyeo-chromium-sdk"); - payload.SetStringKey("addon_version", "2.0.0"); @@ -920,30 +958,25 @@ deleted file mode 100644 - // payload and root objects here, they should be really shallow. - CHECK(base::JSONWriter::Write(root, &serialized)); - VLOG(1) << "[eyeo] Telemetry ping payload: " << serialized; -- return serialized; +- std::move(callback).Run(std::move(serialized)); -} - --base::TimeDelta ActivepingTelemetryTopicProvider::GetTimeToNextRequest() const { +-base::Time ActivepingTelemetryTopicProvider::GetTimeOfNextRequest() const { - const auto next_ping_time = - pref_service_->GetTime(prefs::kTelemetryNextPingTime); - // Next ping time may be unset if this is a first run. Next request should -- // happen soon, but not immediately to avoid interfering with first run load. +- // happen ASAP. - if (next_ping_time.is_null()) -- return kInitialDelay; +- return base::Time::Now(); - -- auto delay_to_next_ping = next_ping_time - base::Time::Now(); -- // Next ping can effectively be in the past. This happens ex. if the browser -- // was shut down for longer than the normal ping interval and is normal. -- // In that case, make the next ping soon, but not immediately, as to not -- // interfere with startup network traffic. -- return std::max(kInitialDelay, delay_to_next_ping); +- return next_ping_time; -} - -void ActivepingTelemetryTopicProvider::ParseResponse( - std::unique_ptr response_content) { - if (!response_content) { - VLOG(1) << "[eyeo] Telemetry ping failed, no response from server"; -- ScheduleNextPing(kRetryPingInterval); +- ScheduleNextPing(GetRetryPingInterval()); - return; - } - @@ -952,7 +985,7 @@ deleted file mode 100644 - if (!parsed || !parsed->is_dict()) { - VLOG(1) - << "[eyeo] Telemetry ping failed, response could not be parsed as JSON"; -- ScheduleNextPing(kRetryPingInterval); +- ScheduleNextPing(GetRetryPingInterval()); - return; - } - @@ -960,7 +993,7 @@ deleted file mode 100644 - if (error_message) { - VLOG(1) << "[eyeo] Telemetry ping failed, error message: " - << *error_message; -- ScheduleNextPing(kRetryPingInterval); +- ScheduleNextPing(GetRetryPingInterval()); - return; - } - @@ -972,12 +1005,12 @@ deleted file mode 100644 - if (!ping_response_time) { - VLOG(1) << "[eyeo] Telemetry ping failed, response did not contain a last " - "ping / token value"; -- ScheduleNextPing(kRetryPingInterval); +- ScheduleNextPing(GetRetryPingInterval()); - return; - } - - VLOG(1) << "[eyeo] Telemetry ping succeeded"; -- ScheduleNextPing(kNormalPingInterval); +- ScheduleNextPing(GetNormalPingInterval()); - UpdatePrefs(*ping_response_time); -} - @@ -1005,12 +1038,24 @@ deleted file mode 100644 - tag.AsLowercaseString()); -} - +-// static +-void ActivepingTelemetryTopicProvider::SetHttpPortForTesting( +- int http_port_for_testing) { +- g_http_port_for_testing = http_port_for_testing; +-} +- +-// static +-void ActivepingTelemetryTopicProvider::SetIntervalsForTesting( +- base::TimeDelta time_delta) { +- g_time_delta_for_testing = time_delta; +-} +- -} // namespace adblock diff --git a/components/adblock/core/activeping_telemetry_topic_provider.h b/components/adblock/core/activeping_telemetry_topic_provider.h deleted file mode 100644 --- a/components/adblock/core/activeping_telemetry_topic_provider.h +++ /dev/null -@@ -1,72 +0,0 @@ +@@ -1,80 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -1061,15 +1106,23 @@ deleted file mode 100644 - - GURL GetEndpointURL() const final; - std::string GetAuthToken() const final; -- std::string GetPayload() const final; +- void GetPayload(PayloadCallback callback) final; - - // Normally 8 hours since last ping, 1 hour in case of retries. -- base::TimeDelta GetTimeToNextRequest() const final; +- base::Time GetTimeOfNextRequest() const final; - - // Attempts to parse "token" (an opaque server description of last ping time) - // from |response_content|. - void ParseResponse(std::unique_ptr response_content) final; - +- // Sets the port used by the embedded http server required for browser tests. +- // Must be called before the first call to DefaultBaseUrl(). +- static void SetHttpPortForTesting(int http_port_for_testing); +- +- // Sets the internal timing for sending pings required for browser tests. +- // Must be called before AdblockTelemetryService::Start(). +- static void SetIntervalsForTesting(base::TimeDelta time_delta); +- - private: - void ScheduleNextPing(base::TimeDelta delay); - void UpdatePrefs(const std::string& ping_response_time); @@ -1086,7 +1139,7 @@ deleted file mode 100644 diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adblock/core/adblock_controller_impl.cc --- a/components/adblock/core/adblock_controller_impl.cc +++ b/components/adblock/core/adblock_controller_impl.cc -@@ -397,7 +397,7 @@ void AdblockControllerImpl::InstallMissingSubscriptions( +@@ -392,7 +392,7 @@ void AdblockControllerImpl::InstallMissingSubscriptions( subscriptions_in_service.begin(), subscriptions_in_service.end(), std::back_inserter(subscriptions_to_install)); for (const auto& sub : subscriptions_to_install) { @@ -1095,7 +1148,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb DownloadAndInstallSubscription(sub); } } -@@ -418,7 +418,7 @@ void AdblockControllerImpl::RemoveUnexpectedSubscriptions( +@@ -413,7 +413,7 @@ void AdblockControllerImpl::RemoveUnexpectedSubscriptions( subscriptions_in_prefs.begin(), subscriptions_in_prefs.end(), std::back_inserter(subscriptions_to_uninstall)); for (const auto& sub : subscriptions_to_uninstall) { @@ -1104,7 +1157,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb UninstallSubscription(sub); } } -@@ -435,11 +435,11 @@ GURL AdblockControllerImpl::FindLanguageBasedRecommendedSubscription() const { +@@ -430,11 +430,11 @@ GURL AdblockControllerImpl::FindLanguageBasedRecommendedSubscription() const { language_) != subscription.languages.end(); }); if (language_specific_subscription == recommended_subscriptions.end()) { @@ -1122,7 +1175,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.cc b/components/a deleted file mode 100644 --- a/components/adblock/core/adblock_telemetry_service.cc +++ /dev/null -@@ -1,216 +0,0 @@ +@@ -1,236 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -1145,6 +1198,8 @@ deleted file mode 100644 -#include - -#include "base/bind.h" +-#include "base/functional/bind.h" +-#include "base/memory/weak_ptr.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" -#include "base/strings/stringprintf.h" @@ -1207,39 +1262,44 @@ deleted file mode 100644 - : topic_provider_(std::move(topic_provider)), - url_loader_factory_(url_loader_factory) {} - -- void Start() { +- bool IsRequestDue() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- if (IsRunning()) -- return; -- ScheduleNextRequest(); +- const auto due_time = topic_provider_->GetTimeOfNextRequest(); +- if (due_time > base::Time::Now()) { +- VLOG(1) << "[eyeo] Telemetry request for " +- << topic_provider_->GetEndpointURL() +- << " not due yet, should run at " << due_time; +- return false; +- } +- if (IsRequestInFlight()) { +- VLOG(1) << "[eyeo] Telemetry request for " +- << topic_provider_->GetEndpointURL() << " already in-flight"; +- return false; +- } +- VLOG(1) << "[eyeo] Telemetry request for " +- << topic_provider_->GetEndpointURL() << " is due"; +- return true; +- } +- +- void StartRequest() { +- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- VLOG(1) << "[eyeo] Telemetry request for " +- << topic_provider_->GetEndpointURL() << " starting now"; +- topic_provider_->GetPayload(base::BindOnce(&Conversation::MakeRequest, +- weak_ptr_factory_.GetWeakPtr())); - } - - void Stop() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- if (!IsRunning()) -- return; -- timer_.Stop(); - url_loader_.reset(); - } - -- bool IsRunning() const { return timer_.IsRunning() || url_loader_; } -- - private: -- void ScheduleNextRequest() { -- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- // A TopicProvider could return a negative time to next request. Clamp it -- // to "zero". -- const auto delay = -- std::max(topic_provider_->GetTimeToNextRequest(), base::TimeDelta()); -- VLOG(1) << "[eyeo] Next Telemetry request for " -- << topic_provider_->GetEndpointURL() << " scheduled for " -- << base::Time::Now() + delay; -- timer_.Start( -- FROM_HERE, delay, -- base::BindOnce(&Conversation::MakeRequest, base::Unretained(this))); +- bool IsRequestInFlight() { +- return url_loader_ != nullptr || weak_ptr_factory_.HasWeakPtrs(); - } - -- void MakeRequest() { +- void MakeRequest(std::string payload) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - auto request = std::make_unique(); - request->url = topic_provider_->GetEndpointURL(); @@ -1267,7 +1327,6 @@ deleted file mode 100644 - url_loader_ = network::SimpleURLLoader::Create(std::move(request), - kTrafficAnnotation); - -- const auto payload = topic_provider_->GetPayload(); - VLOG(2) << "[eyeo] Payload: " << payload; - url_loader_->AttachStringForUpload(payload, kDataType); - // The Telemetry server responds with a JSON that contains a description of @@ -1286,7 +1345,6 @@ deleted file mode 100644 - void OnResponseArrived(std::unique_ptr server_response) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - topic_provider_->ParseResponse(std::move(server_response)); -- ScheduleNextRequest(); - url_loader_.reset(); - } - @@ -1294,13 +1352,17 @@ deleted file mode 100644 - std::unique_ptr topic_provider_; - scoped_refptr url_loader_factory_; - std::unique_ptr url_loader_; -- base::OneShotTimer timer_; +- base::WeakPtrFactory weak_ptr_factory_{this}; -}; - -AdblockTelemetryService::AdblockTelemetryService( - PrefService* prefs, -- scoped_refptr url_loader_factory) -- : url_loader_factory_(url_loader_factory) { +- scoped_refptr url_loader_factory, +- base::TimeDelta initial_delay, +- base::TimeDelta check_interval) +- : url_loader_factory_(url_loader_factory), +- initial_delay_(initial_delay), +- check_interval_(check_interval) { - enable_adblock_.Init( - prefs::kEnableAdblock, prefs, - base::BindRepeating(&AdblockTelemetryService::OnEnableAdblockChanged, @@ -1324,16 +1386,27 @@ deleted file mode 100644 - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (enable_adblock_.GetValue()) { - VLOG(1) << "[eyeo] Starting periodic Telemetry requests"; -- for (auto& conversation : ongoing_conversations_) -- conversation->Start(); +- timer_.Start(FROM_HERE, initial_delay_, +- base::BindRepeating(&AdblockTelemetryService::RunPeriodicCheck, +- base::Unretained(this))); - } else if (!enable_adblock_.GetValue()) { - VLOG(1) << "[eyeo] Stopping periodic Telemetry requests"; -- for (auto& conversation : ongoing_conversations_) -- conversation->Stop(); +- Shutdown(); - } -} - +-void AdblockTelemetryService::RunPeriodicCheck() { +- for (auto& conversation : ongoing_conversations_) { +- if (conversation->IsRequestDue()) +- conversation->StartRequest(); +- } +- timer_.Start(FROM_HERE, check_interval_, +- base::BindRepeating(&AdblockTelemetryService::RunPeriodicCheck, +- base::Unretained(this))); +-} +- -void AdblockTelemetryService::Shutdown() { +- timer_.Stop(); - for (auto& conversation : ongoing_conversations_) - conversation->Stop(); -} @@ -1343,7 +1416,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.h b/components/ad deleted file mode 100644 --- a/components/adblock/core/adblock_telemetry_service.h +++ /dev/null -@@ -1,96 +0,0 @@ +@@ -1,103 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -1393,17 +1466,18 @@ deleted file mode 100644 - // be "counting users" or "reporting filter list hits" for example. - class TopicProvider { - public: +- using PayloadCallback = base::OnceCallback; - virtual ~TopicProvider() = default; - // Endpoint URL on the Telemetry server onto which requests should be sent. - virtual GURL GetEndpointURL() const = 0; - // Authorization bearer token for the endpoint defined by GetEndpointURL(). - virtual std::string GetAuthToken() const = 0; - // Data uploaded with the request, should be valid for the schema -- // present on the server. -- virtual std::string GetPayload() const = 0; -- // Returns the desired delay until AdblockTelemetryService makes the next -- // network request. -- virtual base::TimeDelta GetTimeToNextRequest() const = 0; +- // present on the server. Async to allow querying asynchronous data sources. +- virtual void GetPayload(PayloadCallback callback) = 0; +- // Returns the desired time when AdblockTelemetryService should make the +- // next network request. +- virtual base::Time GetTimeOfNextRequest() const = 0; - // Parses the response returned by the Telemetry server. |response_content| - // may be null. Implementation is free to implement a "retry" in case of - // response errors via GetTimeToNextRequest(). @@ -1412,7 +1486,9 @@ deleted file mode 100644 - }; - AdblockTelemetryService( - PrefService* prefs, -- scoped_refptr url_loader_factory); +- scoped_refptr url_loader_factory, +- base::TimeDelta initial_delay, +- base::TimeDelta check_interval); - ~AdblockTelemetryService() override; - - // Add all required topic providers before calling Start(). @@ -1428,13 +1504,17 @@ deleted file mode 100644 - - private: - void OnEnableAdblockChanged(); +- void RunPeriodicCheck(); - - SEQUENCE_CHECKER(sequence_checker_); - scoped_refptr url_loader_factory_; +- base::TimeDelta initial_delay_; +- base::TimeDelta check_interval_; - - class Conversation; - std::vector> ongoing_conversations_; - BooleanPrefMember enable_adblock_; +- base::OneShotTimer timer_; -}; - -} // namespace adblock @@ -1466,7 +1546,7 @@ diff --git a/components/adblock/core/common/adblock_constants.h b/components/adb diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adblock/core/common/adblock_prefs.cc --- a/components/adblock/core/common/adblock_prefs.cc +++ b/components/adblock/core/common/adblock_prefs.cc -@@ -67,47 +67,10 @@ const char kLastUsedSchemaVersion[] = "adblock.last_used_schema_version"; +@@ -63,47 +63,10 @@ const char kLastUsedSchemaVersion[] = "adblock.last_used_schema_version"; // and for setting query parameters in subscription download requests. const char kSubscriptionMetadata[] = "adblock.subscription_metadata"; @@ -1516,7 +1596,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc registry->RegisterListPref(kAdblockAllowedDomains, {}); registry->RegisterListPref(kAdblockCustomFilters, {}); registry->RegisterListPref(kAdblockSubscriptions, {}); -@@ -119,7 +82,6 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -112,7 +75,6 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterDictionaryPref(kSubscriptionSignatures); registry->RegisterStringPref(kLastUsedSchemaVersion, ""); registry->RegisterDictionaryPref(kSubscriptionMetadata); @@ -1627,15 +1707,15 @@ diff --git a/components/adblock/core/sitekey_storage_impl.cc b/components/adbloc diff --git a/components/adblock/core/subscription/ongoing_subscription_request_impl.cc b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc --- a/components/adblock/core/subscription/ongoing_subscription_request_impl.cc +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc -@@ -24,6 +24,7 @@ +@@ -23,6 +23,7 @@ + #include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" #include "components/adblock/core/common/adblock_prefs.h" - #include "components/adblock/core/common/allowed_connection_type.h" +#include "net/base/load_flags.h" #include "net/http/http_request_headers.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/mojom/url_response_head.mojom.h" -@@ -95,7 +96,7 @@ void OngoingSubscriptionRequestImpl::Start(GURL url, +@@ -89,7 +90,7 @@ void OngoingSubscriptionRequestImpl::Start(GURL url, if (IsConnectionAllowed()) { StartInternal(); } else { @@ -1644,7 +1724,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i << " due to current download policy."; } } -@@ -108,7 +109,7 @@ void OngoingSubscriptionRequestImpl::Retry() { +@@ -102,7 +103,7 @@ void OngoingSubscriptionRequestImpl::Retry() { return; } backoff_entry_->InformOfRequest(false); @@ -1653,7 +1733,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i << backoff_entry_->GetTimeUntilRelease(); retry_timer_->Start( FROM_HERE, backoff_entry_->GetTimeUntilRelease(), -@@ -122,7 +123,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { +@@ -116,7 +117,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!url_.is_empty()) << "Redirect() called before Start()"; DCHECK(url_ != redirect_url) << "Invalid redirect. Same URL"; @@ -1662,7 +1742,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i ++number_of_redirects_; url_ = std::move(redirect_url); StartInternal(); -@@ -180,10 +181,14 @@ void OngoingSubscriptionRequestImpl::StartInternal() { +@@ -164,10 +165,14 @@ void OngoingSubscriptionRequestImpl::StartInternal() { // indefinitely. return; } @@ -1678,7 +1758,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i loader_ = network::SimpleURLLoader::Create(std::move(request), kTrafficAnnotation); -@@ -203,7 +208,7 @@ void OngoingSubscriptionRequestImpl::StartInternal() { +@@ -187,7 +192,7 @@ void OngoingSubscriptionRequestImpl::StartInternal() { } void OngoingSubscriptionRequestImpl::StopInternal() { @@ -1706,16 +1786,16 @@ diff --git a/components/adblock/core/subscription/preloaded_subscription_provide diff --git a/components/adblock/core/subscription/subscription_config.cc b/components/adblock/core/subscription/subscription_config.cc --- a/components/adblock/core/subscription/subscription_config.cc +++ b/components/adblock/core/subscription/subscription_config.cc -@@ -213,7 +213,7 @@ const std::vector& config::GetKnownSubscriptions() { +@@ -224,7 +224,7 @@ const std::vector& config::GetKnownSubscriptions() { "ABP filters", {}, SubscriptionUiVisibility::Visible, - SubscriptionFirstRunBehavior::Subscribe, + SubscriptionFirstRunBehavior::Ignore, SubscriptionPrivilegedFilterStatus::Allowed}, - {GURL("https://easylist-downloads.adblockplus.org/" - "i_dont_care_about_cookies.txt"), -@@ -278,6 +278,8 @@ const std::vector& config::GetKnownSubscriptions() { + {GURL(GetHost() + "i_dont_care_about_cookies.txt"), + "I don't care about cookies", +@@ -288,6 +288,8 @@ const std::vector& config::GetKnownSubscriptions() { } bool config::AllowPrivilegedFilters(const GURL& url) { @@ -1724,7 +1804,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo for (const auto& cur : GetKnownSubscriptions()) { if (cur.url == url) { return cur.privileged_status == -@@ -291,9 +293,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { +@@ -301,9 +303,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { const std::vector& config::GetPreloadedSubscriptionConfiguration() { static const std::vector preloaded_subscriptions = @@ -2029,7 +2109,7 @@ diff --git a/components/resources/adblock_resources.grdp b/components/resources/ @@ -17,7 +17,4 @@ - + - - - diff --git a/build/patches/00Eyeo-Adblock.patch b/build/patches/00Eyeo-Adblock.patch index e129f07f..efff1c8f 100644 --- a/build/patches/00Eyeo-Adblock.patch +++ b/build/patches/00Eyeo-Adblock.patch @@ -1,30 +1,35 @@ From: AUTOMATED -Date: Mon, 17 Oct 2022 14:17:42 +0000 -Subject: Diff from 107.0.5304.36 +Date: Sat, 19 Nov 2022 16:16:43 +0000 +Subject: Diff from 108.0.5359.47 --- - DEPS | 22 + + DEPS | 27 + README.md | 12 + base/trace_event/builtin_categories.h | 5 + build/install-build-deps.sh | 12 +- chrome/android/BUILD.gn | 8 + .../android/chrome_common_shared_library.gni | 4 + - .../android/java/res/xml/main_preferences.xml | 25 +- + .../android/java/res/xml/main_preferences.xml | 18 +- chrome/app/chrome_main_delegate.cc | 7 +- chrome/browser/BUILD.gn | 34 + chrome/browser/adblock/README.md | 3 + - .../adblock/adblock_content_browser_client.cc | 335 + - .../adblock/adblock_content_browser_client.h | 102 + + .../adblock/adblock_content_browser_client.cc | 353 + + .../adblock/adblock_content_browser_client.h | 110 + + ...lock_content_browser_client_browsertest.cc | 116 + + ...adblock_content_browser_client_unittest.cc | 266 + .../adblock/adblock_controller_factory.cc | 75 + .../adblock/adblock_controller_factory.h | 50 + .../adblock/adblock_debug_url_browsertest.cc | 116 + + .../adblock_filter_list_browsertest.cc | 170 + ...ock_frame_hierarchy_builder_browsertest.cc | 119 + - .../adblock/adblock_mojo_interface_impl.cc | 267 + + .../adblock/adblock_mojo_interface_impl.cc | 268 + .../adblock/adblock_mojo_interface_impl.h | 86 + - .../adblock_mojo_interface_impl_unittest.cc | 605 + - ...dblock_subscription_service_browsertest.cc | 125 + - .../adblock_telemetry_service_factory.cc | 91 + - .../adblock_telemetry_service_factory.h | 50 + + .../adblock_mojo_interface_impl_unittest.cc | 614 + + .../adblock_multiple_tabs_browsertests.cc | 152 + + ...dblock_subscription_service_browsertest.cc | 163 + + .../adblock_telemetry_service_browsertest.cc | 255 + + .../adblock_telemetry_service_factory.cc | 115 + + .../adblock_telemetry_service_factory.h | 56 + ...ontent_security_policy_injector_factory.cc | 69 + ...content_security_policy_injector_factory.h | 49 + .../browser/adblock/element_hider_factory.cc | 63 + @@ -37,7 +42,7 @@ Subject: Diff from 107.0.5304.36 .../browser/adblock/sitekey_storage_factory.h | 47 + ...ubscription_persistent_metadata_factory.cc | 63 + ...subscription_persistent_metadata_factory.h | 49 + - .../adblock/subscription_service_factory.cc | 146 + + .../adblock/subscription_service_factory.cc | 143 + .../adblock/subscription_service_factory.h | 48 + .../adblock/subscription_updater_factory.cc | 83 + .../adblock/subscription_updater_factory.h | 50 + @@ -49,11 +54,12 @@ Subject: Diff from 107.0.5304.36 .../client_hints/client_hints_browsertest.cc | 12 +- chrome/browser/extensions/BUILD.gn | 7 + chrome/browser/extensions/api/BUILD.gn | 5 + - .../adblock_private/adblock_private_api.cc | 720 + + .../adblock_private/adblock_private_api.cc | 694 + .../api/adblock_private/adblock_private_api.h | 429 + - .../adblock_private_apitest.cc | 592 + + .../adblock_private_apitest.cc | 669 + .../api/settings_private/prefs_util.cc | 19 + ...browser_context_keyed_service_factories.cc | 6 + + chrome/browser/net/errorpage_browsertest.cc | 8 + ..._page_load_metrics_observer_browsertest.cc | 7 +- ...tifications_engagement_service_unittest.cc | 3 +- chrome/browser/preferences/BUILD.gn | 5 + @@ -85,24 +91,25 @@ Subject: Diff from 107.0.5304.36 .../permissions/permission_set_unittest.cc | 7 + chrome/common/webui_url_constants.cc | 5 + chrome/common/webui_url_constants.h | 5 + - chrome/test/BUILD.gn | 20 + + chrome/test/BUILD.gn | 25 + chrome/test/base/chrome_test_launcher.cc | 7 +- chrome/test/base/in_process_browser_test.cc | 17 +- chrome/test/data/adblock/innermost_frame.html | 20 + chrome/test/data/adblock/middle_frame.html | 8 + chrome/test/data/adblock/outermost_frame.html | 20 + chrome/test/data/adblock/resource.png | Bin 0 -> 47293 bytes + chrome/test/data/adblock/tab-restore.html | 26 + .../api_test/adblock_private/empty.js | 0 .../api_test/adblock_private/main.html | 29 + .../api_test/adblock_private/manifest.json | 27 + .../api_test/adblock_private/test.html | 8 + - .../api_test/adblock_private/test.js | 508 + - components/BUILD.gn | 12 + - components/adblock/CHANGELOG.md | 489 + + .../api_test/adblock_private/test.js | 469 + + components/BUILD.gn | 13 + + components/adblock/CHANGELOG.md | 517 + components/adblock/LICENSE | 674 + components/adblock/README.md | 80 + components/adblock/android/BUILD.gn | 146 + - .../adblock/android/adblock_strings.grd | 237 + + .../adblock/android/adblock_strings.grd | 231 + .../fragment_adblock_custom_item_add.png | Bin 0 -> 490 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 296 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 321 bytes @@ -124,10 +131,10 @@ Subject: Diff from 107.0.5304.36 .../layout/adblock_filter_lists_list_item.xml | 36 + .../adblock_settings_locales_titles.xml | 98 + .../java/res/xml/adblock_more_options.xml | 34 + - .../java/res/xml/adblock_preferences.xml | 63 + + .../java/res/xml/adblock_preferences.xml | 56 + ...blockComposeFilterSuggestionsCallback.java | 29 + .../adblock/AdblockContentType.java | 62 + - .../components/adblock/AdblockController.java | 576 + + .../components/adblock/AdblockController.java | 581 + .../components/adblock/AdblockCounters.java | 86 + .../components/adblock/AdblockElement.java | 85 + .../AdblockAllowedDomainsFragment.java | 77 + @@ -137,7 +144,7 @@ Subject: Diff from 107.0.5304.36 .../settings/AdblockFilterListsAdapter.java | 114 + .../settings/AdblockFilterListsFragment.java | 54 + .../settings/AdblockMoreOptionsFragment.java | 34 + - .../settings/AdblockSettingsFragment.java | 156 + + .../settings/AdblockSettingsFragment.java | 137 + .../adblock/AdblockControllerTest.java | 132 + .../adblock/AdblockFilterFragmentTest.java | 73 + .../adblock/AdblockPopupInfoBarTest.java | 127 + @@ -157,7 +164,7 @@ Subject: Diff from 107.0.5304.36 .../adblock/TestPagesWebsocketTest.java | 79 + .../translations/adblock_strings_af.xtb | 4 + .../translations/adblock_strings_am.xtb | 14 + - .../translations/adblock_strings_ar.xtb | 17 + + .../translations/adblock_strings_ar.xtb | 15 + .../translations/adblock_strings_as.xtb | 4 + .../translations/adblock_strings_az.xtb | 4 + .../translations/adblock_strings_be.xtb | 4 + @@ -167,34 +174,34 @@ Subject: Diff from 107.0.5304.36 .../translations/adblock_strings_ca.xtb | 14 + .../translations/adblock_strings_cs.xtb | 14 + .../translations/adblock_strings_da.xtb | 14 + - .../translations/adblock_strings_de.xtb | 17 + - .../translations/adblock_strings_el.xtb | 17 + - .../translations/adblock_strings_en-GB.xtb | 16 + - .../translations/adblock_strings_es-419.xtb | 17 + - .../translations/adblock_strings_es.xtb | 17 + + .../translations/adblock_strings_de.xtb | 15 + + .../translations/adblock_strings_el.xtb | 15 + + .../translations/adblock_strings_en-GB.xtb | 14 + + .../translations/adblock_strings_es-419.xtb | 15 + + .../translations/adblock_strings_es.xtb | 15 + .../translations/adblock_strings_et.xtb | 14 + .../translations/adblock_strings_eu.xtb | 4 + .../translations/adblock_strings_fa.xtb | 14 + .../translations/adblock_strings_fi.xtb | 14 + .../translations/adblock_strings_fil.xtb | 14 + - .../translations/adblock_strings_fr-CA.xtb | 16 + - .../translations/adblock_strings_fr.xtb | 16 + + .../translations/adblock_strings_fr-CA.xtb | 14 + + .../translations/adblock_strings_fr.xtb | 14 + .../translations/adblock_strings_gl.xtb | 4 + .../translations/adblock_strings_gu.xtb | 4 + .../translations/adblock_strings_hi.xtb | 14 + .../translations/adblock_strings_hr.xtb | 14 + - .../translations/adblock_strings_hu.xtb | 17 + + .../translations/adblock_strings_hu.xtb | 15 + .../translations/adblock_strings_hy.xtb | 4 + .../translations/adblock_strings_id.xtb | 14 + .../translations/adblock_strings_is.xtb | 4 + - .../translations/adblock_strings_it.xtb | 17 + + .../translations/adblock_strings_it.xtb | 15 + .../translations/adblock_strings_iw.xtb | 14 + - .../translations/adblock_strings_ja.xtb | 17 + + .../translations/adblock_strings_ja.xtb | 15 + .../translations/adblock_strings_ka.xtb | 4 + .../translations/adblock_strings_kk.xtb | 14 + .../translations/adblock_strings_km.xtb | 14 + .../translations/adblock_strings_kn.xtb | 4 + - .../translations/adblock_strings_ko.xtb | 17 + + .../translations/adblock_strings_ko.xtb | 15 + .../translations/adblock_strings_ky.xtb | 4 + .../translations/adblock_strings_lo.xtb | 4 + .../translations/adblock_strings_lt.xtb | 14 + @@ -206,15 +213,15 @@ Subject: Diff from 107.0.5304.36 .../translations/adblock_strings_ms.xtb | 14 + .../translations/adblock_strings_my.xtb | 14 + .../translations/adblock_strings_ne.xtb | 4 + - .../translations/adblock_strings_nl.xtb | 17 + + .../translations/adblock_strings_nl.xtb | 15 + .../translations/adblock_strings_no.xtb | 4 + .../translations/adblock_strings_or.xtb | 4 + .../translations/adblock_strings_pa.xtb | 4 + - .../translations/adblock_strings_pl.xtb | 17 + - .../translations/adblock_strings_pt-BR.xtb | 17 + + .../translations/adblock_strings_pl.xtb | 15 + + .../translations/adblock_strings_pt-BR.xtb | 15 + .../translations/adblock_strings_pt-PT.xtb | 15 + .../translations/adblock_strings_ro.xtb | 14 + - .../translations/adblock_strings_ru.xtb | 17 + + .../translations/adblock_strings_ru.xtb | 15 + .../translations/adblock_strings_si.xtb | 4 + .../translations/adblock_strings_sk.xtb | 14 + .../translations/adblock_strings_sl.xtb | 14 + @@ -226,12 +233,12 @@ Subject: Diff from 107.0.5304.36 .../translations/adblock_strings_ta.xtb | 4 + .../translations/adblock_strings_te.xtb | 4 + .../translations/adblock_strings_th.xtb | 14 + - .../translations/adblock_strings_tr.xtb | 17 + + .../translations/adblock_strings_tr.xtb | 15 + .../translations/adblock_strings_uk.xtb | 14 + .../translations/adblock_strings_ur.xtb | 14 + .../translations/adblock_strings_uz.xtb | 4 + .../translations/adblock_strings_vi.xtb | 14 + - .../translations/adblock_strings_zh-CN.xtb | 17 + + .../translations/adblock_strings_zh-CN.xtb | 15 + .../translations/adblock_strings_zh-HK.xtb | 4 + .../translations/adblock_strings_zh-TW.xtb | 14 + .../translations/adblock_strings_zu.xtb | 4 + @@ -245,11 +252,11 @@ Subject: Diff from 107.0.5304.36 .../content_security_policy_injector_impl.cc | 124 + .../content_security_policy_injector_impl.h | 65 + .../adblock/content/browser/element_hider.h | 70 + - .../content/browser/element_hider_impl.cc | 334 + + .../content/browser/element_hider_impl.cc | 329 + .../content/browser/element_hider_impl.h | 61 + .../browser/frame_hierarchy_builder.cc | 90 + .../content/browser/frame_hierarchy_builder.h | 64 + - .../browser/resource_classification_runner.h | 102 + + .../browser/resource_classification_runner.h | 103 + .../resource_classification_runner_impl.cc | 418 + .../resource_classification_runner_impl.h | 157 + .../content/browser/session_stats_impl.cc | 86 + @@ -257,7 +264,7 @@ Subject: Diff from 107.0.5304.36 .../test/adblock_content_utils_test.cc | 113 + .../test/adblock_webcontents_observer_test.cc | 135 + ...tent_security_policy_injector_impl_test.cc | 236 + - .../browser/test/element_hider_impl_test.cc | 206 + + .../browser/test/element_hider_impl_test.cc | 248 + .../test/frame_hierarchy_builder_test.cc | 153 + ...dblock_content_security_policy_injector.cc | 28 + ...adblock_content_security_policy_injector.h | 44 + @@ -265,8 +272,8 @@ Subject: Diff from 107.0.5304.36 .../content/browser/test/mock_element_hider.h | 55 + .../test/mock_frame_hierarchy_builder.cc | 26 + .../test/mock_frame_hierarchy_builder.h | 49 + - .../mock_resource_classification_runner.cc | 26 + - .../mock_resource_classification_runner.h | 91 + + .../mock_resource_classification_runner.cc | 36 + + .../mock_resource_classification_runner.h | 86 + ...esource_classification_runner_impl_test.cc | 411 + .../browser/test/session_stats_impl_test.cc | 162 + components/adblock/content/common/BUILD.gn | 69 + @@ -278,16 +285,16 @@ Subject: Diff from 107.0.5304.36 .../content/common/mojom/adblock.mojom | 60 + .../test/mock_adblock_mojo_interface.cc | 25 + .../common/test/mock_adblock_mojo_interface.h | 61 + - components/adblock/core/BUILD.gn | 186 + - .../activeping_telemetry_topic_provider.cc | 206 + - .../activeping_telemetry_topic_provider.h | 72 + - components/adblock/core/adblock_controller.h | 80 + - .../adblock/core/adblock_controller_impl.cc | 466 + - .../adblock/core/adblock_controller_impl.h | 121 + + components/adblock/core/BUILD.gn | 183 + + .../activeping_telemetry_topic_provider.cc | 239 + + .../activeping_telemetry_topic_provider.h | 80 + + components/adblock/core/adblock_controller.h | 81 + + .../adblock/core/adblock_controller_impl.cc | 461 + + .../adblock/core/adblock_controller_impl.h | 120 + components/adblock/core/adblock_switches.cc | 27 + components/adblock/core/adblock_switches.h | 30 + - .../adblock/core/adblock_telemetry_service.cc | 216 + - .../adblock/core/adblock_telemetry_service.h | 96 + + .../adblock/core/adblock_telemetry_service.cc | 236 + + .../adblock/core/adblock_telemetry_service.h | 103 + components/adblock/core/classifier/BUILD.gn | 77 + .../core/classifier/resource_classifier.cc | 24 + .../core/classifier/resource_classifier.h | 82 + @@ -298,14 +305,14 @@ Subject: Diff from 107.0.5304.36 .../test/resource_classifier_impl_test.cc | 439 + .../test/resource_classifier_perftest.cc | 219 + components/adblock/core/common/BUILD.gn | 87 + - .../adblock/core/common/adblock_constants.cc | 170 + - .../adblock/core/common/adblock_constants.h | 43 + - .../adblock/core/common/adblock_prefs.cc | 127 + - .../adblock/core/common/adblock_prefs.h | 47 + - .../adblock/core/common/adblock_utils.cc | 167 + + .../adblock/core/common/adblock_constants.cc | 152 + + .../adblock/core/common/adblock_constants.h | 40 + + .../adblock/core/common/adblock_prefs.cc | 120 + + .../adblock/core/common/adblock_prefs.h | 46 + + .../adblock/core/common/adblock_utils.cc | 168 + .../adblock/core/common/adblock_utils.h | 81 + .../core/common/allowed_connection_type.cc | 45 + - .../core/common/allowed_connection_type.h | 48 + + .../core/common/allowed_connection_type.h | 46 + .../adblock/core/common/content_type.cc | 55 + components/adblock/core/common/content_type.h | 46 + .../adblock/core/common/converter_result.cc | 27 + @@ -330,7 +337,7 @@ Subject: Diff from 107.0.5304.36 .../core/converter/snippet_tokenizer_impl.cc | 100 + .../core/converter/snippet_tokenizer_impl.h | 49 + .../core/converter/test/converter_perftest.cc | 60 + - .../core/converter/test/converter_test.cc | 2126 + + .../core/converter/test/converter_test.cc | 2127 + .../test/filter_keyword_extractor_test.cc | 69 + .../core/converter/test/metadata_test.cc | 195 + .../converter/test/mock_snippet_tokenizer.cc | 26 + @@ -351,8 +358,8 @@ Subject: Diff from 107.0.5304.36 .../installed_subscription_impl.cc | 643 + .../installed_subscription_impl.h | 174 + .../ongoing_subscription_request.h | 50 + - .../ongoing_subscription_request_impl.cc | 238 + - .../ongoing_subscription_request_impl.h | 81 + + .../ongoing_subscription_request_impl.cc | 222 + + .../ongoing_subscription_request_impl.h | 80 + .../preloaded_subscription_provider.h | 56 + .../preloaded_subscription_provider_impl.cc | 141 + .../preloaded_subscription_provider_impl.h | 56 + @@ -361,8 +368,8 @@ Subject: Diff from 107.0.5304.36 .../subscription/subscription_collection.h | 93 + .../subscription_collection_impl.cc | 384 + .../subscription_collection_impl.h | 91 + - .../core/subscription/subscription_config.cc | 300 + - .../core/subscription/subscription_config.h | 113 + + .../core/subscription/subscription_config.cc | 314 + + .../core/subscription/subscription_config.h | 121 + .../subscription/subscription_downloader.h | 66 + .../subscription_downloader_impl.cc | 289 + .../subscription_downloader_impl.h | 106 + @@ -384,37 +391,37 @@ Subject: Diff from 107.0.5304.36 .../subscription_validator_impl.h | 56 + .../test/installed_subscription_impl_test.cc | 74 + .../test/mock_installed_subscription.cc | 26 + - .../test/mock_installed_subscription.h | 99 + + .../test/mock_installed_subscription.h | 101 + .../subscription/test/mock_subscription.cc | 36 + - .../subscription/test/mock_subscription.h | 49 + + .../subscription/test/mock_subscription.h | 51 + .../test/mock_subscription_collection.cc | 26 + - .../test/mock_subscription_collection.h | 94 + + .../test/mock_subscription_collection.h | 96 + .../test/mock_subscription_downloader.cc | 25 + - .../test/mock_subscription_downloader.h | 46 + + .../test/mock_subscription_downloader.h | 48 + .../mock_subscription_persistent_metadata.cc | 27 + - .../mock_subscription_persistent_metadata.h | 74 + + .../mock_subscription_persistent_metadata.h | 76 + .../test/mock_subscription_service.cc | 25 + - .../test/mock_subscription_service.h | 62 + + .../test/mock_subscription_service.h | 64 + .../test/mock_subscription_updater.cc | 25 + .../test/mock_subscription_updater.h | 36 + - .../ongoing_subscription_request_impl_test.cc | 487 + + .../ongoing_subscription_request_impl_test.cc | 354 + ...eloaded_subscription_provider_impl_test.cc | 231 + .../test/subscription_collection_impl_test.cc | 839 + - .../test/subscription_downloader_impl_test.cc | 590 + + .../test/subscription_downloader_impl_test.cc | 592 + ...scription_persistent_metadata_impl_test.cc | 213 + ...bscription_persistent_storage_impl_test.cc | 311 + - .../test/subscription_service_impl_test.cc | 854 + + .../test/subscription_service_impl_test.cc | 859 + .../test/subscription_updater_impl_test.cc | 330 + .../test/subscription_validator_impl_test.cc | 180 + .../test/url_keyword_extractor_test.cc | 74 + .../subscription/url_keyword_extractor.cc | 59 + .../core/subscription/url_keyword_extractor.h | 61 + - ...ctiveping_telemetry_topic_provider_test.cc | 310 + - .../core/test/adblock_controller_impl_test.cc | 818 + - .../adblock_telemetry_service_unittest.cc | 314 + + ...ctiveping_telemetry_topic_provider_test.cc | 316 + + .../core/test/adblock_controller_impl_test.cc | 805 + + .../adblock_telemetry_service_unittest.cc | 351 + .../core/test/bundled_subscription_test.cc | 49 + .../core/test/mock_adblock_controller.cc | 33 + - .../core/test/mock_adblock_controller.h | 85 + + .../core/test/mock_adblock_controller.h | 87 + .../adblock/core/test/mock_sitekey_storage.cc | 26 + .../adblock/core/test/mock_sitekey_storage.h | 49 + .../core/test/sitekey_storage_impl_test.cc | 131 + @@ -441,12 +448,12 @@ Subject: Diff from 107.0.5304.36 .../adblock/docs/initialization-sequence.png | Bin 0 -> 129976 bytes .../adblock/docs/initialization-sequence.txt | 27 + components/adblock/docs/integration-how-to.md | 220 + - components/adblock/docs/settings/README.md | 35 + + components/adblock/docs/settings/README.md | 23 + .../docs/settings/user-setting-sequence.png | Bin 0 -> 63401 bytes .../docs/settings/user-setting-sequence.txt | 14 + components/adblock/features.gni | 44 + components/adblock_comparison/BUILD.gn | 47 + - .../libadblockplus_reference_database.cc | 236 + + .../libadblockplus_reference_database.cc | 239 + .../libadblockplus_reference_database.h | 98 + .../adblock_comparison/test_request_reader.cc | 109 + .../adblock_comparison/test_request_reader.h | 54 + @@ -455,12 +462,12 @@ Subject: Diff from 107.0.5304.36 components/resources/adblock_resources.grdp | 23 + components/resources/adblocking/.gitignore | 1 + components/resources/adblocking/BUILD.gn | 70 + - components/resources/adblocking/anticv.txt | 2392 + - components/resources/adblocking/easylist.txt | 10449 +++ + components/resources/adblocking/anticv.txt | 2419 + + components/resources/adblocking/easylist.txt | 14630 ++++ components/resources/adblocking/elemhide.js | 43 + .../adblocking/elemhide_for_selector.jst | 53 + .../resources/adblocking/elemhideemu.jst | 1436 + - .../resources/adblocking/exceptionrules.txt | 5661 ++ + .../resources/adblocking/exceptionrules.txt | 5871 ++ components/resources/adblocking/update.sh | 30 + components/resources/components_resources.grd | 1 + components/test/data/adblock/anticv.txt | 1317 + @@ -479,7 +486,7 @@ Subject: Diff from 107.0.5304.36 content/renderer/render_frame_impl.h | 4 + ...web_request_proxying_url_loader_factory.cc | 5 + .../browser/extension_event_histogram_value.h | 13 + - .../extension_function_histogram_value.h | 28 + + .../extension_function_histogram_value.h | 35 + .../common/mojom/api_permission_id.mojom | 5 + gclient/.gclient | 25 + gclient/.gclient_ci_android | 22 + @@ -495,21 +502,26 @@ Subject: Diff from 107.0.5304.36 .../core/frame/local_frame_mojo_handler.h | 5 + .../url_loader/mojo_url_loader_client.cc | 6 +- tools/adblock/interdiff.py | 87 + - tools/metrics/histograms/enums.xml | 33 + + tools/metrics/histograms/enums.xml | 40 + tools/perf/benchmarks/eyeo.py | 1193 + tools/perf/page_sets/eyeo_page_set.py | 978 + - 495 files changed, 140729 insertions(+), 22 deletions(-) + 502 files changed, 146224 insertions(+), 22 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h + create mode 100644 chrome/browser/adblock/adblock_content_browser_client_browsertest.cc + create mode 100644 chrome/browser/adblock/adblock_content_browser_client_unittest.cc create mode 100644 chrome/browser/adblock/adblock_controller_factory.cc create mode 100644 chrome/browser/adblock/adblock_controller_factory.h create mode 100644 chrome/browser/adblock/adblock_debug_url_browsertest.cc + create mode 100644 chrome/browser/adblock/adblock_filter_list_browsertest.cc create mode 100644 chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc create mode 100644 chrome/browser/adblock/adblock_mojo_interface_impl.cc create mode 100644 chrome/browser/adblock/adblock_mojo_interface_impl.h create mode 100644 chrome/browser/adblock/adblock_mojo_interface_impl_unittest.cc + create mode 100644 chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc create mode 100644 chrome/browser/adblock/adblock_subscription_service_browsertest.cc + create mode 100644 chrome/browser/adblock/adblock_telemetry_service_browsertest.cc create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h create mode 100644 chrome/browser/adblock/content_security_policy_injector_factory.cc @@ -542,6 +554,7 @@ Subject: Diff from 107.0.5304.36 create mode 100644 chrome/test/data/adblock/middle_frame.html create mode 100644 chrome/test/data/adblock/outermost_frame.html create mode 100644 chrome/test/data/adblock/resource.png + create mode 100644 chrome/test/data/adblock/tab-restore.html create mode 100644 chrome/test/data/extensions/api_test/adblock_private/empty.js create mode 100644 chrome/test/data/extensions/api_test/adblock_private/main.html create mode 100644 chrome/test/data/extensions/api_test/adblock_private/manifest.json @@ -926,7 +939,7 @@ Subject: Diff from 107.0.5304.36 diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -172,6 +172,10 @@ vars = { +@@ -178,6 +178,10 @@ vars = { # flag is set True. 'checkout_wpr_archives': False, @@ -937,8 +950,23 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -293,6 +297,8 @@ vars = { - 'use_rust': False, +@@ -193,9 +197,14 @@ vars = { + # - qemu.arm64 (pulls terminal.qemu-arm64-release) + # - workstation.qemu-x64-release + # Hardware: ++<<<<<<< HEAD + # - generic.x64 (pulls terminal.x64-debug) + # - generic.arm64 (pulls terminal.arm64-debug) + # - chromebook.x64 (pulls terminal.chromebook-x64-debug) ++======= ++ # - workstation_eng.chromebook-x64 ++ # - workstation_eng.chromebook-x64-dfv2 ++>>>>>>> b6e42af3ffff6... Squashed commits + # + # Since the images are hundreds of MB, default to only downloading the image + # most commonly useful for developers. Bots and developers that need to use +@@ -292,6 +301,8 @@ vars = { + 'checkout_rust_toolchain_deps': False, 'android_git': 'https://android.googlesource.com', + 'eyeo_distpartners_gitlab': 'https://gitlab.com/eyeo/distpartners', @@ -946,9 +974,9 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chromium_git': 'https://chromium.googlesource.com', -@@ -486,6 +492,11 @@ vars = { +@@ -485,6 +496,11 @@ vars = { # and whatever else without interference from each other. - 'ffmpeg_revision': '3dd1a90db3f7ec955ff5476bd4ee5942f093c6fe', + 'ffmpeg_revision': 'b9f01c3c54576330b2cf8918c54d5ee5be8faefe', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -957,19 +985,19 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': 'e2f63a1a48a3cdcacbfc212236050ca5deeacc30', -@@ -780,6 +791,10 @@ deps = { - 'src/chrome/test/data/xr/webvr_info': - Var('chromium_git') + '/external/github.com/toji/webvr.info.git' + '@' + 'c58ae99b9ff9e2aa4c524633519570bf33536248', + 'libcxx_revision': '64d36e572d3f9719c5d75011a718f33f11126851', +@@ -818,6 +834,10 @@ deps = { + 'condition': 'checkout_android and checkout_src_internal and not checkout_clank_via_src_internal', + }, + 'src/components/resources/adblocking/snippets': { + 'url': Var('eyeo_snippets_gitlab') + '@' + Var('eyeo_snippets_revision'), + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '7627eaaa9d3d78c19f4d09758492061d70425f0f', + 'url': Var('chromium_git') + '/website.git' + '@' + '7da061134f35c390ac1549a82704a1762f9a5261', }, -@@ -924,6 +939,13 @@ deps = { +@@ -962,6 +982,13 @@ deps = { 'dep_type': 'cipd', }, @@ -1016,7 +1044,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca #ifndef BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ #define BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ -@@ -85,6 +89,7 @@ +@@ -86,6 +90,7 @@ X("exo") \ X("extensions") \ X("explore_sites") \ @@ -1067,23 +1095,31 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -245,6 +249,7 @@ android_resources("chrome_app_java_resources") { - "//chrome/browser/ui/android/toolbar:java_resources", - "//chrome/browser/ui/android/webid/internal:java_resources", - "//chrome/browser/ui/messages/android:java_resources", -+ "//components/adblock/android:java_resources", - "//components/autofill/android:autofill_java_resources", - "//components/autofill/android:autofill_payments_java_resources", - "//components/blocked_content/android:java_resources", -@@ -459,6 +464,7 @@ android_library("chrome_java") { - "//chrome/browser/webapps/android:java", - "//chrome/browser/webauthn/android:java", - "//chrome/browser/xsurface:java", -+ "//components/adblock/android:adblock_java", - "//components/autofill/android:autofill_java", - "//components/autofill/android:prefeditor_autofill_java", - "//components/autofill_assistant/android:public_dependencies_java", -@@ -869,6 +875,7 @@ group("jni_headers") { +@@ -272,6 +276,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/ui/android/toolbar:java_resources", + "//chrome/browser/ui/android/webid/internal:java_resources", + "//chrome/browser/ui/messages/android:java_resources", ++ "//components/adblock/android:java_resources", + "//components/autofill/android:autofill_java_resources", + "//components/autofill/android:autofill_payments_java_resources", + "//components/blocked_content/android:java_resources", +@@ -486,6 +491,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/webapps/android:java", + "//chrome/browser/webauthn/android:java", + "//chrome/browser/xsurface:java", ++ "//components/adblock/android:adblock_java", + "//components/autofill/android:autofill_java", + "//components/autofill/android:prefeditor_autofill_java", + "//components/autofill_assistant/android:public_dependencies_java", +@@ -1603,6 +1609,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/test/android:chrome_java_integration_test_support", + "//chrome/test/android:chrome_java_test_pagecontroller", + "//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java", ++ "//components/adblock/android:adblock_java_tests", + "//components/autofill/android:autofill_java", + "//components/autofill/android:prefeditor_autofill_java", + "//components/autofill_assistant/android:public_dependencies_java", +@@ -4162,6 +4169,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -1091,14 +1127,6 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill_assistant/android:jni_headers", "//components/autofill_assistant/android:jni_headers_public", "//components/autofill_assistant/android:jni_headers_public_dependencies", -@@ -1623,6 +1630,7 @@ android_library("chrome_test_java") { - "//chrome/test/android:chrome_java_integration_test_support", - "//chrome/test/android:chrome_java_test_pagecontroller", - "//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java", -+ "//components/adblock/android:adblock_java_tests", - "//components/autofill/android:autofill_java", - "//components/autofill/android:prefeditor_autofill_java", - "//components/autofill_assistant/android:public_dependencies_java", diff --git a/chrome/android/chrome_common_shared_library.gni b/chrome/android/chrome_common_shared_library.gni --- a/chrome/android/chrome_common_shared_library.gni +++ b/chrome/android/chrome_common_shared_library.gni @@ -1116,27 +1144,17 @@ diff --git a/chrome/android/chrome_common_shared_library.gni b/chrome/android/ch diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -1,9 +1,19 @@ - -+<<<<<<< HEAD - -+======= -+ -+ -+>>>>>>> 619c30d2d529e... Squashed commits @@ -1153,7 +1171,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j android:title="@string/prefs_site_settings"/> & user_agent, + mojo::PendingRemote + handshake_client) { -+ auto* profile = -+ Profile::FromBrowserContext(frame->GetProcess()->GetBrowserContext()); -+ if (profile && -+ profile->GetPrefs()->GetBoolean(adblock::prefs::kEnableAdblock)) { -+ auto* subscription_service = -+ adblock::SubscriptionServiceFactory::GetForBrowserContext(profile); -+ if (!subscription_service->IsInitialized()) { -+ subscription_service->RunWhenInitialized(base::BindOnce( -+ &AdblockContentBrowserClient::CreateWebSocket, -+ weak_factory_.GetWeakPtr(), frame, std::move(factory), url, -+ site_for_cookies, user_agent, std::move(handshake_client))); -+ return; -+ } -+ auto* classification_runner = -+ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( -+ profile); -+ classification_runner->CheckRequestFilterMatchForWebSocket( -+ subscription_service->GetCurrentSnapshot(), url, frame, -+ base::BindOnce( -+ &AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted, -+ weak_factory_.GetWeakPtr(), frame, std::move(factory), url, -+ site_for_cookies, user_agent, std::move(handshake_client))); ++ if (IsAdblockEnabled(frame)) { ++ CreateWebSocketInternal(frame->GetGlobalId(), std::move(factory), url, ++ site_for_cookies, user_agent, ++ std::move(handshake_client)); + } else { + DCHECK(ChromeContentBrowserClient::WillInterceptWebSocket(frame)); + ChromeContentBrowserClient::CreateWebSocket(frame, std::move(factory), url, @@ -1549,8 +1549,41 @@ new file mode 100644 + } +} + ++void AdblockContentBrowserClient::CreateWebSocketInternal( ++ content::GlobalRenderFrameHostId render_frame_host_id, ++ WebSocketFactory factory, ++ const GURL& url, ++ const net::SiteForCookies& site_for_cookies, ++ const absl::optional& user_agent, ++ mojo::PendingRemote ++ handshake_client) { ++ auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); ++ if (!frame) ++ return; ++ auto* browser_context = frame->GetProcess()->GetBrowserContext(); ++ auto* subscription_service = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context); ++ if (!subscription_service->IsInitialized()) { ++ subscription_service->RunWhenInitialized(base::BindOnce( ++ &AdblockContentBrowserClient::CreateWebSocketInternal, ++ weak_factory_.GetWeakPtr(), render_frame_host_id, std::move(factory), ++ url, site_for_cookies, user_agent, std::move(handshake_client))); ++ return; ++ } ++ auto* classification_runner = ++ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( ++ browser_context); ++ classification_runner->CheckRequestFilterMatchForWebSocket( ++ subscription_service->GetCurrentSnapshot(), url, render_frame_host_id, ++ base::BindOnce( ++ &AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted, ++ weak_factory_.GetWeakPtr(), render_frame_host_id, std::move(factory), ++ url, site_for_cookies, user_agent, std::move(handshake_client))); ++} ++ +void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( -+ content::RenderFrameHost* frame, ++ content::GlobalRenderFrameHostId render_frame_host_id, + ChromeContentBrowserClient::WebSocketFactory factory, + const GURL& url, + const net::SiteForCookies& site_for_cookies, @@ -1558,10 +1591,13 @@ new file mode 100644 + mojo::PendingRemote + handshake_client, + adblock::mojom::FilterMatchResult result) { ++ auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); ++ if (!frame) ++ return; + const bool has_blocking_filter = + result == adblock::mojom::FilterMatchResult::kBlockRule; + if (!has_blocking_filter) { -+ LOG(INFO) << "[eyeo] Web socket allowed for " << url; ++ VLOG(1) << "[eyeo] Web socket allowed for " << url; + if (ChromeContentBrowserClient::WillInterceptWebSocket(frame)) { + ChromeContentBrowserClient::CreateWebSocket( + frame, std::move(factory), url, site_for_cookies, user_agent, @@ -1578,7 +1614,7 @@ new file mode 100644 + mojo::NullRemote(), mojo::NullRemote()); + } + -+ LOG(INFO) << "[eyeo] Web socket blocked for " << url; ++ VLOG(1) << "[eyeo] Web socket blocked for " << url; +} + +bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( @@ -1635,7 +1671,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_content_browser_client.h -@@ -0,0 +1,102 @@ +@@ -0,0 +1,110 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1720,8 +1756,16 @@ new file mode 100644 + network::mojom::URLLoaderFactoryOverridePtr* factory_override) override; + + private: ++ void CreateWebSocketInternal( ++ content::GlobalRenderFrameHostId render_frame_host_id, ++ WebSocketFactory factory, ++ const GURL& url, ++ const net::SiteForCookies& site_for_cookies, ++ const absl::optional& user_agent, ++ mojo::PendingRemote ++ handshake_client); + void OnWebSocketFilterCheckCompleted( -+ content::RenderFrameHost* frame, ++ content::GlobalRenderFrameHostId render_frame_host_id, + ChromeContentBrowserClient::WebSocketFactory factory, + const GURL& url, + const net::SiteForCookies& site_for_cookies, @@ -1738,6 +1782,398 @@ new file mode 100644 +}; + +#endif // CHROME_BROWSER_ADBLOCK_ADBLOCK_CONTENT_BROWSER_CLIENT_H_ +diff --git a/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc b/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc +@@ -0,0 +1,116 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "chrome/browser/adblock/adblock_content_browser_client.h" ++ ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/browser/ui/browser_commands.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/adblock/core/subscription/test/mock_subscription_service.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "net/test/spawned_test_server/spawned_test_server.h" ++#include "net/test/test_data_directory.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class AdblockContentBrowserClientBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ watcher_ = std::make_unique( ++ browser()->tab_strip_model()->GetActiveWebContents(), u"PASS"); ++ watcher_->AlsoWaitForTitle(u"FAIL"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ net::GetWebSocketTestDataDirectory()); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ } ++ ++ void TearDownOnMainThread() override { watcher_.reset(); } ++ ++ void NavigateToHTTP(const std::string& path) { ++ // Visit a HTTPS page for testing. ++ GURL::Replacements replacements; ++ replacements.SetSchemeStr("http"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ws_server_.GetURL(path).ReplaceComponents(replacements))); ++ } ++ ++ std::string WaitAndGetTitle() { ++ return base::UTF16ToUTF8(watcher_->WaitAndGetTitle()); ++ } ++ ++ net::SpawnedTestServer ws_server_{net::SpawnedTestServer::TYPE_WS, ++ net::GetWebSocketTestDataDirectory()}; ++ ++ private: ++ std::unique_ptr watcher_; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionNotInterrupted) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Disable ad-filtering. ++ browser()->profile()->GetPrefs()->SetBoolean(prefs::kEnableAdblock, false); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket connected. ++ EXPECT_EQ("PASS", WaitAndGetTitle()); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionInterruptedButNotBlocked) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Enable ad-filtering. ++ browser()->profile()->GetPrefs()->SetBoolean(prefs::kEnableAdblock, true); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket connected, there were no blocking filters. ++ EXPECT_EQ("PASS", WaitAndGetTitle()); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionInterruptedAndBlocked) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Intercept WebSocket and block connection via a filter. ++ auto* profile = browser()->profile(); ++ profile->GetPrefs()->SetBoolean(prefs::kEnableAdblock, true); ++ SubscriptionServiceFactory::GetForBrowserContext(profile)->SetCustomFilters( ++ {"$websocket"}); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket did not connect. ++ EXPECT_EQ("FAIL", WaitAndGetTitle()); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/adblock_content_browser_client_unittest.cc b/chrome/browser/adblock/adblock_content_browser_client_unittest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/adblock_content_browser_client_unittest.cc +@@ -0,0 +1,266 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "chrome/browser/adblock/adblock_content_browser_client.h" ++ ++#include "base/callback_list.h" ++#include "base/run_loop.h" ++#include "base/test/mock_callback.h" ++#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/test/base/chrome_render_view_host_test_harness.h" ++#include "components/adblock/content/browser/test/mock_resource_classification_runner.h" ++#include "components/adblock/content/common/mojom/adblock.mojom-shared.h" ++#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/common/content_type.h" ++#include "components/adblock/core/subscription/installed_subscription.h" ++#include "components/adblock/core/subscription/test/mock_subscription_collection.h" ++#include "components/adblock/core/subscription/test/mock_subscription_service.h" ++#include "components/keyed_service/core/keyed_service.h" ++#include "content/public/browser/content_browser_client.h" ++#include "content/public/test/mock_render_process_host.h" ++#include "content/public/test/test_renderer_host.h" ++#include "gmock/gmock.h" ++#include "services/network/public/mojom/network_context.mojom.h" ++#include "services/network/public/mojom/websocket.mojom.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++using testing::_; ++using testing::Return; ++ ++namespace adblock { ++namespace { ++ ++class DelayedInitSubscriptionService : public MockSubscriptionService { ++ public: ++ bool IsInitialized() const override { return is_initialized_; } ++ void RunWhenInitialized(base::OnceClosure task) override { ++ deferred_tasks_.AddUnsafe(std::move(task)); ++ } ++ ++ void InitializeNow() { ++ is_initialized_ = true; ++ deferred_tasks_.Notify(); ++ } ++ ++ bool is_initialized_ = false; ++ base::OnceClosureList deferred_tasks_; ++}; ++ ++} // namespace ++ ++class AdblockContentBrowserClientUnitTest ++ : public ChromeRenderViewHostTestHarness { ++ public: ++ TestingProfile::TestingFactories GetTestingFactories() const override { ++ return {std::make_pair( ++ SubscriptionServiceFactory::GetInstance(), ++ base::BindRepeating([](content::BrowserContext* bc) ++ -> std::unique_ptr { ++ return std::make_unique(); ++ })), ++ std::make_pair( ++ ResourceClassificationRunnerFactory::GetInstance(), ++ base::BindRepeating([](content::BrowserContext* bc) ++ -> std::unique_ptr { ++ return std::make_unique(); ++ }))}; ++ } ++ ++ void SetUp() override { ++ RenderViewHostTestHarness::SetUp(); ++ subscription_service_ = static_cast( ++ SubscriptionServiceFactory::GetForBrowserContext(profile())); ++ resource_classification_runner_ = ++ static_cast( ++ ResourceClassificationRunnerFactory::GetForBrowserContext( ++ profile())); ++ } ++ ++ DelayedInitSubscriptionService* subscription_service_; ++ MockResourceClassificationRunner* resource_classification_runner_; ++}; ++ ++TEST_F(AdblockContentBrowserClientUnitTest, ++ WillInterceptWebSocketWhenAdblockingEnabled) { ++ AdblockContentBrowserClient content_client; ++ profile()->GetPrefs()->SetBoolean(prefs::kEnableAdblock, true); ++ EXPECT_TRUE(content_client.WillInterceptWebSocket(main_rfh())); ++ profile()->GetPrefs()->SetBoolean(prefs::kEnableAdblock, false); ++ EXPECT_FALSE(content_client.WillInterceptWebSocket(main_rfh())); ++} ++ ++TEST_F(AdblockContentBrowserClientUnitTest, ++ RenderFrameHostDiesBeforeSubscriptionServiceInitialized) { ++ AdblockContentBrowserClient content_client; ++ ++ base::MockCallback ++ web_socket_factory; ++ // The web_socket_factory callback will never be called because the associated ++ // RenderFrameHost will be dead. ++ EXPECT_CALL(web_socket_factory, Run(_, _, _, _, _)).Times(0); ++ ++ // In case the resource classification proceeds, let it finish to expose ++ // potential use-after-free. ++ ON_CALL(*subscription_service_, GetCurrentSnapshot()).WillByDefault([]() { ++ return std::make_unique(); ++ }); ++ ++ ON_CALL(*resource_classification_runner_, ++ CheckRequestFilterMatchForWebSocket(_, _, _, _)) ++ .WillByDefault([&](auto subscription_collection, const auto& url, ++ auto rfh_id, auto callback) { ++ std::move(callback).Run(mojom::FilterMatchResult::kAllowRule); ++ }); ++ ++ const net::SiteForCookies site_for_cookies; ++ content_client.CreateWebSocket(main_rfh(), web_socket_factory.Get(), ++ GURL("wss://domain.com/test"), ++ site_for_cookies, absl::nullopt, {}); ++ // Tab is closed. ++ DeleteContents(); ++ ++ // SubscriptionService becomes initialized, triggers deferred classification ++ // of web socket. This does nothing. ++ subscription_service_->InitializeNow(); ++ ++ task_environment()->RunUntilIdle(); ++} ++ ++TEST_F(AdblockContentBrowserClientUnitTest, ++ RenderFrameHostDiesBeforeClassificationFinished) { ++ const auto kSocketUrl = GURL("wss://domain.com/test"); ++ // SubscriptionService is initialized from the start. ++ subscription_service_->InitializeNow(); ++ // It will be queried for a SubscriptionCollection to classify the web socket ++ // connection. ++ EXPECT_CALL(*subscription_service_, GetCurrentSnapshot()).WillOnce([]() { ++ return std::make_unique(); ++ }); ++ // The SubscriptionCollection will be passed to ResourceClassificationRunner ++ // to run the classification asynchronously. Save the callback to run it ++ // later. ++ mojom::AdblockInterface::CheckFilterMatchCallback classification_callback; ++ EXPECT_CALL(*resource_classification_runner_, ++ CheckRequestFilterMatchForWebSocket(_, kSocketUrl, ++ main_rfh()->GetGlobalId(), _)) ++ .WillOnce([&](auto subscription_collection, const auto& url, auto rfh_id, ++ auto callback) { ++ classification_callback = std::move(callback); ++ }); ++ ++ AdblockContentBrowserClient content_client; ++ base::MockCallback ++ web_socket_factory; ++ // The web_socket_factory callback will never be called because the associated ++ // RenderFrameHost will be dead. ++ EXPECT_CALL(web_socket_factory, Run(_, _, _, _, _)).Times(0); ++ ++ const net::SiteForCookies site_for_cookies; ++ content_client.CreateWebSocket(main_rfh(), web_socket_factory.Get(), ++ kSocketUrl, site_for_cookies, absl::nullopt, ++ {}); ++ // Tab is closed. ++ DeleteContents(); ++ ++ // Classification finishes now. It will not trigger a call to ++ // |web_socket_factory| because the RFH is dead. ++ std::move(classification_callback).Run(mojom::FilterMatchResult::kBlockRule); ++ ++ task_environment()->RunUntilIdle(); ++} ++ ++TEST_F(AdblockContentBrowserClientUnitTest, WebSocketAllowed) { ++ const auto kSocketUrl = GURL("wss://domain.com/test"); ++ // SubscriptionService is initialized from the start. ++ subscription_service_->InitializeNow(); ++ // It will be queried for a SubscriptionCollection to classify the web socket ++ // connection. ++ EXPECT_CALL(*subscription_service_, GetCurrentSnapshot()).WillOnce([]() { ++ return std::make_unique(); ++ }); ++ // The SubscriptionCollection will be passed to ResourceClassificationRunner ++ // to run the classification asynchronously. Save the callback to run it ++ // later. ++ mojom::AdblockInterface::CheckFilterMatchCallback classification_callback; ++ EXPECT_CALL(*resource_classification_runner_, ++ CheckRequestFilterMatchForWebSocket(_, kSocketUrl, ++ main_rfh()->GetGlobalId(), _)) ++ .WillOnce([&](auto subscription_collection, const auto& url, auto rfh_id, ++ auto callback) { ++ classification_callback = std::move(callback); ++ }); ++ ++ AdblockContentBrowserClient content_client; ++ base::MockCallback ++ web_socket_factory; ++ // The web_socket_factory callback will be called to let the web socket ++ // continue connecting. ++ EXPECT_CALL(web_socket_factory, Run(kSocketUrl, _, _, _, _)); ++ ++ const net::SiteForCookies site_for_cookies; ++ content_client.CreateWebSocket(main_rfh(), web_socket_factory.Get(), ++ kSocketUrl, site_for_cookies, absl::nullopt, ++ {}); ++ ++ // Classification finishes now. It will trigger a call to |web_socket_factory| ++ std::move(classification_callback).Run(mojom::FilterMatchResult::kAllowRule); ++ ++ task_environment()->RunUntilIdle(); ++} ++ ++TEST_F(AdblockContentBrowserClientUnitTest, WebSocketBlocked) { ++ const auto kSocketUrl = GURL("wss://domain.com/test"); ++ // SubscriptionService is initialized from the start. ++ subscription_service_->InitializeNow(); ++ // It will be queried for a SubscriptionCollection to classify the web socket ++ // connection. ++ EXPECT_CALL(*subscription_service_, GetCurrentSnapshot()).WillOnce([]() { ++ return std::make_unique(); ++ }); ++ // The SubscriptionCollection will be passed to ResourceClassificationRunner ++ // to run the classification asynchronously. Save the callback to run it ++ // later. ++ mojom::AdblockInterface::CheckFilterMatchCallback classification_callback; ++ EXPECT_CALL(*resource_classification_runner_, ++ CheckRequestFilterMatchForWebSocket(_, kSocketUrl, ++ main_rfh()->GetGlobalId(), _)) ++ .WillOnce([&](auto subscription_collection, const auto& url, auto rfh_id, ++ auto callback) { ++ classification_callback = std::move(callback); ++ }); ++ ++ AdblockContentBrowserClient content_client; ++ base::MockCallback ++ web_socket_factory; ++ // The web_socket_factory callback will not be called as to disallow ++ // connection. ++ EXPECT_CALL(web_socket_factory, Run(kSocketUrl, _, _, _, _)).Times(0); ++ ++ const net::SiteForCookies site_for_cookies; ++ content_client.CreateWebSocket(main_rfh(), web_socket_factory.Get(), ++ kSocketUrl, site_for_cookies, absl::nullopt, ++ {}); ++ ++ // Classification finishes now. ++ std::move(classification_callback).Run(mojom::FilterMatchResult::kBlockRule); ++ ++ task_environment()->RunUntilIdle(); ++} ++ ++} // namespace adblock diff --git a/chrome/browser/adblock/adblock_controller_factory.cc b/chrome/browser/adblock/adblock_controller_factory.cc new file mode 100644 --- /dev/null @@ -1994,6 +2430,181 @@ new file mode 100644 +} + +} // namespace +diff --git a/chrome/browser/adblock/adblock_filter_list_browsertest.cc b/chrome/browser/adblock/adblock_filter_list_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/adblock_filter_list_browsertest.cc +@@ -0,0 +1,170 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "components/adblock/core/adblock_switches.h" ++#include "components/adblock/core/subscription/subscription_config.h" ++#include "components/version_info/version_info.h" ++#include "content/public/browser/browser_task_traits.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockFilterListDownloadTestBase : public InProcessBrowserTest { ++ public: ++ AdblockFilterListDownloadTestBase() ++ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {} ++ // We need to set server and request handler asap ++ void SetUpInProcessBrowserTestFixture() override { ++ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); ++ host_resolver()->AddRule("easylist-downloads.adblockplus.org", "127.0.0.1"); ++ https_server_.RegisterRequestHandler( ++ base::BindRepeating(&AdblockFilterListDownloadTestBase::RequestHandler, ++ base::Unretained(this))); ++ net::EmbeddedTestServer::ServerCertificateConfig cert_config; ++ cert_config.dns_names = {"easylist-downloads.adblockplus.org"}; ++ https_server_.SetSSLConfig(cert_config); ++ ASSERT_TRUE(https_server_.Start()); ++ SetFilterListServerPortForTesting(https_server_.port()); ++ } ++ ++ virtual std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) { ++ if (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || ++ base::StartsWith(request.relative_url, "/easylist.txt") || ++ base::StartsWith(request.relative_url, "/exceptionrules.txt")) { ++ std::string os; ++ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", ++ &os); ++ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platform=" + os) != ++ std::string::npos); ++ default_lists_.insert(request.relative_url.substr( ++ 1, request.relative_url.find_first_of("?") - 1)); ++ } ++ ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return nullptr; ++ } ++ ++ void CloseBrowserFromAnyThread() { ++ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) ++ ->PostTask( ++ FROM_HERE, ++ base::BindOnce( ++ &AdblockFilterListDownloadTestBase::CloseBrowserAsynchronously, ++ base::Unretained(this), browser())); ++ } ++ ++ protected: ++ net::EmbeddedTestServer https_server_; ++ std::set default_lists_; ++}; ++ ++class AdblockEnabledFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ auto return_value = ++ AdblockFilterListDownloadTestBase::RequestHandler(request); ++ // If we get all expected requests we simply finish the test by closing ++ // the browser, otherwise test will fail with a timeout. ++ if (default_lists_.size() == 3) { ++ CloseBrowserFromAnyThread(); ++ } ++ ++ return return_value; ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockEnabledFilterListDownloadTest, ++ TestInitialDownloads) { ++ RunUntilBrowserProcessQuits(); ++} ++ ++class AdblockDisabledFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ void SetUpCommandLine(base::CommandLine* command_line) override { ++ command_line->AppendSwitch(adblock::switches::kDisableAdblock); ++ } ++ ++ void VerifyNoDownloads() { ++ ASSERT_EQ(0u, default_lists_.size()); ++ CloseBrowserFromAnyThread(); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockDisabledFilterListDownloadTest, ++ TestInitialDownloads) { ++ // This test assumes that inital downloads (for adblock enabled) will happen ++ // within 10 seconds. When tested locally it always happens within 3 seconds. ++ base::OneShotTimer timer; ++ timer.Start( ++ FROM_HERE, base::Seconds(10), ++ base::BindOnce(&AdblockDisabledFilterListDownloadTest::VerifyNoDownloads, ++ base::Unretained(this))); ++ RunUntilBrowserProcessQuits(); ++} ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++class AdblockPtLocaleFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ AdblockPtLocaleFilterListDownloadTest() ++ : AdblockFilterListDownloadTestBase() { ++ setenv("LC_ALL", "pt_PT.UTF-8", 1); ++ } ++ ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_FALSE(base::StartsWith(request.relative_url, "/easylist.txt")); ++ if (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || ++ base::StartsWith(request.relative_url, ++ "/easylistportuguese+easylist.txt") || ++ base::StartsWith(request.relative_url, "/exceptionrules.txt")) { ++ default_lists_.insert(request.relative_url.substr( ++ 1, request.relative_url.find_first_of("?") - 1)); ++ } ++ ++ // If we get all expected requests we simply finish the test by closing ++ // the browser, otherwise test will fail with a timeout. ++ if (default_lists_.size() == 3) { ++ CloseBrowserFromAnyThread(); ++ } ++ ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return nullptr; ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockPtLocaleFilterListDownloadTest, ++ TestInitialDownloads) { ++ RunUntilBrowserProcessQuits(); ++} ++#endif ++ ++} // namespace adblock diff --git a/chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc b/chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc new file mode 100644 --- /dev/null @@ -2122,7 +2733,7 @@ diff --git a/chrome/browser/adblock/adblock_mojo_interface_impl.cc b/chrome/brow new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_mojo_interface_impl.cc -@@ -0,0 +1,267 @@ +@@ -0,0 +1,268 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2294,16 +2905,16 @@ new file mode 100644 + if (result == mojom::FilterMatchResult::kBlockRule) { + content::RenderProcessHost* process_host = + content::RenderProcessHost::FromID(render_process_id_); -+ if (process_host) { ++ content::RenderFrameHost* frame_host = ++ content::RenderFrameHost::FromID(render_process_id_, render_frame_id); ++ if (process_host && frame_host) { + adblock::ElementHider* element_hider = + adblock::ElementHiderFactory::GetForBrowserContext( + process_host->GetBrowserContext()); + const auto adblock_resource_type = + utils::ConvertToAdblockResourceType(request_url, resource_type); + if (element_hider->IsElementTypeHideable(adblock_resource_type)) { -+ element_hider->HideBlockedElement( -+ request_url, content::RenderFrameHost::FromID(render_process_id_, -+ render_frame_id)); ++ element_hider->HideBlockedElement(request_url, frame_host); + } + } + } @@ -2319,7 +2930,10 @@ new file mode 100644 + mojom::FilterMatchResult result) { + content::RenderProcessHost* process_host = + content::RenderProcessHost::FromID(render_process_id_); -+ if (!process_host || result == mojom::FilterMatchResult::kDisabled) { ++ content::RenderFrameHost* frame_host = ++ content::RenderFrameHost::FromID(render_process_id_, render_frame_id); ++ if (!process_host || !frame_host || ++ result == mojom::FilterMatchResult::kDisabled) { + PostResponseHeadersCallbackToUI(std::move(callback), result, nullptr); + return; + } @@ -2330,9 +2944,7 @@ new file mode 100644 + process_host->GetBrowserContext()); + auto adblock_resource_type = utils::DetectResourceType(response_url); + if (element_hider->IsElementTypeHideable(adblock_resource_type)) { -+ element_hider->HideBlockedElement( -+ response_url, content::RenderFrameHost::FromID(render_process_id_, -+ render_frame_id)); ++ element_hider->HideBlockedElement(response_url, frame_host); + } + PostResponseHeadersCallbackToUI(std::move(callback), result, nullptr); + return; @@ -2485,7 +3097,7 @@ diff --git a/chrome/browser/adblock/adblock_mojo_interface_impl_unittest.cc b/ch new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_mojo_interface_impl_unittest.cc -@@ -0,0 +1,605 @@ +@@ -0,0 +1,614 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2669,7 +3281,8 @@ new file mode 100644 + std::vector deferred_tasks_; +}; + -+TEST_F(AdblockMojoInterfaceImplTest, CheckFilterMatch) { ++// TODO(DPD-1295): Remove these tests ++TEST_F(AdblockMojoInterfaceImplTest, DISABLED_CheckFilterMatch) { + MockCheckFilterMatchCallback callback; + mojom::AdblockInterface::CheckFilterMatchCallback callback_captured_by_rq; + const GURL request_url("https://request_url.com"); @@ -2699,7 +3312,7 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ChecktFilterMatchDeferred) { ++TEST_F(AdblockMojoInterfaceImplTest, DISABLED_ChecktFilterMatchDeferred) { + MockCheckFilterMatchCallback callback; + mojom::AdblockInterface::CheckFilterMatchCallback callback_captured_by_rq; + const GURL request_url("https://request_url.com"); @@ -2732,7 +3345,7 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, CheckFilterMatchNoProcessHost) { ++TEST_F(AdblockMojoInterfaceImplTest, DISABLED_CheckFilterMatchNoProcessHost) { + MockCheckFilterMatchCallback callback; + const GURL request_url("https://request_url.com"); + @@ -2751,7 +3364,7 @@ new file mode 100644 +} + +TEST_F(AdblockMojoInterfaceImplTest, -+ ChecktFilterMatch_RenderFrameHostDiesWhileTaskDeferred) { ++ DISABLED_ChecktFilterMatch_RenderFrameHostDiesWhileTaskDeferred) { + MockCheckFilterMatchCallback callback; + const GURL request_url("https://request_url.com"); + @@ -2774,7 +3387,7 @@ new file mode 100644 +} + +TEST_F(AdblockMojoInterfaceImplTest, -+ ProcessResponseHeaders_BlockedWithHeaderFilter) { ++ DISABLED_ProcessResponseHeaders_BlockedWithHeaderFilter) { + MockProcessResponseHeadersCallback callback; + const GURL response_url("https://request_url.com"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -2816,7 +3429,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ProcessResponseHeaders_CspInjection) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ProcessResponseHeaders_CspInjection) { + MockProcessResponseHeadersCallback callback; + const GURL response_url("https://request_url.com"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -2871,7 +3485,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ProcessResponseHeadersNoProcessHost) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ProcessResponseHeadersNoProcessHost) { + MockProcessResponseHeadersCallback callback; + const GURL response_url("https://request_url.com"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -2891,7 +3506,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_BlockedRequestHidden) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_BlockedRequestHidden) { + MockCheckFilterMatchCallback mock_check_filter_match_callback; + const GURL request_url("https://request_url.com"); + auto resource_type = static_cast(blink::mojom::ResourceType::kImage); @@ -2924,7 +3540,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_RequestNotHideable) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_RequestNotHideable) { + MockCheckFilterMatchCallback mock_check_filter_match_callback; + const GURL request_url("https://request_url.com"); + auto resource_type = static_cast(blink::mojom::ResourceType::kPing); @@ -2957,7 +3574,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_AllowedRequestNotHidden) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_AllowedRequestNotHidden) { + MockCheckFilterMatchCallback mock_check_filter_match_callback; + const GURL request_url("https://request_url.com"); + auto resource_type = static_cast(blink::mojom::ResourceType::kImage); @@ -2989,7 +3607,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_BlockedResponseHidden) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_BlockedResponseHidden) { + MockProcessResponseHeadersCallback mock_process_response_headers_callback; + const GURL response_url("https://request_url.com/image.png"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -3023,7 +3642,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_ResponseNotHideable) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_ResponseNotHideable) { + MockProcessResponseHeadersCallback mock_process_response_headers_callback; + const GURL response_url("https://request_url.com/script.js"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -3057,7 +3677,8 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockMojoInterfaceImplTest, ElementHiding_AllowedResponseNotHidden) { ++TEST_F(AdblockMojoInterfaceImplTest, ++ DISABLED_ElementHiding_AllowedResponseNotHidden) { + MockProcessResponseHeadersCallback mock_process_response_headers_callback; + const GURL response_url("https://request_url.com/image.png"); + auto headers = net::HttpResponseHeaders::TryToCreate(""); @@ -3091,11 +3712,11 @@ new file mode 100644 +} + +} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_subscription_service_browsertest.cc b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc +diff --git a/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc b/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc new file mode 100644 --- /dev/null -+++ b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc -@@ -0,0 +1,125 @@ ++++ b/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc +@@ -0,0 +1,152 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3112,6 +3733,165 @@ new file mode 100644 + * You should have received a copy of the GNU General Public License + * along with eyeo Chromium SDK. If not, see . + */ ++#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/browser/ui/browser_list.h" ++#include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/sessions/content/session_tab_helper.cc" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockMultipleTabsBrowserTest ++ : public InProcessBrowserTest, ++ public ResourceClassificationRunner::Observer { ++ public: ++ void SetUpOnMainThread() override { ++ host_resolver()->AddRule(kTestDomain, "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ ResourceClassificationRunnerFactory::GetForBrowserContext( ++ browser()->profile()) ++ ->AddObserver(this); ++ // expected.png is allowlisted by allowlisted parent empty.html iframe ++ SetFilters({"blocked.png", "expected.png", "@@/empty.html^$document"}); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ ASSERT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); ++ ASSERT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* subscription_service = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()); ++ subscription_service->SetCustomFilters(std::move(filters)); ++ } ++ ++ void RestoreTabs(Browser* browser) { ++ content::DOMMessageQueue queue; ++ RecentTabsSubMenuModel menu(nullptr, browser); ++ menu.ExecuteCommand(menu.GetFirstRecentTabsCommandId(), 0); ++ for (int i = 0; i < kTabsCount; ++i) { ++ std::string message; ++ EXPECT_TRUE(queue.WaitForMessage(&message)); ++ EXPECT_EQ("\"READY\"", message); ++ } ++ } ++ ++ // ResourceClassificationRunner::Observer: ++ void OnAdMatched(const GURL& url, ++ mojom::FilterMatchResult match_result, ++ const std::vector& parent_frame_urls, ++ ContentType content_type, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override { ++ const content::WebContents* wc = ++ content::WebContents::FromRenderFrameHost(render_frame_host); ++ if (match_result == mojom::FilterMatchResult::kBlockRule ++ && url.path() == "/blocked.png") { ++ tabs_with_blocked_resource_.insert( ++ sessions::SessionTabHelper::IdForTab(wc).id()); ++ } else if (match_result == mojom::FilterMatchResult::kAllowRule ++ && url.path() == "/expected.png") { ++ tabs_with_allowed_resource_.insert( ++ sessions::SessionTabHelper::IdForTab(wc).id()); ++ } ++ } ++ ++ void OnPageAllowed(const GURL& url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override {} ++ ++ void OnPopupMatched(const GURL& url, ++ mojom::FilterMatchResult match_result, ++ const GURL& opener_url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override {} ++ ++ protected: ++ const int kTabsCount = 4; ++ const char* kTestDomain = "example.com"; ++ std::set tabs_with_blocked_resource_; ++ std::set tabs_with_allowed_resource_; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, PRE_OpenManyTabs) { ++ // Load page in already opened tab ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ++ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"))); ++ // Open more tabs ++ for (int i = 0; i < kTabsCount - 1; ++i) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURLWithDisposition( ++ browser(), ++ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"), ++ WindowOpenDisposition::NEW_FOREGROUND_TAB, ++ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP)); ++ } ++ EXPECT_EQ(kTabsCount, browser()->tab_strip_model()->count()); ++ EXPECT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); ++ EXPECT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); ++ ++ // Open a new browser instance ++ ui_test_utils::NavigateToURLWithDisposition( ++ browser(), GURL(url::kAboutBlankURL), WindowOpenDisposition::NEW_WINDOW, ++ ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); ++ BrowserList* active_browser_list = BrowserList::GetInstance(); ++ EXPECT_EQ(2u, active_browser_list->size()); ++ ++ // Close the 1st browser and clear tabs test data ++ CloseBrowserSynchronously(browser()); ++ EXPECT_EQ(1u, active_browser_list->size()); ++ tabs_with_blocked_resource_.clear(); ++ tabs_with_allowed_resource_.clear(); ++ ++ Browser* browser = active_browser_list->get(0); ++ // Restore tabs from1 st browser instance (already closed) in 2nd instance ++ RestoreTabs(browser); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, OpenManyTabs) { ++ ASSERT_EQ(0u, tabs_with_blocked_resource_.size()); ++ ASSERT_EQ(0u, tabs_with_allowed_resource_.size()); ++ // Restore tabs from previous session (previous test) ++ RestoreTabs(browser()); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/adblock_subscription_service_browsertest.cc b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc +@@ -0,0 +1,163 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "base/ranges/algorithm.h" ++#include "base/strings/string_split.h" +#include "base/test/bind.h" +#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" @@ -3121,8 +3901,10 @@ new file mode 100644 +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/version_info/version_info.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" ++#include "net/http/http_request_headers.h" +#include "net/test/embedded_test_server/embedded_test_server.h" + +namespace adblock { @@ -3138,6 +3920,27 @@ new file mode 100644 + https_server_->SetSSLConfig(net::EmbeddedTestServer::CERT_OK); + } + ++ bool RequestHeadersContainAcceptLanguage( ++ const net::test_server::HttpRequest& request) { ++ const auto accept_language_it = ++ request.headers.find(net::HttpRequestHeaders::kAcceptLanguage); ++ return accept_language_it != request.headers.end() && ++ !accept_language_it->second.empty(); ++ } ++ ++ bool RequestHeadersContainAcceptEncodingBrotli( ++ const net::test_server::HttpRequest& request) { ++ const auto accept_encoding_it = ++ request.headers.find(net::HttpRequestHeaders::kAcceptEncoding); ++ if (accept_encoding_it == request.headers.end()) ++ return false; ++ const auto split_encodings = ++ base::SplitString(accept_encoding_it->second, ",", ++ base::WhitespaceHandling::TRIM_WHITESPACE, ++ base::SplitResult::SPLIT_WANT_NONEMPTY); ++ return base::ranges::find(split_encodings, "br") != split_encodings.end(); ++ } ++ + std::unique_ptr + HandleSubscriptionUpdateRequestWithUrlCheck( + std::string expected_url_part, @@ -3150,8 +3953,21 @@ new file mode 100644 + "! Expires: 1 days (update frequency)\n\n"; + if (base::StartsWith(request.relative_url, kSubscription, + base::CompareCase::SENSITIVE)) { ++ EXPECT_TRUE(RequestHeadersContainAcceptLanguage(request)); ++ EXPECT_TRUE(RequestHeadersContainAcceptEncodingBrotli(request)); ++ std::string os; ++ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", ++ &os); + EXPECT_TRUE(request.relative_url.find(expected_url_part) != + std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platform=" + os) != ++ std::string::npos); + auto http_response = + std::make_unique(); + http_response->set_code(net::HTTP_OK); @@ -3221,11 +4037,271 @@ new file mode 100644 +} + +} // namespace adblock +diff --git a/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc b/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc +@@ -0,0 +1,255 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "base/json/json_reader.h" ++#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "components/adblock/core/activeping_telemetry_topic_provider.h" ++#include "content/public/browser/browser_task_traits.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockTelemetryServiceBrowserTestBase : public InProcessBrowserTest { ++ public: ++ // We need to set server and request handler asap ++ void SetUpInProcessBrowserTestFixture() override { ++ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); ++ host_resolver()->AddRule( ++ ActivepingTelemetryTopicProvider::DefaultBaseUrl().host(), "127.0.0.1"); ++ http_server_.RegisterRequestHandler(base::BindRepeating( ++ &AdblockTelemetryServiceBrowserTestBase::RequestHandler, ++ base::Unretained(this))); ++ ASSERT_TRUE(http_server_.Start()); ++ ActivepingTelemetryTopicProvider::SetHttpPortForTesting( ++ http_server_.port()); ++ auto testing_interval = base::Seconds(2); ++ ActivepingTelemetryTopicProvider::SetIntervalsForTesting(testing_interval); ++ AdblockTelemetryServiceFactory::GetInstance() ++ ->SetCheckAndDelayIntervalsForTesting(testing_interval, ++ testing_interval); ++ } ++ ++ base::Value* GetFirstPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("first_ping"); ++ } ++ ++ base::Value* GetLastPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("last_ping"); ++ } ++ ++ base::Value* GetLastPingTag(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("last_ping_tag"); ++ } ++ ++ base::Value* GetPreviousLastPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("previous_last_ping"); ++ } ++ ++ void CloseBrowserFromAnyThread() { ++ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) ++ ->PostTask(FROM_HERE, ++ base::BindOnce(&AdblockTelemetryServiceBrowserTestBase:: ++ CloseBrowserAsynchronously, ++ base::Unretained(this), browser())); ++ } ++ ++ std::unique_ptr CreateResponse( ++ const std::string& token) { ++ auto http_response = ++ std::make_unique(); ++ http_response->set_code(net::HTTP_OK); ++ http_response->set_content("{\"token\": \"" + token + "\"}"); ++ http_response->set_content_type("text/plain"); ++ return std::move(http_response); ++ } ++ ++ virtual std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) = 0; ++ ++ private: ++ base::Value::Dict* GetPayload(absl::optional& parsed) { ++ EXPECT_TRUE(parsed && parsed->is_dict()); ++ base::Value::Dict* parsed_dict = parsed->GetIfDict(); ++ EXPECT_TRUE(parsed_dict); ++ base::Value::Dict* payload = parsed_dict->FindDict("payload"); ++ EXPECT_TRUE(payload); ++ return payload; ++ } ++ ++ net::EmbeddedTestServer http_server_; ++}; ++ ++// Test three initial pings each after startup and each fails for the 1st time ++class AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest ++ : public AdblockTelemetryServiceBrowserTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_TRUE(base::StartsWith(request.relative_url, ++ "/topic/eyeochromium_activeping/version/1")); ++ EXPECT_TRUE(request.has_content); ++ absl::optional parsed = ++ base::JSONReader::Read(request.content); ++ base::Value* first_ping = GetFirstPing(parsed); ++ base::Value* last_ping = GetLastPing(parsed); ++ base::Value* previous_last_ping = GetPreviousLastPing(parsed); ++ ++ if (expected_first_ping_.empty()) { ++ EXPECT_FALSE(first_ping); ++ } else { ++ EXPECT_EQ(expected_first_ping_, *first_ping); ++ } ++ ++ if (expected_last_ping_.empty()) { ++ EXPECT_FALSE(last_ping); ++ } else { ++ EXPECT_EQ(expected_last_ping_, *last_ping); ++ } ++ ++ if (expected_previous_last_ping_.empty()) { ++ EXPECT_FALSE(previous_last_ping); ++ } else { ++ EXPECT_EQ(expected_previous_last_ping_, *previous_last_ping); ++ } ++ ++ if (!attempt_++) { ++ // Force retry by 404 response but 1st save last_ping_tag if any ++ base::Value* last_ping_tag = GetLastPingTag(parsed); ++ if (last_ping_tag) { ++ previous_last_ping_tag_ = last_ping_tag->GetString(); ++ } ++ return nullptr; ++ } ++ ++ // Verifies that retried ping has the same last_ping_tag ++ if (!previous_last_ping_tag_.empty()) { ++ base::Value* last_ping_tag = GetLastPingTag(parsed); ++ EXPECT_EQ(previous_last_ping_tag_, *last_ping_tag); ++ } ++ ++ // If we get expected telemetry ping with retry we simply finish the test ++ // by closing the browser, otherwise test will fail with a timeout. ++ CloseBrowserFromAnyThread(); ++ ++ // This will be still processed before CloseBrowserFromAnyThread() applies ++ return CreateResponse(server_response_); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ // Make sure we called RequestHandler exactly twice: 1st ping failed, 2nd ++ // was successful ++ EXPECT_EQ(2, attempt_); ++ } ++ ++ protected: ++ std::string server_response_; ++ std::string expected_first_ping_; ++ std::string expected_last_ping_; ++ std::string expected_previous_last_ping_; ++ ++ private: ++ int attempt_ = 0; ++ std::string previous_last_ping_tag_ = ""; ++}; ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ PRE_PRE_TestPing) { ++ // Sets the ping to be returned by the server and checked in the next test ++ server_response_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ PRE_TestPing) { ++ // Sets the ping to be returned by the server and checked in the next test ++ server_response_ = "22222"; ++ expected_first_ping_ = expected_last_ping_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ TestPing) { ++ expected_first_ping_ = "11111"; ++ expected_last_ping_ = "22222"; ++ expected_previous_last_ping_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++// Test three inital pings ++class AdblockTelemetryServiceSubsequentPingsBrowserTest ++ : public AdblockTelemetryServiceBrowserTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_TRUE(base::StartsWith(request.relative_url, ++ "/topic/eyeochromium_activeping/version/1")); ++ EXPECT_TRUE(request.has_content); ++ absl::optional parsed = ++ base::JSONReader::Read(request.content); ++ base::Value* first_ping = GetFirstPing(parsed); ++ base::Value* last_ping = GetLastPing(parsed); ++ base::Value* previous_last_ping = GetPreviousLastPing(parsed); ++ ++ if (count_ == 1) { ++ // No ping payload in the very 1st ping ++ EXPECT_FALSE(first_ping); ++ EXPECT_FALSE(last_ping); ++ } else if (count_ == 2) { ++ // For 2nd ping `first_ping` == `last_ping` ++ EXPECT_EQ(first_ping_, *first_ping); ++ EXPECT_EQ(first_ping_, *last_ping); ++ } else if (count_ == 3) { ++ // From 3rd ping onward `first_ping` != `last_ping` and we also get ++ // `previous_last_ping` ++ EXPECT_EQ(first_ping_, *first_ping); ++ EXPECT_EQ(second_ping_, *last_ping); ++ EXPECT_EQ(first_ping_, *previous_last_ping); ++ } ++ ++ // If we get three expected telemetry pings we simply finish the test by ++ // closing the browser, otherwise test will fail with a timeout. ++ if (count_ == 3) { ++ CloseBrowserFromAnyThread(); ++ return nullptr; ++ } ++ return CreateResponse(count_++ == 1 ? first_ping_ : second_ping_); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ // Make sure we called RequestHandler exactly three times ++ EXPECT_EQ(3, count_); ++ } ++ ++ private: ++ const std::string first_ping_ = "11111"; ++ const std::string second_ping_ = "22222"; ++ int count_ = 1; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockTelemetryServiceSubsequentPingsBrowserTest, ++ TestPing) { ++ RunUntilBrowserProcessQuits(); ++} ++ ++} // namespace adblock diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.cc b/chrome/browser/adblock/adblock_telemetry_service_factory.cc new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_telemetry_service_factory.cc -@@ -0,0 +1,91 @@ +@@ -0,0 +1,115 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3258,6 +4334,24 @@ new file mode 100644 +#include "content/public/browser/storage_partition.h" + +namespace adblock { ++namespace { ++std::optional g_check_interval_for_testing; ++std::optional g_initial_delay_for_testing; ++ ++base::TimeDelta GetInitialDelay() { ++ static base::TimeDelta kInitialDelay = ++ g_initial_delay_for_testing ? g_initial_delay_for_testing.value() ++ : base::Seconds(30); ++ return kInitialDelay; ++} ++ ++base::TimeDelta GetCheckInterval() { ++ static base::TimeDelta kCheckInterval = ++ g_check_interval_for_testing ? g_check_interval_for_testing.value() ++ : base::Minutes(5); ++ return kCheckInterval; ++} ++} // namespace + +// static +AdblockTelemetryService* AdblockTelemetryServiceFactory::GetForProfile( @@ -3288,9 +4382,8 @@ new file mode 100644 + context->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(); + auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); -+ auto service = -+ std::make_unique(prefs, url_loader_factory); -+ ++ auto service = std::make_unique( ++ prefs, url_loader_factory, GetInitialDelay(), GetCheckInterval()); + service->AddTopicProvider(std::make_unique( + utils::GetAppInfo(), prefs, + ActivepingTelemetryTopicProvider::DefaultBaseUrl(), @@ -3316,12 +4409,19 @@ new file mode 100644 + return true; +} + ++void AdblockTelemetryServiceFactory::SetCheckAndDelayIntervalsForTesting( ++ base::TimeDelta check_interval, ++ base::TimeDelta initial_delay) { ++ g_check_interval_for_testing = check_interval; ++ g_initial_delay_for_testing = initial_delay; ++} ++ +} // namespace adblock diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.h b/chrome/browser/adblock/adblock_telemetry_service_factory.h new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_telemetry_service_factory.h -@@ -0,0 +1,50 @@ +@@ -0,0 +1,56 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3343,6 +4443,7 @@ new file mode 100644 +#define CHROME_BROWSER_ADBLOCK_ADBLOCK_TELEMETRY_SERVICE_FACTORY_H_ + +#include "base/no_destructor.h" ++#include "base/time/time.h" +#include "components/keyed_service/content/browser_context_keyed_service_factory.h" + +class Profile; @@ -3355,6 +4456,11 @@ new file mode 100644 + static AdblockTelemetryService* GetForProfile(Profile* profile); + static AdblockTelemetryServiceFactory* GetInstance(); + ++ // Sets the initial delay and interval checks required for browser tests. ++ // Must be called before BuildServiceInstanceFor(). ++ void SetCheckAndDelayIntervalsForTesting(base::TimeDelta check_interval, ++ base::TimeDelta initial_delay); ++ + private: + friend class base::NoDestructor; + AdblockTelemetryServiceFactory(); @@ -4113,7 +5219,7 @@ diff --git a/chrome/browser/adblock/subscription_service_factory.cc b/chrome/bro new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/subscription_service_factory.cc -@@ -0,0 +1,146 @@ +@@ -0,0 +1,143 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4141,8 +5247,6 @@ new file mode 100644 +#include "base/threading/sequenced_task_runner_handle.h" +#include "base/trace_event/trace_event.h" +#include "chrome/browser/adblock/subscription_persistent_metadata_factory.h" -+#include "chrome/browser/browser_process.h" -+#include "chrome/browser/net/system_network_context_manager.h" +#include "chrome/browser/profiles/incognito_helpers.h" +#include "chrome/browser/profiles/profile.h" +#include "components/adblock/core/common/adblock_constants.h" @@ -4158,6 +5262,7 @@ new file mode 100644 +#include "components/keyed_service/content/browser_context_dependency_manager.h" +#include "components/prefs/pref_service.h" +#include "content/public/browser/browser_context.h" ++#include "content/public/browser/storage_partition.h" + +namespace adblock { +namespace { @@ -4231,10 +5336,8 @@ new file mode 100644 + auto* persistent_metadata = + SubscriptionPersistentMetadataFactory::GetForBrowserContext(context); + scoped_refptr url_loader_factory = -+ g_browser_process && g_browser_process->system_network_context_manager() -+ ? g_browser_process->system_network_context_manager() -+ ->GetSharedURLLoaderFactory() -+ : nullptr; ++ context->GetDefaultStoragePartition() ++ ->GetURLLoaderFactoryForBrowserProcess(); + + auto storage = std::make_unique( + context->GetPath().AppendASCII("adblock_subscriptions"), @@ -5257,7 +6360,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc #include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h" -@@ -100,6 +104,7 @@ const char* const kChromeSettingsSubPages[] = { +@@ -101,6 +105,7 @@ const char* const kChromeSettingsSubPages[] = { chrome::kImportDataSubPage, chrome::kManageProfileSubPage, chrome::kPeopleSubPage, #endif @@ -5279,13 +6382,13 @@ diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/br #include #include -@@ -503,8 +507,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { - std::unique_ptr feature_list(new base::FeatureList); +@@ -505,8 +509,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { feature_list->InitializeFromCommandLine( "UserAgentClientHint,CriticalClientHint," -- "AcceptCHFrame,PrefersColorSchemeClientHintHeader", + "AcceptCHFrame,PrefersColorSchemeClientHintHeader," +- "PrefersReducedMotionClientHintHeader", - ""); -+ "AcceptCHFrame,PrefersColorSchemeClientHintHeader," ++ "PrefersReducedMotionClientHintHeader," + "", + // Disabling AdblockPlus because the async implementation of + // AdblockURLLoaderThrottle::WillStartRequest confuses @@ -5317,7 +6420,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/autofill_private/autofill_private_api.cc", "api/autofill_private/autofill_private_api.h", "api/autofill_private/autofill_private_event_router.cc", -@@ -796,6 +802,7 @@ static_library("extensions") { +@@ -793,6 +799,7 @@ static_library("extensions") { "//chrome/browser/safe_browsing:metrics_collector", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/web_applications", @@ -5351,7 +6454,7 @@ diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_api.c new file mode 100644 --- /dev/null +++ b/chrome/browser/extensions/api/adblock_private/adblock_private_api.cc -@@ -0,0 +1,720 @@ +@@ -0,0 +1,694 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -5370,6 +6473,7 @@ new file mode 100644 +#include "chrome/browser/extensions/api/adblock_private/adblock_private_api.h" + +#include "base/containers/flat_map.h" ++#include "base/logging.h" +#include "base/no_destructor.h" +#include "base/time/time_to_iso8601.h" +#include "base/values.h" @@ -5381,7 +6485,6 @@ new file mode 100644 +#include "components/adblock/content/browser/resource_classification_runner.h" +#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_utils.h" -+#include "components/adblock/core/common/allowed_connection_type.h" +#include "components/adblock/core/common/content_type.h" +#include "components/adblock/core/session_stats.h" +#include "components/sessions/core/session_id.h" @@ -5691,23 +6794,10 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateSetUpdateConsentFunction::Run() { -+ std::unique_ptr params( -+ api::adblock_private::SetUpdateConsent::Params::Create(args())); -+ EXTENSION_FUNCTION_VALIDATE(params); -+ -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ switch (params->consent) { -+ case api::adblock_private::UpdateConsent::UPDATE_CONSENT_WIFI_ONLY: -+ controller->SetUpdateConsent(adblock::AllowedConnectionType::kWiFi); -+ break; -+ case api::adblock_private::UpdateConsent::UPDATE_CONSENT_ALWAYS: -+ controller->SetUpdateConsent(adblock::AllowedConnectionType::kAny); -+ break; -+ default: -+ NOTREACHED(); -+ } -+ ++ LOG(WARNING) ++ << "[eyeo] adblock_private::UpdateConsent is not supported anymore, " ++ "downloads are allowed anytime. AdblockPrivate::SetUpdateConsent will " ++ "be removed in version 109."; + return RespondNow(NoArguments()); +} + @@ -5719,26 +6809,13 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateGetUpdateConsentFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ -+ auto consent = controller->GetUpdateConsent(); -+ api::adblock_private::UpdateConsent result = -+ api::adblock_private::UpdateConsent::UPDATE_CONSENT_NONE; -+ switch (consent) { -+ case adblock::AllowedConnectionType::kWiFi: -+ result = api::adblock_private::UpdateConsent::UPDATE_CONSENT_WIFI_ONLY; -+ break; -+ case adblock::AllowedConnectionType::kAny: -+ result = api::adblock_private::UpdateConsent::UPDATE_CONSENT_ALWAYS; -+ break; -+ // TODO what about NONE? This will trigger a dcheck... -+ default: -+ NOTREACHED(); -+ } -+ -+ return RespondNow(ArgumentList( -+ api::adblock_private::GetUpdateConsent::Results::Create(result))); ++ LOG(WARNING) ++ << "[eyeo] adblock_private::UpdateConsent is not supported anymore, " ++ "downloads are allowed anytime. AdblockPrivate::GetUpdateConsent will " ++ "be removed in version 109."; ++ return RespondNow( ++ ArgumentList(api::adblock_private::GetUpdateConsent::Results::Create( ++ api::adblock_private::UpdateConsent::UPDATE_CONSENT_ALWAYS))); +} + +AdblockPrivateSetEnabledFunction::AdblockPrivateSetEnabledFunction() {} @@ -6510,7 +7587,7 @@ diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_apite new file mode 100644 --- /dev/null +++ b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc -@@ -0,0 +1,592 @@ +@@ -0,0 +1,669 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -6538,6 +7615,7 @@ new file mode 100644 +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "content/public/test/browser_test.h" +#include "extensions/browser/background_script_executor.h" +#include "net/dns/mock_host_resolver.h" @@ -6577,7 +7655,8 @@ new file mode 100644 + + bool RunTest(const std::string& subtest) { + const std::string page_url = "main.html?" + subtest; -+ return RunExtensionTest("adblock_private", {.page_url = page_url.c_str()}, ++ return RunExtensionTest("adblock_private", ++ {.extension_url = page_url.c_str()}, + {.load_as_component = true}); + } + @@ -6638,10 +7717,6 @@ new file mode 100644 + } +}; + -+IN_PROC_BROWSER_TEST_F(AdblockPrivateApiTest, UpdateConsent) { -+ EXPECT_TRUE(RunTest("updateConsent")) << message_; -+} -+ +IN_PROC_BROWSER_TEST_F(AdblockPrivateApiTest, SetAndCheckEnabled) { + EXPECT_TRUE(RunTest("setEnabled_isEnabled")) << message_; +} @@ -6752,8 +7827,8 @@ new file mode 100644 + std::string subscription_path = "/teststatssub.txt"; + std::string subscription_filters = "test3.png\ntest4.png\n@@test4.png"; + -+ EXPECT_TRUE( -+ RunTestWithServer("sessionStats", subscription_path, subscription_filters)) ++ EXPECT_TRUE(RunTestWithServer("sessionStats", subscription_path, ++ subscription_filters)) + << message_; +} + @@ -6997,7 +8072,7 @@ new file mode 100644 + host_resolver()->AddRule(before_redirect_domain, "127.0.0.1"); + host_resolver()->AddRule(after_redirect_domain, "127.0.0.1"); + embedded_test_server()->RegisterRequestHandler(base::BindRepeating( -+ &AdblockPrivateApiBackgroundPageTestWithRedirect::RedirectRequest, ++ &AdblockPrivateApiBackgroundPageTestWithRedirect::RequestHandler, + base::Unretained(this))); + ASSERT_TRUE(StartEmbeddedTestServer()); + adblock::AdblockControllerFactory::GetForBrowserContext( @@ -7005,7 +8080,7 @@ new file mode 100644 + ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); + } + -+ std::unique_ptr RedirectRequest( ++ std::unique_ptr RequestHandler( + const net::test_server::HttpRequest& request) { + if (base::EndsWith(request.relative_url, before_redirect_domain, + base::CompareCase::SENSITIVE)) { @@ -7014,8 +8089,25 @@ new file mode 100644 + http_response->set_code(net::HTTP_FOUND); + http_response->set_content("Redirecting..."); + http_response->set_content_type("text/plain"); -+ http_response->AddCustomHeader("Location", -+ "http://" + after_redirect_domain); ++ http_response->AddCustomHeader( ++ "Location", "http://" + after_redirect_domain + ":" + ++ base::NumberToString(embedded_test_server()->port()) + ++ request.relative_url.substr( ++ 0, request.relative_url.size() - ++ before_redirect_domain.size() - 1)); ++ return std::move(http_response); ++ } ++ if (base::EndsWith(request.relative_url, subresource_with_redirect, ++ base::CompareCase::SENSITIVE)) { ++ auto http_response = ++ std::make_unique(); ++ http_response->set_code(net::HTTP_OK); ++ // Create a sub resource url which causes redirection ++ const GURL url = embedded_test_server()->GetURL( ++ before_redirect_domain, "/image.png?" + before_redirect_domain); ++ std::string body = ""; ++ http_response->set_content(body); ++ http_response->set_content_type("text/html"); + return std::move(http_response); + } + @@ -7025,9 +8117,11 @@ new file mode 100644 + + const std::string before_redirect_domain = "before-redirect.com"; + const std::string after_redirect_domain = "after-redirect.com"; ++ const std::string subresource_with_redirect = "subresource_with_redirect"; +}; + +// Test for DPD-1519 ++// This test verifies redirection of a main page +IN_PROC_BROWSER_TEST_F(AdblockPrivateApiBackgroundPageTestWithRedirect, + PageAllowedEvents) { + const Extension* extension = @@ -7040,11 +8134,9 @@ new file mode 100644 + testData.pageAllowedAfterRedirectCount = 0; + chrome.adblockPrivate.onPageAllowed.addListener(function(e) { + if (e.url.includes('before-redirect.com')) { -+ testData.pageAllowedBeforeRedirectCount = -+ testData.pageAllowedBeforeRedirectCount + 1; ++ ++testData.pageAllowedBeforeRedirectCount; + } else if (e.url.includes('after-redirect.com')) { -+ testData.pageAllowedAfterRedirectCount = -+ testData.pageAllowedAfterRedirectCount + 1; ++ ++testData.pageAllowedAfterRedirectCount; + } + }); + window.domAutomationController.send(''); @@ -7071,7 +8163,7 @@ new file mode 100644 + window.domAutomationController.send(''); + )"; + -+ // Because RedirectRequest handler sees just a 127.0.0.1 instead of ++ // Because RequestHandler handler sees just a 127.0.0.1 instead of + // a domain we are passing here source domain as a path in url. + const GURL test_url = embedded_test_server()->GetURL( + before_redirect_domain, "/" + before_redirect_domain); @@ -7102,6 +8194,68 @@ new file mode 100644 + kReadCountersScript)); +} + ++// This test verifies redirection of a sub resource ++IN_PROC_BROWSER_TEST_F(AdblockPrivateApiBackgroundPageTestWithRedirect, ++ AdMatchedEvents) { ++ const Extension* extension = ++ LoadExtension(test_data_dir_.AppendASCII("adblock_private")); ++ ASSERT_TRUE(extension); ++ ++ constexpr char kSetListenersScript[] = R"( ++ var testData = {}; ++ testData.adBlockedCount = 0; ++ testData.adAllowedCount = 0; ++ chrome.adblockPrivate.onAdBlocked.addListener(function(e) { ++ if (e.url.includes('http://after-redirect.com')) { ++ ++testData.adBlockedCount; ++ } ++ }); ++ chrome.adblockPrivate.onAdAllowed.addListener(function(e) { ++ if (e.url.includes('http://after-redirect.com')) { ++ ++testData.adAllowedCount; ++ } ++ }); ++ window.domAutomationController.send(''); ++ )"; ++ ++ constexpr char kReadCountersScript[] = R"( ++ window.domAutomationController.send( ++ testData.adBlockedCount + '-' + testData.adAllowedCount); ++ )"; ++ ++ constexpr char kAddBlockingFilterScript[] = R"( ++ chrome.adblockPrivate.addCustomFilter('||after-redirect.com*/image.png'); ++ window.domAutomationController.send(''); ++ )"; ++ ++ constexpr char kAddAllowingFilterScript[] = R"( ++ chrome.adblockPrivate.addCustomFilter('@@||after-redirect.com*/image.png'); ++ window.domAutomationController.send(''); ++ )"; ++ ++ ExecuteScriptInBackgroundPage(extension->id(), kSetListenersScript); ++ ++ const GURL test_url = embedded_test_server()->GetURL( ++ after_redirect_domain, "/" + subresource_with_redirect); ++ ++ // No filter ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); ++ ASSERT_EQ("0-0", ExecuteScriptInBackgroundPage(extension->id(), ++ kReadCountersScript)); ++ ++ // Just block filter ++ ExecuteScriptInBackgroundPage(extension->id(), kAddBlockingFilterScript); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); ++ ASSERT_EQ("1-0", ExecuteScriptInBackgroundPage(extension->id(), ++ kReadCountersScript)); ++ ++ // Allow and block filter ++ ExecuteScriptInBackgroundPage(extension->id(), kAddAllowingFilterScript); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); ++ ASSERT_EQ("1-1", ExecuteScriptInBackgroundPage(extension->id(), ++ kReadCountersScript)); ++} ++ +} // namespace extensions diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc @@ -7117,7 +8271,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "chrome/browser/extensions/api/settings_private/prefs_util.h" #include -@@ -26,6 +30,7 @@ +@@ -25,6 +29,7 @@ #include "chrome/browser/safe_browsing/generated_safe_browsing_pref.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" @@ -7125,7 +8279,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/autofill_assistant/browser/public/prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" -@@ -173,6 +178,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -172,6 +177,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { return *s_allowlist; s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -7176,6 +8330,38 @@ diff --git a/chrome/browser/extensions/browser_context_keyed_service_factories.c extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); +diff --git a/chrome/browser/net/errorpage_browsertest.cc b/chrome/browser/net/errorpage_browsertest.cc +--- a/chrome/browser/net/errorpage_browsertest.cc ++++ b/chrome/browser/net/errorpage_browsertest.cc +@@ -2,6 +2,10 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++// This source code is a part of eyeo Chromium SDK. ++// Use of this source code is governed by the GPLv3 that can be found in the ++// components/adblock/LICENSE file. ++ + #include + #include + #include +@@ -39,6 +43,7 @@ + #include "chrome/common/pref_names.h" + #include "chrome/test/base/in_process_browser_test.h" + #include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_switches.h" + #include "components/browsing_data/content/browsing_data_helper.h" + #include "components/embedder_support/switches.h" + #include "components/error_page/content/browser/net_error_auto_reloader.h" +@@ -637,6 +642,9 @@ class ErrorPageAutoReloadTest : public InProcessBrowserTest { + public: + void SetUpCommandLine(base::CommandLine* command_line) override { + command_line->AppendSwitch(embedder_support::kEnableAutoReload); ++ // The URLLoaderInterceptor is not resilient to the browser making ++ // adblock-related requests, they confuse this test. ++ command_line->AppendSwitch(adblock::switches::kDisableAdblock); + } + + void TearDownOnMainThread() override { url_loader_interceptor_.reset(); } diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc @@ -7241,8 +8427,8 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU "//chrome/common/pref_names.cc", + "//components/adblock/core/common/adblock_prefs.cc", "//components/autofill/core/common/autofill_prefs.cc", + "//components/autofill_assistant/browser/public/prefs.cc", "//components/commerce/core/pref_names.cc", - "//components/dom_distiller/core/pref_names.cc", diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc @@ -7341,7 +8527,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" #include "chrome/browser/autocomplete/shortcuts_backend_factory.h" -@@ -137,6 +149,7 @@ +@@ -138,6 +150,7 @@ #include "services/network/public/cpp/features.h" #if BUILDFLAG(IS_ANDROID) @@ -7349,7 +8535,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/android/explore_sites/explore_sites_service_factory.h" #include "chrome/browser/android/reading_list/reading_list_manager_factory.h" #include "chrome/browser/android/reading_list/reading_list_notification_service_factory.h" -@@ -380,9 +393,18 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -381,9 +394,18 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(ENABLE_SESSION_SERVICE) ExitTypeServiceFactory::GetInstance(); #endif @@ -7381,8 +8567,8 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro + #include - #include "base/test/scoped_feature_list.h" -@@ -424,7 +428,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, + #include "base/ranges/algorithm.h" +@@ -443,7 +447,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "WebRtcEventLogManagerKeyedService", "WebrtcAudioPrivateEventService", "feedback::FeedbackUploaderChrome", @@ -7401,7 +8587,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -726,7 +740,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -745,7 +759,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "WebRtcEventLogManagerKeyedService", "WebrtcAudioPrivateEventService", "feedback::FeedbackUploaderChrome", @@ -7434,7 +8620,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc import("//build/config/chromeos/ui_mode.gni") import("//chrome/browser/resources/tools/build_webui.gni") import("//chrome/common/features.gni") -@@ -109,6 +113,7 @@ build_webui("build") { +@@ -107,6 +111,7 @@ build_webui("build") { "a11y_page/a11y_page.ts", "a11y_page/live_caption_section.ts", "about_page/about_page.ts", @@ -7664,7 +8850,7 @@ new file mode 100644 +import '../settings_shared.css.js'; + + -+import { I18nMixin } from 'chrome://resources/js/i18n_mixin.js'; ++import { I18nMixin } from 'chrome://resources/cr_elements/i18n_mixin.js'; +import { BaseMixin } from '../base_mixin.js'; +import { html, PolymerElement } from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import { PrefsMixin } from '../prefs/prefs_mixin.js'; @@ -8048,7 +9234,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; import {pageVisibility} from './page_visibility.js'; -@@ -141,6 +146,10 @@ function createBrowserSettingsRoutes(): Partial { +@@ -139,6 +144,10 @@ function createBrowserSettingsRoutes(): Partial { r.FONTS = r.APPEARANCE.createChild('/fonts'); } @@ -8084,7 +9270,7 @@ diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/reso diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html --- a/chrome/browser/resources/settings/settings_menu/settings_menu.html +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html -@@ -138,6 +138,13 @@ +@@ -139,6 +139,13 @@ $i18n{a11yPageTitle} @@ -8200,7 +9386,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/chromebox_for_meetings/buildflags.gni") -@@ -436,6 +440,7 @@ static_library("ui") { +@@ -441,6 +445,7 @@ static_library("ui") { "//components/access_code_cast/common", "//components/account_id", "//components/accuracy_tips", @@ -8269,7 +9455,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -109,6 +116,7 @@ +@@ -106,6 +113,7 @@ #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" #include "components/accuracy_tips/features.h" @@ -8277,7 +9463,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/browser_autofill_manager.h" #include "components/blocked_content/popup_blocker_tab_helper.h" -@@ -330,6 +338,19 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -326,6 +334,19 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents, optimization_guide_decider, about_this_site_service); } #endif @@ -8324,7 +9510,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext // This features file defines extension APIs implemented under src/chrome. // See chrome/common/extensions/api/_features.md to understand this file, as -@@ -76,6 +80,16 @@ +@@ -80,6 +84,16 @@ "chrome://extensions/*" ] }], @@ -8455,10 +9641,10 @@ new file mode 100644 + long window_id; +}; + ++// Deprecated, to be removed in version 109. ++[deprecated="Updates can no longer be disabled on slow connections"] +enum UpdateConsent { -+ // Allow downloading subscription updates on any network: + ALWAYS, -+ // Allow downloading subscription updates only when on WiFi: + WIFI_ONLY +}; + @@ -8471,10 +9657,10 @@ new file mode 100644 +callback SessionStatsCallback = void(SessionStatsEntry[] result); + +interface Functions { -+ // Sets on which connection type subscription update is allowed. -+ static void setUpdateConsent(UpdateConsent consent); -+ // Gets connection type on which subscription update is allowed. -+ static void getUpdateConsent(UpdateConsentCallback callback); ++// Deprecated, to be removed in version 109. ++ [deprecated="Updates can no longer be disabled on slow connections"] static void setUpdateConsent(UpdateConsent consent); ++// Deprecated, to be removed in version 109. ++ [deprecated="Updates can no longer be disabled on slow connections"] static void getUpdateConsent(UpdateConsentCallback callback); + // Allows to turn Adblock on or off. + static void setEnabled(boolean enabled); + // Returns whether Adblock is on. @@ -8600,7 +9786,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c #include #include -@@ -857,6 +861,9 @@ TEST(PermissionsTest, PermissionMessages) { +@@ -858,6 +862,9 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermissionID::kWebstoreWidgetPrivate); skip.insert(APIPermissionID::kWmDesksPrivate); @@ -8675,7 +9861,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn import("//components/captive_portal/core/features.gni") import("//components/exo/buildflags.gni") import("//components/feed/features.gni") -@@ -908,6 +912,7 @@ if (is_android) { +@@ -919,6 +923,7 @@ if (is_android) { ] deps += [ @@ -8683,7 +9869,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/renderer:test_support", "//components/browsing_data/core:core", "//components/enterprise:enterprise", -@@ -1259,6 +1264,8 @@ if (!is_android) { +@@ -1283,6 +1288,8 @@ if (!is_android) { "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", "//components/accuracy_tips", @@ -8692,7 +9878,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:risk_proto", "//components/autofill/content/browser:test_support", "//components/autofill/content/common/mojom", -@@ -1569,6 +1576,7 @@ if (!is_android) { +@@ -1595,6 +1602,7 @@ if (!is_android) { "data/", "//ash/components/arc/test/data/icons", "//chrome/browser/page_load_metrics/integration_tests/data/", @@ -8700,16 +9886,20 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/test/data/cart/", "//components/test/data/", "//components/test/data/ad_tagging/", -@@ -1660,6 +1668,8 @@ if (!is_android) { +@@ -1686,6 +1694,12 @@ if (!is_android) { "../browser/accessibility/image_annotation_browsertest.cc", "../browser/accessibility/interstitial_accessibility_browsertest.cc", "../browser/accessibility/page_colors_browsertest.cc", ++ "../browser/adblock/adblock_content_browser_client_browsertest.cc", ++ "../browser/adblock/adblock_filter_list_browsertest.cc", + "../browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc", ++ "../browser/adblock/adblock_multiple_tabs_browsertests.cc", + "../browser/adblock/adblock_subscription_service_browsertest.cc", ++ "../browser/adblock/adblock_telemetry_service_browsertest.cc", "../browser/apps/guest_view/app_view_browsertest.cc", "../browser/apps/guest_view/web_view_browsertest.cc", "../browser/apps/platform_apps/app_browsertest.cc", -@@ -2343,6 +2353,10 @@ if (!is_android) { +@@ -2367,6 +2381,10 @@ if (!is_android) { "v8/wasm_trap_handler_browsertest.cc", ] @@ -8720,7 +9910,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chrome_branded) { sources += [ "../browser/ui/views/side_panel/lens/lens_side_panel_coordinator_browsertest.cc" ] } -@@ -2851,6 +2865,7 @@ if (!is_android) { +@@ -2883,6 +2901,7 @@ if (!is_android) { "../browser/extensions/alert_apitest.cc", "../browser/extensions/all_urls_apitest.cc", "../browser/extensions/api/activity_log_private/activity_log_private_apitest.cc", @@ -8728,7 +9918,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/extensions/api/alarms/alarms_apitest.cc", "../browser/extensions/api/autofill_private/autofill_private_apitest.cc", "../browser/extensions/api/automation/automation_apitest.cc", -@@ -3231,6 +3246,7 @@ if (!is_android) { +@@ -3263,6 +3282,7 @@ if (!is_android) { "//chrome/browser/extensions:test_support", "//chrome/common/extensions/api", "//chrome/services/media_gallery_util/public/cpp:browser_tests", @@ -8736,15 +9926,16 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/content_settings/core/test:test_support", "//components/guest_view/browser:test_support", "//components/history_clusters/history_clusters_internals/webui", -@@ -5169,6 +5185,7 @@ test("unit_tests") { +@@ -5220,6 +5240,8 @@ test("unit_tests") { # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", "../browser/active_use_util_unittest.cc", ++ "../browser/adblock/adblock_content_browser_client_unittest.cc", + "../browser/adblock/adblock_mojo_interface_impl_unittest.cc", "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", "../browser/autocomplete/chrome_autocomplete_provider_client_unittest.cc", -@@ -5756,6 +5773,8 @@ test("unit_tests") { +@@ -5813,6 +5835,8 @@ test("unit_tests") { "//chrome/services/qrcode_generator/public/cpp", "//chrome/test/data:chrome_test_resources_grit", "//components/account_id", @@ -8753,7 +9944,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/assist_ranker/proto", "//components/autofill/content/browser:test_support", "//components/autofill/content/renderer:test_support", -@@ -9052,6 +9071,7 @@ if (!is_android) { +@@ -9141,6 +9165,7 @@ if (!is_android) { public_deps = [ "//chrome/browser:test_support_ui", @@ -8806,7 +9997,7 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p #include "chrome/test/base/in_process_browser_test.h" #include -@@ -144,6 +148,10 @@ +@@ -145,6 +149,10 @@ #include "ui/base/test/ui_controls.h" #endif @@ -8817,7 +10008,7 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p namespace { #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -526,8 +534,15 @@ void InProcessBrowserTest::CreatedBrowserMainParts( +@@ -527,8 +535,15 @@ void InProcessBrowserTest::CreatedBrowserMainParts( void InProcessBrowserTest::SelectFirstBrowser() { const BrowserList* browser_list = BrowserList::GetInstance(); @@ -9750,6 +10941,37 @@ KkuH-o3HTopq;ALn literal 0 HcmV?d00001 +diff --git a/chrome/test/data/adblock/tab-restore.html b/chrome/test/data/adblock/tab-restore.html +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/tab-restore.html +@@ -0,0 +1,26 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/chrome/test/data/extensions/api_test/adblock_private/empty.js b/chrome/test/data/extensions/api_test/adblock_private/empty.js new file mode 100644 diff --git a/chrome/test/data/extensions/api_test/adblock_private/main.html b/chrome/test/data/extensions/api_test/adblock_private/main.html @@ -9835,7 +11057,7 @@ diff --git a/chrome/test/data/extensions/api_test/adblock_private/test.js b/chro new file mode 100644 --- /dev/null +++ b/chrome/test/data/extensions/api_test/adblock_private/test.js -@@ -0,0 +1,508 @@ +@@ -0,0 +1,469 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -9903,45 +11125,6 @@ new file mode 100644 +} + +var availableTests = [ -+ function updateConsent() { -+ chrome.adblockPrivate.getUpdateConsent(function(consent) { -+ if (consent == 'WIFI_ONLY') { -+ chrome.adblockPrivate.setUpdateConsent('ALWAYS'); -+ chrome.adblockPrivate.getUpdateConsent(function(consent) { -+ if (consent != 'ALWAYS') { -+ chrome.test.fail('Failed: Consent not set'); -+ return; -+ } -+ chrome.adblockPrivate.setUpdateConsent('WIFI_ONLY'); -+ chrome.adblockPrivate.getUpdateConsent(function(consent) { -+ if (consent == 'WIFI_ONLY') { -+ chrome.test.succeed(); -+ } else { -+ chrome.test.fail('Failed: Consent not set'); -+ } -+ }); -+ }); -+ } else if (consent == 'ALWAYS') { -+ chrome.adblockPrivate.setUpdateConsent('WIFI_ONLY'); -+ chrome.adblockPrivate.getUpdateConsent(function(consent) { -+ if (consent != 'WIFI_ONLY') { -+ chrome.test.fail('Failed: Consent not set'); -+ return; -+ } -+ chrome.adblockPrivate.setUpdateConsent('ALWAYS'); -+ chrome.adblockPrivate.getUpdateConsent(function(consent) { -+ if (consent == 'ALWAYS') { -+ chrome.test.succeed(); -+ } else { -+ chrome.test.fail('Failed: Consent not set'); -+ } -+ }); -+ }); -+ } else { -+ chrome.test.fail('Failed: Unknown consent'); -+ } -+ }); -+ }, + function setEnabled_isEnabled() { + chrome.adblockPrivate.setEnabled(true); + chrome.adblockPrivate.isEnabled(function(enabled) { @@ -10358,10 +11541,11 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn import("//build/config/chrome_build.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -104,6 +108,11 @@ test("components_unittests") { +@@ -101,6 +105,12 @@ test("components_unittests") { + deps = [ "//base", - "//components/access_code_cast/common:unit_tests", ++ "//components/adblock/content/browser:unit_tests", + "//components/adblock/core/classifier:unit_tests", + "//components/adblock/core/common:unit_tests", + "//components/adblock/core/converter:unit_tests", @@ -10370,7 +11554,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/apdu:unit_tests", "//components/assist_ranker:unit_tests", "//components/autofill/core/browser:unit_tests", -@@ -317,6 +326,7 @@ test("components_unittests") { +@@ -314,6 +324,7 @@ test("components_unittests") { } else { #!is_ios deps += [ "//components/accuracy_tips:unit_tests", @@ -10378,7 +11562,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser:unit_tests", "//components/autofill/content/renderer:unit_tests", "//components/autofill/core/common/mojom:unit_tests", -@@ -1019,6 +1029,8 @@ if (!is_ios) { +@@ -994,6 +1005,8 @@ if (!is_ios) { deps = [ "//base", @@ -10391,16 +11575,44 @@ diff --git a/components/adblock/CHANGELOG.md b/components/adblock/CHANGELOG.md new file mode 100644 --- /dev/null +++ b/components/adblock/CHANGELOG.md -@@ -0,0 +1,489 @@ +@@ -0,0 +1,517 @@ +# Release Notes + ++## eyeo Chromium SDK 108.0 ++* Updated to Chromium 108.0.5359.28 ++* Allow Telemetry TopicProviders to collect payload asynchronously (DPD-1507) ++* Download filter list on any connection type (DPD-1418) ++ - Filter lists are now being compressed server-side and are very small (~400 kB) ++ - It's no longer advantageous to download them only on Wi-Fi ++ - APIs related to Allowed Connection Type are deprecated and non-functional ++ - Those APIs will be removed in version 111 ++* Ensure Telemetry pings trigger correctly after the computer wakes up from sleep (DPD-1559) ++* Ensure filter list download requests attach Accept-Language header (DPD-1405) ++* Fixed a use-after-free when element hiding was applied on a closed tab (DPD-1600) ++* Fixed element hiding to apply within iframes served from Web Bundles (DPD-1510) ++* Improved page load times significantly by optimizing filter matching regular expressions (DPD-586) ++ ++## eyeo Chromium SDK 107.0 ++* Updated to Chromium 107.0.5304.54 ++* Packaging a non-obfuscated version of snippets library for debug builds (DPD-1448) ++* Add GetCustomFilters call to web extensions API (DPD-849) ++* Add eyeo_intercept_debug_url build flag to hide internal testing feature (DPD-1407, DPD-1532) ++* Allow all requests from web extensions (DPD-1505) ++* Fixed a rare crash when tab is closed before websocket classification completes (DPD-1548) ++* Fixed a rare crash when network service disconnects during resource classification (DPD-1496) ++* Fixed Telemetry pings being sent too rarely when PC is suspended (DPD-1559) ++* Removed deprecated abp telemetry gn gen arguments ++ ++Known issues: ++* Disabled AdblockMojoInterfaceImpl related unit tests. Will be removed in future releases ++ +## eyeo Chromium SDK 106.0 +* Updated to Chromium 106.0.5249.38 +* Updated snippets library from v0.5.1 to v0.5.5 -+* Fixed faulty handling URL redirection by creating AdblockURLLoaderFactory as the last proxy (DPD-1492). Backported into 105.1. -+* Fixed SiteKey validation for redirected urls (DPD-1452). ++* Fixed faulty handling URL redirection by creating AdblockURLLoaderFactory as the last proxy (DPD-1492). Backported into 105.1 ++* Fixed SiteKey validation for redirected urls (DPD-1452) +* Improved logging related to subscription update (DPD-1359) -+* Simplified subscription first run update (DPD-1389). ++* Simplified subscription first run update (DPD-1389) + +Known issues: +* The following browser tests are failing and will be fixed in future releases: @@ -11801,7 +13013,7 @@ diff --git a/components/adblock/android/adblock_strings.grd b/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/android/adblock_strings.grd -@@ -0,0 +1,237 @@ +@@ -0,0 +1,231 @@ + + + @@ -12006,12 +13218,6 @@ new file mode 100644 + + Allowlist + -+ -+ Update only on Wi-Fi -+ -+ -+ Saves data by downloading ad blocking filters only when you're on Wi-Fi. This may affect the ad blocking quality. -+ + + More blocking options + @@ -12741,7 +13947,7 @@ diff --git a/components/adblock/android/java/res/xml/adblock_preferences.xml b/c new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/res/xml/adblock_preferences.xml -@@ -0,0 +1,63 @@ +@@ -0,0 +1,56 @@ + + -+ -+ + + + @@ -17624,8 +18809,6 @@ new file mode 100644 +ادعم المواقع الإلكترونية المفضلة لديك بإضافتها إلى هذه القائمة. وفي حالة إضافتها، قد تشاهد إعلانات عليها +أدخل عنوان الموقع (URL) +القائمة المسموح بها -+تحميل تحديثات القوائم التلقائية عبر شبكة الواي فاي (Wi-Fi) فقت -+يوفر ذلك في إستهلاك باقة الانترنت من خلال عدم تحميل و تحديث قوائم حجب الإعلانات إلا عندما تكون متصلاً بشبكة الواي فاي (Wi-Fi). وقد يؤثر ذلك على جودة حجب الإعلانات. + diff --git a/components/adblock/android/translations/adblock_strings_as.xtb b/components/adblock/android/translations/adblock_strings_as.xtb new file mode 100644 @@ -17775,7 +18958,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_de.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_de.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -17790,14 +18973,12 @@ new file mode 100644 +Unterstütze deine liebsten Webseiten und füge sie zu dieser Liste hinzu, um bei deren Besuch Werbung zuzulassen. +URL hinzufügen +Allowlist -+Aktualisieren nur über Wi-Fi -+Spart Datenvolumen, da Werbeblockierungsfilter nur aktualisiert werden wenn du mit einem Wi-Fi Netzwerk verbunden bist. Wenn du diese Option aktivierst und dadurch Updates seltener durchgeführt werden, kann dies die Qualität der Werbeblockierung beeinflussen. + diff --git a/components/adblock/android/translations/adblock_strings_el.xtb b/components/adblock/android/translations/adblock_strings_el.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_el.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -17812,14 +18993,12 @@ new file mode 100644 +Υποστηρίξτε τους αγαπημένους σας ιστοτόπους και προσθέστε τους σε αυτή τη λίστα. Μπορεί να δείτε διαφημίσεις στους ιστοτόπους αυτούς. +Εισάγετε διεύθυνση URL +Αποδοχή λίστας -+Ενημέρωση μόνο μέσω σύνδεσης με Wifi -+Αποθηκεύει δεδομένα με τη λήψη φίλτρων αποκλεισμού διαφημίσεων μόνο όταν υπάρχει σύνδεση σε δίκτυο Wifi. Αυτό μπορεί να επηρεάσει την ποιότητα του αποκλεισμού διαφημίσεων. + diff --git a/components/adblock/android/translations/adblock_strings_en-GB.xtb b/components/adblock/android/translations/adblock_strings_en-GB.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_en-GB.xtb -@@ -0,0 +1,16 @@ +@@ -0,0 +1,14 @@ + + + @@ -17833,14 +19012,12 @@ new file mode 100644 +Support your favorite websites by adding them to this list. You might see ads on them. +Enter URL +Allowlist -+Update on Wi-Fi only -+Saves data by downloading ad-blocking filters only when you're connected to Wi-Fi. When toggled on, this setting may affect the quality of ad blocking. + diff --git a/components/adblock/android/translations/adblock_strings_es-419.xtb b/components/adblock/android/translations/adblock_strings_es-419.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_es-419.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -17855,14 +19032,12 @@ new file mode 100644 +Ayuda a tus sitios favoritos añadiéndolos a esta lista. Al hacerlo, puede que veas anuncios en ellos. +Introducir URL +Lista de elementos permitidos -+Actualizar solo con Wi-Fi -+Ahorra datos descargando los filtros de bloqueo de anuncios solo cuando estás conectado a una red Wi-Fi. Esto puede afectar a la calidad del bloqueo de anuncios. + diff --git a/components/adblock/android/translations/adblock_strings_es.xtb b/components/adblock/android/translations/adblock_strings_es.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_es.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -17877,8 +19052,6 @@ new file mode 100644 +Ayuda a tus sitios favoritos añadiéndolos a esta lista. Al hacerlo, puede que veas anuncios en ellos. +Introducir URL +Lista de elementos permitidos -+Actualizar solo con Wi-Fi -+Ahorra datos descargando los filtros de bloqueo de anuncios solo cuando estás conectado a una red Wi-Fi. Esto puede afectar a la calidad del bloqueo de anuncios. + diff --git a/components/adblock/android/translations/adblock_strings_et.xtb b/components/adblock/android/translations/adblock_strings_et.xtb new file mode 100644 @@ -17969,7 +19142,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_fr-CA.xtb b new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fr-CA.xtb -@@ -0,0 +1,16 @@ +@@ -0,0 +1,14 @@ + + + @@ -17983,14 +19156,12 @@ new file mode 100644 +Soutenez vos sites Internet préférés en les ajoutant à cette liste. Vous y verrez peut-être des publicités. +Entrez l'URL +Liste des sites acceptables -+Mettre à jour uniquement en Wifi -+Enregistre les données en téléchargeant les filtres de blocage des publicités uniquement lorsque vous êtes en Wifi. Cela peut affecter la qualité du blocage des publicités. + diff --git a/components/adblock/android/translations/adblock_strings_fr.xtb b/components/adblock/android/translations/adblock_strings_fr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fr.xtb -@@ -0,0 +1,16 @@ +@@ -0,0 +1,14 @@ + + + @@ -18004,8 +19175,6 @@ new file mode 100644 +Soutenez vos sites Internet préférés en les ajoutant à cette liste. Vous y verrez peut-être des publicités. +Entrez l'URL +Liste des sites acceptables -+Mettre à jour uniquement en Wifi -+Enregistre les données en téléchargeant les filtres de blocage des publicités uniquement lorsque vous êtes en Wifi. Cela peut affecter la qualité du blocage des publicités. + diff --git a/components/adblock/android/translations/adblock_strings_gl.xtb b/components/adblock/android/translations/adblock_strings_gl.xtb new file mode 100644 @@ -18067,7 +19236,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_hu.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_hu.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18082,8 +19251,6 @@ new file mode 100644 +Támogassa kedvenc weboldalait e listához történő hozzáadással. Előfordulhat, hogy hirdetéseket is láthat rajtuk. +URL-cím megadása +Engedélyezőlista -+Frissítés csak Wifi kapcsolaton keresztül -+Forgalmi díjat takarít meg azáltal, hogy a reklámblokkoló szűrőket csak Wi-Fi kapcsolaton keresztül tölti le. Amikor be van kapcsolva, akkor befolyásolhatja a reklámblokkolás hatékonyságát. + diff --git a/components/adblock/android/translations/adblock_strings_hy.xtb b/components/adblock/android/translations/adblock_strings_hy.xtb new file mode 100644 @@ -18126,7 +19293,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_it.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_it.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18141,8 +19308,6 @@ new file mode 100644 +Sostieni i tuoi siti web preferiti aggiungendoli a questo elenco. È possibile che su questi siti web appaiano delle pubblicità. +Inserisci URL +Elenco consentiti -+Aggiorna solo su Wi-Fi -+Salva i dati scaricando i filtri di ad blocking solo quando si è connessi a una rete Wi-Fi. Questo potrebbe incidere sulla qualità dell'ad blocking. + diff --git a/components/adblock/android/translations/adblock_strings_iw.xtb b/components/adblock/android/translations/adblock_strings_iw.xtb new file mode 100644 @@ -18167,7 +19332,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_ja.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ja.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18182,8 +19347,6 @@ new file mode 100644 +このリストにお気に入りのウェブサイトを追加して支援しましょう。広告が表示される場合があります。 +URL を入力してください +許可リスト -+すべての Wi-Fi ネットワーク -+Wi-Fi 接続時のみ広告ブロックフィルタをダウンロードすることで、データを節約します。広告ブロックの品質に影響がある場合があります。 + diff --git a/components/adblock/android/translations/adblock_strings_ka.xtb b/components/adblock/android/translations/adblock_strings_ka.xtb new file mode 100644 @@ -18245,7 +19408,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_ko.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ko.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18260,8 +19423,6 @@ new file mode 100644 +이 목록에 즐겨 찾는 웹 사이트를 추가하여 지원할 수 있습니다. 광고가 표시될 수 있습니다. +URL 입력 +허용 목록 -+Wifi 환경에서만 업데이트 -+Wifi 환경에서만 광고 차단 필터를 다운로드하고 데이터를 저장합니다. 이 설정은 광고 차단 품질에 영향을 미칠 수 있습니다. + diff --git a/components/adblock/android/translations/adblock_strings_ky.xtb b/components/adblock/android/translations/adblock_strings_ky.xtb new file mode 100644 @@ -18416,7 +19577,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_nl.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_nl.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18431,8 +19592,6 @@ new file mode 100644 +Ondersteun uw favoriete websites door ze aan deze lijst toe te voegen. Er kunnen advertenties op worden weergegeven. +Voer URL in +Toelatingslijst -+Update alleen via wifi -+Bespaart data door de filters voor de adblocker alleen te downloaden wanneer je verbonden bent met wifi. Wanneer dit aan staat, kan deze setting de kwaliteit van het advertentie blokkeren beïnvloeden. + diff --git a/components/adblock/android/translations/adblock_strings_no.xtb b/components/adblock/android/translations/adblock_strings_no.xtb new file mode 100644 @@ -18465,7 +19624,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_pl.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pl.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18480,14 +19639,12 @@ new file mode 100644 +Wspieraj swoje ulubione witryny, dodając je do tej listy. Reklamy będą na nich wyświetlane. +Wprowadź URL +Lista dozwolonych -+Aktualizacja tylko przez Wi-Fi. -+Oszczędza dane, pobierając filtry blokujące reklamy tylko wtedy, gdy korzystasz z Wi-Fi. Może to wpłynąć na jakość blokowania reklam. + diff --git a/components/adblock/android/translations/adblock_strings_pt-BR.xtb b/components/adblock/android/translations/adblock_strings_pt-BR.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pt-BR.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18502,8 +19659,6 @@ new file mode 100644 +Para apoiar os seus sites favoritos, adicione-os a essa lista. Você poderá ver anúncios neles. +Inserir URL +Lista de permissões -+Atualizar apenas em Wi-Fi -+Salva dados com o download de filtros de bloqueio de anúncios apenas quando você está em uma rede Wi-Fi. Isso pode afetar a qualidade do bloqueio de anúncios. + diff --git a/components/adblock/android/translations/adblock_strings_pt-PT.xtb b/components/adblock/android/translations/adblock_strings_pt-PT.xtb new file mode 100644 @@ -18548,7 +19703,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_ru.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ru.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18563,8 +19718,6 @@ new file mode 100644 +Поддержите ваши любимые сайты, добавив их в этот список. На этих сайтах вы можете увидеть рекламу. +Ввести URL-адрес +Разрешенный список -+Загрузка обновлений только через Wi-Fi -+Помогает экономить трафик, загружая фильтры блокировки рекламы только при подключении к Wi-Fi. Может повлиять на качество блокировки рекламы. + diff --git a/components/adblock/android/translations/adblock_strings_si.xtb b/components/adblock/android/translations/adblock_strings_si.xtb new file mode 100644 @@ -18729,7 +19882,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_tr.xtb b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_tr.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18744,8 +19897,6 @@ new file mode 100644 +En sevdiğiniz web sitelerini bu listeye ekleyerek destekleyin. Bu sitelerde reklamlar görebilirsiniz. +URL gir +İzin listesi -+Sadece Wifi ile güncelle -+Reklam engelleme filtrelerini sadece Wifi'ye bağlı olduğunuzda indirerek veri tasarrufu sağlar. Bu ayar açıkken reklam engelleme kalitesini etkileyebilir. + diff --git a/components/adblock/android/translations/adblock_strings_uk.xtb b/components/adblock/android/translations/adblock_strings_uk.xtb new file mode 100644 @@ -18817,7 +19968,7 @@ diff --git a/components/adblock/android/translations/adblock_strings_zh-CN.xtb b new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_zh-CN.xtb -@@ -0,0 +1,17 @@ +@@ -0,0 +1,15 @@ + + + @@ -18832,8 +19983,6 @@ new file mode 100644 +支持您最喜爱的网站,将其添加到此列表。您可能在这些网站上看到广告。 +输入 URL +允许列表 -+仅在 Wifi 环境下更新 -+仅在连接 Wifi 时下载广告拦截过滤列表,从而节省流量。这可能会影响广告拦截效果。 + diff --git a/components/adblock/android/translations/adblock_strings_zh-HK.xtb b/components/adblock/android/translations/adblock_strings_zh-HK.xtb new file mode 100644 @@ -19712,7 +20861,7 @@ diff --git a/components/adblock/content/browser/element_hider_impl.cc b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/element_hider_impl.cc -@@ -0,0 +1,334 @@ +@@ -0,0 +1,329 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -19890,11 +21039,6 @@ new file mode 100644 + SiteKey sitekey) { + TRACE_EVENT1("eyeo", "PrepareElemhideEmulationData", "url", gurl.spec()); + -+ // user domains allowing is implemented as adding exception filter for -+ // domain so we can just use filter engine to do the work. -+ if (!gurl.SchemeIsHTTPOrHTTPS()) -+ return {}; -+ + bool doc_allowlisted = !!subscription_collection->FindBySpecialFilter( + SpecialFilterType::Document, gurl, frame_hierarchy, sitekey); + bool ehe_allowlisted = @@ -20281,7 +21425,7 @@ diff --git a/components/adblock/content/browser/resource_classification_runner.h new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/resource_classification_runner.h -@@ -0,0 +1,102 @@ +@@ -0,0 +1,103 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -20314,6 +21458,7 @@ new file mode 100644 +#include "url/gurl.h" + +namespace content { ++struct GlobalRenderFrameHostId; +class RenderFrameHost; +} +namespace adblock { @@ -20364,7 +21509,7 @@ new file mode 100644 + virtual void CheckRequestFilterMatchForWebSocket( + std::unique_ptr subscription_collection, + const GURL& request_url, -+ content::RenderFrameHost* render_frame_host, ++ content::GlobalRenderFrameHostId render_frame_host_id, + mojom::AdblockInterface::CheckFilterMatchCallback callback) = 0; + virtual void CheckResponseFilterMatch( + std::unique_ptr subscription_collection, @@ -20510,13 +21655,13 @@ new file mode 100644 +void ResourceClassificationRunnerImpl::CheckRequestFilterMatchForWebSocket( + std::unique_ptr subscription_collection, + const GURL& request_url, -+ content::RenderFrameHost* render_frame_host, ++ content::GlobalRenderFrameHostId render_frame_host_id, + mojom::AdblockInterface::CheckFilterMatchCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(request_url.SchemeIsWSOrWSS()); + CheckRequestFilterMatchImpl( + std::move(subscription_collection), request_url, ContentType::Websocket, -+ render_frame_host->GetGlobalId(), std::move(callback)); ++ render_frame_host_id, std::move(callback)); +} + +absl::optional ResourceClassificationRunnerImpl::CheckDocumentAllowlisted( @@ -20871,7 +22016,7 @@ new file mode 100644 + void CheckRequestFilterMatchForWebSocket( + std::unique_ptr subscription_collection, + const GURL& request_url, -+ content::RenderFrameHost* render_frame_host, ++ content::GlobalRenderFrameHostId render_frame_host_id, + mojom::AdblockInterface::CheckFilterMatchCallback callback) final; + void CheckResponseFilterMatch( + std::unique_ptr subscription_collection, @@ -21637,7 +22782,7 @@ diff --git a/components/adblock/content/browser/test/element_hider_impl_test.cc new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/element_hider_impl_test.cc -@@ -0,0 +1,206 @@ +@@ -0,0 +1,248 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -21671,8 +22816,7 @@ new file mode 100644 + +namespace adblock { + -+class AdblockElementHiderFlatbufferTest -+ : public content::RenderViewHostTestHarness { ++class AdblockElementHiderImplTest : public content::RenderViewHostTestHarness { + protected: + MockSubscriptionService sub_service_; + @@ -21681,7 +22825,7 @@ new file mode 100644 + const SiteKey kSitekey{""}; +}; + -+TEST_F(AdblockElementHiderFlatbufferTest, BatchesSelectors) { ++TEST_F(AdblockElementHiderImplTest, BatchesSelectors) { + std::vector selectors(1u << 11u, "selector"); + std::vector emu_selectors; + @@ -21727,7 +22871,51 @@ new file mode 100644 + })); +} + -+TEST_F(AdblockElementHiderFlatbufferTest, UninitializedSubscriptionService) { ++TEST_F(AdblockElementHiderImplTest, AppliesElementHidingOnSiteWithWeirdUrl) { ++ std::vector selectors{"a", "b"}; ++ std::vector emu_selectors; ++ ++ // When loading web bundles, URLs of iframes may not look like ordinary ++ // addresses: ++ const GURL kNonStandardFrameUrl{ ++ "uuid-in-package:429fcc4e-0696-4bad-b099-ee9175f023ad"}; ++ ++ // SubscriptionService starts initialized. ++ EXPECT_CALL(sub_service_, IsInitialized()).WillOnce(testing::Return(true)); ++ ++ ElementHiderImpl element_hide(&sub_service_); ++ EXPECT_CALL(sub_service_, GetCurrentSnapshot()) ++ .WillOnce([this, selectors, emu_selectors, &kNonStandardFrameUrl]() { ++ auto collection = std::make_unique(); ++ EXPECT_CALL(*collection, ++ FindBySpecialFilter(SpecialFilterType::Document, ++ kNonStandardFrameUrl, kFrameHierarchy, ++ kSitekey)) ++ .WillOnce(testing::Return(absl::nullopt)); ++ EXPECT_CALL(*collection, ++ FindBySpecialFilter(SpecialFilterType::Elemhide, ++ kNonStandardFrameUrl, kFrameHierarchy, ++ kSitekey)) ++ .WillOnce(testing::Return(absl::nullopt)); ++ EXPECT_CALL(*collection, ++ GetElementHideSelectors(kNonStandardFrameUrl, ++ kFrameHierarchy, kSitekey)) ++ .WillOnce(testing::Return(selectors)); ++ EXPECT_CALL(*collection, ++ GetElementHideEmulationSelectors(kNonStandardFrameUrl)) ++ .WillOnce(testing::Return(emu_selectors)); ++ return collection; ++ }); ++ ++ element_hide.ApplyElementHidingEmulationOnPage( ++ kNonStandardFrameUrl, kFrameHierarchy, main_rfh(), kSitekey, ++ base::BindLambdaForTesting( ++ [&](const ElementHider::ElemhideInjectionData& data) { ++ EXPECT_EQ(data.stylesheet, "a, b {display: none !important;}\n"); ++ })); ++} ++ ++TEST_F(AdblockElementHiderImplTest, UninitializedSubscriptionService) { + std::vector selectors{"selector"}; + std::vector emu_selectors; + @@ -21788,8 +22976,7 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockElementHiderFlatbufferTest, -+ GeneratesSnippetsWhenAllowListedPage) { ++TEST_F(AdblockElementHiderImplTest, GeneratesSnippetsWhenAllowListedPage) { + EXPECT_CALL(sub_service_, IsInitialized()).WillOnce(testing::Return(true)); + + EXPECT_CALL(sub_service_, GetCurrentSnapshot()).WillOnce([this]() { @@ -21819,7 +23006,7 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + -+TEST_F(AdblockElementHiderFlatbufferTest, GeneratesNothingDocumentAllowListed) { ++TEST_F(AdblockElementHiderImplTest, GeneratesNothingDocumentAllowListed) { + EXPECT_CALL(sub_service_, IsInitialized()).WillOnce(testing::Return(true)); + + EXPECT_CALL(sub_service_, GetCurrentSnapshot()).WillOnce([this]() { @@ -22264,7 +23451,7 @@ diff --git a/components/adblock/content/browser/test/mock_resource_classificatio new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/mock_resource_classification_runner.cc -@@ -0,0 +1,26 @@ +@@ -0,0 +1,36 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -22283,19 +23470,29 @@ new file mode 100644 + */ + +#include "components/adblock/content/browser/test/mock_resource_classification_runner.h" ++#include "gtest/gtest.h" + +namespace adblock { + +MockResourceClassificationRunner::MockResourceClassificationRunner() = default; -+ +MockResourceClassificationRunner::~MockResourceClassificationRunner() = default; + ++void MockResourceClassificationRunner::AddObserver( ++ ResourceClassificationRunner::Observer* observer) { ++ observers_.AddObserver(observer); ++} ++ ++void MockResourceClassificationRunner::RemoveObserver( ++ ResourceClassificationRunner::Observer* observer) { ++ observers_.RemoveObserver(observer); ++} ++ +} // namespace adblock diff --git a/components/adblock/content/browser/test/mock_resource_classification_runner.h b/components/adblock/content/browser/test/mock_resource_classification_runner.h new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/mock_resource_classification_runner.h -@@ -0,0 +1,91 @@ +@@ -0,0 +1,86 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -22317,6 +23514,7 @@ new file mode 100644 +#define COMPONENTS_ADBLOCK_CONTENT_BROWSER_TEST_MOCK_RESOURCE_CLASSIFICATION_RUNNER_ + +#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "content/public/browser/render_frame_host.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "url/gurl.h" + @@ -22327,14 +23525,8 @@ new file mode 100644 + MockResourceClassificationRunner(); + ~MockResourceClassificationRunner() override; + -+ MOCK_METHOD(void, -+ AddObserver, -+ (ResourceClassificationRunner::Observer*), -+ (override)); -+ MOCK_METHOD(void, -+ RemoveObserver, -+ (ResourceClassificationRunner::Observer*), -+ (override)); ++ void AddObserver(ResourceClassificationRunner::Observer*) override; ++ void RemoveObserver(ResourceClassificationRunner::Observer*) override; + + MOCK_METHOD((mojom::FilterMatchResult), + ShouldBlockPopup, @@ -22358,7 +23550,7 @@ new file mode 100644 + CheckRequestFilterMatchForWebSocket, + (std::unique_ptr, + const GURL&, -+ content::RenderFrameHost*, ++ content::GlobalRenderFrameHostId, + mojom::AdblockInterface::CheckFilterMatchCallback), + (override)); + @@ -22602,7 +23794,7 @@ new file mode 100644 + mojom::FilterMatchResult::kBlockRule); + + classification_runner_->CheckRequestFilterMatchForWebSocket( -+ std::move(mock_subscription_collection_), kWebsocketUrl, main_rfh(), ++ std::move(mock_subscription_collection_), kWebsocketUrl, main_rfh()->GetGlobalId(), + callback.Get()); + task_environment()->RunUntilIdle(); +} @@ -22864,7 +24056,7 @@ new file mode 100644 + CheckRequestFilterMatchForWebSocket, + (std::unique_ptr, + const GURL& request_url, -+ content::RenderFrameHost* render_frame_host, ++ content::GlobalRenderFrameHostId render_frame_host, + mojom::AdblockInterface::CheckFilterMatchCallback callback), + (override)); + @@ -24047,7 +25239,7 @@ diff --git a/components/adblock/core/BUILD.gn b/components/adblock/core/BUILD.gn new file mode 100644 --- /dev/null +++ b/components/adblock/core/BUILD.gn -@@ -0,0 +1,186 @@ +@@ -0,0 +1,183 @@ +# +# This file is part of eyeo Chromium SDK, +# Copyright (C) 2006-present eyeo GmbH @@ -24206,14 +25398,11 @@ new file mode 100644 + sources = [ + "test/activeping_telemetry_topic_provider_test.cc", + "test/adblock_controller_impl_test.cc", ++ "test/adblock_telemetry_service_unittest.cc", + "test/bundled_subscription_test.cc", + "test/sitekey_storage_impl_test.cc", + ] + -+ if (eyeo_telemetry_client_id != "") { -+ sources += [ "test/adblock_telemetry_service_unittest.cc" ] -+ } -+ + deps = [ + ":core", + ":test_support", @@ -24238,7 +25427,7 @@ diff --git a/components/adblock/core/activeping_telemetry_topic_provider.cc b/co new file mode 100644 --- /dev/null +++ b/components/adblock/core/activeping_telemetry_topic_provider.cc -@@ -0,0 +1,206 @@ +@@ -0,0 +1,239 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24267,9 +25456,35 @@ new file mode 100644 + +namespace adblock { +namespace { -+constexpr base::TimeDelta kInitialDelay = base::Seconds(10); -+constexpr base::TimeDelta kNormalPingInterval = base::Hours(8); -+constexpr base::TimeDelta kRetryPingInterval = base::Hours(1); ++int g_http_port_for_testing = 0; ++std::optional g_time_delta_for_testing; ++ ++GURL GetUrl() { ++ GURL url(EYEO_TELEMETRY_SERVER_URL); ++ if (!g_http_port_for_testing) { ++ return url; ++ } ++ DCHECK_EQ(url::kHttpsScheme, url.scheme()); ++ GURL::Replacements replacements; ++ replacements.SetSchemeStr(url::kHttpScheme); ++ const std::string port_str = base::NumberToString(g_http_port_for_testing); ++ replacements.SetPortStr(port_str); ++ return url.ReplaceComponents(replacements); ++} ++ ++base::TimeDelta GetNormalPingInterval() { ++ static base::TimeDelta kNormalPingInterval = ++ g_time_delta_for_testing ? g_time_delta_for_testing.value() ++ : base::Hours(8); ++ return kNormalPingInterval; ++} ++ ++base::TimeDelta GetRetryPingInterval() { ++ static base::TimeDelta kRetryPingInterval = ++ g_time_delta_for_testing ? g_time_delta_for_testing.value() ++ : base::Hours(1); ++ return kRetryPingInterval; ++} + +void AppendStringIfPresent(PrefService* pref_service, + const std::string& pref_name, @@ -24303,7 +25518,7 @@ new file mode 100644 + "not provided. Users will not be counted correctly by eyeo. Please " + "set an ID via \"eyeo_telemetry_client_id\" gn argument."; +#endif -+ return GURL(EYEO_TELEMETRY_SERVER_URL); ++ return GetUrl(); +} + +// static @@ -24329,7 +25544,7 @@ new file mode 100644 + return auth_token_; +} + -+std::string ActivepingTelemetryTopicProvider::GetPayload() const { ++void ActivepingTelemetryTopicProvider::GetPayload(PayloadCallback callback) { + base::Value payload(base::Value::Type::DICTIONARY); + payload.SetStringKey("addon_name", "eyeo-chromium-sdk"); + payload.SetStringKey("addon_version", "2.0.0"); @@ -24359,30 +25574,25 @@ new file mode 100644 + // payload and root objects here, they should be really shallow. + CHECK(base::JSONWriter::Write(root, &serialized)); + VLOG(1) << "[eyeo] Telemetry ping payload: " << serialized; -+ return serialized; ++ std::move(callback).Run(std::move(serialized)); +} + -+base::TimeDelta ActivepingTelemetryTopicProvider::GetTimeToNextRequest() const { ++base::Time ActivepingTelemetryTopicProvider::GetTimeOfNextRequest() const { + const auto next_ping_time = + pref_service_->GetTime(prefs::kTelemetryNextPingTime); + // Next ping time may be unset if this is a first run. Next request should -+ // happen soon, but not immediately to avoid interfering with first run load. ++ // happen ASAP. + if (next_ping_time.is_null()) -+ return kInitialDelay; ++ return base::Time::Now(); + -+ auto delay_to_next_ping = next_ping_time - base::Time::Now(); -+ // Next ping can effectively be in the past. This happens ex. if the browser -+ // was shut down for longer than the normal ping interval and is normal. -+ // In that case, make the next ping soon, but not immediately, as to not -+ // interfere with startup network traffic. -+ return std::max(kInitialDelay, delay_to_next_ping); ++ return next_ping_time; +} + +void ActivepingTelemetryTopicProvider::ParseResponse( + std::unique_ptr response_content) { + if (!response_content) { + VLOG(1) << "[eyeo] Telemetry ping failed, no response from server"; -+ ScheduleNextPing(kRetryPingInterval); ++ ScheduleNextPing(GetRetryPingInterval()); + return; + } + @@ -24391,7 +25601,7 @@ new file mode 100644 + if (!parsed || !parsed->is_dict()) { + VLOG(1) + << "[eyeo] Telemetry ping failed, response could not be parsed as JSON"; -+ ScheduleNextPing(kRetryPingInterval); ++ ScheduleNextPing(GetRetryPingInterval()); + return; + } + @@ -24399,7 +25609,7 @@ new file mode 100644 + if (error_message) { + VLOG(1) << "[eyeo] Telemetry ping failed, error message: " + << *error_message; -+ ScheduleNextPing(kRetryPingInterval); ++ ScheduleNextPing(GetRetryPingInterval()); + return; + } + @@ -24411,12 +25621,12 @@ new file mode 100644 + if (!ping_response_time) { + VLOG(1) << "[eyeo] Telemetry ping failed, response did not contain a last " + "ping / token value"; -+ ScheduleNextPing(kRetryPingInterval); ++ ScheduleNextPing(GetRetryPingInterval()); + return; + } + + VLOG(1) << "[eyeo] Telemetry ping succeeded"; -+ ScheduleNextPing(kNormalPingInterval); ++ ScheduleNextPing(GetNormalPingInterval()); + UpdatePrefs(*ping_response_time); +} + @@ -24444,12 +25654,24 @@ new file mode 100644 + tag.AsLowercaseString()); +} + ++// static ++void ActivepingTelemetryTopicProvider::SetHttpPortForTesting( ++ int http_port_for_testing) { ++ g_http_port_for_testing = http_port_for_testing; ++} ++ ++// static ++void ActivepingTelemetryTopicProvider::SetIntervalsForTesting( ++ base::TimeDelta time_delta) { ++ g_time_delta_for_testing = time_delta; ++} ++ +} // namespace adblock diff --git a/components/adblock/core/activeping_telemetry_topic_provider.h b/components/adblock/core/activeping_telemetry_topic_provider.h new file mode 100644 --- /dev/null +++ b/components/adblock/core/activeping_telemetry_topic_provider.h -@@ -0,0 +1,72 @@ +@@ -0,0 +1,80 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24500,15 +25722,23 @@ new file mode 100644 + + GURL GetEndpointURL() const final; + std::string GetAuthToken() const final; -+ std::string GetPayload() const final; ++ void GetPayload(PayloadCallback callback) final; + + // Normally 8 hours since last ping, 1 hour in case of retries. -+ base::TimeDelta GetTimeToNextRequest() const final; ++ base::Time GetTimeOfNextRequest() const final; + + // Attempts to parse "token" (an opaque server description of last ping time) + // from |response_content|. + void ParseResponse(std::unique_ptr response_content) final; + ++ // Sets the port used by the embedded http server required for browser tests. ++ // Must be called before the first call to DefaultBaseUrl(). ++ static void SetHttpPortForTesting(int http_port_for_testing); ++ ++ // Sets the internal timing for sending pings required for browser tests. ++ // Must be called before AdblockTelemetryService::Start(). ++ static void SetIntervalsForTesting(base::TimeDelta time_delta); ++ + private: + void ScheduleNextPing(base::TimeDelta delay); + void UpdatePrefs(const std::string& ping_response_time); @@ -24526,7 +25756,7 @@ diff --git a/components/adblock/core/adblock_controller.h b/components/adblock/c new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_controller.h -@@ -0,0 +1,80 @@ +@@ -0,0 +1,81 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24594,6 +25824,7 @@ new file mode 100644 + virtual void RemoveAllowedDomain(const std::string& domain) = 0; + virtual std::vector GetAllowedDomains() const = 0; + ++ // Deprecated, AllowedConnectionType will be removed in 109 + virtual void SetUpdateConsent(AllowedConnectionType consent) = 0; + virtual AllowedConnectionType GetUpdateConsent() const = 0; + @@ -24611,7 +25842,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_controller_impl.cc -@@ -0,0 +1,466 @@ +@@ -0,0 +1,461 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24714,8 +25945,6 @@ new file mode 100644 + on_change_cb); + enable_aa_.Init(adblock::prefs::kEnableAcceptableAds, pref_service, + on_change_cb); -+ allowed_connection_type_.Init(adblock::prefs::kAdblockAllowedConnectionType, -+ pref_service, on_change_cb); + + allowed_domains_.Init(adblock::prefs::kAdblockAllowedDomains, pref_service, + on_change_cb); @@ -24842,15 +26071,12 @@ new file mode 100644 +} + +void AdblockControllerImpl::SetUpdateConsent(AllowedConnectionType value) { -+ allowed_connection_type_.SetValue(AllowedConnectionTypeToString(value)); ++ // Deprecated, entire function will be removed in 109 +} + +AllowedConnectionType AdblockControllerImpl::GetUpdateConsent() const { -+ auto allowed_connection_type = -+ AllowedConnectionTypeFromString(allowed_connection_type_.GetValue()); -+ if (!allowed_connection_type) -+ return AllowedConnectionType::kWiFi; // it's default -+ return *allowed_connection_type; ++ // Deprecated, entire function will be removed in 109 ++ return AllowedConnectionType::kAny; +} + +void AdblockControllerImpl::AddCustomFilter(const std::string& filter) { @@ -25082,7 +26308,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.h b/components/adbl new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_controller_impl.h -@@ -0,0 +1,121 @@ +@@ -0,0 +1,120 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -25190,7 +26416,6 @@ new file mode 100644 + PrefService* prefs_{nullptr}; + BooleanPrefMember enable_adblock_; + BooleanPrefMember enable_aa_; -+ StringPrefMember allowed_connection_type_; + StringListPrefMember allowed_domains_; + StringListPrefMember custom_filters_; + StringListPrefMember subscriptions_; @@ -25275,7 +26500,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.cc b/components/a new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_telemetry_service.cc -@@ -0,0 +1,216 @@ +@@ -0,0 +1,236 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -25298,6 +26523,8 @@ new file mode 100644 +#include + +#include "base/bind.h" ++#include "base/functional/bind.h" ++#include "base/memory/weak_ptr.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" +#include "base/strings/stringprintf.h" @@ -25360,39 +26587,44 @@ new file mode 100644 + : topic_provider_(std::move(topic_provider)), + url_loader_factory_(url_loader_factory) {} + -+ void Start() { ++ bool IsRequestDue() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ if (IsRunning()) -+ return; -+ ScheduleNextRequest(); ++ const auto due_time = topic_provider_->GetTimeOfNextRequest(); ++ if (due_time > base::Time::Now()) { ++ VLOG(1) << "[eyeo] Telemetry request for " ++ << topic_provider_->GetEndpointURL() ++ << " not due yet, should run at " << due_time; ++ return false; ++ } ++ if (IsRequestInFlight()) { ++ VLOG(1) << "[eyeo] Telemetry request for " ++ << topic_provider_->GetEndpointURL() << " already in-flight"; ++ return false; ++ } ++ VLOG(1) << "[eyeo] Telemetry request for " ++ << topic_provider_->GetEndpointURL() << " is due"; ++ return true; ++ } ++ ++ void StartRequest() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ VLOG(1) << "[eyeo] Telemetry request for " ++ << topic_provider_->GetEndpointURL() << " starting now"; ++ topic_provider_->GetPayload(base::BindOnce(&Conversation::MakeRequest, ++ weak_ptr_factory_.GetWeakPtr())); + } + + void Stop() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ if (!IsRunning()) -+ return; -+ timer_.Stop(); + url_loader_.reset(); + } + -+ bool IsRunning() const { return timer_.IsRunning() || url_loader_; } -+ + private: -+ void ScheduleNextRequest() { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ // A TopicProvider could return a negative time to next request. Clamp it -+ // to "zero". -+ const auto delay = -+ std::max(topic_provider_->GetTimeToNextRequest(), base::TimeDelta()); -+ VLOG(1) << "[eyeo] Next Telemetry request for " -+ << topic_provider_->GetEndpointURL() << " scheduled for " -+ << base::Time::Now() + delay; -+ timer_.Start( -+ FROM_HERE, delay, -+ base::BindOnce(&Conversation::MakeRequest, base::Unretained(this))); ++ bool IsRequestInFlight() { ++ return url_loader_ != nullptr || weak_ptr_factory_.HasWeakPtrs(); + } + -+ void MakeRequest() { ++ void MakeRequest(std::string payload) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + auto request = std::make_unique(); + request->url = topic_provider_->GetEndpointURL(); @@ -25420,7 +26652,6 @@ new file mode 100644 + url_loader_ = network::SimpleURLLoader::Create(std::move(request), + kTrafficAnnotation); + -+ const auto payload = topic_provider_->GetPayload(); + VLOG(2) << "[eyeo] Payload: " << payload; + url_loader_->AttachStringForUpload(payload, kDataType); + // The Telemetry server responds with a JSON that contains a description of @@ -25439,7 +26670,6 @@ new file mode 100644 + void OnResponseArrived(std::unique_ptr server_response) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + topic_provider_->ParseResponse(std::move(server_response)); -+ ScheduleNextRequest(); + url_loader_.reset(); + } + @@ -25447,13 +26677,17 @@ new file mode 100644 + std::unique_ptr topic_provider_; + scoped_refptr url_loader_factory_; + std::unique_ptr url_loader_; -+ base::OneShotTimer timer_; ++ base::WeakPtrFactory weak_ptr_factory_{this}; +}; + +AdblockTelemetryService::AdblockTelemetryService( + PrefService* prefs, -+ scoped_refptr url_loader_factory) -+ : url_loader_factory_(url_loader_factory) { ++ scoped_refptr url_loader_factory, ++ base::TimeDelta initial_delay, ++ base::TimeDelta check_interval) ++ : url_loader_factory_(url_loader_factory), ++ initial_delay_(initial_delay), ++ check_interval_(check_interval) { + enable_adblock_.Init( + prefs::kEnableAdblock, prefs, + base::BindRepeating(&AdblockTelemetryService::OnEnableAdblockChanged, @@ -25477,16 +26711,27 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (enable_adblock_.GetValue()) { + VLOG(1) << "[eyeo] Starting periodic Telemetry requests"; -+ for (auto& conversation : ongoing_conversations_) -+ conversation->Start(); ++ timer_.Start(FROM_HERE, initial_delay_, ++ base::BindRepeating(&AdblockTelemetryService::RunPeriodicCheck, ++ base::Unretained(this))); + } else if (!enable_adblock_.GetValue()) { + VLOG(1) << "[eyeo] Stopping periodic Telemetry requests"; -+ for (auto& conversation : ongoing_conversations_) -+ conversation->Stop(); ++ Shutdown(); + } +} + ++void AdblockTelemetryService::RunPeriodicCheck() { ++ for (auto& conversation : ongoing_conversations_) { ++ if (conversation->IsRequestDue()) ++ conversation->StartRequest(); ++ } ++ timer_.Start(FROM_HERE, check_interval_, ++ base::BindRepeating(&AdblockTelemetryService::RunPeriodicCheck, ++ base::Unretained(this))); ++} ++ +void AdblockTelemetryService::Shutdown() { ++ timer_.Stop(); + for (auto& conversation : ongoing_conversations_) + conversation->Stop(); +} @@ -25496,7 +26741,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.h b/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_telemetry_service.h -@@ -0,0 +1,96 @@ +@@ -0,0 +1,103 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -25546,17 +26791,18 @@ new file mode 100644 + // be "counting users" or "reporting filter list hits" for example. + class TopicProvider { + public: ++ using PayloadCallback = base::OnceCallback; + virtual ~TopicProvider() = default; + // Endpoint URL on the Telemetry server onto which requests should be sent. + virtual GURL GetEndpointURL() const = 0; + // Authorization bearer token for the endpoint defined by GetEndpointURL(). + virtual std::string GetAuthToken() const = 0; + // Data uploaded with the request, should be valid for the schema -+ // present on the server. -+ virtual std::string GetPayload() const = 0; -+ // Returns the desired delay until AdblockTelemetryService makes the next -+ // network request. -+ virtual base::TimeDelta GetTimeToNextRequest() const = 0; ++ // present on the server. Async to allow querying asynchronous data sources. ++ virtual void GetPayload(PayloadCallback callback) = 0; ++ // Returns the desired time when AdblockTelemetryService should make the ++ // next network request. ++ virtual base::Time GetTimeOfNextRequest() const = 0; + // Parses the response returned by the Telemetry server. |response_content| + // may be null. Implementation is free to implement a "retry" in case of + // response errors via GetTimeToNextRequest(). @@ -25565,7 +26811,9 @@ new file mode 100644 + }; + AdblockTelemetryService( + PrefService* prefs, -+ scoped_refptr url_loader_factory); ++ scoped_refptr url_loader_factory, ++ base::TimeDelta initial_delay, ++ base::TimeDelta check_interval); + ~AdblockTelemetryService() override; + + // Add all required topic providers before calling Start(). @@ -25581,13 +26829,17 @@ new file mode 100644 + + private: + void OnEnableAdblockChanged(); ++ void RunPeriodicCheck(); + + SEQUENCE_CHECKER(sequence_checker_); + scoped_refptr url_loader_factory_; ++ base::TimeDelta initial_delay_; ++ base::TimeDelta check_interval_; + + class Conversation; + std::vector> ongoing_conversations_; + BooleanPrefMember enable_adblock_; ++ base::OneShotTimer timer_; +}; + +} // namespace adblock @@ -26884,7 +28136,7 @@ new file mode 100644 + "sitekey.h", + ] + -+ public_deps= [ ++ public_deps = [ + ":base", + "//base", + "//components/adblock/core:schema", @@ -26947,7 +28199,7 @@ diff --git a/components/adblock/core/common/adblock_constants.cc b/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_constants.cc -@@ -0,0 +1,170 @@ +@@ -0,0 +1,152 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27061,24 +28313,6 @@ new file mode 100644 + return kCurrentSchemaVersion; +} + -+const GURL& AcceptableAdsUrl() { -+ static GURL kAcceptableAds( -+ "https://easylist-downloads.adblockplus.org/exceptionrules.txt"); -+ return kAcceptableAds; -+} -+ -+const GURL& AntiCVUrl() { -+ static GURL kAntiCV( -+ "https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt"); -+ return kAntiCV; -+} -+ -+const GURL& DefaultSubscriptionUrl() { -+ static GURL kEasylistUrl( -+ "https://easylist-downloads.adblockplus.org/easylist.txt"); -+ return kEasylistUrl; -+} -+ +const GURL& TestPagesSubscriptionUrl() { + static GURL kTestPagesUrl( + "https://abptestpages.org/en/abp-testcase-subscription.txt"); @@ -27122,7 +28356,7 @@ diff --git a/components/adblock/core/common/adblock_constants.h b/components/adb new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_constants.h -@@ -0,0 +1,43 @@ +@@ -0,0 +1,40 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27156,9 +28390,6 @@ new file mode 100644 +extern const char kAllowlistEverythingFilter[]; + +const std::string& CurrentSchemaVersion(); -+const GURL& AcceptableAdsUrl(); -+const GURL& AntiCVUrl(); -+const GURL& DefaultSubscriptionUrl(); +const GURL& TestPagesSubscriptionUrl(); +const GURL& CustomFiltersUrl(); +base::StringPiece RewriteUrl(flat::AbpResource type); @@ -27170,7 +28401,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_prefs.cc -@@ -0,0 +1,127 @@ +@@ -0,0 +1,120 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27191,7 +28422,6 @@ new file mode 100644 +#include "components/adblock/core/common/adblock_prefs.h" + +#include "base/logging.h" -+#include "components/adblock/core/common/allowed_connection_type.h" +#include "components/prefs/pref_registry_simple.h" + +namespace adblock::prefs { @@ -27214,9 +28444,6 @@ new file mode 100644 +// List of custom (user defined) subscriptions +const char kAdblockCustomSubscriptions[] = "adblock.custom_subscriptions"; + -+// Connection type allowed to be used for updates -+const char kAdblockAllowedConnectionType[] = "adblock.allowed_connection_type"; -+ +// Whether more options item is enabled in the UI +const char kAdblockMoreOptionsEnabled[] = "adblock.more_options"; + @@ -27285,9 +28512,6 @@ new file mode 100644 + registry->RegisterListPref(kAdblockCustomFilters, {}); + registry->RegisterListPref(kAdblockSubscriptions, {}); + registry->RegisterListPref(kAdblockCustomSubscriptions, {}); -+ registry->RegisterStringPref( -+ kAdblockAllowedConnectionType, -+ AllowedConnectionTypeToString(AllowedConnectionType::kDefault)); + registry->RegisterBooleanPref(kInstallFirstStartSubscriptions, true); + registry->RegisterDictionaryPref(kSubscriptionSignatures); + registry->RegisterStringPref(kLastUsedSchemaVersion, ""); @@ -27302,7 +28526,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.h b/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_prefs.h -@@ -0,0 +1,47 @@ +@@ -0,0 +1,46 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27334,7 +28558,6 @@ new file mode 100644 +extern const char kAdblockSubscriptions[]; +extern const char kAdblockCustomSubscriptions[]; +extern const char kAdblockMoreOptionsEnabled[]; -+extern const char kAdblockAllowedConnectionType[]; +extern const char kInstallFirstStartSubscriptions[]; +extern const char kSubscriptionSignatures[]; +extern const char kLastUsedSchemaVersion[]; @@ -27354,7 +28577,7 @@ diff --git a/components/adblock/core/common/adblock_utils.cc b/components/adbloc new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_utils.cc -@@ -0,0 +1,167 @@ +@@ -0,0 +1,168 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27492,6 +28715,7 @@ new file mode 100644 + options.set_case_sensitive(case_sensitive); + options.set_never_capture(true); + options.set_log_errors(false); ++ options.set_encoding(re2::RE2::Options::EncodingLatin1); + const re2::RE2 re2_pattern(pattern.data(), options); + if (re2_pattern.ok()) + return re2::RE2::PartialMatch(input.data(), re2_pattern); @@ -27662,7 +28886,7 @@ diff --git a/components/adblock/core/common/allowed_connection_type.h b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/allowed_connection_type.h -@@ -0,0 +1,48 @@ +@@ -0,0 +1,46 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -27692,9 +28916,7 @@ new file mode 100644 + +namespace adblock { + -+// Specifies the connection type for which subscription updates are allowed. -+// Subscription files can be quite big so it makes sense to limit them on -+// metered data connection. ++// Deprecated, AllowedConnectionType will be removed in 109 +enum class AllowedConnectionType { + // Allow updates only when on WiFi: + kWiFi, @@ -30339,7 +31561,7 @@ diff --git a/components/adblock/core/converter/test/converter_test.cc b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/test/converter_test.cc -@@ -0,0 +1,2126 @@ +@@ -0,0 +1,2127 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30548,8 +31770,7 @@ new file mode 100644 + + EXPECT_TRUE(VerifyRequestBlocked( + subscription, -+ GURL( -+ "https://abptestpages.org/testfiles/image/static/image.png"), ++ GURL("https://abptestpages.org/testfiles/image/static/image.png"), + "domain.com", ContentType::Image, ContentTypeIsSpecific)); +} + @@ -30595,8 +31816,7 @@ new file mode 100644 + + EXPECT_TRUE(VerifyRequestBlocked( + subscription, -+ GURL( -+ "https://abptestpages.org/testfiles/image/static/image.png"), ++ GURL("https://abptestpages.org/testfiles/image/static/image.png"), + "domain.com", ContentType::Image, ContentTypeIsSpecific)); +} + @@ -30621,8 +31841,7 @@ new file mode 100644 + + EXPECT_TRUE(VerifyRequestBlocked( + subscription, -+ GURL( -+ "https://abptestpages.org/testfiles/image/static/image.png"), ++ GURL("https://abptestpages.org/testfiles/image/static/image.png"), + "domain.com", ContentType::Image, ContentTypeIsSpecific)); +} + @@ -30678,8 +31897,7 @@ new file mode 100644 + )"); + + EXPECT_TRUE(VerifyRequestBlocked( -+ subscription, -+ GURL("https://abptestpages.org/testfiles/script/script.js"), ++ subscription, GURL("https://abptestpages.org/testfiles/script/script.js"), + "domain.com", ContentType::Script, ContentTypeIsSpecific)); +} + @@ -30689,8 +31907,7 @@ new file mode 100644 + )"); + EXPECT_TRUE(VerifyRequestBlocked( + subscription, -+ GURL( -+ "https://abptestpages.org/testfiles/subdocument/index.html"), ++ GURL("https://abptestpages.org/testfiles/subdocument/index.html"), + "domain.com", ContentType::Subdocument, ContentTypeIsSpecific)); +} + @@ -30699,8 +31916,8 @@ new file mode 100644 + $webrtc,domain=abptestpages.org + )"); + EXPECT_TRUE(VerifyRequestBlocked( -+ subscription, GURL("https://abptestpages.org/webrtc"), -+ "abptestpages.org", ContentType::Webrtc, ContentTypeIsSpecific)); ++ subscription, GURL("https://abptestpages.org/webrtc"), "abptestpages.org", ++ ContentType::Webrtc, ContentTypeIsSpecific)); +} + +TEST_F(AdblockConverterTest, UrlFilterBlocking_Wildcard) { @@ -30720,8 +31937,7 @@ new file mode 100644 + )"); + EXPECT_TRUE(VerifyRequestBlocked( + subscription, -+ GURL( -+ "https://abptestpages.org/testfiles/blocking/full-path.png"), ++ GURL("https://abptestpages.org/testfiles/blocking/full-path.png"), + "domain.com", ContentType::Image, ContentTypeIsGeneric)); +} + @@ -30749,8 +31965,8 @@ new file mode 100644 + ||a.*.b.com + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("http://a.c.b.com"), "https://abptestpages.org", -+ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ GURL("http://a.c.b.com"), "https://abptestpages.org", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DomainWildcardMiddle2) { @@ -30758,8 +31974,8 @@ new file mode 100644 + ||a*.b.com + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("http://a.c.b.com"), "https://abptestpages.org", -+ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ GURL("http://a.c.b.com"), "https://abptestpages.org", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DomainWildcardMiddle3) { @@ -30767,8 +31983,8 @@ new file mode 100644 + ||a.*b.com + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("http://a.b.com"), "https://abptestpages.org", -+ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ GURL("http://a.b.com"), "https://abptestpages.org", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_WildcardDomainAndPath1) { @@ -30797,8 +32013,8 @@ new file mode 100644 + ||*a.b.com + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("http://a.b.com"), "https://abptestpages.org", -+ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ GURL("http://a.b.com"), "https://abptestpages.org", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); + EXPECT_TRUE(subscription->HasUrlFilter( + GURL("http://domena.b.com/path"), "https://abptestpages.org", + ContentType::Image, SiteKey(), FilterCategory::Blocking)); @@ -30809,8 +32025,8 @@ new file mode 100644 + ||*a.b.com^ + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("http://a.b.com"), "https://abptestpages.org", -+ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ GURL("http://a.b.com"), "https://abptestpages.org", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); + EXPECT_TRUE(subscription->HasUrlFilter( + GURL("http://domena.b.com/path"), "https://abptestpages.org", + ContentType::Image, SiteKey(), FilterCategory::Blocking)); @@ -30855,10 +32071,9 @@ new file mode 100644 + auto subscription = ConvertAndLoadRules(R"( + ://ads. + )"); -+ EXPECT_TRUE(subscription->HasUrlFilter(GURL("https://ads.example.com/u?dp=1"), -+ "https://abptestpages.org", -+ ContentType::Script, SiteKey(), -+ FilterCategory::Blocking)); ++ EXPECT_TRUE(subscription->HasUrlFilter( ++ GURL("https://ads.example.com/u?dp=1"), "https://abptestpages.org", ++ ContentType::Script, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_PathWildcards) { @@ -30886,19 +32101,17 @@ new file mode 100644 + ||art-domain.com^ + )"); + EXPECT_FALSE(subscription->HasUrlFilter( -+ GURL("https://sub.part-domain.com/path"), -+ "https://abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://sub.part-domain.com/path"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DoubleSlash) { + auto subscription = ConvertAndLoadRules(R"( + ||example.com*/script. + )"); -+ EXPECT_TRUE(subscription->HasUrlFilter(GURL("https://example.com//script.js"), -+ "https://abptestpages.org", -+ ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ EXPECT_TRUE(subscription->HasUrlFilter( ++ GURL("https://example.com//script.js"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_Regex) { @@ -30945,9 +32158,8 @@ new file mode 100644 + |https://domain.com/path/file.gif + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("https://domain.com/path/file.gif"), -+ "https://abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://domain.com/path/file.gif"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DomainMatchDotWildcard) { @@ -30955,9 +32167,8 @@ new file mode 100644 + ||*. + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("https://example.com/path/file.gif"), -+ "https://abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://example.com/path/file.gif"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DomainWithPort) { @@ -30965,9 +32176,8 @@ new file mode 100644 + ||example.com:8888/js + )"); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("https://wwww.example.com:8888/js"), -+ "https://abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://wwww.example.com:8888/js"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_IPWithPortAndWildcard) { @@ -30978,9 +32188,8 @@ new file mode 100644 + GURL("https://1.2.3.4:8060/path"), "https://abptestpages.org", + ContentType::Image, SiteKey(), FilterCategory::Blocking)); + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("https://1.2.3.4:8060/path/file.js"), -+ "https://abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://1.2.3.4:8060/path/file.js"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); +} + +TEST_F(AdblockConverterTest, UrlFilter_DomainWithPortAndCarret) { @@ -30990,10 +32199,9 @@ new file mode 100644 + EXPECT_TRUE(subscription->HasUrlFilter( + GURL("https://example.com:8862"), "https://abptestpages.org", + ContentType::Image, SiteKey(), FilterCategory::Blocking)); -+ EXPECT_TRUE(subscription->HasUrlFilter(GURL("https://example.com:8862/path"), -+ "https://abptestpages.org", -+ ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ EXPECT_TRUE(subscription->HasUrlFilter( ++ GURL("https://example.com:8862/path"), "https://abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); + EXPECT_FALSE(subscription->HasUrlFilter( + GURL("https://example.com:886"), "https://abptestpages.org", + ContentType::Image, SiteKey(), FilterCategory::Blocking)); @@ -31073,8 +32281,8 @@ new file mode 100644 + $other,domain=abptestpages.org + )"); + EXPECT_TRUE(VerifyRequestBlocked( -+ subscription, GURL("https://whatever.com/script.js"), -+ "abptestpages.org", ContentType::Other, ContentTypeIsSpecific)); ++ subscription, GURL("https://whatever.com/script.js"), "abptestpages.org", ++ ContentType::Other, ContentTypeIsSpecific)); +} + +TEST_F(AdblockConverterTest, UrlFilterBlocking_Ping) { @@ -31082,8 +32290,8 @@ new file mode 100644 + abptestpages.org/*^$ping + )"); + EXPECT_TRUE(VerifyRequestBlocked( -+ subscription, GURL("https://abptestpages.org/ping"), -+ "abptestpages.org", ContentType::Ping, ContentTypeIsSpecific)); ++ subscription, GURL("https://abptestpages.org/ping"), "abptestpages.org", ++ ContentType::Ping, ContentTypeIsSpecific)); +} + +TEST_F(AdblockConverterTest, UrlFilterBlocking_XmlHttpRequest) { @@ -31094,8 +32302,7 @@ new file mode 100644 + subscription, + GURL("https://abptestpages.org/testfiles/xmlhttprequest/" + "request.xml"), -+ "abptestpages.org", ContentType::Xmlhttprequest, -+ ContentTypeIsSpecific)); ++ "abptestpages.org", ContentType::Xmlhttprequest, ContentTypeIsSpecific)); +} + +TEST_F(AdblockConverterTest, UrlFilterBlocking_ThirdParty) { @@ -31151,9 +32358,8 @@ new file mode 100644 + )"); + + EXPECT_TRUE(subscription->HasUrlFilter( -+ GURL("https://abptestpages.org/abb-logo.png"), -+ "abptestpages.org", ContentType::Image, SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://abptestpages.org/abb-logo.png"), "abptestpages.org", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); + // Does not apply on different domain. + EXPECT_FALSE(subscription->HasUrlFilter( + GURL("https://abptestpages.org/abb-logo.png"), "domain.com", @@ -31167,14 +32373,12 @@ new file mode 100644 + + EXPECT_TRUE(subscription->HasPopupFilter( + GURL("https://abptestpages.org/testfiles/popup/link.html"), -+ GURL("https://abptestpages.org"), SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://abptestpages.org"), SiteKey(), FilterCategory::Blocking)); + + // No allowing filter: + EXPECT_FALSE(subscription->HasPopupFilter( + GURL("https://abptestpages.org/testfiles/popup/link.html"), -+ GURL("https://abptestpages.org"), SiteKey(), -+ FilterCategory::Allowing)); ++ GURL("https://abptestpages.org"), SiteKey(), FilterCategory::Allowing)); + + // Does not match if the content type is different. + EXPECT_FALSE(subscription->HasUrlFilter( @@ -31190,8 +32394,7 @@ new file mode 100644 + + EXPECT_TRUE(subscription->HasPopupFilter( + GURL("https://abptestpages.org/testfiles/popup/link.html"), -+ GURL("https://abptestpages.org"), SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://abptestpages.org"), SiteKey(), FilterCategory::Blocking)); + + EXPECT_TRUE(subscription->HasUrlFilter( + GURL("https://abptestpages.org/testfiles/popup/link.html"), @@ -31298,15 +32501,13 @@ new file mode 100644 + EXPECT_TRUE(subscription->HasPopupFilter( + GURL("https://abptestpages.org/testfiles/popup_exception/" + "link.html"), -+ GURL("https://abptestpages.org"), SiteKey(), -+ FilterCategory::Blocking)); ++ GURL("https://abptestpages.org"), SiteKey(), FilterCategory::Blocking)); + + // But also finds the allowing filter: + EXPECT_TRUE(subscription->HasPopupFilter( + GURL("https://abptestpages.org/testfiles/popup_exception/" + "link.html"), -+ GURL("https://abptestpages.org"), SiteKey(), -+ FilterCategory::Allowing)); ++ GURL("https://abptestpages.org"), SiteKey(), FilterCategory::Allowing)); +} + +TEST_F(AdblockConverterTest, UrlFilterException_XmlHttpRequest) { @@ -31316,11 +32517,11 @@ new file mode 100644 + @@abptestpages.org/testfiles/xmlhttprequest_exception/$xmlhttprequest + )"); + -+ EXPECT_TRUE(VerifyRequestAllowed( -+ subscription, -+ GURL("https://abptestpages.org/testfiles/" -+ "xmlhttprequest_exception/link.html"), -+ "https://abptestpages.org", ContentType::Xmlhttprequest)); ++ EXPECT_TRUE(VerifyRequestAllowed(subscription, ++ GURL("https://abptestpages.org/testfiles/" ++ "xmlhttprequest_exception/link.html"), ++ "https://abptestpages.org", ++ ContentType::Xmlhttprequest)); +} + +TEST_F(AdblockConverterTest, UrlFilterException_Ping) { @@ -31395,9 +32596,9 @@ new file mode 100644 + @@$websocket,domain=abptestpages.org + )"); + -+ EXPECT_TRUE(VerifyRequestAllowed( -+ subscription, GURL("https://whatever.org/socket.wss"), -+ "abptestpages.org", ContentType::Websocket)); ++ EXPECT_TRUE(VerifyRequestAllowed(subscription, ++ GURL("https://whatever.org/socket.wss"), ++ "abptestpages.org", ContentType::Websocket)); +} + +TEST_F(AdblockConverterTest, UrlRegexAnythingEndingOnline) { @@ -31833,6 +33034,28 @@ new file mode 100644 + EXPECT_EQ(FilterSelectors(selectors).size(), 0u); +} + ++TEST_F(AdblockConverterTest, Elementhide_non_ascii_characters) { ++ // Non-ASCII characters are allowed in selectors. They should be preserved. ++ auto subscriptions = ConvertAndLoadRules(R"( ++ test.com##.ad_bÖx ++ )"); ++ const auto selectors = ++ subscriptions->GetElemhideSelectors(GURL("https://test.com/"), false); ++ ++ EXPECT_EQ(FilterSelectors(selectors), std::set{".ad_bÖx"}); ++} ++ ++TEST_F(AdblockConverterTest, Elementhideemu_non_ascii_characters) { ++ // Non-ASCII characters are allowed in selectors. They should be preserved. ++ auto subscriptions = ConvertAndLoadRules(R"( ++ test.com#?#.ad_bÖx ++ )"); ++ const auto selectors = ++ subscriptions->GetElemhideEmulationSelectors(GURL("https://test.com/")); ++ ++ EXPECT_EQ(FilterSelectors(selectors), std::set{".ad_bÖx"}); ++} ++ +TEST_F(AdblockConverterTest, SnippetEmpty) { + auto index = ConvertAndLoadRulesToIndex(R"( + test.com#$# @@ -34817,7 +36040,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc -@@ -0,0 +1,238 @@ +@@ -0,0 +1,222 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34843,7 +36066,6 @@ new file mode 100644 +#include "base/task/thread_pool.h" +#include "base/trace_event/trace_event.h" +#include "components/adblock/core/common/adblock_prefs.h" -+#include "components/adblock/core/common/allowed_connection_type.h" +#include "net/http/http_request_headers.h" +#include "services/network/public/cpp/resource_request.h" +#include "services/network/public/mojom/url_response_head.mojom.h" @@ -34886,17 +36108,12 @@ new file mode 100644 + retry_timer_(std::make_unique()), + number_of_redirects_(0) { + net::NetworkChangeNotifier::AddNetworkChangeObserver(this); -+ allowed_connection_type_.Init( -+ prefs::kAdblockAllowedConnectionType, prefs, -+ base::BindRepeating( -+ &OngoingSubscriptionRequestImpl::CheckAllowedConnectionType, -+ // Unretained is safe because destruction of |this| will -+ // remove |allowed_connection_type_| and abort the callback. -+ base::Unretained(this))); + adblocking_enabled_.Init( + prefs::kEnableAdblock, prefs, + base::BindRepeating( -+ &OngoingSubscriptionRequestImpl::CheckAllowedConnectionType, ++ &OngoingSubscriptionRequestImpl::CheckConnectionAllowed, ++ // Unretained is safe because destruction of |this| will ++ // remove |allowed_connection_type_| and abort the callback. + base::Unretained(this))); +} + @@ -34955,7 +36172,7 @@ new file mode 100644 +void OngoingSubscriptionRequestImpl::OnNetworkChanged( + net::NetworkChangeNotifier::ConnectionType) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ CheckAllowedConnectionType(); ++ CheckConnectionAllowed(); +} + +bool OngoingSubscriptionRequestImpl::IsStarted() const { @@ -34963,23 +36180,13 @@ new file mode 100644 +} + +bool OngoingSubscriptionRequestImpl::IsConnectionAllowed() const { -+ if (!adblocking_enabled_.GetValue()) -+ return false; -+ if (method_ == Method::HEAD) -+ return true; -+ const auto allowed_connection_type = -+ AllowedConnectionTypeFromString(allowed_connection_type_.GetValue()); -+ if (!allowed_connection_type) -+ return true; -+ if (*allowed_connection_type == AllowedConnectionType::kWiFi) { -+ return net::NetworkChangeNotifier::GetConnectionType() == -+ net::NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI; -+ } -+ DCHECK_EQ(*allowed_connection_type, AllowedConnectionType::kAny); -+ return true; ++ // Connection is allowed if (and only if) adblocking is enabled. When the ++ // user switches off adblocking, we want to stop all adblocking-related ++ // download. ++ return adblocking_enabled_.GetValue(); +} + -+void OngoingSubscriptionRequestImpl::CheckAllowedConnectionType() { ++void OngoingSubscriptionRequestImpl::CheckConnectionAllowed() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (IsConnectionAllowed() && !IsStarted()) { + StartInternal(); @@ -35060,7 +36267,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.h -@@ -0,0 +1,81 @@ +@@ -0,0 +1,80 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -35119,7 +36326,7 @@ new file mode 100644 + private: + bool IsStarted() const; + bool IsConnectionAllowed() const; -+ void CheckAllowedConnectionType(); ++ void CheckConnectionAllowed(); + void StartInternal(); + void StopInternal(); + void OnDownloadFinished(base::FilePath downloaded_file); @@ -35127,7 +36334,6 @@ new file mode 100644 + const char* MethodToString() const; + + SEQUENCE_CHECKER(sequence_checker_); -+ StringPrefMember allowed_connection_type_; + BooleanPrefMember adblocking_enabled_; + std::unique_ptr backoff_entry_; + scoped_refptr url_loader_factory_; @@ -36107,7 +37313,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_config.cc -@@ -0,0 +1,300 @@ +@@ -0,0 +1,314 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -36130,8 +37336,38 @@ new file mode 100644 +#include "components/adblock/core/common/adblock_constants.h" +#include "components/grit/components_resources.h" + ++namespace { ++int g_port_for_testing = 0; ++ ++std::string GetHost() { ++ GURL url("https://easylist-downloads.adblockplus.org"); ++ if (!g_port_for_testing) { ++ return url.spec(); ++ } ++ GURL::Replacements replacements; ++ const std::string port_str = base::NumberToString(g_port_for_testing); ++ replacements.SetPortStr(port_str); ++ return url.ReplaceComponents(replacements).spec(); ++} ++} // namespace ++ +namespace adblock { + ++const GURL& AcceptableAdsUrl() { ++ static GURL kAcceptableAds(GetHost() + "exceptionrules.txt"); ++ return kAcceptableAds; ++} ++ ++const GURL& AntiCVUrl() { ++ static GURL kAntiCV(GetHost() + "abp-filters-anti-cv.txt"); ++ return kAntiCV; ++} ++ ++const GURL& DefaultSubscriptionUrl() { ++ static GURL kEasylistUrl(GetHost() + "easylist.txt"); ++ return kEasylistUrl; ++} ++ +KnownSubscriptionInfo::KnownSubscriptionInfo() = default; +KnownSubscriptionInfo::~KnownSubscriptionInfo() = default; +KnownSubscriptionInfo::KnownSubscriptionInfo(const KnownSubscriptionInfo&) = @@ -36168,28 +37404,25 @@ new file mode 100644 + // align the C++ representation, better to update it manually because it also + // contains visibility and first run behavior options. + static std::vector recommendations = { -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "abpindo+easylist.txt"), ++ {GURL(GetHost() + "abpindo+easylist.txt"), + "ABPindo+EasyList", + {"id", "ms"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/abpvn+easylist.txt"), ++ {GURL(GetHost() + "abpvn+easylist.txt"), + "ABPVN List+EasyList", + {"vi"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "bulgarian_list+easylist.txt"), ++ {GURL(GetHost() + "bulgarian_list+easylist.txt"), + "Bulgarian list+EasyList", + {"bg"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "dandelion_sprouts_nordic_filters+easylist.txt"), ++ {GURL(GetHost() + "dandelion_sprouts_nordic_filters+easylist.txt"), + "Dandelion Sprout's Nordic Filters+EasyList", + {"no", "nb", "nn", "da", "is", "fo", "kl"}, + SubscriptionUiVisibility::Visible, @@ -36201,119 +37434,103 @@ new file mode 100644 + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistchina+easylist.txt"), ++ {GURL(GetHost() + "easylistchina+easylist.txt"), + "EasyList China+EasyList", + {"zh"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistczechslovak+easylist.txt"), ++ {GURL(GetHost() + "easylistczechslovak+easylist.txt"), + "EasyList Czech and Slovak+EasyList", + {"cs", "sk"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistdutch+easylist.txt"), ++ {GURL(GetHost() + "easylistdutch+easylist.txt"), + "EasyList Dutch+EasyList", + {"nl"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistgermany+easylist.txt"), ++ {GURL(GetHost() + "easylistgermany+easylist.txt"), + "EasyList Germany+EasyList", + {"de"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "israellist+easylist.txt"), ++ {GURL(GetHost() + "israellist+easylist.txt"), + "EasyList Hebrew+EasyList", + {"he"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistitaly+easylist.txt"), ++ {GURL(GetHost() + "easylistitaly+easylist.txt"), + "EasyList Italy+EasyList", + {"it"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistlithuania+easylist.txt"), ++ {GURL(GetHost() + "easylistlithuania+easylist.txt"), + "EasyList Lithuania+EasyList", + {"lt"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistpolish+easylist.txt"), ++ {GURL(GetHost() + "easylistpolish+easylist.txt"), + "EasyList Polish+EasyList", + {"pl"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistportuguese+easylist.txt"), ++ {GURL(GetHost() + "easylistportuguese+easylist.txt"), + "EasyList Portuguese+EasyList", + {"pt"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "easylistspanish+easylist.txt"), ++ {GURL(GetHost() + "easylistspanish+easylist.txt"), + "EasyList Spanish+EasyList", + {"es"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "indianlist+easylist.txt"), ++ {GURL(GetHost() + "indianlist+easylist.txt"), + "IndianList+EasyList", + {"bn", "gu", "hi", "pa", "as", "mr", "ml", "te", "kn", "or", "ne", "si"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "koreanlist+easylist.txt"), ++ {GURL(GetHost() + "koreanlist+easylist.txt"), + "KoreanList+EasyList", + {"ko"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "latvianlist+easylist.txt"), ++ {GURL(GetHost() + "latvianlist+easylist.txt"), + "Latvian List+EasyList", + {"lv"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "liste_ar+liste_fr+easylist.txt"), ++ {GURL(GetHost() + "liste_ar+liste_fr+easylist.txt"), + "Liste AR+Liste FR+EasyList", + {"ar"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "liste_fr+easylist.txt"), ++ {GURL(GetHost() + "liste_fr+easylist.txt"), + "Liste FR+EasyList", + {"fr"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/rolist+easylist.txt"), ++ {GURL(GetHost() + "rolist+easylist.txt"), + "ROList+EasyList", + {"ro"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "ruadlist+easylist.txt"), ++ {GURL(GetHost() + "ruadlist+easylist.txt"), + "RuAdList+EasyList", + {"ru", "uk"}, + SubscriptionUiVisibility::Visible, @@ -36325,27 +37542,26 @@ new file mode 100644 + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::Subscribe, + SubscriptionPrivilegedFilterStatus::Allowed}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "i_dont_care_about_cookies.txt"), ++ {GURL(GetHost() + "i_dont_care_about_cookies.txt"), + "I don't care about cookies", + {}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::Ignore, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/" -+ "fanboy-notifications.txt"), ++ {GURL(GetHost() + "" ++ "fanboy-notifications.txt"), + "Fanboy's Notifications Blocking List", + {}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::Ignore, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/easyprivacy.txt"), ++ {GURL(GetHost() + "easyprivacy.txt"), + "EasyPrivacy", + {}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::Ignore, + SubscriptionPrivilegedFilterStatus::Forbidden}, -+ {GURL("https://easylist-downloads.adblockplus.org/fanboy-social.txt"), ++ {GURL(GetHost() + "fanboy-social.txt"), + "Fanboy's Social Blocking List", + {}, + SubscriptionUiVisibility::Visible, @@ -36407,12 +37623,16 @@ new file mode 100644 + return preloaded_subscriptions; +} + ++void SetFilterListServerPortForTesting(int port_for_testing) { ++ g_port_for_testing = port_for_testing; ++} ++ +} // namespace adblock diff --git a/components/adblock/core/subscription/subscription_config.h b/components/adblock/core/subscription/subscription_config.h new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_config.h -@@ -0,0 +1,113 @@ +@@ -0,0 +1,121 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -36440,6 +37660,14 @@ new file mode 100644 + +namespace adblock { + ++const GURL& AcceptableAdsUrl(); ++const GURL& AntiCVUrl(); ++const GURL& DefaultSubscriptionUrl(); ++ ++// Sets the port used by the embedded http server required for browser tests. ++// Must be called before the first call to GetKnownSubscriptions(). ++void SetFilterListServerPortForTesting(int port_for_testing); ++ +enum class SubscriptionUiVisibility { Visible, Invisible }; + +enum class SubscriptionFirstRunBehavior { @@ -37830,11 +39058,11 @@ new file mode 100644 +#include "base/ranges/algorithm.h" +#include "base/trace_event/common/trace_event_common.h" +#include "base/trace_event/trace_event.h" -+#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/common/adblock_utils.h" +#include "components/adblock/core/subscription/subscription.h" +#include "components/adblock/core/subscription/subscription_collection_impl.h" ++#include "components/adblock/core/subscription/subscription_config.h" + +namespace adblock { +namespace { @@ -38393,8 +39621,8 @@ new file mode 100644 +#include "base/logging.h" +#include "base/ranges/algorithm.h" +#include "base/time/time.h" -+#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/subscription/subscription_config.h" + +namespace adblock { + @@ -38968,7 +40196,7 @@ diff --git a/components/adblock/core/subscription/test/mock_installed_subscripti new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_installed_subscription.h -@@ -0,0 +1,99 @@ +@@ -0,0 +1,101 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -38994,9 +40222,11 @@ new file mode 100644 + +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockInstalledSubscription : public InstalledSubscription { ++class MockInstalledSubscription : public NiceMock { + public: + MockInstalledSubscription(); + MOCK_METHOD(GURL, GetSourceUrl, (), (override, const)); @@ -39113,7 +40343,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription.h b/com new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription.h -@@ -0,0 +1,49 @@ +@@ -0,0 +1,51 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -39139,9 +40369,11 @@ new file mode 100644 + +#include "components/adblock/core/subscription/subscription.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockSubscription : public Subscription { ++class MockSubscription : public NiceMock { + public: + MockSubscription(); + MOCK_METHOD(GURL, GetSourceUrl, (), (override, const)); @@ -39198,7 +40430,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription_collect new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription_collection.h -@@ -0,0 +1,94 @@ +@@ -0,0 +1,96 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -39224,9 +40456,11 @@ new file mode 100644 + +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockSubscriptionCollection : public SubscriptionCollection { ++class MockSubscriptionCollection : public NiceMock { + public: + MockSubscriptionCollection(); + ~MockSubscriptionCollection() override; @@ -39327,7 +40561,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription_downloa new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription_downloader.h -@@ -0,0 +1,46 @@ +@@ -0,0 +1,48 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -39352,9 +40586,11 @@ new file mode 100644 + +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockSubscriptionDownloader : public SubscriptionDownloader { ++class MockSubscriptionDownloader : public NiceMock { + public: + MockSubscriptionDownloader(); + ~MockSubscriptionDownloader() override; @@ -39410,7 +40646,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription_persist new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription_persistent_metadata.h -@@ -0,0 +1,74 @@ +@@ -0,0 +1,76 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -39435,10 +40671,12 @@ new file mode 100644 + +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + +class MockSubscriptionPersistentMetadata -+ : public SubscriptionPersistentMetadata { ++ : public NiceMock { + public: + MockSubscriptionPersistentMetadata(); + ~MockSubscriptionPersistentMetadata() override; @@ -39519,7 +40757,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription_service new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription_service.h -@@ -0,0 +1,62 @@ +@@ -0,0 +1,64 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -39544,9 +40782,11 @@ new file mode 100644 + +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockSubscriptionService : public SubscriptionService { ++class MockSubscriptionService : public NiceMock { + public: + MockSubscriptionService(); + ~MockSubscriptionService() override; @@ -39657,7 +40897,7 @@ diff --git a/components/adblock/core/subscription/test/ongoing_subscription_requ new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/ongoing_subscription_request_impl_test.cc -@@ -0,0 +1,487 @@ +@@ -0,0 +1,354 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -39685,7 +40925,6 @@ new file mode 100644 +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" +#include "components/adblock/core/common/adblock_prefs.h" -+#include "components/adblock/core/common/allowed_connection_type.h" +#include "components/prefs/testing_pref_service.h" +#include "components/sync_preferences/testing_pref_service_syncable.h" +#include "net/base/mock_network_change_notifier.h" @@ -39706,9 +40945,6 @@ new file mode 100644 + public: + void SetUp() final { + prefs::RegisterProfilePrefs(pref_service_.registry()); -+ pref_service_.SetString( -+ prefs::kAdblockAllowedConnectionType, -+ AllowedConnectionTypeToString(AllowedConnectionType::kAny)); + pref_service_.SetBoolean(prefs::kEnableAdblock, true); + ongoing_request_ = std::make_unique( + &pref_service_, &kRetryBackoffPolicy, test_shared_url_loader_factory_); @@ -39729,16 +40965,6 @@ new file mode 100644 + + void VerifyRequestSent() { VerifyRequestSent(GetParam()); } + -+ void DisallowDownloadsOnMobileData() { -+ // The network state changes to mobile data, while the policy changes to -+ // allow downloads only on WiFi. -+ pref_service_.SetString( -+ prefs::kAdblockAllowedConnectionType, -+ AllowedConnectionTypeToString(AllowedConnectionType::kWiFi)); -+ network_change_notifier_->SetConnectionTypeAndNotifyObservers( -+ net::NetworkChangeNotifier::CONNECTION_5G); -+ } -+ + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + std::unique_ptr @@ -39762,62 +40988,6 @@ new file mode 100644 + std::unique_ptr ongoing_request_; +}; + -+TEST_F(AdblockOngoingSubscriptionRequestImplTest, -+ RequestDeferredUntilWiFiAvailable) { -+ // When downloads are allowed only on WiFi, they will not start while on -+ // mobile data. -+ DisallowDownloadsOnMobileData(); -+ base::MockCallback -+ response_callback; -+ ongoing_request_->Start(kUrl, OngoingSubscriptionRequest::Method::GET, -+ response_callback.Get()); -+ -+ // Download did not start yet. -+ EXPECT_EQ(test_url_loader_factory_.NumPending(), 0); -+ -+ // Network state changes to WiFi: -+ network_change_notifier_->SetConnectionTypeAndNotifyObservers( -+ net::NetworkChangeNotifier::CONNECTION_WIFI); -+ -+ // Download started. -+ VerifyRequestSent(OngoingSubscriptionRequest::Method::GET); -+} -+ -+TEST_F(AdblockOngoingSubscriptionRequestImplTest, -+ RequestNotDeferredWhenHeadRequest) { -+ // When downloads are allowed only on WiFi, they will not start while on -+ // mobile data. -+ DisallowDownloadsOnMobileData(); -+ base::MockCallback -+ response_callback; -+ ongoing_request_->Start(kUrl, OngoingSubscriptionRequest::Method::HEAD, -+ response_callback.Get()); -+ // Download started. -+ VerifyRequestSent(OngoingSubscriptionRequest::Method::HEAD); -+} -+ -+TEST_F(AdblockOngoingSubscriptionRequestImplTest, -+ RequestDeferredUntilSettingChanged) { -+ // When downloads are allowed only on WiFi, they will not start while on -+ // mobile data. -+ DisallowDownloadsOnMobileData(); -+ base::MockCallback -+ response_callback; -+ ongoing_request_->Start(kUrl, OngoingSubscriptionRequest::Method::GET, -+ response_callback.Get()); -+ -+ // Download did not start yet. -+ EXPECT_EQ(test_url_loader_factory_.NumPending(), 0); -+ -+ // Setting changes to allow downloads on 5G: -+ pref_service_.SetString( -+ prefs::kAdblockAllowedConnectionType, -+ AllowedConnectionTypeToString(AllowedConnectionType::kAny)); -+ -+ // Download started. -+ VerifyRequestSent(OngoingSubscriptionRequest::Method::GET); -+} -+ +TEST_P(AdblockOngoingSubscriptionRequestImplTest, + RequestDeferredUntilAdblockingEnabled) { + // Initially, adblocking is disabled globally. @@ -39989,26 +41159,6 @@ new file mode 100644 + MethodAsString(GetParam())); +} + -+TEST_F(AdblockOngoingSubscriptionRequestImplTest, -+ RequestCancelledWhileDownloadsDisallowed) { -+ DisallowDownloadsOnMobileData(); -+ ongoing_request_->Start(kUrl, OngoingSubscriptionRequest::Method::GET, -+ base::DoNothing()); -+ -+ // Request was not sent because policy forbids downloads in current state. -+ ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); -+ -+ // We now cancel the download by destroying ongoing_request_. -+ ongoing_request_.reset(); -+ -+ // Network state changes back to allow downloads. -+ network_change_notifier_->SetConnectionTypeAndNotifyObservers( -+ net::NetworkChangeNotifier::CONNECTION_WIFI); -+ -+ // A retry request was not sent, as the request is cancelled. -+ ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); -+} -+ +TEST_P(AdblockOngoingSubscriptionRequestImplTest, + RequestCancelledAfterStarting) { + base::MockCallback @@ -40029,49 +41179,6 @@ new file mode 100644 + task_environment_.RunUntilIdle(); +} + -+TEST_F(AdblockOngoingSubscriptionRequestImplTest, -+ RequestStoppedAndStartedDuringNetworkStateChange) { -+ base::MockCallback -+ response_callback; -+ ongoing_request_->Start(kUrl, OngoingSubscriptionRequest::Method::GET, -+ response_callback.Get()); -+ -+ ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); -+ -+ EXPECT_CALL(response_callback, Run(testing::_, testing::_, testing::_)) -+ .WillRepeatedly([&](const GURL&, base::FilePath downloaded_file, -+ scoped_refptr headers) { -+ ongoing_request_->Retry(); -+ }); -+ -+ test_url_loader_factory_.SimulateResponseForPendingRequest(kUrl.spec(), -+ "content"); -+ task_environment_.RunUntilIdle(); -+ // A retry attempt task has been posted. -+ EXPECT_EQ(task_environment_.GetPendingMainThreadTaskCount(), 1u); -+ // The delay matches the retry policy -+ EXPECT_EQ(task_environment_.NextMainThreadPendingTaskDelay().InMilliseconds(), -+ kRetryBackoffPolicy.initial_delay_ms); -+ -+ // The network state changes so that the current policy doesn't allow -+ // downloads. -+ DisallowDownloadsOnMobileData(); -+ -+ // Fast-forward time until the retry task was scheduled to execute. -+ task_environment_.FastForwardBy( -+ task_environment_.NextMainThreadPendingTaskDelay()); -+ -+ // A retry request was not sent, as the request is now disallowed. -+ ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); -+ -+ // Network state changes back to allow downloads. -+ network_change_notifier_->SetConnectionTypeAndNotifyObservers( -+ net::NetworkChangeNotifier::CONNECTION_WIFI); -+ -+ // Request was started. -+ VerifyRequestSent(OngoingSubscriptionRequest::Method::GET); -+} -+ +TEST_P(AdblockOngoingSubscriptionRequestImplTest, + RequestStoppedAndStartedWhenAdblockingPrefToggled) { + base::MockCallback @@ -40171,9 +41278,9 @@ new file mode 100644 + +#include "base/ranges/algorithm.h" +#include "base/test/task_environment.h" -+#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/subscription/subscription.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "components/prefs/testing_pref_service.h" +#include "testing/gtest/include/gtest/gtest.h" + @@ -41229,7 +42336,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_downloader_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_downloader_impl_test.cc -@@ -0,0 +1,590 @@ +@@ -0,0 +1,592 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -41270,9 +42377,11 @@ new file mode 100644 +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockOngoingRequest : public OngoingSubscriptionRequest { ++class MockOngoingRequest : public NiceMock { + public: + MOCK_METHOD(void, + Start, @@ -42080,9 +43189,9 @@ new file mode 100644 +#include "base/test/bind.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" -+#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_utils.h" +#include "components/adblock/core/common/flatbuffer_data.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/test/mock_subscription_persistent_metadata.h" +#include "components/grit/components_resources.h" +#include "testing/gmock/include/gmock/gmock.h" @@ -42358,7 +43467,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_service_impl new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_service_impl_test.cc -@@ -0,0 +1,854 @@ +@@ -0,0 +1,859 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -42397,6 +43506,7 @@ new file mode 100644 +#include "components/adblock/core/common/sitekey.h" +#include "components/adblock/core/converter/converter.h" +#include "components/adblock/core/subscription/installed_subscription.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/test/mock_subscription.h" +#include "components/adblock/core/subscription/test/mock_subscription_downloader.h" +#include "components/adblock/core/subscription/test/mock_subscription_persistent_metadata.h" @@ -42405,10 +43515,13 @@ new file mode 100644 +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + ++using testing::NiceMock; ++ +namespace adblock { +namespace { + -+class FakePersistentStorage final : public SubscriptionPersistentStorage { ++class FakePersistentStorage final ++ : public NiceMock { + public: + MOCK_METHOD(void, MockLoadSubscriptions, ()); + @@ -42521,7 +43634,8 @@ new file mode 100644 + ~FakeSubscription() final = default; +}; + -+class MockPreloadedSubscriptionProvider : public PreloadedSubscriptionProvider { ++class MockPreloadedSubscriptionProvider ++ : public NiceMock { + public: + MOCK_METHOD(void, + UpdateSubscriptions, @@ -43242,8 +44356,8 @@ new file mode 100644 +#include + +#include "base/test/task_environment.h" -+#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/test/mock_subscription.h" +#include "components/adblock/core/subscription/test/mock_subscription_persistent_metadata.h" +#include "components/adblock/core/subscription/test/mock_subscription_service.h" @@ -43315,8 +44429,8 @@ new file mode 100644 + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + TestingPrefServiceSimple pref_service_; -+ testing::StrictMock persistent_metadata_; -+ testing::StrictMock subscription_service_; ++ MockSubscriptionPersistentMetadata persistent_metadata_; ++ MockSubscriptionService subscription_service_; +}; + +TEST_F(AdblockSubscriptionUpdaterImplTest, @@ -43946,7 +45060,7 @@ diff --git a/components/adblock/core/test/activeping_telemetry_topic_provider_te new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/activeping_telemetry_topic_provider_test.cc -@@ -0,0 +1,310 @@ +@@ -0,0 +1,316 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -43972,10 +45086,12 @@ new file mode 100644 +#include "base/json/json_reader.h" +#include "base/strings/string_piece_forward.h" +#include "base/system/sys_info.h" ++#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/prefs/pref_value_store.h" +#include "components/prefs/testing_pref_service.h" ++#include "gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace adblock { @@ -44005,13 +45121,23 @@ new file mode 100644 + } + + void ExpectPayloadAndTimeConsistentAfterRestart() { -+ // Current state of provider_ is stored persistently and remains consitent ++ // Current state of provider_ is stored persistently and remains consistent + // after recreating the provider_. -+ const auto time_to_next_request = provider_->GetTimeToNextRequest(); -+ const auto payload = provider_->GetPayload(); ++ const auto time_of_next_request = provider_->GetTimeOfNextRequest(); ++ const auto payload = GetPayload(); + RecreateProvider(); -+ EXPECT_EQ(time_to_next_request, provider_->GetTimeToNextRequest()); -+ EXPECT_EQ(payload, provider_->GetPayload()); ++ EXPECT_EQ(time_of_next_request, provider_->GetTimeOfNextRequest()); ++ EXPECT_EQ(payload, GetPayload()); ++ } ++ ++ std::string GetPayload() { ++ base::MockCallback ++ callback; ++ std::string payload; ++ EXPECT_CALL(callback, Run(testing::_)) ++ .WillOnce(testing::SaveArg<0>(&payload)); ++ provider_->GetPayload(callback.Get()); ++ return payload; + } + + void ExpectPayloadContainsValue(const std::string& json, @@ -44062,19 +45188,19 @@ new file mode 100644 + + void ExpectFailureAndRetryForResponse( + std::unique_ptr bad_response_contents) { -+ const std::string first_attempt_payload = provider_->GetPayload(); ++ const std::string first_attempt_payload = GetPayload(); + provider_->ParseResponse(std::move(bad_response_contents)); + + // Next ping after shorter delay, since the previous one failed: -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kRetryPingInterval); ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), ++ base::Time::Now() + kRetryPingInterval); + + // Payload is the same as after first ping. -+ const std::string retry_payload = provider_->GetPayload(); ++ const std::string retry_payload = GetPayload(); + EXPECT_EQ(first_attempt_payload, retry_payload); + ExpectPayloadAndTimeConsistentAfterRestart(); + } + -+ static constexpr base::TimeDelta kInitialDelay = base::Seconds(10); + static constexpr base::TimeDelta kNormalPingInterval = base::Hours(8); + static constexpr base::TimeDelta kRetryPingInterval = base::Hours(1); + const GURL kBaseUrl{"https://telemetry.com/"}; @@ -44107,12 +45233,12 @@ new file mode 100644 +} + +TEST_P(AdblockActivepingTelemetryTopicProviderTest, FirstRun) { -+ // On first run, next ping should happen after an initial delay. -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kInitialDelay); ++ // On first run, next ping should happen ASAP. ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), base::Time::Now()); + + // There are no values for "last_ping", "previous_last_ping", "last_ping_tag" + // and "first_ping". But there are values for other required fields: -+ const std::string payload = provider_->GetPayload(); ++ const std::string payload = GetPayload(); + ExpectPayloadContainsRequiredStaticValues(payload); + ExpectPayloadDoesNotContainValue(payload, "last_ping"); + ExpectPayloadDoesNotContainValue(payload, "previous_last_ping"); @@ -44127,11 +45253,12 @@ new file mode 100644 + provider_->ParseResponse(std::move(response)); + + // Next ping after normal delay, since the previous one succeeded: -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kNormalPingInterval); ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), ++ base::Time::Now() + kNormalPingInterval); + + // Payload now contains "first_ping" and "last_ping" set to "Monday", as this + // was the "token" received from server: -+ const std::string payload = provider_->GetPayload(); ++ const std::string payload = GetPayload(); + ExpectPayloadContainsRequiredStaticValues(payload); + ExpectPayloadContainsValue(payload, "last_ping", base::Value("Monday")); + ExpectPayloadContainsValue(payload, "first_ping", base::Value("Monday")); @@ -44178,10 +45305,11 @@ new file mode 100644 + + // Store first last_ping_tag to compare against the next one: + base::GUID first_response_uuid; -+ ExpectLastPingTagValid(provider_->GetPayload(), &first_response_uuid); ++ ExpectLastPingTagValid(GetPayload(), &first_response_uuid); + + // Next ping after normal delay, since the previous one succeeded: -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kNormalPingInterval); ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), ++ base::Time::Now() + kNormalPingInterval); + + task_environment_.FastForwardBy(kNormalPingInterval); + @@ -44191,7 +45319,7 @@ new file mode 100644 + ExpectPayloadAndTimeConsistentAfterRestart(); + + // Payload now contains all ping dates set. -+ const std::string payload = provider_->GetPayload(); ++ const std::string payload = GetPayload(); + ExpectPayloadContainsRequiredStaticValues(payload); + ExpectPayloadContainsValue(payload, "last_ping", base::Value("Tuesday")); + ExpectPayloadContainsValue(payload, "previous_last_ping", @@ -44217,7 +45345,7 @@ new file mode 100644 + provider_->ParseResponse( + std::make_unique(R"({"token":"Thursday"})")); + -+ const std::string payload = provider_->GetPayload(); ++ const std::string payload = GetPayload(); + ExpectPayloadContainsRequiredStaticValues(payload); + // "last_ping" is the one received most recently. + ExpectPayloadContainsValue(payload, "last_ping", base::Value("Thursday")); @@ -44232,23 +45360,15 @@ new file mode 100644 +} + +TEST_P(AdblockActivepingTelemetryTopicProviderTest, TimeToNextPingAfterDelay) { -+ // At first, require next request to happen after an initial delay. -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kInitialDelay); -+ task_environment_.FastForwardBy(kInitialDelay); ++ // At first, require next request to happen ASAP. ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), base::Time::Now()); ++ task_environment_.FastForwardBy(base::Seconds(30)); + provider_->ParseResponse( + std::make_unique(R"({"token":"Monday"})")); + // After a success, next ping should happen after a normal delay. -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kNormalPingInterval); ++ EXPECT_EQ(provider_->GetTimeOfNextRequest(), ++ base::Time::Now() + kNormalPingInterval); + -+ // After half of the time passes, another half remains: -+ const auto kHalfInterval = kNormalPingInterval / 2; -+ task_environment_.FastForwardBy(kHalfInterval); -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kHalfInterval); -+ -+ // Too much time passed, "negative" remaining delay is clamped to initial -+ // delay. -+ task_environment_.FastForwardBy(kNormalPingInterval * 3); -+ EXPECT_EQ(provider_->GetTimeToNextRequest(), kInitialDelay); + ExpectPayloadAndTimeConsistentAfterRestart(); +} + @@ -44261,7 +45381,7 @@ diff --git a/components/adblock/core/test/adblock_controller_impl_test.cc b/comp new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/adblock_controller_impl_test.cc -@@ -0,0 +1,818 @@ +@@ -0,0 +1,805 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -44391,19 +45511,6 @@ new file mode 100644 + EXPECT_FALSE(testee_->IsAdblockEnabled()); +} + -+TEST_F(AdblockControllerImplTest, SetUpdateConstent) { -+ EXPECT_CALL(subscription_service_, IsInitialized()) -+ .WillRepeatedly(testing::Return(true)); -+ // Initially, default value is returned. -+ EXPECT_EQ(testee_->GetUpdateConsent(), AllowedConnectionType::kDefault); -+ // Setting it to a different value is registered. -+ testee_->SetUpdateConsent(AllowedConnectionType::kWiFi); -+ EXPECT_EQ(testee_->GetUpdateConsent(), AllowedConnectionType::kWiFi); -+ // The setting persists after restart. -+ RecreateController(); -+ EXPECT_EQ(testee_->GetUpdateConsent(), AllowedConnectionType::kWiFi); -+} -+ +TEST_F(AdblockControllerImplTest, SelectedBuiltInSubscriptionsReadFromPrefs) { + EXPECT_CALL(subscription_service_, IsInitialized()) + .WillRepeatedly(testing::Return(true)); @@ -45084,7 +46191,7 @@ diff --git a/components/adblock/core/test/adblock_telemetry_service_unittest.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/adblock_telemetry_service_unittest.cc -@@ -0,0 +1,314 @@ +@@ -0,0 +1,351 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -45107,6 +46214,7 @@ new file mode 100644 +#include + +#include "base/test/task_environment.h" ++#include "base/time/time.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/prefs/testing_pref_service.h" +#include "net/base/load_flags.h" @@ -45120,19 +46228,25 @@ new file mode 100644 +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + ++using testing::NiceMock; +using testing::Return; + +namespace adblock { ++ +namespace { + -+class MockTopicProvider : public AdblockTelemetryService::TopicProvider { ++class MockTopicProvider ++ : public NiceMock { + public: + MOCK_METHOD(GURL, GetEndpointURL, (), (const, override)); + MOCK_METHOD(std::string, GetAuthToken, (), (const, override)); -+ MOCK_METHOD(std::string, GetPayload, (), (const, override)); -+ MOCK_METHOD(base::TimeDelta, GetTimeToNextRequest, (), (const, override)); ++ MOCK_METHOD(void, GetPayload, (PayloadCallback), (override)); ++ MOCK_METHOD(base::Time, GetTimeOfNextRequest, (), (const, override)); + MOCK_METHOD(void, ParseResponse, (std::unique_ptr), (override)); +}; ++ ++const auto kInitialDelay = base::Seconds(30); ++const auto kCheckInterval = base::Minutes(5); +} // namespace + +class AdblockTelemetryServiceTest : public testing::Test { @@ -45140,16 +46254,20 @@ new file mode 100644 + void SetUp() override { + prefs::RegisterProfilePrefs(pref_service_.registry()); + telemetry_service_ = std::make_unique( -+ &pref_service_, test_shared_url_loader_factory_); ++ &pref_service_, test_shared_url_loader_factory_, kInitialDelay, ++ kCheckInterval); + } + + MockTopicProvider* RegisterFooMock() { + auto* mock_provider = RegisterNewMockTopicProvider(); + ON_CALL(*mock_provider, GetEndpointURL()).WillByDefault(Return(kFooUrl)); + ON_CALL(*mock_provider, GetAuthToken()).WillByDefault(Return("foo_token")); -+ ON_CALL(*mock_provider, GetTimeToNextRequest()) -+ .WillByDefault(Return(kFooDelay)); -+ ON_CALL(*mock_provider, GetPayload()).WillByDefault(Return("foo_data")); ++ ON_CALL(*mock_provider, GetPayload(testing::_)) ++ .WillByDefault([](MockTopicProvider::PayloadCallback callback) { ++ std::move(callback).Run("foo_data"); ++ }); ++ ON_CALL(*mock_provider, GetTimeOfNextRequest()) ++ .WillByDefault(Return(base::Time::Now() + kFooDelay)); + return mock_provider; + } + @@ -45166,9 +46284,12 @@ new file mode 100644 + auto* mock_provider = RegisterNewMockTopicProvider(); + ON_CALL(*mock_provider, GetEndpointURL()).WillByDefault(Return(kBarUrl)); + ON_CALL(*mock_provider, GetAuthToken()).WillByDefault(Return("bar_token")); -+ ON_CALL(*mock_provider, GetTimeToNextRequest()) -+ .WillByDefault(Return(kBarDelay)); -+ ON_CALL(*mock_provider, GetPayload()).WillByDefault(Return("bar_data")); ++ ON_CALL(*mock_provider, GetPayload(testing::_)) ++ .WillByDefault([](MockTopicProvider::PayloadCallback callback) { ++ std::move(callback).Run("bar_data"); ++ }); ++ ON_CALL(*mock_provider, GetTimeOfNextRequest()) ++ .WillByDefault(Return(base::Time::Now() + kBarDelay)); + return mock_provider; + } + @@ -45230,14 +46351,34 @@ new file mode 100644 + test_shared_url_loader_factory_{ + base::MakeRefCounted( + &test_url_loader_factory_)}; -+ constexpr static base::TimeDelta kFooDelay{base::Seconds(5)}; -+ constexpr static base::TimeDelta kBarDelay{base::Seconds(6)}; ++ constexpr static base::TimeDelta kFooDelay{base::Minutes(4)}; ++ constexpr static base::TimeDelta kBarDelay{base::Minutes(6)}; + const GURL kFooUrl{"https://telemetry.com/topic/eyeo_foo/version/3"}; + const GURL kBarUrl{"https://telemetry.com/topic/eyeo_bar/version/2"}; + + std::unique_ptr telemetry_service_; +}; + ++TEST_F(AdblockTelemetryServiceTest, RequestNotMadeBeforeInitialDelay) { ++ pref_service_.SetBoolean(prefs::kEnableAdblock, true); ++ ++ auto* mock = RegisterFooMock(); ++ EXPECT_CALL(*mock, GetTimeOfNextRequest()) ++ .WillOnce(Return(base::Time::Now())); ++ ++ telemetry_service_->Start(); ++ ++ // Despite the Foo topic provider declaring a next request time of Now(), ++ // we wait until kInitialDelay has passed. ++ task_environment_.RunUntilIdle(); ++ ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); ++ ++ // Only after initial delay has passed, there's a network request made. ++ task_environment_.FastForwardBy(kInitialDelay); ++ ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); ++ ExpectFooMadeRequest(0); ++} ++ +TEST_F(AdblockTelemetryServiceTest, + ScheduleStartsImmediatelyWhenAdblockEnabled) { + pref_service_.SetBoolean(prefs::kEnableAdblock, true); @@ -45246,12 +46387,13 @@ new file mode 100644 + + telemetry_service_->Start(); + -+ // No requests initially. ++ // There are no TopicProviders that are due already after the initial delay. ++ task_environment_.FastForwardBy(kInitialDelay); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); + + // The topic should have scheduled a request according to its -+ // GetTimeToNextRequest(). -+ task_environment_.FastForwardBy(kBarDelay); ++ // GetTimeOfNextRequest(). It will be checked after kCheckInterval. ++ task_environment_.FastForwardBy(kCheckInterval); + + // A request was sent to a URL built according to topic provider's data. + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); @@ -45269,15 +46411,15 @@ new file mode 100644 + ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); + + // A lot of time passes. -+ task_environment_.FastForwardBy(kBarDelay * 5); ++ task_environment_.FastForwardBy(kCheckInterval * 5); + // There was no network request made, because prefs::kEnableAdblock is false. + ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); + + // kEnableAdblock becomes true: + pref_service_.SetBoolean(prefs::kEnableAdblock, true); + -+ // Schedule is started, first request made after kBarDelay. -+ task_environment_.FastForwardBy(kBarDelay); ++ // Schedule is started, first request made after kInitialDelay. ++ task_environment_.FastForwardBy(kInitialDelay); + + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); @@ -45293,7 +46435,7 @@ new file mode 100644 + pref_service_.SetBoolean(prefs::kEnableAdblock, false); + + // A lot of time passes with no requests, schedule is stopped. -+ task_environment_.FastForwardBy(kBarDelay * 5); ++ task_environment_.FastForwardBy(kCheckInterval * 5); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); +} + @@ -45309,12 +46451,13 @@ new file mode 100644 + ASSERT_EQ(test_url_loader_factory_.NumPending(), 0); + + // Time for Foo topic provider to make a request. -+ task_environment_.FastForwardBy(kFooDelay); ++ task_environment_.FastForwardBy(kInitialDelay); ++ task_environment_.FastForwardBy(kCheckInterval); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); + + // Time for Bar topic provider to make a request. -+ task_environment_.FastForwardBy(kBarDelay - kFooDelay); ++ task_environment_.FastForwardBy(kCheckInterval); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 2); + ExpectBarMadeRequest(1); +} @@ -45326,7 +46469,8 @@ new file mode 100644 + + telemetry_service_->Start(); + -+ task_environment_.FastForwardBy(kFooDelay); ++ task_environment_.FastForwardBy(kInitialDelay); ++ task_environment_.FastForwardBy(kCheckInterval); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); + @@ -45345,7 +46489,8 @@ new file mode 100644 + + telemetry_service_->Start(); + -+ task_environment_.FastForwardBy(kFooDelay); ++ task_environment_.FastForwardBy(kInitialDelay); ++ task_environment_.FastForwardBy(kCheckInterval); + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); + @@ -45364,12 +46509,13 @@ new file mode 100644 + pref_service_.SetBoolean(prefs::kEnableAdblock, true); + auto* mock = RegisterFooMock(); + telemetry_service_->Start(); -+ task_environment_.FastForwardBy(kFooDelay); ++ task_environment_.FastForwardBy(kInitialDelay); ++ task_environment_.FastForwardBy(kCheckInterval); + // Request is made: + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); + -+ // Adblocking is disabled before respnose arrives: ++ // Adblocking is disabled before response arrives: + pref_service_.SetBoolean(prefs::kEnableAdblock, false); + + // Now, TopicProvider is not triggered even when response arrives. @@ -45386,13 +46532,11 @@ new file mode 100644 + // TopicProvider returns a negative time to next request, as if the request + // was supposed to happen in the past. This is a normal scenario, ex. when + // the browser was shut down for longer than the duration of request interval. -+ EXPECT_CALL(*mock, GetTimeToNextRequest()) -+ .WillOnce(testing::Return(-base::Seconds(30))); ++ EXPECT_CALL(*mock, GetTimeOfNextRequest()) ++ .WillOnce(testing::Return(base::Time::Now() - base::Seconds(30))); + + telemetry_service_->Start(); -+ -+ // Request is scheduled immediately. -+ task_environment_.FastForwardBy(base::TimeDelta()); ++ task_environment_.FastForwardBy(kInitialDelay); + // Request is made: + ASSERT_EQ(test_url_loader_factory_.NumPending(), 1); + ExpectFooMadeRequest(0); @@ -45495,7 +46639,7 @@ diff --git a/components/adblock/core/test/mock_adblock_controller.h b/components new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/mock_adblock_controller.h -@@ -0,0 +1,85 @@ +@@ -0,0 +1,87 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -45522,9 +46666,11 @@ new file mode 100644 +#include "components/adblock/core/subscription/installed_subscription.h" +#include "testing/gmock/include/gmock/gmock.h" + ++using testing::NiceMock; ++ +namespace adblock { + -+class MockAdblockController : public AdblockController { ++class MockAdblockController : public NiceMock { + public: + MockAdblockController(); + ~MockAdblockController() override; @@ -57033,7 +58179,7 @@ diff --git a/components/adblock/docs/settings/README.md b/components/adblock/doc new file mode 100644 --- /dev/null +++ b/components/adblock/docs/settings/README.md -@@ -0,0 +1,35 @@ +@@ -0,0 +1,23 @@ +# Settings + +eyeo Chromium SDK can be configured to provide the experience most adequate for the end-user. @@ -57050,18 +58196,6 @@ new file mode 100644 +| Allowed connection type | String | Connection type under which filter lists can be downloaded. | + + -+## "Allowed connection type" setting ("Update on WiFi only" in the UI) -+ -+The "allowed connection type" setting specifies under which circumstances eyeo Chromium SDK may issue network requests, like filter list downloads. The possible values are: -+ -+* *any*: On any network. -+* *wifi*: Only on WiFi. -+ -+By default, downloads are allowed on any connection type to ensure that the most up-to-date filter lists are always available. -+ -+When only WiFi is allowed, eyeo Chromium SDK won't issue network requests when the user is on a different connection type, reducing the usage of their data allowance. But as a consequence, filter lists won't be updated or even downloaded, which means this setting has a huge impact on ad-blocking functionality. You can bundle filter lists to ensure that they are available in this scenario. See the [ad-filtering documentation](../ad-filtering/filter-lists.md) for more information about bundled filter lists. -+ -+ +## Implementation details + +Settings can be configured via the C++ class `AdblockController` or its Java counterpart, `org.chromium.components.adblock.AdblockController`. @@ -58225,7 +59359,7 @@ diff --git a/components/adblock_comparison/libadblockplus_reference_database.cc new file mode 100644 --- /dev/null +++ b/components/adblock_comparison/libadblockplus_reference_database.cc -@@ -0,0 +1,236 @@ +@@ -0,0 +1,239 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -58332,7 +59466,10 @@ new file mode 100644 + TestRequestReader request_reader; + request_reader.Open(request_data_file); + sql::Transaction transaction(&db_); -+ transaction.Begin(); ++ if (!transaction.Begin()) { ++ LOG(ERROR) << "sql::Transaction failed!"; ++ return; ++ } + while (auto request = request_reader.GetNextRequest()) { + if (request->content_type > 32768) { + // This isn't a real content type, it's a *filter type*. Old core would @@ -59055,7 +60192,7 @@ new file mode 100644 + + + -+ ++ + + + @@ -59139,18 +60276,18 @@ new file mode 100644 + sources = + [ "//components/resources/adblocking/snippets/dist/isolated-first.jst" ] + } -+ outputs = [ "${target_gen_dir}/snippets.js" ] ++ outputs = [ "${target_gen_dir}/snippets.jst" ] +} diff --git a/components/resources/adblocking/anticv.txt b/components/resources/adblocking/anticv.txt new file mode 100644 --- /dev/null +++ b/components/resources/adblocking/anticv.txt -@@ -0,0 +1,2392 @@ +@@ -0,0 +1,2419 @@ +[Adblock Plus 3.1] -+! Checksum: U4wVwYZAaJsadK9X2wikEA -+! Version: 202208220921 ++! Checksum: aXYi1w8O8k0/hx/3JL7HNA ++! Version: 202210250741 +! Title: ABP filters -+! Last modified: 22 Aug 2022 09:21 UTC ++! Last modified: 25 Oct 2022 07:41 UTC +! Expires: 1 hours (update frequency) +! Homepage: https://github.com/abp-filters/abp-filters-anti-cv +! @@ -59169,13 +60306,14 @@ new file mode 100644 +arabseed.co,arabseed.com,arabseed.me,arabseed.net,arabseed.tv#$#abort-on-property-read atob; abort-on-property-read decodeURI; abort-on-property-read decodeURIComponent +hawak.net,hawak.tv,rotana.video#$#abort-on-property-read atob +! #CV-667 -+beinconnect.us,coroot.blogspot.com,ktarab.com,shofnow.com,actionz.tv,brstej.com,jaewinter.co,movs4u.live,mvs4u.tv,kora-online.tv,filmey.tv,animetak.net,arabseed.tv,arabseed.co,arabseed.com,arabseed.me,arabseed.net,shahid4u.com,shahid4u.net#$#abort-current-inline-script Math zfgloaded ++beinconnect.us,coroot.blogspot.com,ktarab.com,shofnow.com,actionz.tv,brstej.com,jaewinter.co,movs4u.live,mvs4u.tv,kora-online.tv,filmey.tv,animetak.net,arabseed.tv,arabseed.co,arabseed.com,arabseed.me,arabseed.net,shahid4u.com#$#abort-current-inline-script Math zfgloaded +! Popup/Popunder/Clickunder +egyanime.com,egydead.com,egydead.live#$#abort-on-property-write _pop +actionz.tv,cimaclub.com,cimaclub.in,elmstba.com,hawak.net,hawak.tv,lodynet.co,lodynet.dev,lodynet.ink,lodynet.tv,rotana.video#$#abort-on-property-read decodeURIComponent +egy.best,egybest.asia,egybest.bid,egybest.biz,egybest.cheap,egybest.co,egybest.com,egybest.cool,egybest.fail,egybest.life,egybest.ltd,egybest.ist,egybest.name,egybest.net,egybest.network,egybest.ninja,egybest.nl,egybest.online,egybest.org,egybest.pw,egybest.rocks,egybest.site,egybest.xyz,egybest.zone,egybest2.com,iegy.best#$#abort-on-property-read open -+akhbara24.news,anime4up.art,anime4up.com,arabseed.me,asia2tv.cn,asia2tv.com,baramjak.com,cima-club.cc,cima-club.in,cima-club.io,cima-club.lol,cima-club.vip,cima4u.cloud,cima4u.film,cima4u.ink,cima4u.tv,cima4u.ws,cimalina.me,cimalina.net,egy-live.online,egynow.cam,egynow.live,hawak.net,iegybest.co,lodynet.co,lodynet.dev,lodynet.ink,lodynet.tv,manga.ae,moshahda.net,movizland.com,movizland.cyou,movizland.online,egyanime.com,egydead.com,egydead.live,shahed4u.cafe,shahed4u.casa,shahed4u.cloud,shahed4u.mba,shahed4u.red,shahed4u.tips,shahed4u.ws,tuktukcinema.co,tuktukcinema.net,witanime.com,yalla-shoot.today#$#abort-current-inline-script Math /atob|break/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-on-property-write JSON.parse ++akhbara24.news,anime4up.art,anime4up.com,arabseed.me,asia2tv.cn,asia2tv.com,baramjak.com,cima-club.cc,cima-club.in,cima-club.io,cima-club.lol,cima-club.vip,cima4u.cloud,cima4u.film,cima4u.ink,cima4u.tube,cima4u.tv,cima4u.ws,cimalina.me,cimalina.net,egy-live.online,egynow.cam,egynow.live,hawak.net,iegybest.co,lodynet.co,lodynet.dev,lodynet.ink,lodynet.tv,manga.ae,moshahda.net,movizland.com,movizland.cyou,movizland.online,egyanime.com,egydead.com,egydead.live,shahed4u.cafe,shahed4u.casa,shahed4u.cfd,shahed4u.cloud,shahed4u.fun,shahed4u.mba,shahed4u.red,shahed4u.site,shahed4u.tax,shahed4u.tips,shahed4u.vip,shahed4u.work,shahed4u.ws,shahid4u.com,tuktukcinema.co,tuktukcinema.net,witanime.com,yalla-shoot.today#$#abort-current-inline-script Math /atob|break/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-on-property-write JSON.parse +arabxd.com#$#abort-current-inline-script document.querySelectorAll popMagic ++cima-club.cam#$#abort-on-property-read window.zfgstorage +! #CV-754 +akwam.cc,akoam.com,akoam.net,akwam.co,akwam.cx,akwam.net,akwam.org,gateanime.com,gocoo.co#$#abort-on-property-read String.fromCharCode +! *** abp-filters-anti-cv:bulgarian.txt *** @@ -59198,7 +60336,7 @@ new file mode 100644 +cocomanga.com#$#abort-on-property-read __cad.cpm_popunder; abort-on-property-read __ad +madouqu.com,madouqu.tk#$#abort-current-inline-script document.querySelectorAll popMagic +editcode.net#$#abort-current-inline-script setTimeout openAd -+theporn.cc#$#abort-on-property-read is_show_alert_window ++69xx.one,theporn.cc#$#override-property-read is_show false +! Video ads +iyingshi9.tv#$#override-property-read YZM.ads.state false +! #CV-667 @@ -59366,9 +60504,7 @@ new file mode 100644 +novinky.cz,kupi.cz,sport.cz,super.cz##[id$="-ad-container"] +novinky.cz,kupi.cz,sport.cz,super.cz###sf0 +novinky.cz,kupi.cz,sport.cz,super.cz##a[title="Rekᥣama"] -+novinky.cz,kupi.cz,sport.cz,super.cz##a[href*="/clickthru?"] +novinky.cz,kupi.cz,sport.cz,super.cz##a[href*="__CLICKTHRU__"] -+novinky.cz,kupi.cz,sport.cz,super.cz,horoskopy.cz##a[href*="?spotId="] +novinky.cz,kupi.cz,sport.cz,super.cz,horoskopy.cz##[class$="ad-wrapper"] +novinky.cz,kupi.cz,sport.cz,super.cz,horoskopy.cz##a[href*="adfibeg="] +novinky.cz,kupi.cz,sport.cz,super.cz,horoskopy.cz##a[href*="adcurl="] @@ -59440,6 +60576,7 @@ new file mode 100644 +@@||karaoketexty.cz/img/*.png$image,domain=karaoketexty.cz +@@||karaoketexty.cz/img/*.jpg$image,domain=karaoketexty.cz +?client=ca-pub-$script,domain=karaoketexty.cz ++novinky.cz#$#hide-if-matches-xpath '//div[@id][contains(@style, "max-width: 100%;")]//iframe[@style]/ancestor::div[@style]' +novinky.cz#$#hide-if-matches-xpath '//a[@href][@title]/div[@class][@style]/parent::a/ancestor-or-self::div[2]' +horoskopy.cz,seznamzpravy.cz#$#hide-if-matches-xpath '//iframe[@src][@id]/parent::div[@class]/ancestor-or-self::div[@class][1][not(starts-with(@class,"twitter"))]' +! #CV-780 @@ -59501,10 +60638,15 @@ new file mode 100644 +ajaxshowtime.com#?#div:-abp-properties(content: "Advertentie";) +ajaxshowtime.com##div.leaderboard_ad + div +! *** abp-filters-anti-cv:english.txt *** ++! #CV-737 ++cnn.com#$#strip-fetch-query-parameter caid warnermediacdn.com; +! #CV-1149 -+etsy.com#$#hide-if-contains-visible-text /Ad.by/i a[data-listing-id] ++etsy.com#$#hide-if-matches-xpath './/span[contains(@class,"wt-screen-reader-only") and text()="Ad " and not(@aria-hidden="true")]/ancestor::a[contains(@class,"logged")]' ++etsy.com##a[href*="listing_page_ad_row"] +! #CV-1056 +www.linkedin.com#$#simulate-event-poc click 'xpath(//*[text()="Promoted" or text()="Sponsored" or text()="Dipromosikan" or text()="Propagováno" or text()="Promoveret" or text()="Anzeige" or text()="Promocionado" or text()="促銷內容" or text()="Post sponsorisé" or text()="프로모션" or text()="Post sponsorizzato" or text()="广告" or text()="プロモーション" or text()="Treść promowana" or text()="Patrocinado" or text()="Promovat" or text()="Продвигается" or text()="Marknadsfört" or text()="Nai-promote" or text()="ได้รับการโปรโมท" or text()="Öne çıkarılan içerik" or text()="الترويج"]/ancestor::div[@data-id]//video[@autoplay="autoplay"])' 10 ++! #CV-1235 ++expedia.com,expedia.co.uk,expedia.de,expedia.es,expedia.fr,expedia.ie,expedia.it,expedia.dk,expedia.co.id,expedia.co.in,expedia.co.kr,expedia.co.nz,expedia.co.th,expedia.com.hk,expedia.com.my,hotels.com,orbitz.com,ebookers.com,wotif.com,cheaptickets.com,travelocity.com#$#hide-if-matches-xpath './/a[contains(@href,"&trackingData")]/ancestor::div[@class="uitk-spacing uitk-spacing-margin-blockstart-three"]' +! #CV-717 +yandex.com#$#hide-if-contains ad li.serp-item 'li.serp-item div.label' +! #CV-706 @@ -59521,7 +60663,6 @@ new file mode 100644 +youporn.com#$#abort-on-property-read zone_underplayer; abort-on-property-read zone_2545 +pornhub.com#$#abort-on-property-read HTMLElement.prototype.attachShadow +theyarehuge.com#$#abort-on-property-read Element.prototype.attachShadow -+! #CV-663 +! #CV-673 +hotmovs.com##div[class^="vda-closeplay"] +beeg.com,oral-amateure.com,upornia.com,hotmovs.com,voyeurhit.com,hdzog.com#$#abort-on-property-write ads_priv @@ -59551,6 +60692,7 @@ new file mode 100644 +/sid*$domain=kickassanime.io +/mya/lfa.js$domain=thewatchcartoononline.tv|wcostream.com +mangareader.net,kiss-anime.ws,animeland.us#$#abort-on-property-read bbHideDiv ++narutohentaidb.com#$#abort-on-property-write BackDropNar; hide-if-matches-xpath './/canvas[contains(@style,"padding")]/ancestor::div[contains(@style,"z-index")][1]'; +! #CV-659 +filmxy.one##.promo-contents +y2mate.com#$#abort-on-property-read dispatchEvent @@ -59560,8 +60702,6 @@ new file mode 100644 +||facebook.net^*/fbevents.js$third-party +||facebook.com/tr$third-party +||connect.facebook.net^*/fbds.js$third-party -+! #CV-241 -+swatchseries.to#$#abort-on-property-read zfgloadednative +! #CV-661 +marketrealist.com,kansas.com,thenewstribune.com#$#abort-on-property-read $aproxy +9to5mac.com,9to5google.com,9to5toys.com##iframe[data-google-container-id] @@ -59686,6 +60826,7 @@ new file mode 100644 +baytorrent.eu.org,europixhd.com,europixhd.net,file-up.org,force-download.com,force-download.es,force-download.fr,force-download.net,gledajonline.net,hdeuropix.io,loadsubs.net,novom.ru,pirateproxy.earth,pirateproxy.live,thehiddenbay.com,thepiratebay.org,thepiratebay.vip,thepiratebay10.org,topeuropix.net,tpb.party,uploadproper.com,uploadproper.net#$#abort-on-property-read atob +bagas31.info#$#abort-on-property-write atob +rarbg.to,rarbg2019.org,rarbgaccess.org,rarbgdata.org,rarbgget.org,rarbggo.org,rarbgmirror.com,rarbgmirror.org,rarbgmirrored.org,rarbgproxy.org,rarbgprx.org,rarbgto.org,rarbgunblock.com,rarbgweb.org#$#abort-on-property-read LieDetector ++toon69.com#$#abort-on-property-read adConfig +onlystream.tv#$#abort-on-property-read BetterJsPop +hdvid.tv,ovid.pro#$#abort-on-property-read atob; abort-on-property-read encodeURIComponent; abort-on-property-write _pop +limetorrents.cyou,gaobook.review,mavplayer.xyz,vaplayer.xyz,xstreamcdn.com,flashx.pw,flashx.tv,embed.media,fembed.com,hxfile.co,mavplay.xyz,myyouporn.com,vidplayer.cz#$#abort-on-property-read AaDetector @@ -59698,7 +60839,7 @@ new file mode 100644 +bs.to,burningseries.co#$#abort-current-inline-script Object +vivo.sx#$#abort-current-inline-script Math +hclips.com,hdzog.com,hotmovs.com,inporn.com,pornhits.com,porntop.com,senzuri.tube,thegay.com,thegay.tube,txxx.com,upornia.com,vjav.com,voyeurhit.com#$#abort-current-inline-script mz -+gdespaces.com,gdespaces.net,spac.me,spac1.com,spac1.me,spac1.net,spac1.org,spac1.ru,spaces-blogs.com,spaces.im,spcs.me,strip2.in,strip2.xxx#$#abort-on-property-read Object.prototype.initOnPlay; abort-current-inline-script __require /clickunder/ ++gdespaces.com,gdespaces.net,spac1.info,spac.me,spac1.com,spac1.me,spac1.net,spac1.org,spac1.ru,spaces-blogs.com,spaces.im,spcs.me,spcs.social,strip2.in,strip2.xxx#$#abort-on-property-read Object.prototype.initOnPlay; abort-current-inline-script __require /clickunder/ +mrpornx.com,myyouporn.com#$#abort-current-inline-script eval String.fromCharCode +gounlimited.to#$#abort-on-property-read atob +0xxx.ws,sxyprn.com,sxyprn.net#$#abort-current-inline-script decodeURI decodeURIComponent @@ -59717,7 +60858,10 @@ new file mode 100644 +revivelink.com#$#abort-on-property-read btoa; abort-current-inline-script Object.defineProperty XMLHttpRequest +youdbox.com#$#abort-on-property-read encodeURIComponent +vidshare.tv,vidshar.tv,series.movie,gowatchseries.movie,gowatchseries.tv#$#abort-current-inline-script Object.defineProperty XMLHttpRequest -+reputationsheriffkennethsand.com,nosteam.ro,soap2day.rs#$#abort-on-property-read window.open ++bigclatterhomesguideservice.com,dramacool.sr,japscan.me,movies-watch.com.pk,reputationsheriffkennethsand.com,nosteam.ro,readcomiconline.li,root-nation.com,soap2day.rs,toongod.com,yomovies.cloud#$#abort-on-property-read window.open ++fmovies.hn,hurawatch.cc,theflixer.tv#$#abort-on-property-read window.zfgstorage ++omegascans.org#$#abort-on-property-read window.__adFormats ++liveru.sx#$#abort-on-property-read window.b5bb198737 +manganelo.tv#$#abort-on-property-read document.createElement +manga18fx.com#$#abort-on-property-read Math.floor +bangtubevideos.com#$#override-property-read setTimeout noopFunc; abort-on-property-write location.replace @@ -59745,7 +60889,7 @@ new file mode 100644 +pornhits.com,porntop.com#$#abort-current-inline-script ACtMan +letsjerk.tv#?#div[class*="widget_text"]:-abp-has(>div:-abp-contains(Advertisement)) +boyjackpot.com,letsjerk.tv#$#abort-current-inline-script asgPopScript -+123-movies.gs,123movies-official.net,animefrenzy.net,apkmody.io,atomohd.org,atomohd.com,atomohd.xyz,atomtt.com,d123movies.to,f2movies.to,filmlinks4u.cam,gogoanime.day,gogoanime.re,gogoanime.run,goyabu.com,hentai20.com,kimcartoon.li,kisstvshow.to,lalamanga.com,mangadna.com,mangahere.onl,manganelo.com,manhuascan.me,manhwax.com,movies123.sbs,movies123.studio,prmovies.re,projectfreetv.space,readcomiconline.li,readmanganato.com,soap2day.cloud,tinyzonetv.to,wiflix.bet,yomovies1.live#$#abort-on-property-read localStorage; abort-on-property-write JSON.parse ++123-movies.sr,123movies-official.net,animefrenzy.net,apkmody.io,atomohd.app,atomtt.com,d123movies.to,f2movies.to,filmlinks4u.online,gogoanime.day,gogoanime.re,gogoanime.run,goyabu.com,hentai20.com,kimcartoon.li,kisstvshow.to,lalamanga.com,mangadna.com,mangahere.onl,manganato.com,manhwax.com,movies123.sbs,movies123.studio,prmovies.re,projectfreetv.space,readmanganato.com,soap2day.cloud,tinyzonetv.to,udvl.com,wiflix.bet,yomovies1.online#$#abort-on-property-read localStorage; +fastconverter.net#$#abort-on-property-read afScript +tpbay.link#$#abort-on-property-read _wm_settings +manga21plus.com#$#abort-on-property-read a3klsam @@ -59755,7 +60899,9 @@ new file mode 100644 +fullporner.com#$#abort-on-property-read ad; abort-on-property-read ad_list +animepahe.com#$#abort-on-property-read _0x43d1; abort-on-property-read _0x53b5 +receive-smss.com#$#abort-on-property-read adBlockEnabled -+smallseotools.com#$#abort-on-property-read FITS.Config ++smallseotools.com#$#abort-on-property-read FITS.Config; override-property-read adpushup undefined; abort-on-property-read run_grammarly_frist; hide-if-matches-xpath './/img[contains(@src,".gif")]/ancestor-or-self::a[contains(@onclick,"Grammarly")]' ++root-nation.com#$#hide-if-matches-xpath './/img[contains(@alt,"Infinix ")]/parent::div[@class="backstretch"]/ancestor-or-self::div[1]' ++root-nation.com#$#hide-if-matches-xpath '//source/following::img[@src]/ancestor::a[@class]/ancestor-or-self::div[@id="tdi_29"]' +! #CV-667 +gomovies.film,gomovies.sc,gomovies.es,gomovie.ms,gomovieshub.io,openloadmovies.net,openloadmovies.review,vidsrc.me,movies123.xyz,bonstreams.net,yts.am,keeplinks.co,flashx.pw,flashx.tv,cloudvideo.tv,gogoanime.cloud,revivelink.com#$#abort-on-property-read atob +getsurl.com,gslink.co,gsurl.in,gsurl.me,g5u.pw,clipwatching.com,protect-mylinks.com#$#abort-current-inline-script document.createElement String.fromCharCode @@ -59776,9 +60922,10 @@ new file mode 100644 +! #CV-368 +kimcartoon.to#$#abort-on-property-read NativeAd +! Popup/Popunder/Clickunder -+123movieshub.tc,123freemovies.net,123movies.ai,123movies.bike,adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,animepahe.com,bigtitsxxxfree.com,configspc.com,dood.la,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.wf,dood.ws,doodstream.co,doodstream.com,fastream.to,govid.me,hclips.com,hd-analporn.com,hotmovs.com,hxfile.co,iframe-secured.com,komikcast.com,mavavid.com,mixdrop.co,mstream.best,mstream.fun,mstream.icu,mstream.press,mstream.space,mstream.tech,mstream.website,mstream.xyz,mystream.io,mystream.to,onetouchtv.me,pandamovies.pw,perfectgirls.net,porn.com,porndollz.com,pornhat.com,prmovies.bz,realgfporn.com,rlslog.net,rule34hentai.net,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamta.pe,streamtape.cc,streamtape.com,streamtape.net,streamtape.to,streamtape.xyz,streamtapeadblock.art,strtape.cloud,strtape.site,strtape.tech,strtapeadblock.me,vidstreaming.io,vidstreamz.online,w-123movies.com,xnxxvideo.pro,xvideosxporn.com#$#abort-on-property-read open -+latinblog.tv,adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,baytorrent.eu.org,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.wf,dood.la,dood.ws,doodstream.co,doodstream.com,voe.sx,europixhd.com,europixhd.net,fileflares.com,gledajonline.net,govid.me,hdeuropix.io,hxfile.co,isohunt.lol,isohuntz.net,javmost.com,javjunkies.com,limetorrents.info,loadsubs.net,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,myyouporn.com,openpirate.org,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.earth,pirateproxy.live,pirateproxy.surf,pirateproxy.us,proxyninja.org,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamtape.cc,streamtape.com,strtapeadblock.me,streamtape.net,streamtape.to,streamtape.xyz,streamta.pe,strtape.cloud,strtape.site,strtape.tech,adblockstrtape.link,thehiddenbay.com,thepiratebay.org,thepiratebay.vip,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,topeuropix.net,tpb.party,tpb.red,vidoz8.com,vidshare.tv,youdbox.com,mixdrop.co#$#abort-on-property-write _pop -+adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamtape.to,streamtape.cc,streamtape.net,streamtape.xyz,streamtape.com,streamta.pe,strtapeadblock.me,strtape.cloud,strtape.site,strtape.tech,mixdrop.co#$#abort-on-property-write _pao ++embed.scdn.to#$#abort-on-property-read zfgformats; ++123movieshub.tc,123freemovies.net,123movies.ai,123movies.bike,adblockplustape.com,adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,animepahe.com,bigtitsxxxfree.com,configspc.com,dood.la,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.wf,dood.ws,doodstream.co,doodstream.com,fastream.to,govid.me,hclips.com,hd-analporn.com,hotmovs.com,hxfile.co,iframe-secured.com,komikcast.com,mavavid.com,mixdrop.co,mstream.best,mstream.fun,mstream.icu,mstream.press,mstream.space,mstream.tech,mstream.website,mstream.xyz,mystream.io,mystream.to,onetouchtv.me,pandamovies.pw,perfectgirls.net,porn.com,porndollz.com,pornhat.com,prmovies.bz,realgfporn.com,rlslog.net,rule34hentai.net,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamta.pe,streamtape.cc,streamtape.com,streamtape.net,streamtape.to,streamtape.xyz,streamtapeadblock.art,strtape.cloud,strtape.site,strtape.tech,strtapeadblock.me,vidstreaming.io,vidstreamz.online,w-123movies.com,xnxxvideo.pro,xvideosxporn.com#$#abort-on-property-read open ++latinblog.tv,adblockplustape.com,adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,baytorrent.eu.org,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.wf,dood.la,dood.ws,doodstream.co,doodstream.com,voe.sx,europixhd.com,europixhd.net,fileflares.com,gledajonline.net,govid.me,hdeuropix.io,hxfile.co,isohunt.lol,isohuntz.net,javmost.com,javjunkies.com,limetorrents.info,loadsubs.net,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,myyouporn.com,openpirate.org,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.earth,pirateproxy.live,pirateproxy.surf,pirateproxy.us,proxyninja.org,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamtape.cc,streamtape.com,strtapeadblock.me,streamtape.net,streamtape.to,streamtape.xyz,streamta.pe,strtape.cloud,strtape.site,strtape.tech,adblockstrtape.link,thehiddenbay.com,thepiratebay.org,thepiratebay.vip,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,topeuropix.net,tpb.party,tpb.red,vidoz8.com,vidshare.tv,youdbox.com,mixdrop.co#$#abort-on-property-write _pop ++adblockplustape.com,adblockstreamtape.art,adblockstreamtape.site,adblockeronstreamtape.xyz,strcloud.club,strcloud.link,streamadblockplus.com,streamadblockplus.xyz,streamtape.to,streamtape.cc,streamtape.net,streamtape.xyz,streamtape.com,streamta.pe,strtapeadblock.me,strtape.cloud,strtape.site,strtape.tech,mixdrop.co#$#abort-on-property-write _pao +1tamilmv.cloud,incestflix.com,pastemytxt.com,ytmp3eu.com,9anime.to,zippyshare.com,uploadproper.com,uploadproper.net,masahub.net#$#abort-on-property-read _pop +xxxhdporno.net,indianpornvideo.org,hindixxxvideos.net,biter.tv#$#abort-on-property-read decodeURI +xhamster.com#$#abort-on-property-read wig-popunder; abort-on-property-write wit-popunder @@ -59794,8 +60941,8 @@ new file mode 100644 +youdbox.com,vudeo.net#$#abort-current-inline-script String.fromCharCode XMLHttpRequest +filecrypt.cc,filecrypt.co#$#abort-on-property-read isAdblock +hclips.com,upornia.com#$#abort-on-property-read adver -+141tube.com,18doujin.com,18yed.net,1piecemanga.com,1punchman-manga.com,1teentubeporn.com,1youngteenporn.com,3gaytube.com,3sexporn.com,3xamatorszex.hu,3xfaktor.hu,4archive.org,4porn4.com,502porn.com,5star-boys.com,6indianporn.com,8muses.xxx,8teenz.info,aagmaal.com,ablefast.com,absolugirl.com,absolutube.com,aflamsexnek.com,ah-me.com,ahri-hentai.com,al4a.com,allafricangirls.net,allcelebs.club,allporncartoons.com,allpussynow.com,allteensnude.net,allureamateurs.net,alotporn.com,amateurandreal.com,amateurbeachspy.com,amateurebonypics.com,amateurfapper.com,amateurfun.net,amateurstreams.pw,amateuryoungpics.com,amazingtrannies.com,animeindo.cc,animeindo.fun,animejpg.com,animekage.net,animeon.moe,annoncesescorts.com,antavasnasexkahani.com,anusling.info,anynude.net,arabxnx.com,articlix.com,asiancosplayporn.com,asianpornphoto.net,asianstubefuck.com,asianteenagefucking.com,asiashort.link,av-uncen.com,axporn.com,babesexpress.com,babesvagina.com,banglachoti-story.com,banglasexstories.net,bangx.org,barurotero.net,bbw.com.es,bbw6.com,bbwfest.com,bbwfuckpic.com,bdsm-fuck.com,bdsm-photos.com,bdsmporn.cc,bdsmstreak.com,beginningmanga.com,belloporno.com,bestblackgay.com,bestgrannies.com,besthdgayporn.com,besthentaitube.com,bestlist.top,bestpussypics.net,bestsextoons.com,bestshemaleclips.com,bigboobs.com.es,birdurls.com,bitearns.com,bitfly.io,bitporno.com,black-matures.com,black-porn-pics.org,blackamateursnaked.com,blackchubbymovies.com,blackedtube.com,blackmaturevideos.com,blackpornhq.com,blacksexmix.com,blackteen.link,blowjobamateur.net,blowxtube.com,bobolike.com,bolly-tube.com,bollywoodx.org,boolwowgirls.com,booru.eu,borwap.xxx,branitube.net,brazzersbabes.com,bucetaspeludas.com.br,bustmonkey.com,bustybloom.com,bustyfats.com,bustyshemaleporn.com,camarchive.tv,camcam.cc,cartoonmonstersporn.com,cartoonporncomics.info,cartoonvideos247.com,cbt-tube.net,cekc-tube.ru,celebrityleakednudes.com,celebritynakeds.com,celebsnudeworld.com,centralboyssp.com.br,cerdas.com,cfwives.com,chicasdesnudas.xxx,chopris.com,chubbyelders.com,chubbypornmpegs.com,cinemabg.net,classicxmovies.com,clicporn.com,clipwatching.com,clothing-mania.com,cocoporn.net,comicspornos.com,comicsvalley.com,comicxxx.eu,coolpornblog.com,crockotube.com,crossdresserhub.com,cryptoads.space,cuckold-videos.org,cuckold.it,czechsex.net,czechvideo.org,daftporn.com,debridup.com,deepthroat-porn.com,desihoes.com,desimms.co,desimmshd.com,digitalbeautybabes.com,diniofollando.com,dirtybadger.com,dirtyfox.net,dirtygangbangs.com,dirtyporn.cc,dirtytamil.com,dlouha-videa.cz,domahatv.com,domahi.net,donna-cerca-uomo.com,douxporno.com,dragon-ball-super.net,drsnysvet.cz,dumpz.net,ebonyamateurphoto.com,ebonyassclips.com,efappy.com,efxx.ru,ehotpics.com,ero18.cc,eroclips.org,eroprofile.com,erotichun.com,eroticteensphoto.net,escort-in-italia.com,escortconrecensione.com,everysextube.com,exe.app,ezbit.co.in,familyporn.tv,famosas-desnudas.org,famousnipple.com,faperplace.com,fapset.com,fatblackmatures.com,fattubevideos.net,fatwhitebutt.com,fatxxxtube.com,fc.lc,fcc.lc,fcdot.lc,femdomworld.com,femjoybabes.com,fetish-bb.com,fetish-tv.com,ffjav.com,fickenporno.com,fifisex.com,fileone.tv,filman.cc,filmstreamy.com,findtranny.com,finding-camellia.com,finevids.xxx,folgenporno.com,free-gay-clips.com,free-trannyporn.com,freeadultvideos.cc,freefatpornmovies.com,freegrannypornmovies.com,freepornhdonlinegay.com,freepornjpg.com,freepornstream.cc,freesex-1.com,freexxxvideos.pro,freshfappening.com,freshscat.com,freshshemaleporn.com,frprn.com,ftopx.com,fuckingsession.com,fuckmilf.net,fuckvideosxxx.com,furryporn.xxx,futbolhoy.com.ar,gangbangasm.com,gatasdatv.com,gay-streaming.com,gayporndepot.com,gaypornlove.net,gaystream.pw,gayvideo.me,gayxxxtube.net,generalpornmovies.com,get-to.link,ghettopearls.com,gifcandy.net,girl-creampie.com,girlfriendsexphoto.com,girlfuckgalleries.com,girlnude.link,girlsboom.ru,gojav.co,goloeporno.com,gonzoporn.cc,good-babes.com,gotporn.com,grannyxxxtube.net,greatestshemales.com,greatnass.com,greensmut.com,haho.moe,hanimesubth.com,hardfacefuck.com,hcbdsm.com,hd-xxx.me,hdbigassporn.com,hdgayporn.net,hdjavonline.com,hdpicsx.com,hdpornzap.com,hdtubesex.net,hentai-hot.com,hentai-senpai.net,hentai20.com,hentaiarena.com,hentaibrasil.info,hentaicore.org,hentaienglish.com,hentaihand.com,hentaiporn.com.es,hentaiporno.xxx,hentaitk.net,hentaiwagon.com,hentaiyes.com,heroine-xxx.com,hoporno.net,hornbunny.com,hornyfanz.com,hotgirl.biz,hotmarathistories.com,hotmaturegirlfriends.com,hotmirrorpics.com,hotmomsnude.com,hotntubes.com,ibradome.com,iceporn.tv,ichineseporn.com,ideal-teens.com,idealhentai.com,ileak.xyz,imgbaron.com,imgrock.net,imgrock.pw,imgtown.net,imgtown.pw,incontri-in-italia.com,indianxxx.us,ingyenszexvideok.hu,isohunt.lol,isohuntz.net,j-pussy.com,japaneseasmr.com,japanfuck.com.es,japantaboo.com,jav-xx.com,jav380.com,javbest.xyz,javbix.com,javboys.com,javfav.com,javgrab.com,javhdfree.net,javhun.com,javix.net,javlovers.club,javmelon.com,javnew.net,javonline.space,javpool.com,javrave.club,javtiful.com,juicy3dsex.com,jujmanga.com,justsexpictures.com,kak.xxx,kenzato.uk,kiaporn.com,kiminime.com,kinkyporn.cc,klikmanga.com,klmag.net,klmanga.net,komikstation.com,komiraw.com,komisanwamanga.com,kompoz2.com,kropic.com,latinohentai.com,ldkmanga.com,lesboluvin.com,lewdweb.net,likuoo.video,limetorrents.info,linkdrop.net,ljcam.net,longporn.xyz,loverscum.com,luscious.net,lustteens.net,mainporno.com,majesticbabes.com,mamochki.info,manga18fx.com,mangadass.com,mangadna.com,mangameta.com,mangamovil.net,mangaonline.fun,mangarussia.com,manhwa18.cc,manikusa.com,mature4.net,maturepornjungle.com,maturepornphoto.com,maturexxxclips.com,maturexxxtube.net,maxtubeporn.net,mdtaiwan.com,megapornfreehd.com,mercenarymanga.online,migliori-escort.com,milf300.com,milftoon.xxx,mobifuq.com,mom-pussy.com,mommy-pussy.com,mommyporntube.com,momspost.com,moregirls.org,movies18.net,moviesxxx.cc,mp4-porn.net,mrcong.com,muchfap.com,multporn.net,musvozimbabwenews.com,mycumx.com,mydesibaba.com,mydesiboobs.com,myfreevintageporn.com,mygalls.com,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,myreadingmanga.info,myvintageporntube.com,myyoungbabe.com,mzansifun.com,nakedamateurs.link,nakedgirls.link,nakedmature.sexy,nakedselfphotos.com,nangiphotos.com,naughtyza.co.za,netfapx.com,nicesexytoons.com,nicheporno.com,nightlifeporn.com,niknieg.com,novinhassafadinhas.com,novoboobs.com,novoerotica.com,novohot.com,nsfw247.to,nude-beach-tube.com,nude-teen-18.com,nudeblackgirlfriend.com,nudedxxx.com,nudemomshots.com,nudevista.at,nudevista.be,nudevista.com.br,nudevista.com.pl,nudevista.es,nudevista.net,nudevista.se,nudistic.com,ok.xxx,onepiece-manga-online.net,onepunch.online,onlinefetishporn.cc,onlineporn24.com,onlinepornushka.com,onlinesextube.com,onlinexxx.cc,onlyfullporn.com,onlygangbang.com,onlygayvideo.com,onlyhgames.com,openpirate.org,owllink.net,palimas.tv,pbabes.com,pbangels.com,pearl-perm.com,peetube.cc,pelisandseries.net,penis-milking.com,penisbuyutucum.net,perfectgirls.es,perfectgirls.net,perfektdamen.co,petitegirlsnude.com,phatdaddygayporn.com,picsfuck.org,picspornamateur.com,pinayot.com,pinayviralsexx.com,pinflix.com,pinkporno.com,pinkporno.xxx,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.live,pirateproxy.surf,pirateproxy.us,plumpxxxtube.com,plusone8.com,poapan.xyz,porn-image.net,porn-sexypics.com,porn.goshow.tv,pornabcd.com,pornchaos.org,pornchimp.com,pornditt.com,porngayclips.com,porngirlstube.com,pornhub-teen.com,porngq.com,pornhat.com,pornhd.com,pornhd8k.me,pornhd8k.net,pornhdin.com,pornhegemon.com,pornken.com,pornkickme.com,pornleech.io,pornloupe.com,pornmam.com,pornmom.net,pornmoms.org,pornmonde.com,porno-doma.com,porno-porno.net,porno-up.net,porno01.net,porno666.com,pornoanimexxx.com,pornobr.ninja,pornocolegialas.org,pornocrados.com,pornomanoir.com,pornone.com,pornonline.cc,pornoperra.com,pornoreino.com,pornovideoshub.com,pornpapa.com,pornrabbit.com,pornrox.com,pornsearchengine.com,pornsex-pics.com,pornsilo.net,porntin.com,porntry.com,porntube18.cc,pornuj.cz,pornwatchers.com,pornxxxvideos.net,pornyeah.com,pornzone.com,povaddict.com,primewire.li,prostoporno.mobi,pulandit.com,pureandsexy.org,pussymaturephoto.com,pussystate.com,putainporno.com,pvideo.cz,pygodblog.com,pinayvids.com,qqxnxx.com,queerdiary.com,raccontimilu.com,raccontivietati.com,ragnarokmanga.com,rapidzona.tv,rawofficethumbs.com,readfireforce.com,realgfporn.com,realitybrazzers.com,redamateurtube.com,redgay.net,rednowtube.com,redpornblog.com,redpornnow.com,repicsx.com,rettube.com.pl,rexporn.com,risefromrubble.com,roma.escortsuper.com,rossoporn.com,rounddreams.com,rranime.com,rule34hentai.net,rushporn.com,rushporn.xxx,russkoevideoonline.com,rusteensex.com,saavndownload.com,santoinferninho.com,saradahentai.com,savelink.site,sawstory.com,scallyguy.com,screenhumor.com,see-xxx.com,seed69.com,sekaikomik.live,seksrura.net,seneporno.com,seoul-station-druid.com,sesso-escort.com,sex-babki.com,sex-pic.info,sexemix.com,sexgay18.com,sexmv.com,sexoamadorcorno.com,sexoverdose.com,sexpuss.org,sexrura.com,sexrura.pl,sextubeset.com,sexy-games.eu,sexy-parade.com,sexy-youtubers.com,sexyasianteenspics.com,sexyebonyteen.com,sexynakeds.com,sexynudetoons.com,sexyteengirlfriends.net,shelovesporn.com,shemalemovies.us,short.croclix.me,sissytube.net,sitarchive.com,skinnyhq.com,sleazedepot.com,smotret-porno-onlain.com,solomax-levelnewbie.online,solopornoitaliani.xxx,somulhergostosa.com,spy-x-family.online,spyvoyeur.net,stalkerbt.ru,stileproject.com,stream-69.com,streamextreme.cc,streamporn.cc,subdivx.com,submissive-wife.net,supremebabes.com,sweetgirl.org,sxyprn.com,sxyprn.net,szexkepek.net,szexvideok.hu,tabooporn.tv,tamilsexstory.net,taxi69.com,teenage-nudists.net,teenamateurphoto.com,teenbabe.link,teencamx.com,teenpornjpg.com,teenskitten.com,teenxxxporn.pro,telugusexkathalu.com,temptingangels.org,tenseishitaraslimedattaken-manga.com,thebarchive.com,thebeginningaftertheend.online,thecartoonporntube.com,thefamilyguyporn.com,thehentaiworld.com,thehiddenbay.com,thelesbianporn.com,thematurexxx.com,thepiratebay.org,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,theproxy.how,theyarehuge.com,thousandbabes.com,tii.ai,tmohentai.com,tokyorevengersmanga.com,tomatespodres.com,tomb-raider-king.com,toonanime.co,topsitestreaming.info,torrent-pirat.com,torture1.net,tpb.party,tpb.red,tpornstars.com,trahodom.com,tranny6.com,trannylibrary.com,trannysexmpegs.com,trannyxxxtube.net,transexuales.gratis,tryboobs.com,ts-mpegs.com,tsmovies.com,tubegaytube.com,tubepornnow.com,tuberzporn.com,tubexo.tv,tubous.com,tuhentaionline.com,turbogvideos.com,tvporn.cc,uflash.tv,uiz.io,uiz.one,ulsex.net,uncensoredleak.com,uniqueten.net,up-load.io,upicsz.com,usaxtube.com,ver-mangas-porno.com,verpeliculasporno.gratis,videos-xxx.biz,videosdotados.com,videosputas.xxx,videosxxxporno.gratis,videosxxxputas.com,videoxxx.cc,vidspace.io,viewmature.com,viralxvideos.es,vivud.com,vkrovatku.com,voyeurblog.net,voyeurxxxsex.com,vqporn.com,vqtube.com,vzrosliedamy.com,wannafreeporn.com,wantmature.com,watchfreenet.org,watchporn.cc,watchporninpublic.com,watchseries1.video,wetpussy.sexy,wetsins.com,wonporn.com,wow-mature.com,wowxxxtube.com,x-movie7.com,x-videos.name,x24.video,xanimeporn.com,xasiat.com,xfrenchies.com,xhamsterteen.com,xkeezmovies.com,xlecx.org,xmoviesforyou.net,xnxx-downloader.net,xnxx.party,xnxxhamster.net,xnxxvideo.pro,xpicse.com,xsexpics.com,xspiel.com,xsportshd.com,xvideos-downloader.net,xvideos.name,xvideosxporn.com,xxx-videos.org,xxxcomics.org,xxxhardcoretube.com,xxxonline.cc,xxxopenload.com,xxxputas.net,xxxrapid.com,xxxtor.com,xxxtubeset.com,xxxxselfie.com,y-porn.com,yaoiscan.com,yona-yethu.co.za,yongfucknaked.com,youngbelle.net,youngerasiangirl.net,youngerporn.mobi,youngselfpics.net,youngsexygfs.com,youpornfm.com,yourbitches.com,youvideoporno.mobi,ytanime.tv#$#abort-current-inline-script document.querySelectorAll popMagic -+01fmovies.com,123gostream.tv,123movies.ai,123movies.bike,123freemovies.net,5movies.cloud,9anime.vip,9anime.to,9xbuddy.org,9xupload.asia,9xupload.xyz,allkindonline.com,allviid.xyz,allviids.xyz,apkmody.io,animeindo.asia,animeindo.video,animepahe.com,anitube.be,anitube.cx,anitube.cz,babeporn.net,babeporn.org,baomay01.com,baytorrent.eu.org,beammeup.com.au,birdurls.com,bkworldtube.com,bmovies.vip,bolssc.com,bonstreams.net,cimaclub.in,clicknupload.co,clicknupload.link,clicknupload.org,clicknupload.to,clipwatching.com,cloudvideo.tv,dailyuploads.net,databasegdriveplayer.co,desiupload.co,desiupload.in,dontorrent.net,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.la,dood.wf,dood.ws,doodstream.co,doodstream.com,doramasmp4.com,downloadgameps3.com,eio.io,emovies.io,eplayvid.com,exe.app,exee.io,extreme-down.tv,extreme-download.im,exy.ai,ffmovies.ru,ffmovies.sc,ffmovies.to,files.im,filmesonlinegratis.com,filmesonlinex.co,flashx.net,flashx.pw,flashx.tv,flixtor.to,fmovie.info,fmovies.cafe,fmovies.coffee,fmovies.love,fmovies.media,fmovies.mx,fmovies.name,fmovies.pl,fmovies.pub,fmovies.solar,fmovies.taxi,fmovies.to,fmovies.top,fmovies.town,fmovies.world,fmovies.wtf,fmovies2.io,fmovies2.org,fmoviesgo.me,fmovieson.com,fmoviesonline4u.com,g5u.pw,gdriveplayer.us,gismeteo.ua,globaltv.com,gogoanime.cloud,gogoanimes.tv,gogoanime.be,gogoanime.film,gogoanime.mom,gogoanime.pe,gomovies.film,gomovies.vet,gomoviesfree.page,gomovieshub.io,goved.org,govid.co,gplinks.co,hdpopcorns.eu,hdpopcorns.org,hdpopcorns.world,holavid.com,hotstar.com,hxfile.co,indishare.org,ishort.in,isohunt.lol,isohuntz.net,javtiful.com,k-vid.net,keeplinks.co,keeplinks.org,keepvid.tube,keepvid.work,kiss-anime.ws,kissanime.cool,kissasian.vip,kshows.to,letsupload.co,letsupload.io,liivideo.com,limetorrents.info,lookmovie.ag,lookmovie.io,mangamanga.ml,marblepepper.com,mediumarticles.com,mixdrop.ch,movies123.tel,movies123.xyz,movieshub.link,movs4u.to,mydramalist.su,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,mywatchseries.stream,myyouporn.com,nulled-scripts.cc,ohmovies.me,openloadmov.net,openpirate.org,owllink.net,pandafiles.com,pctfenix.com,pctmix.com,pctfenix.com,pctnew.org,pctreload.com,pelismart.com,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.earth,pirateproxy.live,pirateproxy.surf,pirateproxy.us,playtube.ws,pornhub.com,projectfreetv.fun,protect-mylinks.com,pstream.net,putlocker.vip,putlocker123.me,putlockers.cr,redtube.com,revivelink.com,seehd.nl,series9.ac,series9.biz,series9.fun,seuseriado.club,shahid4u.onl,sharetv.com,shortearn.eu,shortearn.in,shotly.io,sidereel.com,solarmovie.vip,strcloud.club,strcloud.link,streamcloud.eu,streamloverx.com,streamtapeadblock.art,strtape.cloud,strtape.site,strtape.tech,suzihaza.com,thefmovies.me,thehiddenbay.com,thepiratebay.org,thepiratebay.vip,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,theproxy.how,tornadomovies.co,torrentgalaxy.to,torrentkingnow.com,tpb.party,tpb.red,tv2me.net,upgrand.site,upgrand.xyz,uploadbaz.me,uploadbaz.net,upstream.to,uptostream.com,uqload.com,userload.co,vidbm.com,vidcloud9.com,vidclouds.icu,vidnext.net,vidshare.tv,vidsrc.me,voiranime.com,vudeo.net,vumoo.to,watch-series.la,watchepisodes4.com,watchepisodeseries.su,watchfreenet.com,watchkobe.info,watchmovie.movie,watchmoviesfree.org,watchseries.net,watchseries.ninja,watchseries1.video,watchserieshd.online,watchserieshd.tv,watchseriesnet.net,watchtvseries.video,worldgreynews.com,xmovies8.cool,xxxvideotube.net,yesmovies.mom,yesmovies.so,yesmovies.vc,ymovies.vip,youtubecdn.com,zpaste.net,zplayer.live#$#abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script Math /atob|break/; ++141tube.com,18doujin.com,18yed.net,1piecemanga.com,1punchman-manga.com,1teentubeporn.com,1youngteenporn.com,3gaytube.com,3sexporn.com,3xamatorszex.hu,3xfaktor.hu,4archive.org,4porn4.com,502porn.com,5star-boys.com,6indianporn.com,8muses.xxx,8teenz.info,aagmaal.com,ablefast.com,absolugirl.com,absolutube.com,aflamsexnek.com,ah-me.com,ahri-hentai.com,al4a.com,allafricangirls.net,allcelebs.club,allporncartoons.com,allpussynow.com,allteensnude.net,allureamateurs.net,alotporn.com,amateurandreal.com,amateurbeachspy.com,amateurebonypics.com,amateurfapper.com,amateurfun.net,amateurstreams.pw,amateuryoungpics.com,amazingtrannies.com,animeindo.cc,animeindo.fun,animejpg.com,animekage.net,animeon.moe,annoncesescorts.com,antavasnasexkahani.com,anusling.info,anynude.net,arabxnx.com,articlix.com,asiancosplayporn.com,asianpornphoto.net,asianstubefuck.com,asianteenagefucking.com,asiashort.link,av-uncen.com,axporn.com,babesexpress.com,babesvagina.com,banglachoti-story.com,banglasexstories.net,bangx.org,barurotero.net,bbw.com.es,bbw6.com,bbwfest.com,bbwfuckpic.com,bdsm-fuck.com,bdsm-photos.com,bdsmporn.cc,bdsmstreak.com,beginningmanga.com,belloporno.com,bestblackgay.com,bestgrannies.com,besthdgayporn.com,besthentaitube.com,bestlist.top,bestpussypics.net,bestsextoons.com,bestshemaleclips.com,bigboobs.com.es,birdurls.com,bitearns.com,bitfly.io,bitporno.com,black-matures.com,black-porn-pics.org,blackamateursnaked.com,blackchubbymovies.com,blackedtube.com,blackmaturevideos.com,blackpornhq.com,blacksexmix.com,blackteen.link,blowjobamateur.net,blowxtube.com,bobolike.com,bolly-tube.com,bollywoodx.org,boolwowgirls.com,booru.eu,borwap.xxx,branitube.net,brazzersbabes.com,bucetaspeludas.com.br,bustmonkey.com,bustybloom.com,bustyfats.com,bustyshemaleporn.com,camarchive.tv,camcam.cc,cartoonmonstersporn.com,cartoonporncomics.info,cartoonvideos247.com,cbt-tube.net,cekc-tube.ru,celebrityleakednudes.com,celebritynakeds.com,celebsnudeworld.com,centralboyssp.com.br,cerdas.com,cfwives.com,chicasdesnudas.xxx,chopris.com,chubbyelders.com,chubbypornmpegs.com,cinemabg.net,classicxmovies.com,clicporn.com,clipwatching.com,clothing-mania.com,cocoporn.net,comicspornos.com,comicsvalley.com,comicxxx.eu,coolpornblog.com,crockotube.com,crossdresserhub.com,cryptoads.space,cuckold-videos.org,cuckold.it,czechsex.net,czechvideo.org,daftporn.com,debridup.com,deepthroat-porn.com,desihoes.com,desimms.co,desimmshd.com,digitalbeautybabes.com,diniofollando.com,dirtybadger.com,dirtyfox.net,dirtygangbangs.com,dirtyporn.cc,dirtytamil.com,dlouha-videa.cz,domahatv.com,domahi.net,donna-cerca-uomo.com,douxporno.com,dragon-ball-super.net,drsnysvet.cz,dumpz.net,ebonyamateurphoto.com,ebonyassclips.com,efappy.com,efxx.ru,ehotpics.com,ero18.cc,eroclips.org,eroprofile.com,erotichun.com,eroticteensphoto.net,escort-in-italia.com,escortconrecensione.com,everysextube.com,exe.app,ezbit.co.in,familyporn.tv,famosas-desnudas.org,famousnipple.com,faperplace.com,fapset.com,fatblackmatures.com,fattubevideos.net,fatwhitebutt.com,fatxxxtube.com,fc.lc,fcc.lc,fcdot.lc,femdomworld.com,femjoybabes.com,fetish-bb.com,fetish-tv.com,ffjav.com,fickenporno.com,fifisex.com,fileone.tv,filman.cc,filmstreamy.com,findtranny.com,finding-camellia.com,finevids.xxx,folgenporno.com,free-gay-clips.com,free-trannyporn.com,freeadultvideos.cc,freefatpornmovies.com,freegrannypornmovies.com,freepornhdonlinegay.com,freepornjpg.com,freepornstream.cc,freesex-1.com,freexxxvideos.pro,freshfappening.com,freshscat.com,freshshemaleporn.com,frprn.com,ftopx.com,fuckingsession.com,fuckmilf.net,fuckvideosxxx.com,furryporn.xxx,futbolhoy.com.ar,gangbangasm.com,gatasdatv.com,gay-streaming.com,gayporndepot.com,gaypornlove.net,gaystream.pw,gayvideo.me,gayxxxtube.net,generalpornmovies.com,get-to.link,ghettopearls.com,gifcandy.net,girl-creampie.com,girlfriendsexphoto.com,girlfuckgalleries.com,girlnude.link,girlsboom.ru,gojav.co,goloeporno.com,gonzoporn.cc,good-babes.com,gotporn.com,grannyxxxtube.net,greatestshemales.com,greatnass.com,greensmut.com,haho.moe,hanimesubth.com,hardfacefuck.com,hcbdsm.com,hd-xxx.me,hdbigassporn.com,hdgayporn.net,hdjavonline.com,hdpicsx.com,hdpornzap.com,hdtubesex.net,hentai-hot.com,hentai-senpai.net,hentai20.com,hentai3z.com,hentaiarena.com,hentaibrasil.info,hentaicore.org,hentaienglish.com,hentaihand.com,hentaiporn.com.es,hentaiporno.xxx,hentaitk.net,hentaiwagon.com,hentaiyes.com,heroine-xxx.com,hoporno.net,hornbunny.com,hornyfanz.com,hotgirl.biz,hotmarathistories.com,hotmaturegirlfriends.com,hotmirrorpics.com,hotmomsnude.com,hotntubes.com,ibradome.com,iceporn.tv,ichineseporn.com,ideal-teens.com,idealhentai.com,ileak.xyz,imgbaron.com,imgrock.net,imgrock.pw,imgtown.net,imgtown.pw,incontri-in-italia.com,indianxxx.us,ingyenszexvideok.hu,isohunt.lol,isohuntz.net,j-pussy.com,japaneseasmr.com,japanfuck.com.es,japantaboo.com,jav-xx.com,jav380.com,javbest.xyz,javbix.com,javboys.com,javfav.com,javgrab.com,javhdfree.net,javhun.com,javix.net,javlovers.club,javmelon.com,javnew.net,javonline.space,javpan.net,javpool.com,javrave.club,javtiful.com,juicy3dsex.com,jujmanga.com,justsexpictures.com,kak.xxx,kenzato.uk,kiaporn.com,kiminime.com,kinkyporn.cc,klikmanga.com,klmag.net,klmanga.net,komikstation.com,komiraw.com,komisanwamanga.com,kompoz2.com,kropic.com,latinohentai.com,ldkmanga.com,lesboluvin.com,lewdweb.net,likuoo.video,limetorrents.info,linkdrop.net,ljcam.net,longporn.xyz,loverscum.com,luscious.net,lustteens.net,mainporno.com,majesticbabes.com,mamochki.info,manga18fx.com,mangadass.com,mangadna.com,mangakio.com,mangameta.com,mangamovil.net,mangaonline.fun,mangarussia.com,manhwa18.cc,manikusa.com,mature4.net,maturepornjungle.com,maturepornphoto.com,maturexxxclips.com,maturexxxtube.net,maxtubeporn.net,mdtaiwan.com,megapornfreehd.com,mercenarymanga.online,migliori-escort.com,milf300.com,milftoon.xxx,mobifuq.com,mom-pussy.com,mommy-pussy.com,mommyporntube.com,momspost.com,moregirls.org,movies18.net,moviesxxx.cc,mp4-porn.net,mrcong.com,muchfap.com,multporn.net,musvozimbabwenews.com,mycumx.com,mydesibaba.com,mydesiboobs.com,myfreevintageporn.com,mygalls.com,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,myreadingmanga.info,myvintageporntube.com,myyoungbabe.com,mzansifun.com,nakedamateurs.link,nakedgirls.link,nakedmature.sexy,nakedselfphotos.com,nangiphotos.com,naughtyza.co.za,netfapx.com,nicesexytoons.com,nicheporno.com,nightlifeporn.com,niknieg.com,novinhassafadinhas.com,novoboobs.com,novoerotica.com,novohot.com,nsfw247.to,nude-beach-tube.com,nude-teen-18.com,nudeblackgirlfriend.com,nudedxxx.com,nudemomshots.com,nudevista.at,nudevista.be,nudevista.com.br,nudevista.com.pl,nudevista.es,nudevista.net,nudevista.se,nudistic.com,ok.xxx,onepiece-manga-online.net,onepunch.online,onlinefetishporn.cc,onlineporn24.com,onlinepornushka.com,onlinesextube.com,onlinexxx.cc,onlyfullporn.com,onlygangbang.com,onlygayvideo.com,onlyhgames.com,openpirate.org,owllink.net,palimas.tv,pbabes.com,pbangels.com,pearl-perm.com,peetube.cc,pelisandseries.net,penis-milking.com,penisbuyutucum.net,perfectgirls.es,perfectgirls.net,perfektdamen.co,petitegirlsnude.com,phatdaddygayporn.com,pianmanga.com,picsfuck.org,picspornamateur.com,pinayot.com,pinayviralsexx.com,pinflix.com,pinkporno.com,pinkporno.xxx,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.live,pirateproxy.surf,pirateproxy.us,plumpxxxtube.com,plusone8.com,poapan.xyz,porn-image.net,porn-sexypics.com,porn.goshow.tv,pornabcd.com,pornchaos.org,pornchimp.com,pornditt.com,porngayclips.com,porngirlstube.com,pornhub-teen.com,porngq.com,pornhat.com,pornhd.com,pornhd8k.me,pornhd8k.net,pornhdin.com,pornhegemon.com,pornken.com,pornkickme.com,pornleech.io,pornloupe.com,pornmam.com,pornmom.net,pornmoms.org,pornmonde.com,porno-doma.com,porno-porno.net,porno-up.net,porno01.net,porno666.com,pornoanimexxx.com,pornobr.ninja,pornocolegialas.org,pornocrados.com,pornomanoir.com,pornone.com,pornonline.cc,pornoperra.com,pornoreino.com,pornovideoshub.com,pornpapa.com,pornrabbit.com,pornrox.com,pornsearchengine.com,pornsex-pics.com,pornsilo.net,porntin.com,porntry.com,porntube18.cc,pornuj.cz,pornwatchers.com,pornxxxvideos.net,pornyeah.com,pornzone.com,povaddict.com,primewire.li,prostoporno.mobi,pulandit.com,pureandsexy.org,pussymaturephoto.com,pussystate.com,putainporno.com,pvideo.cz,pygodblog.com,pinayvids.com,qqxnxx.com,queerdiary.com,raccontimilu.com,raccontivietati.com,ragnarokmanga.com,rapidzona.tv,rawofficethumbs.com,readfireforce.com,realgfporn.com,realitybrazzers.com,redamateurtube.com,redgay.net,rednowtube.com,redpornblog.com,redpornnow.com,repicsx.com,rettube.com.pl,rexporn.com,risefromrubble.com,roma.escortsuper.com,rossoporn.com,rounddreams.com,rranime.com,rule34hentai.net,rushporn.com,rushporn.xxx,russkoevideoonline.com,rusteensex.com,saavndownload.com,sankakucomplex.com,santoinferninho.com,saradahentai.com,savelink.site,sawstory.com,scallyguy.com,screenhumor.com,see-xxx.com,seed69.com,sekaikomik.live,seksrura.net,seneporno.com,seoul-station-druid.com,sesso-escort.com,sex-babki.com,sex-pic.info,sexemix.com,sexgay18.com,sexmv.com,sexoamadorcorno.com,sexoverdose.com,sexpuss.org,sexrura.com,sexrura.pl,sextubeset.com,sexy-games.eu,sexy-parade.com,sexy-youtubers.com,sexyasianteenspics.com,sexyebonyteen.com,sexynakeds.com,sexynudetoons.com,sexyteengirlfriends.net,shelovesporn.com,shemalemovies.us,short.croclix.me,sissytube.net,sitarchive.com,skinnyhq.com,sleazedepot.com,smotret-porno-onlain.com,solomax-levelnewbie.online,solopornoitaliani.xxx,somulhergostosa.com,spy-x-family.online,spyvoyeur.net,stalkerbt.ru,stileproject.com,stream-69.com,streamextreme.cc,streamporn.cc,subdivx.com,submissive-wife.net,supremebabes.com,sweetgirl.org,sxyprn.com,sxyprn.net,szexkepek.net,szexvideok.hu,tabooporn.tv,tamilsexstory.net,taxi69.com,teenage-nudists.net,teenamateurphoto.com,teenbabe.link,teencamx.com,teenpornjpg.com,teenskitten.com,teenxxxporn.pro,telugusexkathalu.com,temptingangels.org,tenseishitaraslimedattaken-manga.com,thebarchive.com,thebeginningaftertheend.online,thecartoonporntube.com,thefamilyguyporn.com,thehentaiworld.com,thehiddenbay.com,thelesbianporn.com,thematurexxx.com,thepiratebay.org,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,theproxy.how,theyarehuge.com,thothd.com,thousandbabes.com,tii.ai,tmohentai.com,tok-thots.com,tokyorevengersmanga.com,tomatespodres.com,tomb-raider-king.com,toonanime.co,topsitestreaming.info,torrent-pirat.com,torture1.net,tpb.party,tpb.red,tpornstars.com,trahodom.com,tranny6.com,trannylibrary.com,trannysexmpegs.com,trannyxxxtube.net,transexuales.gratis,tryboobs.com,ts-mpegs.com,tsmovies.com,tubegaytube.com,tubepornnow.com,tuberzporn.com,tubexo.tv,tubous.com,tuhentaionline.com,turbogvideos.com,tvporn.cc,uflash.tv,uiz.io,uiz.one,ulsex.net,uncensoredleak.com,uniqueten.net,up-load.io,upicsz.com,usaxtube.com,ver-mangas-porno.com,verpeliculasporno.gratis,videos-xxx.biz,videosdotados.com,videosputas.xxx,videosxxxporno.gratis,videosxxxputas.com,videoxxx.cc,vidspace.io,viewmature.com,viralxvideos.es,vivud.com,vkrovatku.com,voyeurblog.net,voyeurxxxsex.com,vqporn.com,vqtube.com,vzrosliedamy.com,wannafreeporn.com,wantmature.com,watchfreenet.org,watchporn.cc,watchporninpublic.com,watchseries1.video,wetpussy.sexy,wetsins.com,wonporn.com,wow-mature.com,wowxxxtube.com,x-movie7.com,x-videos.name,x24.video,xanimeporn.com,xasiat.com,xfrenchies.com,xhamsterteen.com,xkeezmovies.com,xlecx.org,xmoviesforyou.net,xnxx-downloader.net,xnxx.party,xnxxhamster.net,xnxxvideo.pro,xpicse.com,xsexpics.com,xspiel.com,xsportshd.com,xvideos-downloader.net,xvideos.name,xvideosxporn.com,xxx-videos.org,xxxcomics.org,xxxhardcoretube.com,xxxonline.cc,xxxopenload.com,xxxputas.net,xxxrapid.com,xxxtor.com,xxxtubeset.com,xxxxselfie.com,y-porn.com,yaoiscan.com,yona-yethu.co.za,yongfucknaked.com,youngbelle.net,youngerasiangirl.net,youngerporn.mobi,youngselfpics.net,youngsexygfs.com,youpornfm.com,yourbitches.com,youvideoporno.mobi,ytanime.tv#$#abort-current-inline-script document.querySelectorAll popMagic ++01fmovies.com,123gostream.tv,123movies.ai,123movies.bike,123freemovies.net,5movies.cloud,9anime.vip,9anime.to,9xbuddy.org,9xupload.asia,9xupload.xyz,allkindonline.com,allviid.xyz,allviids.xyz,apkmody.io,animeindo.asia,animeindo.video,animepahe.com,anitube.be,anitube.cx,anitube.cz,babeporn.net,babeporn.org,baomay01.com,baytorrent.eu.org,beammeup.com.au,birdurls.com,bkworldtube.com,bmovies.vip,bolssc.com,bonstreams.net,cimaclub.in,clicknupload.co,clicknupload.link,clicknupload.org,clicknupload.to,clipwatching.com,cloudvideo.tv,dailyuploads.net,databasegdriveplayer.co,desiupload.co,desiupload.in,dontorrent.net,dood.pm,dood.so,dood.to,dood.video,dood.watch,dood.la,dood.wf,dood.ws,doodstream.co,doodstream.com,doramasmp4.com,downloadgameps3.com,eio.io,emovies.io,eplayvid.com,exe.app,exee.io,extreme-down.tv,extreme-download.im,exy.ai,ffmovies.ru,ffmovies.sc,ffmovies.to,files.im,filmesonlinegratis.com,filmesonlinex.co,flashx.net,flashx.pw,flashx.tv,flixtor.to,fmovie.info,fmovies.cafe,fmovies.coffee,fmovies.love,fmovies.media,fmovies.mx,fmovies.name,fmovies.pl,fmovies.pub,fmovies.solar,fmovies.taxi,fmovies.to,fmovies.top,fmovies.town,fmovies.world,fmovies.wtf,fmovies2.io,fmovies2.org,fmoviesgo.me,fmovieson.com,fmoviesonline4u.com,g5u.pw,gdriveplayer.us,gismeteo.ua,globaltv.com,gogoanime.cloud,gogoanimes.tv,gogoanime.be,gogoanime.film,gogoanime.mom,gogoanime.pe,gomovies.film,gomovies.vet,gomoviesfree.page,gomovieshub.io,goved.org,govid.co,gplinks.co,hdpopcorns.eu,hdpopcorns.org,hdpopcorns.world,holavid.com,hotstar.com,hxfile.co,indishare.org,ishort.in,isohunt.lol,isohuntz.net,javtiful.com,k-vid.net,keeplinks.co,keeplinks.org,keepvid.tube,keepvid.work,kiss-anime.ws,kissanime.cool,kissasian.vip,kshows.to,letsupload.co,letsupload.io,liivideo.com,limetorrents.info,lookmovie.ag,lookmovie.io,mangamanga.ml,marblepepper.com,mediumarticles.com,mixdrop.ch,movies123.tel,movies123.xyz,movieshub.link,movs4u.to,mydramalist.su,mypiratebay.best,mypiratebay.club,mypiratebay.co,mypiratebay.life,mypiratebay.live,mypiratebay.me,mypiratebay.surf,mypiratebay.win,mypiratebay.work,mypiratebay.wtf,mypiratebay.xyz,mywatchseries.stream,myyouporn.com,nulled-scripts.cc,ohmovies.me,openloadmov.net,openpirate.org,owllink.net,pandafiles.com,pctfenix.com,pctmix.com,pctfenix.com,pctnew.org,pctreload.com,pelismart.com,piratebay.cloud,piratebay.live,piratebay.party,piratebay.world,piratebayproxy.live,piratebays.wtf,pirateproxy.earth,pirateproxy.live,pirateproxy.surf,pirateproxy.us,playtube.ws,pornhub.com,projectfreetv.fun,protect-mylinks.com,pstream.net,putlocker.vip,putlocker123.me,putlockers.cr,redtube.com,revivelink.com,seehd.nl,series9.ac,series9.biz,series9.fun,seuseriado.club,shahid4u.onl,sharetv.com,shortearn.eu,shortearn.in,shotly.io,sidereel.com,solarmovie.vip,sportsonline.to,strcloud.club,strcloud.link,streamcloud.eu,streamloverx.com,streamtapeadblock.art,strtape.cloud,strtape.site,strtape.tech,suzihaza.com,thefmovies.me,thehiddenbay.com,thepiratebay.org,thepiratebay.vip,thepiratebay.zone,thepiratebay0.org,thepiratebay10.org,theproxy.how,tornadomovies.co,torrentgalaxy.to,torrentkingnow.com,tpb.party,tpb.red,tv2me.net,upgrand.site,upgrand.xyz,uploadbaz.me,uploadbaz.net,upstream.to,uptostream.com,uqload.com,userload.co,vidbm.com,vidcloud9.com,vidclouds.icu,vidnext.net,vidshare.tv,vidsrc.me,voiranime.com,vudeo.net,vumoo.to,watch-series.la,watchepisodes4.com,watchepisodeseries.su,watchfreenet.com,watchkobe.info,watchmovie.movie,watchmoviesfree.org,watchseries.net,watchseries.ninja,watchseries1.video,watchserieshd.online,watchserieshd.tv,watchseriesnet.net,watchtvseries.video,worldgreynews.com,xmovies8.cool,xxxvideotube.net,yesmovies.mom,yesmovies.so,yesmovies.vc,ymovies.vip,youtubecdn.com,zpaste.net,zplayer.live#$#abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script Math /atob|break/; +xhamster2.com,xhamster.one#$#abort-current-inline-script document.createElement initTabUnder +porn00.org#$#abort-current-inline-script popup_url +onlyfaps.club#$#abort-current-inline-script univresalP @@ -59820,7 +60967,7 @@ new file mode 100644 +123moviesgo.club#$#abort-current-inline-script Math /break|case/ +pinayvids.com#$#abort-current-inline-script decodeURIComponent; override-property-read D4zz undefined +eztv.tf,eztv.unblockit.llc,eztv.yt#$#abort-current-inline-script s2ss52 -+idope.cyou,igg-games.com,youtube4kdownloader.com,yts2.cc#$#abort-on-property-read JSON.stringify ++cocostream.org,idope.cyou,youtube4kdownloader.com,yts2.cc#$#abort-on-property-read JSON.stringify +latinblog.tv#$#abort-on-property-write _cpp +camsstream.com#$#abort-current-inline-script onload; +ytstv.me,yts.do,yts.mx,yts.movie,yts.rs#$#abort-on-property-read atob @@ -59844,10 +60991,10 @@ new file mode 100644 +kiss-anime.ws#$#abort-on-property-read localStorage; abort-on-property-write JSON.parse; abort-on-property-read _0x5c48; abort-on-property-read _0x43d1; abort-on-property-read _0x173b; abort-on-property-read _0x28f6 +manga1000.top#$#abort-on-property-read localStorage; abort-on-property-write JSON.parse; abort-on-property-read asgPopScript +ling-online.com#$#abort-current-inline-script document.documentElement JSON.parse ++hortonanderfarom.blogspot.com#$#override-property-read setTimeout noopFunc +*$popup,third-party,domain=strtapeadblocker.art|strtapeadblock.me +! #CV-691 -+ebay.com#$#hide-if-contains-visible-text /Sponsored/ div[aria-label] div[class] -+ebay.ca,ebay.co.uk,ebay.com,ebay.com.au,ebay.es,ebay.fr,ebay.it,ebay.nl#$#hide-if-matches-xpath './/a[@*[contains(.,"UnifiedRankingScenario")]]/div[@class]//img[@src]/ancestor-or-self::li[starts-with(@class,"s-item")]' ++ebay.com,ebay.com.au,ebay.co.uk,ebay.com.my,ebay.at,ebay.de,ebay.ch,ebay.pl,ebay.it,ebay.nl,ebay.be#$#hide-if-matches-xpath '//li[starts-with(@class,"s-item")]//span[@role="group" or @role="text"][starts-with(@class,//span[text()="Sponsored" or text()="Anzeige" or text()="Sponsorowane" or text()="Sponsorizzato" or text()="Gesponsord" or text()="Sponsorisé" or text()="Patrocinado"]/@id)]/ancestor::li[starts-with(@class,"s-item")]' +! #CV-698 +thegatewaypundit.com#$#abort-on-property-read adtoniq; abort-on-property-write adtoniq; abort-on-property-write bomab; abort-on-property-write zacak; abort-on-property-write kozuq +! #CV-667 @@ -59874,19 +61021,32 @@ new file mode 100644 +crunchyroll.com#$#json-prune 'value.media.ad_breaks' +! #CV-776 +bing.com##[id$="adsMvCarousel"] -+bing.com#?#li[class="b_algo"]:-abp-has(> h2 + div[class="b_caption"] > p[class]) +bing.com#?#li[class="b_algo"]:-abp-has(>h2 + div[class="b_caption"] > [class^="b_attribution "]) +bing.com#?#li[class="b_algo"]:-abp-has(>[class="ad_ml1ESLItem"]) +bing.com#?#li[class="b_algo"]:-abp-has(a[href="#"]:not([class])) +! #CV-1190 -+instacart.com#$#hide-if-matches-xpath './/div[@aria-label="item"]//*[@*="sponsored" or @*="Sponsored" or .="sponsored" or .="Sponsored"]/ancestor::li[1]' ++instacart.com#$#race start; hide-if-matches-xpath './/div[@role="group"]//div[concat(.//div[1]/text()[1],.//div[2]/text()[1])="Spon sored"]/ancestor::div[@data-testid]'; hide-if-matches-xpath './/div[@role="group"]//div[concat(.//div[1]/text()[1],.//div[2]/text()[1])="Spon sored"]/li[@data-testid]'; race stop; ++instacart.com#$#hide-if-matches-xpath './/img[contains(@src,"promoted_aisle")]/ancestor::div[starts-with(@class,"css-")][2]' ++instacart.com#$#hide-if-matches-xpath './/img[starts-with(@alt,"Sponsored")]/ancestor::a[1]' ++instacart.com##div[data-testid="ads-promoted-aisle"] ++instacart.com##div[data-testid="storefront-category-hero-banner"] ++instacart.com##a[href*="category_hero_id_"] ++! #CV-1213 ++samsclub.com#$#hide-if-matches-xpath '//span[@class="sc-specials-label"]/parent::div[@class="sc-specials"]/ancestor::li' ++! #CV-663 ++canadafreepress.com,conservativefiringline.com,ipatriot.com,naturalblaze.com,patriotnationpress.com,populistpress.com#$#abort-on-property-read document.getElementsByClassName; abort-on-property-read following-ad-container ++rightwingnews.com#$#abort-on-property-read document.getElementsByTagName ++procoinnews.com,dailylol.com#$#override-property-read setTimeout noopFunc; abort-on-property-read document.body.innerHTML; override-property-read Object.defineProperty undefined ; hide-if-matches-xpath '//main[@class][@role][@id]/parent::div[1]/ancestor-or-self::div[@class][1]'; +! Japanese sites +nikaraw.com#$#abort-on-property-read afStorage ++nicovideo.jp##a[href^="https://click.speee-ad.jp"] ++nicovideo.jp#$#hide-if-matches-xpath './/li[@class="count ads"]/parent::ul/ancestor::li[contains(@class,"adVideoItem")]'; hide-if-matches-xpath './/h1[text()="Niconico Ads"]/following::img[contains(@class,"UadVideoItem-image")]/parent::div[contains(@class,"UadVideoItem")]/ancestor::div[contains(@class,"UadVideosContainer")]'; hide-if-matches-xpath './/img[contains(@class,"NicoadVideoItem")]/parent::a[contains(@class,"NicoadVideoItem")]/ancestor::div[starts-with(@class,"NicoadVideosContainer")]'; hide-if-matches-xpath './/div[@data-nicoad-sponsor]/following::a[starts-with(@class,"NicoAdContainer")]/parent::div[contains(@class,"NicoAdContainer")]/ancestor::section[@class="TopPage-section"]'; hide-if-matches-xpath './/img[contains(@class,"UadVideoItem")]/parent::div[starts-with(@class,"UadVideoItem")]/ancestor::div[contains(@class,"UadVideosContainer")]'; ++||nimg.jp/nicoad/instream/video/*.mp4$media,domain=nicovideo.jp +! *** abp-filters-anti-cv:fb_non-graph.txt *** +! #CV-761 -+www.facebook.com,web.facebook.com#$#race start; hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//a[@aria-label[.="Patrocinado" or .="Sponsa" or .="Bersponsor" or .="Commandité" or .="Ditaja" or .="Gesponsert" or .="Gesponsord" or .="Sponsrad" or .="Publicidad" or .="Sponsoreret" or .="Sponset" or .="Sponsored" or .="Sponsorisé" or .="Sponsorizat" or .="Sponsorizzato" or .="Sponsorlu" or .="Sponsorowane" or .="Реклама" or .="ממומן" or .="تمويل شوي" or .="دارای پشتیبانی مالی" or .="سپانسرڈ" or .="مُموَّل" or .="प्रायोजित" or .="সৌজন্যে" or .="ได้รับการสนับสนุน" or .="内容" or .="贊助" or .="Sponsoroitu" or .="May Sponsor" or .="Được tài trợ"]]/ancestor::div[@role="article"]'; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}/ 'div[role=feed] div[role=article]' 'a[href="#"][role="link"]'; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}/ 'div[role=feed] div[role=article]' 'a[href^="?__cft__"]'; race stop; ++www.facebook.com,web.facebook.com#$#race start; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}|[Sponsrwae]{12}|[Patrocind]{11}|[Sponsrizat]{13}/ 'div[role=feed] div[role=article]' a[href="#"][role="link"]; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}|[Sponsrwae]{12}|[Patrocind]{11}|[Sponsrizat]{13}/ 'div[role=feed] div[role=article]' a[href^="?__cft__"]; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}|[Sponsrwae]{12}|[Patrocind]{11}|[Sponsrizat]{13}/ 'div[role=feed] div[role=article]' a[href="#"][role="link"]>span>span>b; hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//a[@aria-label[.="Patrocinado" or .="Sponsa" or .="Bersponsor" or .="Commandité" or .="Ditaja" or .="Gesponsert" or .="Gesponsord" or .="Sponsrad" or .="Publicidad" or .="Sponsoreret" or .="Sponset" or .="Sponsored" or .="Sponsorisé" or .="Sponsorizat" or .="Sponsorizzato" or .="Sponsorlu" or .="Sponsorowane" or .="Реклама" or .="ממומן" or .="تمويل شوي" or .="دارای پشتیبانی مالی" or .="سپانسرڈ" or .="مُموَّل" or .="प्रायोजित" or .="সৌজন্যে" or .="ได้รับการสนับสนุน" or .="内容" or .="贊助" or .="Sponsoroitu" or .="May Sponsor" or .="Được tài trợ"]]/ancestor::div[@role="article"]'; race stop; +www.facebook.com,web.facebook.com#$#hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//a[@target="_blank"][contains(@href,"doubleclick.net") or contains(@href,"Paid") or contains(@href,"paid") or contains(@href,"ad.atdmt.com") or contains(@href,"adform.net") or contains(@href,"serving-sys.com") or contains(@href,"adition.com") or contains(@href,"flashtalking.com") or contains(@href,"bid=") or contains(@href,"Advertising") or contains(@href,"click") or contains(@href,"utm_medium=cpc") or contains(@href,"onversions") or contains(@href,"ad_name") or contains(@href,"utm_content=promo") or contains(@href,"ad_id") or contains(@href,"social_ads") or contains(@href,"socialads")]/ancestor::div[@role="article"]'; hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//a[@target="_blank"][not(starts-with(@href,"https://l.facebook"))][contains(@href,"fbclid=")][not(text())]//div[@style="display: flex;"][count(./div) = 60]/ancestor::div[@role="article"]'; hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//div[@aria-labelledby][@role="button"]/ancestor::div[@role="article"]'; -+www.facebook.com,web.facebook.com#$#hide-if-matches-xpath './/div[@role="feed"]//div[@role="article"]//div[contains(text(),"Sponsored")]/ancestor::div[@role="article"]' ++www.facebook.com,web.facebook.com#$#hide-if-matches-xpath './/span[@id="ssrb_feed_start"]/following-sibling::div//div[@aria-labelledby and @aria-describedby]//div[contains(text(),"Sponsored")]/ancestor::div[@aria-labelledby and @aria-describedby]' +! Rules that don't need to change +@@||www.facebook.com^$generichide +@@||web.facebook.com^$generichide @@ -59894,15 +61054,12 @@ new file mode 100644 +www.facebook.com,web.facebook.com#$#race start; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}/ 'div#watch_feed div[class^="_"]' 'a[href^="?__cft__"]'; hide-if-contains-visible-text /[Sponsred]{9}|[Gesponrtd]{10}|[Sponrisé]{10}|[Comandité]{9}|[Publicda]{10}/ 'div#watch_feed div[class^="_"]' 'a[href="#"][role="link"]'; race stop; +www.facebook.com,web.facebook.com#$#hide-if-matches-xpath './/object[@type="nested/pressable"]/a[@role="link"]/span[contains("|Sponsoreret|Sponsrad|Patrocinado|Sponsa|Bersponsor|Commandité|Ditaja|Gesponsert|Gesponsord|Publicidad|Sponset|Sponsored|Sponsorisé|Sponsorizat|Sponsorizzato|Sponsorlu|Sponsorowane|Реклама|ממומן|تمويل شوي|دارای پشتیبانی مالی|سپانسرڈ|مُموَّل|प्रायोजित|সৌজন্যে|ได้รับการสนับสนุน|内容|贊助|Sponsoroitu|May Sponsor|Được tài trợ|", concat("|", text(), "|"))]/ancestor::span[2]' +! Experimental ++www.facebook.com,web.facebook.com#$#hide-if-has-and-matches-style * 'span[id="ssrb_feed_start"]~* h3+div>div' 'span[id="ssrb_feed_start"]~* h3+div>div span>a[href="#"]:first-of-type div>svg' '/./' '/(margin-right: -[3-5][0-9].*width: 10)|(margin-right: -[4-6][0-9].*width: 11)|(margin-right: -[5-7][0-9].*width: 12)|(margin-right: -[6-8][0-9].*width: 13)/' +! *** abp-filters-anti-cv:french.txt *** +! #CV-691 +! #CV-761 +! #CV-663 -+letocard.fr#$#freeze-element .nav-menu abort [id^="menu-item-"] -+mamieastuce.com#$#freeze-element #sidebar abort .widget_text -+concomber.com#$#freeze-element .main-box abort -+meilleurpronostic.fr#$#freeze-element #secondary abort aside -+aupetitparieur.com#$#freeze-element .widget-area abort ++aupetitparieur.com,meilleurpronostic.fr#$#abort-on-property-read document.getElementsByClassName; abort-on-property-read following-ad-container +! #CV-170 +lephoceen.fr,supertoinette.com#$#abort-on-property-read setInterval +||polaccafaison.com^$third-party @@ -59962,7 +61119,7 @@ new file mode 100644 +batporno.com#$#abort-on-property-read decodeURI +vostfree.com#$#abort-on-property-write _pop +torrent911.com#$#abort-on-property-read atob -+animecomplet.me,animecomplet.net,animecomplet.org,dadyflix.co,dl-protect.best,dl-protect.top,dl-protect.xyz,dl-protect1.com,ed-protect.org,extreme-down.blue,extreme-down.in,extreme-down.link,extreme-down.live,extreme-down.ninja,extreme-down.one,extreme-down.plus,extreme-down.pro,extreme-down.site,extreme-down.top,extreme-down.tv,extreme-down.video,extreme-down.work,extreme-down.xyz,extreme-download.im,extreme-download.ninja,extreme-download.xyz,filmsexeporno.com,french-stream.mx,french-stream.re,french-stream.run,french-stream.so,hds-streaming.su,hdss-to.com,hdss.la,hdss.to,japscan.cc,japscan.com,japscan.se,japscan.to,japscan.ws,jetanimes.co,jetanimes.com,lelscan-vf.co,mavanimes.cc,one-piece-streaming-vostfr.com,streaming-french.com,streaming-vostfr.net,streamingfrance.com,streamingfrance.net,summarynetworks.com,toonanime.tv,toonanime.xyz,torrent9.si,vanime.co,vanime.me,vf-film.net,voirfilm-vf.com,voirseries.io,vostanimez.tv,vostfree.com,wawacity.bz,wawacity.co,wawacity.ec,wawacity.ninja,wawacity.vip,zone-annuaire.tel,zone-annuaire.top,zone-telechargement.tel#$#abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script Math /atob|break/; abort-on-property-write JSON.parse ++animecomplet.me,animecomplet.net,animecomplet.org,dadyflix.co,dl-protect.best,dl-protect.top,dl-protect.xyz,dl-protect1.com,ed-protect.org,extreme-down.blue,extreme-down.in,extreme-down.link,extreme-down.live,extreme-down.ninja,extreme-down.one,extreme-down.plus,extreme-down.pro,extreme-down.site,extreme-down.top,extreme-down.tv,extreme-down.video,extreme-down.work,extreme-down.xyz,extreme-download.im,extreme-download.ninja,extreme-download.xyz,filmsexeporno.com,french-stream.mx,french-stream.re,french-stream.run,french-stream.so,hds-streaming.su,hdss-to.com,hdss.la,hdss.to,japscan.cc,japscan.com,japscan.se,japscan.to,japscan.ws,jetanimes.co,jetanimes.com,lelscan-vf.co,mavanimes.cc,one-piece-streaming-vostfr.com,protege-torrent.com,streaming-french.com,streaming-vostfr.net,streamingfrance.com,streamingfrance.net,summarynetworks.com,toonanime.tv,toonanime.xyz,torrent9.si,vanime.co,vanime.me,vf-film.net,voirfilm-vf.com,voirseries.io,vostanimez.tv,vostfree.com,wawacity.bz,wawacity.co,wawacity.ec,wawacity.ninja,wawacity.vip,zone-annuaire.tel,zone-annuaire.top,zone-telechargement.tel#$#abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script Math /atob|break/; abort-on-property-write JSON.parse +mavanimes.co,toonanime.cc#$#abort-current-inline-script document.documentElement /atob|break|JSON.parse/; abort-current-inline-script String.fromCharCode /atob|break/; abort-current-inline-script Math /atob|break/; +mavanimes.co,japscan.ws#$#abort-current-inline-script JSON.parse; +strtapeadblock.me#$#abort-on-property-write _pao @@ -60000,6 +61157,8 @@ new file mode 100644 +! Popup/Popunder/Clickunder +komikcast.me#$#abort-on-property-read localStorage; abort-on-property-write JSON.parse +beritabaru.news,solusi.cyou#$#override-property-read setTimeout noopFunc ++! MISC ++komikdewasa.me#$#abort-on-property-write adsbyjuicy; override-property-read R undefined; hide-if-matches-xpath '//a[@target="_blank"]/img[contains(@class,"align")]/ancestor::div[starts-with(@class,"blox")]'; hide-if-matches-xpath '//a[@target="_blank"]/img[contains(@class,"align")]/ancestor-or-self::a[@href][1]' +! *** abp-filters-anti-cv:italian.txt *** +! #CV-667 +mp3-gratis.it#$#abort-current-inline-script Math zfgloaded @@ -60019,6 +61178,7 @@ new file mode 100644 +! MISC +tivi.fi#$#hide-if-matches-xpath '//div[contains(text(),"Kaupallinen yhteistyö")]/../../..' +iltalehti.fi#$#hide-if-matches-xpath '//span[contains(text(),"Kaupallinen yhteistyö")]/../../../..' ++tv.vg.no#$#abort-on-property-write __AB__; abort-on-property-read AB; +! *** abp-filters-anti-cv:polish.txt *** +! #CV-705 +www.wp.pl#$#abort-on-property-read SlotRegistrar; abort-current-inline-script PRELOAD randvar @@ -60055,12 +61215,8 @@ new file mode 100644 +echirurgia.pl,dobreprogramy.pl,o2.pl,autokult.pl,pudelek.pl,money.pl,wp.pl#$#hide-if-matches-xpath '//div[@id]/a[@id]/img[string-length(@src) < 120][contains(normalize-space()," ")][@class="img-full show"]/ancestor::div[1]' +kafeteria.pl,medycyna24.pl,komorkomania.pl,gadzetomania.pl,fotoblogia.pl,echirurgia.pl,dobreprogramy.pl,o2.pl,autokult.pl,pudelek.pl,money.pl,wp.pl,~sportowefakty.wp.pl#$#hide-if-matches-xpath '//div[@*]/div[@class][contains(normalize-space()," ")]/iframe[@*][string-length(@src) < 150] /ancestor::div[3][@*]' +kafeteria.pl,medycyna24.pl,komorkomania.pl,gadzetomania.pl,fotoblogia.pl,echirurgia.pl,dobreprogramy.pl,o2.pl,autokult.pl,pudelek.pl,money.pl,wp.pl#$#hide-if-matches-xpath '//div[@*]/p[contains(normalize-space(), " ")][@*]/preceding-sibling::label[1][@class]/ancestor::div[2]' -+wp.pl#$#hide-if-matches-xpath '//a[@class][string-length(@href) >2200]/div[@class]/div/ancestor::div[@class="rail"]' -+wp.pl#$#hide-if-matches-xpath './/img[@class][string-length(@src) >115]/following-sibling::img[@class][string-length(@src) > 115]/ancestor::div[1]' +polygamia.pl,echirurgia.pl,kardiolo.pl,dobreprogramy.pl,o2.pl,kafeteria.pl,parenting.pl,autokult.pl,pudelek.pl,nerwica.com,medycyna24.pl,money.pl,smaczneblogi.pl,komorkomania.pl,gadzetomania.pl,open.fm,fotoblogia.pl,abczdrowie.pl,autocentrum.pl,wp.pl,~poczta.wp.pl#$#hide-if-matches-xpath '//ul[@class]/li[string-length(@class)<=25][contains(normalize-space(), " ")]/img[string-length(@src) >140]/following-sibling::span/a[string-length(@href) > 2000]/ancestor::li' -+wp.pl#$#hide-if-matches-xpath './/div[@class]/a[@target="_blank"][string-length(@href) >1700]/img[@class][string-length(@src) > 100]/following-sibling::span[@class]/following::span[@class][4]/ancestor::div[@class and @*[not(@class)]=""][contains(@class," ")][contains(@*[not(@class)]," ")]/parent::div[not(@id="gallerybox_id")]' -+wp.pl#$#hide-if-matches-xpath './/div[@class][@style="height: 133.056px;"]/a[@href]/div[@class]/ancestor::div[@class][2]' -+wp.pl#$#hide-if-matches-xpath './/a[@target]/img[string-length(@src)>130]/ancestor::div[starts-with(@class,"teaser")]' ++www.wp.pl#$#hide-if-matches-xpath './/div[@id][@data-st-area]/div[1]/div/parent::div[@class]' +poczta.o2.pl#$#hide-if-matches-xpath './/a[@class][contains(@href,"wp.pl/")]/parent::div[@style]/ancestor-or-self::div[@class][@slot="NATIVE_FEED"]/parent::div[1]' +poczta.o2.pl#$#hide-if-matches-xpath './/div[@class]/iframe[@sandbox][contains(@src,"wpcdn.pl/tag/poczta.o2.pl/")]/ancestor::div[string-length(@class) >30]' +poczta.o2.pl##img[src*="wpimg.pl/"] @@ -60089,6 +61245,7 @@ new file mode 100644 +animesonline22.com#$#abort-current-inline-script JSON.parse /atob|btoa|break/ +gekkou.com.br#$#abort-current-inline-script document.querySelectorAll popMagic +gofilmes.me#$#abort-on-property-read zfgformats ++betteranime.net#$#abort-current-inline-script document.createElement _mdttdpu +! #CV-667 +filmesonlinegratis.com#$#abort-current-inline-script Math zfgloaded +! *** abp-filters-anti-cv:romanian.txt *** @@ -60130,8 +61287,8 @@ new file mode 100644 +/img.akubebas.com^$image,script,domain=indoxx1.show +! #CV-250 +megatfile.cc,gidonline.eu,dc-marvel.org,torrent-soft.net#$#abort-on-property-read atob -+! #CV-712 +! MISC ++sm.news#$#abort-current-inline-script String.fromCharCode decodeURIComponent +7ogorod.ru,shtrafsud.ru,autonevod.ru#$#abort-on-property-read flat_pm_arr +hitfm.ua,kissfm.ua,radiorelax.ua,radioroks.ua,rusradio.ua#$#abort-on-property-write prerole_length +www.goha.ru,3dnews.ru#$#abort-on-property-read Ya @@ -60166,7 +61323,7 @@ new file mode 100644 +liveforums.ru#$#abort-on-property-read tnAdditionalParams +musify.club#$#abort-current-inline-script $ get_ya_browser +fenglish.site,mp3spy.cc#$#abort-current-inline-script JSON.parse atob -+f1comp.ru,tagaev.com#$#abort-on-property-read PUM.getPopup ++times.zt.ua,f1comp.ru,tagaev.com#$#abort-on-property-read PUM.getPopup +l2top.ru#$#abort-current-inline-script $ cleanAndEval +rsload.net#$#abort-current-inline-script window.addEventListener load +web-shpargalka.ru#$#abort-on-property-read Date.prototype.toUTCString @@ -60175,9 +61332,9 @@ new file mode 100644 +cq.ru#$#hide-if-matches-xpath './/a[@class][@target="_blank"]/following::img[@class][string-length(@src) > 70]/ancestor::div[@class][1]' +cq.ru#$#prevent-listener DOMContentLoaded 'banners' +shanson320.ru#$#abort-current-inline-script document.createElement atob -+spletnik.ru#$#abort-on-property-read Object.prototype.createHostAsserter; abort-on-property-read Object.prototype.DlEDrf; cookie-remover bltsr; ++spletnik.ru#$#abort-on-property-read document.cookie.indexOf; cookie-remover wordpress_test_cookie; +||spletnik.ru/$header=content-type=text/javascript -+pro100hobbi.ru,samelectric.ru,facenews.ua,molitvy.guru,nizhny.ru,svadba.expert,vibir.ru#$#abort-on-property-read XMLHttpRequest ++coderlessons.com,facenews.ua,fixx.one,its-kids.ru,molitvy.guru,nizhny.ru,pro100hobbi.ru,publy.ru,samelectric.ru,svadba.expert,vibir.ru#$#abort-on-property-read XMLHttpRequest +lrepacks.net#$#abort-current-inline-script document.createElement 'delete window' +igroutka.ru#$#override-property-read Object.prototype.afg true +sibnet.ru#$#prevent-listener DOMContentLoaded 'pobeda' @@ -60185,10 +61342,13 @@ new file mode 100644 +porngames.su,rintor.info,rintor.net#$#abort-on-property-read TotemToolsObject +hardwareluxx.ru#$#abort-current-inline-script jQuery backgroundImage +changeua.com,ictv.ua,inter.ua,k1.ua,novy.tv,ntn.ua,starlight.digital,stb.ua,teleportal.ua#$#override-property-read Object.prototype.CreativeAdBreaks undefined -+anidub.club,anidub.link,anime.anidub.life,online.anidub.com,online.anidub.life#$#prevent-listener click window.open ++anime.anidub.com,anidub.club,anidub.link,anime.anidub.life,online.anidub.com,online.anidub.life#$#prevent-listener click window.open ++4pda.to#$#hide-if-matches-xpath './/*[not(self::div)]//script[contains(text(),"Math.ceil")]/ancestor::*[not(self::div)][1]'; hide-if-matches-xpath './/*[not(self::div)]//script[contains(text(),"toLowerCase")]/ancestor::div[2]'; hide-if-matches-xpath './/a[@target="_blank"]/img[@alt="" and @title=""]/ancestor::td[1]' ++kanobu.ru#$#json-prune results.fixed ++amedia.online#$#abort-on-property-read Ya; prevent-listener DOMContentLoaded '0x'; +! Popup/popunder/clickunder -+freehat.cc,tt-cup.com,zerno-ua.com,oxax.tv,prostoporno.help,vmusi.ru,xittv.net,potokcdn.com,lostpix.com,uploadimagex.com,volynpost.com,wowskill.ru,hlamer.ru,oveg.ru#$#abort-on-property-read open -+domahatv.com,piratam.net,piratca.net,sexitorrent.com,sextor.org,xtorrent.net,xxxrip.net,torrent-pirat.com,pornoakt.vip,porn720.biz,hentai-share.one,huyamba.tv,xxxtor.com#$#abort-current-inline-script document.querySelectorAll popMagic ++tv-assia.org,freehat.cc,tt-cup.com,zerno-ua.com,oxax.tv,prostoporno.help,vmusi.ru,xittv.net,potokcdn.com,lostpix.com,uploadimagex.com,volynpost.com,wowskill.ru,hlamer.ru,oveg.ru#$#abort-on-property-read open ++domahatv.com,piratam.net,piratca.net,sexitorrent.com,sextor.org,xtorrent.net,xxxrip.net,torrent-pirat.com,porn720.biz,pornoakt.vip,pornopuk.com,hentai-share.one,huyamba.tv,xxxtor.com#$#abort-current-inline-script document.querySelectorAll popMagic +hdkinoteatr.com#$#abort-on-property-read cuec +fapreactor.com,pornreactor.cc#$#abort-current-inline-script Math decodeURIComponent +budport.com.ua#$#abort-current-inline-script $ append @@ -60217,7 +61377,7 @@ new file mode 100644 +! CV-715 +informator.ua,kriminal.tv,4studio.com.ua,112ua.tv,newsoneua.tv,gorodkiev.com.ua,volynpost.com,uanews.org.ua,dialogs.org.ua,technoportal.com.ua,pingvin.pro,fakty.ua,cikavosti.com,versii.if.ua,mignews.com.ua#$#abort-on-property-read weekCallbacks +! #CV-716 -+agroter.com.ua,1news.com.ua,365news.biz,4mama.ua,4studio.com.ua,7days-ua.com,apnews.com.ua,argumentiru.com,asiaplustj.info,autotema.org.ua,autotheme.info,beauty.ua,begemot-media.com,begemot.media,chas.cv.ua,cheline.com.ua,cikavosti.com,ck.ua,cn.ua,comments.ua,cvnews.cv.ua,day.kyiv.ua,depo.ua,dnews.dn.ua,dv-gazeta.info,dyvys.info,economistua.com,edinstvennaya.ua,ekovolga.com,expert.in.ua,fedpress.ru,forpost.media,fraza.com,glavnoe.ua,glavnoe24.ru,glavpost.ua,golosinfo.com.ua,gorodkiev.com.ua,gov.ua,grad.ua,greenpost.ua,ifnews.org.ua,inforpost.com,inkorr.com,itechua.com,iz.com.ua,kh.ua,khersonline.net,kolizhanka.com.ua,kr.ua,krymr.com,kurskcity.ru,liga.net,lvnews.org.ua,mega-music.pro,mignews.com.ua,mi100.info,mind.ua,moirebenok.ua,mycompplus.ru,nakanune.ru,narodna-pravda.ua,nashbryansk.ru,newsoneua.tv,news24today.info,ngp-ua.info,nnews.com.ua,novavlada.info,novynarnia.com,np.pl.ua,odessa-life.od.ua,oukr.info,panoptikon.org,pg11.ru,pik.net.ua,pingvin.pro,planetanovosti.com,pl.com.ua,podpricelom.com.ua,politnavigator.net,poltava365.com,portal.lviv.ua,praktika-vlasti.com.ua,prm.ua,procherk.info,profootball.ua,radiosvoboda.org,ratel.kz,real-vin.com,reporter.ua,risu.ua,rivne.media,rivnenews.com.ua,rusjev.net,russianshowbiz.info,rv.ua,rvnews.rv.ua,semobile.com.ua,sport-kr.com.ua,sud.ua,superdom.ua,te.ua,tenews.org.ua,telekritika.ua,theageoffootball.com,treebuna.info,tverigrad.ru,tverisport.ru,tvoymalysh.com.ua,uainfo.org,uanews.org.ua,uatv.ua,ukranews.com,ukrrain.com,unn.com.ua,vchaspik.ua,versii.if.ua,vgolos.com.ua,viva.ua,vlast.kzvnn24.ru,volnorez.com.ua,volyninfa.com.ua,volyninfo.com,volynpost.com,volynua.com,vsviti.com.ua,westnews.info,womo.ua,wpristav.ru,wworld.com.ua,zbirna.com,zp.ua#$#abort-current-inline-script document.createElement /ru-n4p|ua-n4p|загрузка.../ ++agroter.com.ua,1news.com.ua,365news.biz,4mama.ua,4studio.com.ua,7days-ua.com,apnews.com.ua,argumentiru.com,asiaplustj.info,autotema.org.ua,autotheme.info,beauty.ua,begemot-media.com,begemot.media,chas.cv.ua,cheline.com.ua,cikavosti.com,ck.ua,cn.ua,comments.ua,cvnews.cv.ua,day.kyiv.ua,depo.ua,dnews.dn.ua,dv-gazeta.info,dyvys.info,economistua.com,edinstvennaya.ua,ekovolga.com,expert.in.ua,fedpress.ru,firtka.if.ua,forpost.media,fraza.com,glavnoe.ua,glavnoe24.ru,glavpost.ua,golosinfo.com.ua,gorodkiev.com.ua,gov.ua,grad.ua,greenpost.ua,ifnews.org.ua,inforpost.com,inkorr.com,itechua.com,iz.com.ua,kh.ua,khersonline.net,kolizhanka.com.ua,kr.ua,krymr.com,kurskcity.ru,liga.net,lvnews.org.ua,mega-music.pro,mignews.com.ua,mi100.info,mind.ua,moirebenok.ua,mycompplus.ru,nakanune.ru,narodna-pravda.ua,promin.cv.ua,nashbryansk.ru,newsoneua.tv,news24today.info,ngp-ua.info,nnews.com.ua,novavlada.info,novynarnia.com,np.pl.ua,odessa-life.od.ua,ogo.ua,oukr.info,panoptikon.org,pg11.ru,pik.net.ua,pingvin.pro,planetanovosti.com,pl.com.ua,podpricelom.com.ua,politnavigator.net,poltava365.com,portal.lviv.ua,praktika-vlasti.com.ua,prm.ua,procherk.info,profootball.ua,radiosvoboda.org,ratel.kz,real-vin.com,reporter.ua,risu.ua,rivne.media,rivnenews.com.ua,rusjev.net,russianshowbiz.info,rv.ua,rvnews.rv.ua,semobile.com.ua,showdream.org,sport-kr.com.ua,strana.news,strana.today,sud.ua,superdom.ua,te.ua,tenews.org.ua,telekritika.ua,theageoffootball.com,treebuna.info,tverigrad.ru,tverisport.ru,tvoymalysh.com.ua,uainfo.org,uanews.org.ua,uatv.ua,ukranews.com,ukrrain.com,unn.com.ua,vchaspik.ua,versii.if.ua,vgolos.com.ua,viva.ua,vlast.kzvnn24.ru,volnorez.com.ua,volyninfa.com.ua,volyninfo.com,volynpost.com,volynua.com,vsviti.com.ua,westnews.info,womo.ua,wpristav.ru,wworld.com.ua,zbirna.com,zp.ua#$#abort-current-inline-script document.createElement /ru-n4p|ua-n4p|загрузка.../ +marieclaire.ua#$#abort-current-inline-script redram /загрузка.../ +karpatnews.in.ua,kg-portal.ru#$#abort-current-inline-script document.createElement Math.random +! #CV-667 @@ -60246,9 +61406,10 @@ new file mode 100644 +gnula.nu,pelisnow.to,pelispop.me,tmomanga.com#$#abort-on-property-write JSON.parse +futbollatam.com#$#abort-on-property-read attr; abort-on-property-read mm +gnula.cc,series24.nu#$#abort-on-property-read localStorage; abort-on-property-write JSON.parse; abort-on-property-read asgPopScript -+calidadcine.net#$#abort-on-property-read afStorage ++calidadcine.net,seriesmetro.net#$#abort-on-property-read afStorage +latinblog.tv,peladas69.com#$#abort-on-property-read __formatsGetters -+audaciousdefaulthouse.com#$#abort-on-property-read window.open ++animefenix.org,animeonline.ninja,audaciousdefaulthouse.com#$#abort-on-property-read window.open ++monoschinos2.com#$#abort-on-property-read _0x24d7; abort-on-property-read _0x41ed; abort-on-property-read _0xf59bf3 +! #CV-368 +rainanime.net#$#abort-on-property-read NativeAd +! Popup/Popunder @@ -60274,8 +61435,9 @@ new file mode 100644 +! *** abp-filters-anti-cv:vietnamese.txt *** +! MISC +blog.abit.vn#$#abort-on-property-read document.cookie -+phimhay3s.com#$#json-prune ads -+90phut2.live#$#abort-current-inline-script $ overlay;abort-current-inline-script setTimeout overlay ++phimhay3s.com,phimmoik.com#$#json-prune ads ++90phut6.live#$#abort-current-inline-script $ overlay;abort-current-inline-script setTimeout overlay ++xoilac5.live#$#abort-current-inline-script jQuery overlay +aoe.vn#$#abort-on-property-read parseInt +gametv.vn#$#abort-current-inline-script $ homeModal +watchsb.com#$#abort-on-property-read __Y @@ -60283,38 +61445,40 @@ new file mode 100644 +plus.gtv.vn#$#abort-current-inline-script $ youtube-modal +bongdahomnay.tech#$#abort-on-property-read $ +vebotv.today#$#abort-current-inline-script $ vb-pr-box -+vb.plvb.xyz#$#abort-on-property-read adsTvc ++plvb.xyz#$#abort-on-property-read adsTvc; abort-on-property-read adsPlayer; abort-on-property-read ads; abort-on-property-read keyPlayer; abort-on-property-read adsPopupPlayer; +hh3dhay.com,hh3dhay.xyz#$#abort-current-inline-script document.createElement ;break;case -+luotphim2.com,luotphim.top,luotphimtv.live#$#json-prune '0.time_mobile 0.time 0.link_video 0.link_video_mobile 0.link 0.link_mobile 1.time_mobile 1.time 1.link_video 1.link_video_mobile 1.link 1.link_mobile' ++luotphim2.com,luotphim.to,luotphimtv.live#$#json-prune '0.time_mobile 0.time 0.link_video 0.link_video_mobile 0.link 0.link_mobile 1.time_mobile 1.time 1.link_video 1.link_video_mobile 1.link 1.link_mobile' +2phimmoi.net#$#abort-current-inline-script $ urlAdsMbIntro -+phimnhanh1.com,xemphim1080.com,phimmoi1.com,mephimnhat1.com#$#json-prune 'midroll midroll2 meta.ads' +! Popup/Popunder/Clickunder +viet69.in#$#abort-current-inline-script JSON.parse /atob|btoa|break/; abort-current-inline-script String.fromCharCode /atob|btoa|break/; abort-current-inline-script Math /atob|btoa|break/ +rphangs.com,mrcong.com#$#abort-on-property-read open; abort-on-property-write window.location.href -+fembed.com,femax20.com,zo3x.ml,mrdhan.com,lxhentai.com,m.blogtruyen.vn,viettoons.tv#$#abort-on-property-read open -+xemphimgif.net,ophimhd.net,phimraphot.net#$#abort-current-inline-script jQuery popurl ++fembed.com,femax20.com,zo3x.ml,mrdhan.com,m.blogtruyen.vn,viettoons.tv#$#abort-on-property-read open ++phimgif.tv,ophimhd.net,phimraphot.net#$#abort-current-inline-script jQuery popurl +khophimhd.net,downloadsachmienphi.com,truyen2u.net,tvhay.top#$#abort-current-inline-script JSON.parse atob +tapmoi.net#$#abort-on-property-read SmartPopunder -+lxhentai.com#$#abort-current-inline-script document.cookie +thienhatruyen.com#$#abort-current-inline-script $ pc-popup-2 +phimlau.online#$#abort-current-inline-script atob /Y1/ +sexphimhd.net,gvnvh18.com,g18vn.com#$#abort-current-inline-script Math +360thethao.net#$#abort-current-inline-script onload /puURL/ +xnxx-sex-videos.com#$#abort-current-inline-script setTimeout /window.location/ +xnxx-sex-videos.com#$#override-property-read user_out false -+xuongphim18z.com,phimdinhcao.com,phimtopz.com,truyensieuhay.com,tvchill.org,2phimmoi.net#$#abort-on-property-read document.cookie -+phimmoiiii123.com#$#abort-on-property-read matchMedia ++xuongphim18z.com,phimdinhcao.com,phimtopz.com,truyensieuhay.com,tvchill.org,2phimmoi.net,quangcaoyenbai.com,fullcrackpc.com#$#abort-on-property-read document.cookie ++phimmoiiii123.com,cphimmoi.net#$#abort-on-property-read matchMedia +metruyenchu.com#$#abort-on-property-write window.onclick +##[href^="//mage98rquewz.com/"] +*$third-party,script,domain=sexdiaryz.xyz +phimhays.com#$#abort-current-inline-script jQuery window.open +truyentranhtuan.com#$#abort-current-inline-script $ btpop +vebo1.tv#$#abort-current-inline-script jQuery popup -+lphim.net,subnhanhz.net,iphimchillzz.net#$#abort-on-property-read localStorage ++lphim.net,subnhanhz.net,iphimchillzz.net,phimmoikf.com#$#abort-on-property-read localStorage +nguontv.org#$#abort-current-inline-script encodeURIComponent popunder +||pssy.xyz^$domain=animevi.net +player-cdn.com#$#abort-on-property-read Math.random; override-property-read detectAdBlockAll noopFunc; override-property-read detectAdBlock noopFunc +player-cdn.com###playback-fake ++vebo5.net,xoilac5.net##.modal.fade.show ++vebo5.net,xoilac5.net#$#abort-current-inline-script jQuery popupBanners ++vebo5.net,xoilac5.net#$#abort-on-property-read adsRedirectPopups ++sex6688.link,viet69.gg#$#abort-on-property-read parseInt +! *** abp-filters-hotfix:hotfix.txt *** +! FDA-2830 +@@||cdn.jsdelivr.net/npm/just-detect-adblock@*/dist/bundle.umd.min.js| @@ -61543,10190 +62707,14371 @@ diff --git a/components/resources/adblocking/easylist.txt b/components/resources new file mode 100644 --- /dev/null +++ b/components/resources/adblocking/easylist.txt -@@ -0,0 +1,10449 @@ +@@ -0,0 +1,14630 @@ +[Adblock Plus 2.0] -+! Checksum: 5iJYJ6GpY6ccWbTF5I32pw -+! Version: 202208220921 ++! Checksum: hRDmMqSPC3gFvB7v5jOY9Q ++! Version: 202210250741 +! Title: EasyList (minified) -+! Last modified: 22 Aug 2022 09:21 UTC ++! Last modified: 25 Oct 2022 07:41 UTC +! Expires: 1 days (update frequency) +! +! *** customfilterlists:easylist-minified.txt *** +||doubleclick.net^$third-party -+/googleads.$~script,domain=~github.com|~github.io +@@||docs.google.com^$generichide -+||google.com/pagead/ -+###player-ads -+youtube.com###player-ads -+||pagead2.googlesyndication.com^ -+||pagead2.googlesyndication.com^$domain=spiegel.de -+||youtube.com/pagead/ +@@||www.google.*/search?$generichide -+/securepubads. -+/pagead/lvz? ++@@||www.google.*/search?$domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk ++/googleads.$~script,domain=~github.com|~github.io +||googlesyndication.com/safeframe/ +||googlesyndication.com/safeframe/$domain=spiegel.de -+youtube.com##.ytp-ad-progress-list ++||google.com/pagead/ ++||youtube.com/pagead/ +@@||drive.google.com^$generichide ++@@||google.com/recaptcha/$csp,subdocument ++||pagead2.googlesyndication.com^ ++||pagead2.googlesyndication.com^$domain=spiegel.de ++/securepubads. ++/pagead/lvz? +||amazon-adsystem.com^ +||amazon-adsystem.com^$domain=spiegel.de -+@@||www.google.*/search?$domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk -+://ads.$domain=~ads.8designers.com|~ads.ac.uk|~ads.adstream.com.ro|~ads.allegro.pl|~ads.am|~ads.amazon|~ads.apple.com|~ads.atmosphere.copernicus.eu|~ads.bigbom.com|~ads.bikepump.com|~ads.brave.com|~ads.buscaempresas.co|~ads.colombiaonline.com|~ads.comeon.com|~ads.cs.washington.edu|~ads.cvut.cz|~ads.dollartree.com|~ads.elcarado.com|~ads.finance|~ads.gambinoslot.com|~ads.google.com|~ads.gurkerl.at|~ads.harvard.edu|~ads.instacart.com|~ads.jiosaavn.com|~ads.kazakh-zerno.net|~ads.kifli.hu|~ads.knuspr.de|~ads.lapalingo.com|~ads.listonic.com|~ads.lordlucky.com|~ads.magalu.com|~ads.mgid.com|~ads.microsoft.com|~ads.midwayusa.com|~ads.mobilebet.com|~ads.msstate.edu|~ads.mst.dk|~ads.nc|~ads.nimses.com|~ads.nipr.ac.jp|~ads.odesbuild.com|~ads.olx.pl|~ads.pinterest.com|~ads.quasaraffiliates.com|~ads.red|~ads.rohlik.cz|~ads.route.cc|~ads.safi-gmbh.ch|~ads.scotiabank.com|~ads.shopee.cn|~ads.shopee.co.th|~ads.shopee.com.br|~ads.shopee.com.mx|~ads.shopee.com.my|~ads.shopee.kr|~ads.shopee.ph|~ads.shopee.pl|~ads.shopee.sg|~ads.shopee.tw|~ads.shopee.vn|~ads.sk|~ads.snapchat.com|~ads.socialtheater.com|~ads.spotify.com|~ads.taboola.com|~ads.tiktok.com|~ads.toplayaffiliates.com|~ads.viksaffiliates.com|~ads.vk.com|~ads.watson.ch|~ads.xtribeapp.com|~ads.yahoosmallbusiness.com|~badassembly.com|~caravansforsale.co.uk|~fusac.fr|~memo2.nl|~reempresa.org|~satmetrix.com|~seriouswheels.com -+/adservice.$domain=~adservice.io -+youtube.com###masthead-ad ++://ads.$domain=~ads.8designers.com|~ads.ac.uk|~ads.adstream.com.ro|~ads.allegro.pl|~ads.am|~ads.amazon|~ads.apple.com|~ads.atmosphere.copernicus.eu|~ads.bestprints.biz|~ads.bigbom.com|~ads.bikepump.com|~ads.brave.com|~ads.buscaempresas.co|~ads.colombiaonline.com|~ads.comeon.com|~ads.cs.washington.edu|~ads.cvut.cz|~ads.dollartree.com|~ads.doordash.com|~ads.elcarado.com|~ads.elevateplatform.co.uk|~ads.finance|~ads.gambinoslot.com|~ads.google.com|~ads.gree.net|~ads.gurkerl.at|~ads.harvard.edu|~ads.instacart.com|~ads.jiosaavn.com|~ads.kaipoke.biz|~ads.kazakh-zerno.net|~ads.kifli.hu|~ads.knuspr.de|~ads.lapalingo.com|~ads.listonic.com|~ads.lollipod.de|~ads.lordlucky.com|~ads.magalu.com|~ads.mba|~ads.mgid.com|~ads.microsoft.com|~ads.midwayusa.com|~ads.mobilebet.com|~ads.msstate.edu|~ads.mst.dk|~ads.nc|~ads.nimses.com|~ads.nipr.ac.jp|~ads.odesbuild.com|~ads.olx.pl|~ads.pinterest.com|~ads.quasaraffiliates.com|~ads.red|~ads.rohlik.cz|~ads.route.cc|~ads.safi-gmbh.ch|~ads.scotiabank.com|~ads.selfip.com|~ads.shopee.cn|~ads.shopee.co.th|~ads.shopee.com.br|~ads.shopee.com.mx|~ads.shopee.com.my|~ads.shopee.kr|~ads.shopee.ph|~ads.shopee.pl|~ads.shopee.sg|~ads.shopee.tw|~ads.shopee.vn|~ads.sk|~ads.snapchat.com|~ads.socialtheater.com|~ads.spotify.com|~ads.studyplus.co.jp|~ads.taboola.com|~ads.tiktok.com|~ads.toplayaffiliates.com|~ads.typepad.jp|~ads.us.tiktok.com|~ads.viksaffiliates.com|~ads.vk.com|~ads.watson.ch|~ads.xtribeapp.com|~ads.yahoosmallbusiness.com|~badassembly.com|~caravansforsale.co.uk|~fusac.fr|~memo2.nl|~reempresa.org|~satmetrix.com|~seriouswheels.com ++/adservice.$domain=~adservice.io|~github.com|~githubusercontent.com ++@@||google.com/recaptcha/api.js ++@@||gstatic.com/recaptcha/ ++@@||mail.google.com^$generichide +||adnxs.com^ +||adnxs.com^$domain=spiegel.de -+youtube.com###merch-shelf -+@@||mail.google.com^$generichide -+@@||google.com/recaptcha/$csp,subdocument -+##a[href^="https://www.googleadservices.com/pagead/aclk?"] -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##a[href^="https://www.googleadservices.com/pagead/aclk?"] ++@@||accounts.google.com^$generichide ++@@||whatsapp.com^$generichide ++||rubiconproject.com^ ++||rubiconproject.com^$domain=spiegel.de +.com/ads/$image,object,subdocument,domain=~developers.google.com|~sabotage-films.com ++###player-ads ++youtube.com###player-ads ++||pubmatic.com^$third-party ++.openx.$domain=~openx.com|~openx.solar ++||ads-twitter.com^ ++||3lift.com^ ++||moatads.com^ ++||mail-ads.google.com^ ++youtube.com##.ytp-ad-progress-list ++||imasdk.googleapis.com^ ++||imasdk.googleapis.com^$domain=spiegel.de ++/prebid.$domain=~prebid.org ++@@||tab.gladly.io/newtab/|$document,subdocument ++@@||netflix.com^$generichide ++||smartadserver.com^$third-party,domain=~smartadserver.de ++@@||recaptcha.net/recaptcha/$script ++youtube.com###merch-shelf ++||googletagservices.com^ ++/advert.$~script,domain=~advert.ae|~advert.club|~advert.ee|~advert.io|~advert.media|~advert.org.pl|~motortrader.com.my ++||teads.tv^ ++||teads.tv^$domain=spiegel.de ++||creativecdn.com^$third-party ++||tpc.googlesyndication.com^ ++||ad-delivery.net^ ++@@||google.com/recaptcha/enterprise/ ++youtube.com###masthead-ad ++||4dex.io^ +##.adsbygoogle +informer.com##.adsbygoogle +geekzone.co.nz##.adsbygoogle -+||rubiconproject.com^ -+||rubiconproject.com^$domain=spiegel.de -+@@||whatsapp.com^$generichide -+##.badge-style-type-ad -+||pubmatic.com^$third-party -+||ads-twitter.com^ -+@@||accounts.google.com^$generichide -+##[id^="div-gpt-ad"] -+@@||google.com/recaptcha/api.js -+##div[id^="div-gpt-"] -+@@||gstatic.com/recaptcha/ -+||moatads.com^ -+youtube.com##[layout*="display-ad-"] -+youtube.com##ytd-display-ad-renderer -+||imasdk.googleapis.com^ -+||imasdk.googleapis.com^$domain=spiegel.de -+||mail-ads.google.com^ -+.openx.$domain=~openx.com|~openx.solar -+||3lift.com^ -+/prebid.$domain=~prebid.org -+||googletagservices.com^ -+/advert.$~script,domain=~advert.ae|~advert.club|~advert.ee|~advert.io|~advert.media|~advert.org.pl|~motortrader.com.my -+||tpc.googlesyndication.com^ -+||smartadserver.com^$third-party,domain=~smartadserver.de -+@@||tab.gladly.io/newtab/|$document,subdocument -+||teads.tv^ -+||teads.tv^$domain=spiegel.de -+||ad-delivery.net^ -+||creativecdn.com^$third-party -+@@||netflix.com^$generichide -+##[id^="google_ads_iframe"] -+##.ad-placement +.ru/ads/ -+||casalemedia.com/cygnus? -+||4dex.io^ +||adsafeprotected.com^ +||adsafeprotected.com^$domain=spiegel.de -+||indexww.com^ -+/pagead/conversion/* -+@@||recaptcha.net/recaptcha/$script -+=adunit& -+||d2v02itv0y9u9t.cloudfront.net^ +||omnitagjs.com^ +||omnitagjs.com^$domain=spiegel.de -+||sharethrough.com^$third-party -+@@||google.com/recaptcha/enterprise/ -+youtube.com##.ytd-player-legacy-desktop-watch-ads-renderer -+||bidder.criteo.com^ -+youtube.com##.ytd-companion-slot-renderer -+youtube.com##ytd-companion-slot-renderer -+||emxdgt.com^ -+/ads-api. -+mail.google.com##.aeF > .nH > .nH[role="main"] > .aKB -+||yahoo.com/bidRequest -+||realsrv.com^ -+||ads.linkedin.com^$third-party -+||smaato.net^ -+||mediavine.com^$third-party -+/adtech_$domain=~adtech.co.uk -+||360yield.com^$third-party -+||ad.mail.ru^$domain=~mail.ru|~sportmail.ru -+@@||wikipedia.org^$generichide -+||an.yandex.ru^$domain=~e.mail.ru -+||tremorhub.com^ -+||ad.gt^ -+||rfihub.com^ -+||1rx.io^ -+||simplewebanalysis.com^ -+/adx.$domain=~adx.business|~adx.co.nz|~adx.cx|~adx.nz|~adx.rs|~adx.ru|~adx.traveledge.com|~adx.tribefire.com|~adx.uk.com|~adx.world|~adx.wowfi.com|~journals.uchicago.edu|~solutionshill.com -+##.ad-banner -+_prebid_ -+@@||bing.com/search?$generichide -+/gpt_and_prebid/* -+||mgid.com^$third-party -+||adscale.de^ -+@@||discord.com^$generichide -+||33across.com^$third-party -+||media.net^$third-party -+##.adBanner -+@@||ads.roblox.com/v1/sponsored-pages$xmlhttprequest,domain=roblox.com -+||google.com/adsense/search/ ++||indexww.com^ +@@||upload.wikimedia.org/wikipedia/$image,media -+$script,third-party,domain=imgbox.com -+@@||googlesyndication.com/simgad/$image,domain=pccomponentes.com ++/pagead/conversion/* ++||casalemedia.com/cygnus? ++##a[href^="https://www.googleadservices.com/pagead/aclk?"] ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##a[href^="https://www.googleadservices.com/pagead/aclk?"] ++||sharethrough.com^$third-party ++=adunit& ++@@||wikipedia.org^$generichide ++||mediavine.com^$third-party ++##[id^="div-gpt-ad"] ++##div[id^="div-gpt-"] ++||bidder.criteo.com^ ++||ad.gt^ ++@@||wikia.nocookie.net^*/images/$image ++/ads-api. ++||yahoo.com/bidRequest ++||ads.linkedin.com^$third-party ++||d2v02itv0y9u9t.cloudfront.net^ ++##.ad-placement ++||tremorhub.com^ ++/adtech_$domain=~adtech.co.uk +||yieldlab.net^ +||yieldlab.net^$domain=spiegel.de ++youtube.com##[layout*="display-ad-"] ++youtube.com##ytd-display-ad-renderer ++||emxdgt.com^ ++||realsrv.com^ ++||360yield.com^$third-party ++$script,third-party,domain=imgbox.com ++@@||bing.com/search?$generichide ++@@||discord.com^$generichide ++||mgid.com^$third-party ++||adscale.de^ ++||1rx.io^ ++/adx.$domain=~adx.business|~adx.co.nz|~adx.cx|~adx.nz|~adx.rs|~adx.ru|~adx.traveledge.com|~adx.tribefire.com|~adx.uk.com|~adx.world|~adx.wowfi.com|~journals.uchicago.edu|~solutionshill.com ++||rfihub.com^ ++@@||google.com/recaptcha/enterprise.js ++||smaato.net^ ++youtube.com##.ytd-companion-slot-renderer ++youtube.com##.ytd-player-legacy-desktop-watch-ads-renderer ++youtube.com##ytd-companion-slot-renderer ++||ad.mail.ru^$domain=~mail.ru|~sportmail.ru ++||an.yandex.ru^$domain=~e.mail.ru ++##[id^="google_ads_iframe"] ++||33across.com^$third-party +||weborama.fr^$third-party -+||flashtalking.com^$third-party -+youtube.com##.sparkles-light-cta ++/pixel/purst? ++/pixel/pure +||zemanta.com^$third-party -+youtube.com##ytd-promoted-sparkles-web-renderer -+||dotomi.com^$third-party -+||tsyndicate.com^ -+||rtmark.net^ ++/gpt_and_prebid/* ++||media.net^$third-party +@@||contacts.google.com^$generichide -+##.adsbyexoclick ++@@||googlesyndication.com/simgad/$image,domain=pccomponentes.com ++@@||calendar.google.com^$generichide ++||googlesyndication.com/ddm/ ++@@||ads.roblox.com/v1/sponsored-pages$xmlhttprequest,domain=roblox.com ++||simplewebanalysis.com^ ++_prebid_ ++||tsyndicate.com^ ++||dotomi.com^$third-party ++||flashtalking.com^$third-party ++@@||open.spotify.com^$generichide ++/^https?:\/\/[0-9a-z]{8,}\.com\/.*/$~media,third-party,domain=123movies.tw|1cloudfile.com|2embed.to|9xmovies.app|9xupload.asia|adblockeronstape.me|adblockeronstreamtape.me|adblockeronstrtape.xyz|adblockplustape.xyz|adblockstreamtape.art|adblockstreamtape.fr|adblockstreamtape.site|allsports.icu|animepl.xyz|aotonline.co|audaciousdefaulthouse.com|bowfile.com|capodeportes.fr|cast4u.xyz|clicknupload.to|cloudvideo.tv|coloredmanga.com|cut-y.net|daddylive.click|daddylive.fun|dailyuploads.net|databasegdriveplayer.xyz|deltabit.co|dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.watch|dood.wf|dood.ws|drivebuzz.icu|dslayeronline.com|dulu.to|dum.to|embedplayer.site|embedsb.com|embedsito.com|embedstream.me|eplayvid.net|evoload.io|fembed-hd.com|fileclub.cyou|filemoon.sx|filmy4wap.ink|flashx.net|fmovies.ps|gamovideo.com|gaybeeg.info|gdriveplayer.pro|givemenbastreams.com|gogoanimes.org|gogohd.net|gogoplay.io|gogoplay4.com|goload.io|gomo.to|goodstream.org|hdfilme.cx|hdtoday.ru|hexupload.net|housecardsummerbutton.com|hurawatch.at|ive.zone|kesini.in|kickasstorrents.to|klubsports.click|letsupload.io|linkhub.icu|linksafe.cc|livetvon.click|luxubu.review|mangareader.cc|mangovideo.pw|maxsport.one|membed.net|meomeo.pw|mirrorace.org|mixdrop.bz|mixdrop.ch|mixdrop.click|mixdrop.club|mixdrop.co|mixdrop.sx|mixdrop.to|mixdrops.xyz|mp4upload.com|mycast.icu|mystream.to|nelion.me|nocensor.biz|ovagames.com|owodeuwu.xyz|pcgamestorrents.com|playtube.ws|pouvideo.cc|projectfreetv2.com|proxyer.org|putlocker-website.com|putlockers.gs|putlockertv.one|radamel.icu|reputationsheriffkennethsand.com|rojadirecta.watch|sbthe.com|scloud.online|send.cm|shavetape.cash|shortlinkto.icu|skidrowcodex.net|smallencode.me|soccerstreamslive.co|stape.fun|stapewithadblock.beauty|stapewithadblock.monster|stapewithadblock.xyz|stayonline.pro|strcloud.in|streamlare.com|streamsport.icu|streamta.pe|streamta.site|streamtape.com|streamtapeadblock.art|streamz.ws|streamzz.to|strtape.cloud|strtape.tech|strtapeadblock.club|strtapeadblocker.xyz|strtapewithadblock.xyz|superstream123.net|supervideo.tv|telerium.icu|thepiratebay0.org|theproxy.ws|thevideome.com|un-block-voe.net|upbam.org|uplinkto.one|upload-4ever.com|uproxy.to|upstream.to|uptobhai.com|uqload.com|userload.co|userload.xyz|userscloud.com|v-o-e-unblock.com|vanfem.com|vidbam.org|vidcloud.click|vidembed.me|videovard.sx|vidlox.me|vido.lol|vidshar.org|vidsrc.me|vidsrc.stream|vipleague.im|vipleague.tv|vivo.sx|voe-un-block.com|voe-unblock.com|voe-unblock.net|voe.bar|voe.sx|voeun-block.net|voeunbl0ck.com|voeunblck.com|voeunblk.com|voeunblock.com|voeunblock1.com|voeunblock2.com|voeunblock3.com|vostfree.online|vudeo.io|vudeo.net|vumoo.to|vupload.com|watch-free.tv|watchserieshd.live|wowlive.info|yodbox.com|youtube4kdownloader.com|zoro.to ++||adsco.re^ ++||google.com/adsense/search/ ++youtube.com##.sparkles-light-cta ++youtube.com##ytd-promoted-sparkles-web-renderer +/pubads. -+@@||yimg.com/rq/darla/*/g-r-min.js$domain=yahoo.com -+||adlightning.com^$third-party -+||ssl-images-amazon.com/images/*/DAsf- -+##iframe[src^="https://tpc.googlesyndication.com/"] +||spotxchange.com^ +||spotxchange.com^$domain=spiegel.de -+##.GoogleAd -+@@||calendar.google.com^$generichide -+##.ad-300-250 -+##.openx -+##.ads-area -+##.adsense-ad -+##.adbar -+@@||wikia.nocookie.net^*/images/$image -+##.LeftAd -+##.googad -+||ml314.com^ -+||serving-sys.com^ -+||serving-sys.com^$domain=spiegel.de -+##.ad-text -+/pagead/conversion. -+/sponsored-articles/*$xmlhttprequest -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##[data-text-ad] -+##[id*="ScriptRoot"] -+||mookie1.com^ -+||mookie1.com^$domain=spiegel.de -+##div[aria-label="Ads"] -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[aria-label="Ads"] -+||bidgear.com^$third-party -+||googlesyndication.com/ddm/ -+/prebid/*$script -+11alive.com,12news.com,12newsnow.com,13newsnow.com,13wmaz.com,5newsonline.com,9news.com,abc10.com,abovethelaw.com,adelaidenow.com.au,adtmag.com,aero-news.net,airportia.com,americanprofile.com,appleinsider.com,arstechnica.com,articlealley.com,as.com,asianwiki.com,associationsnow.com,autoevolution.com,autoguide.com,automation.com,autotrader.com.au,bab.la,bdnews24.com,beinsports.com,bgr.in,biometricupdate.com,bloomberg.com,boats.com,bobvila.com,bostonglobe.com,bradleybraves.com,breitbart.com,businessdailyafrica.com,businessinsider.com,businesstech.co.za,c21media.net,cbc.ca,cbs19.tv,cd1025.com,celebdigs.com,celebified.com,ch-aviation.com,chargedevs.com,cheboygannews.com,chinahush.com,citysearch.com,clacified.com,cnn.com,cnnphilippines.com,colourlovers.com,comicbookmovie.com,computerworld.com,couriermail.com.au,cpuboss.com,cracked.com,createtv.com,crossmap.com,crosswalk.com,csoonline.com,cxpress.co.za,dailycaller.com,dailylobo.com,dailyparent.com,dailytarheel.com,dawn.com,dealnews.com,defenseone.com,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.in,downdetector.sg,dpreview.com,drinksmixer.com,earlygame.com,edmontonjournal.com,emoji.gg,excellence-mag.com,familydoctor.org,fanpop.com,federalnewsnetwork.com,femalefirst.co.uk,firstcoastnews.com,foodandwine.com,fool.com,footyheadlines.com,forvo.com,fox6now.com,foxafrica.com,foxbusiness.com,foxnews.com,fxnowcanada.ca,gayvegas.com,gcn.com,geelongadvertiser.com.au,go.com,golfweather.com,gpuboss.com,greenbot.com,gtplanet.net,heraldsun.com.au,hodinkee.com,indiatvnews.com,indiewire.com,infoworld.com,inhabitat.com,insider.com,instadp.com,instyle.com,interfax.com.ua,investsmart.com.au,jscompress.com,kagstv.com,kare11.com,kcentv.com,kedglobal.com,kens5.com,kgw.com,khou.com,kiiitv.com,king5.com,koreabang.com,krem.com,ksdk.com,ktvb.com,kusports.com,kvue.com,lagom.nl,lawrence.com,leaderpost.com,lifezette.com,looktothestars.org,mangarockteam.com,marketwatch.com,maxpreps.com,mcpmag.com,minecraftmods.com,mirror.co.uk,monitor.co.ug,motherjones.com,motorcycle.com,movieweb.com,mprnews.org,msn.com,mybroadband.co.za,myfitnesspal.com,myfox8.com,myfoxzone.com,mygaming.co.za,myrecipes.com,namibtimes.net,nejm.org,networkworld.com,newbeauty.com,news.com.au,news.sky.com,newscentermaine.com,newsday.com,newstimes.com,ny1.com,nymag.com,nytco.com,nytimes.com,nytimes3xbfgragh.onion,odometer.com,offbeat.com,onlinenepaltimes.com,onmsft.com,ovationtv.com,patch.com,patheos.com,pcgamesn.com,picmix.com,planelogger.com,playtictactoe.org,politico.com,politico.eu,popsugar.com,popsugar.com.au,prepperwebsite.com,quackit.com,quibblo.com,ranker.com,ratemds.com,ratemyprofessors.com,redmondmag.com,refinery29.com,roadsideamerica.com,salisburypost.com,sbs.com.au,seattletimes.com,segmentnext.com,shtfplan.com,simpledesktops.com,slickdeals.net,slippedisc.com,smartcompany.com.au,smsfi.com,softpedia.com,soranews24.com,spot.im,spryliving.com,statenews.com,statscrop.com,stocktwits.com,straight.com,streetinsider.com,stv.tv,stylenest.co.uk,talkandroid.com,techdirt.com,thecitizen.co.tz,thecut.com,thedp.com,theeastafrican.co.ke,thefader.com,thefirearmblog.com,thegrocer.co.uk,thejournal.co.uk,themercury.com.au,thenation.com,thestarphoenix.com,thv11.com,time.com,today.com,topgear.com,townhall.com,travelocity.com,tribalfootball.com,tribecafilm.com,triblive.com,tripadvisor.ca,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.ie,tripadvisor.in,trucktrend.com,truecar.com,tvmaze.com,tweaktown.com,ultimatespecs.com,uptodown.com,userstyles.org,usmagazine.com,usnews.com,vancouversun.com,vid.gg,vogue.in,vulture.com,wamu.org,washingtontimes.com,watzatsong.com,wbir.com,wcnc.com,weathernationtv.com,weatheronline.co.uk,webestools.com,webmd.com,weeklytimesnow.com.au,wegotthiscovered.com,wfaa.com,wfmynews2.com,wgnt.com,wgntv.com,wgrz.com,whas11.com,wildcat.arizona.edu,windsorstar.com,winnipegfreepress.com,wkyc.com,wltx.com,wnep.com,worthplaying.com,wqad.com,wral.com,wrif.com,wtsp.com,wusa9.com,wwltv.com,wzstats.gg,wzzm13.com,x17online.com,yorkpress.co.uk##.ad -+cambb.xxx,chaturbate.com,playboy.com,rampant.tv,sex.com,signbucks.com,tallermaintenancar.com,tehvids.com,thehun.net,tiktits.com,uflash.tv,xcafe.com##.ad -+@@||open.spotify.com^$generichide -+||adsco.re^ +||clmbtech.com^ +||richaudience.com^$third-party -+||aniview.com^$third-party -+||perfectmarket.com^ -+/pixel/pure -+/adtech; -+/pixel/purst? -+/admax/* -+roblox.com##.abp -+||gumgum.com^$third-party -+alistapart.com,arcadebomb.com,armageddonexpo.com,balls.ie,bikechatforums.com,btcmanager.com,ca-flyers.com,caixinglobal.com,caribvision.tv,cmo.com.au,coryarcangel.com,elyricsworld.com,euobserver.com,eurochannel.com,filmmakermagazine.com,flvtomp3.cc,footballtradedirectory.com,forexpeacearmy.com,funpic.hu,gartic.io,garticphone.com,gr8.cc,gsprating.com,hortidaily.com,hotnewhiphop.com,hyipexplorer.com,ibtimes.co.in,ibtimes.co.uk,imedicalapps.com,insidefutbol.com,irishpost.com,irishtimes.com,israelnationalnews.com,japantimes.co.jp,jpost.com,kissasians.org,livescore.in,marinelink.com,mercopress.com,mmorpg.com,news.am,oncyprus.com,pharmatimes.com,powerboat.world,reversephonesearch.com.au,roblox.com,scientificamerican.com,smartcarfinder.com,speedcafe.com,sputniknews.com,starradionortheast.co.uk,subscene.com,sumodb.com,sweeting.org,tass.com,thefanhub.com,thefringepodcast.com,thehun.com,timeslive.co.za,timesofisrael.com,tmi.me,unblockstreaming.com,vloot.io,weatheronline.co.uk,weekly-ads.us,worldtimeserver.com,xbiz.com,ynetnews.com##.banner -+3movs.xxx,analpornpix.com,babesmachine.com,chaturbate.com,fboomporn.com,fetishshrine.com,freepornpicss.com,imagezog.com,legalporn4k.com,milffox.com,oldies.name,paradisehill.cc,playvids.com,porngames.com,private.com,video.laxd.com,vidxnet.com,vjav.com,watchhentaivideo.com,waybig.com,xbabe.com,xcum.com,yourdailygirls.com,youx.xxx##.banner -+||adaptv.advertising.com^ -+roblox.com###Skyscraper-Abp-Right -+/^https?:\/\/[0-9a-z]{8,}\.com\/.*/$~media,third-party,domain=1cloudfile.com|9xmovies.app|9xupload.asia|adblockeronstreamtape.me|adblockstreamtape.art|adblockstreamtape.fr|adblockstreamtape.site|allsports.icu|animepl.xyz|aotonline.co|audaciousdefaulthouse.com|bowfile.com|cast4u.xyz|clicknupload.to|cloudvideo.tv|coloredmanga.com|daddylive.click|daddylive.fun|deltabit.co|dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.watch|dood.wf|dood.ws|drivebuzz.icu|dslayeronline.com|dulu.to|dum.to|embedsb.com|embedsito.com|embedstream.me|eplayvid.net|evoload.io|fembed-hd.com|fileclub.cyou|filemoon.sx|filmy4wap.ink|flashx.net|fmovies.ps|gamovideo.com|gaybeeg.info|givemenbastreams.com|gogoanimes.org|gogoplay.io|gogoplay4.com|gomo.to|goodstream.org|hdfilme.cx|hexupload.net|housecardsummerbutton.com|hurawatch.at|kesini.in|kickasstorrents.to|linkhub.icu|linksafe.cc|luxubu.review|mangareader.cc|mangovideo.pw|maxsport.one|membed.net|mirrorace.org|mixdrop.bz|mixdrop.ch|mixdrop.click|mixdrop.club|mixdrop.co|mixdrop.sx|mixdrop.to|mixdrops.xyz|mp4upload.com|mycast.icu|mystream.to|nelion.me|nocensor.biz|ovagames.com|owodeuwu.xyz|pcgamestorrents.com|playtube.ws|pouvideo.cc|projectfreetv2.com|proxyer.org|putlockers.gs|reputationsheriffkennethsand.com|rojadirecta.watch|sbthe.com|scloud.online|send.cm|shortlinkto.icu|skidrowcodex.net|smallencode.me|soccerstreamslive.co|stape.fun|stayonline.pro|strcloud.in|streamlare.com|streamsport.icu|streamta.pe|streamta.site|streamtape.com|streamtapeadblock.art|streamz.ws|streamzz.to|strtape.cloud|strtape.tech|strtapeadblock.club|strtapeadblocker.xyz|superstream123.net|supervideo.tv|telerium.icu|thepiratebay0.org|theproxy.ws|un-block-voe.net|upbam.org|uplinkto.one|uproxy.to|upstream.to|uptobhai.com|uqload.com|userload.co|userload.xyz|v-o-e-unblock.com|vanfem.com|vidbam.org|vidembed.me|videovard.sx|vidlox.me|vidshar.org|vidsrc.me|vidsrc.stream|vipleague.im|vipleague.tv|vivo.sx|voe-un-block.com|voe-unblock.com|voe-unblock.net|voe.bar|voe.sx|voeun-block.net|voeunbl0ck.com|voeunblck.com|voeunblk.com|voeunblock.com|voeunblock1.com|voeunblock2.com|voeunblock3.com|vudeo.io|vupload.com|wowlive.info|yodbox.com|youtube4kdownloader.com -+/videoads/* +||jwpcdn.com/player/*/googima.js ++||ssl-images-amazon.com/images/*/DAsf- ++||aniview.com^$third-party ++||connatix.com^$third-party ++||mookie1.com^ ++||mookie1.com^$domain=spiegel.de ++||gumgum.com^$third-party ++/prebid/*$script ++||bidgear.com^$third-party ++mail.google.com##.aeF > .nH > .nH[role="main"] > .aKB ++||serving-sys.com^ ++||serving-sys.com^$domain=spiegel.de ++/pixel/sbe? ++||adlightning.com^$third-party ++||revcontent.com^$third-party +||2mdn.net^ +||2mdn.net^$domain=spiegel.de -+/ad_break? -+||adingo.jp^$third-party -+###show-ad -+||revcontent.com^$third-party -+||connatix.com^$third-party +||sonobi.com^$third-party -+.prebid.$domain=~prebid.org -+@@||google.com/recaptcha/enterprise.js -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###tads[aria-label] -+||live.primis.tech^$third-party -+||trafficfactory.biz^$third-party -+||aaxads.com^ -+##.adBlock -+youtube.com##.ytd-video-masthead-ad-v3-renderer -+||sascdn.com/tag/ -+youtube.com##ytd-video-masthead-ad-v3-renderer -+||addresseepaper.com^ -+##.adContent -+##.ad-slot -+||yieldmo.com^$third-party -+||ntv.io^ -+roblox.com##.leaderboard-abp -+vk.com###system_msg ++/pagead/conversion. ++@@||yimg.com/rq/darla/*/g-r-min.js$domain=yahoo.com ++||ml314.com^ ++||perfectmarket.com^ ++||smartclip.net^$third-party ++@@||github.com^$generichide ++/adtech; ++||adingo.jp^$third-party ++@@||wikia.nocookie.net^$stylesheet ++||googlesyndication.com^$domain=blogto.com ++.adriver.$~object,domain=~adriver.co|~adriver.tech +||fwmrm.net^ -+##.adSense ++/videoads/* ++economist.com,flightcentre.co.uk,foodkick.com,liverpoolfc.com,olx.pl,payback.pl,pccomponentes.com,wsj.com#@#[id^="google_ads_iframe"] ++||adaptv.advertising.com^ ++||addresseepaper.com^ ++||yieldmo.com^$third-party ++##.adBanner ++||rtmark.net^ ++@@||google.*/s?*&q=$~third-party,xmlhttprequest,domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk ++.prebid.$domain=~prebid.org ++||iconcnd.net^ ++@@||web.telegram.org^$generichide ++@@||hcaptcha.com^*/api.js +||adroll.com^$third-party ++||connectad.io^ ++||pshtrk.com^ ++||trafficfactory.biz^$third-party ++/pixel/puclc? ++||ntv.io^ ++@@||photos.google.com^$generichide ++||vidazoo.com/basev/$script,third-party ++||sascdn.com/tag/ ++||adform.net/serving/$third-party ++||contextweb.com^ ++twitter.com#?#div[data-testid="placementTracking"]:-abp-has(svg + div[dir="auto"] > span:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/)) ++||live.primis.tech^$third-party ++/curveball/ads/* +||dtscout.com^ +||microad.jp^$third-party -+||adform.net/serving/$third-party -+@@||github.com^$generichide -+.adriver.$~object,domain=~adriver.co|~adriver.tech -+||yimg.com/rq/darla/$domain=yahoo.com -+##.ad-unit -+roblox.com###Skyscraper-Abp-Left -+##a[href^="https://ad.doubleclick.net/"] -+||connectad.io^ -+@@||wikia.nocookie.net^$stylesheet -+||contextweb.com^ -+/pixel/sbe? -+##div[id^="adfox_"] -+||googlesyndication.com^$domain=blogto.com -+||vidazoo.com/basev/$script,third-party -+/greenoaks.gif? -+##.AdBox -+||jomtingi.net^ -+###taboola-below-article-thumbnails -+||smartclip.net^$third-party -+||adform.net/banners/$third-party -+/curveball/ads/* -+||trafficjunky.com^$third-party -+&adflag= -+||rndskittytor.com^ -+@@||google.*/s?*&q=$~third-party,xmlhttprequest,domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk -+||adtng.com^ -+###slide_ad -+.com/adv/$domain=~adv.asahi.com|~advantabankcorp.com|~archiproducts.com|~tritondigital.com -+@@||web.telegram.org^$generichide -+||denetsuk.com^ -+/adserver.$~xmlhttprequest,domain=~konograma.com -+twitter.com#?#div[data-testid="placementTracking"]:-abp-has(svg + div[dir="auto"] > span:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/)) -+/production/ads/* -+economist.com,flightcentre.co.uk,foodkick.com,liverpoolfc.com,olx.pl,payback.pl,pccomponentes.com,ripley.cl,ripley.com.pe,wsj.com#@#[id^="google_ads_iframe"] -+||clean.gg^ -+||postrelease.com^ -+&ad_url= -+##.post-ads -+||services.fandom.com/knowledge-graph/affiliates/ -+/www/delivery/* -+##.ad-wrapper -+||pub.network^ -+###ad-footer -+@@||imasdk.googleapis.com/js/core/bridge*.html$subdocument,domain=~spotify.com -+##.remove-ads -+||exdynsrv.com^ -+@@||photos.google.com^$generichide -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg###nav-swmslot -+||uuidksinc.net^$third-party -+/pixel/puclc? -+||bttrack.com^ -+@@||disneyplus.com^$generichide +||adswizz.com^$third-party -+||wpadmngr.com^ -+/prebid6. -+||tidaltv.com^ -+/_xa/ads_ -+/adfox/* ++@@||disneyplus.com^$generichide +||taboola.com^$domain=independent.co.uk|outlook.live.com|technobuffalo.com -+||dable.io^$third-party -+||jads.co^ -+/ht.js?site_ -+reddit.com##.promotedlink -+||onetag-sys.com/prebid-request ++##.ad-text +||awigglespouter.cam^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="adplacements:"] -+||vlitag.com^ -+||webcontentassessor.com^ -+||adrecover.com^$third-party ++||nitropay.com^$third-party ++/greenoaks.gif? ++/production/ads/* ++||adx1.com^$third-party ++||pub.network^ ++||exdynsrv.com^ ++||yimg.com/rq/darla/$domain=yahoo.com ++/v2/ads/* ++||adform.net/banners/$third-party ++/adfox/* ++.com/adv/$domain=~adv.asahi.com|~advantabankcorp.com|~archiproducts.com|~tritondigital.com +@@||amazon-adsystem.com^$domain=affiliate-program.amazon.com ++##.adContent ++##.adBlock ++##.adSense +||popin.cc/popin_discovery -+/cmbdv2.js -+##.trc_related_container div[data-item-syndicated="true"] -+-google-adsense. ++||aaxads.com^ ++/images/ads-$domain=~ads.com ++/www/delivery/* ++||onetag-sys.com/prebid-request ++||bttrack.com^ ++||trafficjunky.com^$third-party ++||adtng.com^ ++||tidaltv.com^ ++@@||teams.microsoft.com^$generichide ++twitter.com#?#div[data-testid="trend"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) ++@@||duckduckgo.com/?q=$generichide ++||uuidksinc.net^$third-party ++||beap.gemini.yahoo.com^ ++||rndskittytor.com^ ++||clean.gg^ ++/prebid6. ++||webcontentassessor.com^ ++/adserver.$~xmlhttprequest,domain=~konograma.com ++||zap.buzz^$third-party +||kargo.com^$third-party ++/cmbdv2.js ++/adview? ++@@||hbomax.com^$generichide ++||services.fandom.com/knowledge-graph/affiliates/ ++/adserver/* ++@@||imasdk.googleapis.com/js/core/bridge*.html$subdocument,domain=~spotify.com ++||postrelease.com^ ++||p.jwpcdn.com/player/plugins/vast/ ++/_xa/ads_ ++||vlitag.com^ ++/ad_break? ++||wpadmngr.com^ ++||adskeeper.com^$third-party ++@@||apple.com^$generichide ++||creepingbrings.com^ ++||jads.co^ ++||adrecover.com^$third-party ++/ht.js?site_ ++@@||hcaptcha.com/captcha/$script,subdocument ++.br/ads/ ++androidauthority.com##.ad-banner ++||adition.com^$third-party ++||seedtag.com^$third-party ++||gtbdhr.com^ ++||dmxleo.dailymotion.com^ ++/porpoiseant/* ++||dable.io^$third-party ++||insurads.com^$third-party ++||pisism.com^ ++||connexity.net^$third-party ++##.adsbyexoclick ++/detroitchicago/houston.js ++.com/adx/ ++||thaudray.com^ ++||exosrv.com^ ++||go.ezodn.com^ ++||deployads.com^ ++11alive.com,12news.com,12newsnow.com,13newsnow.com,13wmaz.com,5newsonline.com,9news.com,abc10.com,abovethelaw.com,adelaidenow.com.au,adtmag.com,aero-news.net,airportia.com,americanprofile.com,appleinsider.com,arstechnica.com,articlealley.com,as.com,asianwiki.com,associationsnow.com,autoevolution.com,autoguide.com,automation.com,autotrader.com.au,bab.la,bdnews24.com,beinsports.com,bgr.in,biometricupdate.com,bloomberg.com,boats.com,bobvila.com,bostonglobe.com,bradleybraves.com,breitbart.com,businessdailyafrica.com,businessinsider.com,businesstech.co.za,c21media.net,cbc.ca,cbs19.tv,cd1025.com,celebdigs.com,celebified.com,ch-aviation.com,chargedevs.com,cheboygannews.com,chinahush.com,citysearch.com,clacified.com,cnn.com,cnnphilippines.com,colourlovers.com,comicbookmovie.com,computerworld.com,couriermail.com.au,cpuboss.com,cracked.com,createtv.com,crossmap.com,crosswalk.com,csoonline.com,cxpress.co.za,dailycaller.com,dailylobo.com,dailyparent.com,dailytarheel.com,dawn.com,dealnews.com,defenseone.com,discordbotlist.com,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.in,downdetector.sg,dpreview.com,drinksmixer.com,earlygame.com,edmontonjournal.com,emoji.gg,excellence-mag.com,familydoctor.org,fanpop.com,federalnewsnetwork.com,femalefirst.co.uk,firstcoastnews.com,foodandwine.com,fool.com,footyheadlines.com,forvo.com,fox6now.com,foxafrica.com,foxbusiness.com,foxnews.com,fxnowcanada.ca,gayvegas.com,gcn.com,geelongadvertiser.com.au,go.com,golfweather.com,gpuboss.com,greenbot.com,gtplanet.net,heraldsun.com.au,hodinkee.com,indiatvnews.com,indiewire.com,infoworld.com,inhabitat.com,insider.com,instadp.com,instyle.com,interfax.com.ua,investsmart.com.au,jscompress.com,kagstv.com,kare11.com,kcentv.com,kedglobal.com,kens5.com,kgw.com,khou.com,kiiitv.com,king5.com,koreabang.com,krem.com,ksdk.com,ktvb.com,kusports.com,kvue.com,lagom.nl,lawrence.com,leaderpost.com,lifezette.com,looktothestars.org,mangarockteam.com,marketwatch.com,maxpreps.com,mcpmag.com,minecraftmods.com,mirror.co.uk,modernretail.co,monitor.co.ug,motherjones.com,motorcycle.com,movieweb.com,mprnews.org,msn.com,mybroadband.co.za,myfitnesspal.com,myfox8.com,myfoxzone.com,mygaming.co.za,myrecipes.com,namibtimes.net,nejm.org,networkworld.com,newbeauty.com,news.com.au,news.sky.com,newscentermaine.com,newsday.com,newstimes.com,ny1.com,nymag.com,nytco.com,nytimes.com,nytimes3xbfgragh.onion,odometer.com,offbeat.com,onlinenepaltimes.com,onmsft.com,ovationtv.com,patch.com,patheos.com,pcgamesn.com,picmix.com,planelogger.com,playsnake.org,playtictactoe.org,politico.eu,popsugar.com,popsugar.com.au,prepperwebsite.com,quackit.com,quibblo.com,ranker.com,ratemds.com,ratemyprofessors.com,redmondmag.com,refinery29.com,roadsideamerica.com,salisburypost.com,sbs.com.au,seattletimes.com,segmentnext.com,shtfplan.com,simpledesktops.com,slickdeals.net,slippedisc.com,smartcompany.com.au,smsfi.com,softpedia.com,soranews24.com,spot.im,spryliving.com,statenews.com,statscrop.com,stocktwits.com,straight.com,streetinsider.com,stv.tv,stylenest.co.uk,talkandroid.com,techdirt.com,thecitizen.co.tz,thecut.com,thedp.com,theeastafrican.co.ke,thefader.com,thefirearmblog.com,thegrocer.co.uk,thejournal.co.uk,themercury.com.au,thenation.com,theringreport.com,thestarphoenix.com,thv11.com,time.com,today.com,topgear.com,townhall.com,travelocity.com,tribalfootball.com,tribecafilm.com,triblive.com,tripadvisor.ca,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.ie,tripadvisor.in,trucktrend.com,truecar.com,tvmaze.com,tweaktown.com,ultimatespecs.com,uptodown.com,userstyles.org,usmagazine.com,usnews.com,vancouversun.com,vid.gg,vogue.in,vulture.com,wamu.org,washingtontimes.com,watzatsong.com,wbir.com,wcnc.com,weathernationtv.com,weatheronline.co.uk,webestools.com,webmd.com,weeklytimesnow.com.au,wegotthiscovered.com,wfaa.com,wfmynews2.com,wgnt.com,wgntv.com,wgrz.com,whas11.com,wildcat.arizona.edu,windsorstar.com,winnipegfreepress.com,wkyc.com,wltx.com,wnep.com,worthplaying.com,wqad.com,wral.com,wrif.com,wtsp.com,wusa9.com,wwltv.com,wzstats.gg,wzzm13.com,x17online.com,yidio.com,yorkpress.co.uk##.ad ++cambb.xxx,chaturbate.com,playboy.com,rampant.tv,sex.com,signbucks.com,tallermaintenancar.com,tehvids.com,thehun.net,tiktits.com,uflash.tv,xcafe.com##.ad ++amazon.com,cancam.jp,faceyourmanga.com,isc2.org,liverc.com,liverpoolfc.com,mit.edu,muscatdaily.com,olx.pl,payback.pl,pccomponentes.com,saitama-np.co.jp,timesofoman.com,virginaustralia.com#@#[id^="div-gpt-ad"] ++cancam.jp,saitama-np.co.jp#@#div[id^="div-gpt-"] ++||skimresources.com^$script,subdocument,third-party ++-adwords.$domain=~consultant-adwords.com|~consultant-adwords.fr|~expert-adwords.com|~freelance-adwords.com|~freelance-adwords.fr ++||d1lxz4vuik53pc.cloudfront.net^$domain=amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.br|amazon.com.mx|amazon.com.tr|amazon.de|amazon.eg|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.nl|amazon.pl|amazon.sa|amazon.se|amazon.sg ++||yahoo.com/sdarla/ ++||orbsrv.com^ ++twitter.com#?#div[data-testid="UserCell"]:-abp-has(svg + div[dir="auto"] > span:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/)) ++||technoratimedia.com^ ++||deepintent.com^$third-party ++/amp-ad- ++||adocean.pl^ ++@@||doodcdn.co^$domain=dood.la|dood.pm|dood.so|dood.to|dood.watch|dood.ws ++||loopme.me^ ++||atwola.com^ ++||adentifi.com^$third-party ++_300x250& ++||adotmob.com^ ++||impact-ad.jp^ ++||serverbid.com^ ++||adtelligent.com^$third-party ++||aj1907.online^ ++||veta.naver.com^ ++/v1/ads/* ++@@||onedrive.live.com^$generichide ++.pl/ads/ ++alistapart.com,arcadebomb.com,armageddonexpo.com,balls.ie,bikechatforums.com,btcmanager.com,ca-flyers.com,caixinglobal.com,caribvision.tv,cmo.com.au,coryarcangel.com,elyricsworld.com,euobserver.com,eurochannel.com,filmmakermagazine.com,flvtomp3.cc,footballtradedirectory.com,forexpeacearmy.com,funpic.hu,gartic.io,garticphone.com,gr8.cc,gsprating.com,hortidaily.com,hotnewhiphop.com,hyipexplorer.com,ibtimes.co.in,ibtimes.co.uk,imedicalapps.com,insidefutbol.com,irishpost.com,irishtimes.com,israelnationalnews.com,japantimes.co.jp,jpost.com,kissasians.org,livescore.in,marinelink.com,mercopress.com,mmorpg.com,mob.org,news.am,news.net,oncyprus.com,pharmatimes.com,powerboat.world,reversephonesearch.com.au,roblox.com,scientificamerican.com,smartcarfinder.com,speedcafe.com,sputniknews.com,starradionortheast.co.uk,subscene.com,sumodb.com,sweeting.org,swzz.xyz,tass.com,thefanhub.com,thefringepodcast.com,thehun.com,timeslive.co.za,timesofisrael.com,tmi.me,unblockstreaming.com,vloot.io,weatheronline.co.uk,weekly-ads.us,worldtimeserver.com,xbiz.com,ynetnews.com##.banner ++3movs.xxx,analpornpix.com,babesmachine.com,chaturbate.com,fboomporn.com,fetishshrine.com,freepornpicss.com,imagezog.com,legalporn4k.com,milffox.com,oldies.name,paradisehill.cc,playvids.com,porngames.com,private.com,video.laxd.com,vidxnet.com,vjav.com,watchhentaivideo.com,waybig.com,xbabe.com,xcum.com,yourdailygirls.com,youx.xxx##.banner ++||franecki.net^ ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##[data-text-ad] ++roblox.com##.abp ++##a[href^="https://ad.doubleclick.net/"] ++##div[aria-label="Ads"] ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[aria-label="Ads"] ++||barscreative1.com^ ++||adskeeper.co.uk^$domain=~dashboard.adskeeper.co.uk ++||coderformylife.info^ ++||adpushup.com^$third-party ++roblox.com###Skyscraper-Abp-Right ++||innovid.com^$third-party ++##.ADBox ++||xvideos.com/zoneload/ ++@@||discordapp.com/banners/$image ++||browsiprod.com^ ++||intergient.com^ ++||a-ads.com^$third-party ++||dianomi.com^$third-party ++##.Ads_4 ++_advertisement_$domain=~media.ccc.de ++||faphouse.com^$subdocument,third-party ++||waust.at^ ++##.ad-unit ++||d15kdpgjg3unno.cloudfront.net^ ++##.AD_area ++||adnxs-simple.com^ ++@@||fwmrm.net^*/AdManager.js$script ++||vntsm.com^ ++||admixer.net^$third-party ++||adtechus.com^$third-party ++/yads.$domain=~yads.org.il ++@@||imasdk.googleapis.com/js/sdkloader/ima3.js$domain=247sports.com|api.screen9.com|bbc.com|blastingnews.com|bloomberg.com|cbsnews.com|cbssports.com|chicagotribune.com|cnet.com|crhoy.com|distro.tv|einthusan.tv|embed.comicbook.com|etonline.com|games.usatoday.com|givemesport.com|goodmorningamerica.com|goodstream.uno|howstuffworks.com|iheart.com|insideedition.com|metacritic.com|missoulian.com|newsweek.com|paralympic.org|paramountplus.com|player.abacast.net|player.earthtv.com|player.performgroup.com|popculture.com|rte.ie|scrippsdigital.com|sonyliv.com|tdn.com|truvid.com|tubitv.com|watch.nba.com|worldsurfleague.com|wsj.com|zdnet.com|zeebiz.com ++&AdType= ++/advert? ++youtube.com##.ytd-merch-shelf-renderer ++||pubfuture.com^$third-party ++##.ad-slot ++/advanced-ads-$domain=~wordpress.org ++||infolinks.com^$third-party ++_300x250. ++$popup,third-party,domain=1337x.buzz|720pstream.tv|9anime.id|adblockeronstape.me|adblockeronstreamtape.me|adblockeronstrtape.xyz|adblockplustape.com|adblockplustape.xyz|adblockstreamtape.art|adblockstreamtape.fr|adblockstreamtape.site|animepl.xyz|animeworld.biz|apl100.me|apl102.me|apl96.me|assia2.com|assia4.com|bflix.ru|cloudemb.com|cloudvideo.tv|databasegdriveplayer.xyz|dembed1.com|diampokusy.com|dir-proxy.net|dirproxy.info|dood.wf|dood.ws|dulu.to|embedsito.com|fembed-hd.com|file-upload.com|filemoon.sx|freeplayervideo.com|geoip.redirect-ads.com|gogoanime.lol|gogoanime.nl|haes.tech|highload.to|highstream.tv|hubfiles.ws|hydrax.xyz|katfile.com|kissanime.lol|kokostream.net|livesports4u.xyz|livetv498.me|loader.to|luxubu.review|mangovideo.pw|mixdrop.bz|mixdrop.ch|mixdrop.click|mixdrop.club|mixdrop.co|mixdrop.sx|mixdrop.to|mixdrops.xyz|myflixer.to|mystream.to|ninjastream.to|oneproxy.org|owodeuwu.xyz|piracyproxy.biz|piraproxy.info|pixroute.com|play.hydracdn.network|playtube.ws|pomvideo.cc|pouvideo.cc|projectfreetv2.com|proxyer.org|raes.tech|sbfast.com|sbplay2.com|sbplay2.xyz|sbthe.com|scloud.online|shavetape.cash|slmaxed.com|ssbstream.net|stape.fun|stape.me|stapewithadblock.beauty|stapewithadblock.monster|stapewithadblock.xyz|strcloud.in|streamas.cloud|streambee.to|streamlare.com|streamon.to|streamta.pe|streamtape.com|streamtapeadblock.art|streamtapse.com|streamz.ws|streamzz.to|strtape.cloud|strtapeadblocker.xyz|strtapewithadblock.xyz|strtpe.link|supervideo.tv|suzihaza.com|theproxy.ws|trafficdepot.xyz|tubeload.co|un-block-voe.net|uploadfiles.pw|uproxy.best|uproxy.co|upstream.to|upvid.biz|upvideo.to|uqload.com|userload.co|uwatchfree.fo|vanfem.com|vidcloud9.com|videovard.sx|videovard.to|vidlox.me|viewsb.com|vivo.sx|voe-unblock.com|voe-unblock.net|voe.sx|voeunblock1.com|voeunblock2.com|vupload.com|watchsb.com|wiztube.xyz|wootly.ch|y2mate.is|youtubedownloader.sh|ytmp3.cc|ytmp3.sh ++$popup,third-party,domain=asianclub.tv|porn-tube-club.com ++##.ob-p.ob-dynamic-rec-container ++roblox.com##.leaderboard-abp ++||cdn4ads.com^ ++.ads.css ++||e-planning.net^$third-party ++||snigelweb.com^$third-party ++||bedrapiona.com^ ++||d3g5ovfngjw9bw.cloudfront.net^ ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###tads[aria-label] ++||unrulymedia.com^ ++||tribalfusion.com^ ++||inrhyhorntor.com^ ++||special-offers.online^ ++roblox.com###Skyscraper-Abp-Left ++||adtdp.com^$third-party ++||cleverwebserver.com^ ++##a[href^="https://paid.outbrain.com/network/redir?"] ++spiegel.de##a[href^="https://paid.outbrain.com/network/redir?"] ++##.trc_related_container div[data-item-syndicated="true"] ++/pustrck.js +##.trc_rbox .syndicatedItem +##.trc_rbox_border_elm .syndicatedItem +##.trc_rbox_div .syndicatedItem -+/images/ads-$domain=~ads.com -+###video-ad -+###ads_left -+##.trc-content-sponsored -+||p.jwpcdn.com/player/plugins/vast/ -+##.ob-p.ob-dynamic-rec-container -+###ad-header-mobile-contener -+||zap.buzz^$third-party -+||skimresources.com^$script,subdocument,third-party -+twitter.com#?#div[data-testid="trend"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) -+@@||duckduckgo.com/?q=$generichide -+###bannerAd -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###tadsb[aria-label] -+||exosrv.com^ -+||adskeeper.com^$third-party -+.br/ads/ -+/adview? -+||insurads.com^$third-party -+||beap.gemini.yahoo.com^ -+/porpoiseant/* -+||connexity.net^$third-party -+@@||teams.microsoft.com^$generichide -+||yahoo.com/sdarla/ -+||technoratimedia.com^ -+||creepingbrings.com^ -+||seedtag.com^$third-party -+||adition.com^$third-party -+##.bottom-ads-container -+/js/prebid- -+/v2/ads/* -+_ads_only& -+||dmxleo.dailymotion.com^ -+/detroitchicago/houston.js -+||vntsm.com^ -+||iconcnd.net^ -+##.ad-slot-placeholder -+||deployads.com^ -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###center_col > #taw > #tvcap > .cu-container > .commercial-unit-desktop-top -+##.ad-link -+||d1lxz4vuik53pc.cloudfront.net^$domain=amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.br|amazon.com.mx|amazon.com.tr|amazon.de|amazon.eg|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.nl|amazon.pl|amazon.sa|amazon.se|amazon.sg -+##.top-ads-container -+##a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] -+fandom.com##.featured-video__wrapper -+-adwords.$domain=~consultant-adwords.com|~consultant-adwords.fr|~expert-adwords.com|~freelance-adwords.com|~freelance-adwords.fr -+##.c-ads -+||adocean.pl^ -+||d15kdpgjg3unno.cloudfront.net^ -+fandom.com###featured-video__player -+/adserver/* -+##div[data-google-query-id] -+@@||hbomax.com^$generichide -+@@||apple.com^$generichide -+/yads.$domain=~yads.org.il -+||adpushup.com^$third-party -+###dfp-tlb -+||thaudray.com^ -+@@||hcaptcha.com/captcha/$script,subdocument -+||pshtrk.com^ -+@@||hcaptcha.com^*/api.js -+##.js-results-ads -+duckduckgo.com##.js-results-ads -+||bedrapiona.com^ -+yahoo.com##.darla -+||nitropay.com^$third-party -+.com/adx/ -+###bottomads -+||admixer.net^$third-party -+||a-ads.com^$third-party -+||justpremium.com^$third-party -+##.adsbytrafficjunky -+tube8.com,tube8.es,tube8.fr##.adsbytrafficjunky -+||go.ezodn.com^ -+||gtbdhr.com^ -+||adskeeper.co.uk^$domain=~dashboard.adskeeper.co.uk -+/av/ads/* -+.pl/ads/ -+/amp-ad- -+||franecki.net^ -+||impact-ad.jp^ -+##.ad-zone -+##.gpt-ad -+||adentifi.com^$third-party -+||waust.at^ -+||adtechus.com^$third-party -+##.reviews-display-ad -+||barscreative1.com^ -+/advert? -+||deepintent.com^$third-party -+||loopme.me^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[id^="sp_detail"] -+codinghorror.com,stackoverflow.com###hireme -+_300x250& -+||intergient.com^ -+||adotmob.com^ -+facebook.com##a[aria-label="Advertiser"] -+##.adsbyvli -+@@||discordapp.com/banners/$image -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sims-consolidated-3_csm_instrumentation_wrapper"] -+@@||yads.c.yimg.jp/js/yads-async.js$domain=kobe-np.co.jp|yahoo.co.jp -+##div[jsdata*="CarouselPLA-"][data-id^="CarouselPLA-"] -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[jsdata*="CarouselPLA-"][data-id^="CarouselPLA-"] -+twitter.com#?#div[data-testid="UserCell"]:-abp-has(svg + div[dir="auto"] > span:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/)) -+##.ad-center -+||atwola.com^ -+||unrulymedia.com^ -+/v1/ads/* -+###ad-north -+||dianomi.com^$third-party -+||yomeno.xyz^ -+###ad-north-base -+||aj1907.online^ -+/dfp.js$third-party -+||waisheph.com^ +||ebayrtm.com/rtm?RtmCmd*&enc= -+||adx1.com^$third-party -+@@||doodcdn.co^$domain=dood.la|dood.pm|dood.so|dood.to|dood.watch|dood.ws -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id*="_SponsoredProducts"] -+##.intra-article-ad -+msn.com##.intra-article-ad -+||cdn4ads.com^ -+||d3g5ovfngjw9bw.cloudfront.net^ -+##.adLink -+pornhub-com.appspot.com,pornhub.com,pornhub.net,pornhubthbh7ap3u.onion,youporn.com###pb_template -+||faphouse.com^$subdocument,third-party -+||buysellads.net^$third-party -+@@||fwmrm.net^*/AdManager.js$script -+##.banner-ads -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##.amzn-safe-frame-container -+/ad/api/* -+||serverbid.com^ -+##.AdSense -+##.body-top-ads -+/adcall? -+amazon.com,cancam.jp,faceyourmanga.com,isc2.org,liverc.com,liverpoolfc.com,mit.edu,muscatdaily.com,olx.pl,payback.pl,pccomponentes.com,ripley.com.pe,saitama-np.co.jp,timesofoman.com,virginaustralia.com#@#[id^="div-gpt-ad"] -+||cleverwebserver.com^ -+cancam.jp,saitama-np.co.jp#@#div[id^="div-gpt-"] -+||zikroarg.com^ -+||pubfuture.com^$third-party -+##.ad-space -+@@||onedrive.live.com^$generichide -+##.AD_area -+/advanced-ads-$domain=~wordpress.org -+##span[id^="ezoic-pub-ad-placeholder-"] -+@@||imasdk.googleapis.com/js/sdkloader/ima3.js$domain=247sports.com|api.screen9.com|bbc.com|blastingnews.com|bloomberg.com|cbsnews.com|cbssports.com|chicagotribune.com|cnet.com|crhoy.com|distro.tv|einthusan.tv|embed.comicbook.com|etonline.com|games.usatoday.com|givemesport.com|goodmorningamerica.com|goodstream.uno|howstuffworks.com|iheart.com|insideedition.com|metacritic.com|missoulian.com|newsweek.com|paralympic.org|paramountplus.com|player.abacast.net|player.earthtv.com|player.performgroup.com|popculture.com|rte.ie|scrippsdigital.com|sonyliv.com|tdn.com|truvid.com|tubitv.com|watch.nba.com|worldsurfleague.com|wsj.com|zdnet.com|zeebiz.com -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg###sponsoredProducts2_feature_div -+||betotodilea.com^ -+/advanced-ads/*$domain=~wordpress.org -+||papayads.net^$third-party -+/prebid4. -+||snigelweb.com^$third-party -+||inrhyhorntor.com^ -+||e-planning.net^$third-party -+_300x250. -+||innovid.com^$third-party -+youtube.com##.ytd-merch-shelf-renderer -+||inpage-push.com^ -+||optad360.io^ -+||aralego.com^$third-party -+&AdType= -+||adnxs-simple.com^ -+||adtelligent.com^$third-party -+.ads.css -+##.ezoic-ad -+||adtdp.com^$third-party -+||e2ertt.com^ -+||tribalfusion.com^ -+||innity.net^ -+##[data-ez-name] -+##.ezmob-footer -+##.ezoic-floating-bottom -+##.adtester-container -+||cuddlethehyena.com^ -+||anyclip.com^$script,third-party -+##.ezmob-footer-desktop -+||yieldlove.com^$third-party -+||browsiprod.com^ -+||youradexchange.com^ -+||adhigh.net^$third-party -+.admicro. -+||ay.delivery^ -+.ca/ads/ -+##[data-ad-width] -+||vak345.com^ -+###my-adsMAST -+||affluentshinymulticultural.com^ -+||trafficjunky.net^$third-party -+_advertisement_$domain=~media.ccc.de -+##.ad-label -+##.footer-ads -+||spotlighthemp.com^ -+##.ezo_ad -+###my-adsMAST-iframe -+||nessainy.net^ -+##.adsBox -+||exoclick.com^$domain=~admin.exoclick.com|~api.exoclick.com -+||amgdgt.com^ -+||ayads.co^ -+##.banner_ads -+##.ADBox -+##.ad-content -+_300x250_ -+||microad.net^ -+$popup,third-party,domain=1337x.buzz|720pstream.tv|9anime.id|adblockeronstreamtape.me|adblockstreamtape.art|adblockstreamtape.fr|adblockstreamtape.site|animepl.xyz|animeworld.biz|apl100.me|apl102.me|apl96.me|assia2.com|assia4.com|bflix.ru|cloudemb.com|cloudvideo.tv|couchtuner.show|databasegdriveplayer.xyz|dembed1.com|diampokusy.com|dir-proxy.net|dirproxy.info|dood.wf|dood.ws|dulu.to|embedsb.com|embedsito.com|fembed-hd.com|file-upload.com|filemoon.sx|freeplayervideo.com|geoip.redirect-ads.com|gogoanime.lol|haes.tech|highload.to|highstream.tv|hubfiles.ws|hydrax.xyz|katfile.com|kissanime.lol|kokostream.net|livesports4u.xyz|livetv498.me|loader.to|luxubu.review|mangovideo.pw|mixdrop.bz|mixdrop.ch|mixdrop.click|mixdrop.club|mixdrop.co|mixdrop.sx|mixdrop.to|mixdrops.xyz|myflixer.to|mystream.to|ninjastream.to|oneproxy.org|owodeuwu.xyz|piracyproxy.biz|piraproxy.info|pixroute.com|play.hydracdn.network|playtube.ws|pomvideo.cc|pouvideo.cc|projectfreetv2.com|proxyer.org|raes.tech|sbfast.com|sbplay2.com|sbplay2.xyz|sbthe.com|scloud.online|slmaxed.com|stape.fun|stape.me|strcloud.in|streamas.cloud|streambee.to|streamlare.com|streamon.to|streamta.pe|streamtape.com|streamtapeadblock.art|streamtapse.com|streamz.ws|streamzz.to|strtape.cloud|strtapeadblocker.xyz|strtpe.link|supervideo.tv|suzihaza.com|theproxy.ws|trafficdepot.xyz|tubeload.co|un-block-voe.net|uploadfiles.pw|uprot.net|uproxy.best|uproxy.co|upstream.to|upvid.biz|upvideo.to|uqload.com|userload.co|uwatchfree.fo|vanfem.com|vidcloud9.com|videovard.sx|videovard.to|vidlox.me|viewsb.com|vivo.sx|voe-unblock.com|voe-unblock.net|voe.sx|voeunblock1.com|voeunblock2.com|vupload.com|watchsb.com|wiztube.xyz|y2mate.is|youtubedownloader.sh|ytmp3.cc|ytmp3.sh -+$popup,third-party,domain=asianclub.tv|porn-tube-club.com -+||apathylahuli.website^ -+||proper.io^$third-party -+&adnum= -+||chaturbate.com/in/ -+/ad-cdn.$domain=~ad-cdn.getro.com -+/reklama.$~stylesheet,domain=~github.com|~pracuj.pl|~reklama.cinema.sk|~reklama.citylink.pro|~reklama.grajewo.net.pl|~reklama.mariafm.ru|~reklama.ringieraxelspringer.pl|~reklama.tochka.com -+||wbidr.com^ -+##.Ads_4 -+##.AdsRec -+||ad-stir.com^$third-party -+||targeting.vdo.ai^ -+||ebay.com/scl/js/ScandalLoader.js -+##.ad_unit -+##.ads-wrapper -+||outoctillerytor.com^ -+||metricswpsh.com^ -+yahoo.com###sda-MAST -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sims-consolidated-4_csm_instrumentation_wrapper"] -+||gscontxt.net^ ++||fastclick.net^ +||otm-r.com^$third-party -+/pustrck.js -+.jp/ads/$third-party,domain=~hs-exp.jp ++||adhigh.net^$third-party ++||exoclick.com^$domain=~admin.exoclick.com|~api.exoclick.com +outlook.live.com#?#div:-abp-has(> div > div.fbAdLink) -+###my-adsFPAD -+||infolinks.com^$third-party -+||adnami.io^$third-party -+@@||s.yimg.jp/images/listing/tool/yads/yads-timeline-ex.js$domain=yahoo.co.jp -+##.textads -+@@||v.fwmrm.net/ad/g/1?*_html5_live -+.uk/ads/ -+###my-adsHPSPON-base -+||reyden-x.com^$third-party -+###video-sponsor-links -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id*="_ad-placements-"] -+/gpt.js$script,xmlhttprequest -+/pagead/1p-user-list/* ++.ca/ads/ ++||youradexchange.com^ ++||buysellads.net^$third-party ++@@||myaccount.google.com^$generichide ++##.trc-content-sponsored +||alleviatepracticableaddicted.com^ -+||demand.supply^ -+##[name^="google_ads_iframe"] ++||vak345.com^ ++##a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"] ++||proper.io^$third-party ++##div[id^="adfox_"] ++_300x250_ ++||ayads.co^ ++canstar.com.au,mail.yahoo.com#@#a[href^="https://ad.doubleclick.net/"] ++||yieldlove.com^$third-party ++||trafficjunky.net^$third-party ++||chaturbate.com/in/ ++||optad360.io^ ++/prebidlink/* ++###slide_ad ++||ay.delivery^ ++@@||v.fwmrm.net/ad/g/1?*_html5_live$domain=~gulli.fr|~msn.com ++@@||yads.c.yimg.jp/js/yads-async.js$domain=kobe-np.co.jp|yahoo.co.jp ++||vinegarfactorelevator.com^ ++||gscontxt.net^ ++||waisheph.com^ ++||aralego.com^$third-party ++$csp=worker-src 'none',domain=torlock.com|alltube.pl|alltube.tv|centrum-dramy.pl|cmovies.ac|coinfaucet.eu|crictime.com|crictime.is|deltabit.co|doodcdn.com|estream.to|extreme-down.tv|flashx.co|flashx.to|flashx.tv|gomo.to|hdvid.fun|hdvid.tv|hitomi.la|kinox.to|lewd.ninja|assia1.tv|assia2.tv|nflbite.com|pirateproxy.live|plytv.me|potomy.ru|powvideo.cc|powvideo.net|putlocker.to|reactor.cc|rojadirecta.watch|sickrage.ca|streamtape.com|thehiddenbay.com|thepiratebay.org|thepiratebay10.org|tpb.party|uptomega.me|ustream.to|vidoza.co|vidoza.net|vidtodo.pro|wallpoper.com|wearesaudis.net|yazilir.com ++||spotlighthemp.com^ ++||innity.net^ ++.in/ads/ ++/pagead/1p-user-list/* ++||cdn.house^ ++##.ad-wrapper ++###taboola-below-article-thumbnails ++||conoret.com^ ++||adnami.io^$third-party ++||pushprofit.net^ ++||mczbf.com^ ++||yomeno.xyz^ ++vk.com###system_msg ++.uk/ads/ ++||undertone.com^$third-party ++fandom.com##.featured-video__wrapper ++/reklama.$~stylesheet,domain=~github.com|~pracuj.pl|~reklama.cinema.sk|~reklama.citylink.pro|~reklama.grajewo.net.pl|~reklama.mariafm.ru|~reklama.ringieraxelspringer.pl|~reklama.tochka.com ++.jp/ads/$third-party,domain=~hs-exp.jp ++###show-ad ++@@||amazon-adsystem.com/aax2/apstag.js$domain=accuweather.com|barstoolsports.com|blastingnews.com|cnn.com|exomashomepage.com|familyhandyman.com|foxbusiness.com|gamingbible.co.uk|history.com|keloland.com|radio.com|rd.com|tasteofhome.com|thehealthy.com|time.com|wboy.com|wkrn.com|wlns.com|wvnstv.com ++/adserve. +||adzerk.net^$third-party +||jivox.com^$third-party -+##.AdHolder -+||anymind360.com^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="LEFT-SAFE_FRAME-"] ++||betotodilea.com^ ++||reyden-x.com^$third-party +||twinrdsrv.com^ -+||fastclick.net^ -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##.commercial-unit-desktop-rhs:not(.mnr-c) -+||effectivemeasure.net^ -+@@||amazon-adsystem.com/aax2/apstag.js$domain=accuweather.com|barstoolsports.com|blastingnews.com|cnn.com|exomashomepage.com|familyhandyman.com|foxbusiness.com|gamingbible.co.uk|history.com|keloland.com|radio.com|rd.com|tasteofhome.com|thehealthy.com|time.com|wboy.com|wkrn.com|wlns.com|wvnstv.com -+||anicli.click^$third-party -+@@||myaccount.google.com^$generichide -+||undertone.com^$third-party -+://adv.$domain=~adv.asahi.com|~adv.bet|~adv.cincsys.com|~adv.co.it|~adv.cpa-api.ru|~adv.cryptonetlabs.it|~adv.derfunke.at|~adv.design|~adv.digimatix.ru|~adv.ec|~adv.ee|~adv.gg|~adv.michaelgat.com|~adv.msk.ru|~adv.neosystem.co.uk|~adv.rest|~adv.ru|~adv.tools|~adv.trinet.ru|~adv.ua|~adv.vg|~adv.vn.ua|~adv.works|~adv.yomiuri.co.jp|~advids.co|~erti.se|~escreverdireito.com|~farapp.com|~forex-tv-online.com|~pracuj.pl|~r7.com|~typeform.com|~welaika.com -+||mczbf.com^ -+||pushprofit.net^ -+/^https?:\/\/.*\/.*(sw[0-9a-z._-]{1,6}|\.notify\.).*/$script,domain=123films.cc|123proxy.biz|1337x.to|animekisa.tv|anonfiles.com|aparat.cam|bdupload.asia|bitfly.io|cashurl.in|clicknupload.to|clk.ink|cloudvideo.tv|cocomanhua.com|downloadpirate.com|filmix.co|filmlinks4u.is|flashx.pw|fmovies.taxi|fmovies.world|getlink.pro|hurawatch.at|igg-games.com|indishare.org|katflys.com|linksly.co|megaup.net|mixdrop.ch|mixdrop.co|mp3-convert.org|nutritioninsight.com|ouo.press|pcgamestorrents.com|pouvideo.cc|powvideo.net|powvldeo.cc|primewire.sc|proxyer.org|sendit.cloud|sendspace.com|shrinke.me|shrinkhere.xyz|solarmovie.to|theproxy.ws|uiz.io|up-load.io|upload.ac|uploadever.com|uploadproper.net|uploadrive.com|uplovd.com|upstream.to|userscloud.com|v96-surf.com|vev.red|vidbull.tv|videobin.co|vidlox.me|vidop.icu|vidoza.co|vidoza.net|vidtomp3.com|vidup.io|vumoo.life|watchtvseries.video|xtgem.com|xtits.com|yourbittorrent2.com|ziperto.com|zippyshare.com -+||yieldoptimizer.com^ -+##a[href^="//agacelebir.com/"] -+.in/ads/ -+_adsense. -+##display-ads -+||youngsterbusinessman.com^ -+1sale.com,7billionworld.com,9jaflaver.com,achieveronline.co.za,canstarblue.co.nz,chordfrenzy.com,climatechangenews.com,cryptonomist.ch,dallasobserver.com,energyforecastonline.co.za,esports.com,eventcinemas.co.nz,flashx.tv,furaffinity.net,geo.tv,govtrack.us,gramfeed.com,houstonpress.com,idiva.com,indiatimes.com,indiatoday.in,inspirock.com,knowyourmeme.com,m.economictimes.com,marinetraffic.com,mb.com.ph,mehrnews.com,meta-calculator.com,mini-ielts.com,miningprospectus.co.za,mugshots.com,myfitnesspal.com,nativeplanet.com,nbc.na,news.nom.co,nsfwyoutube.com,roadaheadonline.co.za,roms-download.com,russia-insider.com,russian-faith.com,savevideo.me,sddt.com,servicepublication.co.za,sgcarmart.com,sherdog.com,shipyearonline.co.za,stars-portraits.com,straitstimes.com,strawpoll.me,tcm.com,tech2.com,tehrantimes.com,tellerreport.com,thecatholicuniverse.com,thehackernews.com,thejakartapost.com,thelakewoodscoop.com,themalaysianinsider.com,thenews.com.pk,theprojectmanager.co.za,thestar.com.my,viamichelin.com,viamichelin.ie,vidstreaming.io,wallpaper.com,y8.com,yummy.ph##.ads -+yahoo.com##.ads -+babesandstars.com,cam-video.xxx,gosexy.mobi,hog.tv,javseen.tv,mobilepornmovies.com,mypornstarbook.net,pichunter.com,thisav.com##.ads -+9to5google.com,9to5mac.com,audiokarma.org,beeradvocate.com,bizjournals.com,biznews.com,businessinsider.com,computerworld.com,driven.co.nz,ecr.co.za,electrek.co,engineeringnews.co.za,etcanada.com,fox10phoenix.com,fox13news.com,fox26houston.com,fox29.com,fox2detroit.com,fox32chicago.com,fox35orlando.com,fox4news.com,fox5atlanta.com,fox5dc.com,fox5ny.com,fox7austin.com,fox9.com,foxbusiness.com,foxla.com,foxnews.com,funkidslive.com,gfinityesports.com,gmanetwork.com,grammarbook.com,hbr.org,insidehook.com,intouchweekly.com,khou.com,ktvu.com,lifeandstylemag.com,macstories.net,memuplay.com,metro.us,miningweekly.com,mobilesyrup.com,modernhealthcare.com,my9nj.com,nbcnews.com,nzherald.co.nz,oneesports.gg,opb.org,physiology.org,pixiv.net,politico.com,punchng.com,realsport101.com,reason.com,scroll.in,seattletimes.com,sportskeeda.com,theglobeandmail.com,thelocal.at,thelocal.ch,thelocal.de,thelocal.dk,thelocal.es,thelocal.fr,thelocal.it,thelocal.no,thelocal.se,toofab.com,usmagazine.com,wogx.com##.ad-container -+kemono.party,pinflix.com##.ad-container -+##.adBox -+##a[href^="https://paid.outbrain.com/network/redir?"] -+spiegel.de##a[href^="https://paid.outbrain.com/network/redir?"] -+||firstimpression.io^$third-party -+##.ad-box -+||bepiletussar.casa^ -+||vinegarfactorelevator.com^ -+||inklinkor.com^ -+||exitbee.com^$third-party -+||dooloust.net^ -+||pisism.com^ -+/images/ad-$domain=~slimjet.com ++youtube.com##.ytd-video-masthead-ad-v3-renderer +||clicktripz.com^$third-party -+||glugherg.net^$popup -+##.blogroll-ad-img -+/geminivideoads/* -+/^https?:\/\/s3\.*.*\.amazonaws\.com\/[a-f0-9]{45,}\/[a-f,0-9]{8,10}$/$script,third-party,xmlhttprequest,domain=~amazon.com -+###videoAd -+||tagbom.com^ -+-contrib-ads.$~stylesheet -+/adengage/* -+##AMP-AD -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##AMP-AD -+||franeski.net^ -+||buyseoblog.com^ -+##.ntv-ad -+||deliver.ptgncdn.com^ -+##.bottom-adv -+.ar/ads/ -+-prebid.$script -+||glersakr.com^ -+||xxxivjmp.com^ -+bing.com##.b_ad -+||ocmhood.com^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##[cel_widget_id*="-creative-desktop_loom-desktop-"] -+||srvtrck.com^ -+##a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"] -+##.ad-block -+aminoapps.com,crash.net,inc.com,trustpilot.com##.ad-block -+@@||g.doubleclick.net/tag/js/gpt.js$script,xmlhttprequest,domain=accuweather.com|blastingnews.com|bloomberg.com|digitaltrends.com|edy.rakuten.co.jp|epaper.timesgroup.com|formularywatch.com|gamespot.com|indy100.com|managedhealthcareexecutive.com|mediaite.com|medicaleconomics.com|nycgo.com|physicianspractice.com|standard.co.uk|theta.tv|webmd.com -+##.adsbygoogle-noablate -+||powerad.ai^ -+/getads/* -+3g2upl4pq6kufc4m.onion,audioreview.com,carlow-nationalist.ie,cellmapper.net,craigclassifiedads.com,dekhobd.com,duckduckgo.com,g.doubleclick.net,irannewsdaily.com,kildare-nationalist.ie,laois-nationalist.ie,lorempixel.com,photographyreview.com,quiz4fun.com,roscommonherald.ie,waterford-news.ie###ads -+/assets/ads/*$domain=~outlook.live.com -+||brand-display.com^ -+||veta.naver.com^ -+##a[href^="https://a.adtng.com/"] -+##div[id^="dfp-ad-"] -+||tradedoubler.com^$third-party -+/advertising_$domain=~advertising.scoop.co.nz -+##.reklama -+||xadsmart.com^ -+||displayvertising.com^ -+/prebidlink/* -+###gf-mrecs-ads -+||d2uap9jskdzp2.cloudfront.net^ -+||videoroll.net^$third-party -+/ads.txt -+canstar.com.au,mail.yahoo.com#@#a[href^="https://ad.doubleclick.net/"] -+||d3mzokty951c5w.cloudfront.net^ -+ebay.com##div[title="ADVERTISEMENT"] ++youtube.com##ytd-video-masthead-ad-v3-renderer +||cloudimagesb.com^ -+||ebayrtm.com/rtm?RtmIt -+##.kakao_ad_area -+/insideAD. -+||vntsm.io^ -+||xlviirdr.com^ -+/script/ut.js?cb=$third-party -+xhamster.com,xhamster.one,xhamster2.com##[class^="xplayer-banner"] -+##.outeradcontainer -+||d11enq2rymy0yl.cloudfront.net^ -+##.header-ads -+/ads-blocking-detector. -+##div[id^="amzn-assoc-ad"] -+##.native-ad-item -+&ad_type= -+||pubmine.com^ -+pornhub.com,pornhubthbh7ap3u.onion##.sniperModeEngaged -+##.ima-ad-container -+||behave.com^$third-party -+##.ads_ad_box -+##.ads_ad_box2 -+##div[id^="adngin-"] -+javacodegeeks.com##div[id^="adngin-"] -+##div[data-insertion] -+###my-adsLREC4-base -+mail.yahoo.com###slot_LREC -+||brealtime.com^$third-party -+##.adsverting ++||ad-stir.com^$third-party ++||anyclip.com^$script,third-party ++||effectivemeasure.net^ ++||anymind360.com^ ++||passfixx.com^ ++||glizauvo.net^ +@@||slack.com^$generichide -+##div[id^="rc-widget-"] -+/prebid? -+||betrad.com^$third-party -+##.ad-desktop -+||eephaush.com^ -+readmanganato.com##div[style="text-align: center; max-width: 620px; max-height: 270px; margin: 10px auto; overflow: hidden; display: block;"] -+||clksite.com^ -+||yellowblue.io^ -+readmanganato.com##div[style="width: 100%;overflow: hidden;text-align: center;"] -+/quick-adsense-reloaded/* -+||ads-pixiv.net^$third-party -+||xlivrdr.com^ -+##.top-ad -+||buzzoola.com^$third-party -+##.ad_box -+/prebid7. -+||adpod.in^ -+/amp4ads- -+##div[id^="crt-"][style] -+||bande2az.com^ -+||videoplaza.tv^$third-party -+/display.ad. -+mail.yahoo.com##[rel="noreferrer"][data-test-id][href^="https://beap.gemini.yahoo.com/mbclk?"] -+.com/ads? -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[data-crl="true"][data-id^="CarouselPLA-"] -+##.profile-ads-container -+||springserve.com^$~media,third-party -+/Ads/bid -+||qsearch-a.akamaihd.net^ -+||insightexpressai.com^ -+||pocli.click^ ++/^https?:\/\/.*\/.*(sw[0-9a-z._-]{1,6}|\.notify\.).*/$script,domain=123films.cc|123proxy.biz|1337x.to|animekisa.tv|anonfiles.com|aparat.cam|bdupload.asia|bitfly.io|cashurl.in|clicknupload.to|clk.ink|cloudvideo.tv|cocomanhua.com|downloadpirate.com|filmix.co|filmlinks4u.is|flashx.pw|fmovies.taxi|fmovies.world|getlink.pro|hurawatch.at|igg-games.com|indishare.org|katflys.com|linksly.co|megaup.net|mixdrop.ch|mixdrop.co|mp3-convert.org|nutritioninsight.com|ouo.press|pcgamestorrents.com|pcgamestorrents.org|pouvideo.cc|powvideo.net|powvldeo.cc|primewire.sc|proxyer.org|sendit.cloud|sendspace.com|shrinke.me|shrinkhere.xyz|solarmovie.to|theproxy.ws|uiz.io|up-load.io|upload.ac|uploadever.com|uploadproper.net|uploadrive.com|uplovd.com|upstream.to|userscloud.com|v96-surf.com|vev.red|vidbull.tv|videobin.co|vidlox.me|vidop.icu|vidoza.co|vidoza.net|vidtomp3.com|vidup.io|vumoo.life|watchtvseries.video|xtgem.com|xtits.com|yourbittorrent2.com|ziperto.com|zippyshare.com ++||papayads.net^$third-party +||pbxai.com^ -+##.adWrapper -+||servenobid.com^$third-party -+/ads/native. -+||d1f05vr3sjsuy7.cloudfront.net^ -+||fuseplatform.net^ -+mail.yahoo.com##[data-test-id^="pencil-ad"] -+||bebi.com^$third-party -+##.adbanner -+2b2t.online,caixinglobal.com,chicagobusiness.com,chronicle.co.zw,duckduckgo.com,dunyanews.tv,fifplay.com,hbr.org,herald.co.zw,infoq.com,lawandcrime.com,libhunt.com,motherjones.com,msn.com,reviewjournal.com,stocksnap.io,timeslive.co.za##.sponsored -+fux.com,pornerbros.com,porntube.com,tubedupe.com##.sponsored -+||uimserv.net^ -+||likedstring.com^ -+-prebid- -+||sportradarserving.com^ -+##.ad-mobile -+||unseenreport.com^ -+###desktop-ad-btf -+||jwpcdn.com/player/plugins/googima/ -+##.vjs-ima3-ad-container -+##.dfp-ad ++||inklinkor.com^ ++.ar/ads/ +||eclick.vn^$third-party ++/amp4ads- ++||targeting.vdo.ai^ ++/prebid7. ++/assets/ads/*$domain=~outlook.live.com ++##a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] ++/^https?:\/\/s3\.*.*\.amazonaws\.com\/[a-f0-9]{45,}\/[a-f,0-9]{8,10}$/$script,third-party,xmlhttprequest,domain=~amazon.com ++||srvtrck.com^ ++twitter.com#?#h2[role="heading"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) ++||videoplaza.tv^$third-party +politico.com#@#a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] -+||r-tb.com^ -+||com/banners/$image,object,subdocument,domain=~pingdom.com|~thetvdb.com|~tooltrucks.com -+.au/ads/ -+.adrotate. -+$csp=worker-src 'none',domain=torlock.com|alltube.pl|alltube.tv|centrum-dramy.pl|cmovies.ac|coinfaucet.eu|crictime.com|crictime.is|deltabit.co|doodcdn.com|estream.to|extreme-down.tv|flashx.co|flashx.to|flashx.tv|gomo.to|hdvid.fun|hdvid.tv|hitomi.la|kinox.to|lewd.ninja|assia1.tv|assia2.tv|nflbite.com|pirateproxy.live|plytv.me|potomy.ru|powvideo.cc|powvideo.net|putlocker.to|reactor.cc|rojadirecta.watch|sickrage.ca|streamtape.com|thehiddenbay.com|thepiratebay.org|thepiratebay10.org|tpb.party|uptomega.me|ustream.to|vidoza.co|vidoza.net|vidtodo.pro|wallpoper.com|wearesaudis.net|yazilir.com -+/images/ads/*$domain=~oppdrettstorget.no -+##.sticky-ad -+##.ezoic-ad-adaptive -+##.bottom-ad -+||orangeads.fr^ -+||amazonaws.com^$domain=1337x.to|1337xx.to|bluemediafiles.com|daddylive.click|downloadpirate.com|hexupload.net|igg-games.com|krunkercentral.com|s2dfree.cc|s2dfree.de|s2dfree.is|s2dfree.nl|s2dfree.to|soap2day.ac|soap2day.cc|soap2day.cx|soap2day.sh|soap2day.to|torrentgalaxy.to|torrentgalaxy.tv|torrentmac.net|vshare.eu|yify-movies.net -+||your-notice.com^ -+imdb.com##.slot_wrapper -+.es/ads/ -+||coderformylife.info^ -+##.ad-wrap -+||runative-syndicate.com^ -+###my-adsLDRB -+##.sponsor-text -+_728x90. -+##div[class^="native-ad-"] -+||iclickcdn.com^ -+/ezcl.webp? -+||adgrx.com^$third-party -+||valuecommerce.com^$third-party -+##.ob-hover -+##.slide-ad ++fandom.com###featured-video__player ++||ocmhood.com^ ++/gpt.js$script,xmlhttprequest ++||glersakr.com^ ++||xlviirdr.com^ ++||apathylahuli.website^ ++##.remove-ads ++-auto-ads- ++||nessainy.net^ ++||yieldoptimizer.com^ ++||firstimpression.io^$third-party ++||brand-display.com^ ++||yellowblue.io^ ++||xlivrdr.com^ ++||eephaush.com^ ++||metricswpsh.com^ ++@@||g.doubleclick.net/tag/js/gpt.js$script,xmlhttprequest,domain=accuweather.com|blastingnews.com|bloomberg.com|devclass.com|digitaltrends.com|edy.rakuten.co.jp|epaper.timesgroup.com|formularywatch.com|gamespot.com|indy100.com|managedhealthcareexecutive.com|mediaite.com|medicaleconomics.com|nycgo.com|physicianspractice.com|standard.co.uk|theta.tv|webmd.com ++||demand.supply^ ++##a[href^="//agacelebir.com/"] ++##.intra-article-ad ++msn.com##.intra-article-ad ++/getads/* ++/geminivideoads/* ++||glugherg.net^$popup ++||outoctillerytor.com^ ++://adv.$domain=~adv.asahi.com|~adv.bet|~adv.cincsys.com|~adv.co.it|~adv.cpa-api.ru|~adv.cryptonetlabs.it|~adv.derfunke.at|~adv.design|~adv.digimatix.ru|~adv.ec|~adv.ee|~adv.gg|~adv.michaelgat.com|~adv.msk.ru|~adv.neosystem.co.uk|~adv.rest|~adv.ru|~adv.tools|~adv.trinet.ru|~adv.ua|~adv.vg|~adv.vn.ua|~adv.works|~adv.yomiuri.co.jp|~advids.co|~erti.se|~escreverdireito.com|~farapp.com|~forex-tv-online.com|~pracuj.pl|~r7.com|~typeform.com|~welaika.com ++@@||s.yimg.jp/images/listing/tool/yads/yads-timeline-ex.js$domain=yahoo.co.jp ++||xxxivjmp.com^ ++||report2.biz^ ++||e2ertt.com^ ++||wbidder.online^ ++||buzzoola.com^$third-party ++||anicli.click^$third-party ++@@||cloud.google.com^$~third-party ++||zikroarg.com^ ++||franeski.net^ ++||videosworks.com^ ++/advertising_$domain=~advertising.scoop.co.nz ++||tradedoubler.com^$third-party ++###bannerAd ++||ebay.com/scl/js/ScandalLoader.js ++/prebid4. ++||deliver.ptgncdn.com^ ++||admanmedia.com^$third-party +advancedrenamer.com,cdromance.com,epicbundle.com,hs-exp.jp,korail.pe.kr,phcorner.net,teemo.gg,willyoupressthebutton.com#@#.adsbygoogle +androidrepublic.org,anonymousemail.me,apkmirror.com,demos.krajee.com,kadinlarkulubu.com,pixiz.com,spoilertv.com#@#.adsbygoogle -+###my-adsLDRB-iframe -+||ashoupsu.com^ -+yahoo.com##.darla-container -+/prebid5. -+###adBanner -+-prebid/ -+##.header-ad -+###adContainer -+||ugroocuw.net^ -+||admanmedia.com^$third-party -+twitter.com#?#h2[role="heading"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) -+-auto-ads- -+##.wall-ads-control -+||popcash.net^ -+||apps.media-lab.ai^ -+/admanager.$~object,~xmlhttprequest,domain=~admanager.alzura.com|~admanager.google.com -+###my-adsLREC -+##.ob-strip-layout -+##.adchoices -+##.right-ad -+||taroads.com^ -+||resetoccultkeeper.com^ -+||o333o.com^ -+/ad2.$~xmlhttprequest,domain=~vereinslinie.de -+||acacdn.com^ -+##.js-ad -+||affec.tv^$third-party -+/adman.$domain=~adman.com|~adman.ee|~adman.press.pl|~adman.studio -+||nytrng.com^ -+.com/ads_ -+||impactserving.com^ -+||glizauvo.net^ -+##.amp-unresolved -+##.i-amphtml-unresolved -+###adsbox -+||profitablecpmgate.com^ -+||agacelebir.com^$popup -+?adspot_ -+##.mobile-ad -+##.adunit -+money.yahoo.com###sda-MON -+yahoo.com###sda-MON -+/adchoices. -+##.ad-300 -+||outsliggooa.com^ -+###my-adsMON -+##[class^="div-gpt-ad"] -+||smilewanted.com^$third-party -+##.ad-rectangle -+##.banner_adv ++||vntsm.io^ ++||exitbee.com^$third-party ++||d2uap9jskdzp2.cloudfront.net^ ++||displayvertising.com^ ++||cuddlethehyena.com^ ++-contrib-ads.$~stylesheet +$script,third-party,xmlhttprequest,domain=mixdrop.co +$script,third-party,xmlhttprequest,domain=govid.co +$script,third-party,xmlhttprequest,domain=abcvideo.cc +$script,third-party,xmlhttprequest,domain=ouo.io|ouo.press -+##.adunitContainer ++/ads.txt ++/ads-blocking-detector. ++||springserve.com^$~media,third-party ++||qsearch-a.akamaihd.net^ ++###video-ad ++@@||www.googleadservices.*/aclk?$domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk|googleadservices.com ++||d3mzokty951c5w.cloudfront.net^ ++.au/ads/ ++/Ads/bid ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg###nav-swmslot ++||videoroll.net^$third-party ++||pocli.click^ ++||certaintysurroundingcab.com^ ++/plugins/advanced-ads/*$domain=~wordpress.org ++-prebid- ++||betrad.com^$third-party ++||com/banners/$image,object,subdocument,domain=~pingdom.com|~thetvdb.com|~tooltrucks.com ++||d1f05vr3sjsuy7.cloudfront.net^ ++||microad.net^ ++-prebid.$script ++||ebayrtm.com/rtm?RtmIt ++||adpod.in^ ++||insightexpressai.com^ ++||fuseplatform.net^ ++||brealtime.com^$third-party ++||rtclx.com^ ++||servenobid.com^$third-party ++/images/ads/*$domain=~oppdrettstorget.no ++.com/ads? ++||amgdgt.com^ ++||xadsmart.com^ ++||popcash.net^ ++/ad-cdn.$domain=~ad-cdn.getro.com ++/prebid? ++_728x90. ++||adgrx.com^$third-party ++||powerad.ai^ ++$image,script,subdocument,third-party,xmlhttprequest,domain=heapfiles.com|vidoza.co|vidoza.net ++$image,script,subdocument,third-party,xmlhttprequest,domain=flashx.to|flashx.tv ++||amazonaws.com^$domain=1337x.to|1337xx.to|bluemediafiles.com|daddylive.click|downloadpirate.com|hexupload.net|igg-games.com|krunkercentral.com|powvibeo.me|s2dfree.cc|s2dfree.de|s2dfree.is|s2dfree.nl|s2dfree.to|shrinke.me|soap2day.ac|soap2day.cc|soap2day.cx|soap2day.sh|soap2day.to|torrentgalaxy.to|torrentgalaxy.tv|torrentmac.net|upload-4ever.com|vshare.eu|yify-movies.net ++##div[data-google-query-id] ++||valuecommerce.com^$third-party +_728x90_ ++||uimserv.net^ ++||rszimg.com^ ++##.adsBox ++||d11enq2rymy0yl.cloudfront.net^ ++.adrotate. ++||js7k.com^ ++||videosprofitnetwork.com^ ++||o333o.com^ ++||smartadserver.com^$domain=spiegel.de ++@@://192.168.1.1$generichide ++reddit.com##.promotedlink ++||smilewanted.com^$third-party ++||orangeads.fr^ ++/admanager.$~object,~xmlhttprequest,domain=~admanager.alzura.com|~admanager.google.com ++||moviead55.ru^ ++||goaserv.com^ ++##.ad-link ++||sportradarserving.com^ ++||nytrng.com^ ++backcar.fr,flat-ads.com,job.inshokuten.com#@#.ad-content ++||clksite.com^ ++||acacdn.com^ ++##.AdBox ++||pubmine.com^ ++||jomtingi.net^ ++||runative-syndicate.com^ ++##.c-ads ++||sascdn.com/diff/$image,script ++##.ad-zone ++/ezcl.webp? ++||improvedigital.com^$third-party ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###center_col > #taw > #tvcap > .cu-container > .commercial-unit-desktop-top ++##.ad-slot-placeholder ++||ipredictive.com^ +/^https?:\/\/.*(com|net|top|xyz)\/(bundle|warning|style|bootstrap|brand|reset|jquery-ui|styles|error|logo|index|favicon|star|header)\.(png|css)\?[A-Za-z0-9]{30,}.*/$third-party -+##._ap_apex_ad -+||districtm.io^ -+###ad-skin -+megaxh.com##.xplayer-banner-bottom -+##.wall-ads-right -+||eehuzaih.com^ -+/adfit/* -+||taembed.com^ -+||freychang.fun^ ++readmanganato.com##div[style="width: 100%;overflow: hidden;text-align: center;"] ++||behave.com^$third-party ++readmanganato.com##div[style="text-align: center; max-width: 620px; max-height: 270px; margin: 10px auto; overflow: hidden; display: block;"] ++##.banner-ads ++||headerlift.com^$third-party ++.es/ads/ ++@@||streamtape.com^$subdocument +@@||nytimes.com^*/adslot-$script,xmlhttprequest -+##.unionAd -+||special-offers.online^ ++@@||dropbox.com^$generichide ++||testamenttakeoutkill.com^ ++-prebid/ ++##.adsbytrafficjunky ++tube8.com,tube8.es,tube8.fr##.adsbytrafficjunky ++||bebi.com^$third-party ++##.adLink ++/adchoices. ++||ads-pixiv.net^$third-party ++||scriptcdn.net^ ++||districtm.io^ ++=728x90, ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk###tadsb[aria-label] ++seura.fi,www.msn.com#@#.nativead ++||denetsuk.com^ ++||affec.tv^$third-party ++###ad-north ++||taembed.com^ ++||dooloust.net^ ++||resavethyme.com^ ++/insideAD. ++||vi-serve.com^ ++||vi-serve.com^$domain=spiegel.de ++##.ad-space ++||impactserving.com^ ++||vidora.com^$third-party ++||content.livesportmedia.eu^ ++dailyvoice.com##.b-banner ++-300x250-$~xmlhttprequest ++?adspot_ ++||lephaush.net^ ++/ad2.$~xmlhttprequest,domain=~shoplinker.co.kr|~vereinslinie.de ++||r-tb.com^ ++.mx/ads/ ++||resetoccultkeeper.com^ ++||facebook.com/network_ads_common ++||nestledmph.com^ ++||extend.tv^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="adplacements:"] ++||otnolatrnup.com^ ++##.bottom-ads-container ++=300x250, ++||likedstring.com^ ++||plrjs.org^ ++||grapeshot.co.uk^$third-party ++yahoo.com##.darla ++/ads/native. ++||intelligenceadx.com^ ++||taembed.com^$popup ++||ugroocuw.net^ ++###ads_left ++##.top-ads-container ++||lkqd.net^ ++||profitablegatetocontent.com^ ++||bande2az.com^ ++||udmserve.net^ ++/prebidjs/* ++.com/ads_ ++/prebid5. ++##.banner_ads ++||d2klx87bgzngce.cloudfront.net^ ++||celeritascdn.com^ ++||inpage-push.com^ ++##display-ads ++@@||hqq.to/ad/api/popunder.js$script ++||xxxjmp.com^ ++||notifypicture.info^ ++##[name^="google_ads_iframe"] ++||ezojs.com^ ++||midas-network.com^$third-party ++##.adsbyvli ++##.post-ads ++||agacelebir.com^$popup ++||runawaygreasy.com^ ++###dfp-tlb ++||hhklc.com^ ++##.textads ++##.ad-center ++##.AdSense ++||cpmstar.com/cached/ ++facebook.com##a[aria-label="Advertiser"] +@@||googletagservices.com/tag/js/gpt.js$domain=chelseafc.com|epaper.timesgroup.com|k2radio.com|koel.com|kowb1290.com|nbcsports.com|scotsman.com|uefa.com|vimeo.com|windalert.com +@@||googletagservices.com/tag/js/gpt.js$domain=allestoringen.be|allestoringen.nl|downdetector.ae|downdetector.ca|downdetector.cl|downdetector.co.nz|downdetector.co.uk|downdetector.co.za|downdetector.com|downdetector.com.ar|downdetector.com.au|downdetector.com.br|downdetector.com.co|downdetector.cz|downdetector.dk|downdetector.ec|downdetector.es|downdetector.fi|downdetector.fr|downdetector.gr|downdetector.hk|downdetector.hr|downdetector.hu|downdetector.id|downdetector.ie|downdetector.in|downdetector.it|downdetector.jp|downdetector.mx|downdetector.my|downdetector.no|downdetector.pe|downdetector.ph|downdetector.pk|downdetector.pl|downdetector.pt|downdetector.ro|downdetector.ru|downdetector.se|downdetector.sg|downdetector.sk|downdetector.web.tr|xn--allestrungen-9ib.at|xn--allestrungen-9ib.ch|xn--allestrungen-9ib.de +@@||googletagservices.com/tag/js/gpt.js$domain=farfeshplus.com|gentside.com|pccomponentes.com|tv-asahi.co.jp|vlive.tv|voici.fr -+##.RectangleAd -+||smartadserver.com^$domain=spiegel.de -+||dismantlepenantiterrorist.com^ -+yahoo.com##.caas-da -+@@||hqq.to/ad/api/popunder.js$script -+.mx/ads/ -+||cpmstar.com/cached/ -+##div[id^="zergnet-widget"] -+##a[href^="https://landing.brazzersnetwork.com/"] -+##.ad-sticky -+backcar.fr,flat-ads.com,job.inshokuten.com#@#.ad-content -+##.dfp_unit -+##div[data-adunit] -+##.advertising_widget -+||resavethyme.com^ -+||ipredictive.com^ -+||js7k.com^ -+||plrjs.org^ ++||adpone.com^$third-party ++msn.com#@#.serversidenativead ++||patiotheoretical.com^ ++||iclickcdn.com^ +/_adslot/* -+##.footer-ad -+||vi-serve.com^ -+||vi-serve.com^$domain=spiegel.de -+||cdn.house^ -+||certaintysurroundingcab.com^ -+##.download_link_sponsored -+yahoo.com###sda-LREC -+||bizographics.com^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##.sbv-video-single-product -+yahoo.com###sda-LDRB -+/popunder. -+||vidora.com^$third-party ++##.kakao_ad_area ++||highperformancegate.com^ ++||freychang.fun^ ++||s.0cf.io^ ++##.gpt-ad +||m2.ai^ -+-300x250-$~xmlhttprequest -+@@||www.googleadservices.*/aclk?$domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk|googleadservices.com -+||sascdn.com/diff/$image,script -+||greeter.me^ -+||grapeshot.co.uk^$third-party -+||ryeeffortoccupy.com^ -+||intelligenceadx.com^ -+||udmserve.net^ -+@@://192.168.1.1$generichide ++/display.ad. ++/adman.$domain=~adman.com|~adman.ee|~adman.press.pl|~adman.studio ++||ad.wsod.com^ ++||superfastcdn.com^ ++||profitablecpmgate.com^ ++codinghorror.com,stackoverflow.com###hireme ++/images/ad/*$domain=~webryblog.biglobe.ne.jp ++||tomentaabac.com^ ++/adex.js ++##.ntv-ad ++##.ad_text ++/^https?:\/\/.*\/[a-z0-9A-Z_]{2,15}\.(php|jx|jsx|1ph|jsf|jz|jsm|j$)/$image,script,subdocument,domain=4tube.com|alotporn.com|alphaporno.com|alrincon.com|amateur8.com|anyporn.com|anysex.com|badjojo.com|bdsmstreak.com|bestfreetube.xxx|bigtitslust.com|bravotube.net|cockmeter.com|daftporn.com|erome.com|exoav.com|fantasti.cc|fapality.com|fapnado.com|fetishshrine.com|freeporn8.com|gfsvideos.com|gotporn.com|hdporn24.org|hdpornmax.com|hdtube.porn|hellporno.com|hottorrent.org|hqsextube.xxx|hqtube.xxx|iceporn.com|imx.to|katestube.com|lustypuppy.com|manhwa18.cc|maturetubehere.com|megatube.xxx|milffox.com|momxxxfun.com|openloadporn.co|orsm.net|pervclips.com|porn-plus.com|porndr.com|pornicom.com|pornid.xxx|pornotrack.net|pornrabbit.com|pornwatchers.com|pornwhite.com|pussy.org|redhdtube.xxx|rule34.art|sexvid.porn|sexvid.pro|sexvid.xxx|sexytorrents.info|shameless.com|sleazyneasy.com|smutty.com|sortporn.com|stepmom.one|stileproject.com|str8ongay.com|tnaflix.com|urgayporn.com|vikiporn.com|wankoz.com|xbabe.com|xcafe.com|xxx-torrent.net|xxxdessert.com|xxxextreme.org|xxxonxxx.com|yourlust.com|youx.xxx|zbporn.com|zbporn.tv ++##.body-top-ads ++.hk/ads/ ++###my-adsMAST ++###my-adsMAST-iframe ++/^https?:\/\/.*\/.*sw[0-9._].*/$script,xmlhttprequest,domain=1vag.com|4tube.com|adult-channels.com|analdin.com|biguz.net|bogrodius.com|chikiporn.com|daftsex.com|fantasti.cc|fuqer.com|fux.com|hclips.com|heavy-r.com|hog.tv|megapornx.com|milfzr.com|mypornhere.com|niceporn.xxx|porn555.com|pornchimp.com|pornerbros.com|pornj.com|pornl.com|pornototale.com|porntube.com|sexu.com|sss.xxx|thisav.com|titkino.net|tubepornclassic.com|tuberel.com|tubev.sex|txxx.com|vidmo.org|vpornvideos.com|xozilla.com|youporn.lc|youpornhub.it|yourdailypornstars.com ++||zergnet.com/zerg.js ++||mbid.marfeelrev.com^ ++##.ad_box ++||nativeroll.tv^$third-party ++||andbeyond.media^$third-party ++mail.yahoo.com###slot_LREC ++msn.com##[class^="nativeAd"] ++##.adsbygoogle-noablate ++||achcdn.com^ ++##.reklama ++/300x250_ ++||lantodomirus.com^ ++/plugins/thirstyaffiliates/* ++###admain ++||adlooxtracking.com^$third-party +||modoro360.com^ -+##.postadsense -+##.ad-leaderboard -+##.leaderboard_ad -+###sky-right -+dailymail.co.uk###sky-right -+##.ad-top -+||ausoafab.net^ -+##.ad-icon -+||facebook.com/network_ads_common -+imdb.com##.cornerstone_slot -+##.quads-location -+coingape.com##.quads-location -+.com/ad/$~image,third-party,domain=~mediaplex.com|~warpwire.com -+||media6degrees.com^ -+##.ad--mobile -+##.adthrive-content -+###adchoicesBtn -+=728x90, -+||passfixx.com^ -+##.sponsorPost ++youtube.com##.ytd-promoted-video-renderer ++##.js-results-ads ++duckduckgo.com##.js-results-ads ++||messenger-notify.digital^$popup ++youtube.com##.ytd-search-pyv-renderer ++/ad.min. ++||mgbid.net^ ++/prebid2. ++||d27genukseznht.cloudfront.net^ ++||jaavnacsdw.com^ ++||dismantlepenantiterrorist.com^ ++||cdnativepush.com^ ++||adgebra.co.in^ ++||bidvol.com^$third-party ++||aj1559.online^ ++/prebid3. ++/native-ad- ++###adsbox ++||eehuzaih.com^ ++||quantumdex.io^$third-party ++||bbelements.com^$third-party ++||dyncdn.me/static/20/js/expla ++||cagothie.net^ ++||d27qffx6rqb3qm.cloudfront.net^ ++||bizographics.com^ ++/adtrack.$domain=~adtrack.ca|~adtrack.yacast.fr ++||spolecznosci.net^$third-party ++||a-mo.net^ ++||adapex.io^$third-party ++@@||bbc.gscontxt.net^$script,domain=bbc.com ++||adnuntius.com^$third-party ++##.ad-label ++||eqads.com^ ++||blockadsnot.com^ ++||adform.net^$domain=spiegel.de ++###my-adsFPAD ++##.reviews-display-ad ++||player.ex.co^$script,third-party ++###my-adsHPSPON-base ++||unseenreport.com^ +||in-page-push.com^ +||adverticum.net^$third-party -+###zdcFloatingBtn -+@@||dropbox.com^$generichide -+##.ad-card -+||andbeyond.media^$third-party -+||spolecznosci.net^$third-party -+||lkqd.net^ -+||improvedigital.com^$third-party -+||d2klx87bgzngce.cloudfront.net^ -+||player.ex.co^$script,third-party -+##.adthrive -+/^https?:\/\/.*\/sw.js?.[a-zA-Z0-9%]{50,}/$script,~third-party -+||moviead55.ru^ -+/adsnippet. -+||midas-network.com^$third-party -+/^https?:\/\/.*\/[a-z0-9A-Z_]{2,15}\.(php|jx|jsx|1ph|jsf|jz|jsm|j$)/$image,script,subdocument,domain=4tube.com|alotporn.com|alphaporno.com|alrincon.com|amateur8.com|anyporn.com|anysex.com|badjojo.com|bdsmstreak.com|bestfreetube.xxx|bigtitslust.com|bravotube.net|cockmeter.com|daftporn.com|erome.com|exoav.com|fantasti.cc|fapality.com|fapnado.com|fetishshrine.com|freeporn8.com|gfsvideos.com|gotporn.com|hdporn24.org|hdpornmax.com|hdtube.porn|hellporno.com|hottorrent.org|hqsextube.xxx|hqtube.xxx|iceporn.com|imx.to|katestube.com|lustypuppy.com|manhwa18.cc|maturetubehere.com|megatube.xxx|milffox.com|momxxxfun.com|openloadporn.co|orsm.net|pervclips.com|porn-plus.com|porndr.com|pornicom.com|pornotrack.net|pornrabbit.com|pornwatchers.com|pornwhite.com|pussy.org|redhdtube.xxx|rule34.art|sexvid.xxx|sexytorrents.info|shameless.com|sleazyneasy.com|smutty.com|sortporn.com|stepmom.one|stileproject.com|str8ongay.com|tnaflix.com|urgayporn.com|vikiporn.com|wankoz.com|xbabe.com|xcafe.com|xxx-torrent.net|xxxdessert.com|xxxextreme.org|xxxonxxx.com|xxxrip.net|yourlust.com|youx.xxx|zbporn.tv -+||hhklc.com^ -+/api/handshake?site=$xmlhttprequest -+/get/*?zoneid=$third-party -+##.widgetSponsors -+spankbang.com##.ptgncdn_holder -+||celeritascdn.com^ -+##a[href^="https://deliver.ptgncdn.com/"] -+##.video-ad -+##.ad_text -+##.dianomi_context -+##.ad-banner-container -+||ad.wsod.com^ -+||extend.tv^ ++###my-adsLREC4-base +||wtg-ads.com^ -+##.banner-ad -+||zergnet.com/zerg.js -+##.inline-ad -+||content.livesportmedia.eu^ -+||nativeroll.tv^$third-party -+||goaserv.com^ -+.hk/ads/ -+||adtlgc.com^ -+##.jeg_ad -+##.myTestAd -+||mgbid.net^ -+/prebidjs/* -+yahoo.com###sda-LREC2 -+/advertising.$~script,~xmlhttprequest,domain=~advertising.amazon.ae|~advertising.amazon.ca|~advertising.amazon.cn|~advertising.amazon.co.jp|~advertising.amazon.co.uk|~advertising.amazon.com|~advertising.amazon.com.au|~advertising.amazon.com.mx|~advertising.amazon.de|~advertising.amazon.es|~advertising.amazon.fr|~advertising.amazon.in|~advertising.amazon.it|~advertising.amazon.sa|~advertising.berlin-airport.de|~advertising.boardgamegeek.com|~advertising.bulurum.com|~advertising.byhoxby.com|~advertising.dailymotion.com|~advertising.expedia.com|~advertising.fubo.tv|~advertising.greunenberg.com|~advertising.hulu.com|~advertising.lavenir.net|~advertising.mobile.de|~advertising.nzme.co.nz|~advertising.org.il|~advertising.racingpost.com|~advertising.roku.com|~advertising.scoop.co.nz|~advertising.sevenwestmedia.com.au|~advertising.shpock.com|~advertising.theguardian.com|~advertising.utexas.edu|~advertising.vrisko.gr|~advision.co -+||offerimage.com^ -+||otnolatrnup.com^ -+||highperformancegate.com^ -+seura.fi,www.msn.com#@#.nativead -+/adex.js -+||headerlift.com^$third-party -+/plugins/thirstyaffiliates/* -+/www/*&zoneid= -+##.jeg_ad_top -+##.jnews_header_top_ads -+||lr-in.com^ -+||besmeargleor.com^ -+||aeoliancorojo.com^ -+/prebid2. -+||protagcdn.com^ -+||videosworks.com^ -+||dyncdn.me/static/20/js/expla -+/valnet-header-ads. -+/api/getcreatives? -+##[data-freestar-ad] -+##a[href^="http://pubads.g.doubleclick.net/"] -+##.block-ad -+/images/ad/*$domain=~webryblog.biglobe.ne.jp -+###quads-admin-ads-js -+||caroda.io^$third-party -+||sitemaji.com^$third-party -+||runawaygreasy.com^ -+##.ad-widget -+||deckerexuvium.com^ -+##.ad-slot-banner -+/ad.min. -+||report2.biz^ -+##.ad-banner-wrapper -+||pro-market.net^ ++redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com#?#:-abp-properties(*data:image*) ++||bordeaux.futurecdn.net^ ++##.ads_ad_box ++/adsnippet. +||juicyads.com^$third-party +/prebid_$script,third-party -+pornhub.com##div[id^="customSkin"] -+||yqmxfz.com^ -+_show_ads_ -+##.ad.box -+@@||crunchyroll.com^*/ads_$script -+/^https?:\/\/.*\/.*sw[0-9._].*/$script,xmlhttprequest,domain=1vag.com|4tube.com|adult-channels.com|analdin.com|biguz.net|bogrodius.com|chikiporn.com|daftsex.com|fantasti.cc|fuqer.com|fux.com|hclips.com|heavy-r.com|hog.tv|megapornx.com|milfzr.com|mypornhere.com|niceporn.xxx|porn555.com|pornchimp.com|pornerbros.com|pornj.com|pornl.com|pornototale.com|porntube.com|sexu.com|sss.xxx|thisav.com|titkino.net|tubepornclassic.com|tuberel.com|tubev.sex|txxx.com|vidmo.org|vpornvideos.com|xozilla.com|youporn.lc|youpornhub.it|yourdailypornstars.com -+@@||bbc.gscontxt.net^$script,domain=bbc.com -+##.adWrap -+ansamed.info,baltic-course.com,futbol24.com,gatewaynews.co.za,jetphotos.com,karger.com,maritimejobs.com,newagebd.net,prohaircut.com,zbani.com##.adv -+anyporn.com,cartoon-sex.tv,oncam.me,pervertslut.com,theyarehuge.com,webanddesigners.com##.adv -+||venetrigni.com^ -+##.advt -+##.bannerAd -+/adtrack.$domain=~adtrack.ca|~adtrack.yacast.fr -+###taboola-mid-article-thumbnails -+###top-ad -+||cagothie.net^ -+@@||cloud.google.com^$~third-party -+##.ad-left -+||oo00.biz^ -+||wbidder.online^ -+.adpartner.$domain=~adpartner.cz|~adpartner.de|~adpartner.jp -+##.textad -+##.ad-title -+pornhub.com##[href^="https://weedmaps.com"] -+##a[href^="https://adclick.g.doubleclick.net/"] -+-728x90- -+://ads2. -+##.sidebar-ad -+||lephaush.net^ -+##.banner_ad -+||acdcdn.com^ -+||bbelements.com^$third-party -+||ezojs.com^ -+.th/ads/ -+||adinplay.com^$third-party -+##.ad_area -+##.js-ad-slot -+9gag.com,hotstar.com,sport360.fit,talksport.com,trademe.co.nz##.billboard -+/adview/* -+/asyncjs.$domain=~asyncjs.com -+yahoo.com###sda-LREC3 -+||b.cdnst.net/javascript/amazon.js$script,domain=speedtest.net -+msn.com##a[href*=".booking.com/"] -+||wpu.sh^ -+##.adsenvelope -+##.adstextpad -+||lassampy.com^ ++##.ad-mobile +-sticky-ad- -+||bordeaux.futurecdn.net^ -+||rcvlink.com^ -+||eqads.com^ -+||adapex.io^$third-party -+##.dfpAd -+||adpone.com^$third-party -+msn.com##div[class^="articlePage_topBannerAdContainer_"] -+yahoo.com###sda-LREC4 -+##.td-adspot-title -+dailyvoice.com##.b-banner -+##a[href^="https://tm-offers.gamingadult.com/"] -+://ad1. -+||superfastcdn.com^ -+||d27genukseznht.cloudfront.net^ -+||vuksew.com^ -+||d27qffx6rqb3qm.cloudfront.net^ -+##.skyscraper.ad -+##.zergnet-widget -+##div[data-content="Advertisement"] -+||tanguinantaiva.com^ -+###recommendAdBox -+||taboola.com/vpaid/ -+||valuad.cloud^ -+||widget.engageya.com/engageya_loader.js -+||carbonads.com^ -+||pubguru.net^$third-party -+adultfilmdatabase.com,animeidhentai.com,babeforums.org,bos.so,camvideos.tv,camwhores.tv,cutscenes.net,daftsex.com,devporn.net,fritchy.com,gifsauce.com,hentai2read.com,hotpornfile.org,hpjav.com,imagebam.com,imgbox.com,imgtaxi.com,motherless.com,myporn.club,pandamovies.pw,planetsuzy.org,pussyspace.com,redgifs.com,sendvid.com,sexgalaxy.net,sextvx.com,sexuria.com,thefappeningblog.com,vintage-erotica-forum.com,vipergirls.to,waxtube.com,xfantazy.com,yeapornpls.com##a[href*="theporndude.com"] -+||ultimedia.com/js/common/smart.js$script,third-party -+/adroute_ -+###adhesion -+##.adslot_1 -+||hlserve.com^$third-party -+&ad_ids= -+###ad-container -+||nexac.com^$third-party -+@@||figma.com^$generichide -+$image,script,subdocument,third-party,xmlhttprequest,domain=heapfiles.com|vidoza.co|vidoza.net -+$image,script,subdocument,third-party,xmlhttprequest,domain=flashx.to|flashx.tv -+##.leaderboard-ad -+##.proper-ad-unit -+||achcdn.com^ -+##a[href^="https://pubads.g.doubleclick.net/"] -+||patiotheoretical.com^ -+.adserver. -+/adtags/* -+||xxxjmp.com^ -+##.ad-zone-container -+||cloudfront.net/transcode/storyTeller/$media,domain=amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.br|amazon.com.mx|amazon.com.tr|amazon.de|amazon.eg|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.nl|amazon.pl|amazon.sa|amazon.se|amazon.sg -+||mbid.marfeelrev.com^ -+##.adsninja-ad-zone -+##.c-ad -+@@||amazon-adsystem.com/widgets/q?$image,third-party -+/advert-$domain=~advert-ai-landing.firebaseapp.com|~advert-ai-landing.web.app|~advert-ai.com|~advert-solutions.com|~advert-technology.com|~advert-technology.ru -+||blockadsnot.com^ -+||neodatagroup.com^$third-party -+||cdnativepush.com^ -+||asacdn.com^ -+/prebid3. -+##.goAdverticum -+pornhub.com,pornhubthbh7ap3u.onion##.video-wrapper > #player + [class] -+||9gag.com/embed/featured-videos.html -+##.ad-item -+||cnn.com/ad/ -+###ad_unit -+##.widead -+##.content-ad -+||servedby-buysellads.com^$third-party,domain=~buysellads.com -+##.mntl-gpt-adunit -+##div[id^="yandex_ad"] -+yandex.com##div[id^="yandex_ad"] -+||adlooxtracking.com^$third-party -+||rszimg.com^ -+/redpop_ads/* -+##a[href^="https://go.xxxjmp.com"] -+||adform.net^$domain=spiegel.de -+||xlviiirdr.com^ -+||gamesrevenue.com^ -+||dnhfi5nn2dt67.cloudfront.net^ -+||toglooman.com^ -+||adnuntius.com^$third-party -+###bottom_ad -+sonichits.com###bottom_ad -+##.headerAd -+gelbooru.com##.headerAd -+||elasticad.net^ -+##.ad-300x250 -+||vidalak.com^ -+||yourwebbars.com^ -+||rtclx.com^ -+msn.com##a.nativead[target="_blank"] -+||acscdn.com^ -+||dsh7ky7308k4b.cloudfront.net^ -+/adserver- -+##div[id^="ezoic-pub-ad-"] -+##.contentAds -+msn.com#@#.serversidenativead -+##.list-ads -+##.BannerAd -+||d3lcz8vpax4lo2.cloudfront.net^ -+##.dcmads -+###ultimedia_wrapper -+##div[id^="_vdo_ads_player_ai_"] -+###ad11 -+||trafmag.com^$third-party -+###top_ad -+/yads/* -+###ad-1 -+||speakol.com^$third-party -+##.ddb -+||pokaroad.net^ -+||servedbyadbutler.com^ -+||d3mr7y154d2qg5.cloudfront.net^ -+||intellipopup.com^ -+##.adthrive-ad -+##.footer__advert -+=300x250, -+||octopuspop.com^$third-party -+||h12-media.com^$third-party -+redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com#?#:-abp-properties(*data:image*) -+||fqtag.com^$third-party -+##.stream-ad -+||dynad.net^$third-party -+holiday-weather.com,w3schools.com,zerochan.net###skyscraper -+adult-sex-games.com,postyourpuss.com###skyscraper -+||duponytator.com^ -+/ads.css -+||cuddlethehyena.com^$popup -+||a-mo.net^ ++yahoo.com###sda-MAST ++.com/ad/$~image,third-party,domain=~mediaplex.com|~warpwire.com ++||oo00.biz^ +redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com#?#:-abp-properties(data:) +redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com#?#:-abp-properties(image/) -+###lsadvert-left_menu_1 +redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com#?#:-abp-properties(base64) -+||mauchopt.net^ -+/ads01. -+9gag.com##[style^="width: 640px; min-height: 360px;"] -+##.ad_slot -+||easyads28.mobi^ -+##.adslot -+@@||doubleclick.net/gpt/pubads_impl_$script,xmlhttprequest,domain=accuweather.com|blastingnews.com|downdetector.com|epaper.timesgroup.com|formularywatch.com|gamespot.com|managedhealthcareexecutive.com|mediaite.com|medicaleconomics.com|nbcsports.com|nycgo.com|physicianspractice.com|scotsman.com|webmd.com ++money.yahoo.com###sda-MON ++yahoo.com###sda-MON ++##span[id^="ezoic-pub-ad-placeholder-"] ++||greeter.me^ ++||lr-in.com^ ++||caroda.io^$third-party ++||acscdn.com^ ++||besmeargleor.com^ ++||pro-market.net^ +||connextra.com^ -+##div[id^="ad_rect_"] -+||ad.plus^$third-party -+||salutationcheerlessdemote.com^ -+##.desktop-ad -+||cardiwersg.com^ -+###ads-container -+##.ads-box -+||eshouloo.net^ -+##.udn-ads -+||nestledmph.com^ -+/img/ad- -+@@||streamtape.com^$subdocument -+||lockerdomecdn.com^ -+imgur.com##.PrimisPlayerContainer -+/adserve. -+||adsessionserv.com^ -+##.ad-placeholder -+##.ad--desktop -+/300x250_ -+||vindicosuite.com^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="multi-brand-detail-creative-desktop_"] -+||alleviatepracticableaddicted.com^$popup -+###bottomAd -+||minute.ly^$third-party -+@@||code.jquery.com^$domain=mixdrop.co ++||apps.media-lab.ai^ ++##.ad_unit ++||ultimedia.com/js/common/smart.js$script,third-party ++||hlserve.com^$third-party ++||duponytator.com^ ++||outsliggooa.com^ ++||alfonsino.top^ ++||cnn.com/ad/ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[id^="sp_detail"] ++||pxfindone.com^ ++##.ad-content +||pubwise.io^$third-party -+-banner-ads/ -+##.sponsor-logo -+||adm.shinobi.jp^$third-party ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sims-consolidated-3_csm_instrumentation_wrapper"] ++##.ezo_ad ++||media6degrees.com^ ++||uptodatefinishconference.com^ ++.adpartner.$domain=~adpartner.cz|~adpartner.de|~adpartner.jp ++##div[jsdata*="CarouselPLA-"][data-id^="CarouselPLA-"] ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[jsdata*="CarouselPLA-"][data-id^="CarouselPLA-"] ++##.ezmob-footer ++##.ezoic-floating-bottom ++##[data-ad-width] ++||acdcdn.com^ ++||cloudfront.net/transcode/storyTeller/$media,domain=amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.br|amazon.com.mx|amazon.com.tr|amazon.de|amazon.eg|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.nl|amazon.pl|amazon.sa|amazon.se|amazon.sg ++yahoo.com##.caas-da ++##.ezmob-footer-desktop ++##.footer-ads ++&cbrandom= ++||b.cdnst.net/javascript/amazon.js$script,domain=speedtest.net ++||getsharedstore.com^ ++||asacdn.com^ ++||vidalak.com^ ++yahoo.com##.item-beacon ++://ads2. ++-728x90- ++.th/ads/ ++##.ezoic-ad ++##.adtester-container ++.adserver. ++##[data-ez-name] ++||sitemaji.com^$third-party ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id*="_SponsoredProducts"] ++_160x600& ++||nexac.com^$third-party ++##.vjs-ima3-ad-container ++||neodatagroup.com^$third-party ++###videoAd ++||dnhfi5nn2dt67.cloudfront.net^ +@@||apv-launcher.minute.ly/api/$script -+||ziffstatic.com/pg/ -+yahoo.com##.darla-lrec-ad -+||adsninja.ca^$third-party -+||ad-m.asia^ -+||apprefaculty.pro^ -+-ads-ns. -+##.ad-header -+##.dotcom-ad -+||d18t35yyry2k49.cloudfront.net^ -+||stpd.cloud^ -+||generashionvd.com^ -+youtube.com##.ytd-promoted-video-renderer ++###ad_unit ++@@||files.slack.com^$image,~third-party ++||ad.plus^$third-party ++##.adBox ++||adtlgc.com^ ++pornhub-com.appspot.com,pornhub.com,pornhub.net,youporn.com###pb_template ++||alleviatepracticableaddicted.com^$popup ++##.sticky-ad ++/asyncjs.$domain=~asyncjs.com ++||system-notify.app^ ++||chaturbate.com/affiliates/ +=160x600& -+||yimg.com/dy/ads/readmo.js -+###lsadvert-top -+&adgroupid= -+||atdmt.com^ -+youtube.com##.ytd-search-pyv-renderer -+||avantisvideo.com/avm/js/video-loader.js$script,third-party -+##.rg-ad -+||alphonso.tv^ -+||adxadserv.com^ -+||stat-rock.com^ -+##.bbccom_advert -+||messenger-notify.digital^$popup ++###my-adsLREC ++@@||icloud.com^$generichide ++||jubnaadserve.com^ ++||widget.engageya.com/engageya_loader.js ++||carbonads.com^ ++/yads/* ++||distinctlynobleprosecute.com^ ++||elasticad.net^ ++||fqtag.com^$third-party ++||dynad.net^$third-party ++||c.bannerflow.net^ ++/adtech/* +||popads.net^ ++||inmobi.com^$third-party ++://ad1. ++||pokaroad.net^ ++/adevent.$domain=~adevent.com ++/adview/* ++||rcvlink.com^ ++||trafmag.com^$third-party ++||minute.ly^$third-party ++||wpu.sh^ ++||hhkld.com^ ++/advert-$domain=~advert-ai-landing.firebaseapp.com|~advert-ai-landing.web.app|~advert-ai.com|~advert-solutions.com|~advert-technology.com|~advert-technology.ru ++||adnxs.net^ ++||servedbyadbutler.com^ ++@@||doubleclick.net/gpt/pubads_impl_$script,xmlhttprequest,domain=accuweather.com|blastingnews.com|downdetector.com|epaper.timesgroup.com|formularywatch.com|gamespot.com|managedhealthcareexecutive.com|mediaite.com|medicaleconomics.com|nbcsports.com|nycgo.com|physicianspractice.com|scotsman.com|webmd.com ++||valuad.cloud^ ++##.ads-wrapper ++||protagcdn.com^ ++##.TextAd ++||gml-grp.com^ ++##.ad-desktop ++||adinplay.com^$third-party ++##.ad-slot-banner ++||dsh7ky7308k4b.cloudfront.net^ ++||adxadserv.com^ ++||pubguru.net^$third-party ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg###sponsoredProducts2_feature_div ++###adContainer ++/valnet-header-ads. ++@@||amazon-adsystem.com/widgets/q?$image,third-party ++||ptoahaistais.com^ ++/adserver- ++##a[href^="https://a.adtng.com/"] ++##.ima-ad-container ++pornhub.com##.sniperModeEngaged ++||lockerdomecdn.com^ ++##.adWrap ++||yourwebbars.com^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sims-consolidated-4_csm_instrumentation_wrapper"] ++1sale.com,7billionworld.com,9jaflaver.com,achieveronline.co.za,canstarblue.co.nz,chordfrenzy.com,climatechangenews.com,cryptonomist.ch,currencyrate.today,dallasobserver.com,energyforecastonline.co.za,esports.com,eventcinemas.co.nz,flashx.tv,furaffinity.net,geo.tv,govtrack.us,gramfeed.com,houstonpress.com,idiva.com,indiatimes.com,indiatoday.in,inspirock.com,investing.com,knowyourmeme.com,m.economictimes.com,marinetraffic.com,mb.com.ph,mehrnews.com,meta-calculator.com,mini-ielts.com,miningprospectus.co.za,mugshots.com,myfitnesspal.com,nbc.na,news.nom.co,nsfwyoutube.com,roadaheadonline.co.za,roms-download.com,russia-insider.com,russian-faith.com,savevideo.me,sddt.com,servicepublication.co.za,sgcarmart.com,sherdog.com,shipyearonline.co.za,stars-portraits.com,straitstimes.com,strawpoll.me,tcm.com,tech2.com,tehrantimes.com,tellerreport.com,thecatholicuniverse.com,thehackernews.com,thejakartapost.com,thelakewoodscoop.com,themalaysianinsider.com,thenews.com.pk,theprojectmanager.co.za,thestar.com.my,viamichelin.com,viamichelin.ie,vidstreaming.io,wallpaper.com,y8.com,yummy.ph##.ads ++yahoo.com##.ads ++babesandstars.com,cam-video.xxx,cumlouder.com,gosexy.mobi,hog.tv,javseen.tv,mobilepornmovies.com,mypornstarbook.net,pichunter.com,thisav.com##.ads ++?advertiser_id=$domain=~ads.pinterest.com|~panel.rightflow.com ++||cardiwersg.com^ ++||lassampy.com^ ++||ausoafab.net^$popup ++##.ad-box ++||vindicosuite.com^ ++||gamesrevenue.com^ ++||d3lcz8vpax4lo2.cloudfront.net^ ++.com/ads.$~script,~xmlhttprequest ++||speakol.com^$third-party ++msn.com##div[class^="articlePage_topBannerAdContainer_"] ++||s-adzone.com^ ++||alphonso.tv^ ++||cuddlethehyena.com^$popup ++,728x90, ++youtube.com##.ytd-promoted-sparkles-text-search-renderer ++youtube.com#@#.video-ads ++/advertising.$~script,~xmlhttprequest,domain=~advertising.amazon.ae|~advertising.amazon.ca|~advertising.amazon.cn|~advertising.amazon.co.jp|~advertising.amazon.co.uk|~advertising.amazon.com|~advertising.amazon.com.au|~advertising.amazon.com.mx|~advertising.amazon.de|~advertising.amazon.es|~advertising.amazon.fr|~advertising.amazon.in|~advertising.amazon.it|~advertising.amazon.sa|~advertising.berlin-airport.de|~advertising.boardgamegeek.com|~advertising.bulurum.com|~advertising.byhoxby.com|~advertising.dailymotion.com|~advertising.expedia.com|~advertising.fubo.tv|~advertising.greunenberg.com|~advertising.hulu.com|~advertising.lavenir.net|~advertising.mobile.de|~advertising.nzme.co.nz|~advertising.org.il|~advertising.racingpost.com|~advertising.roku.com|~advertising.scoop.co.nz|~advertising.sevenwestmedia.com.au|~advertising.shpock.com|~advertising.theguardian.com|~advertising.utexas.edu|~advertising.vrisko.gr|~advision.co ++##.ob-strip-layout ++youtube.com##ytd-compact-promoted-video-renderer ++###video-sponsor-links ++youtube.com##ytd-promoted-sparkles-text-search-renderer ++||jaavnacsdw.com^$popup ++||d18t35yyry2k49.cloudfront.net^ ++##.ad-banner-wrapper ++##.ad_slot ++###ad-skin ++||getjad.io^ ++||tagdelivery.com^$third-party ++youtube.com##.ytd-compact-promoted-video-renderer ++@@://192.168.0.1$generichide ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##.amzn-safe-frame-container ++||aso1.net^ ++/adzones. ++@@||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=autokult.pl|bloomberg.co.jp|farfeshplus.com|filmweb.pl|game.pointmall.rakuten.net|gamebox.gesoten.com|gamepix.com|klix.ba|locipo.jp|maharashtratimes.com|minigame.aeriagames.jp|nettavisen.no|niusdiario.es|pointmall.rakuten.co.jp|rtlnieuws.nl|s.yimg.jp|sportsbull.jp|sportsport.ba|success-games.net|synk-casualgames.com|tbs.co.jp|tv-asahi.co.jp|tv.rakuten.co.jp|tver.jp|univtec.com|video.tv-tokyo.co.jp|vlive.tv|voe.sx|webdunia.com|wowbiz.ro|wtk.pl ++###ad11 ++##div[id^="rc-widget-"] ++://banner.$third-party ++/v3/ads/* ++##div[id^="dfp-ad-"] ++/ads.css ++||clickiocdn.com/hbadx/ ++@@||code.jquery.com^$domain=mixdrop.co ++||adsemo.com^ ++||g8ads.com^ ++||offerimage.com^ ++9to5google.com,9to5mac.com,audiokarma.org,beeradvocate.com,beliefnet.com,bizjournals.com,biznews.com,bolavip.com,businessinsider.com,computerworld.com,driven.co.nz,ecr.co.za,electrek.co,engineeringnews.co.za,etcanada.com,fox10phoenix.com,fox13news.com,fox26houston.com,fox29.com,fox2detroit.com,fox32chicago.com,fox35orlando.com,fox4news.com,fox5atlanta.com,fox5dc.com,fox5ny.com,fox7austin.com,fox9.com,foxbusiness.com,foxla.com,foxnews.com,funkidslive.com,gfinityesports.com,gmanetwork.com,grammarbook.com,hbr.org,insidehook.com,intouchweekly.com,khou.com,ktvu.com,lifeandstylemag.com,macstories.net,memuplay.com,metro.us,miningweekly.com,mobilesyrup.com,modernhealthcare.com,my9nj.com,nbcnews.com,newrepublic.com,nzherald.co.nz,oneesports.gg,opb.org,physiology.org,pixiv.net,politico.com,punchng.com,realsport101.com,reason.com,refinery29.com,scroll.in,seattletimes.com,slideshare.net,sportskeeda.com,theglobeandmail.com,thelocal.at,thelocal.ch,thelocal.de,thelocal.dk,thelocal.es,thelocal.fr,thelocal.it,thelocal.no,thelocal.se,toofab.com,usmagazine.com,wogx.com##.ad-container ++kemono.party,pinflix.com##.ad-container ++||9gag.com/embed/featured-videos.html ++.php?zoneid= ++/ads01. ++||adman.gr^$third-party ++/popunder/* ++||venetrigni.com^ ++||ziffstatic.com/pg/ ++||d3aajkp07o1e4y.cloudfront.net^ ++||grandsupple.com^ ++||yqmxfz.com^ ++||h12-media.com^$third-party ++||m32.media^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id*="_ad-placements-"] ++mail.yahoo.com##[rel="noreferrer"][data-test-id][href^="https://beap.gemini.yahoo.com/mbclk?"] ++||ktkjmp.com^ ++||xlviiirdr.com^ ++##.skyscraper.ad ++||servedby-buysellads.com^$third-party,domain=~buysellads.com ++||ashoupsu.com^ ++##.ad-block ++aminoapps.com,crash.net,home-designing.com,inc.com,trustpilot.com##.ad-block ++||fedrocou.net^ ++##.adWrapper ++||intellipopup.com^ ++##.header-ads ++.nl/ads/ ++||yimg.com/dy/ads/readmo.js ++/adunit/*$domain=~propelmedia.com ++||stpd.cloud^ ++||b2f227b09e.com^ ++.il/ads/ ++||strossle.com^$third-party ++/300x250- ++###ads-container ++||regioncolonel.com^ ++||partner.googleadservices.com^$third-party ++||mgdjmp.com^ ++##.outeradcontainer ++||vectorstock.com^$third-party ++||tapioni.com^ ++##.adchoices ++||d3mr7y154d2qg5.cloudfront.net^ ++/728x90- ++||upgulpinon.com^ ++##div[id^="_vdo_ads_player_ai_"] ++||visariomedia.com^ ++##AMP-AD ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##AMP-AD ++##.googleAdSense ++||eporner.com/dot/ ++##.adbanner ++||vuukle.com/ads/ ++||emsservice.de^ ++||emsservice.de^$domain=spiegel.de ++##div[data-insertion] +@@||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$domain=download.pixelexperience.org|knowfacts.info|lacoste.com|real-sports.jp|slideplayer.com|smallseotools.com|soranews24.com|tampermonkey.net|teemo.gg|thefreedictionary.com +@@||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$domain=cpu-world.com|megaleech.us +@@||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$domain=games.wkb.jp -+||tagdelivery.com^$third-party -+##.hl-ad-row__1p-link -+||visariomedia.com^ -+##.hl-ad-row__mrec -+##.ad-tag -+##a[href^="https://chaturbate.com/in/?track="] -+##.hidden-ad -+.nl/ads/ -+||jubnaadserve.com^ -+nytimes.com,nytimes3xbfgragh.onion###bottom-wrapper -+/get_ad_ -+||genieessp.com^$third-party -+||vuukle.com/ads/ -+##.ic-ads -+###ad-banner -+##.van_taboola -+||admedo.com^$third-party -+##.publicidade -+/stickyads. -+/realmedia/ads/* -+||m32.media^ -+@@||icloud.com^$generichide -+##.module_single_ads -+##.vid-present > .van_vid_carousel__padding -+/adzones. -+://banner.$third-party -+||wpnsrv.com^ -+###hawkMagWidget -+washingtonpost.com##[data-testid="placeholder-box"] -+##div[data-ad-placeholder] -+##.pb-ad -+##.adLabel -+##.van_vid_carousel +||aff.bstatic.com^ -+##a[href^="https://clickadilla.com/"] -+||getjad.io^ -+||rfihub.net^ -+##.ad-native -+/728x90- -+||bmcdn3.com^ -+.com/ads.$~script,~xmlhttprequest -+123-movies.ninja,123movies.net,2umovies.me,4anime.biz,4anime.gg,9anime.tube,actvid.com,animebee.to,animefreak.site,animefreak.ws,animefrenzy.net,animeheaven.pro,animekisa.in,animekisa.tv,animepahe.cc,apkmody.io,batotoo.com,bravoporn.com,coloredmanga.com,dembed1.com,dramacool.pk,dulu.to,filmlinks4u.cam,filmyzilla.autos,filmyzilla.makeup,gogoanime.be,gogoanime.co.in,gogoanime.lol,gogoanime.run,gogoplay1.com,goload.pro,hds-streaming-hd.com,herogayab.net,hhdmovies.cam,hindilinks4u.cam,hothit.me,iflixmovies.com,jujutsukaisen-manga.online,jujutsukaisenonline.net,linksly.co,mangadna.com,mangahere.today,manganatos.com,mangas-raw.com,mangceh.cc,membed.net,messitv.net,miraculous.to,movierulz.cam,movies-watch.com.pk,mp3fromyou.tube,ngomik.net,nkiri.com,playlist-youtu.be,pomvideo.cc,prmovies.bz,prmovies.cam,prmovies.li,prmovies.org,prmovies.re,putlocker.vc,putlockers.fm,putlockers.li,rawkuma.com,sockshare.ac,ssoap2day.to,tamilyogi.best,vanime.co,waploaded.com,wat32.tv,watchofree.com,watchomovies.cam,watchomovies.net,watchseries.cyou,watchseries.ninja,wcostream.cc,webtoonshare.com,y-2mate.com,yomovies.bz,yomovies.pl,yomovies.pm,yomovies.ws,ytmp3.cc,yts-subs.com##iframe[style*="z-index: 2147483647"] -+||regioncolonel.com^ -+/adsv/* -+@@||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=autokult.pl|bloomberg.co.jp|farfeshplus.com|filmweb.pl|game.pointmall.rakuten.net|gamebox.gesoten.com|gamepix.com|klix.ba|locipo.jp|maharashtratimes.com|minigame.aeriagames.jp|nettavisen.no|niusdiario.es|pointmall.rakuten.co.jp|rtlnieuws.nl|s.yimg.jp|sportsbull.jp|sportsport.ba|success-games.net|synk-casualgames.com|tbs.co.jp|tv-asahi.co.jp|tv.rakuten.co.jp|tver.jp|univtec.com|video.tv-tokyo.co.jp|vlive.tv|voe.sx|webdunia.com|wowbiz.ro|wtk.pl -+||hhkld.com^ -+##.todayshowcasead -+/300x250- -+##.ad-transition -+||doublepimp.com^ -+##.sponsored-content -+##.ad-choices -+##.inline-ad-container -+tumblr.com##.Yc2Sp -+?advertiser_id=$domain=~ads.pinterest.com|~panel.rightflow.com -+/strossle-widget- -+||ad.mox.tv^ -+##.empty-ad -+/advertise-$~script,domain=~ads.microsoft.com|~advertise-solution.nl|~bingads.microsoft.com -+@@||files.slack.com^$image,~third-party -+nytimes.com,nytimes3xbfgragh.onion###top-wrapper -+||d13k7prax1yi04.cloudfront.net^ -+||intergi.com^$third-party -+##.doubleclick-ad -+###ad-rectangle -+||karma.mdpcdn.com^ -+/publicidade/* -+###dfp-ad-top -+||iamcdn.net/players/playhydraxs.min.js$domain=player-cdn.com -+||d192r5l88wrng7.cloudfront.net^ -+###top_ad_wrapper -+###bottom_ad_wrapper -+##.carbon-ad -+.php?zoneid= -+@@||playwire.com/bolt/js/zeus/embed.js$script,third-party -+||click-cdn.com^$popup -+||clickiocdn.com/hbadx/ -+/onead_ -+imdb.com###top_rhs -+||adman.gr^$third-party -+.adsby. -+||d3aajkp07o1e4y.cloudfront.net^ -+||polyad.net^ -+/adcdn. -+###lsadvert-left_menu_2 -+##.dfp-slot -+||fedrocou.net^ -+,728x90, -+###leftAds -+##.AdTop -+/adtech/* -+://affiliate.$third-party -+##.ad-area -+yahoo.com##div[class*="gemini-ad"] -+.ro/ads/ -+###ad-2 -+yahoo.com##.gemini-ad +||ledrapti.net^ -+||nxtck.com^ -+/ads/cnn/singles/* -+||google.com/adsense/domains -+||stripchat.com/api/external/ -+||aso1.net^ -+||safestgatetocontent.com^ -+##.adSlot -+||quantumdex.io^$third-party -+###top-banner-ad -+yahoo.com###sda-LDRB2 -+/(https?:\/\/)\w{30,}.me\/\w{30,}\./$script,third-party -+||phonograph2.voxmedia.com^ -+||rcvlinks.com^ -+||xlrdr.com^ -+/cdn.ad. -+##.overlay-ad -+f2movies.to,fmovies.ps,fmoviesto.cc,hdtoday.tv,movies2watch.tv,moviesjoy.to,myflixer.to,myflixertv.to###gift-top -+||1675450967.rsc.cdn77.org^ -+##.adunit-wrapper -+||s-adzone.com^ -+||getsharedstore.com^ -+##.ad_container -+###sticky-ad -+||stickyadstv.com^$third-party -+##.ad-tl1 -+||waisheph.com^$popup -+||nygvejyn.com^ -+||plista.com/async_lib.js? -+||hhllryxtfgypz.com^ -+||apxlv.com^ -+||adgebra.co.in^ -+||purpleads.io^ -+@@://192.168.0.1$generichide -+||eporner.com/dot/ -+msn.com##[class^="nativeAd"] -+||soliads.net^ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget^="MAIN-FEATURED_ASINS_LIST-"] -+||embed.sendtonews.com^$third-party -+||adsemo.com^ -+||g8ads.com^ -+||trvl-px.com/trvl-px/ -+##.navbar-ad-container -+/adwords/*$domain=~google.com -+||soaheeme.net^ -+###leftads -+||vectorstock.com^$third-party -+-sidebar-ad. -+/public/ads/* -+##.ad-google -+##.top_ad -+/expads- -+||upgulpinon.com^ -+/300x250.$image -+cd1025.com,domainincite.com,europages.co.uk,gamingcloud.com,ijr.com,kpbs.org,phillyvoice.com,speedcafe.com,thegatewaypundit.com,ufile.io,westernjournal.com,wnd.com##.sponsor -+amateur8.com,anyporn.com,bigtitslust.com,eachporn.com,fapster.xxx,fpo.xxx,freeporn8.com,pervertslut.com,porngem.com,porntop.com,sexpornimages.com,sexvid.xxx,sortporn.com,xhamster.com##.sponsor -+||d22xmn10vbouk4.cloudfront.net^ -+/assets/ads_ -+/728x90. -+||wuksaiho.net^ -+_160x600& -+as.com,tutiempo.net##.publi -+||shukriya90.com^ -+||yield-op-idsync.live.streamtheworld.com^ -+##.dfp_ad -+||adxbid.info^ -+||videosprofitnetwork.com^ -+||servedbysmart.com^$third-party -+##.ad_banner -+##.TextAd -+###videoad -+##.ad-footer -+##.advertisementBanner -+||hublosk.com^ -+||pdvacde.com^ -+||ruogesfshygsj.com^ -+||inmobi.com^$third-party -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-a-carousel-options*="\\\"isSponsoredProduct\\\":\\\"true\\\""] -+##.bottom-ads -+.il/ads/ -+###header-ad -+##.ad01 -+||adtrue.fun^ -+||socket.streamable.com^ -+||yonhelioliskor.com^ -+/google-dfp- -+youtube.com#@#.video-ads -+washingtonpost.com###slug_leaderboard -+||d301cxwfymy227.cloudfront.net^ -+||ethicalads.io^$third-party -+###rightAds -+||redventures.io^$third-party -+||gml-grp.com^ -+##div[data-dfp-id] -+||s.0cf.io^ -+##.ad_global_header -+##a[href^="https://bs.serving-sys.com"] -+||ds88pc0kw6cvc.cloudfront.net^ -+_advertising. -+||doruffletr.com^ -+||partner.googleadservices.com^$third-party -+||aj1559.online^ -+||r66net.com^ -+##.ads_place -+||iwanttodeliver.com^$third-party -+||notifypicture.info^ -+###div-insticator-ad-1 -+###quads-ad1 -+##.quads-ad1 -+/dfp/dfp- -+@@||at.adtech.redventures.io/lib/api/$xmlhttprequest,domain=gamespot.com|giantbomb.com|metacritic.com -+/openx/* -+##[href*=".zlinkm.com/"] -+||postaffiliatepro.com^$third-party -+##.side_ad -+##.bottomad -+||click-cdn.com^ -+###after-dfp-ad-mid1 -+||chaturbate.com/affiliates/ -+||statsforads.com^ -+uol.com.br#@#div[data-adunit] -+||netinsight.co.kr^$third-party -+||bngpt.com^ -+youtube.com##ytd-compact-promoted-video-renderer -+##.ad_module -+##.content-ads -+##.sidebar-ads -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget^="multi-card-creative-desktop_loom-desktop-top-slot_"] -+###after-dfp-ad-mid3 -+/v3/ads/* -+youtube.com##.ytd-compact-promoted-video-renderer -+/advideo.$domain=~advideo.pro|~advideo.site -+###after-dfp-ad-mid2 -+###AdSense1 -+msn.com##div[data-section-id="sponsored.stripe.shopping"] -+##.ad_column -+_advert. -+##.dfp-leaderboard-container -+.ph/ads/ -+##.b_adLastChild -+bing.com##.b_adLastChild -+###rightads -+||residenceseeingstanding.com^ -+||sexahah.com^ -+||inheritedfinnishdysfunctional.com^ -+##.ad728 -+.my/ads/ -+||extillcasula.com^ -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[data-ismultirow="true"][data-id^="CarouselPLA-"] -+||betteradsystem.com^ -+###ad-leaderboard -+-728x90. -+||widgets.outbrain.com^$domain=mamasuncut.com -+/adv.asp -+##.ad-top-banner -+_box_ad_ ++||avantisvideo.com/avm/js/video-loader.js$script,third-party ++###recommendAdBox +@@||tv.youtube.com^$generichide -+##.ad-marker -+/adframe/* -+##.google-2ad -+##.js_ad-sticky-footer -+||sunnyseries.com^ -+###ad-bottom -+||ads.sportradar.com^ -+||cdnquality.com^ -+##.google-ad -+##.banner-ad-skeleton-box -+/banner.php -+###header_ad -+##.ad-img -+##.ads-block -+##.ad__wrapper -+||c.bannerflow.net^ -+||antiadblocksystems.com^ -+/widget/ad/* -+||hprofits.com^$third-party -+/javascript/ads/* -+##.nts-ad -+##.ad-section -+||directionssecondary.com^ -+##.AdsBox -+/advertising-$image,domain=~abramarketing.com|~advertising-direct.com|~advertising-excellence.com|~advertising-factory.de|~advertising-stands.com.ua|~advertising.amazon.com|~deals-italy.com|~microsoft.com|~outbrain.com|~yellowimages.com -+||premiumvertising.com^ -+##.ads-in-content -+||commercialvalue.org^ -+##.brn-ads-box -+||ausoafab.net^$popup -+.gr/ads/ -+||cabnnr.com^ -+||dstillery.com^$third-party -+lilymanga.com,msn.com##a[href^="https://amzn.to/"] -+##.display_ad -+##.ads-right -+##.ads_place_160 -+###after-dfp-ad-top -+||cpmstar.com/view.aspx -+||dissimilarakin.com^ -+://banners.$third-party -+###gwd-ad -+||dearestimmortality.com^ -+##.m-ad -+.net/ad_ -+||adnxs.net^ -+lifeinvader.com,spanishdict.com,studentski-servis.com#@#.ad-wrapper -+||inpagepush.com^ -+##.box-ads -+||maxonclick.com^ -+##.top-ad-container -+###insticator-container -+||d2j042cj1421wi.cloudfront.net^ -+||adschill.com^ -+##.dfp-tag-wrapper -+||co5n3nerm6arapo7ny.com^ -+/weborama.js -+##.td-a-rec-id-custom_ad_1 -+##div[class^="StickyHeroAdWrapper-"] -+/banners/ad_ -+##.inner-ad -+||services.zam.com^ -+##.adslot_2 -+||tsiwqtng8huauw30n.com^ -+||eeshemto.com^ -+||d10lumateci472.cloudfront.net^ -+yahoo.com##div[style*="/ads/"] -+||traffichaus.com^$third-party -+||d2kk0o3fr7ed01.cloudfront.net^ -+||optimizesrv.com^ -+||mgdjmp.com^ -+||distinctlynobleprosecute.com^ -+##.ad-slot__label -+##[data-ad-module] -+||greatdexchange.com^ -+||tapioni.com^ -+||system-notify.app^ -+/publicidade. -+||emsservice.de^ -+||emsservice.de^$domain=spiegel.de -+animixplay.to###belowcomment -+##.banner728x90 -+||d3cod80thn7qnd.cloudfront.net^ -+/e/ir?$image,script -+||go9.online^ -+##.ads_code -+imgur.com##.Top300x600 -+##.ad--footer -+||jullyambery.net^ -+###scrollover-ad-wrap -+/ad-invalid- -+fmovies.ps,hdtoday.tv,movies2watch.tv,moviesjoy.to,myflixer.to,myflixertv.to###gift-middle -+washingtonpost.com##[data-qa="right-rail-ad"] -+||clickfuse.com^$third-party -+||sffsdvc.com^ -+##.advertismentContainer -+##.quads-ad2 -+/adchoices/* -+||megacdn.top^ -+washingtonpost.com##[data-qa="article-body-ad"] -+||ktkjmp.com^ -+###quads-ad2 -+youtube.com##.ytd-promoted-sparkles-text-search-renderer -+##.sponsored_content -+/advertise/*$domain=~legl.co -+||nanigans.com^$third-party -+##.vertical-ad -+-core-ads. -+@@||pbs.twimg.com/ad_img/$image,xmlhttprequest -+||befirstcdn.com^$third-party -+youtube.com##ytd-promoted-sparkles-text-search-renderer -+##.side-ad -+/header-ad. -+||pikedhelloed.com^ -+||hardimacolous.com^ -+##.banner-adverts -+##.ad-728x90 -+##hl-adsense -+greatist.com##hl-adsense -+sxyprn.com##.tbd -+###footer-ad -+cnn.com##.cn--expandable.cn--idx-1 -+washingtonpost.com##.pb-lgmod -+||clarifysuper.com^ -+||cnt.my^ -+&cbrandom= -+###div-insticator-ad-2 -+||htlbid.com^ -+##.SponsoredResults -+||grootcho.com^ -+||widgets.tree.com^ -+##.leaderboard.advert -+_prebid.js -+||deehalig.net^ -+||chushywoce.com^ -+||uptimecdn.com^ -+||adbro.me^ -+coinmarketcap.com##.sponsoredMark -+/ad.php? -+||idealmedia.io^$third-party -+##.sponsored-post -+##.ads-left -+coinmarketcap.com##.goXFFk -+##.extnativeaditem -+##.gpt.top-slot -+aliexpress.com##a[href*="aliexpress.com/item/"][href*="&aem_p4p_detail="] -+##.google-user-ad -+||intellitxt.com^ -+||convrse.media^ -+##.adlinks -+||czilladx.com^ -+genius.com##div[class^="LeaderboardOrMarquee__"] -+##.advertisement-label -+||cdnondemand.org^ -+||dlrioxg1637dk.cloudfront.net^ -+||roxot-panel.com^ -+##.display-ad -+##.adframe -+###dfp-masthead -+.com/adx_ -+||nathanaeldan.pro^ -+##a[href^="https://go.xlviirdr.com"] -+##.ad-body -+-show-ads. -+genius.com##div[class^="DfpAd__Container-"] -+||srv.tunefindforfans.com^ -+@@||adsafeprotected.com/iasPET.$script,domain=bloomberg.com|reuters.com -+||mixadvert.com^$third-party -+##.lite-page-ad -+##.ads_banner -+||viralize.tv/t-bid-opportunity/ -+##.third-party-ad -+||cammpaign.com^ -+.popunder.js -+##.me-rtm -+##.top.ad -+###gpt-leaderboard-ad -+##.ad-frame-container -+||tabledownstairsprovocative.com^ -+/ai/s/s/su -+##.brn-ads-mobile-container -+###comments-standalone-mpu -+mirror.co.uk###comments-standalone-mpu -+##.rmp-ad-container -+/adsense.$~script,domain=~adsense.az|~adsense.googleblog.com -+/adunit/*$domain=~propelmedia.com -+.com/adlib/ -+##.blogads -+##.ad_right -+##.ad--rail -+_300x600_ -+||youporn.com^$script,subdocument,domain=youporn.com|youporngay.com -+/reklam/*$domain=~github.com|~reklam.com.tr -+##.topAd -+||automatad.com^$third-party -+||spotx.tv^$third-party -+##.breaker-ad -+/^https?:\/\/.*\.eporner\.com\/[0-9a-f]{10,}\/$/$script,domain=eporner.com -+||auguredmorns.com^ -+~Prebid.js -+||dozubatan.com^ -+||interworksmedia.co.kr^$third-party -+.adnetwork.$domain=~adnetwork.ie|~adnetwork.sk -+##.cardAd -+###skin-ad-left-rail-container -+###skin-ad-right-rail-container -+##.ad-stickyhero -+##.ad-bottom -+##.ad-stickyhero--standard -+/static/ad- -+/publicidad/* -+##.nav-ad -+##.js-advert -+##.video-ads-container -+||velocitycdn.com^ -+@@||msubload.com/sub/$xmlhttprequest -+||strossle.com^$third-party -+###ad-3 -+@@||coinmarketcap.com/static/addetect/$script,~third-party -+||d2na2p72vtqyok.cloudfront.net^ -+@@||runescape.wiki^$image,~third-party -+||exponential.com^$third-party -+||overdonereciprocalimpure.com^ -+##.adspace -+||pubguru.com^$third-party -+###adblock -+##.ppr_priv_horizon_ad -+||ugroocuw.net^$popup -+||widespreadgabblewear.com^ -+##.zergnet -+/plugins/ads- -+###ad-overlay -+/modules/ad_ -+##.advert-wrapper -+##.footerAds -+###adbox -+##.ad-slot-container -+||longaboo.com^ -+##.puff-ad -+||vidcrunch.com/integrations/$script,third-party -+##.wide-ad -+##.ad-slot--inline -+||extremereach.io^ -+||newsokos.com^ -+$websocket,domain=flashx.to|flashx.tv -+$websocket,domain=4archive.org|allthetests.com|boards2go.com|colourlovers.com|fastpic.ru|fileone.tv|filmlinks4u.is|flashx.tv|imagefap.com|keepvid.com|megaup.net|merriam-webster.com|olympicstreams.me|pocketnow.com|pornhub.com|pornhubthbh7ap3u.onion|postimg.org|powvideo.net|roadracerunner.com|shorte.st|tribune.com.pk|tune.pk|vcpost.com|vidmax.com|vidoza.net|vidtodo.com|webfirstrow.eu -+$websocket,domain=pornhub.com|pornhubthbh7ap3u.onion|redtube.com|redtube.com.br|tube8.com|tube8.es|tube8.fr|xtube.com|youporn.com|youporngay.com -+||cdntrf.com^ -+/adfront/* -+daftsex.com,pornhub.com,pornhubpremium.com,pstargif.com,spankbang.com,sxyprn.com,tube8.com,tube8vip.com,xozilla.com,xxxymovies.com##a[href*="?ats="] -+@@||archive.org/BookReader/$image,~third-party,xmlhttprequest -+go-convert.com###ad -+@@||peacocktv.com^$generichide -+/ads-min. -+||adnext.fr^ -+##.ad-responsive -+/redirect/?spot_id= -+##.pm-ads-banner -+||4wnetwork.com^ -+##.ad-sidebar -+##.brn-ads-sticky-wrapper -+12tomatoes.com,bloomberg.com,datpiff.com,logotv.com,newcartestdrive.com,news.sky.com,onthesnow.ca,onthesnow.co.nz,onthesnow.co.uk,onthesnow.com,onthesnow.com.au,penny-arcade.com,publishersweekly.com,skysports.com,stuff.tv,theserverside.com,urbandictionary.com,whitepages.ae###leaderboard -+postyourpuss.com###leaderboard -+||hearstapps.com/moapt/moapt-hdm.latest.js -+.to/ads/ -+###topad -+/components/ads/* -+###top-banner-ad-browser -+||freeskreen.com^ -+##.reklam -+/adv_teasers. -+||paulflashlight.com^ -+||terciogouge.com^ -+##.tablet-ad -+##.adfeedback -+||go6shde9nj2itle.com^ -+000webhost.com,aarp.org,animax-asia.com,apkforpc.com,araratadvertiser.com.au,areanews.com.au,armidaleexpress.com.au,audioxpress.com,axn-asia.com,batemansbaypost.com.au,begadistrictnews.com.au,bendigoadvertiser.com.au,benfergusonshow.com,blayneychronicle.com.au,bluemountainsgazette.com.au,boorowanewsonline.com.au,bordermail.com.au,braidwoodtimes.com.au,bravotv.com,bunburymail.com.au,busseltonmail.com.au,camdenadvertiser.com.au,camdencourier.com.au,canowindranews.com.au,centralwesterndaily.com.au,cessnockadvertiser.com.au,cnbctv18.com,conservativeradio.com,controleng.com,cootamundraherald.com.au,cowraguardian.com.au,dailyadvertiser.com.au,dailyliberal.com.au,dungogchronicle.com.au,dw.com,easternriverinachronicle.com.au,edenmagnet.com.au,esperanceexpress.com.au,examiner.com.au,fairfieldchampion.com.au,forbesadvocate.com.au,gemtvasia.com,gleninnesexaminer.com.au,gloucesteradvocate.com.au,goondiwindiargus.com.au,goulburnpost.com.au,greatlakesadvocate.com.au,grenfellrecord.com.au,hardenexpress.com.au,hawkesburygazette.com.au,hcn.org,hepburnadvocate.com.au,huffingtonpost.co.uk,huntervalleynews.net.au,inqld.com.au,inverelltimes.com.au,jewishworldreview.com,juneesoutherncross.com.au,katherinetimes.com.au,legion.org,lifezette.com,lithgowmercury.com.au,liverpoolchampion.com.au,livestly.com,macarthuradvertiser.com.au,macleayargus.com.au,magtheweekly.com,mailtimes.com.au,maitlandmercury.com.au,mandurahmail.com.au,manningrivertimes.com.au,margaretrivermail.com.au,martechadvisor.com,moneyland.ch,moreechampion.com.au,mudgeeguardian.com.au,murrayvalleystandard.com.au,muswellbrookchronicle.com.au,naroomanewsonline.com.au,narrominenewsonline.com.au,northerndailyleader.com.au,northweststar.com.au,nvi.com.au,oann.com,oberonreview.com.au,onetvasia.com,oxygen.com,parkeschampionpost.com.au,pch.com,portlincolntimes.com.au,portnews.com.au,portpirierecorder.com.au,portstephensexaminer.com.au,readamericanfootball.com,readarsenal.com,readastonvilla.com,readbasketball.com,readbetting.com,readbournemouth.com,readboxing.com,readbrighton.com,readbundesliga.com,readburnley.com,readcars.co,readceltic.com,readchampionship.com,readchelsea.com,readcricket.com,readcrystalpalace.com,readeverton.com,readeverything.co,readfashion.co,readfilm.co,readfood.co,readfootball.co,readgaming.co,readgolf.com,readhorseracing.com,readhuddersfield.com,readhull.com,readinternationalfootball.com,readlaliga.com,readleicester.com,readliverpoolfc.com,readmancity.com,readmanutd.com,readmiddlesbrough.com,readmma.com,readmotorsport.com,readmusic.co,readnewcastle.com,readnorwich.com,readnottinghamforest.com,readolympics.com,readpl.com,readrangers.com,readrugbyunion.com,readseriea.com,readshowbiz.co,readsouthampton.com,readsport.co,readstoke.com,readsunderland.com,readswansea.com,readtech.co,readtennis.co,readtottenham.com,readtv.co,readussoccer.com,readwatford.com,readwestbrom.com,readwestham.com,readwsl.com,redvoicemedia.com,revolver.news,salife.com.au,sconeadvocate.com.au,sify.com,singletonargus.com.au,smithsonianmag.com,southcoastregister.com.au,southernhighlandnews.com.au,standard.net.au,stawelltimes.com.au,stockandland.com.au,streamingmedia.com,tenterfieldstar.com.au,the-scientist.com,theadvocate.com.au,thecatholicthing.org,thecourier.com.au,thecurrent.org,thedirect.com,theflindersnews.com.au,theislanderonline.com.au,theland.com.au,theleader.com.au,therural.com.au,townandcountrymagazine.com.au,transcontinental.com.au,ulladullatimes.com.au,victorharbortimes.com.au,weatherwatch.co.nz,wellingtontimes.com.au,westernadvocate.com.au,westernmagazine.com.au,whyallanewsonline.com.au,wollondillyadvertiser.com.au,woot.com,yasstribune.com.au,youngwitness.com.au##.advertisement -+flyingjizz.com,gotporn.com,japan-whores.com,porntube.com##.advertisement -+##.advert-label -+||medyanetads.com^ -+##.ad_300_250 -+sxyprn.com##.cbd -+||impactify.io^$third-party -+||prayersstingy.com^ -+##.advtop -+dailymail.co.uk,namesecure.com#@#.adHolder -+linkedin.com#?#.feed-shared-update-v2:-abp-has(.feed-shared-actor__sub-description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|Продвигается|Marknadsfört|Nai-promote|ได้รับการโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) -+##.ad_hover_href -+||ku2d3a7pa8mdi.com^ -+###ad-top -+||unibots.in^$third-party -+/reklama/*$domain=~github.com -+||tm-offers.gamingadult.com^ -+##.videoad -+yahoo.com##.Feedback -+/lserver/* -+@@||paramountplus.com^$generichide -+||pornhyip.com^ -+##.ads-content -+##.adzone -+speedtest.net##.top-placeholder -+/display-ad/* -+speedtest.net##.pure-u-custom-ad-rectangle -+speedtest.net##.pure-u-custom-ad-skyscraper -+duckduckgo.com##.js-sidebar-ads > .nrn-react-div -+||cagothie.net^$popup -+###connatix -+##.main-ad -+||adxpremium.services^ -+##a[href^="https://chaturbate.com/in/?tour="] -+##.ad-right -+###ad-4 -+||unphionetor.com^ -+/npm/prebid- -+imdb.com##.promoted-provider -+||adventori.com^$third-party -+##.ad-iframe -+@@||cloud.google.com^$generichide -+||kozuyzcciaygg.com^ -+-ads-manager/$domain=~wordpress.org -+||cashewsforlife208.com^ -+/nb/frot_lod. -+||2dc9f59586.com^ -+||mixandfun.com^ -+@@||g.doubleclick.net/gampad/ads$xmlhttprequest,domain=bloomberg.com|formularywatch.com|gamespot.com|managedhealthcareexecutive.com|medicaleconomics.com|physicianspractice.com -+##.Gallery-Content-BottomAd -+||aklamator.com^$third-party -+##.ad-flex -+###bottomad -+||ftte.xyz^ -+/service/ad/* -+||wikihow.com/x/zscsucgm? -+##.google-adsense -+||ahscdn.com^ -+hltv.org##.middle-container -+||boost-next.co.jp^ -+/getads? -+||lin01.bid^ -+###admobilefoot -+##a[href^="https://ttf.trmobc.com/"] -+||m2track.co^ -+eporner.com##.hptab -+###admobilefootinside -+@@||imasdk.googleapis.com/js/sdkloader/ima3_dai.js$domain=247sports.com|bloomberg.co.jp|bloomberg.com|cbc.ca|cbssports.com|embed.comicbook.com|sbs.com.au|worldsurfleague.com -+@@||imasdk.googleapis.com/js/sdkloader/ima3_dai.js$domain=s.yimg.jp|vk.sportsbull.jp -+eporner.com###btasd -+||thisiswaldo.com^ -+@@||gstatic.com^$domain=mixdrop.co -+##div[data-contentexchange-widget] -+###top-right-ad-slot -+##.ad__placeholder -+/ad.css? -+##.adslug -+##.googleAds -+||adap.tv^$~object,third-party -+##.billboard.ad -+fextralife.com###content-add-a -+###dfp-interstitial -+##.BeOpWidget -+##.td-header-ad-wrap -+###admobiletop -+###banner-300x250-area -+###admobiletopinside -+###ad_topslot -+||ptoahaistais.com^ -+||buysellads.com^$third-party -+nytimes.com##div[id^="story-ad-"] -+/adserve/* -+/js/dfp- -+/adverts/*$~xmlhttprequest -+yahoo.com##.item-beacon -+||go.trvdp.com^ -+##.content-kuss-ads -+###quads-ad3 -+||xxxiijmp.com^ -+##.ad-slot--mpu-banner-ad -+##.quads-ad3 -+##.adace-slot -+##.adace-slot-wrapper -+&ad_code= -+##.speakol-widget -+||gredraus.net^ -+_728_90_ -+##.ad_wrapper -+/adfallback. -+###story-ad-1-wrapper -+/css/ads- -+##.BottomAd-container -+##.ad-slot--rendered -+||news-muheji.com^ -+||ednplus.com^$third-party -+||poundaroseflight.com^ -+###adv-Top -+||gwallet.com^ -+_300x600. -+||ribsaiji.com^ -+##.ad-slot--right -+/ads.htm$domain=~games.wkb.jp -+/site=*/viewid=*/size= -+##.module_home_ads -+ginx.tv,op.gg##.vm-placement -+nexusmods.com##.agroup -+||sape.ru^$third-party -+||1337x.*/images/x2x8.jpg -+-gpt-ad-$~xmlhttprequest -+||cogocast.net^$third-party -+||ptawhood.net^ -+bing.com#?##b_results > li:-abp-has(> h2 + .b_caption > div.b_attribution:not([u]) + p[class]) -+/adtag. -+##.advertisment -+||mc7clurd09pla4nrtat7ion.com^ -+##.ads_container -+||nessainy.net^$popup -+##.sticky-ad-container -+galaopublicidade.com#@#.publicidade -+||playbuzz.com/player/$script,third-party -+tumblr.com##.XJ7bf -+/nativeads/* -+||outrotomr.com^ -+##.click-track.partner -+||4dsply.com^$third-party -+||d2er1uyk6qcknh.cloudfront.net^ -+pornhub.com,pornhubthbh7ap3u.onion,spankbang.com##a[href^="http://ads.trafficjunky.net/"] -+##iframe[src^="https://pagead2.googlesyndication.com/"] -+?bannerid= -+||apus.tech^ -+###AdSense2 -+##.ad-div -+||metaffiliation.com^$third-party,domain=~netaffiliation.com -+##.ads-top -+##.ad-responsive-slot -+||crm4d.com^ -+##.adinfo -+||liveredwilton.com^ -+||defensetraverse.com^ -+||bilsyndication.com^ -+###bottom-ads-container -+||arswabluchan.com^ -+||lockerdome.com^$third-party -+||cresfpho2ntesepapillo3.com^ -+||linkonclick.com^ -+###ad_houseslot_a -+##.ad--container -+/full-page-script.js$script -+##.ppr_priv_footer_banner_ad_billboard -+||laim.tv^$third-party -+-adserver- -+##.googleAdSense -+##.ad-layer -+facebook.com##a[aria-label="Advertiser link"] -+##.td-a-rec-id-custom_ad_2 -+##AD-TRIPLE-BOX -+##.ad-billboard -+##.google-ads -+/hserver/* -+##.question_page_ad -+###ad_houseslot_b -+##.ads-text -+||pagefair.net^$third-party -+##.ad--mid-content -+18porn.sex,4kporn.xxx,amateurporn.me,bigtitslust.com,daporn.com,fpo.xxx,freeporn8.com,fuqer.com,gayck.com,hentai-moon.com,heroero.com,intporn.com,japaneseporn.xxx,mrdeepfakes.com,pornchimp.com,porndr.com,pornwild.com,rare-videos.net,sortporn.com,tabootube.xxx,watchmygf.xxx,xcavy.com,xgroovy.com,xxxshake.com##.table -+washingtonpost.com##.border-box.dn-hp-sm-to-mx -+||sharemedia.rs^$third-party -+||snack-media.com^$third-party -+##.ad-intromercial -+||y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me^ -+washingtonpost.com##.border-box.dn-hp-xs -+##.amp-ads -+##.ad_300x250 -+aol.com##.m-healthgrades -+##.ad-box-wrapper -+@@||g.doubleclick.net/gpt/pubads_impl_$domain=bloomberg.com|chelseafc.com|digitaltrends.com|edy.rakuten.co.jp|gentside.com|pccomponentes.com|voici.fr -+||d18e74vjvmvza1.cloudfront.net^ -+/house-ads/* -+##.ad--bottom -+||quokkacheeks.com^ -+###admain -+||adhaven.com^$third-party -+##.add-box-side -+##.add-box-top -+||asemskull.com^ -+.sk/ads/ -+||adtech.de^$third-party -+##.atf_placeholder -+###ad_btmslot -+.be/ads/ -+/admcoreext. -+###ad-lrec -+##.banner-300x250 -+##a[href*=".zlink9.com/"] -+||bliink.io^$third-party -+||clrstm.com^ -+||clickmon.co.kr^$third-party -+###story-ad-2-wrapper -+||dgxmvglp.com^ -+/native-ad- -+###topAdContainer -+##.ad-atf -+_ad_count= -+##.ad-leaderboard-footer -+.nz/ads/ -+||metresetbackbayonet.com^ -+||eporner.com/event.php -+nypost.com,pagesix.com##.recirc -+sxyprn.com##[href*="/re/"] -+###banner-300x600-area -+wowhead.com##.blocks -+/ad-specs. -+##.native-ad -+##div[class^="kiwi-ad-wrapper"] -+||mainroll.com^ -+###adv-Middle1 -+##.ads-728x90 -+@@||popin.cc/popin_discovery/recommend?$~third-party -+||eezegrip.net^ -+##a[href^="https://wittered-mainging.com/"] -+||admission.net^$third-party -+##.gptslot -+###taboola-right-rail -+||eskimi.com^$third-party -+##.g1-advertisement -+##.premium-ad -+entrepreneur.com,pricespy.co.nz##.adbox -+pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Promoted by"]) -+##.center_ad -+&adserver= -+||lariod.com^ -+://promo.$third-party,domain=~myshopify.com|~promo.com|~shopifycloud.com|~slidely.com -+/adn-hb/* -+||chooxail.com^ -+##.taboola-general -+###ads-superBanner -+||npcwfrohnshriw.com^ -+||d1ac2du043ydir.cloudfront.net^ -+###ad-header -+||truex.com^$third-party -+eporner.com###movieplayer-box-adv -+###gStickyAd -+###ad_rightslot -+##.ad--sticky -+.za/ads/$domain=~ananzi.co.za -+&action=getads& -+##.adstext -+||topdisplayformat.com^ -+||indoleads.com^$third-party -+||d28u86vqawvw52.cloudfront.net^ -+/api-ads. -+##.advert.mpu -+##.item-ad -+_popunder_ ++.ro/ads/ ++###my-adsLDRB ++||ardslediana.com^ ++||eshouloo.net^ ++mail.yahoo.com##[data-test-id^="pencil-ad"] ++imgur.com##.PrimisPlayerContainer +##.browse-banner_ad -+##.element--ad -+||viewdeos.com^$script,third-party -+###ads-billboard -+||vhrtgvzcmrfoo.com^ -+||awmdelivery.com^ -+||dba9ytko5p72r.cloudfront.net^ -+##a[href^="https://aj1070.online/"] -+###ad_top -+||exosrv.com^$popup -+||nultoaly.net^ -+##a[href^="https://juicyads.in/"] -+##.j-ad -+/^https?:\/\/.*\.(club|bid|biz|xyz|site|pro|info|online|icu|monster|buzz|website|biz|re|casa|top|one|space|network|live|systems|ml|world|life|co)\/.*/$~image,~media,~subdocument,third-party,domain=123movies-one.com|123movies.net|123moviesnow.site|123proxy.biz|123series.ru|1cloudfile.com|adblockstreamtape.art|adblockstreamtape.site|animebee.to|asianembed.io|baomay01.com|bdupload.asia|bowfile.com|cast4u.xyz|clipconverter.cc|cricplay2.xyz|daddylive.click|desiupload.co|dood.la|dood.pm|dood.so|dood.to|dood.watch|dood.ws|dopebox.to|downloadpirate.com|drivebuzz.icu|dulu.to|embedstream.me|eplayvid.net|extreme-down.plus|fclecteur.com|filmestorrents.net|flashx.net|flashx.tv|fmovies.ps|fmovies.to|gdriveplayer.us|gdtot.nl|gogoplay.io|gogoplay1.com|gogoplay4.com|gospeljingle.com|hdfilme.cx|hexupload.net|hurawatch.at|kiss-anime.org|krunkercentral.com|moviepapa.art|movies2watch.tv|moviesin.co|myflixer.ac|myflixer.it|myflixer.pw|myflixer.site|myflixer.to|myflixer.today|myflixer.ws|myflixertv.to|noob4cast.com|pkcast123.me|powvideo.net|powvldeo.me|projectfreetv2.com|proxyer.org|putlockers.gs|scloud.online|sflix.to|shortlinkto.icu|skidrowcodex.net|slreamplay.cc|socolive.pro|sports-stream.click|steanplay.cc|streamsport.icu|streamtape.com|streanplay.cc|theproxy.ws|uplinkto.one|uptobhai.com|vidbam.org|vidembed.cc|vidembed.io|vidembed.me|videobin.co|videovard.sx|vidlii.com|vidoo.org|vipbox.lc|watchseries.ninja|wawacity.work|wizhdlive.xyz|yodbox.com -+||d2muzdhs7lpmo0.cloudfront.net^ -+||1337x.to^$csp=script-src 'self' 'unsafe-inline' 'unsafe-eval' data: -+gismeteo.com##.placeholder -+###left-ad -+/?affiliateId=*&realDomain= -+.me/ads/ -+/img/ads/*$domain=~save.ca -+||admatic.com.tr^$third-party -+###reklama -+##.nw-c-leaderboard-ad -+/adsco.$domain=~adsco.com|~adsco.nl -+##.ad_top -+##.container--ad -+.se/ads/ -+||majomalonic.com^ -+||9anime.id/E/ -+w3big.com,w3schools.com###mainLeaderboard -+/_xa/ads? -+###sponsored-products -+||etargetnet.com^$third-party -+##.ads-item -+/adcore_$domain=~adcore.ch|~adcore.com.au -+##.ad-spacer -+##.adv-container -+kissjav.com##.adv-container -+##.sponsor-ad -+||asccdn.com^ -+||wpunativesh.com^ -+.com/doubleclick/ -+||itskiddoan.club^ -+##.advert-container -+||cameraunswing.com^ -+##.adv_left -+eporner.com###deskadmiddle -+##.td-a-ad -+##a[href^="https://www.iyalc.com/"] -+||dmz3nd5oywtsw.cloudfront.net^ -+||bummersrummagy.com^ -+animixplay.to###topmid -+||d1a3jb5hjny5s4.cloudfront.net^ -+||rebel.ai^ -+###adv-Middle2 -+##.discourse-adplugin -+/app/ads. -+##.m-in-content-ad-row -+##.ad_link -+##.m-sidebar-ad--slot -+||1talking.net^ -+/concert_ads- -+##.top-banner-ad-container -+###ad-text -+||d2ers4gi7coxau.cloudfront.net^ -+##.adv-text -+||jutprolificlax.com^ -+/img/ad/* -+###header-ads -+##.collapsed-ad -+##.m-in-content-ad -+##.m-in-content-ad--slot -+##.header_ad -+||mm-syringe.com^ -+/adfox.$domain=~adfox.de|~adfox.group|~adfox.hu -+||advertserve.com^$third-party -+||inskinad.com^$third-party -+/yads- -+||activemetering.com^ -+##.advert--header -+##.container-ads -+hqq.tv##a[title="Free money easy"] -+###nav-ad-container -+###adv-TopLeft -+||img-cdn.hltv.org/partnerimage/$image -+##.AdPlaceholder -+###rhsads -+##.m-header-ad--slot -+###adbanner -+researchgate.net##.lite-page__above -+||sekindo.com^ -+||blismedia.com^ -+##.ad_block -+##.ad_content -+###adm-inline-article-ad-1 -+||chooxaur.com^ -+##.banner300x250 -+novinite.com##.banner300x250 -+dofap.com##.banner300x250 -+##.MediumRectangleAdPanel -+||rtk.io^ -+##.nav-ad-gpt-container -+##.lower-ad -+##.searchCenterTopAds -+||adalliance.io^$third-party -+/popunder/* -+/adcase.$domain=~adcase.ru -+||9anime.to/E/ -+||ashcdn.com^ -+###ad_leftslot -+||bannerflow.com^$third-party -+/assets/ads- -+###bgad -+##.ad_left -+###topAd -+##.ad-slot--top-above-nav -+||louchees.net^ -+###story-ad-3-wrapper -+##.ad-interstitial -+###sponsoredProducts_feature_div -+/ad_top_ -+flashscore.com,livescore.in###box-over-content-a -+##.dfp-ad-container -+##.movable-ad -+##.ad-panel -+||chipmanksmochus.com^ -+||choachim.com^ -+||realsrv.com^$popup -+/advert_$domain=~canalplus.com -+##.ads-mobile -+-ads-widget/ -+##.ad-mrec -+||ceilidhgrazier.com^ -+###dfp-atf -+||assoc-amazon.com^$third-party -+/awaps-ad- -+##.adFull -+/google_ad_ -+##.ad-rail -+||dyj8pbcnat4xv.cloudfront.net^ -+##.full-bleed-ad -+||ftd.agency^ -+##.advert--mpu -+##.head_ad -+||increaserev.com^$third-party -+##.ad-slot--mostpop -+@@||web.archive.org^$generichide -+##a[href^="https://bongacams10.com/track?"] -+98online.com,airgunshooting.co.uk,airmalta.com,allghananews.com,anews.com.tr,angliaafloat.co.uk,arabianindustry.com,barkinganddagenhampost.co.uk,becclesandbungayjournal.co.uk,blogto.com,burymercury.co.uk,cambstimes.co.uk,canalboat.co.uk,cardealermagazine.co.uk,caribbeancinemas.com,completefrance.com,countrysmallholding.com,crimemagazine.com,dailyedge.ie,derehamtimes.co.uk,dissmercury.co.uk,dunmowbroadcast.co.uk,eadt.co.uk,eastlondonadvertiser.co.uk,economist.com,edp24.co.uk,ee.co.za,elystandard.co.uk,eos.org,etf.com,eveningnews24.co.uk,exmouthjournal.co.uk,fakenhamtimes.co.uk,farmprogress.com,football.co.uk,ft.com,games.co.uk,gamesgames.com,greatyarmouthmercury.co.uk,hackneygazette.co.uk,hamhigh.co.uk,hertsad.co.uk,huntspost.co.uk,icaew.com,ilfordrecorder.co.uk,iol.co.za,ipswichstar.co.uk,islingtongazette.co.uk,johnogroat-journal.co.uk,kentonline.co.uk,lgr.co.uk,lowestoftjournal.co.uk,maltapark.com,midweekherald.co.uk,momjunction.com,morningstar.co.uk,mousebreaker.com,newhamrecorder.co.uk,newstalkzb.co.nz,northdevongazette.co.uk,northnorfolknews.co.uk,northsomersettimes.co.uk,pilotweb.aero,pinkun.com,proxcskiing.com,raidforums.com,romfordrecorder.co.uk,royston-crow.co.uk,saffronwaldenreporter.co.uk,sidmouthherald.co.uk,sportingshooter.co.uk,sportspromedia.com,stamfordmercury.co.uk,stowmarketmercury.co.uk,sudburymercury.co.uk,tbivision.com,the42.ie,thecomet.net,thejournal.ie,theneweuropean.co.uk,thewestonmercury.co.uk,trucksplanet.com,videogamer.com,waploaded.com,wattonandswaffhamtimes.co.uk,whtimes.co.uk,wisbechstandard.co.uk,wymondhamandattleboroughmercury.co.uk,yourchickens.co.uk##.advert -+hungangels.com##.advert -+||lame7bsqu8barters.com^ -+||dyrfxuvraq0fk.cloudfront.net^ -+##.leaderboardAd -+||zitaptugo.com^ -+##.primis-player -+||d3vw4uehoh23hx.cloudfront.net^ -+##div[id^="adspot-"] -+##.Adsense -+||adtrue.com^$third-party -+##.ad.leaderboard -+##.clickforceads -+/ads/banners/* -+##.bottom_ad -+###adPlacement_1 -+||proposedpartly.com^ -+||relaxtime24.biz^ -+||oovofcsyxayy.com^ -+||e67repidwnfu7gcha.com^ -+automotive-fleet.com,businessfleet.com,cfl.ca,fleetfinancials.com,forbesindia.com,government-fleet.com,howsecureismypassword.net,ncaa.com,schoolbusfleet.com##.top-banner -+jav.work##.top-banner -+||brutalconfer.com^ -+||awscloudfront.ml^ -+||propu.sh^ -+###content-ad -+##.adtitle -+##.container-lower-ad -+##.upper-ad-box -+/redirect?tid= -+||nightfallroad.com^ -+/custom_ads. -+||karayarillock.cam^ -+/adbutler. -+##.ad__label -+||encloseddealing.com^ -+/aditems/*$~image -+-ads/assets/ ++###my-adsLDRB-iframe ++/advertise-$~script,domain=~ads.microsoft.com|~advertise-solution.nl|~bingads.microsoft.com ++||ad.mox.tv^ ++/assets/ads_ ++##a[href^="https://adclick.g.doubleclick.net/"] ++||d192r5l88wrng7.cloudfront.net^ ++||atdmt.com^ ++youtube.com##ytm-companion-slot ++||stat-rock.com^ ++/public/ads/* ++##.top-ad ++_popunder_ ++##.ad-icon ++/get_ad_ ++##.ad-300 ++||doublepimp.com^ ++||go9.online^ ++##.adsverting ++@@||msubload.com/sub/$xmlhttprequest ++||soliads.net^ ++||adsninja.ca^$third-party ++##.bottom-adv ++||wpnsrv.com^ ++||google.com/adsense/domains ++||rfihub.net^ ++##.AdHolder ++||dissimilarakin.com^ ++||virginyoungestrust.com^ ++||grsm.io^ ++/advertise/*$domain=~legl.co ++||trvl-px.com/trvl-px/ ++##.profile-ads-container ++##div[id^="zergnet-widget"] ++##div[class^="native-ad-"] ++||plista.com/async_lib.js? ++.to/ads/ ++||purpleads.io^ ++/cdn.ad. ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##.commercial-unit-desktop-rhs:not(.mnr-c) ++||adsessionserv.com^ ++||yield-op-idsync.live.streamtheworld.com^ ++||polyad.net^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="LEFT-SAFE_FRAME-"] ++##div[id^="crt-"][style] ++||phonograph2.voxmedia.com^ ++/expads- ++washingtonpost.com##[data-testid="placeholder-box"] ++||r66net.com^ ++2b2t.online,caixinglobal.com,chicagobusiness.com,chronicle.co.zw,dailytarheel.com,duckduckgo.com,dunyanews.tv,fifplay.com,hbr.org,herald.co.zw,infoq.com,lawandcrime.com,libhunt.com,motherjones.com,msn.com,reviewjournal.com,saashub.com,stocksnap.io,timeslive.co.za##.sponsored ++fux.com,pornerbros.com,porntube.com,tubedupe.com##.sponsored ++###adhesion ++##.wall-ads-control ++||greatdexchange.com^ ++/stickyads. ++||ribsaiji.com^ ++facebook.com##a[aria-label="Advertiser link"] ++||shukriya90.com^ ++##.native-ad-item ++/getads? ++||pdvacde.com^ ++||d13k7prax1yi04.cloudfront.net^ ++##.bottom-ad ++||genieessp.com^$third-party ++/openx/* ++_box_ad_ ++/publicidade/* ++||betteradsystem.com^ ++##.ad-banner-container ++##.amp-unresolved ++yahoo.com###viewer-LREC2-iframe ++.ph/ads/ ++##.i-amphtml-unresolved ++||nxtck.com^ ++_advert. ++||click-cdn.com^$popup ++||gredraus.net^ ++xhamster.com,xhamster.one,xhamster2.com##[class^="xplayer-banner"] ++imgur.com##.Top300x600 ++@@||coinmarketcap.com/static/addetect/$script,~third-party ++###my-adsMON ++||ausoafab.net^ ++||punlessnis.casa^ ++@@||playwire.com/bolt/js/zeus/embed.js$script,third-party ++@@||runescape.wiki^$image,~third-party ++/300x250.$image ++||embed.sendtonews.com^$third-party ++||sexahah.com^ ++||auguredmorns.com^ ++||befirstcdn.com^$third-party ++##.dfp-ad ++||4wnetwork.com^ ++##.goAdverticum ++||rcvlinks.com^ ++###sky-right ++dailymail.co.uk###sky-right ++##.ad-widget ++yahoo.com##.viewer-sda-container ++youtube.com##.ytd-carousel-ad-renderer ++lifeinvader.com,spanishdict.com,studentski-servis.com#@#.ad-wrapper ++||cdnquality.com^ ++||mbiifzdvhexj.com^ ++||waisheph.com^$popup ++##div[id^="adngin-"] ++javacodegeeks.com##div[id^="adngin-"] ++||stripchat.com/api/external/ ++||d22xmn10vbouk4.cloudfront.net^ ++yahoo.com##li[data-test-locator="stream-related-ad-item"] ++##.ad-wrap ++||redventures.io^$third-party ++/adwords/*$domain=~google.com +||playbuzz.com/embed/$script,third-party -+tumblr.com##.Qrht9 -+##.scad -+sankakucomplex.com##.scad -+##.ads-large -+||genistawabbler.com^ +@@||archive.org/services/$image,~third-party,xmlhttprequest -+/videojs.ads- -+?ad_tag= -+##.site-header--sponsored -+##.adUnit -+##.sticky-footer-ad -+##.gnt_tb.gnt_tbb -+/ads-beacon. -+##.ad-unit--leaderboard -+##.adv-holder -+##.m-header-ad -+##.ad-sponsor -+##.ads-row -+||fauxtitters.com^ -+##.ad_wrap -+###adPlacement_2 -+###adPlacement_3 -+||yajlpetccbodq.com^ -+||twinrdsyn.com^ -+##.ad-inline -+||betweendigital.com^$third-party -+||lanceabuse.com^ -+||video-serve.com^ -+##.sponsor-ads -+||aufr67i8sten.com^ -+/adclick. -+/contents/other/player/* -+##div[id^="ad_position_"] -+4chan.org##[width="728"] -+/ad_check. -+###adPlacement_4 -+##.gnt_tbr.gnt_tb -+##.ad-300x600 -+###ad-box -+##.top-ads -+irishnews.com,nscreenmedia.com,whoscored.com##.banner-container -+||affinity.com^ -+##.banner-728x90 -+##.ad.module -+-rail-ads. -+/pagead. -+||effectivedisplayformats.com^ -+/adblockdetect/*$~image ++||defybrick.com^ ++||ow.pubmatic.com^ ++||adtrue.fun^ ++||residenceseeingstanding.com^ ++##.js-ad ++/js/dfp- ++/728x90. ++boxofficemojo.com,imdb.com##.slot_wrapper ++||passedofferundertake.com^ ++_advertising. ++##.atf_placeholder ++##.right-ad ++||adm.shinobi.jp^$third-party ++##.zergnet-widget ++||octopuspop.com^$third-party ++##.textad ++||phosphatepossible.com^ ++##.wall-ads-right ++/modules/ad_ ++||paulflashlight.com^ ++##.ad-rectangle ++||dstillery.com^$third-party ++://affiliate.$third-party ++||antiadblocksystems.com^ ++||ethicalads.io^$third-party ++##.adv_left ++###adchoicesBtn ++galaopublicidade.com#@#.publicidade ++##.unionAd ++##.taboola-general ++||youporn.com^$script,subdocument,domain=youporn.com|youporngay.com ++||soaheeme.net^ ++##.ad-sticky ++##.inline-ad-container ++||ads.sportradar.com^ ++###zdcFloatingBtn ++/adchoices/* ++tumblr.com##.Yc2Sp ++##.adunitContainer ++.my/ads/ ++||pornhyip.com^ ++||premiumvertising.com^ ++||d2kk0o3fr7ed01.cloudfront.net^ ++.com/adx_ ++||adxpremium.services^ ++||accomplishobserved.com^ ++/^https?:\/\/.*\.(club|bid|biz|xyz|site|pro|info|online|icu|monster|buzz|website|biz|re|casa|top|one|space|network|live|systems|ml|world|life|co)\/.*/$~image,~media,~subdocument,third-party,domain=123movies-one.com|123movies.net|123moviesnow.site|123proxy.biz|123series.ru|1cloudfile.com|adblockstreamtape.art|adblockstreamtape.site|animebee.to|asianembed.io|baomay01.com|bdupload.asia|bowfile.com|cast4u.xyz|clipconverter.cc|cricplay2.xyz|daddylive.click|desiupload.co|dood.la|dood.pm|dood.so|dood.to|dood.watch|dood.ws|dopebox.to|downloadpirate.com|drivebuzz.icu|dulu.to|embedstream.me|eplayvid.net|extreme-down.plus|fclecteur.com|filmestorrents.net|flashx.net|flashx.tv|fmovies.ps|fmovies.to|gdriveplayer.us|gdtot.nl|gogoplay.io|gogoplay1.com|gogoplay4.com|gospeljingle.com|hdfilme.cx|hexupload.net|hurawatch.at|kiss-anime.org|krunkercentral.com|moviepapa.art|movies2watch.tv|moviesin.co|myflixer.ac|myflixer.it|myflixer.pw|myflixer.site|myflixer.to|myflixer.today|myflixer.ws|myflixertv.to|noob4cast.com|pkcast123.me|powvideo.net|powvldeo.me|projectfreetv2.com|proxyer.org|putlockers.gs|scloud.online|sflix.to|shortlinkto.icu|skidrowcodex.net|slreamplay.cc|socolive.pro|sports-stream.click|steanplay.cc|streamsport.icu|streamtape.com|streanplay.cc|theproxy.ws|uplinkto.one|uptobhai.com|vidbam.org|vidembed.cc|vidembed.io|vidembed.me|videobin.co|videovard.sx|vidlii.com|vidoo.org|vipbox.lc|watchseries.ninja|wawacity.work|wizhdlive.xyz|yodbox.com ++||relaxtime24.biz^ ++||dearestimmortality.com^ ++||adxbid.info^ ++||adbro.me^ ++||partnerlinks.io^ ++dailymail.co.uk,namesecure.com#@#.adHolder ++||karma.mdpcdn.com^ ++||megacdn.top^ ++||commercialvalue.org^ ++##.header-ad ++##.mobile-ad ++||ad-m.asia^ ++||chooxail.com^ ++.gr/ads/ ++||d2j042cj1421wi.cloudfront.net^ ++||hardimacolous.com^ ++/adserve/* ++||betzapdoson.com^ ++||iwanttodeliver.com^$third-party ++||postaffiliatepro.com^$third-party ++||traffichaus.com^$third-party ++##.js_ad-sticky-footer ++linkedin.com#?#.feed-shared-update-v2:-abp-has(.feed-shared-actor__sub-description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|Продвигается|Marknadsfört|Nai-promote|ได้รับการโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) ++##.ad-leaderboard ++/google-dfp- ++||sunnyseries.com^ ++||adschill.com^ ++##.ad-slot__label ++||cagothie.net^$popup ++||vidcrunch.com/integrations/$script,third-party ++/realmedia/ads/* ++##.ad-slot--container-inline ++://banners.$third-party ++##a[href^="https://bs.serving-sys.com"] ++##.ezoic-ad-adaptive ++||velocitycdn.com^ ++##.ad-tl1 ++||xlrdr.com^ ++##.footer-ad ++||intergi.com^$third-party ++||bmcdn3.com^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##[cel_widget_id*="-creative-desktop_loom-desktop-"] ++@@||peacocktv.com^$generichide ++||cabnnr.com^ ++||nultoaly.net^ ++||viralize.tv/t-bid-opportunity/ ++||your-notice.com^ ++bing.com##.b_ad ++||nanigans.com^$third-party ++##.ad-card ++||htlbid.com^ ++##.adunit +$image,script,stylesheet,subdocument,third-party,xmlhttprequest,domain=vidtodo.com|vidtodoo.com +$image,script,stylesheet,subdocument,third-party,xmlhttprequest,domain=pirateproxy.live|thehiddenbay.com|thepiratebay.org|thepiratebay10.org -+||oaphoace.net^ -+||go2speed.org^ -+##a[href^="https://secure.adnxs.com/clktrb?"] -+##.ad-1 -+##.jsAdSlot -+/search/tsc.php? -+##.ad-inner -+###right-ad -+sonichits.com###right-ad -+||d2o03z2xnyxlz5.cloudfront.net^ -+||atemda.com^ -+##.article-ads -+##.sponsored-headlines -+##.ad-mobile-dynamic -+###dfp-mtf -+||dexpredict.com^ -+||jwplayer.com^$domain=dexerto.com|gamesradar.com|ginx.tv|spokesman-recorder.com|tomshardware.com|whathifi.com -+||rareghoa.net^ -+||ptauxofi.net^ -+###banner-skyscraper -+/728x90_ -+##.ad_label -+###footer_ad -+||lhmos.com^ -+||protestsedatevisited.com^ -+||securely-send.com^ -+/300x600_ -+boards.net,mtaeta.info,notbanksyforum.com,pimpandhost.com,realgearonline.com,repairalmostanything.com,timeanddate.com,wordhippo.com,wordreference.com###ad1 -+##.advertisement_above_footer -+##div[class^="ads-partner-"] -+||aq7ua5ma85rddeinve.com^ -+##.ad-sticky-container -+##.video_ad -+eporner.com##.vjs-inplayer-container -+###mpu2 -+##div[id^="traffective-ad-"] -+||directadvert.ru^$third-party -+###adv-gpt-box-container1 -+###sidebar-ad -+||bpmmqbtstmbf.com^ -+/adjs.php -+||sexad.net^$third-party -+###google_ads -+||wpush.org^ -+##.adholder -+||achunogo.com^ -+##.ad--right -+##.p-ad -+dailymail.co.uk##.mol-fe-vouchercodes-redesign -+##a[href^="https://fonts.fontplace9.com/"] -+||podosupsurge.com^ -+##.ads_header -+/icon_ad.$domain=~adv.asahi.com -+drtuber.com,iceporn.com,nuvid.com,proporn.com,viptube.com,winporn.com##.drt-spot-box -+||push.house^ -+||ramstripedbull.com^ -+##.adg-rects -+##.l-ad -+||he7ll.com^ -+/adimages/*$~subdocument -+/ajs.php? -+##.advert-leaderboard -+##.admz -+healthline.com##.css-0 + div:not([class]):last-of-type -+/redirect?tid=$popup -+||rejowhegru.com^ -+##.adlink -+||77176d9509.com^ -+###banner-advert-container -+##.m-header-ad--balloon -+||clipelis.lol^ -+||embed.ex.co^$third-party -+||playstream.media^ -+##.literatumAd -+.ads5- -+||thackgooder.com^ -+||advertnative.com^$third-party -+###ad_leaderboard_flex -+lightnovelpub.com##.adsbox -+/adimg.$domain=~adimg.ru|~nate.com -+##a[href^="https://www.bet365.com/"][href*="affiliate="] -+||goomaphy.com^ -+||revampcdn.com^ -+##.pmc-adm-boomerang-pub-div -+###dfp-btf -+||2748cfaad3.com^ -+##.adTitle -+##.article-ad -+/adscripts/* -+bing.com##a[href*="/aclick?ld="] -+||9v58v.com^ -+yahoo.com##div[id*="ComboAd"] -+||la3c05lr3o.com^ -+##.bannerad -+/sc-tagmanager/* -+/direct_ads/* -+||onclickperformance.com^ -+||begun.ru^$third-party -+/admanager/*$~object,domain=~konograma.com -+##.standalonead -+@@||wiktionary.org^$generichide -+##.text-sponsor -+||whizzco.com^$third-party -+-300x250_ -+||dynspt.com^ -+##.subnav-ad-layout -+||libihimu.com^ -+||do69ll745l27z.cloudfront.net^ -+@@||gitlab.com^$generichide -+###ad-display-ad -+||0x01n2ptpuz3.com^ -+||spotscenered.info^ -+&adbannerid= -+##.ad-masthead -+##.native-ad-container -+||districtm.ca^ -+##.ad--leaderboard ++@@||archive.org/BookReader/$image,~third-party,xmlhttprequest ++3g2upl4pq6kufc4m.onion,audioreview.com,carlow-nationalist.ie,cellmapper.net,craigclassifiedads.com,dekhobd.com,duckduckgo.com,g.doubleclick.net,irannewsdaily.com,kildare-nationalist.ie,laois-nationalist.ie,lorempixel.com,photographyreview.com,quiz4fun.com,roscommonherald.ie,waterford-news.ie###ads ++||ugroocuw.net^$popup ++.adnetwork.$domain=~adnetwork.ie|~adnetwork.sk ++||yonhelioliskor.com^ ++@@||adsafeprotected.com/iasPET.$script,domain=reuters.com ++~Prebid.js ++###ultimedia_wrapper ++||admedo.com^$third-party ++##.slide-ad ++##.dianomi_context ++||d3cod80thn7qnd.cloudfront.net^ ++||intorterraon.com^ ++||widgets.tree.com^ ++yahoo.com###sda-LREC ++||optimizesrv.com^ ++@@||securepubads.g.doubleclick.net/tag/js/gpt.js$script,domain=olx.pl ++||d301cxwfymy227.cloudfront.net^ ++/npm/prebid- ++nytimes.com##div[id^="story-ad-"] ++||linkonclick.com^ ++yahoo.com###sda-LDRB ++##.ad--mobile ++##.AdsBox ++yahoo.com###sda-LREC3 ++-728x90. ++||cpmstar.com/view.aspx ++/javascript/ads/* ++@@||paramountplus.com^$generichide ++##.proper-ad-unit ++||snack-media.com^$third-party ++##[class^="div-gpt-ad"] ++/adclick. ++/banners/ad_ ++_prebid.js ++@@||at.adtech.redventures.io/lib/api/$xmlhttprequest,domain=gamespot.com|giantbomb.com|metacritic.com ++yahoo.com###sda-LREC4 ++||automatad.com^$third-party ++||spotx.tv^$third-party ++@@||gstatic.com^$domain=mixdrop.co ++||outrotomr.com^ ++##.dfp-slot ++||uptimecdn.com^ ++##a[href^="http://pubads.g.doubleclick.net/"] ++##.premium-ad ++/^https?:\/\/.*\.eporner\.com\/[0-9a-f]{10,}\/$/$script,domain=eporner.com ++||pushmaster-in.xyz^ ++/adv_teasers. ++/dfp/dfp- ++##.sponsor-logo ++||affluentshinymulticultural.com^ ++##.bbccom_advert ++||convrse.media^ ++/publicidade. ++||851ae974fe.com^ ++||socket.streamable.com^ +###td-ad-placeholder -+||snagbaudhulas.com^ -+##.mvp-ad-label -+||aaacompany.net^ -+##.l-grid--ad-card -+##.block-dfp -+##.ad_1150_290 -+##.ad_background -+##.searchCenterBottomAds -+@@||codepen.io^$generichide ++###leftAds ++##.display_ad ++##.google-2ad ++##.adthrive ++||terciogouge.com^ ++washingtonpost.com###slug_leaderboard ++||xxxviijmp.com^ ++/house-ads/* ++/advertising-$image,domain=~abramarketing.com|~advertising-direct.com|~advertising-excellence.com|~advertising-factory.de|~advertising-stands.com.ua|~advertising.amazon.com|~deals-italy.com|~microsoft.com|~outbrain.com|~yellowimages.com ++##.adframe ++||extremereach.io^ ++.popunder.js ++||unibots.in^$third-party ++||unblockia.com^$third-party ++yahoo.com##.darla-container ++megaxh.com##.xplayer-banner-bottom ++_300x600_ ++||generashionvd.com^ ++||overdonereciprocalimpure.com^ ++/components/ads/* ++||click-cdn.com^ ++/e/ir?$image,script ++##.dfpAd ++||whairtoa.com^ ++##a[href^="https://landing.brazzersnetwork.com/"] ++||twinrdsyn.com^ ++/reklam/*$domain=~github.com|~reklam.com.tr ++##._ap_apex_ad ++ansamed.info,baltic-course.com,futbol24.com,gatewaynews.co.za,jetphotos.com,karger.com,maritimejobs.com,newagebd.net,prohaircut.com,zbani.com##.adv ++anyporn.com,cartoon-sex.tv,oncam.me,pervertslut.com,theyarehuge.com,tiktits.com,webanddesigners.com##.adv ++||optnx.com^ ++##.ad-native ++/ad.php? ++-sidebar-ad. ++##.quads-location ++coingape.com##.quads-location ++||homosexualprovenance.com^ ++##div[data-adunit] ++||cdntrf.com^ ++##.zergnet ++##.ad-slot--top-above-nav ++###ad-1 ++@@||cloud.google.com^$generichide ++||apxlv.com^ ++||c2e6bd3f02.com^ ++||fraudclatterflying.com^ ++/banner.php ++##.ad-slot--mostpop ++||pogothere.xyz^ ++||cnt.my^ ++||imatrk.net^ ++##a[href^="https://clickadilla.com/"] ++msn.com##a[href*=".booking.com/"] ++yahoo.com###sda-LREC2 ++||40f7d44ed7.com^ ++##.adfeedback ++##.sponsor-text ++##.google-user-ad ++tumblr.com##.XJ7bf ++/weborama.js ++||bngpt.com^ ++_300x600. ++##.video-ad ++||czilladx.com^ ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Promoted by"]) ++||co5n3nerm6arapo7ny.com^ ++||azureedge.net/adtags/ ++washingtonpost.com##[data-qa="article-body-ad"] ++##.banner-ad ++||triedfavourable.com^ ++||cdnondemand.org^ ++##.sponsored-headlines ++||go6shde9nj2itle.com^ ++##.bannerAd ++||deehalig.net^ ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[data-crl="true"][data-id^="CarouselPLA-"] ++||outlookabsorb.com^ ++##.ob-hover ++/?affiliateId=*&realDomain= ++/reklama/*$domain=~github.com ++||defensetraverse.com^ ++||eskimi.com^$third-party ++||clickfuse.com^$third-party ++/publicidad/* ++||m2track.co^ ++##[data-freestar-ad] ++||pubguru.com^$third-party ++/redirect/?spot_id= ++||1337x.to^$csp=script-src 'self' 'unsafe-inline' 'unsafe-eval' data: ++##[data-ad-module] ++##.ddb ++##.banner-ad-skeleton-box ++||oaphoace.net^ ++###ad-lrec ++##.js-ad-slot ++||adalliance.io^$third-party ++/advideo.$domain=~advideo.pro|~advideo.site ++||mermaidcontemplateadjoining.com^ ++||nygvejyn.com^ ++/display-ad/* ++||adventori.com^$third-party ++||hhllryxtfgypz.com^ ++##.ad-transition ++||predicamentdisconnect.com^ ++||ku2d3a7pa8mdi.com^ ++||medyanetads.com^ ++||clickcdn.co^ ++washingtonpost.com##[data-qa="right-rail-ad"] ++msn.com##a.nativead[target="_blank"] ++||impactify.io^$third-party ++||netinsight.co.kr^$third-party ++/lserver/* ++||roxot-panel.com^ ++||inheritedfinnishdysfunctional.com^ ++||grootcho.com^ ++||goomaphy.com^ ++||sffsdvc.com^ ++||widespreadgabblewear.com^ ++||jam.hearstapps.com/js/renderer.js ++||news-muheji.com^ ++##.inline-ad ++||d2na2p72vtqyok.cloudfront.net^ ++||intellitxt.com^ ++washingtonpost.com##.border-box.dn-hp-xs ++||nathanaeldan.pro^ ++###after-dfp-ad-mid3 ++||awodrozu.com^ ++##a[href^="https://deliver.ptgncdn.com/"] ++?bannerid= ++spankbang.com##.ptgncdn_holder ++.za/ads/$domain=~ananzi.co.za ++/plugins/ads- ++||braintb.com^ ++tumblr.com##.Qrht9 ++||statsforads.com^ ++||awmdelivery.com^ ++||exponential.com^$third-party ++||cammpaign.com^ ++##a[href^="https://tm-offers.gamingadult.com/"] ++.net/ad_ ++washingtonpost.com##.pb-lgmod ++||mc7clurd09pla4nrtat7ion.com^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sp-rhf-desktop-carousel_desktop-rhf_0"] ++||1821e9a2d9.com^ ++||srv.tunefindforfans.com^ ++||freeskreen.com^ ++||ueypzubwo.com^ ++||blismedia.com^ ++##.widead ++||hearstapps.com/moapt/moapt-hdm.latest.js ++##.ad-top ++##.adunit-wrapper ++###after-dfp-ad-mid2 ++||d28u86vqawvw52.cloudfront.net^ ++@@||g.doubleclick.net/gampad/ads$xmlhttprequest,domain=bloomberg.com|formularywatch.com|gamespot.com|managedhealthcareexecutive.com|medicaleconomics.com|physicianspractice.com ++/nb/frot_lod. ++||idealmedia.io^$third-party ++##.ad-placeholder ++-gpt-ad-$~xmlhttprequest ++###quads-admin-ads-js ++$websocket,domain=flashx.to|flashx.tv ++$websocket,domain=4archive.org|allthetests.com|boards2go.com|colourlovers.com|fastpic.ru|fileone.tv|filmlinks4u.is|flashx.tv|imagefap.com|keepvid.com|megaup.net|merriam-webster.com|olympicstreams.me|pocketnow.com|pornhub.com|pornhubthbh7ap3u.onion|postimg.org|powvideo.net|roadracerunner.com|shorte.st|tribune.com.pk|tune.pk|vcpost.com|vidmax.com|vidoza.net|vidtodo.com|webfirstrow.eu ++$websocket,domain=pornhub.com|redtube.com|redtube.com.br|tube8.com|tube8.es|tube8.fr|xtube.com|youporn.com|youporngay.com ++###after-dfp-ad-mid1 ++/ads.htm$domain=~games.wkb.jp ++##.adthrive-content ++||wikihow.com/x/zscsucgm? ++.com/adlib/ ++.nz/ads/ ++||safestgatetocontent.com^ ++||pncloudfl.com^ ++||gwallet.com^ ++||services.zam.com^ ++||gobacktothefuture.biz^ ++/adverts/*$~xmlhttprequest ++washingtonpost.com##.border-box.dn-hp-sm-to-mx ++||y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me^ ++||f329cba40e.com^ ++||moksoxos.com^ ++/ak-ads-ns. ++##.wide-ad ++||sape.ru^$third-party ++||fauxtitters.com^ ++||adap.tv^$~object,third-party ++##.adslug ++imdb.com##.cornerstone_slot ++##.ad-choices ++@@||g.doubleclick.net/gpt/pubads_impl_$domain=bloomberg.com|chelseafc.com|digitaltrends.com|edy.rakuten.co.jp|gentside.com|pccomponentes.com|voici.fr ++/redirect?tid= ++###ad-rectangle ++##.box-ads ++##.myTestAd ++||go.trvdp.com^ ++/redirect?tid=$popup ++||nikugrawe.pro^ ++||metaffiliation.com^$third-party,domain=~netaffiliation.com ++||mixadvert.com^$third-party ++||eporner.com/event.php ++||tm-offers.gamingadult.com^ ++/adn-hb/* ++-show-ads. ++##.billboard.ad ++###after-dfp-ad-top ++##.banner728x90 ++||4dsply.com^$third-party ++||adalliance.io^$domain=spiegel.de ++##.ad-300x250 ++||d2o03z2xnyxlz5.cloudfront.net^ ++@@||imasdk.googleapis.com/js/sdkloader/ima3_dai.js$domain=247sports.com|bloomberg.co.jp|bloomberg.com|cbc.ca|cbssports.com|embed.comicbook.com|sbs.com.au|worldsurfleague.com ++@@||imasdk.googleapis.com/js/sdkloader/ima3_dai.js$domain=s.yimg.jp|vk.sportsbull.jp ++###ad-overlay ++||hprofits.com^$third-party ++nytimes.com,nytimes3xbfgragh.onion###top-wrapper ++##.td-a-rec-id-custom_ad_1 ++||choachim.com^ ++##.cardAd ++||inwoodaural.com^ ++##.leaderboard-ad ++##.BeOpWidget ++nytimes.com,nytimes3xbfgragh.onion###bottom-wrapper ++-ads-manager/$domain=~wordpress.org ++||buysellads.com^$third-party ++||boost-next.co.jp^ ++||clippedstocah.com^ ++.sk/ads/ ++||thackgooder.com^ ++||d1a3jb5hjny5s4.cloudfront.net^ ++austurfrett.is,boards.4chan.org,boards.4channel.org#@#.middlead ++animixplay.to###topmid ++||asccdn.com^ ++||karayarillock.cam^ ++||dozubatan.com^ ++##.list-ads ++||ramstripedbull.com^ ++linkedin.com#?#.feed-shared-update-v2:-abp-has(.feed-shared-actor__description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|Продвигается|Marknadsfört|Nai-promote|ได้รับการโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) ++##.adstextpad ++##.ads_place ++||inpagepush.com^ ++||realsrv.com^$popup ++||rejowhegru.com^ ++/css/ads- ++@@||web.archive.org^$generichide ++###ad-leaderboard ++||eezegrip.net^ ++||77176d9509.com^ ++##.jeg_ad ++||d1ac2du043ydir.cloudfront.net^ ++||baradoot.com^ ++||stairtuy.com^ ++/adtag. ++||adnext.fr^ ++||thisiswaldo.com^ ++||contentango.com^ ++/full-page-script.js$script ++.se/ads/ ++##.leaderboard_ad ++||fastestdwelling.com^ ++||bliink.io^$third-party ++##.adslot_1 ++||serialwarning.com^ ++###top-right-ad-slot ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##.sbv-video-single-product ++##.ad-left ++/ad_top_ ++###adv-Top ++||ptawhood.net^ ++://promo.$third-party,domain=~myshopify.com|~promo.com|~shopifycloud.com|~slidely.com ++||lockerdome.com^$third-party ++##.contentAds ++/adsense.$~script,domain=~adsense.az|~adsense.googleblog.com ++||lin01.bid^ ++||whedupache.pro^ ++/nativeads/* ++||effectivecreativeformats.com^ ++||inskinad.com^$third-party ++/hserver/* ++||f8c72280d8.com^ ++||cresfpho2ntesepapillo3.com^ ++||dlrioxg1637dk.cloudfront.net^ ++||repeatresolve.com^ ++.prtrackings.com$popup ++/yads- ++||routerhydrula.com^ ++##a[href^="https://go.xxxjmp.com"] ++||moekyepkd.com^ ++##.adSlot ++##div[data-content="Advertisement"] ++/site=*/viewid=*/size= ++###taboola-mid-article-thumbnails ++##.jeg_ad_top ++##.jnews_header_top_ads +||f451b7f622.com^ -+||dpmsrv.com^ -+###ad_text:not(textarea) -+wikihow.com##.al_method ++##.navbar-ad-container ++||clickmon.co.kr^$third-party ++animixplay.to###streambottomright ++##.udn-ads ++||unphionetor.com^ ++###adv-Middle1 ++||truex.com^$third-party ++/_xa/ads? ++&action=getads& ++||mixandfun.com^ ++##.headerAd ++gelbooru.com##.headerAd ++##a[href^="https://chaturbate.com/in/?track="] ++||ftd.agency^ ++||apus.tech^ ++||topdisplayformat.com^ ++||fbwaikol.com^ ++||iamcdn.net/players/playhydraxs.min.js$domain=player-cdn.com ++##.ads-in-content ++##.ads-box ++###top-ad ++mzzcloud.life,rabbitstream.net,rapid-cloud.ru,streamrapid.ru###overlay-container ++||lhmos.com^ ++##.sidebar-ad ++/img/ads/*$domain=~save.ca ++||arswabluchan.com^ ++##.advert-label ++##.sponsored_content ++||tunuhap.com^ ++/pb.min. ++##.inner-ad ++job.inshokuten.com#@#.ad-title ++##.iAdserver ++||zitaptugo.com^ ++||bummersrummagy.com^ ++##.td-adspot-title ++/app/ads. ++##.SponsoredResults ++||exosrv.com^$popup ++||latury.com^ ++||tartator.com^ ++##.AdTop ++@@||gitlab.com^$generichide ++holiday-weather.com,w3schools.com,zerochan.net###skyscraper ++adult-sex-games.com,postyourpuss.com###skyscraper ++##.adthrive-ad ++||stoorsoy.com^ ++||laydowngabriel.com^ ++##.side_ad ++sxyprn.com##.tbd ++/adfallback. ++##div[id^="ezoic-pub-ad-"] ++||loukoost.net^ ++||ghskoqhz.com^ ++||adhaven.com^$third-party ++cnn.com##.cn--expandable.cn--idx-1 ++##.dcmads ++||drinkergenys.com^ ++##.dotcom-ad ++/sc-tagmanager/* ++/adfront/* ++adultfilmdatabase.com,animeidhentai.com,babeforums.org,bos.so,camvideos.tv,camwhores.tv,cutscenes.net,daftsex.com,devporn.net,fritchy.com,gifsauce.com,hentai2read.com,hotpornfile.org,hpjav.com,imagebam.com,imgbox.com,imgtaxi.com,motherless.com,myporn.club,pandamovies.pw,planetsuzy.org,pussyspace.com,redgifs.com,sendvid.com,sexgalaxy.net,sextvx.com,sexuria.com,thefappeningblog.com,vintage-erotica-forum.com,vipergirls.to,waxtube.com,xfantazy.com,yeapornpls.com##a[href*="theporndude.com"] ++##.block-ad ++.be/ads/ ++/adfox.$domain=~adfox.de|~adfox.group|~adfox.hu ++.pk/ads/ ++||d65948f49b.com^ ++##.stream-ad ++##.content-ad ++###adbox ++##.adsninja-ad-zone ++##.advt ++###footer-ad ++##.sticky-ad-container ++/advertisement_$~script ++##.vid-present > .van_vid_carousel__padding ++@@||wiktionary.org^$generichide ++||rdtk.io^ ++@@||codepen.io^$generichide ++##.add-box-side ++##.add-box-top ++###adv-TopLeft ++##.ad-title ++###hawkMagWidget ++.com/doubleclick/ ++||itskiddoan.club^ ++##.ad-zone-container ++||bidtheatre.com^ ++##.nts-ad ++##.desktop-ad ++###topAdContainer ++@@||patreonusercontent.com/*.gif?token-$image,domain=patreon.com ++##.ad__wrapper ++||19028a7caf.com^ ++||36d1ef387c.com^ ++||cb9e43b2a0.com^ ++9gag.com,hotstar.com,sport360.fit,talksport.com,trademe.co.nz##.billboard ++##.advtop ++||trafficmoose.com^ ++||push.house^ ++||d2ers4gi7coxau.cloudfront.net^ ++go-convert.com###ad ++##.plainAd ++||tldw.me^$third-party ++/img/ad/* ++##.c-ad ++/assets/ads- ++||cecityshalom.com^ ++||absoluteroute.com^ ++||indoleads.com^$third-party ++##.ad-slot--mpu-banner-ad ++||xxxiijmp.com^ ++||homosexualprovenance.com^$popup ++##.ad-slot--right ++/ad-specs. ++||falconisleclip.com^ ++##.hidden-ad ++||e67repidwnfu7gcha.com^ +@@||ajax.googleapis.com/ajax/libs/$script,domain=heapfiles.com|vidoza.co|vidoza.net +@@||ajax.googleapis.com/ajax/libs/$script,domain=govid.co +@@||ajax.googleapis.com/ajax/libs/$script,domain=shink.me|shon.xyz +@@||ajax.googleapis.com/ajax/libs/$script,domain=flashx.to|flashx.tv -+##a[href^="https://serve.awmdelivery.com/"] -+mangakakalot.com##.container-chapter-reader > div -+/ad4.$domain=~ad4.fr|~ad4.wpengine.com|~vereinslinie.de -+youtube.com##.ytd-carousel-ad-renderer -+##a[href^="https://claring-loccelkin.com/"] -+animixplay.to###streambottomright -+##.img_ad -+||kiosked.com^$third-party -+##.ad-inserter -+||mainadv.com^ -+||prdredir.com^ -+##.sticky-rail-ad-container -+/ad_spot. -+##.m-jac-ad -+linkedin.com#?#.feed-shared-update-v2:-abp-has(.feed-shared-actor__description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|Продвигается|Marknadsfört|Nai-promote|ได้รับการโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) -+||tartator.com^ -+accuweather.com,iconeye.com,phonescoop.com###top -+bbc.com##section[data-e2e="advertisement"] -+||b0oie4xjeb4ite.com^ -+||66f66dd865.com^ -+||bid.glass^ -+##.ad-101 -+##.adFrame -+.pk/ads/ -+##.ad-row -+##.gujAd -+||widget.sellwild.com^ -+.prtrackings.com$popup -+||googlesyndication.com/sodar/$domain=spiegel.de -+##.tnt-ads-container -+||thatsouh.com^ -+##.widget-ad -+||bkl72.com^ -+##.sponsored-links -+##.ad-121 -+||responsibleassociation.com^ -+##.ads-bottom -+##.verticalAdText -+||ad-nex.com^ -+/ad/index. -+_468x60. -+||paigipto.net^ -+||ad.kissanime.com.ru^ -+###ad_1 -+||effectivecreativeformats.com^ -+/afr.php? -+||sweepprolong.com^ -+-300x600. -+/ads/js/* -+##.BottomAdsPartial -+/adsDesktop. -+###AdsContent -+/images/adv. -+##.ad_300 -+/ads/banner_ -+/ads-loader. -+||inconceivableascertained.com^ -+||dyn.tnaflix.com^ -+##.adsbyadop -+-adserver.$domain=~aqua-adserver.com|~revive-adserver.com -+###adDiv -+||laydowngabriel.com^ -+geeksforgeeks.org###text-15 -+##.sp_ad -+||advast.sibnet.ru^ -+||googleads.github.io^ -+##.TopAdsPartial -+||gblcdn.com^ -+||intersc.igaming-service.io^$domain=hltv.org -+electronicshub.org,geeksforgeeks.org,thesurvivalistblog.net###text-16 -+##.proper-ad-insert -+@@||g.doubleclick.net/gpt/pubads_impl_$script,domain=spiegel.de -+.eg/ads/ -+##.td-a-rec-id-custom_ad_3 -+##.banner728 -+||drinkergenys.com^ -+##.side-ads -+###Adbanner -+##.avap-ads-container -+##.google_ads -+###header-ad-wrapper -+msn.com##.sameoab_ad_container -+##.advertorial -+###mpu_top -+##.AdSlot -+/2market_bidshow.php? -+||projectagora.net^ -+/ad01. -+##.ad-slot-top -+geeksforgeeks.org,weekender.com.sg###text-17 -+||btrll.com^$third-party -+.ae/ads/ -+##.glacier-ad -+###ad_bottom -+##[data-dynamic-ads] -+||adthrive.com^$third-party -+##.ads-zone -+marketwatch.com##.container--sponsored -+||staticflickr.com/ap/build/javascripts/prbd-$script,domain=flickr.com -+##.right-video-dvertisement -+||luxupcdnc.com^ -+##.ad-leaderboard-flex -+||impactradius-go.com^ -+||exmarketplace.com^$third-party -+rarbg.to,rarbgaccess.org,rarbgmirror.com,rarbgmirror.org,rarbgproxy.com,rarbgproxy.org,rarbgunblock.com,rarbgunblocked.org##a[href][target="_blank"] > button -+##.ads-title -+||otaserve.net^$third-party -+||stawhoph.com^ -+||yvmads.com^ -+rarbg.to,rarbgaccess.org,rarbgmirror.com,rarbgmirror.org,rarbgproxy.com,rarbgproxy.org,rarbgunblock.com,rarbgunblocked.org##tr > td + td[style*="height:"] -+##.adslot_3 -+##.adv-overlay -+||moekyepkd.com^ -+##.advertisement-text -+##.ad-left-top -+||sufficientretiredbunker.com^ -+##.ads-leaderboard -+livejournal.com##.pagewide-wrapper -+##.js-sidebar-ads -+##.m-balloon-header--ad -+##.strawberry-ads -+||contentango.com^ -+/sponsors/ads/* -+###AdArea -+||fri4esianewheywr90itrage.com^ -+###ad_2 -+||becorsolaom.com^ -+##.advertise-here -+||lenmit.com^ -+3movs.com,tnaflix.com##iframe[width="300"] -+##.ad-holder -+||eyereturn.com^ -+||prbtqjujwzwepv.com^ -+##.bottom-ad-container -+###ad_right -+livejournal.com##.allbanners -+||velocecdn.com^ -+kincho.co.jp#@#.ad-block -+||cb9e43b2a0.com^ -+||widaimty.com^ -+###story-ad-4-wrapper -+||fastapi.net^ -+bing.com##.b_adBottom -+###GoogleAd -+||txxx.com/api/input.php? -+##.ad-standard -+austurfrett.is,boards.4chan.org,boards.4channel.org#@#.middlead -+businessinsider.com,insider.com##.in-post-sticky -+##.billboard-ad -+###ad-standard-wrap -+##.ad_header -+/adsservice. -+##.companion-ads -+||yceml.net^ -+||whoutsog.net^ -+||oomsoapt.net^ -+aptoslife.com,bohemian.com,constructionreviewonline.com,cyberparse.co.uk,eastbayexpress.com,eindhovennews.com,ericpetersautos.com,fenuxe.com,gameplayinside.com,gamezone.com,gilroydispatch.com,gizmochina.com,goodtimes.sc,greekreporter.com,greenfieldnews.com,healdsburgtribune.com,indianapolisrecorder.com,industryhit.com,kenyan-post.com,kingcityrustler.com,maltabusinessweekly.com,metrosiliconvalley.com,morganhilltimes.com,musictech.net,nasilemaktech.com,newsnext.live,nme.com,pacificsun.com,pajaronian.com,pakobserver.net,pressbanner.com,radioink.com,salinasvalleytribune.com,sanbenito.com,sonorannews.com,telugubullet.com,theindependent.co.zw,wrestling-online.com##.td-a-rec -+##.advert-wrap -+e-hentai.org##.itd[colspan="4"] -+###AdContainerTop -+||bnmla.com^ -+||e335udnv6drg78b7.com^$popup -+||epnt.ebay.com^ -+###AdvContainer -+###ad_contentslot_1 -+##.ad-2 -+##div[data-role="sidebarAd"] -+||dyh1wzegu1j6z.cloudfront.net^ -+||admjmp.com^$third-party -+/dfp/common/* -+||httpool.com^$third-party -+/onead. -+youtube.com##.ytp-ad-button -+||redintelligence.net^$third-party -+||choupsee.com^ -+/adspaces. -+||adpnut.com^$third-party -+bing.com##.adsMvC -+||dlooqrhebkjoh.cloudfront.net^ -+&adstype= -+##.ads_wrapper -+||netpub.media^$third-party -+@@||abril.com.br^$generichide -+||jwpcdn.com/player/plugins/bidding/ -+##.ad-loader -+##.topbannerAd -+@@||torrindex.net^$image,script,stylesheet,domain=thepiratebay.org -+###premiumAdTop -+||contagiousaugust.com^ -+hltv.org##.skinport -+##.wrap-ad -+##.ad-halfpage -+/ad/jsonp/* -+##.header-and-footer--banner-ad -+job.inshokuten.com#@#.ad-title -+||outlookabsorb.com^ -+||wteicogfeyhjk.com^ -+||venisonhumridicule.com^ -+/ad-choices- -+##.adv-box -+###banner-728x90-area -+||adxpub.com^$third-party -+||acobnnvet.com^ -+/itxads/* -+||tldw.me^$third-party -+sportsclimax.com###top_banner -+##.adModule -+##.widget-advads-ad-widget -+##.native-sidebar-ad -+/site=*/size=*/viewid= -+##.rightrail-ad-placed -+##.advertisement-block -+/mod_ad/* -+||theporndude.com/graphics/tpd-$third-party -+msn.com##.dynamicRRWrapper -+##.adTip -+##.widget_thesun_dfp_ad_widget -+##.adrotate_widgets -+afrsmartinvestor.com.au,afternoondc.in,allmovie.com,allmusic.com,brw.com.au,cio.co.ke,gq.co.za,ocregister.com,orangecounty.com,premier.org.uk,premierchristianity.com,premierchristianradio.com,premiergospel.org.uk,radio.com,sidereel.com,themonthly.com.au,yourdictionary.com##.advertising -+fetishshrine.com,sleazyneasy.com##.advertising -+/display-ads-$domain=~google.co.uk|~google.com|~google.com.au -+##.quads-ad4 -+||publir.com^$third-party -+tvtropes.org##.atf_banner -+||162.252.214.4^ -+||jumptap.com^ -+||trickylongaffliction.com^ -+||commercial.daznservices.com^ -+||bids.concert.io^ -+##.cnc-ads -+||mpaphqjb.com^ -+##.artAd -+###quads-ad4 -+@@||thepiratebay.org/static/main.js$script,~third-party -+##.ad-sky -+###SponsoredAd -+@@||v.fwmrm.net/crossdomain.xml$xmlhttprequest -+###ad_main_top_05 -+hltv.org##.kN5UQvcU -+/adBanner? -+?adunitid= -+###AdSense3 -+||surfe.pro^$third-party -+/adshow2. -+||underdog.media^ -+badjojo.com,boysfood.com,definebabe.com,efukt.com,fantasti.cc,girlsofdesire.org,imagepix.org,javfor.me,pornxs.com,shemaletubevideos.com,therealpornwikileaks.com,yea.xxx##a[href*=".php"] -+##.googlead -+webmd.com##.module-f-hs -+mzzcloud.life,rabbitstream.net,rapid-cloud.ru,streamrapid.ru###overlay-container -+###advert-leaderboard -+youporn.com,youporngay.com##.footer-element-container -+##.ad300x250 -+||voonogoa.net^ -+||hq3x.com^ -+##.BoxRail-ad -+###ad-holder -+/media/ad/* -+||ipromcloud.com^ -+###sky-left -+###ad_global_above_footer -+||adtng.com^$popup -+##div[id^="js-dfp-"] -+##.td-a-rec-id-custom_ad_4 -+youtube.com##ytm-companion-slot -+@@$generichide,domain=heapfiles.com|vidoza.co|vidoza.net -+##.google-right-ad -+||glersakr.com^$popup -+||clevernt.com^ -+||ja2n2u30a6rgyd.com^ -+###adform_leaderboard -+||zyf03k.xyz^ -+||bet365.com^*affiliate=$popup -+||d1nubxdgom3wqt.cloudfront.net^ -+/pbjsandwich- -+||minutemediaservices.com^$third-party -+||breakfastinvitingdetergent.com^ -+##.ads-core-placer -+##.ads-holder -+/api/ads/* -+###ad-5 -+||untimburra.com^ -+||alpidoveon.com^ -+||powferads.com^ -+###ad-wrapper -+##.ad-lrec -+||routerhydrula.com^ -+||newsnow.co.uk/pharos.js -+##.ad-right2 -+||vidverto.io^ -+wiki.fextralife.com#@#.ad-sidebar -+###floating_ads_bottom_textcss_container -+##.ad__container -+||75abf77682.com^ -+yahoo.com###viewer-LREC2-iframe -+/common/ads/* -+##amp-embed[type="taboola"] -+/admgr. -+/prebid-sdk. -+||aj1090.online^ -+###ad-label -+||optnx.com^ -+||88035affc1.com^ -+cnbc.com##div[class^="TopBanner-"] -+##.ads-block-rightside -+##.ad468 -+##.td-ad-m -+##.ad-col -+weather.com##div[id^="Taboola-main-"] -+||gussbkpr.website^ -+||sitewithg.com^ -+##.adthrive-header -+||minutemedia-prebid.com^$third-party -+$webrtc,domain=ack.net|allthetests.com|azvideo.net|champion.gg|clicknupload.link|colourlovers.com|csgolounge.com|dispatch.com|fastplay.to|go4up.com|gounlimited.to|janjua.pw|janjua.tv|jpost.com|megaup.net|merriam-webster.com|netdna-storage.com|ouo.io|ouo.press|rlslog.net|sourceforge.net|spanishdict.com|telegram.com|torlock.icu|torlock2.com|uptobox.com|videowood.tv|vidtodo.com|yts.gs|yts.mx -+@@||bitbucket.org^$generichide -+##.right-side-ad -+||bongacams7.com^ -+##.Ad--loading -+##.ad120 -+||smileoffennec.com^ -+##.full-adv -+||pncloudfl.com^ -+||vihub.ru^ -+/ad-blacklist. -+||hentaigold.net^$third-party -+poki.com##div[class^="Advertisement_"] -+##.tnt-ads -+##.advert--leaderboard -+##.link_ad -+||adalliance.io^$domain=spiegel.de -+##.ads-header -+@@||apibay.org^$script,xmlhttprequest,domain=thepiratebay.org -+||sskmnews.pro^ -+##.tc_ad -+###adMain -+-display-ads. -+###headerAd -+##.ad-bigbox -+||kissanime.com.ru/api/pop*.php -+/prehead/ads_ -+/pbjs-*.js -+##.ad-side -+||rhombicsomeday.com^ -+##div[id^="advads-"] -+myflixer.to##.news-iframe -+###rightad -+##.ads-footer -+/common/ad. -+###halfpagead -+/google-ads. -+###dfp_leaderboard -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##.commercial-unit-desktop-rhs > .iKidV > .Ee92ae + .P2mpm + .hp3sk -+||adcell.com^$third-party -+||bargedoctarch.com^ -+||fosterchildwarehouse.com^ -+||tubecorp.com^ ++###adv-Middle2 +||marphezis.com^ -+||nativespot.com^$third-party -+##.adright -+###sticky-ad-container -+/js/m/i-def.js -+||redir.tradedoubler.com/projectr/$popup -+||soft-com.biz^ -+##a[href^="https://affcpatrk.com/"] -+_760x100. -+##.iAdserver -+||clickcdn.co^ -+/ados.js -+||mafrarc3e9h.com^ -+||stairtuy.com^ -+###ad728x90 -+###AD_L -+##[class^="s2nPlayer"] -+##.ad_footer -+||admetricspro.com^$third-party -+||aamapi.com^$third-party -+pcgamer.com,tomsguide.com,tomshardware.com##div[class*="ad-unit"] -+dailymail.co.uk,thisismoney.co.uk##.watermark -+###adBrandingStation -+##.ad-h-250 -+##.ad.item -+||eiasninancu.com^ -+##.interstitial-ad -+/dfpad/* -+##.adLeaderboard -+##.text_adv -+##a[href^="https://syndication.optimizesrv.com/"] -+##.ad-caption -+###TopAd -+##a[href^="http://chaturbate.com/affiliates/"] -+##.rr-ad -+||smac-ad.com^ -+##.arc-ad-wrapper -+yahoo.com##li[data-test-locator="stream-related-ad-item"] -+##.advert_container -+##.scads-ad-placed -+||ekareqif.xyz^ -+||audaciousdefault.com^$popup -+##.adtable -+||agle21xe2anfddirite.com^ -+##.mobile-ad-container -+||ad.about.co.kr^ -+##.ad_r -+##.ad-bot -+###ad_banner -+@@||g.doubleclick.net/pagead/ppub_config?$domain=bloomberg.com -+##.rectangleAd -+||dvgigmhdhwtvb.com^ -+yahoo.com##div[class*="ads-"] -+/adview.$domain=~adview.mu|~adview.mx|~adview.online|~adview.su -+##.video-side__adv_title -+##.dfp-banner -+###AdvertisingLeaderboard -+||geddshippy.com^ -+||cigrylecha.pro^ -+||ctxtfl.com^$third-party -+||go2affise.com^$popup -+##.legion_primiswrapper -+||chrif8kdstie.com^ ++||admission.net^$third-party ++_ad_count= ++||rebel.ai^ ++||nessainy.net^$popup ++||aaacompany.net^ ++##.ad.box ++||dexpredict.com^ ++###header-ad ++||advertserve.com^$third-party ++/728x90_ ++##.overlay-ad ++##.advertisementBanner ++||minutemediaservices.com^$third-party ++||bannerflow.com^$third-party ++/adsco.$domain=~adsco.com|~adsco.nl ++||lockfireshimself.com^ ++||affinity.com^ ++##.ad-body ++||admatic.com.tr^$third-party ++##.ad-slot--rendered ++||cashewsforlife208.com^ ++aol.com##.m-healthgrades ++##.footer__advert ++##.van_taboola ++||pagefair.net^$third-party ++||d18e74vjvmvza1.cloudfront.net^ ++##.van_vid_carousel ++||interworksmedia.co.kr^$third-party ++||nightfallroad.com^ ++##div[data-ad-placeholder] ++##.ad--desktop ++||wpunativesh.com^ ++##.ad-leaderboard-footer ++||dpmsrv.com^ ++hqq.tv##a[title="Free money easy"] ++sxyprn.com##.cbd ++wiki.fextralife.com#@#.ad-sidebar ++##.amp-ads ++##.mntl-gpt-adunit ++||mainroll.com^ ++##.pb-ad ++/adbutler. ++||trickylongaffliction.com^ ++||jipone.xyz^ ++kincho.co.jp#@#.ad-block ++##div[data-dfp-id] ++||nostromedia.com^ ++##.ad-google ++/adcase.$domain=~adcase.ru ++||dmz3nd5oywtsw.cloudfront.net^ ++||d3vw4uehoh23hx.cloudfront.net^ ++_728_90_ +||iprom.net^ -+##.td-ad-tp -+||dc5k8fg5ioc8s.cloudfront.net^ -+&ad_system= -+/smartpop/*$popup -+##.ads_box -+##.widget_adace_ads_widget -+||parkcircularpearl.com^$popup -+##.adv-list -+##.c-adSkyBox -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sp-rhf-desktop-carousel_desktop-rhf_0"] -+/advertpro/* -+/pb.min. -+||trustx.org^$third-party -+##.contentAd -+@@||at.adtech.redventures.io/lib/dist/$script,domain=gamespot.com|giantbomb.com|metacritic.com -+nypost.com##.widget_nypost_dfp_ad_widget -+##.ad-type-flex-leaderboard -+badassbitch.pics###adv -+##.c-advert -+||onclickalgo.com^ -+||braintb.com^ -+###ad-block -+||monadplug.com^ -+##.ads-middle -+||arenalitteraccommodation.com^ -+/advertorial- -+###leftrail_dynamic_ad_wrapper -+||mediaforge.com^ -+###dv-gpt-ad-bigbox-wrap -+##.GoogleDfpAd -+||deploreimpendingnasty.com^ -+||adsfactor.net^ -+###ads4 -+||free.srcdn.xyz^ -+/google-ads/* -+@@||pandora.com^$generichide -+||kw3y5otoeuniv7e9rsi.com^ -+@@||mail.proton.me^$generichide -+wsj.com#@##footer-ads -+.ch/ads/ -+1980-games.com,flash-mp3-player.net,gameslol.net,larousse.com,theportugalnews.com,tolonews.com##.pub -+hltv.org##.featured-matches-top-matches-container -+||eacdn.com^ -+/ad3.$domain=~ad3.eu|~vereinslinie.de -+||murkilyergots.com^ ++||powferads.com^ ++||ashcdn.com^ ++##.adslot ++##.ads_place_160 ++||v6rxv5coo5.com^ ++||wuksaiho.net^ ++||prdredir.com^ ++/videojs.ads- ++/aditems/*$~image ++##.video-ads-container ++/ads-beacon. ++-300x250_ ++||aufr67i8sten.com^ ++##div[id^="yandex_ad"] ++yandex.com##div[id^="yandex_ad"] ++##.m-jac-ad ++||doruffletr.com^ ++||txxx.com/api/input.php? ++||13646d7b78.com^ ++@@||popin.cc/popin_discovery/recommend?$~third-party ++||d2muzdhs7lpmo0.cloudfront.net^ ++||bvrloslwgc.com^ ++||aklamator.com^$third-party ++||rtk.io^ ++.ae/ads/ ++##.ad_area ++##.rg-ad ++##.ad.leaderboard +||hetartwg.com^$popup -+##.ad-banner-top -+/funcript*.php?pub= -+||elonreptiloid.com^ -+##.hstpnetworkads -+||loukoost.net^ -+##.section_ad -+||ads.yahoo.com^ -+||surediscourageconcerning.com^ -+/advertisement_$~script -+||tnaflix.com/azUhsbtsuzm? -+##.ad300 -+webmd.com###ContentPane40 -+##.td-a-rec-id-custom_ad_5 -+||propellerclick.com^ -+@@||doodstream.com^$subdocument -+/smartadserver.$domain=~smartadserver.com|~smartadserver.com.br|~smartadserver.de|~smartadserver.es|~smartadserver.fr|~smartadserver.it|~smartadserver.pl|~smartadserver.ru ++wsj.com#@##footer-ads ++||88035affc1.com^ ++##.click-track.partner ++/search/tsc.php? ++##a[href^="https://go.xlviirdr.com"] ++||etargetnet.com^$third-party ++||cirsepuh.net^ ++##.ad-item +##.homePageAds -+cnbc.com##.TopBanner-container -+/ads1. -+##.ad_slug_table -+cricketnetwork.co.uk,f1network.net,howtogermany.com,rugbynetwork.net,thefootballnetwork.net,timesandstar.co.uk###billboard -+cambridge.org##.topslot-container -+###advTop -+||adbox.lv^ -+yahoo.com##.viewer-sda-container -+##.ad234 -+.ads1- -+dailymail.co.uk##.mpu_puff_wrapper -+||playtem.com^$third-party -+||adnet.lt^$third-party -+##.site_ad -+||quickeryes.com^ -+##.california-ad -+tumblr.com##.njwip -+##.ad-links -+||contextads.live^$third-party -+@@||media.kijiji.ca/api/$image,~third-party -+##.ads-banner -+##.california-sidebar-ad -+###advert-article -+##.ads-label -+||serenityspokenrust.com^ -+##app-advertisement -+###adPlacement_7 -+##.sponsored_ad -+||wolfermissies.com^ -+##.cafemedia-ad-slot-top -+###footerAds -+_top_ad_ -+##.ADbox -+||vkcdnservice.com^ -+||track.effiliation.com^$image,script -+##.banner-300x600 -+||tyiqebrbpxc.com^ -+breitbart.com###HaDW -+agcanada.com,allmusic.com,allthatsinteresting.com,autoaction.com.au,autos.ca,ballstatedaily.com,broadcastnow.co.uk,cantbeunseen.com,chairmanlol.com,comingsoon.net,crn.com.au,diyfail.com,edmunds.com,europeanpharmaceuticalreview.com,explainthisimage.com,foodista.com,freshbusinessthinking.com,funnyexam.com,funnytipjars.com,gamesindustry.biz,hardware.info,iamdisappoint.com,imedicalapps.com,itnews.com.au,japanisweird.com,jta.org,legion.org,lifezette.com,milesplit.com,monocle.com,morefailat11.com,moviemistakes.com,nbl.com.au,objectiface.com,passedoutphotos.com,playstationlifestyle.net,rollcall.com,roulettereactions.com,searchenginesuggestions.com,shinyshiny.tv,shitbrix.com,sparesomelol.com,spoiledphotos.com,spokesman.com,sportsnet.ca,sportsvite.com,stopdroplol.com,straitstimes.com,suffolknews.co.uk,supersport.com,tattoofailure.com,thestar.com.my,titantv.com,tutorialrepublic.com,where.ca,yoimaletyoufinish.com##.leaderboard -+thehun.net##.leaderboard -+##.articleAdvert -+##.ad-w-300 -+.fi/ads/ -+###adSkyscraper -+_advertise. -+###ad-slot -+||launchreliantcleaver.com^ -+||haihaime.net^ -+/img/ad_$domain=~kazi.co.jp|~rakuten.co.jp -+canstar.com.au,designspiration.com,investors.com,search.genieo.com,search.installmac.com##.promoted -+##.adver -+||janglemysticalpiggy.com^ -+##.cafemedia-ad-slot-right1 -+||alas4kanmfa6a4mubte.com^ -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk#?#div[jsaction^="mouseover:"]:-abp-has(span.irmCpc) -+youtube.com##.ytp-ad-player-overlay-flyout-cta -+||cdrvrs.com^ -+||d3aiy6aqoa3ykz.cloudfront.net^ -+||fcouvtlwzocok.com^ -+||spectacularidentifiers.com^ -+##.ad-manager-wrapper -+@@||book.com.tw/image/getImage?$domain=books.com.tw -+##.aside_ad -+/cxf-ad-banner ++###top-banner-ad-browser ++/api-ads. ++###ad-banner ++##.adspace ++##.ad_300_250 ++###adv-gpt-box-container1 ++/concert_ads- ++||libihimu.com^ ++||parachuteeffectedotter.com^ ++||ds88pc0kw6cvc.cloudfront.net^ ++##.adLabel ++||e335udnv6drg78b7.com^$popup ++||playstream.media^ ++||decencyjessiebloom.com^ ++||ednplus.com^$third-party ++##.tablet-ad ++.me/ads/ ++pokeminers.com#@#.ad-container ++||otaserve.net^$third-party ++##div[id^="adspot-"] ++##.nw-c-leaderboard-ad ++||redir.tradedoubler.com/projectr/$popup ++/contents/other/player/* ++||bet365.com^*affiliate=$popup ++/advert_$domain=~canalplus.com ++||la3c05lr3o.com^ ++##.adinfo ++||assoc-amazon.com^$third-party ++##.module_single_ads ++||sillinessinterfere.com^ ++||vasstycom.com^ ++||ads.yahoo.com^ ++##.ad-area ++||taboola.com/vpaid/ ++||cvastico.com^ +||cusecwhitten.com^ -+##.pz-ad-box -+##.googleAdsense -+||gglx.me^ -+##.connatix-wrapper -+||adnico.jp^$third-party -+##.ad--top -+##.ads_div -+##.footer_ad -+bing.com##.pa_carousel_mlo -+||stoorsoy.com^ ++/custom_ads. ++||staticflickr.com/ap/build/javascripts/prbd-$script,domain=flickr.com ++ebay.com##div[title="ADVERTISEMENT"] ++@@||doodstream.com^$subdocument ++.eg/ads/ ++||byambipoman.com^ ++||bilsyndication.com^ ++||genistawabbler.com^ ++##.ad-responsive-slot ++||majomalonic.com^ ++||taroads.com^ ++/^https?:\/\/(35|104)\.(\d){1,3}\.(\d){1,3}\.(\d){1,3}\//$popup,third-party ++##.ad--footer ++||ftte.xyz^ ++##.ad-layer ++||rareghoa.net^ ++||larreedancy.com^ ++||audaciousdefault.com^$popup ++theguardian.com##.js-top-banner ++||revampcdn.com^ ++dailymotion.com##div[class^="VideoInfo__videoInfoAdContainer"] ++||ad.kissanime.com.ru^ ++##.sidebar-ads ++||realtime-bid.com^ ++||hublosk.com^ ++##.ad-slot--top-banner-ad ++||cigrylecha.pro^ ++||embed.ex.co^$third-party ++###insticator-container ++||grunoaph.net^ ++||ahscdn.com^ ++##.ad--container ++||eeshemto.com^ ++||tsiwqtng8huauw30n.com^ ++##.ad--bottom ++||video-streaming.ezoic.com^ ++||serch26.biz^ ++/ad4.$domain=~ad4.fr|~ad4.wpengine.com|~vereinslinie.de ++@@$generichide,domain=heapfiles.com|vidoza.co|vidoza.net ++###bottomAd ++||bmcdn4.com^ ++/ad/index. ++##.ad-top-banner ++||sekindo.com^ ++##.collapsed-ad ++||mjrhficjcbf.com^ ++||adtrue.com^$third-party ++?ad_tag= ++||d2er1uyk6qcknh.cloudfront.net^ ++##.ad-iframe ++||metresetbackbayonet.com^ ++##.sponsored-post ++###mpu2 ++##.Adsense ++##.ad--rail ++##.advertisement-label ++/adjs.php ++||0x01n2ptpuz3.com^ ++||2a7955a37f.com^ ++||sharemedia.rs^$third-party ++/ad.css? ++##.adModule ++||increaserev.com^$third-party ++/adsservice. ++||syrsple2se8nyu09.com^$popup ++?adunitid= ++@@||pbs.twimg.com/ad_img/$image,xmlhttprequest ++||adtech.de^$third-party ++||velocecdn.com^ ++||wpush.org^ ++||bnmla.com^ ++||b05ac36841.com^ ++||do69ll745l27z.cloudfront.net^ ++coinmarketcap.com##.goXFFk ++##.ad_global_header ++/afr.php? ++coinmarketcap.com##.sponsoredMark ++000webhost.com,aan.com,aarp.org,animax-asia.com,apkforpc.com,araratadvertiser.com.au,areanews.com.au,armidaleexpress.com.au,audioxpress.com,axn-asia.com,batemansbaypost.com.au,begadistrictnews.com.au,bendigoadvertiser.com.au,benfergusonshow.com,blayneychronicle.com.au,bluemountainsgazette.com.au,boorowanewsonline.com.au,bordermail.com.au,braidwoodtimes.com.au,bravotv.com,bunburymail.com.au,busseltonmail.com.au,camdenadvertiser.com.au,camdencourier.com.au,canowindranews.com.au,centralwesterndaily.com.au,cessnockadvertiser.com.au,cnbctv18.com,conservativeradio.com,controleng.com,cootamundraherald.com.au,cowraguardian.com.au,dailyadvertiser.com.au,dailyliberal.com.au,dungogchronicle.com.au,dw.com,easternriverinachronicle.com.au,edenmagnet.com.au,esperanceexpress.com.au,examiner.com.au,fairfieldchampion.com.au,forbesadvocate.com.au,gemtvasia.com,gleninnesexaminer.com.au,gloucesteradvocate.com.au,goondiwindiargus.com.au,goulburnpost.com.au,greatlakesadvocate.com.au,grenfellrecord.com.au,hardenexpress.com.au,hawkesburygazette.com.au,hcn.org,hepburnadvocate.com.au,huffingtonpost.co.uk,huntervalleynews.net.au,inqld.com.au,inverelltimes.com.au,jewishworldreview.com,juneesoutherncross.com.au,katherinetimes.com.au,legion.org,lifezette.com,lithgowmercury.com.au,liverpoolchampion.com.au,livestly.com,macarthuradvertiser.com.au,macleayargus.com.au,magtheweekly.com,mailtimes.com.au,maitlandmercury.com.au,mandurahmail.com.au,manningrivertimes.com.au,margaretrivermail.com.au,martechadvisor.com,moneyland.ch,moreechampion.com.au,mudgeeguardian.com.au,murrayvalleystandard.com.au,muswellbrookchronicle.com.au,naroomanewsonline.com.au,narrominenewsonline.com.au,northerndailyleader.com.au,northweststar.com.au,nvi.com.au,oann.com,oberonreview.com.au,onetvasia.com,oxygen.com,parkeschampionpost.com.au,pch.com,portlincolntimes.com.au,portnews.com.au,portpirierecorder.com.au,portstephensexaminer.com.au,prospectmagazine.co.uk,readamericanfootball.com,readarsenal.com,readastonvilla.com,readbasketball.com,readbetting.com,readbournemouth.com,readboxing.com,readbrighton.com,readbundesliga.com,readburnley.com,readcars.co,readceltic.com,readchampionship.com,readchelsea.com,readcricket.com,readcrystalpalace.com,readeverton.com,readeverything.co,readfashion.co,readfilm.co,readfood.co,readfootball.co,readgaming.co,readgolf.com,readhorseracing.com,readhuddersfield.com,readhull.com,readinternationalfootball.com,readlaliga.com,readleicester.com,readliverpoolfc.com,readmancity.com,readmanutd.com,readmiddlesbrough.com,readmma.com,readmotorsport.com,readmusic.co,readnewcastle.com,readnorwich.com,readnottinghamforest.com,readolympics.com,readpl.com,readrangers.com,readrugbyunion.com,readseriea.com,readshowbiz.co,readsouthampton.com,readsport.co,readstoke.com,readsunderland.com,readswansea.com,readtech.co,readtennis.co,readtottenham.com,readtv.co,readussoccer.com,readwatford.com,readwestbrom.com,readwestham.com,readwsl.com,redvoicemedia.com,revolver.news,salife.com.au,sconeadvocate.com.au,sify.com,singletonargus.com.au,smithsonianmag.com,southcoastregister.com.au,southernhighlandnews.com.au,standard.net.au,stawelltimes.com.au,stockandland.com.au,streamingmedia.com,tenterfieldstar.com.au,the-scientist.com,theadvocate.com.au,thecatholicthing.org,thecourier.com.au,thecurrent.org,thedirect.com,theflindersnews.com.au,theislanderonline.com.au,theland.com.au,theleader.com.au,therural.com.au,townandcountrymagazine.com.au,transcontinental.com.au,ulladullatimes.com.au,victorharbortimes.com.au,weatherwatch.co.nz,wellingtontimes.com.au,westernadvocate.com.au,westernmagazine.com.au,wheels.ca,whyallanewsonline.com.au,wollondillyadvertiser.com.au,woot.com,yasstribune.com.au,youngwitness.com.au##.advertisement ++cumlouder.com,flyingjizz.com,gotporn.com,japan-whores.com,porntube.com##.advertisement ++##.vertical-ad ++@@||v.fwmrm.net/crossdomain.xml$xmlhttprequest ++||quickeryes.com^ ++##.gpt.top-slot ++##.google-adsense ++##.empty-ad ++-ads/assets/ ++/adscripts/* ++||serenityspokenrust.com^ ++||adtng.com^$popup ++||geddshippy.com^ ++||dyrfxuvraq0fk.cloudfront.net^ ++||video-serve.com^ ++@@||streamlare.com^$subdocument ++###skin-ad-left-rail-container ++##.banner_ad ++||redintelligence.net^$third-party ++##.ad-header ++###skin-ad-right-rail-container ++||begun.ru^$third-party ++##.videoad ++##.companion-ads ++||dcf0698a21.com^ ++||launchreliantcleaver.com^ ++||adkernel.com^$third-party ++##.ad_container ++###div-insticator-ad-1 ++yahoo.com###sda-LDRB2 ++||lariod.com^ ++||googleads.github.io^ ++##.sponsored-content ++##.adsbyadop ++/adserving. ++||yozyboqyiy.com^ ++sxyprn.com##[href*="/re/"] ++/google_ad_ ++##.ad-stickyhero ++##.ad-stickyhero--standard ++||daughterinlawrib.com^ ++###ad-2 ++/ads/js/* ++/ad-choices- ++||choupsee.com^ ++###gpt-leaderboard-ad ++9gag.com##[style^="width: 640px; min-height: 360px;"] ++##.sponsored-links +||greenadblocker.com^$popup -+upornia.com##.aa_label ++||gblcdn.com^ ++||brutalconfer.com^ ++||crm4d.com^ ++||directadvert.ru^$third-party ++||podosupsurge.com^ ++||trk-consulatu.com^ ++##.ad__placeholder ++f2movies.to,fmovies.ps,fmoviesto.cc,hdtoday.tv,movies2watch.tv,moviesjoy.to,myflixer.to,myflixertv.to###gift-top ++-adserver.$domain=~aqua-adserver.com|~revive-adserver.com ++@@||redventures.io/lib/dist/prod/bidbarrel-$script,domain=cnet.com|techrepublic.com|zdnet.com ++/adsDesktop. ++/admanager/*$~object,domain=~konograma.com ++##.AdPlaceholder ++##.adv-phone ++||jrpkizae.com^ ++||lenmit.com^ ++@@||mail.proton.me^$generichide ++||ejcet5y9ag.com^ ++||r2b2.io^$third-party ++||advertnative.com^$third-party ++##.top.ad ++/300x600_ ++/adframe/*$~image ++##.native-ad ++##.js-advert ++||eacdn.com^ ++||dyn.tnaflix.com^ ++##.ad-frame-container ++newyorker.com##div[class^="StickyHeroAdWrapper-"] ++||fosterchildwarehouse.com^ ++@@||bitbucket.org^$generichide ++forums.digitalspy.com,marketwatch.com#@#.has-ad ++||whizzco.com^$third-party ++||dynspt.com^ ++||poodledopas.cam^ ++/plugins/ad-invalid-click-protector/*$script ++##.ad_300x250 ++||adwebone.com^$third-party ++/icon_ad.$domain=~adv.asahi.com ++##.third-party-ad ++||yogawrite.com^ ++##.ad_link ++/adcore_$domain=~adcore.ch|~adcore.com.au ++##.top-banner-ad-container ++||dspultra.com^ ++||kiosked.com^$third-party ++##.breaker-ad ++||optnx.com^$popup ++##.lower-ad ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget^="MAIN-FEATURED_ASINS_LIST-"] ++_468x60. ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id^="multi-brand-detail-creative-desktop_"] ++###comments-standalone-mpu ++mirror.co.uk###comments-standalone-mpu ++||xlivrdr.com^$popup ++nypost.com,pagesix.com##.recirc ++||eyereturn.com^ ++||hq3x.com^ ++||mainadv.com^ ++||atemda.com^ ++##AD-TRIPLE-BOX ++||outbrain.com^$domain=bgr.com|buzzfeed.com|tvline.com ++||contagiousaugust.com^ ++/funcript*.php?pub= ++||4eb28685b6.com^ ++##.banner-adverts ++||spotscenered.info^ ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk#?#div[jsaction^="mouseover:"]:-abp-has(span.irmCpc) ++walmart.com#?#li.items-center:-abp-has(div[data-ad-component-type="wpa-tile"]) ++/ads.bundle. ++##.ad-tag ++||thesaurussurf.com^ ++||jwplayer.com^$domain=dexerto.com|gamesradar.com|ginx.tv|spokesman-recorder.com|tomshardware.com|whathifi.com ++||whoutsog.net^ ++||1675450967.rsc.cdn77.org^ ++##.container-lower-ad ++||gondangwicopy.com^ ++/adblockdetect/*$~image ++##.upper-ad-box ++||alas4kanmfa6a4mubte.com^ ++/images/adv. ++##.ad-marker ++@@||g.doubleclick.net/pagead/ppub_config?$domain=bloomberg.com ++||quakingcalix.com^ ++/advertorial- ++||publir.com^$third-party ++##.carbon-ad ++||ctxtfl.com^$third-party ++##.puff-ad ++###videoad ++##.ad_banner ++/popunder? ++ancient-origins.net,anisearch.com,catholicculture.org,deadspin.com,electrek.co,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lewrockwell.com,lifehacker.com,ssbcrack.com,thetakeout.com##a[href^="https://www.amazon."][href*="tag="] ++youtube.com##.ytp-ad-player-overlay-flyout-cta ++||btrll.com^$third-party ++yahoo.com##.darla-lrec-ad ++/admgr. ++@@||pandora.com^$generichide ++||tadsbelver.com^ ++##.ad_column ++##.ADbox ++||bfbcb7a235.com^ ++||alpidoveon.com^ ++-300x600. ++/api/ads/* ++||glersakr.com^$popup ++##.clickforceads ++||f270d8d863.com^ ++||fastapi.net^ ++||bkl72.com^ ++/ads_config. ++||widget.sellwild.com^ ++/ajs.php? ++&ad_system= ++##iframe[src^="https://pagead2.googlesyndication.com/"] ++||impactradius-go.com^ ++##.publicidade ++||ipromcloud.com^ ++||vogulprecast.com^$popup ++@@||g.doubleclick.net/gpt/pubads_impl_$script,domain=spiegel.de ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget^="multi-card-creative-desktop_loom-desktop-top-slot_"] ++##.ads-728x90 ++||go2affise.com^$popup ++.fi/ads/ ++##.adzone ++##.ad-lrec ++/mod_ad/* ++as.com,tutiempo.net,ubunlog.com##.publi ++##.display-ad ++##.banner-728x90 ++/pbjsandwich- ++newsnow.co.uk##.js-banner-strip ++##.dfp-leaderboard-container ++###adMain ++@@||spiegel.de^$genericblock,generichide ++##.top_ad ++##.advert.mpu ++||kissanime.com.ru/api/pop*.php ++/google-ads/* ++||betweendigital.com^$third-party ++/ad.html? ++/ados.js ++||buikolered.com^$popup ++##.topAd ++/ads/banner_ ++||jullyambery.net^ ++lilymanga.com,msn.com##a[href^="https://amzn.to/"] ++##.ad-leaderboard-flex ++###adBrandingStation ++||admjmp.com^$third-party ++||longaboo.com^ ++youtube.com##.ytd-action-companion-ad-renderer ++||advast.sibnet.ru^ ++##.element--ad ++||162.252.214.4^ ++eporner.com##.vjs-inplayer-container ++##.ad_module ++##.ads-block ++###ad-3 ++||haihaime.net^ ++||netpub.media^$third-party ++||rhombicsomeday.com^ ++||luxupcdnc.com^ ++||surediscourageconcerning.com^ ++##.avap-ads-container ++||nawyhinu.pro^ ++||maxonclick.com^ ++##.ad_background ++##.ad-rail ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[data-ismultirow="true"][data-id^="CarouselPLA-"] ++##.is-sponsored ++##.dfp_unit ++##.scad ++sankakucomplex.com##.scad ++||semiglorifyseek.com^ ++##.ad728 ++lightnovelpub.com##.adsbox ++###ad-display-ad ++###adv-gpt-masthead-skin-container1 ++||aamapi.com^$third-party ++##.leaderboard.advert ++##.ad-728x90 ++||newsnow.co.uk/pharos.js ++/google_ad. ++eporner.com###movieplayer-box-adv ++youtube.com##.ytp-ad-button ++||d10lumateci472.cloudfront.net^ ++###google_ads ++###ad-4 ++/ads/banners/* ++@@||book.com.tw/image/getImage?$domain=books.com.tw ++||propu.sh^ ++||securely-send.com^ ++##[href^="http://residenceseeingstanding.com/"] ++||viewdeos.com^$script,third-party ++||eiteribesshaints.com^$popup ++||httpool.com^$third-party ++/ads-loader. ++/sponsors/ads/* ++||becorsolaom.com^ ++##.advertising_widget ++||sexad.net^$third-party ++||awin1.com/cshow.php$third-party ++###admobilefoot ++##.j-ad ++||g.doubleclick.net^$domain=spiegel.de ++###leftads ++##.ad__label ++||lame7bsqu8barters.com^ ++||aq7ua5ma85rddeinve.com^ ++msn.com##div[data-section-id="sponsored.stripe.shopping"] ++##.ads_code ++.ch/ads/ ++eporner.com###deskadmiddle ++eporner.com##.hptab ++###admobilefootinside ++eporner.com###btasd ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sp-rhf-desktop-carousel_desktop-rhf_1"] ++/pagead. ++||ulmoyc.com^ ++||lustresneakvisitation.com^ ++###ad_houseslot_a ++##.ad-billboard ++||vidverto.io^ ++||bongacams7.com^ ++##.ad-intromercial ++||he7ll.com^ ++###sticky-ad ++###ad_houseslot_b ++||5daf6a375c.com^ ++||googlesyndication.com/sodar/$domain=spiegel.de ++##.nav-ad-gpt-container ++/img/ad- ++###admobiletop ++###admobiletopinside ++##.ads-holder ++##.adv300x250 ++###nav-ad-container ++||4f370501ac.com^ ++||e4d3c228c4.com^ ++||minutemedia-prebid.com^$third-party ++||duplicatepowerquay.com^ ++||radiancewoebun.com^ ++##.content-ads ++||graduatewonderentreaty.com^ ++||laundryrespond.com^ ++||jumptap.com^ ++##.ad--right ++###left-ad ++||3c92e2040f.com^ ++isewanferry.co.jp,jreu-h.jp,junkmail.co.za,nexco-hoken.co.jp,version2.dk#@#.ad-text ++||activemetering.com^ ++1980-games.com,flash-mp3-player.net,gameslol.net,larousse.com,theportugalnews.com,tolonews.com##.pub ++-adnow.$domain=~zappistore.com ++##a[href^="https://chaturbate.com/in/?tour="] ++##a[href^="https://www.bet365.com/"][href*="affiliate="] ++mangakakalot.com##.container-chapter-reader > div ++livejournal.com##.allbanners ++###rightAds ++##.g1-advertisement ++##.text-sponsor ++||bargedoctarch.com^ ++##.ad--sticky ++||84a196ebc5.com^ ++||barleylatestinches.com^ ++||bids.concert.io^ ++||mybetterck.com^ ++||clevernt.com^ ++||projectagora.net^ ++##.dfp-block ++###adm-inline-article-ad-1 ++yahoo.com##div[class*="gemini-ad"] ++||servingcdn.net^ ++||widgets.outbrain.com^$domain=mamasuncut.com ++livejournal.com##.pagewide-wrapper ++12tomatoes.com,bloomberg.com,datpiff.com,logotv.com,newcartestdrive.com,news.sky.com,onthesnow.ca,onthesnow.co.nz,onthesnow.co.uk,onthesnow.com,onthesnow.com.au,penny-arcade.com,publishersweekly.com,skysports.com,stuff.tv,theserverside.com,urbandictionary.com,whitepages.ae###leaderboard ++postyourpuss.com###leaderboard ++##.ad-unit--leaderboard ++##.promoad ++||ea0e9526cf.com^ ++||fri4esianewheywr90itrage.com^ ++||lysim-lre.com^ ++##.ad-section ++||dyh1wzegu1j6z.cloudfront.net^ ++||livejasmin.com^$third-party,domain=~awempire.com ++yahoo.com##.gemini-ad ++##hl-adsense ++greatist.com##hl-adsense ++fmovies.ps,hdtoday.tv,movies2watch.tv,moviesjoy.to,myflixer.to,myflixertv.to###gift-middle ++/pbjs-*.js ++###bottom_ad ++sonichits.com###bottom_ad ++||chushywoce.com^ ++||d3aiy6aqoa3ykz.cloudfront.net^ ++||9v58v.com^ ++##.container--ad ++||theporndude.com/graphics/tpd-$third-party ++||adspeed.net^ ++||aj1090.online^ ++animixplay.to###belowcomment ++##.RectangleAd ++##.Ad--loading ++##.nav-ad ++##.sponsorPost ++||stawhoph.com^ ++##.ad-sticky-container ++##.leaderboardAd ++##.ad--mid-content ++##.ppr_priv_horizon_ad ++###AdSense1 ++##.top-ad-container ++||wanjul.com^ ++||adcell.com^$third-party ++||obituaryfuneral.com^ ++##div[data-contentexchange-widget] ++||hetaint.com^$popup ++wowhead.com##.blocks ++###scrollover-ad-wrap ++&adstype= ++##.movable-ad ++||inconceivableascertained.com^ ++||go2speed.org^ ++##.advertorial ++##.ad-slot--inline ++||alterupholdcinema.com^ ++||admetricspro.com^$third-party ++||grandsonreverendlawn.com^ ++yahoo.com##div[id*="ComboAd"] ++##.bottom-ad-container ++||dvunyhdjacox.com^ ++||dba9ytko5p72r.cloudfront.net^ ++/site_ads/* ++||virginyoungestrust.com^$popup ++||sufficientretiredbunker.com^ ++||mediaforge.com^ ++##.adace-slot ++##.adclass ++_300x250- ++##.pz-ad-box ++##.ad-sponsor ++###topad ++||underdog.media^ ++##.widgetSponsors ++##.ad-footer ++/google-ads. ++||scanscout.com^$third-party ++/adimg.$domain=~adimg.ru|~nate.com ++###header-ad-wrapper ++||4a23cbe845.com^ ++||vaspo30.com^ ++##div[id^="ad_position_"] ++_top_ad_ ++##.ads-text ++||oomsoapt.net^ ++##.adace-slot-wrapper ++##.adslot_2 ++||servedbysmart.com^$third-party ++||runkleatemoya.com^ ++||owlerydominos.cam^ ++||highperformancegate.com^$popup ++##.b_adLastChild ++bing.com##.b_adLastChild ++||streamjav.top/pBUKvw1.js ++###ad_topslot ++||bdced8843e.com^ ++||elonreptiloid.com^ ++##.ad-sidebar ++||dgxmvglp.com^ ++/ad_spot. ++||anymoresentencevirgin.com^ ++||products.gobankingrates.com^ ++yahoo.com##div[style*="/ads/"] ++||gglx.me^ ++##.ad-slot-container ++||ceilidhgrazier.com^ ++||widaimty.com^ ++##.gptslot ++||ads5-adnow.com^ ++###dfp-masthead ++@@||ads.google.$image,script,stylesheet,domain=ads.google.ac|ads.google.ad|ads.google.ae|ads.google.al|ads.google.am|ads.google.as|ads.google.at|ads.google.az|ads.google.ba|ads.google.be|ads.google.bf|ads.google.bg|ads.google.bi|ads.google.bj|ads.google.bs|ads.google.bt|ads.google.by|ads.google.ca|ads.google.cat|ads.google.cd|ads.google.cf|ads.google.cg|ads.google.ch|ads.google.ci|ads.google.cl|ads.google.cm|ads.google.co.ao|ads.google.co.bw|ads.google.co.ck|ads.google.co.cr|ads.google.co.id|ads.google.co.il|ads.google.co.in|ads.google.co.jp|ads.google.co.ke|ads.google.co.kr|ads.google.co.ls|ads.google.co.ma|ads.google.co.mz|ads.google.co.nz|ads.google.co.th|ads.google.co.tz|ads.google.co.ug|ads.google.co.uk|ads.google.co.uz|ads.google.co.ve|ads.google.co.vi|ads.google.co.za|ads.google.co.zm|ads.google.co.zw|ads.google.com|ads.google.com.af|ads.google.com.ag|ads.google.com.ai|ads.google.com.ar|ads.google.com.au|ads.google.com.bd|ads.google.com.bh|ads.google.com.bn|ads.google.com.bo|ads.google.com.br|ads.google.com.by|ads.google.com.bz|ads.google.com.cn|ads.google.com.co|ads.google.com.cu|ads.google.com.cy|ads.google.com.do|ads.google.com.ec|ads.google.com.eg|ads.google.com.et|ads.google.com.fj|ads.google.com.gh|ads.google.com.gi|ads.google.com.gt|ads.google.com.hk|ads.google.com.jm|ads.google.com.jo|ads.google.com.kh|ads.google.com.kw|ads.google.com.lb|ads.google.com.ly|ads.google.com.mm|ads.google.com.mt|ads.google.com.mx|ads.google.com.my|ads.google.com.na|ads.google.com.ng|ads.google.com.ni|ads.google.com.np|ads.google.com.om|ads.google.com.pa|ads.google.com.pe|ads.google.com.pg|ads.google.com.ph|ads.google.com.pk|ads.google.com.pr|ads.google.com.py|ads.google.com.qa|ads.google.com.ru|ads.google.com.sa|ads.google.com.sb|ads.google.com.sg|ads.google.com.sl|ads.google.com.sv|ads.google.com.tj|ads.google.com.tn|ads.google.com.tr|ads.google.com.tw|ads.google.com.ua|ads.google.com.uy|ads.google.com.vc|ads.google.com.ve|ads.google.com.vn|ads.google.cv|ads.google.cz|ads.google.de|ads.google.dj|ads.google.dk|ads.google.dm|ads.google.dz|ads.google.ee|ads.google.es|ads.google.fi|ads.google.fm|ads.google.fr|ads.google.ga|ads.google.ge|ads.google.gg|ads.google.gl|ads.google.gm|ads.google.gp|ads.google.gr|ads.google.gy|ads.google.hk|ads.google.hn|ads.google.hr|ads.google.ht|ads.google.hu|ads.google.ie|ads.google.im|ads.google.iq|ads.google.is|ads.google.it|ads.google.it.ao|ads.google.je|ads.google.jo|ads.google.jp|ads.google.kg|ads.google.ki|ads.google.kz|ads.google.la|ads.google.li|ads.google.lk|ads.google.lt|ads.google.lu|ads.google.lv|ads.google.md|ads.google.me|ads.google.mg|ads.google.mk|ads.google.ml|ads.google.mn|ads.google.ms|ads.google.mu|ads.google.mv|ads.google.mw|ads.google.ne|ads.google.ne.jp|ads.google.ng|ads.google.nl|ads.google.no|ads.google.nr|ads.google.nu|ads.google.pl|ads.google.pn|ads.google.ps|ads.google.pt|ads.google.ro|ads.google.rs|ads.google.ru|ads.google.rw|ads.google.sc|ads.google.se|ads.google.sh|ads.google.si|ads.google.sk|ads.google.sm|ads.google.sn|ads.google.so|ads.google.sr|ads.google.st|ads.google.td|ads.google.tg|ads.google.tl|ads.google.tm|ads.google.tn|ads.google.to|ads.google.tt|ads.google.us|ads.google.vg|ads.google.vu|ads.google.ws ++##a[href^="https://juicyads.in/"] ++||optcrockery.com^ ++||chooxaur.com^ ++||mediaad.org^$third-party ++||kinahunnic.com^ ++irishnews.com,nscreenmedia.com,whoscored.com##.banner-container ++||gussbkpr.website^ ++||hmuxsxuqhnptfq.com^ ++||adthrive.com^$third-party ++@@||torrindex.net^$image,script,stylesheet,domain=thepiratebay.org ++##.adUnit ++##.advert-wrapper ++||2ce506d192.com^ ++||npcwfrohnshriw.com^ ++/common/ad. ++###sponsored-products ++||doubleadserve.com^ ++##.lazyad ++||adsfactor.net^ ++-advertisement_ ++||monadplug.com^ ++##.m-ad ++##.ad-row ++##.ads-middle ++/site=*/size=*/viewid= ++##.advert--header ++##app-advertisement ++##.banner-300 ++||vhrtgvzcmrfoo.com^ ++||tnaflix.com/azUhsbtsuzm? ++||lowrance.top^ ++||ad-nex.com^ ++||fastdmr.com^ ++123-movies.ninja,123movies.net,2umovies.me,4anime.biz,4anime.gg,9anime.tube,actvid.com,animebee.to,animefreak.site,animefreak.ws,animefrenzy.net,animeheaven.pro,animekisa.in,animekisa.tv,animepahe.cc,apkmody.io,batotoo.com,bravoporn.com,coloredmanga.com,dembed1.com,dramacool.pk,dulu.to,filmlinks4u.cam,filmyzilla.autos,filmyzilla.makeup,gogoanime.be,gogoanime.co.in,gogoanime.lol,gogoanime.run,gogoplay1.com,goload.pro,hds-streaming-hd.com,herogayab.net,hhdmovies.cam,hindilinks4u.cam,hothit.me,hurawatch.cc,iflixmovies.com,jujutsukaisen-manga.online,jujutsukaisenonline.net,linksly.co,mangadna.com,mangahere.today,manganatos.com,mangas-raw.com,mangceh.cc,membed.net,messitv.net,miraculous.to,movierulz.cam,movies-watch.com.pk,mp3fromyou.tube,ngomik.net,nkiri.com,playlist-youtu.be,pomvideo.cc,prmovies.bz,prmovies.cam,prmovies.fyi,prmovies.li,prmovies.org,prmovies.re,putlocker.vc,putlockers.fm,putlockers.li,rawkuma.com,sockshare.ac,ssoap2day.to,tamilyogi.best,vanime.co,waploaded.com,wat32.tv,watchofree.com,watchomovies.cam,watchomovies.net,watchseries.cyou,watchseries.ninja,wcostream.cc,webtoonshare.com,y-2mate.com,yomovies.bz,yomovies.pl,yomovies.pm,yomovies.ws,ytmp3.cc,yts-subs.com##iframe[style*="z-index: 2147483647"] ++##.adstext ++||d6b13de038.com^ ++||fegrofaxe.pro^ ++##.google-ads ++/prehead/ads_ ++||ad97da966d.com^ ++||st1net.com^ ++||untimburra.com^ ++###ad_btmslot ++huffingtonpost.co.uk,huffpost.com##.leaderboard-flex-placeholder-desktop ++##a[href^="https://wittered-mainging.com/"] ++##.bottom-ads ++||ptauxofi.net^ ++##.footerAds ++||epnt.ebay.com^ ++||yvmads.com^ ++||asemskull.com^ ++/core-ads. ++/display_ad$domain=~ads.instacart.com ++##.googleAdsense ++||contextads.live^$third-party ++||cqekuodanlchkr.com^ ++||whoutsiy.net^ ++##.td-a-rec-id-custom_ad_3 ++@@||media.kijiji.ca/api/$image,~third-party ++##.jsAdSlot ++@@||thepiratebay.org/static/main.js$script,~third-party ++||arenalitteraccommodation.com^ ++dailymotion.com##div[class^="DisplayAd"] ++##.td-a-rec-id-custom_ad_5 ++/zcvisitor/* ++##.main-ad ++##.ads-right ++||soft-com.biz^ ++/ads1. ++/ad3.$domain=~ad3.eu|~vereinslinie.de ++||decide.dev^ ++###ad_rightslot ++||clrstm.com^ ++||yceml.net^ ++bing.com##a[href*="/aclick?ld="] ++||trustedcpmrevenue.com^ ++##.side-ad ++##.advertisement-block ++||72d77336c1.com^ ++/Google-Ads- ++##.ad_hover_href ++##.iframe-ads ++##.ad-mobile-dynamic ++##.adboxcontent ++###ad-bottom ++/advertpro/* ++||figuredcurrantcroak.com^ ++||lkojioq.org.^$popup ++###rowAdv ++##.photoad ++||d2fbvay81k4ji3.cloudfront.net^ ++/media/ad/* ++/pubfig.min.js ++##.adCreative ++||wolfermissies.com^ ++##.region-ad-top ++||festivefranchisetorrent.com^ ++msn.com##.nativeadserversidecontentmodule ++tvtropes.org##.atf_banner ++genius.com##div[class^="LeaderboardOrMarquee__"] ++||img-cdn.hltv.org/partnerimage/$image ++##.dfp-tag-wrapper ++||intersc.igaming-service.io^$domain=hltv.org ++||jwpcdn.com/player/plugins/bidding/ ++###connatix ++||3adae883b0.com^ ++###right-ad ++sonichits.com###right-ad ++||mm-syringe.com^ ++||playtem.com^$third-party ++genius.com##div[class^="DfpAd__Container-"] ++||prbtqjujwzwepv.com^ ++/smartad.$domain=~smartad.ai ++||track.effiliation.com^$image,script ++##.wrap-ad ++##.advertismentContainer ++/adsmanager/*$domain=~github.com ++##.ad_wrapper ++_160x600. ++||hentaigold.net^$third-party ++||udinugoo.com^ ++##.ad--leaderboard ++||thaudray.com^$popup ++/media/ads/* ++@@||thepiratebay.org/*.php$csp,~third-party ++||insticator.com^$third-party ++||ad-srv.net^ ++||benoopto.com^ ++||rddywd.com^ ++||isboost.co.jp^ ++##a[href^="https://bongacams10.com/track?"] ++||smartclick.net^$third-party ++###div-insticator-ad-2 ++||coupdisturb.com^ ++||294e463a18.com^ ++/prebid-sdk. ++##.ads_div ++||greesaiz.net^ ++##.adActive ++twitter.com#?#div[data-testid="eventHero"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) ++||d2focgxak1cn74.cloudfront.net^ ++##.adFull ++##.ppr_priv_footer_banner_ad_billboard ++||got-to-be.com^ ++||onclickalgo.com^ ++||mcdotjezqozu.com^ ++||onclickperformance.com^ ++##.link_ad ++||wheeshoo.net^$popup ++||a96a79a34e.com^ ++##.sponsorad ++@@||apibay.org^$script,xmlhttprequest,domain=thepiratebay.org ++##.ads-content ++||patgsrv.com^ ++/in/show/?mid=$third-party ++||icelessbogles.com^ ++||proposedpartly.com^ ++##.proper-ad-insert ++##.google-ad ++||wteicogfeyhjk.com^ ++||adup-tech.com^$third-party ++out.com#@#div[id^="dfp-ad-"] ++||taaqhr6axacd2um.com^ ++##.ad-right2 ++audioholics.com,classy-online.jp#@#.side-ad ++@@||looker.com/api/internal/$~third-party ++||hczpeqgjq.com^ ++||trackpush.com^$third-party ++##.advert--leaderboard ++||traffic-media.co.uk^$third-party ++##.ads_container ++automotive-fleet.com,businessfleet.com,cfl.ca,fleetfinancials.com,forbesindia.com,government-fleet.com,howsecureismypassword.net,ncaa.com,schoolbusfleet.com##.top-banner ++jav.work##.top-banner ++###my-adsFPL ++||erenchinterried.pro^ ++||fittingcentermonday.com^$popup ++||advanseads.com^$third-party ++##a[href^="https://www.clicktraceclick.com/"] ++##.ad-contain ++##.ad-left-top ++||dlooqrhebkjoh.cloudfront.net^ ++##.ads-large ++##.c-advert ++/adweb.$domain=~adweb.clarkson.edu|~adweb.com.au|~adweb.cz|~adweb.pro ++||prfctmney.com^ ++##.advertBlock ++sportsclimax.com###top_banner ++##.ad.module ++||zebumpes.net^ ++||effectivedisplayformats.com^ ++/smartpop/*$popup ++flashscore.com,livescore.in###box-over-content-a ++||c3113b90b1.com^ ++msn.com##.dynamicRRWrapper ++||parkcircularpearl.com^$popup ++##.dfp-ad-container ++##.contentAd ++/ezoic/*$script,~third-party ++||sskmnews.pro^ ++badassbitch.pics###adv ++entrepreneur.com,interglot.com,pricespy.co.nz##.adbox ++||download-final-step.com^$popup ++||hacbfyvvsw.com^ ++.no/ads/ ++||quokkacheeks.com^ ++w3big.com,w3schools.com###mainLeaderboard ++##.ads-widget ++/service/ad/* ++marketwatch.com##.container--sponsored ++##.header-ad-wrapper ++||vmuid.com^ ++##.module_home_ads ++pornhub.com,pornhubpremium.com,redtube.com##a[href^="https://ads.trafficjunky.net/"] ++||jadeepso.net^ ++||vkcdnservice.com^ ++##.aside_ad ++##.ad-101 ++cnn.com##[data-zone-label="Paid Partner Content"] ++##.bottomad ++/smartadserver.$domain=~smartadserver.com|~smartadserver.com.br|~smartadserver.de|~smartadserver.es|~smartadserver.fr|~smartadserver.it|~smartadserver.pl|~smartadserver.ru ++atalayar.com,express.co.uk,msn.com##.superbanner ++simply-hentai.com##.superbanner ++##.showAd ++##.item-advertising ++||hotstar.com^*/preroll? ++||dev2pub.com^$third-party ++||zrljkhcwhxhh.com^ ++##.rightrail-ad-placed ++/ad_banner. ++##.AdSlot ++/forum/ads/* ++##.ad-bottom ++||mediaf.media^ ++||d3t16rotvvsanj.cloudfront.net^ ++##.sponsored-title ++/img/ad_$domain=~kazi.co.jp|~rakuten.co.jp ++##.container-ads ++afrsmartinvestor.com.au,afternoondc.in,allmovie.com,allmusic.com,brw.com.au,cio.co.ke,gq.co.za,ocregister.com,online-convert.com,orangecounty.com,premier.org.uk,premierchristianity.com,premierchristianradio.com,premiergospel.org.uk,radio.com,sidereel.com,themonthly.com.au,yourdictionary.com##.advertising ++fetishshrine.com,sleazyneasy.com##.advertising ++aliexpress.com##a[href*="aliexpress.com/item/"][href*="&aem_p4p_detail="] ++##.ad-responsive ++marca.com#@#.content-ad ++##.strawberry-ads ++##.article-inline-ad ++||supplyframe.com^$third-party ++||lifearchaicwhipped.com^ ++tumblr.com##.njwip ++##.ad-121 ++iamgujarat.com,indiatimes.com,samayam.com,vijaykarnataka.com##.colombia ++@@||amazon-adsystem.com/aax2/apstag.js$script,domain=abola.pt|los40.com ++/js/m/i-def.js ++||tootseloin.com^ ++||propellerclick.com^ ++||agaenteitor.com^ ++/adsense-$domain=~www.google.com ++||onmarshtompor.com^ ++###ad-standard-wrap ++@@||at.adtech.redventures.io/lib/dist/$script,domain=gamespot.com|giantbomb.com|metacritic.com ++##.ad-div ++##.ad-300x600 ++##.header-and-footer--banner-ad ++||sordorcourtin.com^ ++##.googleAds ++/adBanner? ++###header_ad ++##.td-a-rec-id-custom_ad_4 ++||nakamasweb.com^ ++/adblock-detector. ++||voicegiddiness.com^ ++||awscloudfront.ml^ ++###taboola-right-rail ++/video_ads/* ++##.ad-standard ++||onclicksuper.com^ ++##a[href^="https://affcpatrk.com/"] ++/ad/jsonp/* ++##.ad-spacer ++/adscbg/* ++##.pm-ads-banner ++/overture.$script,stylesheet,domain=~overture.doremus.org|~overture.london|~overture.plus ++##.rr-ad ++||zyf03k.xyz^ ++##.topbannerAd ++||ptainses.com^ ++||viyuzi.xyz^ ++@@||commons.wikimedia.org/w/api.php?$~third-party,xmlhttprequest ++###dfp-interstitial ++##.horizontal_ads ++||sitewithg.com^ ++yahoo.com##div[class*="ads-"] ++###adPlacement_1 ++_gpt_ads. ++###bt-ad-header ++||ruogesfshygsj.com^ ++speedtest.net##.top-placeholder ++##.movv-ad ++##.ads-row ++###top_ad ++||yajlpetccbodq.com^ ++###AD_G ++##.sraAdvert ++pastemagazine.com,theonion.com##.dfp ++||cloudlogobox.com^ ++##.discourse-adplugin ++###leftrail_dynamic_ad_wrapper ++wsj.com###coupon-links ++##.lite-page-ad ++##.advrst ++##.ad_right ++||adsafety.net^ ++speedtest.net##.pure-u-custom-ad-rectangle ++speedtest.net##.pure-u-custom-ad-skyscraper ++###ad_leftslot ++||doublemax.net^ ++||greatdexchange.com^$popup ++##.adlinks ++poki.com##div[class^="Advertisement_"] ++##.ads-left ++||aigaithojo.com^ ++||starkshrewd.com^ ++||nativespot.com^$third-party ++hltv.org##.middle-container ++||opoxv.com^ ++ginx.tv,op.gg##.vm-placement ++||f250b19813.com^ ++||sluiceliable.com^ ++_advertise. ++youtube.com##YTM-PROMOTED-VIDEO-RENDERER ++/adview.$domain=~adview.mu|~adview.mx|~adview.online|~adview.su ++##.ads-top ++@@||optout.networkadvertising.org^$document ++##.ad-overlay ++||startpage.com/sp/adsense/ ++##.side-ads-container ++###bottomad ++_760x100. ++||louchees.net^ ++##.ad-flex ++||d2kd9y1bp4zc6.cloudfront.net^ ++##[class^="s2nPlayer"] ++msn.com##.sameoab_ad_container ++###dfp_leaderboard ++cd1025.com,centos.org,domainincite.com,europages.co.uk,gamingcloud.com,ijr.com,kpbs.org,phillyvoice.com,phish.report,speedcafe.com,thefederalistpapers.org,thegatewaypundit.com,ufile.io,westernjournal.com,wnd.com##.sponsor ++18porn.sex,amateur8.com,anyporn.com,bigtitslust.com,eachporn.com,fapster.xxx,fpo.xxx,freeporn8.com,pervertslut.com,porngem.com,porntop.com,sexpornimages.com,sexvid.xxx,sortporn.com,xhamster.com##.sponsor ++||f1721037a5.com^ ++||bf-ad.net^ ++##.td-a-ad ++###adPlacement_2 ++##.ad_left ++.ie/ads/ ++###adPlacement_3 ++||exoclick.com^$popup ++##.banner-300x250 ++@@||getjad.io/library/$script,domain=allocine.fr ++/header-ad. ++||exmarketplace.com^$third-party ++_ad2. ++||adstudio.cloud^$third-party ++##.ad-mrec ++express.co.uk##.ayl-native ++###adform_leaderboard ++||dipobeds.com^ ++###wrapper-AD_PUSH ++##.ad-banner-top ++||e8c09b34de.com^ ++||mixi.media^$third-party ++||djv99sxoqpv11.cloudfront.net^ ++##.idGoogleAdsense ++/js3caf.js ++###adPlacement_4 ++||sedoparking.com^$third-party ++###adcontainer ++-display-ads. ++dailymail.co.uk##.mol-fe-vouchercodes-redesign ++||speechfountaindigestion.com^ ++##.horizontalAd ++||tyiqebrbpxc.com^ ++##a[href^="https://ttf.trmobc.com/"] ++/arcads.js ++##.adTip ++##.admz ++##.ads-core-placer ++##.section_ad ++||tubecorp.com^ ++@@||grapeshot.co.uk/main/channels.cgi$script,domain=telegraph.co.uk ++##.sticky-ads ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-a-carousel-options*="\\\"isSponsoredProduct\\\":\\\"true\\\""] ++||clickcertain.com^$third-party ++.eu/ads/$domain=~scutt.eu ++##.primis-player ++||0c257610de.com^ ++/adfooter. ++##.mobile-ad-container ++||gvt2.com^ ++||bzwdksdngjhay.com^ ++##.contentad ++||deformconversionorthodox.com^ ++##.adv-container ++kissjav.com##.adv-container ++||ksdlzcmvmj.com^ ++##.ad-2 ++/^https?:\/\/.*\.(club|news|live|online|store|tech|guru|cloud|bid|xyz|site|pro|info|online|icu|monster|buzz|fun|website|photos|re|casa|top|today|space|network|live|work|systems|ml|world|life)\/.*/$domain=1vag.com|4tube.com|asianpornmovies.com|getsex.xxx|glam0ur.com|hclips.com|hdzog.com|homemadevids.org|hotmovs.com|milfzr.com|porn555.com|pornforrelax.com|pornj.com|pornl.com|puporn.com|see.xxx|shemalez.com|sss.xxx|streanplay.cc|thegay.com|thegay.porn|tits-guru.com|tubepornclassic.com|tuberel.com|txxx.com|txxx.tube|upornia.com|vjav.com|voyeurhit.com|xozilla.com ++##.gnt_tbr.gnt_tb ++##.ads_box ++##.googleAd300x250 ++18porn.sex,4kporn.xxx,amateurporn.me,bigtitslust.com,daporn.com,fpo.xxx,freeporn8.com,fuqer.com,gayck.com,hentai-moon.com,heroero.com,intporn.com,japaneseporn.xxx,mrdeepfakes.com,pornchimp.com,porndr.com,pornwild.com,rare-videos.net,sortporn.com,tabootube.xxx,watchmygf.xxx,xcavy.com,xgroovy.com,xxxshake.com##.table ++||8d26e3a7f3.com^ ++||adnmore.co.kr^$third-party ++##.ad-1 ++##.reklam ++##.ads-item ++##.google_ad ++###content-ad ++||verblife-5.co^ ++##.m-header-ad ++fextralife.com###content-add-a ++||adsco.re^$popup ++##.pmc-adm-boomerang-pub-div ++/ads?object_ ++||momentcleanpitch.com^ ++geeksforgeeks.org,weekender.com.sg###text-17 ++bbc.com##section[data-e2e="advertisement"] ++||aimatch.com^ ++||newsokos.com^ ++||adhitzads.com^$third-party ++##a[href^="https://claring-loccelkin.com/"] ++||cdngain.com^ ++youtube.com##ytd-single-option-survey-renderer ++webmd.com##.module-f-hs ++/ad-refresh. ++##.full-bleed-ad ++||prtrackings.com^ ++||tsyndicate.com^$popup ++/api/v1/ad/* ++||zikroarg.com^$popup ++||earnbearerelectricity.com^ ++express.co.uk##div[id^="taboola-"] ++/ads_check. ++||paid.outbrain.com^ ++##.google_ads ++||9purdfe9xg.com^ ++||awrfds3.pornpapa.com^ ++##.nativeadasideplaceholder ++||content-ad.net^ ++||ubbfpm.com^ ++###floating_ads_bottom_textcss_container ++##.ad-hint ++##.vf-promo-gtag ++##.ad-interstitial ++/adrotate/* ++||hetaruwg.com^$popup ++##.mobile-ads ++||akutapro.com^ ++###bgad ++@@||gelbooru.com^$generichide ++||adbox.lv^ ++###AdSense2 ++bbc.com#?##sticky-mpu:-abp-has(.dotcom-ad-inner) ++||adsturn.com^$third-party ++##.GoogleDfpAd ++##.cnc-ads ++||2085145ac8.com^ ++||fb3aace890.com^ ++||wboptim.online^ ++||multicsmorrice.com^ ++###bottom-ads-container ++/newads. ++||dispbaktun.com^ ++||bonad.io^ ++###ad_contentslot_1 ++##a[href^="https://prf.hn/click/"][href*="/camref:"] > img ++##.adSlotCnt ++##a[href*=".zlink9.com/"] ++||reariikosin.com^ ++##a[href^="https://serve.awmdelivery.com/"] ++###wrapper-AD_G ++.ec/ads/ ++||effectivecpmcontent.com^ ++geeksforgeeks.org###text-15 ++###ad-text ++||d2bxxk33t58v29.cloudfront.net^ ++##.insertad ++||pssy.xyz^ ++||znqip.org.^$popup ++||stickyadstv.com^ ++||stickyadstv.com^$domain=spiegel.de ++##.small-ad ++||goosebomb.com^$popup ++||mobfox.com^$third-party ++##.gnt_tb.gnt_tbb ++huffingtonpost.co.uk,huffpost.com##.leaderboard-flex-placeholder ++||offfurreton.com^ ++badjojo.com,boysfood.com,definebabe.com,efukt.com,fantasti.cc,girlsofdesire.org,imagepix.org,javfor.me,pornxs.com,shemaletubevideos.com,therealpornwikileaks.com,yea.xxx##a[href*=".php"] ++||adserving.unibet.com^ ++##.leaderAdvert ++||investing.com/jp.php ++bloomberg.com#@#.page-ad ++##.adv-holder ++||adpnut.com^$third-party ++/prebid1. ++##.tnt-ads-container ++?ad_ids= ++||prolatecyclus.com^ ++||rdtk.io^$popup ++||detectivescollations.com^ ++||ozobsaib.com^ ++||surfe.pro^$third-party ++###reklama ++##.rectangleAd ++electronicshub.org,geeksforgeeks.org,thesurvivalistblog.net###text-16 ++ebay.co.uk,ebay.com,ebay.com.au#?#.mfe-lex:-abp-has(h2:-abp-contains(sponsored)) ++/adchoices_ ++||fcouvtlwzocok.com^ ++###adPlacement_8 ++buzzfeed.com##.js-bfa-impression ++||ytmp3.cc/js/inner.js ++||dogiedimepupae.com^ ++##.interstitial-ad ++/adtracker/* ++||robescampus.com^ ++dbook.docomo.ne.jp#@#.ad-label ++##.l-grid--ad-card ++##.stickyAd ++||d3v3bqdndm4erx.cloudfront.net^ ++||188cc81551.com^ ++||7f403e402a.com^ ++##.belt-ad ++_160x600_ ++e-hentai.org##.itd[colspan="4"] ++###ads-outer ++##.m-in-content-ad-row ++##.ad--top ++##.block-dfp ++||innity.com^$third-party ++/iqadcontroller. ++||tfla.xyz^ ++###ads-superBanner ++||toglooman.com^ ++###adPlacement_7 ++||ckwlurries.com^ ++##.verticalAdText ++##.billboard-ad ++||aj1616.online^ ++##.right-side-ad ++##.p-ad ++##a[href^="https://aj1070.online/"] ++###advTop ++/ad_loader. ++##.homeAd2 ++##.advertising-container-top ++##.subnav-ad-layout ++##.dfp-space ++###ads-billboard ++||qualitydestructionhouse.com^ ++||ynet.co.il/gpt/ ++##.ad.item ++||unkemptscance.com^ ++||c52bc36a22.com^ ++.com/ad? ++##.GoogleDfpAd-Content ++||2020mustang.com^ ++##.mpu-left-bk ++||openx.net^ ++@@||www.facebook.com/ads/$generichide ++##.adFrame ++##.adholder ++##.ads-title ++##.advert-wrap ++||parachuteeffectedotter.com^$popup ++||adnico.jp^$third-party ++##.ad.rectangle ++||photevifa.pro^ ++||swoop.com^$third-party ++##.ads-cnt ++||wmzrmmlgqe.com^ ++##.img_ad ++gismeteo.com##.placeholder ++||possoacu.com^ ++/ads.gif ++||rbthre.work^ ++||josephinegrey.com^ ++##.advertisingFooterXL ++##.adv300x100 ++txxx.com##.mpululuoopp ++###ad-block ++##.short-sidebar-ad-bottom ++##.short-sidebar-ad-component ++##.m-in-content-ad ++##.literatumAd ++||campongprecant.com^ ++@@||mirror.co.uk^*/prebid-test.js$script,~third-party ++/adblock_detector. ++msn.com##div[class^="galleryPage_bannerAd"] ++##.center_ad ++nypost.com##.widget_nypost_dfp_ad_widget ++/?l=*&s=*&mprtr=$~third-party,xmlhttprequest ++##.sticky-rail-ad-container ++nexusmods.com##.agroup ++@@||ads.google.com^$domain=analytics.google.com ++##.ads-leaderboard ++##.ad-right ++###adunit ++||eiasninancu.com^ ++||vilereasoning.com^ ++##.ad_label ++##a[href^="https://www.iyalc.com/"] ++boards.net,mtaeta.info,notbanksyforum.com,pimpandhost.com,realgearonline.com,repairalmostanything.com,timeanddate.com,wordhippo.com,wordreference.com###ad1 ++##.ad-callout ++##.advertisment ++||cdnads.com^ ++||spotlesscaterer.com^ ++/468x60_ ++##.article-ads ++||jmrnews.pro^ ++##.ad-button ++@@||www.google.*/adsense/$~third-party,domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk ++/728x90/* ++||utzrtyfefawyuk.com^ ++##.mvp-ad-label ++##.banner-300x600 ++||coupdisturb.com^$popup ++txxx.com##.herrmhlmolu ++txxx.com##.polumlluluoopp ++cnbc.com##div[class^="TopBanner-"] ++||densgauche.com^ ++||grandsonreverendlawn.com^$popup ++||hotstar.com^*/midroll? ++||p.smartertravel.com^ ++/pagead? ++||bet365.com/favicon.ico$third-party ++##.ads-banner ++##.staticAd ++##.content-kuss-ads ++||jywigigu.com^ ++##.ads-module ++||aa9deed09e.com^ ++##.ad-caption ++##.ad__container ++||brainlyads.com^ ++||trmobc.com^ ++||stickssurelyhomesick.com^ ++###admputop ++##.hstpnetworkads ++||sb4you1.com^ ++##.sticky-footer-ad ++||ghhuqa.org^$popup ++##.m-balloon-header--ad ++/adsrv. ++##.ad-atf ++||srvpcn.com^$popup ++##.skyscraper-ad ++##.ad--wallpaper ++##.banner-468x60 ++||ngeoziadiyc4hi2e.com^ ++||gettraffnews.com^ ++||revenuenetwork.com^$popup ++##.site-header--sponsored ++||4484986022.com^ ++||cdrvrs.com^ ++||nursecompellingsmother.com^ ++||uptodatefinishconferenceroom.com^ ++###bottomads ++##.dfp-bottom ++###my-adsLREC2 ++##.brn-ads-mobile-container ++_ads.html ++/display-ads-$domain=~google.co.uk|~google.com|~google.com.au ++||vxmyrhmdf.com^ ++||fcxueeiwtqip.com^ ++||dalecta.com^ ++||predicamentdisconnect.com^$popup ++##.advertisement__label ++||prmtracking3.com^ ++||sleazyparliamentarybikini.com^ ++##.advertisementContainer ++||playbuzz.com/player/$script,third-party ++###adPlacement_9 ++##.advertSlot ++express.co.uk##.viafoura-standalone-mpu ++||onmarshtompor.com^$popup ++##.advert_container ++||rallynabdoomed.com^ ++||gelbooru.com^$csp=script-src 'self' '*' 'unsafe-inline' *.gstatic.com *.google.com *.googleapis.com *.bootstrapcdn.com ++/ad-loader. ++##.ads-bottom ++.advert.$domain=~advert.ae|~advert.io|~advert.ly|~advert.media|~advert.org.pl ++||effectivedisplaycontent.com^ ++||ackcdn.net^ ++||metabet.io/js/global.js ++.php?zone_id= ++||thepiratebay.$script,domain=pirateproxy.live|thehiddenbay.com|thepiratebay.org ++businessinsider.com,insider.com##.in-post-sticky ++##.ad-sky ++@@||oauth.vk.com/authorize? ++||waqool.com^ ++||rug4ma.com^ ++###AD_L ++||sedatecompulsiveout.com^ ++##.ad-inline ++||bcprm.com^ ++.tv/ads/ ++##.ad_placeholder ++/openx. ++##.video-side__adv_title ++||focusde.info^$third-party ++-advertorial. ++##.player-under-ad ++||5eff011dd5.com^ ++||fpofvdovrk.com^ ++||hostrydebowel.com^ ++||unloadpoetry.com^$popup ++||snailbodieshomesick.com^ ++##.ad-box-wrapper ++###ad_banner ++##zeus-ad ++##.adlink ++||pseekree.com^ ++||klifabepc.com^ ++##.google-right-ad ++/adcall? ++###bottom_ad_wrapper ++/pagead/ads? ++||beb2644a65.com^ ++##.scads-ad-placed ++###dfp-atf ++myflixer.to##.news-iframe ++##.ad-skyscraper ++##.isAd ++||b78645c7cc.com^ ++||ksznidltg.com^ ++/img/adv/* ++||moonicorn.network^ ++-native-ad. ++||phejouce.com^ ++||tfosrv.com^ ++||fuse-cloud.com^$popup ++||feed-xml.com^ ++###mgid-container ++||thaiguxu.com^ ++/gptprebidnative/* ++###ads4 ++||efe3e01295.com^ ++||unclubfounte.com^ ++||faithcollarhook.com^ ++###gStickyAd ++||tqlkg.com^ ++###AdSense3 ++||de1cb9e4b1.com^ ++||leadinghunch.com^ ++##.item-ad ++||vuwmxjusucnh.com^ ++webmd.com###ContentPane40 ++/jquery.adx. ++yahoo.com##.Feedback ++##.ad-frame ++-load-ads. ++###top_ad_wrapper ++###taboola-right-rail-express ++historydaily.org,israelnationalnews.com,news12.com,pwinsider.com,usahealthcareguide.com##.banner-top ++##.player_ad_box ++||jejunaoutfold.com^ ++||networkad.net^$third-party ++##.player_ad2 ++||moneymakercdn.com^ ++##.taboola-above-article ++||imagetwist.com/b9ng.js ++###ad-vip-article ++||zog.link^ ++||pubpowerplatform.io^ ++/advertisement-$~script,domain=~berlin-airport.de ++###banner-skyscraper ++##.full-adv ++##.text_adv ++##.widget_thesun_dfp_ad_widget ++||ap-srv.net^ ++||siegepolitical.com^ ++||onclickperformance.com^$popup ++||howtogeek.com/emv2/ ++||adobe.com/td_redirect.html$popup ++##.BoxRail-ad ++accuweather.com,iconeye.com,phonescoop.com###top ++##.placeholderAd ++drtuber.com,iceporn.com,nuvid.com,proporn.com,viptube.com,winporn.com##.drt-spot-box ++imdb.com###top_rhs ++||lengthcalk.com^ ++###adv_center ++###ads-before-content ++cuntest.net###banners ++/adservices. ++||exileinstinct.com^$popup ++||pxfindtwo.com^$popup ++##.player_ad ++||glirsoss.com^ ++.gif?ad= ++||ruamupr.com^ ++||dolphincdn.xyz^ ++##.player_hover_ad ++||adnet.lt^$third-party ++##.side-ads_sticky-group ++##.ad_header ++##.horizontal-ad ++##.sponsor-ads ++###premiumAdTop ++##.advertisement-text ++||zeikvvbobop.com^ ++###rightad ++##.BottomAdsPartial ++||addresseetransportationsyndrome.com^ ++||oovofcsyxayy.com^ ++||cdxewmikygmku.com^ ++||wasoffspring.com^ ++||reichelcormier.bid^ ++##.advert-leaderboard ++.at/ads/ ++##.connatix-wrapper ++##.speakol-widget ++###dfp-mtf ++##.widget_adace_ads_widget ++##.ad-halfpage ++##.playerAd ++##.header_ad ++##.overlay-ad-container ++||watchingthat.net^ ++||maibaume.com^ ++###ad_global_above_footer ++###overlay_ad ++##.ads_top ++/afs/ads/* ++||cricbuzz.com/api/adverts/ ++/ad-overlay- ++||jomtingi.net^$popup ++##.right-video-dvertisement ++##.side-ads ++||whilefitsaltered.com^ ++/gtm.js?$popup ++||3688e59262.com^ ++||bpmmqbtstmbf.com^ ++pcgamer.com,tomsguide.com,tomshardware.com##div[class*="ad-unit"] ++##.ad-links ++||smac-ad.com^$third-party ++daftsex.com,pornhub.com,pornhubpremium.com,pstargif.com,spankbang.com,sxyprn.com,tube8.com,tube8vip.com,xozilla.com,xxxymovies.com##a[href*="?ats="] ++||d2c4ylitp1qu24.cloudfront.net^ ++||districtm.ca^ ++##.stickyadv ++||gadgets360.com/pricee/assets/affiliate/ ++||encloseddealing.com^ ++||d26adrx9c3n0mq.cloudfront.net^ ++##.cafemedia-ad-slot-top ++||vihub.ru^ ++##.artAd ++@@||thefreedictionary.com^$generichide ++||barbelskerugma.com^ ++||tzegilo.com^ ++cnbc.com##.TopBanner-container ++upornia.com,upornia.tube##.wssvkvkyyee ++||video-ads.a2z.com^ ++ign.com##.wiki-bobble ++###halfpagead ++##.adText ++##.adRenderer ++||tightendescendantcuddle.com^ ++||alright.network^$third-party ++||go.bloxplay.com^ ++##.ad-loaded ++##.ad-margin ++##.index-content-ad-wrapper ++||faa39957a3.com^ ++||dyj8pbcnat4xv.cloudfront.net^ ++##.searchResultAd ++##.ad-masthead ++||murkilyergots.com^ ++||broadstreetads.com^$third-party ++||injusticeamend.com^ ++researchgate.net##.lite-page__above ++##.cafemedia-ad-slot-right1 ++##.ads_header ++##.top-ad-wrapper ++###wpladbox1 ++###ad-holder ++###ad_top ++###leaderboard-ad ++##amp-embed[type="taboola"] ++##.ad_block ++###sidebar-ad ++||agle21xe2anfddirite.com^ ++##.bannerad ++||admedia.com^$third-party ++##.TopAdsPartial ++##.tnt-ads ++###adslot300x250BTF ++##div[class^="kiwi-ad-wrapper"] ++||01d0c91c0d.com^ ++||mxdztgstli.com^ ++###ad_1 ++##.general_banner_ad ++##.ad-inner ++||admitad.com^$third-party ++||bmcdn2.com^ ++##.ad300x250 ++||in-appadvertising.com^ ++##.legion_primiswrapper ++||kozuyzcciaygg.com^ ++##.c-adSkyBox ++##.ads-system ++##.htl-ad ++/oncc-ad. ++upornia.com,upornia.tube##.eveeecsvsecwvscceee ++upornia.com,upornia.tube##.wcccswvsyvk ++/ad6. ++98online.com,airgunshooting.co.uk,airmalta.com,allghananews.com,anews.com.tr,angliaafloat.co.uk,arabianindustry.com,barkinganddagenhampost.co.uk,becclesandbungayjournal.co.uk,blogto.com,burymercury.co.uk,cambstimes.co.uk,canalboat.co.uk,cardealermagazine.co.uk,caribbeancinemas.com,completefrance.com,countrysmallholding.com,crimemagazine.com,dailyedge.ie,derehamtimes.co.uk,dissmercury.co.uk,dunmowbroadcast.co.uk,eadt.co.uk,eastlondonadvertiser.co.uk,economist.com,edp24.co.uk,ee.co.za,elystandard.co.uk,eos.org,etf.com,eveningnews24.co.uk,exmouthjournal.co.uk,fakenhamtimes.co.uk,farmprogress.com,football.co.uk,ft.com,games.co.uk,gamesgames.com,greatyarmouthmercury.co.uk,hackneygazette.co.uk,hamhigh.co.uk,hertsad.co.uk,huntspost.co.uk,icaew.com,ilfordrecorder.co.uk,iol.co.za,ipswichstar.co.uk,islingtongazette.co.uk,johnogroat-journal.co.uk,kentonline.co.uk,lgr.co.uk,lowestoftjournal.co.uk,maltapark.com,midweekherald.co.uk,momjunction.com,morningstar.co.uk,mousebreaker.com,newhamrecorder.co.uk,newstalkzb.co.nz,northdevongazette.co.uk,northnorfolknews.co.uk,northsomersettimes.co.uk,pilotweb.aero,pinkun.com,proxcskiing.com,raidforums.com,romfordrecorder.co.uk,royston-crow.co.uk,saffronwaldenreporter.co.uk,sidmouthherald.co.uk,sportingshooter.co.uk,sportspromedia.com,stamfordmercury.co.uk,stowmarketmercury.co.uk,sudburymercury.co.uk,tbivision.com,the42.ie,thecomet.net,thejournal.ie,theneweuropean.co.uk,thewestonmercury.co.uk,trucksplanet.com,videogamer.com,waploaded.com,wattonandswaffhamtimes.co.uk,whtimes.co.uk,wisbechstandard.co.uk,wymondhamandattleboroughmercury.co.uk,yourchickens.co.uk##.advert ++hungangels.com##.advert ++aptoslife.com,bohemian.com,constructionreviewonline.com,cyberparse.co.uk,eastbayexpress.com,eindhovennews.com,ericpetersautos.com,fenuxe.com,gameplayinside.com,gamezone.com,gilroydispatch.com,gizmochina.com,goodtimes.sc,greekreporter.com,greenfieldnews.com,healdsburgtribune.com,indianapolisrecorder.com,industryhit.com,kenyan-post.com,kingcityrustler.com,maltabusinessweekly.com,metrosiliconvalley.com,morganhilltimes.com,musictech.net,nasilemaktech.com,newsnext.live,nme.com,pacificsun.com,pajaronian.com,pakobserver.net,pipanews.com,pressbanner.com,radioink.com,salinasvalleytribune.com,sanbenito.com,sonorannews.com,telugubullet.com,theindependent.co.zw,wrestling-online.com##.td-a-rec ++_ad_position_ ++?adCount=$~xmlhttprequest ++###dfp-btf ++hltv.org##.kN5UQvcU ++##.hide-ad ++f95zone.to,pornhub.com,spankbang.com##a[href^="http://ads.trafficjunky.net/"] ++##.ad_background_true ++##div[data-role="sidebarAd"] ++||revenuenetwork.com^ ++@@||yimg.jp/images/news-web/all/images/jsonld_image_300x250.png$domain=news.yahoo.co.jp ++##.BottomAd-container ++telegraph.co.uk##.commercial-unit ++||eb3c3aac94.com^ ++||tczzzlwpss.com^$popup ++##[data-dynamic-ads] ++||wowhofoo.com^ ++||pop5sjhspear.com^ ++##.adv-header ++/adcheck. ++##.ads-label ++letterboxd.com##.upgrade-kicker ++##.Gallery-Content-BottomAd ++||cathodecreped.com^ ++||yieldrealistic.com^ ++##.ad-137 ++##.ads_banner ++###ad728x90 ++||hadsimz.com^ ++##.player_page_ad_box ++##.hidead ++###ad-top ++.html?clicktag= ++###adm-inline-article-ad-2 ++###adwallpaper ++||griksoud.net^ ++/adsjs/* ++###top-ads-container ++||mscoldness.com^ ++||sponsorpay.com^ ++bloomberg.com,weatherpro.com##.leaderboard-wrapper ++||hostingcloud.racing^ ++||adsinstant.com^ ++||5pi13h3q.de^ ++||bg4nxu2u5t.com^ ++||cdncontentstorage.com^ ++@@||fastmail.com^$generichide ++##.td-ad-m ++://ads.$popup ++/show_ad. ++||chipmanksmochus.com^ ++##.adtitle ++||aldeaamputee.com^ ++||leisurejust.com^ ++##.ad-slot-top ++/affiliate.linker/* ++?category=ad& ++###adslot300x250ATF ++##.ad-970-90 ++##.view-ad ++||kubiadserv.icu^ ++||7d0feff074.com^ ++||animesuge.to/E/aircraftmighty.com/ ++lightnovelpub.com##.lnadcontainer ++||phortaub.com^ ++##.widget_adv_text ++##.ads-list ++||300daytravel.com^ ++##.js-ad-container ++##.ad-bot ++###rightads ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Promocionado por"]) ++##.video_ad ++##.stickyRailAd ++##.ads-mobile ++###ads2 ++||bustle.com^*/prebid- ++||ads4g.pl^ ++memytutaj.pl#@##top-ad ++||519e29cfed.com^ ++||condolencessumcomics.com^ ++||koalaups.com^ ++###advert-article ++||ptutchiz.com^ ++||cfbwxgsa.com^ ++##.billboard_ad ++exchangerates.org.uk###ad3 ++||ezmob.com^$third-party ++||browsobsolete.com^ ++||platitudefivesnack.com^ ++||realvu.net^ ++||byfoongusor.com^ ++##.adv-text ++/adengine. ++###ad-box ++||ca4psell23a4bur.com^ ++||pclk.name^ ++##.taboola-widget ++||vivaclix.com^$third-party ++##.colombiaAd ++||yieldscale.com^ ++##.single__outbrain ++##.player-ads ++##.glacier-ad ++||a4fbb.xyz^ ++##.ad_footer ++||0b07d5f0b1.com^ ++||uejwqbgtjxdw.com^ ++||laundryrespond.com^$popup ++###topAd ++##.ad-widget-wrapper ++###ad_overlay ++/prebid-js- ++##.advert-container ++##.ad-921 ++||goosebomb.com^ ++###ad-0 ++/gpt.min.js ++||ulourgaz.net^ ++/data/ads/* ++###AdsContent ++_728_90. ++||rndhaunteran.com^ ++||genialsleptworldwide.com^ ++-ad.jpg? ++##.ad-bigbox ++##.ad_300_600 ++##.ads__horizontal ++@@||ad.doubleclick.net/ddm/clk/*http$popup ++/banners/728 ++##.ad-result ++||kta.etherscan.com^ ++###sky-left ++||tracot.com^ ++##.ad-entity-container ++||cadlsyndicate.com^$popup ++||webmadeblog.com^ ++-ad-300x250. ++/propellerads.$domain=~propellerads.com ++||citrusad.com^$third-party ++_adtech_ ++||hiwoshote.pro^ ++||anymoresentencevirgin.com^$popup ++###ad-300 ++hltv.org##.featured-matches-top-matches-container ++||saptiledispatch.com^ ++###ad_2 ++###wpladbox2 ++/ads/www/* ++||replacementportugueserecollection.com^ ++##.sponsored-ad-container ++##.ad-ex ++||eyebrowscrambledlater.com^ ++###adtext ++###Adbanner ++##.top-ads ++##.bottom_ad ++##.ad-no-css ++###advert-leaderboard ++###my-adsFPT ++##.placeholder-ad ++||mm-cgnews.com^ ++###ad-slot ++||desipearl.com^$third-party ++dailymail.co.uk,thisismoney.co.uk##.watermark ++||domdex.com^ ++/banner.engine? ++||sixthpriodon.com^ ++##.ad-detail ++###mpu_top ++||preurllvrbrvng.com^ ++||adfpoint.com^$popup ++||dvgigmhdhwtvb.com^ ++##.grid__module-sizer_name_taboola ++||dkre4lyk6a9bt.cloudfront.net^ ++ok.porn,ok.xxx,oldmaturemilf.com,pornhat.com##.bns-bl ++||jouteetu.net^ ++##.ad-wireframe ++##.story-ad +###advert-article-1 +###advert-article-2 +###advert-article-3 -+###ads3 -+##.billboard_ad -+/ezoic/*$script,~third-party -+##.ad-w-728 -+###my-adsFPL -+###ads2 -+||d2fbvay81k4ji3.cloudfront.net^ -+yts.mx##.aoiwjs -+||bypathaivr.com^ -+||udinugoo.com^ -+##[href^="http://misslinkvocation.com/"] -+##.vce-ad-container -+##.footer_adv -+##.banner300 -+##.ad-single-bottom -+###AD_G -+##.sraAdvert -+||mhvllvgrefplg.com^ -+##.td-ad -+||awrfds3.pornpapa.com^ -+||awin1.com/cshow.php$third-party -+||video-streaming.ezoic.com^ -+###leaderboard-ad -+||preposterousdecidedfollowing.com^ -+/google_ad. -+##.movv-ad -+##.staticAd -+##.ad-leader -+###bt-ad-header -+-adsscript. -+||benoopto.com^ -+##.dfp-space -+_160x600. -+||korgiejoinyou.com^ -+||scanscout.com^$third-party -+redtube.com###popsByTrafficJunky -+||mediaf.media^ -+##.ad-risingstar-container -+##.advertisement__label -+||traffic-media.co.uk^$third-party -+||sippingsunned.com^ -+||vogulprecast.com^$popup -+##.td-ad-p -+||jadeepso.net^ -+express.co.uk,msn.com##.superbanner -+simply-hentai.com##.superbanner -+##.advertising-container-top -+_300x250- -+||bmcdn2.com^ -+||d1zw85ny9dtn37.cloudfront.net^ -+##.stickyAd -+||trk-consulatu.com^ -+98fm.com,audioreview.com,barrheadnews.com,bobfm.co.uk,bordertelegraph.com,cultofandroid.com,dcsuk.info,directory.im,directory247.co.uk,dplay.com,dumbartonreporter.co.uk,dunfermlinepress.com,durhamtimes.co.uk,eastlothiancourier.com,econsultancy.com,eurogamer.net,findanyfilm.com,forzaitalianfootball.com,gamesindustry.biz,her.ie,herfamily.ie,joe.co.uk,joe.ie,kentonline.co.uk,metoffice.gov.uk,mumsnet.com,musicradio.com,newburyandthatchamchronicle.co.uk,newscientist.com,readamericanfootball.com,readarsenal.com,readastonvilla.com,readbasketball.com,readbetting.com,readbournemouth.com,readboxing.com,readbrighton.com,readbundesliga.com,readburnley.com,readcars.co,readceltic.com,readchampionship.com,readchelsea.com,readcricket.com,readcrystalpalace.com,readeverton.com,readeverything.co,readfashion.co,readfilm.co,readfood.co,readfootball.co,readgaming.co,readgolf.com,readhorseracing.com,readhuddersfield.com,readhull.com,readingchronicle.co.uk,readinternationalfootball.com,readlaliga.com,readleicester.com,readliverpoolfc.com,readmancity.com,readmanutd.com,readmiddlesbrough.com,readmma.com,readmotorsport.com,readmusic.co,readnewcastle.com,readnorwich.com,readnottinghamforest.com,readolympics.com,readpl.com,readrangers.com,readrugbyunion.com,readseriea.com,readshowbiz.co,readsouthampton.com,readsport.co,readstoke.com,readsunderland.com,readswansea.com,readtech.co,readtennis.co,readtottenham.com,readtv.co,readussoccer.com,readwatford.com,readwestbrom.com,readwestham.com,readwsl.com,realradioxs.co.uk,redhillandreigatelife.co.uk,rochdaleonline.co.uk,rte.ie,sloughobserver.co.uk,smartertravel.com,southwestfarmer.co.uk,spin1038.com,spinsouthwest.com,sportsjoe.ie,sportsmole.co.uk,strathallantimes.co.uk,sundaypost.com,tcmuk.tv,thejournal.co.uk,thevillager.co.uk,thisisfutbol.com,toffeeweb.com,uktv.co.uk,videocelts.com,warringtonguardian.co.uk,wiltshirebusinessonline.co.uk,windsorobserver.co.uk,zdnet.com##.mpu -+ign.com##.wiki-bobble -+/adscbg/* -+##div[data-ad-targeting] -+||wmzrmmlgqe.com^ -+/adsense-$domain=~www.google.com -+##.ad-type-cube -+||bizmavosndi.com^ -+##div[data-before-content="advertisement"] -+pokeminers.com#@#.ad-container -+##.adRectangle -+##.ad-slot--container-inline -+||vasstycom.com^ -+||adkernel.com^$third-party -+##.ads-300x600 -+##.ad-137 -+||rdtk.io^ -+##.nativeadasideplaceholder -+.gif?ad= -+/adsrc. -+||patinesgaulin.com^ -+###ad-0 -+||trustedcpmrevenue.com^ -+##.header-ad-container -+/core-ads. -+||reukandthis.xyz^ -+##.ads-module -+##zeus-ad -+.no/ads/ -+##.exo-native-widget -+@@||spiegel.de^$genericblock,generichide -+##.hide-ad -+||cdngain.com^ -+||27f51e5610.com^ -+||thaiguxu.com^ -+||gondangwicopy.com^ -+##.ad-frame -+###adv-gpt-masthead-skin-container1 -+||streamjav.top/pBUKvw1.js -+||jejunaoutfold.com^ -+||ad-srv.net^ -+||doublemax.net^ -+##.mobile-ads -+walmart.com#?#li.items-center:-abp-has(div[data-ad-component-type="wpa-tile"]) -+##.ad-921 -+###article-ad -+##.ad-detail -+###story-ad-5-wrapper -+###ads-1 -+||runkleatemoya.com^ -+##.rightAd -+##.horizontal-ad -+||xlivrdr.com^$popup -+healthline.com##div.css-0 > div[class]:not([id]) -+##.region-ad-top -+||dev2pub.com^$third-party -+pastemagazine.com,theonion.com##.dfp -+||hotstar.com^*/preroll? -+||alterupholdcinema.com^ -+###admputop -+/adweb.$domain=~adweb.clarkson.edu|~adweb.com.au|~adweb.cz|~adweb.pro -+drtuber.com,thisvid.com,vivatube.com##.spots -+/banner/ad/* -+||d2bxxk33t58v29.cloudfront.net^ -+||st1net.com^ -+##.adSkyscraper -+##.banner-468x60 -+.net/ad2/$~xmlhttprequest -+||buikolered.com^$popup -+||samplerpouch.com^ -+##.home-ad -+||f270d8d863.com^ -+huffingtonpost.co.uk,huffpost.com##.leaderboard-flex-placeholder-desktop -+###wrapper-AD_G -+curseforge.com###cdm-zone-03 -+##.top-ad-wrapper -+/ad/top/* -+||startpage.com/sp/adsense/ -+##.short-sidebar-ad-bottom -+##.short-sidebar-ad-component -+||wboptim.online^ -+||instreamvideo.ru^$third-party -+||advanseads.com^$third-party -+||icelessbogles.com^ -+||networkad.net^$third-party -+.adsales. -+##.advertSlot -+##.afw_ad -+##a[href^="https://prf.hn/click/"][href*="/camref:"] > img -+redtube.com##svg -+||outbrain.com^$domain=bgr.com|buzzfeed.com|tvline.com -+###adcontainer1 -+/adcode/*$~image -+||jocowhab.com^ -+###oas_Top -+/arcads.js -+||byambipoman.com^ -+/pubfig.min.js -+/ad_banner. -+||lustresneakvisitation.com^ -+moomoo.io###adCard -+wsj.com###coupon-links -+||aimatch.com^ -+healthline.com##.css-umsscj -+||d2focgxak1cn74.cloudfront.net^ -+###adm-inline-article-ad-2 -+/ads.bundle. -+##.banner-300 -+||basfol.com^ -+||pulsiondamnous.com^ -+/iqadcontroller. -+##.side-ads-container -+||wonsegax.net^ -+||absoluteroute.com^ -+##.can_ad_slug -+##.adSlotCnt -+||adsturn.com^$third-party -+||owlerydominos.cam^ -+||bf-ad.net^ -+##.widget-ads -+##.ad-no-css -+###leftad -+##.index-content-ad-wrapper -+##.app-ad -+||effectivedisplaycontent.com^ -+##.advert-txt -+||2020mustang.com^ -+##.venatus-responsive-ad -+##.footer_ads -+byrdie.com,investopedia.com,verywellhealth.com##.mntl-leaderboard-spacer -+||products.gobankingrates.com^ -+||jumochechu.pro^ -+###adLeaderboard -+@@||streamlare.com^$subdocument -+##.cns-ads-stage -+||blocksly.org^ -+##.header-ad-wrapper -+||eiteribesshaints.com^$popup -+##.GRVAd -+##.ad-result -+||effectivecpmcontent.com^ -+||adup-tech.com^$third-party -+/adcheck. -+||djv99sxoqpv11.cloudfront.net^ -+||agaenteitor.com^ -+###adwallpaper -+##.sponsorAd -+||cirsepuh.net^ -+||nawyhinu.pro^ -+##.menu-ad -+-advertisement_ -+||realtime-bid.com^ -+buzzfeed.com##.js-bfa-impression -+###dfp-ad-top-wrapper -+||adsniper.ru^$third-party -+||semiglorifyseek.com^ -+/newads. -+||poodledopas.cam^ -+/?l=*&s=*&mprtr=$~third-party,xmlhttprequest -+###wrapper-AD_PUSH -+||dogiedimepupae.com^ -+||investing.com/jp.php -+##.google_ad -+igg-games.com##.uk-panel.widget-text -+###rowAdv -+###ad_4 -+@@||redventures.io/lib/dist/prod/bidbarrel-$script,domain=cnet.com|techrepublic.com|zdnet.com -+/ads_check. -+##.ad_background_true -+@@||patreonusercontent.com/*.gif?token-$image,domain=patreon.com -+##.ad_200 -+##.dfp-bottom -+##.ad_bottom -+||6f0a737559.com^ -+||disappointmentoutcrymexican.com^ -+||fittingcentermonday.com^$popup -+##.ads-desktop -+||adhitzads.com^$third-party -+huffingtonpost.co.uk,huffpost.com##.leaderboard-flex-placeholder -+/adzone. -+.ie/ads/ -+||jmrnews.pro^ -+##.adRenderer -+##.ads-widget -+||adsinstant.com^ -+theguardian.com##.js-top-banner -+##.ads-placment -+##DFP-AD -+||zomtanup.com^ -+##a[href^="https://go.xxxiijmp.com"] -+/smartad.$domain=~smartad.ai -+||isboost.co.jp^ -+/Google-Ads- -+/site_ads/* -+##.head-ads -+###adPlacement_8 -+||swoop.com^$third-party -+||dufai4b1ap33z.cloudfront.net^ -+||decide.dev^ -+/forum/ads/* -+##.connatix-container -+||lainaumi.com^ -+rumble.com##.a-break -+##.nativeAd -+porntrex.com###exclusive-link -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="dpx-sponsored-products-detail_csm_instrumentation_wrapper"] -+||prfctmney.com^ -+###adv-x40 -+##.ad-skyscraper -+||exoclick.com^$popup -+##.single__outbrain -+||cloudlogobox.com^ -+##.adclass -+##.product-ads-carousel -+ecosia.org##div[data-test-id="mainline-result-ad"] -+###adcontainer -+##.adv1 -+/pagead? -+###ad_3 -+||departenamelsociety.com^ -+||highperformancegate.com^$popup -+/ads?object_ -+##.taboola-widget -+||4f370501ac.com^ -+||rddywd.com^ -+||wanjul.com^ -+/ads_config. -+||anymoresentencevirgin.com^ -+##.side-ads_sticky-group -+/prebid1. -+youtube.com##.ytd-action-companion-ad-renderer -+##.mvp-widget-ad -+||optnx.com^$popup -+##.ad-sticky-wrapper -+###intro_ad_1 -+||3c92e2040f.com^ -+##.right-ads -+||tootseloin.com^ -+||nostromedia.com^ -+/prebid-js- -+||sedoparking.com^$third-party -+||d2kd9y1bp4zc6.cloudfront.net^ -+||smartclick.net^$third-party -+###ad_thread1_1 -+||ynet.co.il/gpt/ -+##.dfp-ad-unit -+###dfp-ad-bottom-wrapper -+||barleylatestinches.com^ -+||kaiwiciy.net^ -+||adadvisor.net^$third-party -+@@||amazon-adsystem.com/aax2/apstag.js$script,domain=abola.pt|los40.com -+##.adv300x250 -+asspoint.com,babepedia.com,babesandstars.com,blackhaloadultreviews.com,dbnaked.com,freeones.com,gfycatporn.com,javfor.me,mansurfer.com,newpornstarblogs.com,ok.porn,porn-star.com,porn.com,porndoe.com,pornhubpremium.com,pornstarchive.com,rogreviews.com,sexyandfunny.com,shemaletubevideos.com,spankbang.com,str8upgayporn.com,the-new-lagoon.com,tube8.com,wcareviews.com,xxxonxxx.com,youporn.com##a[href*=".com/track/"] -+###adjs_id -+||greesaiz.net^ -+##.placeholder-ad -+||wowhofoo.com^ -+||dalecta.com^ -+||pop5sjhspear.com^ -+||trafficmoose.com^ -+/^https?:\/\/(35|104)\.(\d){1,3}\.(\d){1,3}\.(\d){1,3}\//$popup,third-party -+##.body_ad -+##.ad-overlay -+###yandex_ad -+||adinc.kr^$third-party -+##.button-ad -+@@||getjad.io/library/$script,domain=allocine.fr ++##.ad_content ++||orqsvaxn.com^ ++##.banner300x250 ++novinite.com##.banner300x250 ++dofap.com##.banner300x250 ++##.ad-slider ++/textad.$domain=~textad.hu ++||massariuscdn.com^ ++||cdnads.geeksforgeeks.org^ ++###taboola-ad ++##.widget-advads-ad-widget ++yahoo.com##.gemini-ad-feedback ++/asyncspc. ++##.ad--button ++||ghhuqa.net^$popup ++=160x600, ++##.td-ad-tp +alexandriagazette.com,arlingtonconnection.com,burkeconnection.com,centre-view.com,connection-sports.com,fairfaxconnection.com,fairfaxstationconnection.com,forum.xda-developers.com,greatfallsconnection.com,herndonconnection.com,kusports.com,mcleanconnection.com,mountvernongazette.com,phonearena.com,potomacalmanac.com,reston-connection.com,springfieldconnection.com,union-bulletin.com,viennaconnection.com##.spot +3movs.xxx,bravotube.net,camvideos.tv,dixyporn.com,fetishshrine.com,hello.porn,katestube.com,pornicom.com,videocelebs.net,vjav.com##.spot -+||zeikvvbobop.com^ -+###side_ad -+###adslot300x250BTF -+##.gnt_x -+/adver.$domain=~adver.biz|~adver.by|~adver.live|~adver.media|~adver.vn -+/js3caf.js -+##.ad-slot--top-banner-ad-desktop -+||michealmoyite.com^ -+||bet365.com/favicon.ico$third-party -+##.sponsored-title -+.js?dfp= -+/adtracker/* -+##.ad_leader_bottom -+||offsethumorous.com^ -+-config/ads/ -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sp-shiptrack-desktop-carousel_desktop-yo-shiptrack_0"] -+##.ads1 -+##.banner_728x90 -+||upskittyan.com^ -+###ad_div -+apnews.com##div[class^="Component-adTitle-"] -+apnews.com##div[class^="Component-placeholderWrapper-"] -+##.related-ads -+##.googleSubjectAd -+||chasmypolloi.com^ -+##.sticky-ads -+##.ad-notice -+ancient.eu,fanatix.com,gamertweak.com,gematsu.com,tucsonsentinel.com,worldhistory.org##.adcontainer -+||ytmp3.cc/js/inner.js -+###topAdv -+##.button-ads -+||mixi.media^$third-party -+newsnow.co.uk##.js-banner-strip -+||voicegiddiness.com^ -+||hetaint.com^$popup -+##.ads-cnt -+##.adv-phone -+||10c20aedf4.com^ -+||wonderhsjnsd.com^ -+||rontent.pomvideo.cc^ -+=adView&$domain=~adview.online -+||runecrispin.com^ -+apnews.com##.Leaderboard -+##.exo-native-widget-outer-container -+##.ad970 -+||ilyf4amifh.com^ -+best-faucets.com,transfermarkt.co.uk,transfermarkt.com##.werbung -+||newsmaxfeednetwork.com^$third-party -+ok.porn,ok.xxx,oldmaturemilf.com,pornhat.com##.bns-bl -+ancient-origins.net,catholicculture.org,deadspin.com,electrek.co,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lewrockwell.com,lifehacker.com,ssbcrack.com,thetakeout.com##a[href^="https://www.amazon."][href*="tag="] -+||griksoud.net^ -+##.block-advert -+apps.opera.com,babynamegenie.com,ecaytrade.com,nbcbayarea.com,nwherald.com,planetsourcecode.com,sciagaj.org,themuslimvibe.com,totalxbox.com,varsity.com,w3techs.com,wgxa.tv##.promo -+perfectgirls.net,xnostars.com##.promo -+iamgujarat.com,indiatimes.com,samayam.com,vijaykarnataka.com##.colombia -+||ckwlurries.com^ -+##.article_ad -+||vivaclix.com^$third-party -+||bonad.io^ -+||mediaad.org^$third-party -+###adslot300x250ATF -+||whoutsiy.net^ -+###bottom-ads -+###adSkinRight -+##.wh_ad_inner -+###adSkinLeft -+||thaudray.com^$popup -+||erenchinterried.pro^ -+##.is-sponsored -+/media/ads/* -+_gpt_ads. -+##a[href^="http://cwcams.com/landing/click/"] -+###sidebar_ad -+###ad-slot-right -+_ads.html -+express.co.uk##.ayl-native -+||supplyframe.com^$third-party -+##.tm-ads -+||p.smartertravel.com^ -+||dispbaktun.com^ -+||bmcdn4.com^ -+###right_ad -+||netcatx.com^ -+howtogeek.com##div[style^="text-align: center; background-color:"] -+##.adwrap -+##.adtop -+dafont.com###sky -+##.adInner -+###aad-header-2 -+imagebam.com###aad-header-2 -+||optcrockery.com^ -+||hughester.com^ -+||ezijyfiq.xyz^ -+anime-planet.com##.halo -+||patgsrv.com^ -+||2ce506d192.com^ -+||clickcertain.com^$third-party -+?ad_ids= -+||hehighursoo.com^ -+||okayfreemanknot.com^ -+investing.com##.generalOverlay -+##.ads.widget -+biblegateway.com##.bga -+##.square_ad -+||retiringvarieties.com^ -+||brainlyads.com^ -+||cointraffic.io^$third-party -+||nicewistful.com^ -+||itsup.com^$third-party -+healthline.com##.css-12efcmn -+##.adv-right -+||serch26.biz^ -+##.adText -+##.ppr_priv_header_banner_ad -+/adblock_detector. -+-ad-iframe. -+##.ads-300x250 -+##.mvp_ad_widget -+||fegrofaxe.pro^ -+###AdContainer -+##.GoogleDfpAd-Content -+||animesuge.to/E/aircraftmighty.com/ -+||multicsmorrice.com^ -+##.sponsored-ad-container -+/topads/* -+||ad97da966d.com^ -+##.ads_center -+##.ads-list -+.advert.$domain=~advert.ae|~advert.io|~advert.ly|~advert.media|~advert.org.pl -+||jomtingi.net^$popup -+||adstudio.cloud^$third-party -+##div[id^="vuukle-ad-"] -+/ads.gif -+/ad-inject/*$~image -+##.ad-group -+||waqool.com^ -+##.ad_img -+##.module-ad -+/ad_loader. -+##.page-ad -+||gettraffnews.com^ -+isewanferry.co.jp,jreu-h.jp,junkmail.co.za,nexco-hoken.co.jp,version2.dk#@#.ad-text -+##.advertising-banner -+/img/adv/* -+||whysuffice.com^ -+##.leftad -+||reariikosin.com^ -+/adfooter. -+||phortaub.com^ -+##a[href^="https://get.surfshark.net/aff_c?"][href*="&aff_id="] > img -+.ec/ads/ -+/video_ads/* -+||sobakenchmaphk.com^ -+##.grid__module-sizer_name_taboola -+###dfp-ad-right2 -+##.adbox_300x600 -+###dfp-ad-right2-wrapper -+||aawulszemel.com^ -+/adblock-detector. -+||hip-97166b.com^ -+###dfp-ad-right1 -+##.ad-970-90 -+###dfp-ad-right1-wrapper -+||campongprecant.com^ -+###adbdiv -+@@||looker.com/api/internal/$~third-party -+##.topAD -+###video_ads_overdiv -+/components/ads_ -+###dfp-ad-right3 -+##.widget_pmc-ads-widget -+||d26adrx9c3n0mq.cloudfront.net^ -+@@||ads.google.com^$domain=analytics.google.com -+###my-adsLREC2 -+/propellerads.$domain=~propellerads.com -+||content-ad.net^ -+bloomberg.com,weatherpro.com##.leaderboard-wrapper -+||bcprm.com^ -+unsplash.com##a[rel^="sponsored"][target="_blank"] -+##.ad_placeholder -+##.ads-sidebar -+||innity.com^$third-party -+/adclick/*$~image -+||d3v3bqdndm4erx.cloudfront.net^ -+||g.doubleclick.net^$domain=spiegel.de -+||xtremeserve.xyz^ -+###adsRight -+@@||thepiratebay.org/*.php$csp,~third-party -+||dronedgentile.com^ -+##.ad-mpu-plus-top -+###adleaderboard -+##.ads-system -+_160x600_ -+||cathodecreped.com^ -+###adsLeft -+##.adplaceholder -+||jrpkizae.com^ -+##.removeAdsStyle -+redtube.com,redtube.com.br,redtube.net,youporngay.com###pb_block -+##.future_inline_clone_target -+##.ads_block -+##.adSlotContainer -+##.box-ad -+letterboxd.com##.upgrade-kicker -+##.topads -+@@||grapeshot.co.uk/main/channels.cgi$script,domain=telegraph.co.uk -+fandom.com###featured-video__player-container -+_ad_banner_ -+/ad.html? -+##.has-ad -+##.desktopAd -+##.htl-ad -+liveuamap.com##.passby -+||wheeshoo.net^$popup -+###ad_contentslot_2 -+||ksdlzcmvmj.com^ -+##.overlay-ads -+###footer-ads -+##.ads_under_player -+||offfurreton.com^ -+##.ads-wrap -+##.video_ads_overdiv -+||moonicorn.network^ -+##.bam-ad-slot -+express.co.uk##div[id^="taboola-"] -+||mobfox.com^$third-party -+||hotstar.com^*/midroll? -+###ads-outer -+-468x60. -+##.block-fusion-ads -+_ad2. -+||294e463a18.com^ -+||glirsoss.com^ -+||moneymakercdn.com^ -+.tv/ads/ -+||realclick.co.kr^$third-party -+||1f95b058c0.com^ -+###dfp-ad-right4-wrapper -+-ad/dist/ -+howtogeek.com##div[id^="purch_"] -+##.complex-ad -+##.ad-728-90 -+@@||mirror.co.uk^*/prebid-test.js$script,~third-party -+##.complex-ad-wrapper -+||got-to-be.com^ -+||pitchedfurs.com^ -+###ads-top -+###bbccom_leaderboard -+##.lazyad -+redtube.com##div > iframe -+##.right_ad -+||ongaromusket.com^ -+/ad-issue. +cdn.ampproject.org,linguee.com,thesuburban.com###banner_top -+/ad-loader. -+##.block-ads -+||admitad.com^$third-party -+||rallynabdoomed.com^ -+||trackpush.com^$third-party -+/adengine. -+##div[id^="sticky_ad_"] -+||yieldscale.com^ -+||weirdbetorn.com^ -+||metabet.io/js/global.js -+@@||commons.wikimedia.org/w/api.php?$~third-party,xmlhttprequest -+||imagetwist.com/b9ng.js -+##.video_ads -+##.AdContainer -+##div[class^="Component-dfp-"] -+||gadgets360.com/pricee/assets/affiliate/ -+##.ad_title -+/adpic/* -+||watchingthat.net^ -+||simplysemblance.com^ -+##.stickyRailAd -+||zikroarg.com^$popup -+##.ad-leader-top -+pastebin.com##.content > [style^="padding-bottom:"] -+||taaqhr6axacd2um.com^ -+||zebumpes.net^ -+||c3113b90b1.com^ -+-load-ads. -+||ruamupr.com^ ++/adbanner/* ++redtube.com###video_right_col > .clearfix ++redtube.com##.hd ++||powerain.biz^ ++@@||g.doubleclick.net/tag/js/gpt.js$domain=spiegel.de ++##.ads_wrapper ++||ziffdavis.com^$third-party ++||korgiejoinyou.com^ ++||vfreecams.com^$third-party ++||defetohi.com^ ++||orquideassp.com^ ++###dv-gpt-ad-bigbox-wrap ++###advHook-Middle1 ++##.tc_ad ++##.GRVAd ++||hooliganmedia.com^ ++||gletsokr.com^ ++@@||informer.com^$generichide ++censor.net###w1001 ++||tykinggowd.com^ ++||steepto.com^ ++/displayAdFrame. ++||vichycobourg.com^ ++||finviz.com/gfx/banner_ ++||76d1f732d1.com^ ++webmd.com##.module-top-picks ++healthline.com##.css-1wm8u43 ++##.ads.widget ++||outbidashes.com^ ++##.ads-300x600 ++##.ad-panel ++##.ad-ctn ++||iodideeyebath.cam^ ++||tpdads.com^ ++||kw3y5otoeuniv7e9rsi.com^ ++||adglare.net^ ++/sp/delivery/* ++||sneakyinfected.com^ ++/lazyad- ++||affiliate-b.com^$third-party ++||locomotiveconvenientriddle.com^ ++@@||codesandbox.io^$generichide ++@@||ced.sascdn.com/tag/*/smart.js$domain=dr.dk ++||breakfastinvitingdetergent.com^ ++###leftad ++||bcf8fbea24.com^ ++@@||adservex.media.net/videoAds.js?$script,domain=forbes.com ++wikihow.com##.al_method ++##.adTitle ++postimees.ee#@#.ad01 ++censor.net###w1031 ++||thoomsay.com^ ++##.box-ad ++||deliverytraffnews.com^ ++||pyzwwzzooq.com^ ++||adfpoint.com^ +##.adPlaceholder -+||mm-cgnews.com^ ++.net/ads- ++porntrex.com###exclusive-link ++##.advert-unit ++||fraudclatterflying.com^$popup ++ancient.eu,fanatix.com,gamertweak.com,gematsu.com,tucsonsentinel.com,worldhistory.org##.adcontainer ++||jarvispopsu.com^ ++##.adbox_300x600 ++##.ad.section ++||864feb57ruary.com^ ++||d2y8ttytgze7qt.cloudfront.net^ ++/adserv. ++||aywfsjpglvhzdk.com^ ++##.card-ads ++.net/bnr/ ++/ad/top/* ++anime-planet.com##.halo ++##.ad-component ++##.following-ad ++||phosphatepossible.com^$popup ++##.ad_top ++@@||adsafeprotected.com/services/$domain=reuters.com ++##.TopAd ++_ad_banner_ ++##.head-ad ++/VideoAdContent? ++/adsense_$domain=~adsense.googleblog.com|~support.google.com ++##.blogads ++###ads3 ++||highperformancedisplayformat.com^ ++##.body-ads ++##.head_ad ++/ad_tag. ++dailymail.co.uk##.mpu_puff_wrapper ++##.ad-col ++##.footer_ads ++##.ads_css ++##.product-ads-carousel ++ecosia.org##div[data-test-id="mainline-result-ad"] ++||realclick.co.kr^$third-party ++3movs.com,tnaflix.com##iframe[width="300"] ++##.desktopAd ++||nelado.xyz^ ++##.GeminiNativeAd ++_right_ads_ ++||cointraffic.io^$third-party ++##.ad-leader ++###adv_top ++||enamberchivies.com^ ++-adfliction. ++||sundayscrewinsulting.com^ ++##.banner_728x90 ++||statserv.net^$third-party ++||pringed.space^ ++||paht.tech^ ++||citatumpity.com^ ++||bidder.dev^ ++##.ads-block-rightside ++##.banner_300x250 ++||rsnogpgohyo.com^ ++||dopansearor.com^ ++||samplerpouch.com^ ++||xhr0.xyz^ ++###AdvContainer ++##.widget-ad ++||redtram.com^$script,third-party ++||limurol.com^ ++pastebin.com##.content > [style^="padding-bottom:"] ++ghacks.net##.box-banner ++||upskittyan.com^ ++.org/ads/ ++###AdContainerTop ++||keypush.net^ ++###footer_ad ++##.ads_4 ++||onetouch12.com^ ++||4f0b6fddef.com^ ++||938baa1f72.com^ ++||doz1it.com^ ++redtube.com##svg ++##.ads-300 ++/468x60.$~script ++cambridge.org##.topslot-container ++##.ad-mpu-plus-top ++/ad-refresh- ++##.ad-728-90 ++||cinarra.com^$third-party ++as.com,gokunming.com##.prom ++||turbobit.net/pus/ ++||weirdbetorn.com^ ++||nsstatic.net^$third-party ++investing.com###findABroker ++||nextgencounter.com^ ++||datawrkz.com^$third-party ++##.ad-mpu-bottom ++@@||tidal.com^$generichide ++||mmctsvc.com^ ++##.js-ad-wrapper ++##.following-ad-container ++##.td-ad-p ++||pitchedfurs.com^ ++##.block-ad-entity ++##.searchCenterTopAds ++###header-ads ++||widgets.guppy.live^$third-party ++||8858de83b4.com^ ++##.aarpe-ad-wrapper ++||banneradsday.com^ ++||click.aliexpress.com^$subdocument,third-party ++||player.avplayer.com^$third-party ++##a[href^="https://go.xxxiijmp.com"] ++||odfnxnzrmvxw.com^ ++||adinc.kr^$third-party ++###native_ads ++/ads/banner? ++animedao.to,elevenforum.com##.gads ++pastebin.com##div[style^="color: #999; font-size: 12px; text-align: center;"] ++##.ads-placeholder ++##.googleSubjectAd ++##.custom_ad ++||omoonsih.net^ ++||mrelko.com^ ++||bannersnack.com^$third-party,domain=~bannersnack.dev ++best-faucets.com,transfermarkt.co.uk,transfermarkt.com##.werbung ++||reapinject.com^ ++/content/ads/* ++asspoint.com,babepedia.com,babesandstars.com,blackhaloadultreviews.com,dbnaked.com,freeones.com,gfycatporn.com,javfor.me,mansurfer.com,newpornstarblogs.com,ok.porn,porn-star.com,porn.com,porndoe.com,pornhubpremium.com,pornstarchive.com,rogreviews.com,sexyandfunny.com,shemaletubevideos.com,spankbang.com,str8upgayporn.com,the-new-lagoon.com,tube8.com,wcareviews.com,xxxonxxx.com,youporn.com##a[href*=".com/track/"] ++||daughterinlawrib.com^$popup ++||qzfegwpwdugb.com^ ++@@||reastatic.net/150x200-$domain=realestate.com.au ++reuters.com##div[class^="ad-slot__"] ++##.ppr_priv_header_banner_ad ++domainnamewire.com,marinetechnologynews.com,maritimeprofessional.com,maritimepropulsion.com,mumbrella.com.au,petapixel.com,rapidtvnews.com,telesurtv.net,travelpulse.com##.banners ++camporn.to,camseek.tv,camstreams.tv,sexu.com##.banners ++||d2dyjetg3tc2wn.cloudfront.net^ ++||yfupfhqxmwvu.com^ ++_468_60. ++###middle-ad ++||napesropes.com^ ++||dronedgentile.com^ ++||amitaephapse.com^ ++###adWrapper ++||pixiv.org^ ++###adv-Bottom ++healthline.com##.css-umsscj ++||itsup.com^$third-party ++||wagersinging.com^ ++##.detail-ads ++##.ad300 ++###AdsBillboard ++###aad-header-2 ++###ad-slot-right ++||611566a7a1.com^ ++||stonecloud-place.com^ ++||vouruwou.com^ ++||decencyjessiebloom.com^$popup ++imagebam.com###aad-header-2 ++##.ad-wrapper-bg ++###SponsoredAd ++##.connatix-container ++###ad-5 ++##.advertisement-wrapper ++||intnotif.club^ ++||molttenglobins.casa^ ++||didchinosdub.cam^ ++##.advert-title ++||acobnnvet.com^ ++##.ad--droite_haute ++||bestsafefast.com^ ++||vkngyilcblid.com^ ++/ad/common_ ++##div[data-ad-targeting] ++###ad_3 ++||exclamationresound.com^ ++/house_ads/* ++apnews.com##div[class^="Component-dfp-"] ++@@||freeplayervideo.com^$subdocument ++healthline.com##.css-12efcmn ++##.adsbygalaksion ++||sprinterchance.com^ ++allmovie.com,realestate.com.au##.header-leaderboard ++###adtophp ++/VideoAd/* ++###ads-top ++||izeiiemb.com^ ++##.belowMastheadWrapper ++macrumors.com##.tertiary ++##.homeAd ++||condles-temark.com^ ++.net/ad2/$~xmlhttprequest ++##.ad_btn ++/webadvert.$domain=~webadvert.ru ++alaskahighwaynews.ca,bowenislandundercurrent.com,burnabynow.com,coastreporter.net,dawsoncreekmirror.ca,delta-optimist.com,moosejawtoday.com,newwestrecord.ca,nsnews.com,piquenewsmagazine.com,princegeorgecitizen.com,prpeak.com,richmond-news.com,squamishchief.com,tricitynews.com,vancouverisawesome.com##.slot ++##.footer_ad ++||adtarget.com.tr^$third-party ++||qzbpamhgqy.com^ ++||hetaruvg.com^ ++||dlxk2dj1h3e83.cloudfront.net^ ++##.ad_leader_bottom ++||instreamvideo.ru^$third-party ++||ddlh1467paih3.cloudfront.net^ ++###ad_4 ++||get-me-wow.in^$popup ++##.desktop-ads ++redtube.com###popsByTrafficJunky ++-468x60. ++##.am-bazaar-ad ++##.ad-description ++##.adloaded ++||ocqueroques.com^ ++supjav.com##.simpleToast ++##.articleAdvert ++##.standalonead ++||vs3.com/_special/banners/ ++imdb.com##.promoted-provider ++||psairtoo.com^ ++||hip-97166b.com^ ++###dfp-ad-top-wrapper ++###sponsorText ++||deceittoured.com^ ++||adjust.com^$script,third-party ++###AdBox2 ++||irenicaserrano.com^ ++||promo-bc.com^ ++||turbobit.net/fd1/js/brinpopup.js ++cricketnetwork.co.uk,f1network.net,howtogermany.com,rugbynetwork.net,thefootballnetwork.net,timesandstar.co.uk###billboard ++rightmove.co.uk##.creative ++||kaoftrknb.com^ ++||ad4game.com^$third-party ++||garagesewe.com^ ++##.ad--banniere_basse ++##.ad--banniere_haute ++||5534edee5a.com^ ++weather.com##div[id^="Taboola-main-"] ++||broworker7.com^ ++/160x600. ++##.dfp_slot ++##.bvp-ad ++trademe.co.nz##.tm-display-ad__wrapper ++trademe.co.nz##tm-display-ad ++||loajawun.com^ ++###GoogleAd ++/img/adv. ++/static/ad/* ++upornia.com##.aa_label ++||afoewgmtdhvjg.com^ ++||sobakenchmaphk.com^ ++##.ad--droite_basse ++##.adRendererInfinite ++||azulcw7.com^ ++||benonblkd.xyz^ ++##.adthrive-header ++||ecybnxxpeq.com^ ++||michealmoyite.com^ ++###ads-footer ++||commonvivacious.com^ ++youporn.com,youporngay.com##.footer-element-container ++||pierlinks.com^ ++##.leaderboard-ad-placeholder ++||cadencecovetousfireplace.com^ ++4chan.org##[width="728"] ++###adleaderboard ++##.adsection ++##.has-fixed-bottom-ad ++rightmove.co.uk##._2X2laxgNfgPGfZQTFoPUsd ++##.advert.skyscraper ++_ad_end_ ++||bimathyphy.com^ ++##div[id^="advads-"] ++##.Ad--awareness-bp ++##.adrotate_widgets ++##.header-ad-container ++##.rightAd ++###dfp-ad-bottom-wrapper ++##.td-ad ++unsplash.com##div[data-ad="true"] ++###ad_contentslot_2 ++###headerAd ++###ad_right ++##.box_ad ++||shieldthanks.com^ ++||web.adblade.com^ ++##.bigbox-ad ++##.banner728 ++_ad_units_ ++||serialwarning.com^$popup ++##.ad-side ++##.page-ad ++||pubgenius.io^$third-party ++||mauchopt.net^ ++||markreptiloid.com^ ++||ad4989.co.kr^$third-party ++||effectdeuce.com^ ++||maudamee.net^ ++||refpamjeql.top^ ++##.ad-border ++##div[data-adunit-path] ++##.body_ad ++@@||prebid.adnxs.com^$xmlhttprequest,domain=go.cnn.com ++##.wd-adunit ++||yacovmylgp.com^ ++##.adRow ++###kt_player > a[target="_blank"] ++-ad-manager/$~stylesheet ++/adv.css? ++||voonogoa.net^ ++||tagdeliver.com^$third-party ++||animesuge.to/?$popup ++||piguiqproxy.com^ ++##.widget_pmc-ads-widget ++/adimg/* ++###adDiv ++##.ad-mpu ++pcgamebenchmark.com,pcgamesn.com,pockettactics.com,theloadout.com###nn_astro_wrapper ++##.Ads-leaderboard ++##.ad-splash ++###ad_bottom ++||treatycalculator.com^ ++||instinctiveads.com^ ++##.advert-top ++||developermedia.com^$third-party ++###adcontainer1 ++||ignoblebeings.com^ ++##.ad_wrap ++||punosy.com^ ++/ads?zone_id= ++/sticky-ad- ++_120x600. ++###videoAdContainer ++||jooptibi.net^ ++||mindedcarious.com^ ++||trmit.com^ ++##.googlead ++webmd.com##.medianet-ctr ++##.adOverlay ++##.searchCenterBottomAds ++||adspirit.de^ ++curseforge.com###cdm-zone-03 ++-160x600. ++@@||ads.pubmatic.com/AdServer/js/pwtSync/$subdocument,domain=independent.co.uk|independentespanol.com ++ok.xxx,pornhat.com,xxxonxxx.com##.player-bn ++||parkingcrew.net^$third-party ++ok.xxx,pornhat.com##.before-player ++ok.xxx,pornhat.com##.video-link ++||sunporno.com/sunstatic/frms/ ++##.subAdBannerHeader ++||run-syndicate.com^ ++||wpncdn.com^ ++||marezzojubate.com^ ++||dmmzkfd82wayn.cloudfront.net^ ++||adactioner.com^ ++||aigaithojo.com^$popup ++##.sponsored_ad ++||blocksly.org^ ++||aqua-adserver.com^$third-party ++##div[id^="vuukle-ad-"] ++||d18myvrsrzjrd7.cloudfront.net^ ++||snugglethesheep.com^ ++_468x60_ ++||toretimeout.com^ ++##.head-ads ++##div[id^="js-dfp-"] ++##.wrapper_advertisement ++##.topArtAd ++###sidebar_ad ++.org/ad- ++##.block-ads ++##.ad-wireframe-wrapper ++indianexpress.com,roblox.com,spotify.com,wccftech.com##.ads-container ++video.laxd.com##.ads-container ++||adf.ly/js/display.js ++||twinrdack.com^ ++||onclickprediction.com^ ++##.video_ads ++###adslot3 ++##.ads-wrap ++##.dfp-banner ++||remedyeloise.com^ ++||doruffletr.com^$popup ++##.adszone ++##.ad-below ++##.footer_adv ++##.rightColumnAd ++###bottom-ad ++##.vf-ad-comments ++||7mmtv.tv/hgame/ ++@@||kotaku.com/x-kinja-static/assets/new-client/adManager.$~third-party ++||uponelectabuzzor.club^ ++||5toft8or7on8tt.com^ ++##.afw_ad ++##.arc-ad-wrapper ++/idleAd. ++rumble.com##.a-break ++||animikii-ana.com^ ++##.adsBanner ++##.f-ad ++##.ads_center ++||innovationthinkingslick.com^ ++##.block-advert ++||unevenmankind.com^ ++||traffic.name^$popup ++||fullcdn.ga^ ++||d2juccxzu13rax.cloudfront.net^ ++##.ads-header ++||adipolo.com^$third-party ++_video_ads/ ++##.vce-ad-container ++@@||cloud.mail.ru^$image,~third-party ++||sortyrails.com^ ++###preroll_ads ++##.ad-holder ++drtuber.com,thisvid.com,vivatube.com##.spots ++/couponAd. ++##.adright ++##.ad-970x90 ++-160x600- ++||luvaihoo.com^ ++##.home-ad ++||belickitungchan.com^ ++||dw.com/js/advertisement/ ++##.withBanners__ad ++||2552ae430f.com^ ++||xlirdr.com^ ++||graduatewonderentreaty.com^$popup ++skysports.com###mpu-1 ++/adition. ++||tb.turbocap.net/a637rw3.js ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="dpx-sponsored-products-detail_csm_instrumentation_wrapper"] ++||immenseflakespyramid.com^ ++||go2affise.com^ ++##.article-ad ++##.ad-giga ++###ads-1 ++/spcjs.php ++##.gallery-ad ++##.ad-loader ++||contextendless.com^$popup +###aad-header-1 +imagebam.com###aad-header-1 ++||sinaunrelean.info^ ++##.ad-reader ++##.venatus-responsive-ad ++||nonotro.name^ ++##.adsFirst ++##.adsSecond ++||d1zw85ny9dtn37.cloudfront.net^ ++||mmngqvbfuzenlk.com^ ++||mangahub.io/iframe/ ++||bluishgeologicallimitless.com^ ++||refutationtiptoe.com^ ++bing.com##.adsMvC ++.org/ad/$domain=~ylilauta.org ++##.ad728_cont ++##.right-rail-ad ++agcanada.com,allmusic.com,allthatsinteresting.com,autoaction.com.au,autos.ca,ballstatedaily.com,boardgamegeek.com,broadcastnow.co.uk,cantbeunseen.com,chairmanlol.com,comingsoon.net,crn.com.au,diyfail.com,edmunds.com,europeanpharmaceuticalreview.com,explainthisimage.com,foodista.com,freshbusinessthinking.com,funnyexam.com,funnytipjars.com,gamesindustry.biz,hardware.info,iamdisappoint.com,imedicalapps.com,itnews.com.au,japanisweird.com,jta.org,legion.org,lifezette.com,milesplit.com,monocle.com,morefailat11.com,moviemistakes.com,nbl.com.au,objectiface.com,passedoutphotos.com,playstationlifestyle.net,rollcall.com,roulettereactions.com,searchenginesuggestions.com,shinyshiny.tv,shitbrix.com,sparesomelol.com,spoiledphotos.com,spokesman.com,sportsnet.ca,sportsvite.com,stopdroplol.com,straitstimes.com,suffolknews.co.uk,supersport.com,tattoofailure.com,thedriven.io,thestar.com.my,titantv.com,tutorialrepublic.com,where.ca,yoimaletyoufinish.com##.leaderboard ++thehun.net##.leaderboard ++##.ad_300 ++investing.com##.generalOverlay ++###adslot2 ++/ad_popup_ ++||cateredjapish.com^ ++##.ad-reader-con-item ++||exrtbsrv.com^ ++||stootsou.net^ ++||amplitudewassnap.com^ ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Sponsorisée par"]) ++##.leaderboard-ad-container ++##.overlay-ads ++||d36zfztxfflmqo.cloudfront.net^ +###aad-header-3 +imagebam.com###aad-header-3 -+||dolphincdn.xyz^ -+##.post-ad -+express.co.uk##.viafoura-standalone-mpu -+##.ad-mpu -+&ad_sub= -+###mvp-post-bot-ad -+censor.net###w1001 -+/popunder? -+###taboola-right-rail-express -+###ad-skyscraper1-outer -+##.taboola-above-article -+||eegeeglou.com^ -+||plantpreventioncrab.com^ -+||ukfareputfea.xyz^ -+/sp/delivery/* -+mydramalist.com##div[class^="spnsr"] -+-native-ad. -+mydramalist.com##.spnsr -+ytmp3.cc###a-320-50 -+censor.net###w1031 -+##a[href^="https://www.brazzersnetwork.com/landing/"] -+###im_popupFixed -+##.advertisement-wrapper -+##.adv-300 -+||bcf8fbea24.com^ -+gayvegas.com,looktothestars.org,nintandbox.net,plurk.com,thebarentsobserver.com,tolonews.com,webtor.io##.adsense -+twitter.com#?#div[data-testid="eventHero"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|Προωθημένο|Dipromosikan|Được quảng bá|推廣|推广|推薦|推荐|プロモーション|프로모션|ประชาสัมพันธ์|प्रचारित|বিজ্ঞাপিত|تشہیر شدہ|مُروَّج|تبلیغی|מקודם/) -+##.ad-index -+||ubbfpm.com^ -+||c5b8d9d52f.com^ -+/adservices. -+###ad-vip-article -+||facilitatevoluntarily.com^ -+||statserv.net^$third-party -+###footerAd -+||519e29cfed.com^ -+||focusde.info^$third-party -+###taboola-ad -+###stickyad -+||ulmoyc.com^ -+##.ad-3 -+||lifearchaicwhipped.com^ -+||szxjygbabily.com^ -+##.ad.rectangle -+##.adwidget -+||barthnullary.com^ -+##.middle-ad -+||onmarshtompor.com^$popup -+||unlikelybeside.com^ -+###mrt-node-Col2-1-AdBlockPromo -+###adPlacement_9 -+||howtogeek.com/emv2/ -+/AdServlet? -+||aj1616.online^ -+||dopansearor.com^ -+/magalu-ads- -+###adrightbottom -+##.ads-300 -+##.ads_top -+/728x90/* -+bing.com##.br-productCarousel -+##.adTop -+||dkre4lyk6a9bt.cloudfront.net^ -+###middle-ad -+##.view-ad -+##.hidead -+perfectgirls.net##.promo__item -+perfectgirls.net###hat_message -+-advertorial. -+###google-top-ads -+ok.xxx,pornhat.com,xxxonxxx.com##.player-bn -+##.belt-ad -+##.adv-block-container -+||video-ads.a2z.com^ -+ok.xxx,pornhat.com##.video-link -+||malinebuffa.com^ -+ok.xxx,pornhat.com##.before-player -+/in/show/?mid=$third-party -+pastebin.com##div[style^="color: #999; font-size: 12px; text-align: center;"] -+##.advert-right -+###banner-ad -+##.googleLeftSkyScrapper -+##.ads_1 -+||ackcdn.net^ -+##.head-ad -+_120x600. -+||fuse-cloud.com^$popup -+exchangerates.org.uk###ad3 -+##.lazy-ad -+||download-final-step.com^$popup -+||d2c4ylitp1qu24.cloudfront.net^ -+###hideAds -+##.TopAd -+##.ad-element -+###ad-300 -+@@||gelbooru.com^$generichide -+pornone.com##.video-add -+.org/ads/ -+||qdcusfff.com^ -+##.ad-description -+_728_90. -+###kt_player > a[target="_blank"] -+/adsjs/* -+||aigaithojo.com^ -+gotporn.com##a[href^="https://www.gotporn.com/click.php?id="] -+/banner.engine? -+||marezzojubate.com^ -+||starkshrewd.com^ -+||reichelcormier.bid^ -+||lammasbananas.com^ -+##.video-ads -+4kporn.xxx,camstreams.tv,fpo.xxx##.footer-margin -+hclips.com,hotmovs.tube##.partners-wrap -+##.adSpace -+gotporn.com##.spnsrd -+||goodcache.ml^ -+###leaderboard_bottom_ad -+gotporn.com##.image-group-vertical -+##.advert-unit -+rottentomatoes.com##.leaderboard_wrapper -+##.ad02 -+||f250b19813.com^ -+###leaderboard_top_ad -+/img/adv. -+investing.com###findABroker -+/affiliate.linker/* -+||onclickperformance.com^$popup -+||sb4you1.com^ -+_ad_position_ -+||pixiv.org^ -+||feed-xml.com^ -+perfectgirls.net##.container + div + .additional-block-bg -+||tfla.xyz^ -+audioholics.com,classy-online.jp#@#.side-ad -+##.fa-google-ad -+/adserving. -+###right1ad -+||d3t3z4teexdk2r.cloudfront.net^ -+||jarvispopsu.com^ -+/openx. -+###adsplash -+||adligature.com^$third-party -+||addresseetransportationsyndrome.com^ -+/xhr-ads. -+##a[href^="https://vo2.qrlsx.com/"] -+out.com#@#div[id^="dfp-ad-"] -+||acustomfaeries.com^ -+||f1721037a5.com^ -+##.ad_mpu_top -+###ads-content -+cnn.com##[data-zone-label="Paid Partner Content"] -+||broadstreetads.com^$third-party -+perfectgirls.net##.adv_block -+##.js-ad-container -+cheese.com,coingecko.com,fflogs.com,foodlovers.co.nz,foodnetwork.ca,investorplace.com,kurocore.com,skift.com,thedailywtf.com,theportugalnews.com,warcraftlogs.com###top-banner -+||barbelskerugma.com^ -+||promo-bc.com^ -+||akutapro.com^ -+###ad-6 -+||livejasmin.com^$third-party,domain=~awempire.com -+##.belowMastheadWrapper -+##.sponsored-features -+marinetechnologynews.com,maritimeprofessional.com,maritimepropulsion.com,mumbrella.com.au,petapixel.com,rapidtvnews.com,telesurtv.net,travelpulse.com##.banners -+camporn.to,camstreams.tv,sexu.com##.banners -+||livetellsspatter.com^ -+||a2nn5eri7ce.com^ -+||trmobc.com^ -+###bottom-ad -+catholic.net##.publicidad -+.at/ads/ -+||ecybnxxpeq.com^ -+||in-appadvertising.com^ -+##.ads-ad -+##.ad03 -+###medrec_top_ad -+||collabplumify.com^ -+||detectivescollations.com^ -+##.adRight -+###ad6 -+##.penci-google-adsense -+||dipobeds.com^ -+##.ad-table -+||e8c09b34de.com^ -+||exchangediscreditmast.com^ -+||jundiedsesamin.com^ -+.net/ads- -+##.ads__horizontal -+||bustle.com^*/prebid- -+##a[href^="https://tracking.truthfinder.com/?a="] -+||snopmisgive.com^ -+##.adsc -+||mrelko.com^ -+||bestcontentfood.top^$third-party -+||hetaruwg.com^$popup -+||domdex.com^ -+##.header-ad-slot -+||jijpbehzw.com^ -+||defyblackmailrecommended.com^ -+##.parade-ad-container ++##.ad_rectangle ++##.header__ad ++||atmnjcinews.pro^ ++||augrezoa.net^ +##.advertisement-link -+##div[id^="adrotate_widgets-"] -+as.com,gokunming.com##.prom -+pornzog.com##.video-ntv -+##.u-lazy-ad-wrapper -+###bottom_ads -+||labellaunkamed.com^ -+biblegateway.com##.recommendations-header-column -+biblegateway.com##.recommendations-view-row -+biblegateway.com##.recommendations-products-row -+##.ad-line -+##.f-ad -+||eyebrowscrambledlater.com^ -+||cdnads.com^ -+##.section-ad -+/Banner-300x250. -+||finviz.com/gfx/banner_ -+||mscoldness.com^ -+/ads/www/* -+##.horizontal.ad -+healthline.com##.css-1wm8u43 -+||torvind.com^$third-party -+marca.com#@#.content-ad -+fastseduction.com,independent.co.uk###partners -+webmd.com##.medianet-ctr -+/VideoAdContent? -+||vs3.com/_special/banners/ -+medicalnewstoday.com##[data-ad] -+||kubiadserv.icu^ -+||ddlh1467paih3.cloudfront.net^ -+||suggestionwallpaperhump.com^ -+||affiliate-b.com^$third-party -+##.ads728 -+||tsyndicate.com^$popup -+###ad_overlay -+||realvu.net^ -+||akamacdn.com/api/spots/ -+###mgid-container -+##.comment-ad -+||pushokey.com^ -+##.ad--wallpaper -+##.ad.section -+##.wsj-responsive-ad-wrap -+||jainafashing.com^ -+##.ad-background -+||tqlkg.com^ -+##div[data-mpu1] -+||canstrm.com^ -+allmyfaves.com,allthetests.com,dailynews.lk,dealsonwheels.co.nz,dosgamesarchive.com,eth-converter.com,farmtrader.co.nz,freealts.pw,goosegame.io,greatbritishchefs.com,moviesfoundonline.com,openstreetmap.org,sundayobserver.lk,vstreamhub.com###banner -+##a[href^="https://camfapr.com/landing/click/"] -+##.ad-970x90 -+ultimate-guitar.com##.js-ab-regular -+/adchoices_ -+||citrusad.com^$third-party -+/468x60_ -+##.adv-header -+@@||www.facebook.com/ads/$generichide -+/house_ads/* -+||ap-srv.net^ -+yahoo.com##.gemini-ad-feedback -+##.widget-ad-image -+##.left-ad -+||aldeaamputee.com^ -+/advertisement-$~script,domain=~berlin-airport.de -+||go.bloxplay.com^ -+||inuuhtznjglmm.com^ -+##.desktop-ads -+##.widget_ad -+||kta.etherscan.com^ -+/468x60.$~script -+||phejouce.com^ -+||browsobsolete.com^ -+@@||yimg.jp/images/news-web/all/images/jsonld_image_300x250.png$domain=news.yahoo.co.jp -+##.article-inline-ad -+##.ad-giga -+##.body-ads -+tinyurl.is###stand-with -+motherless.com###topsites -+.net/bnr/ -+_ad_iframe. -+##.am-adslot -+_adtech_ -+||spotlesscaterer.com^ -+||864feb57ruary.com^ -+##.ad400 ++||affiliate.heureka.cz^ ++##.ad-type-flex-leaderboard ++###adslot1 ++##.ads-zone ++##.ad--overlayer ++/pop_ad. ++##.california-ad ++||paslsa.com^ ++###TopAd ++###intro_ad_1 ++##.text_ads_2 ++##.subAdBannerArea ++##.right_ads ++@@||adsafeprotected.com/vans-adapter-google-ima.js$script,domain=gamingbible.co.uk|ladbible.com|reuters.com ++||metahv.xyz^ ++||smileoffennec.com^ ++##.home-ads ++||d3t3z4teexdk2r.cloudfront.net^ ++##.ad-fixed ++||remarkablyson.com^ ++||netizen.co^$third-party ++biblegateway.com##.bga ++||audaciousdefault.com^ ++howtogeek.com##div[id^="purch_"] ++.ads.controller. ++||dotcom10.info^ ++||a050fa4308.com^ +##.ez-video-wrap -+||ulourgaz.net^ -+||d11hjbdxxtogg5.cloudfront.net^ -+-160x600. -+##.c-advertising -+@@||kotaku.com/x-kinja-static/assets/new-client/adManager.$~third-party -+##.ads-section -+||platitudefivesnack.com^ -+dmkt-sp.jp#@#.ad-label -+.adsync. -+##.js-ad-wrapper -+||znqip.org.^$popup -+||decaysnort.com^ -+||lengthcalk.com^ -+||bidder.dev^ -+||pseepsie.com^ -+##.ad-vertical -+_468x60_ -+@@||oauth.vk.com/authorize? -+newsweek.com##.block-ibtmedia-dfp -+msn.com##.nativeadserversidecontentmodule -+##.right-rail-ad -+motherless.com##iframe[style] -+||insticator.com^$third-party -+##a[href^="https://pcm.bannerator.com/"] -+softonic.com##.sam-slot -+###budget_adDiv -+/adsmanager/*$domain=~github.com -+||ozobsaib.com^ -+/directadvert- -+###video-advert -+##.ads-2 -+=160x600, -+##.insticator-ads -+##.ad-bg -+||awelessawelessmilliondisorganized.com^ -+##.video-advert -+||onmarshtompor.com^ -+##.ads-336x280 -+###carbonads -+###ads-header -+/inpl.sponsor. -+###srp_adsense-top -+##.ad-c-label -+###ad-container-1 -+##.ad-horizontal -+trademe.co.nz##.tm-display-ad__wrapper -+manganelo.com##[src^="/ads/"] -+trademe.co.nz##tm-display-ad -+##.ad-contain -+||nsstatic.net^$third-party -+##.sidebar-ad-container -+##.ad-unit-text -+||adactioner.com^ -+##.advert-banner -+-ad.jpg? -+arenaev.com,gsmarena.com###subHeader -+##.s-ad -+/idleAd. -+amateur8.com,maturetubehere.com###nopp -+||robescampus.com^ -+##.FooterAd -+##.ad__header -+||188cc81551.com^ -+||rug4ma.com^ -+||adserving.unibet.com^ -+||srvpcn.com^$popup -+||tramemedea.com^ -+||adsco.re^$popup -+###advHook-Middle1 -+||massariuscdn.com^ -+||syrsple2se8nyu09.com^$popup -+##.top-advert -+@@||ced.sascdn.com/tag/*/smart.js$domain=dr.dk -+||icotrack.net^ -+||redtram.com^$script,third-party -+###ads1 -+independent.co.uk##.sc-eTFcpK -+||verblife-5.co^ -+||a752b63c6b.com^ -+###ads-footer -+independent.co.uk##.sc-jonzHS -+##[id^="ad_sky"] -+##.article-ad-placeholder -+reuters.com##div[class^="ad-slot__"] -+thesun.co.uk##.dpa-slot -+||vfreecams.com^$third-party -+##.ad-button -+/adserv. -+||dw.com/js/advertisement/ -+||kinahunnic.com^ -+##.small-ad -+||download-ready.net^ -+##.ad-reader -+##.searchRightTopAds -+||possoacu.com^ -+||doubleadserve.com^ -+||adsafety.net^ -+##.house-ad -+##.ad-reader-con-item -+||banneradsday.com^ -+||bannersnack.com^$third-party,domain=~bannersnack.dev -+###story-ad-6-wrapper -+/ads/banner? -+||feefouga.com^ -+||mahimeta.com^$third-party ++apps.opera.com,babynamegenie.com,ecaytrade.com,nbcbayarea.com,nwherald.com,planetsourcecode.com,sciagaj.org,themuslimvibe.com,totalxbox.com,varsity.com,w3techs.com,wgxa.tv##.promo ++perfectgirls.net,xnostars.com##.promo ++||readpeak.com^$third-party ++##.california-sidebar-ad ++##.dfpAdUnitContainer ++##.ads-sidebar ++##.ad-336x280 ++##.ob-ad-carousel-layout ++||marfeel.com^$third-party ++##.adslot_3 ++||sya9yncn3q.com^ ++igg-games.com##.uk-panel.widget-text +##.advert__container -+###adscontainer_background_back_index1100_all -+/textad.$domain=~textad.hu -+||photevifa.pro^ -+||dmmzkfd82wayn.cloudfront.net^ -+||ad4game.com^$third-party -+||recreationhiddenmosque.com^ -+||pubpowerplatform.io^ -+txxx.com##.mpululuoopp -+##.ad_div -+##.adOverlay -+##.mpu-left-bk ++##.search-sponsor ++||quealcoodle.com^ ++doordash.com#?#[data-testid="card.store"] > div:-abp-has(div[data-anchor-id="SponsoredBadge"]) ++youtube.com##.ytp-ad-action-interstitial-background-container ++##.ad-group ++||zunsoach.com^ ++@@||ps.w.org^$image,domain=wordpress.org ++##.adSlotContainer ++pcgamesn.com,pockettactics.com,theloadout.com##.inlinerail ++||attacheastely.com^ ++||exdynsrv.com^$popup ++||jounaque.com^ ++||yjwumvme.com^ ++brisbanetimes.com.au,smh.com.au,theage.com.au,watoday.com.au###articlePartnerStories ++##.advertisement-banner ++###ads-content ++##.fixedAds ++##div[id^="sticky_ad_"] ++##.complex-ad ++##.ad-anchor ++##.ads-iframe ++##a[href^="https://www.brazzersnetwork.com/landing/"] ++##.inline_ad ++duckduckgo.com##.js-sidebar-ads > .nrn-react-div ++##.advert-bottom ++||986808cb44.com^ ++##.adLeaderboard ++###topAdv ++||profitablecpmgate.com^$popup ++##.ad_336 ++||rageagainstthesoap.com^ ++||mhvllvgrefplg.com^ ++##.complex-ad-wrapper ++###side_ad ++||animeheaven.ru/api/pop*.php ++###dfp-ad-right1 ++###dfp-ad-right1-wrapper ++||republer.com^$third-party ++###dfp-ad-right2 ++###dfp-ad-right2-wrapper ++scmp.com##[id^="div-ad-"] ++newsweek.com##.block-ibtmedia-dfp ++@@||gn-web-assets.api.bbc.com/bbcdotcom/assets/$script,domain=bbc.co.uk ++##a[href^="https://www.camsoda.com/enter.php?id="] ++###Ad-Container ++||kqzyfj.com^ ++##.insert_ad_column ++@@||jsdelivr.net^$script,domain=thepiratebay.org ++##.mvp-widget-ad ++##.boxAds ++||bidsxchange.com^$third-party ++||appealsfini.com^ ++###mvp-post-bot-ad ++###dfp-ad-right3 ++||innovationlizard.com^ ++||ea778a21c7.com^ ++||nomorepecans.com^ ++||obwmidktcmuc.com^ ++||polarcdn-terrax.com^ ++-banner-ad- ++###adsplash ++||akamacdn.com/api/spots/ ++##.ad-code ++||srv224.com^ ++##.mvp_ad_widget ++||doigtepyramid.com^ ++###player_ad ++##.advert-center ++||adgrid.io^$third-party ++@@||smartadserver.com/ac?nwid=3310^$script,domain=dr.dk ++/scripts/ads/* ++_right_ads. ++||vbtrax.com^ ++/overture/*$script,subdocument ++||reasonablelandmark.com^ ++##.ads-placment ++||rearedimmortal.com^ ++||withoutcreatures.com^ ++##DFP-AD ++||gypsyardently.com^$popup ++rarbg.to,rarbgaccess.org,rarbgmirror.com,rarbgmirror.org,rarbgproxy.com,rarbgproxy.org,rarbgunblock.com,rarbgunblocked.org##a[href][target="_blank"] > button ++||vinksuwobuebn.com^ ++##.ad-mb ++##.player_ima-ad-container ++||hurstplants.com^ ++##a[href^="https://camfapr.com/landing/click/"] ++##.ads-desktop ++##.ad-centered ++###ad-6 ++/adlog. ++/prod/redirect.html?lu=$popup ++||inforsea.com^$domain=spiegel.de ++redtube.com##div > iframe ++||newsmaxfeednetwork.com^ ++canstar.com.au,designspiration.com,investors.com,search.genieo.com,search.installmac.com##.promoted ++youtube.com##.ytp-ad-action-interstitial-slot ++||pncqcqdj.com^ ++rarbg.to,rarbgaccess.org,rarbgmirror.com,rarbgmirror.org,rarbgproxy.com,rarbgproxy.org,rarbgunblock.com,rarbgunblocked.org##tr > td + td[style*="height:"] ++||narrowstaredmaking.com^$popup ++gayvegas.com,looktothestars.org,nintandbox.net,plurk.com,thebarentsobserver.com,tolonews.com,webtor.io##.adsense ++##.ad_wrapper_top ++@@||dr.dk^*^sasfid=*&clicktag=$subdocument,domain=dr.dk ++##.ad-promotion-native ++||27417130d3.com^ ++||paiwhoki.com^ ++||yeesshh.com^$popup ++||ad.linksynergy.com^ ++/footer_ads_ ++##.ads-footer ++||netcatx.com^ ++/adsinteractive- ++||ovenbifaces.cam^ ++##.ad120 ++4kporn.xxx,camstreams.tv,fpo.xxx##.footer-margin ++##.adplaceholder ++||eshkol.io^$popup ++@@||vk.com/images/ads_$domain=vk.com ++##.site_ad ++||ftjcfx.com^ ++##.adv-block ++##.menu-ad ++/ads?client= ++##a[href^="https://vo2.qrlsx.com/"] ++||entirelysacrament.com^ ++##.left-ad ++||swimsunleisure.com^ ++##.sponsored-features ++##.wh_ad_inner ++##.brn-ads-box ++myreadingmanga.info##a[href^="https://www.dlsite.com/"] ++/tinlads. ++##.ad300x600 ++||rzqqpamj.com^ ++||uwoaptee.com^ ++##.horizontal.ad ++##.advertising-banner ++||jijpbehzw.com^ ++###adslot4 ++/textad? ++##.ad-lb ++###adrightbottom ++||prodmp.ru^ ++/external_ad? ++||agletmagilp.com^ ++||sillinessinterfere.com^$popup ++##.ad-type-cube ++||lainaumi.com^ ++byrdie.com,investopedia.com,verywellhealth.com##.mntl-leaderboard-spacer ++cheaptickets.com,expedia.com,ebookers.com,hotels.com,orbitz.com,travelocity.com,wotif.com#?#.uitk-card:-abp-has(.uitk-badge-sponsored) ++##.block-fusion-ads ++||adblockerapp.com^$popup ++||adblockerapp.com^$popup ++##.adv-box ++||c12bleue.com^ ++||waspsbiga.com^ ++||60e19222e9.com^ ++||wovazaix.com^ ++##.widget-ads ++###dfp-ad-right4-wrapper ++##.ad-vertical ++-article-ad- ++/taboola-header. ++||imhentai.xxx/js/slider.js ++etherscan.io##a[href^="https://goto.etherscan.com/"] > img ++##a[href^="https://pcm.bannerator.com/"] ++||tapnative.com^$third-party ++bigcommerce.com#@#.advert-container ++apnews.com##.Leaderboard ++||duplicatepowerquay.com^$popup ++@@||sascdn.com/diff/templates/ts/dist/banner/sas-banner-$script,domain=dr.dk ++/ad-bottom. ++||adxpub.com^$third-party ++||bet365affiliates.com^$third-party ++||torvind.com^$third-party ++##.widget_ad_layers_ad_widget ++||beegoust.com^ ++||affluentshinymulticultural.com^$popup ++###sticky-ad-container ++/adblockdetect. ++||aeeg5idiuenbi7erger.com^ ++||ced.sascdn.com^$domain=spiegel.de ++/image/ad/* ++/300x600- ++##.dtads-slot ++digitaltrends.com##.dtads-slot ++fastseduction.com,independent.co.uk###partners ++###adholderContainerHeader ++||unwillingsnick.com^ ++||kvemm.com^ ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[jstcache] > a[href^="/aclk?"] ++##.native-sidebar-ad ++###br-ad-header ++##.sponsor-link ++##.article-ad-placeholder ++||cloudfront.net^$domain=igg-games.com ++||cloudfront.net^$domain=titantv.com ++##.post-ad ++ada.org,globes.co.il,techcentral.ie,texteditor.co,versus.com##.topBanner ++##.ad_mpu_top ++pornez.net##.video-sidebar ++||osmoticanansi.com^ ++allmyfaves.com,allthetests.com,dailynews.lk,dealsonwheels.co.nz,dosgamesarchive.com,eth-converter.com,farmtrader.co.nz,freealts.pw,goosegame.io,greatbritishchefs.com,moviesfoundonline.com,sundayobserver.lk,techconnect.com,vstreamhub.com###banner ++||drtuber.com/footer_ ++apnews.com##div[class^="Component-adTitle-"] ++apnews.com##div[class^="Component-placeholderWrapper-"] ++###adv-top ++##.adsense-336 ++###content_ad_2 ++_728x90- ++###after-dfp-ad-mid4 ++##.ad_element ++##.adsbg300 ++||cbf265695d.com^ ++||jodsempu.com^ ++||requiresfamoushometown.com^ ++||zenaps.com^$popup ++/banners/468 ++||fastdxr.com^ ++##.ad-risingstar-container ++##.floating-ads ++##.ad_bottom ++##.FooterAd ++##.ad468 ++##.google-dfp-ad-caption ++##.ads01 ++||d1of5w8unlzqtg.cloudfront.net^ ++||advarkads.com^$third-party ++bing.com##.pa_carousel_mlo ++##a[href^="http://ad.doubleclick.net/"] ++##amp-fx-flying-carpet ++##.newspack_global_ad ++catholic.net##.publicidad ++abcnews.go.com##div[style^="min-height: 90px"] ++ultimate-guitar.com##.js-ab-regular ++9jaflaver.com,alaskapublic.org,allkeyshop.com,ancient-origins.net,animeidhentai.com,arabtimesonline.com,biblestudytools.com,carmag.co.za,cnx-software.com,coingolive.com,cryptoslate.com,digitallydownloaded.net,dotesports.com,downturk.net,forum.ragezone.com,fresherslive.com,gizmochina.com,glodls.to,guidedhacking.com,hackernoon.com,hlstester.com,indishare.org,katfile.com,linkhub.icu,litecoin-faucet.com,mbauniverse.com,mediaite.com,myreadingmanga.info,newsfirst.lk,nexter.org,owaahh.com,parkablogs.com,pastemytxt.com,premiumtimesng.com,resultuniraj.co.in,retail.org.nz,rtvonline.com,thinknews.com.ng,timesuganda.com,totemtattoo.com,trancentral.tv,ultshare.com,vumafm.co.za,wccftech.com,yeyeboyz.net,yugatech.com,zmescience.com##[href*="bit.ly/"] ++||mahimeta.com^$third-party ++##.gnt_x ++##.ads-2 ++##.advert_label ++##.SimpleAd ++||ergadx.com^ ++##[id^="ad-wrap-"] ++yelp.at,yelp.be,yelp.ca,yelp.ch,yelp.cl,yelp.co.jp,yelp.co.nz,yelp.co.uk,yelp.com,yelp.com.ar,yelp.com.au,yelp.com.br,yelp.com.hk,yelp.com.mx,yelp.com.ph,yelp.com.sg,yelp.com.tr,yelp.cz,yelp.de,yelp.dk,yelp.es,yelp.fi,yelp.fr,yelp.ie,yelp.it,yelp.my,yelp.nl,yelp.no,yelp.pl,yelp.pt,yelp.se##.ABP ++##.advert1 ++||google.com/favicon.ico$popup ++||ad.22betpartners.com^$popup ++##.ad140 ++||theonecdn.com^ ++||saltateblit.com^ ++##.ads-center ++crazygames.com##.css-1h6nq0a ++##.ads-336x280 ++##.zeusAdWrapper ++||ad.netmedia.hu^ ++dafont.com###sky ++##.google-dfp-ad-wrapper ++@@||s.w.org/wp-content/$stylesheet,domain=wordpress.org ++###ad_468_60 ++/moneyball/ads/* ++/api/getcreatives? ++||crengate.com^ ++||reflectedintegrity.com^ ++cbssports.com##.skybox-top-wrapper ++###google-top-ads ++-banner-ad. ++||kiltyyoginis.com^ ++&clicktag=http ++##.ad-3 ++##.adTop ++##.ad-background ++##a[href^="https://www.nutaku.net/signup/landing/"] ++wiki.gg##[href^="https://app.wiki.gg/showcase/"] ++##.ad--article ++##.br-ad-wrapper ++##.inner-ad-section ++||fakeerupriser.com^ ++||mmaaxx.com^$third-party ++##.right_ad ++###ad_300x250 ++##.ad-tile ++###ad_div ++###sideAd ++||wavermigraineuncle.com^ ++gotporn.com##a[href^="https://www.gotporn.com/click.php?id="] ++||nativemedia.rs^$third-party ++||tollyeric.com^ ++||networkbest.ru.com^ ++||shindysamania.com^ ++##.br-ad ++||06a2b66f11.com^ ++##.brn-ads-sticky-wrapper ++98fm.com,audioreview.com,barrheadnews.com,bobfm.co.uk,bordertelegraph.com,cultofandroid.com,dcsuk.info,directory.im,directory247.co.uk,dplay.com,dumbartonreporter.co.uk,dunfermlinepress.com,durhamtimes.co.uk,eastlothiancourier.com,econsultancy.com,eurogamer.net,findanyfilm.com,forzaitalianfootball.com,gamesindustry.biz,her.ie,herfamily.ie,joe.co.uk,joe.ie,kentonline.co.uk,metoffice.gov.uk,mumsnet.com,musicradio.com,newburyandthatchamchronicle.co.uk,newscientist.com,readamericanfootball.com,readarsenal.com,readastonvilla.com,readbasketball.com,readbetting.com,readbournemouth.com,readboxing.com,readbrighton.com,readbundesliga.com,readburnley.com,readcars.co,readceltic.com,readchampionship.com,readchelsea.com,readcricket.com,readcrystalpalace.com,readeverton.com,readeverything.co,readfashion.co,readfilm.co,readfood.co,readfootball.co,readgaming.co,readgolf.com,readhorseracing.com,readhuddersfield.com,readhull.com,readingchronicle.co.uk,readinternationalfootball.com,readlaliga.com,readleicester.com,readliverpoolfc.com,readmancity.com,readmanutd.com,readmiddlesbrough.com,readmma.com,readmotorsport.com,readmusic.co,readnewcastle.com,readnorwich.com,readnottinghamforest.com,readolympics.com,readpl.com,readrangers.com,readrugbyunion.com,readseriea.com,readshowbiz.co,readsouthampton.com,readsport.co,readstoke.com,readsunderland.com,readswansea.com,readtech.co,readtennis.co,readtottenham.com,readtv.co,readussoccer.com,readwatford.com,readwestbrom.com,readwestham.com,readwsl.com,realradioxs.co.uk,redhillandreigatelife.co.uk,rochdaleonline.co.uk,rte.ie,sloughobserver.co.uk,smartertravel.com,southwestfarmer.co.uk,spin1038.com,spinsouthwest.com,sportsjoe.ie,sportsmole.co.uk,strathallantimes.co.uk,sundaypost.com,tcmuk.tv,thejournal.co.uk,thevillager.co.uk,thisisfutbol.com,toffeeweb.com,uktv.co.uk,videocelts.com,warringtonguardian.co.uk,wiltshirebusinessonline.co.uk,windsorobserver.co.uk##.mpu ++||digitalpush.org^$third-party ++||bid-engine.com^ ++||jqeyvtgelo.com^ ++##.sponsor_ad_section ++://affiliates.$third-party ++/advertisers/*$domain=~ad-maven.com|~ads.pinterest.com|~datalift360.com|~home.tapjoy.com|~panel.rightflow.com|~propelmedia.com|~publisuites.com|~qubeslate.com ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sp-shiptrack-desktop-carousel_desktop-yo-shiptrack_0"] ++gotporn.com##.image-group-vertical ++gotporn.com##.spnsrd ++/ad_display. ++||adomik.com^$third-party ++###ads-bottom ++||pillarvolcano.com^ ++||d11hjbdxxtogg5.cloudfront.net^ ++huffingtonpost.co.uk,huffpost.com##.entry__right-rail-width-placeholder ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##.commercial-unit-desktop-rhs > .iKidV > .Ee92ae + .P2mpm + .hp3sk ++||videosection.com/agent.php? ++||cjvdfw.com^ ++###ad-7 ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk#?#div[jsaction^="mouseover:pane."]:-abp-has(span.jHLihd) ++##.gam-ad ++||haftersfrutify.com^ ++##.sics-component__sticky-ad-placeholder ++/120x600. ++@@||dmm.com/p/general/$image,~third-party ++||runecrispin.com^ ++##.ads_player ++motherless.com###topsites ++/taboola-footer. ++###_ads ++###ad_holder ++||psapsiph.net^ ++||abdlnkjs.com^ ++||haymishlytta.com^ ++redtube.com,redtube.com.br,redtube.net,youporngay.com###pb_block ++tuxpi.com#@#.adslot ++apkmirror.com#@#.adslot ++||mysjozauyuwwm.com^ ++/images/ads_ ++/adnostic/* ++/publicidad.$~object,~stylesheet ++||yxsgrdxga.com^ ++||bigbolz.com^ ++###yandex_ad ++thesun.co.uk##.dpa-slot ++perfectgirls.net###hat_message ++perfectgirls.net##.promo__item ++||canstrm.com^ ++||jrpkizae.com^$popup ++##.ad-line ++##.banner300 ++||yctamonieomgb.com^ ++##.ins_adwrap ++##.ad-manager-wrapper ++||nsfwadds.com^ ++##.adnSpot ++##.ad-strip ++||commissionkings.ag^ ++||rvmessage.online^ ++||adacado.com^$third-party ++economist.com,flightcentre.co.uk,payback.pl,wsj.com#@#.img_ad ++##.ad-leader-plus-top ++###ad_content ++/adframe.$~script,~xmlhttprequest,domain=~adframe.com ++||wgrents.com^ ++||leerilypimelea.com^ ++transfermarkt.co.uk,transfermarkt.com##.werbung-skyscraper-container ++##.middle-ad ++##.related-ads ++##[href^="https://rapidgator.net/article/premium/ref/"] ++##a[href^="https://go.goaserv.com/"] ++||ad7f10c608.com^ ++||servg1.net^ ++##.MapLayout_BottomAd ++/AdServlet? ++||peer39.com^$third-party ++||staixooh.com^ ++||kvezz.com^ ++amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[cel_widget_id="sp-shiptrack-desktop-carousel_desktop-yo-shiptrack_0"] ++##.rail-ads-1 ++usnews.com###bfad-slot ++/upload/ads/*$domain=~ads.ae ++||ads.audio.thisisdax.com^ ++stuff.co.nz##.sics-component__app__top-leaderboard-ads-container ++###right1ad ++thedailybeast.com##.Sizer +amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-ad-id] -+||woakcayapo.com^ -+@@||ads.google.$image,script,stylesheet,domain=ads.google.ac|ads.google.ad|ads.google.ae|ads.google.al|ads.google.am|ads.google.as|ads.google.at|ads.google.az|ads.google.ba|ads.google.be|ads.google.bf|ads.google.bg|ads.google.bi|ads.google.bj|ads.google.bs|ads.google.bt|ads.google.by|ads.google.ca|ads.google.cat|ads.google.cd|ads.google.cf|ads.google.cg|ads.google.ch|ads.google.ci|ads.google.cl|ads.google.cm|ads.google.co.ao|ads.google.co.bw|ads.google.co.ck|ads.google.co.cr|ads.google.co.id|ads.google.co.il|ads.google.co.in|ads.google.co.jp|ads.google.co.ke|ads.google.co.kr|ads.google.co.ls|ads.google.co.ma|ads.google.co.mz|ads.google.co.nz|ads.google.co.th|ads.google.co.tz|ads.google.co.ug|ads.google.co.uk|ads.google.co.uz|ads.google.co.ve|ads.google.co.vi|ads.google.co.za|ads.google.co.zm|ads.google.co.zw|ads.google.com|ads.google.com.af|ads.google.com.ag|ads.google.com.ai|ads.google.com.ar|ads.google.com.au|ads.google.com.bd|ads.google.com.bh|ads.google.com.bn|ads.google.com.bo|ads.google.com.br|ads.google.com.by|ads.google.com.bz|ads.google.com.cn|ads.google.com.co|ads.google.com.cu|ads.google.com.cy|ads.google.com.do|ads.google.com.ec|ads.google.com.eg|ads.google.com.et|ads.google.com.fj|ads.google.com.gh|ads.google.com.gi|ads.google.com.gt|ads.google.com.hk|ads.google.com.jm|ads.google.com.jo|ads.google.com.kh|ads.google.com.kw|ads.google.com.lb|ads.google.com.ly|ads.google.com.mm|ads.google.com.mt|ads.google.com.mx|ads.google.com.my|ads.google.com.na|ads.google.com.ng|ads.google.com.ni|ads.google.com.np|ads.google.com.om|ads.google.com.pa|ads.google.com.pe|ads.google.com.pg|ads.google.com.ph|ads.google.com.pk|ads.google.com.pr|ads.google.com.py|ads.google.com.qa|ads.google.com.ru|ads.google.com.sa|ads.google.com.sb|ads.google.com.sg|ads.google.com.sl|ads.google.com.sv|ads.google.com.tj|ads.google.com.tn|ads.google.com.tr|ads.google.com.tw|ads.google.com.ua|ads.google.com.uy|ads.google.com.vc|ads.google.com.ve|ads.google.com.vn|ads.google.cv|ads.google.cz|ads.google.de|ads.google.dj|ads.google.dk|ads.google.dm|ads.google.dz|ads.google.ee|ads.google.es|ads.google.fi|ads.google.fm|ads.google.fr|ads.google.ga|ads.google.ge|ads.google.gg|ads.google.gl|ads.google.gm|ads.google.gp|ads.google.gr|ads.google.gy|ads.google.hk|ads.google.hn|ads.google.hr|ads.google.ht|ads.google.hu|ads.google.ie|ads.google.im|ads.google.iq|ads.google.is|ads.google.it|ads.google.it.ao|ads.google.je|ads.google.jo|ads.google.jp|ads.google.kg|ads.google.ki|ads.google.kz|ads.google.la|ads.google.li|ads.google.lk|ads.google.lt|ads.google.lu|ads.google.lv|ads.google.md|ads.google.me|ads.google.mg|ads.google.mk|ads.google.ml|ads.google.mn|ads.google.ms|ads.google.mu|ads.google.mv|ads.google.mw|ads.google.ne|ads.google.ne.jp|ads.google.ng|ads.google.nl|ads.google.no|ads.google.nr|ads.google.nu|ads.google.pl|ads.google.pn|ads.google.ps|ads.google.pt|ads.google.ro|ads.google.rs|ads.google.ru|ads.google.rw|ads.google.sc|ads.google.se|ads.google.sh|ads.google.si|ads.google.sk|ads.google.sm|ads.google.sn|ads.google.so|ads.google.sr|ads.google.st|ads.google.td|ads.google.tg|ads.google.tl|ads.google.tm|ads.google.tn|ads.google.to|ads.google.tt|ads.google.us|ads.google.vg|ads.google.vu|ads.google.ws -+||uhdqyskwzqjh.com^ -+90min.com,investing.com,newsday.com##div[class^="ad_"] ++||dantbritingd.club^ ++_ads.php? ++##.native-ad-container ++||dspultra.com^$popup ++||online.*/promoredirect?key= ++||snagbaudhulas.com^ ++||taghaugh.com^ ++||awelessawelessmilliondisorganized.com^ ++||prodaddkarl.com^ ++##.ads728 ++ok.porn,pornhat.com##.bn ++###adslot5 ++||plusclick.biz^ ++||clickintext.net^$third-party ++namemc.com###skin_wrapper ++||qdcusfff.com^ ++perfectgirls.net##.container + div + .additional-block-bg ++||mafrarc3e9h.com^ ++##.c-advertising ++||glssp.net^ ++/ad-provider. ++||quietlyrosebudagreeing.com^ ++motherless.com##iframe[style] ++##.opd_adsticky ++##.gptSlot ++||d1r90st78epsag.cloudfront.net^ ++||tovanillitechan.com^ ++###footerad ++###ads_superbanner1 ++##.ad.wideboard ++||ismovernm.xyz^$popup ++trueachievements.com##.nn_player_w ++##.header-pencil-ad ++##.ad-two ++##.ads.bottom ++arenaev.com,gsmarena.com###subHeader ++##.ad-h-250 ++##.ad.maxiboard ++##.ad.maxisky ++##.ad.promotion ++##.ad.wideboard_tablet ++##.ads_middle ++||ec73ce0ab9.com^ ++||hllowvsion.click^ ++||jwuyjehlbndrkd.com^ ++||ptoangir.com^ ++kotaku.com###commerce-inset-wrapper ++##.ad-complete ++##.ad.addon ++##.ad.skybridgeleft ++tekno.kompas.com##.kcm ++||hbzhrxdmm.com^ ++||customads.co^ ++unsplash.com##a[rel^="sponsored"][target="_blank"] ++||ntvpwpush.com^ ++/advertise_ ++##.ad-w-300 ++||gameads.io^ ++||awltovhc.com^ ++###dfpslot_tow_2-0 ++###dfpslot_tow_2-1 ++nzherald.co.nz##.section-iframe ++/adplayer/* ++||tracker-tds.info^ ++###ad-panel ++||liveadexchanger.com^$popup ++||adxcore.com^ ++||adready.com^$third-party ++||patinesgaulin.com^ ++?ZoneID=*&PageID=*&SiteID=$~image ++##.sponsorLink ++||mt34iofvjay.com^ ++||pubfeed.linkby.com^ ++||revenuestripe.com^ ++||hvxqkunspvtln.com^ ++/adscdn. ++cbssports.com,nowthisnews.com,scout.com,seeker.com,thedodo.com,thrillist.com##.leaderboard-wrap ++###left_adv ++@@||gocomics.com/assets/ad-dependencies-$script,~third-party ++biblegateway.com##.recommendations-header-column ++biblegateway.com##.recommendations-products-row ++biblegateway.com##.recommendations-view-row ++##.searchRightTopAds ++##.ad-close-button ++##div[data-mpu1] ++###taboola-below-article-thumbnails-express ++##.Ad--sidebar ++||smartasset.com^$third-party ++###adv_IntropageOvl ++###adv_Skin ++###bottom_ads ++##.ad-notice ++##.ad-sticky-wrapper ++||qqjar.ru^$third-party ++||profitabledisplaycontent.com^ ++||mscoldness.com^$popup ++###boxLREC ++##.ad-300-600 ++##.advertisement_300x250 ++||25b09661f2.com^ ++||4763e0a8e9.com^ ++||febnylhx.com^ ++||jinssimon.com^ ++tripadvisor.at,tripadvisor.be,tripadvisor.ca,tripadvisor.ch,tripadvisor.cl,tripadvisor.cn,tripadvisor.co,tripadvisor.co.id,tripadvisor.co.il,tripadvisor.co.kr,tripadvisor.co.nz,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.com.ar,tripadvisor.com.au,tripadvisor.com.br,tripadvisor.com.eg,tripadvisor.com.gr,tripadvisor.com.hk,tripadvisor.com.mx,tripadvisor.com.my,tripadvisor.com.pe,tripadvisor.com.ph,tripadvisor.com.sg,tripadvisor.com.tr,tripadvisor.com.tw,tripadvisor.com.ve,tripadvisor.com.vn,tripadvisor.de,tripadvisor.dk,tripadvisor.es,tripadvisor.fr,tripadvisor.ie,tripadvisor.in,tripadvisor.it,tripadvisor.jp,tripadvisor.nl,tripadvisor.pt,tripadvisor.ru,tripadvisor.se#?#.listItem:-abp-has(.sponsored_v2) ++tripadvisor.at,tripadvisor.be,tripadvisor.ca,tripadvisor.ch,tripadvisor.cl,tripadvisor.cn,tripadvisor.co,tripadvisor.co.id,tripadvisor.co.il,tripadvisor.co.kr,tripadvisor.co.nz,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.com.ar,tripadvisor.com.au,tripadvisor.com.br,tripadvisor.com.eg,tripadvisor.com.gr,tripadvisor.com.hk,tripadvisor.com.mx,tripadvisor.com.my,tripadvisor.com.pe,tripadvisor.com.ph,tripadvisor.com.sg,tripadvisor.com.tr,tripadvisor.com.tw,tripadvisor.com.ve,tripadvisor.com.vn,tripadvisor.de,tripadvisor.dk,tripadvisor.es,tripadvisor.fr,tripadvisor.ie,tripadvisor.in,tripadvisor.it,tripadvisor.jp,tripadvisor.nl,tripadvisor.pt,tripadvisor.ru,tripadvisor.se#?#.listItem:-abp-has(.sponsored_v2) ++youjizz.com###footer ++||masterbate.pro^$third-party ++##.square_ad ++##.ad234 ++/api/ad/* ++||suptur.online^ ++###adsLeft ++||prf.hn^$third-party ++/ad/img/* ++##.ad--rectangle ++###adsRight ++##.ad-single-bottom ++||d2khpmub947xov.cloudfront.net^ ++||dowtyler.com^ ++##.adunit_rectangle ++/internal-ad- ++||aj2373.online^ ++##.ad__section-border ++||ezexfzek.com^ ++##.google-ad-container ++hclips.com,hotmovs.tube##.partners-wrap ++.php?ad_ ++||shigaxapo.com^ +##a[href^="https://go.tmrjmp.com"] -+||yieldrealistic.com^ -+##.ad-ex -+##.ad-entity-container -+||orquideassp.com^ -+###adv-gpt-masthead-leaderboard-container1 -+telegraph.co.uk##.commercial-unit -+||9purdfe9xg.com^ -+||widgets.guppy.live^$third-party -+||sortyrails.com^ ++/modules/ad/* ++||majestydeference.com^ ++/images/adv_ ++_ads_updater- ++indiatimes.com##div[data-aff-type] ++##.ad-bg ++##.house-ad ++##.sponsorAd ++###mobile-adhesion ++/bnrsrv. ++||bestcontentfood.top^$third-party ++##.adv_txt ++||bauwezou.net^ ++||tipcatscarola.com^ ++###banner-ad ++@@||history.com^$generichide ++##.advert-txt ++perfectgirls.net##.adv_block ++||ad999.biz^ ++||xozilla.com/player/html.php$subdocument ++/bannerad. ++##div[id^="ad-gpt-"] ++##.header-ad-desktop ++wtop.com##.post--sponsored ++||highperformancedformats.com^ ++||jdoqocy.com^ ++||squidgyhawsed.com^ ++||littlecdn.com^$script ++##a[href^="//syndication.dynsrvtbg.com/"] ++###ads-banner ++bing.com##.pa_sb ++||waesomeoutness.com^ ++##.vlog-ad ++##.topAD ++##.responsive-ad ++||ebayclassifiedsgroup.com^$third-party ++###ads-by-google ++##.ad-c-label ++||c4dbb6a666.com^ ++##.ad-w-728 ++##.advert-placeholder ++-PcmModule-Taboola- ++##.ads-inarticle ++stuff.co.nz#?#[itemprop]:-abp-has(.sponsored-flag) ++##.grid_ad_container ++||orchestraanticipation.com^ ++||esmystem.com^ ++/ad/images/*$domain=~studiocalling.it ++##.AdUnit ++investing.com##.midHeader ++##.parade-ad-container ++||kamak-mab.com^ ++##.module-ads ++##.insticator-ads ++##.skyscraper-ad-container ++##.square-ad ++||qqjexqbjaq.com^ ++||deliverytrafficnews.com^ ++###adv_BoxBottom ++##.widget_300x250_advertisement ++||medleyads.com^ ++||ponk.pro^$popup ++||4dsbanner.net^ ++||ofgogoatan.com^ ++##.module-ad ++||jokrauda.com^ ++||arzanphearse.com^ ++##.ad--header ++##.ads-300x250 ++/adconfig. ++||trustedgatetocontent.com^ ++||pollpublicly.com^ ++_ad_iframe. ++bing.com##.br-productCarousel ++stuff.co.nz##.sics-component__widget--neighbourlyShowcasePlus ++##.PageTopAd ++||qwerty24.net^$third-party ++/ads/native/* ++||catnipsdaymen.com^ ++||guaricospence.com^ ++||vaspo36.com^ ++||successfulpatience.com^ ++##.sponsored-link ++@@||itv.com/itv/tserver/$~third-party ++||92a2b69e29.com^ ++macrumors.com##.sidebarblock ++###ad-container-1 ++||justservingfiles.net^ ++||serdaive.com^ ++##.sh-section-ad ++||pignuwoa.com^ ++##.article_ad ++###dfp-leaderboard ++||grooseem.net^ ++@@||smartadserver.com/3310/call$xmlhttprequest,domain=dr.dk ++-300-250. ++||fpetwqpzqf.com^ ++##.adver ++/tagman/* ++/adx_flash. ++/banner.gif? ++||bngdyn.com^ ++||netseer.com^$third-party ++||d3ujids68p6xmq.cloudfront.net^ ++||bizmavosndi.com^ ++##.ads-horizontal ++##.section-ad ++||evolvemediallc.com^$third-party ++##app-ad ++||drillpatiotrash.com^ ++##.inlinead ++||d204slsrhoah2f.cloudfront.net^ ++||mgpcorfitzbj.com^ ++||creativesumo.com^ ++||mpaphqjb.com^ ++/assets/ad/* ++rightmove.co.uk##._3G_zutXOLAwgpG1cvkF6ii ++##.DFPad ++###footer-ads ++||caimoasy.net^ ++||noblerbaining.com^ ++||fristminyas.com^ ++||salbandtripy.com^ ++cp24.com#@#.topAd ++google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##button[jsaction="pane.adBanner.whyThisAdClick"] ++##.ad--mediumrectangle ++##.banner-ad-container ++.ke/ads/ ++##.ad_inner ++/newAd/* ++||79xmz3lmss.com^ ++anyporn.com,bravoporn.com,bravoteens.com,bravotube.net##.inplb ++##.ad-block-banner-container ++##.player-section__ad-wrapper ++###advert-1 ++##.ad-module ++||c9a2795c07.com^ ++-ad/dist/ ++##div[id^="dfp-slot-"] ++ezgif.com##div[style$="min-height:90px;display:block"] ++/sponsored_ad/* ++##a[href^="https://syndication.optimizesrv.com/"] ++##.ad__header ++_adsense. ++##.has-ad ++###adv_LdbMastheadPush ++###dfp-ad-container ++/houseads/* ++##.player-section__ad-block ++||snodlycaccias.com^ ++##.ad-top-container ++||crabdefend.com^ ++||politicianbusplate.com^ ++||requiresfamoushometown.com^$popup ++##.AdModule ++/discourse-adplugin- ++##a[href^="https://natour.naughtyamerica.com/track/"] ++||flexlinks.com^ ++||pitchedfurs.com^$popup ++||bourranuncurbs.com^ ++pixhost.to##.under-image ++_adhoriz. ++||phialedamende.com^ ++##.sponsoredLabel ++||bepolite.eu^$third-party ++##.adv-block-container ++||contalyze.com^ ++##.floatingAds ++amateur8.com,maturetubehere.com###nopp ++||dc5k8fg5ioc8s.cloudfront.net^ ++||lfstmedia.com^ ++##.d3-o-adv-block ++||jfecfzzuwevyqc.com^ ++##.ad-block-container ++##.ad-slot-sidebar ++###article-ad ++/ajax/ad/* ++||smokesplical.com^ ++||faspox.com^$third-party ++###ads1 ++||unloadpoetry.com^ ++||inflectionquake.com^ ++||syaomlovqeq.com^ ++##.ad-container-top ++||itweepinbelltor.com^ ++pornhub.com,redtube.com,tube8.com,tube8.es,tube8.fr,youjizz.com,youporn.com,youporngay.com##[style*="base64"] ++##.ads--no-preload ++##.ad-info-wrap ++##.ad_adInfo ++###video-advert ++||dcai7bdiz5toz.cloudfront.net^ ++||creative-serving.com^ ++||adhese.com^$third-party ++##[id^="chp_ads_block"] ++/lemon7.*.js^$script,domain=vxxx.com ++@@||jokerly.com/Okidak/adSelectorDirect.htm?id=$document,subdocument ++||zabanit.xyz^ ++##.adverts ++###main_ad ++||ongaromusket.com^ ++##[class^="chp_ads_block"] ++##.am-adslot ++||zadauque.net^ ++##.adwrap ++##.header_ads-container ++##.adsright ++/show_ads_ ++##.ajdg_grpwidgets ++##.dfp-ad-unit ++##.herald-ad ++||keep2share.cc/images/i/$third-party ++##.ad-size-leaderboard ++##.sister-ads ++##.ad-160x600 ++jizzbunker.com,xxxdan.com##.rzx1 ++||traffic.name^ ++||xhhuhdgbk.com^ ++##.video-advert ++###admpubottom ++||greedseed.world^$third-party ++.weborama.js ++||nesispubl.buzz^ ++||editionslap.com^$popup ++flashscore.co.uk##.boxOverContent__banner ++target.com##[data-test="featuredProducts"] ++##.widget-ad-image ++##.ads-ad ++##.container--ads ++||gyvesmutic.com^ ++livejournal.com##.xhtml_banner ++##.ad400 ++||rftslb.com^ ++@@||wordpress.org/plugins/$domain=wordpress.org ++##.ad-size-medium-rectangle-flex ++||d1nubxdgom3wqt.cloudfront.net^ ++##.leaderboard_ad_container ++unsplash.com#?#.MbNnd:-abp-has(a:-abp-contains(Sponsored)) ++stackoverflow.com##.js-sidebar-zone ++sunporno.com##.close-invid ++medicalnewstoday.com##[data-ad] ++##.ad-one ++/adclick.$popup ++motherless.com##.top-referers ++motherless.com##div > table[style][border] ++motherless.com##table[style*="max-width:"] ++||barthnullary.com^ ++##.ad-container--leaderboard ++||urlhausa.com^ ++/160x600- ++||challengecircuit.com^ ++###bottom-ads ++||dscex7u1h4a9a.cloudfront.net^ ++||dugentocentury.com^ ++mirror.co.uk##.shopwindow-advertorial ++##.wgAd-loaded ++###medrec_top_ad ++||ctrip.com^$third-party ++##.adHeadline ++gamesradar.com,tomshardware.com,whathifi.com##.vid-present ++###ad_wallpaper ++##.topads ++news.artnet.com,worldsurfleague.com#@#div[data-ad-targeting] ++||eroterest.net^$third-party ++##.AdPlacementBannerSponsorship ++##.ad-post ++||xyn1d4bjg4vr4m2qwypvuj.com^ ++/v2/ads. ++||shareasale.com/image/$third-party ++###stickyad ++||tiwhaiph.net^ ++/adver.$domain=~adver.biz|~adver.by|~adver.live|~adver.media|~adver.vn ++###ad_billboard ++##.banner-ad-row ++##.widget-adsense ++||d3l320urli0p1u.cloudfront.net^ ++||ekgloczbsblg.com^ ++##.AdContainer ++##.bam-ad-slot ++##.page-header-ad ++###leaderboard_bottom_ad ++##.adtable ++computerweekly.com,techtarget.com,theserverside.com##.cls-hlb-wrapper-desktop ++##.advads-widget ++||fssuqbylk.com^ ++###ad-sidebar1 ++@@||v.fwmrm.net/ad/p/1?$domain=cc.com|channel5.com|cmt.com|eonline.com|foodnetwork.com|nbcnews.com|ncaa.com|player.theplatform.com|simpsonsworld.com|today.com ++##.ad-leaderboard-container ++##.app-ad ++##.midAdv-cont ++##.big-ad ++###floatingAd ++||adx.io^$third-party ++||nattepush.com^ ++##.adColumn ++_468x60/ ++ndtv.com##.add__txt ++ndtv.com##.add__wrp ++##.advertiser ++||64134c91b6.com^ ++||networkmanag.com^$third-party ++/video-js-ads. ++rottentomatoes.com##.leaderboard_wrapper ++##.lazy-ad ++healthline.com###DMR1__slot ++###leaderboard_top_ad ++##.ad.widget ++||hetartwg.com^ ++||ads.viralize.tv^$domain=spiegel.de ++##.google-ad-placeholder ++###quads-ad1_widget ++##.advertisement-content ++###skin-ad ++###adTopLREC ++##.adv-300 ++||pdn-2.com^ ++||twpasol.com^ ++||ttwscqlqmbcb.com^ ++##.ad_300x600 ++walmart.com#?#div[class="mb1 ph1 pa0-xl bb b--near-white w-25"]:-abp-has(div[data-ad-component-type="wpa-tile"]) ++||mourny-clostheme.com^$popup ++###adSkinLeft ++indiedb.com,moddb.com##.supporter ++||bonertraffic13.info^ ++||bravotube.net/cc/ ++###adSkinRight ++###advert-skyscraper ++##.ad-lazy ++7mmtv.tv###mvspan_2_s_k_i_p ++||jwalf.com^ ++||miracslubs.com^ ++###footerAds ++||floccischlump.com^ ++##.adscontainer ++##.advertisement-container ++||facilitatevoluntarily.com^ ++||tymukyno.xyz^ ++##.adtop ++/adchoice. ++##.sponsor_ad ++||overnightpicture.com^ ++ndtv.com,news24online.com##.add-section ++||rusticswollenbelonged.com^ ++||pbgrklnnvbeudm.com^ ++@@||rojadirecta.me^$generichide ++||gloansad.com^ ++##.google-adsbygoogle ++click2houston.com,clickondetroit.com,clickorlando.com,ksat.com,local10.com,news4jax.com##.topWrapper ++180gadgets.com,browserhow.com,charlieintel.com,chromeunboxed.com,crimereads.com,cryptoslate.com,eurweb.com,fandomwire.com,flickeringmyth.com,gameinfinitus.com,hdmovies4u.live,indianhealthyrecipes.com,iotwreport.com,lithub.com,notalwaysright.com,quickanswer.blog,reneweconomy.com.au,rezence.com,rok.guide,simscommunity.info,thecinemaholic.com,twistedvoxel.com,welovetrump.com,zerohanger.com##.code-block ++mb.com.ph##.code-block ++fyptt.to,japaneseasmr.com##.code-block ++##.sticky-ads-container ++pornzog.com##.video-ntv ++||vipergirls.to/clientscript/poptrigger_ ++_google_ads_ ++pcgamesn.com##.sidebar_affiliate_disclaimer ++||forfrogadiertor.com^ ++###ad-target ++##.ads_block ++||mfcewkrob.com^ ++##.GoogleDfpAd-Float ++##.u-lazy-ad-wrapper ++||chaumsee.net^ ++##.single_ad_300x250 ++###ad-slot-top ++||aj1070.online^ ++slickdeals.net##.rightRailBannerSection ++||dacmaiss.com^ ++||torrent-protection.com^ ++##.sidebar-ad-container ++||varechphugoid.com^ ++||am15.net^ ++/728-90. ++||rotarb.bid^ ++||salinasbhut.com^ ++###content_ad ++||zybrdr.com^ ++||trimbrushed.com^ ++||cheno3yp5odt7iume.com^ ++##.channel-ad ++##.strip-ad ++||rtpnt.xyz^ ++##.stickyad ++##.ad_r ++||staurtur.net^ ++/adv.php ++||brid.tv^$script,domain=67hailhail.com|deepdaledigest.com|forevergeek.com|geordiebootboys.com|hammers.news|hitc.com|molineux.news|nottinghamforest.news|rangersnews.uk|realitytitbit.com|spin.com|tbrfootball.com|thechelseachronicle.com|thefocus.news|thewrap.com|washingtonexaminer.com ++/publicidades/* ++##.adv_banner ++##.leftAdsFix ++||banquetunarmedgrater.com^ ++||notablynationality.com^ ++||shijauns.com^ ++||trustbummler.com^ ++||brutalconfer.com^$popup ++##.ad-table ++||ingramony.com^ ++##.rightAdsFix ++##.dfp-interstitial ++moddb.com##.nextmediaboxtop ++##.adModule--outer ++##.adsense728x90 ++##.inner-adv ++||olmsoneenh.info^ ++||zedo.com^$third-party ++##.adModule--inner ++##.right-ads ++###ad-bg ++##.ads-section ++###ads_top ++||cotihgcqkh.com^ ++||i.pixl.is/*.gif$image,domain=bunkr.is ++##.mv_atf_ad_holder ++trueachievements.com##.lb_holder ++6abc.com,abc11.com,abc13.com,abc30.com,abc7.com,abc7chicago.com,abc7news.com,abc7ny.com##.story > .placeholderWrapper ++||ccksdwtuzmadx.com^ ++||estuantunsnow.com^ ++###google-ads ++##.card--article-ad ++||roadmappenal.com^ ++##.ad-sample ++||0dcde44a41.com^ ++||ygamhusjtdzajm.com^ ++||kveww.com^ ++##.nativeAd ++###ad6 ++##.sheknows-infuse-ad ++||d95d7d7060.com^ ++##.ad-below-images ++||adpredictive.com^$third-party ++||qxtcgrkqlgjcvg.com^ ++/spc_fi.php ++||taioncgaiynzt.com^ ++##.ad-970 ++###adslot6 ++##.boxAd ++||hoidenbinate.com^ ++gamesradar.com,tomshardware.com,whathifi.com##.jwplayer__widthsetter ++||lgtdkpfnor.com^ ++##.googleadsense ++||lookandfind.me^ ++mydramalist.com##.spnsr ++mydramalist.com##div[class^="spnsr"] ++##.button-ad ++##.ad-carousel ++||66e7b94f96.com^ ++youjizz.com###onPausePrOverlay ++||utility.rogersmedia.com/wrapper.js ++/ad_common. ++adfoc.us##.content > iframe ++||usounoul.com^ ++##.c-adDisplay ++||mcpuwpush.com^ ++##.adv-right ++||itineraryupper.com^ ++||predictiondexchange.com^ ++||purplepatch.online^ ++||deewansturacin.com^ ++###dsk-banner-ad-a ++||3d406f3a14.com^ ++||ugyplysh.com^ ++filecrypt.cc,filecrypt.co##.filItheadbIockqueue3 ++sextb.net##.asg-overlay ++||oackoubs.com^ ++||grvmedia.com^$third-party ++##.advertising-container ++##.meta_ad ++.il/ads. ++##.elementor-widget-wp-widget-advads_ad_widget ++bendsource.com,federalnewsnetwork.com,lonelyplanet.com,sevendaysvt.com,styleweekly.com,tasty.co,tucsonweekly.com##.Ad ++usnews.com##div[class^="Ad__Container-"] ++||trucksift.com^ ++||kveii.com^ ++||usatoday.com/nanobar/ ++##.js-sidebar-ads ++||beludicolor.com^ ++###admpumiddle ++tubefilter.com#@##topAd ++arabiaweather.com,bloomberg.com,gamesindustry.biz,news957.com,newscientist.com,usgamer.net##.leaderboard-container ++||glaivoun.net^ ++##.text-advertisement ++/adverts.$~script,domain=~adverts.ie|~adverts.org.ua ++##.ad-column ++##.Ad-Container ++dictionary.com,thesaurus.com##aside[id$="728x90"] ++||gloolrey.com^ ++##.ConnatixAd ++||can-get-some.net^ ++##.googleLeftSkyScrapper ++##.c-adDisplay_container ++||8a6549cded.com^ ++||grauwaiw.com^ ++||skipdearbeautify.com^ ++||whatisuptodaynow.com^ ++##.video-ad-container ++||alternativecpmgate.com^ ++##.ad_notice ++##.ac-banner-ad ++##.content_ads ++##.sidebar-top-ad ++##.lazyload_ad ++||tdkrevfg.com^ ++||admob.com^ ++||admob.com^$domain=spiegel.de ++##.mu-ad-container ++avgle.com##img[src*=".php"] ++||trafficdok.com^ ++@@||yandex.com/search/?$generichide ++-ad.php? ++||wpnrtnmrewunrtok.xyz^ ++##.image-viewer-ad ++||ptaiksah.com^ ++###sidebar_ad_1 ++||foremedia.net^$third-party ++/files/ads/* ++##[href^="https://www.restoro.com/"] ++||ailrouno.net^ ++||epwurecbhwtt.com^ ++||priseloos.com^ ++softonic.com##.sam-slot ++||adgebra.in^$third-party ++literotica.com###b-top ++/ad5. ++##.adsmessage ++||dlexkxqacleb.com^ ++||raphidewakener.com^ ++##.squareAd ++||koocoofy.com^ ++##.fs_ads ++/tncms/ads/* ++||geniusdexchange.com^ ++###js-image-ad-mpu ++spiegel.de##div[id*="/spon_dt/"]:not(#google_ads_iframe_\/6032\/spon_dt\/homepage_5__container__) ++al.com,cleveland.com,gulflive.com,lehighvalleylive.com,masslive.com,mlive.com,newyorkupstate.com,nj.com,oregonlive.com,pennlive.com,silive.com,syracuse.com###below-toprail ++###ad_layer ++||pauzajoo.net^ ++##.aside-ad ++/bsa-plugin-pro- ++###div-insticator-ad-4 ++##.g-ad ++##.group-item-ad ++##.image-viewer-mpu ++##.item-ads ++||daineely.net^ ++||idntsoohucg.com^ ++||possibilityplumbing.com^ ++##.ad-scroll ++healthline.com##.css-rjh5b ++##.button-ads ++||uhdqyskwzqjh.com^ ++||rma.homedepot.com^ ++mobafire.com##.exhibit-vertical ++/bserver/* ++/pagead/html/* ++###ad-sidebar2 ++||dewretpartook.com^ ++###rightAd ++||fuse-cloud.com^ ++##.header-adv ++||getadjacent.com^$third-party ++||nicesthoarfrostsooner.com^ ++||saishait.net^ ++||boustahe.com^ ++##.ad-container-inner ++||reedthatm.biz^ ++||linkslot.ru^$third-party ++||sbfull.com/js/mainpc.js ++###sidebar_ad_2 ++.php?affid=$domain=~cancun-discounts.com ++||adsfcdn.com^ ++##a[href^="http://www.coiwqe.site/"] ++||utarget.ru^ ++##.ad-topbanner ++/assets/ad- ++###adUnit ++##.pb-f-ad-flex ++||a9df6a2fb3.com^ ++@@||jokerly.com/Okidak/vastChecker.htm$document,subdocument ++-advertising_ ++##.advert--banner-wrap ++||bidfilter.com^$third-party ++##.component-ar-horizontal-bar-ad ++##.component-header-sticky-ad ++/uploads/ads/*$domain=~bayie.com ++/googlead/* ++||juergeninez.com^ ++###ads_page_top ++##.ad-hideable ++##.pb-f-ad-leaderboard ++##.static_mpu_wrap ++pcgamesn.com##.static_mpu_wrap ++/ads5. ++##.left-ads ++impartialreporter.com,polygon.com,tweaktown.com##.ob-smartfeed-wrapper ++||raisedmanatee.com^ ++||profield.ddns.net^$third-party ++##.ad-leader-top ++##.ad-main ++##.bodyAd ++##.teaser-advertisement ++||canangalaities.com^ ++-ads.gif ++||d1e28xq8vu3baf.cloudfront.net^ ++##.ad-rectangle-container ++##.article-sponsor ++moomoo.io###adCard ++||hats-47b.com^ ++##.sidebar-advertisement ++||noptog.com^ ++##.blockAds ++##.ad-160 ++||revincenizam.com^ ++||digitalmediapp.com^ ++###ads_bottom ++||adnium.com^$third-party ++##.mks_ads_widget ++||1igare0jn.de^ ++||ultimate-captcha.com^$popup ++||highperformancecpm.com^ ++||cpaoffers.network^$popup ++##a[href^="https://bongacams2.com/track?"] ++###theotherads ++/ads/lz_loader. ++||clickfunnels.com/assets/cfpop.js ++||bordsnewsjule.com^ ++globalnews.ca##.c-stickyRail ++/adClick? ++||feefouga.com^ ++||creationaleprose.com^$popup ++###team_ad ++||shaumtol.com^ ++||resalag.com^ ++globalnews.ca##.c-flyers ++/adsense2. ++/plugins/mts-wp-in-post-ads/* ++||arithmeticshovel.com^ ++##.double-ads ++||zadcyacitht.com^ ++###HeaderAd ++gsmarena.com##div[style="margin-left: -10px; margin-top: 30px; height: 145px;"] ++||adf.ly/js/link-converter.js ++##.fbs-ad--top-wrapper ++||offslrbeqypf.com^ ++||aixcdn.com^ ++||awempire.com^ ++###sticky-ads-top ++##.sidead ++##.ads1 ++##.custom-ad ++##.ad__leaderboard ++##.fjs-ad-hide-empty ++###tile-ad ++||fakeallow.com^ ++||apihotels.net/onestream/events/ ++##.MapLayout_BottomMobiAd ++||nextclick.pl^$third-party ++##.article_ad_top ++##.adDiv ++||jubsaugn.com^ ++###AdBanner ++##.ad--in-article ++||accordinglyvenisonelse.com^ ++latimes.com,sandiegouniontribune.com##.revcontent ++##.AdPlacementMPU ++1tamilmv.click##.ipsCarousel ++||awempt.com/embed/ ++euobserver.com,medicinehatnews.com##.top ++daporn.com,fpo.xxx##.top ++||comacantha.com^ ++-ad-banner- ++/delivery/spc. ++||tradbypass.com^ ++myreadingmanga.info##a[href^="https://www.gaming-adult.com/"] ++/160x600_ ++||trackuity.com^$third-party ++###adcontainer2 ++andoveradvertiser.co.uk,asianimage.co.uk,autoexchange.co.uk,banburycake.co.uk,barryanddistrictnews.co.uk,basildonstandard.co.uk,basingstokegazette.co.uk,bicesteradvertiser.net,borehamwoodtimes.co.uk,bournemouthecho.co.uk,braintreeandwithamtimes.co.uk,brentwoodlive.co.uk,bridgwatermercury.co.uk,bridportnews.co.uk,bromsgroveadvertiser.co.uk,bucksfreepress.co.uk,burnhamandhighbridgeweeklynews.co.uk,burytimes.co.uk,campaignseries.co.uk,chardandilminsternews.co.uk,chelmsfordweeklynews.co.uk,chesterlestreetadvertiser.co.uk,chorleycitizen.co.uk,clactonandfrintongazette.co.uk,cotswoldessence.co.uk,cotswoldjournal.co.uk,cravenherald.co.uk,creweguardian.co.uk,dailyecho.co.uk,darlingtonandstocktontimes.co.uk,dorsetecho.co.uk,droitwichadvertiser.co.uk,dudleynews.co.uk,ealingtimes.co.uk,echo-news.co.uk,enfieldindependent.co.uk,eppingforestguardian.co.uk,eveshamjournal.co.uk,falmouthpacket.co.uk,freepressseries.co.uk,gazette-news.co.uk,gazetteherald.co.uk,gazetteseries.co.uk,guardian-series.co.uk,halesowennews.co.uk,halsteadgazette.co.uk,hampshirechronicle.co.uk,harrowtimes.co.uk,harwichandmanningtreestandard.co.uk,heraldseries.co.uk,herefordtimes.com,hillingdontimes.co.uk,ilkleygazette.co.uk,keighleynews.co.uk,kidderminstershuttle.co.uk,knutsfordguardian.co.uk,lancashiretelegraph.co.uk,ledburyreporter.co.uk,leighjournal.co.uk,ludlowadvertiser.co.uk,maldonandburnhamstandard.co.uk,malverngazette.co.uk,messengernewspapers.co.uk,milfordmercury.co.uk,newsshopper.co.uk,northwichguardian.co.uk,oxfordmail.co.uk,penarthtimes.co.uk,prestwichandwhitefieldguide.co.uk,redditchadvertiser.co.uk,redhillandreigatelife.co.uk,richmondandtwickenhamtimes.co.uk,romseyadvertiser.co.uk,runcornandwidnesworld.co.uk,salisburyjournal.co.uk,somersetcountygazette.co.uk,southendstandard.co.uk,southwalesargus.co.uk,southwalesguardian.co.uk,southwestfarmer.co.uk,stalbansreview.co.uk,sthelensstar.co.uk,stourbridgenews.co.uk,surreycomet.co.uk,suttonguardian.co.uk,swindonadvertiser.co.uk,tewkesburyadmag.co.uk,theargus.co.uk,theboltonnews.co.uk,thenational.scot,thenorthernecho.co.uk,thescottishfarmer.co.uk,thetelegraphandargus.co.uk,thetottenhamindependent.co.uk,thewestmorlandgazette.co.uk,thisisthewestcountry.co.uk,thurrockgazette.co.uk,times-series.co.uk,wandsworthguardian.co.uk,warringtonguardian.co.uk,watfordobserver.co.uk,westerntelegraph.co.uk,wharfedaleobserver.co.uk,wiltsglosstandard.co.uk,wiltshiretimes.co.uk,wimbledonguardian.co.uk,wirralglobe.co.uk,witneygazette.co.uk,worcesternews.co.uk,yeovilexpress.co.uk,yorkpress.co.uk,yourlocalguardian.co.uk##.promoted-block ++||eabids.com^ ++||flatepicbats.com^ ++healthline.com##.css-1d8h8gm ++##.sudoku-ad ++||d3q33rbmdkxzj.cloudfront.net^ ++||02b57bb965.com^ ++||octopod.cc^ ++##.adv-top ++/ads3. ++##.ad-active ++##a[href^="https://twinrdsyn.com/"] ++||olpfeere.com^ ++||fresh8.co^ ++||peaceablefitsfamily.com^ ++||gypsyardently.com^ ++||renomeeguze.com^ ++/marfeel_sw. ++||embogsoarers.com^ ++##.in-content-ad ++##.ad_wide ++||lduhtrp.net^ ++||pushagim.com^ ++###ads-header ++##.SAAG-promoAdContainer ++##.ad--banner ++##.advertisement-leaderboard ++##.gujAd ++##a[href^="https://a.bestcontentweb.top/"] ++||burlapvocation.com^ ++||dd8af8726c.com^ ++||establishbrightestsavvy.com^ ++||hzihupwzovva.com^ ++||mikofs.com^ ++||naivetebibbed.com^ ++||pumpoofi.net^ ++||wkqcnkstso.com^ ++||rearedimmortal.com^$popup ++||agacelebir.com^ ++||possessionaddictedflight.com^ ++##.ads-728 ++/advt.$domain=~advt.ch|~advt.it ++##a[href^="https://t.aslnk.link/"] ++@@||zcache.com^$image,domain=zazzle.com ++flaticon.com###soul-p ++##[id^="ad_sky"] ++||pubnation.com^ ++###adslot7 ++##.component-ads-by-google ++##.adHolder ++##.advertising-block ++||hazardousschooloutcry.com^ ++||anyporn.com/aa/ ++||grafthivecrocus.cam^ ++##.adbox1 ++###HometopAdOuter ++||windsplay.com^ ++||psairees.net^ ++##.adRight ++##.video-ads ++-728x90_ ++||theraprecramp.com^ ++/advertorial/* ++##.inlinead_lazyload ++##.ad-observer ++##.c-posts__ad ++youjizz.com###rightVideoPrs ++/annonser/*$domain=~billink.no ++||ticaframeofm.xyz^ ++||parkdumbest.com^ ++@@||g.doubleclick.net/gampad/ads?*wallpaper_1$xmlhttprequest,domain=spiegel.de ++||allporncomic.com/round-bread-60fe/ ++###banner300x250 ++@@||pagead2.googlesyndication.com/getconfig/sodar?$xmlhttprequest,domain=spiegel.de ++##.ad_blk ++##.promoboxAd ++||myrrhicfoeman.com^ ++||gme-trking.com^ ++||citydsp.com^ ++###adss ++||margarinereverend.com^ ++||boahoupi.com^ ++||expressfouty.com^ ++###ad-halfpage ++||redirectsstm.click^ ++##.ad--section ++##.ad_space ++##.header-ads-wrap ++||aukirtoo.com^ ++||qajigu.xyz^ ++##.advertisement.leaderboard ++##.ad-bigbanner ++/video.ads. ++||onetouch12.com^$popup ++||cdnpure.com/static/js/ads- ++##.advertisement-placeholder ++##div[data-adname] ++##.ads-loaded ++@@||gomoplayer.com^$subdocument ++bing.com##.b_adBottom ++||aj2031.online^ ++||bravotube.net/js/clickback.js ++||catgride.com^ ++##.inline-ad-wrapper ++##.textAds ++###ads-left ++###side-ads ++##.ad-small ++##.bottom-ad2 ++dashnet.org###support ++||yxpyjyhjj.com^ ++||tabookbusines.info^ ++###adtop ++###admpudyn1 ++##.rail-ad ++||colorfullank.com ++||galileirice.com^ ++||volowwoidre.com^ ++||drivevideo.xyz/advert/ ++||vistashomonid.com^ ++fandom.com##.marketplace ++##.advance-ads ++##.gc-deck--is-ad ++###publicidad ++##.comment-ad ++/overture_ ++||marketools.plus500.com/Widgets/ ++##.sticky-ad-wrapper ++##.adslot--leaderboard ++##.ad-top-728 ++gay0day.com##div[style^="height:250px;"] ++.ad6media.$domain=~ad6media.fr ++||lavabosmotlier.com^ ++##.adInner ++##.itinerary-index-advertising ++biznews.com,burnabynow.com,businessdailyafrica.com,coastreporter.net,financialexpress.com,irishtimes.com,komonews.com,newwestrecord.ca,nsnews.com,prpeak.com,richmond-news.com,seattletimes.com,spokesman.com##a[href*="/sponsored/"] ++||xgroovy.com/static/js/script.js ++###div-insticator-ad-3 ++##.adsBlock ++90min.com,investing.com,newsday.com##div[class^="ad_"] ++aminoapps.com##.overflow-scroll-sidebar > div ++/top_ad. ++##.ad_widget ++||booster-vax.com^ ++||advg.jp^$third-party ++||wontonsnosite.com^ ++##.o-ads ++##.ad-300X250 ++##.adv-ad ++##.penci-google-adsense-2 ++||glitteridentifiernavy.com^ ++||quiapountaxed.com^ ++/ads/gpt/* ++##.static-ad ++/ad/top. ++/pubmatic_ ++||tubecorporate.com^$third-party ++##.puff-advertorials ++###footerAd ++progameguides.com###top-sticky-sidebar-container ++##.main-add-sec ++##.adstop ++##.ad-unit-text ++##.ad.center ++orteil.dashnet.org###smallSupport ++##.ad-300X250-body ++##.center-ad ++@@||astatic.ccmbg.com^*/prebid$script,domain=linternaute.com ++||d3hib26r77jdus.cloudfront.net^ ++###adsBottom ++##.non-empty-ad ++##div[id^="ad-div-"] ++||rockcloudspace.com^ ++||katecrochetvanity.com^ ++||atwounlit.com^ ++_asyncspc. ++gamepressure.com###baner-outer ++##.adv-center ++||adnimation.com^$third-party ++||fastpic.org/g/f.js ++##.sponsored-header ++investopedia.com###performance-marketing_1-0 ++investopedia.com##.partnerlinks ++||visors-airminal.com^$popup ++##.inner_ad ++||o18.click^$popup ++||glugherg.net^ ++##.advert-inner ++##.card-ad ++##div[id^="adrotate_widgets-"] ++.lk/ads/ ++||cloudfrale.com^ ++||adquery.io^$third-party ++##.is-desktop-ads ++##iframe[id^="google_ads_frame"] ++###ad-9 ++##.advertisement-title ++||dita6jhhqwoiz.cloudfront.net^ ++||smopy.com^$third-party ++||adexchangegate.com^ ++?type=ad& ++||ltkcdn.net/ltkrev.js ++readcomiconline.li##.divCloseBut ++||wawlingcuba.com^ ++adultgifworld.com,babeshows.co.uk,boobieblog.com,fapnado.com,iseekgirls.com,small-breasted-teens.com,the-new-lagoon.com##a[href^="http://refer.ccbill.com/cgi-bin/clicks.cgi?"] ++##.homead ++||poshhateful.com^ ++/servlet/view/* ++##.SidebarAd ++||commercial.daznservices.com^ ++##.mobileadunit ++###ad_mobile ++##.programtic-ads ++||jiffspogonia.com^ ++##.adss-rel ++||weby.aaas.org^ ++_460_60. ++##.ad728x90 ++||doubleclick.net^$popup ++timesofindia.indiatimes.com##.paisa-wrapper ++||lataurir.com^ ++forums.anandtech.com,forums.pcgamer.com,forums.tomsguide.com,forums.tomshardware.com,forums.whathifi.com,redflagdeals.com###header_leaderboard ++##.ad-mod ++||driddleurease.com^ ++||wyhwcgvchpmdf.com^ ++coinmarketcap.com##.trending-sponsored ++###main-ad ++###sponsored-links ++##[data-ad-cls] ++###amazon-ads ++###ad-wrapper ++||umekana.ru^ ++##.Sidebar-ad ++=300x250; ++##.advert-banner ++##.gad_container ++||15e06619a4.com^ ++||workplaceidenticalincompetent.com^ ++##.adg-rects ++||bn5x.net^ ++###sponsorAdDiv ++||vgowyarau.com^ ++||lankychaosrun.com^ ++||eacdn.com^$popup ++##.mobileAd ++##a[href^="https://pb-track.com/"] ++||acesbashlyk.com^ ++||nutritionrumblelocus.com^ ++##.adsense-box ++###article_ad ++##.adInfo ++##.ad-heading ++##.adcenter ++/a/ads/* ++||lickingimprovementpropulsion.com^ ++-468x60- ++##.sponsored-text ++||flippantbliss.com^ ++###rightrail-ad ++/ad_icons/* ++###ad-wrap2 ++rt.com##.banners__border ++##.innerAds ++||sunglassesmentallyproficient.com^ ++##.vce-header-ads ++xozilla.com##.brazzers-link ++@@||adblockplus.org^$generichide ++||axiomszanjona.com^ ++||significantoperativeclearance.com^ ++##.header-ad-wrap ++##.leftAd ++ok.xxx##.bn-title ++##.s-ad ++||boostcpm.su^ ++||golden-gateway.com^ ++##.ContentAd ++||budvawshes.ru^ ++||goasrv.com^ ++||pahtgq.tech^ ++||bullads.net^ ++/banner/ad/* ++##.article__header-ad-slot ++||domslc.com^ ++||agloowie.com^ ++||rescuephrase.com^ ++##.dfp-top_leaderboard ++||ayahucapasso.website^ ++||pauhoano.com^ ++||ematicsolutions.com^$third-party ++||amazon-adsystem.com^$popup,domain=twitch.tv ++##.ad-horizontal ++##.adSpace ++##.mod_ad_container ++##.banner_ad_link ++||solemik.com^ ++||360yield.com^$domain=spiegel.de ++@@||banner.yt^$image,domain=socialblade.com ++##.ad-sense-ad ++##.ads-bg ++/web/ads/* ++||fordgitter.com^ ++||psurigrabi.com^ ++##.header-top-ad ++##.ad-slot-ph ++webmd.com##.top-picks ++##.ad_div ++/728_90. ++||rtbsystem.org^ ++||masakeku.com^ ++##a[href^="https://engine.phn.doublepimp.com/"] ++##div[id^="google_dfp_"] ++##.ad--inner ++||6b5dfbc74e.com^ ++/^https?:\/\/www\.[0-9a-z]{8,}\.com\/[0-9a-z]{1,4}\.js$/$script,third-party,domain=dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.watch|dood.ws ++##.googleads ++###adSense ++/adv.png ++dailymail.co.uk##.puff_pastel ++||cash-ads.com^ ++##display-ad-component ++||limulushazard.com^ ++##.ads300 ++##.InArticleAd ++||pinkyads.quest^$popup ++/api/ads? ++##.advert-right ++/google_ads_ ++||lowrihouston.pro^ ++##.ad-slot-article ++||effectivecpmgate.com^ ++||touphipt.com^ ++##.ad-container-wrapper ++##.ad_bg ++##.__isboostOverContent ++/wppas/* ++||disparagethence.com^ ++||veoxa.com^$third-party ++###admpudyn2 ++##.advert-content ++fandom.com###featured-video__player-container ++||honestlyvicinityscene.com^ ++||boostcdn.net^ ++##.ad-element ++##.wp_bannerize ++/ad_script. ++/adframes. ++||optyruntchan.com^ ++##.clsy-c-advsection ++||glainsee.com^ ++##.adriverBanner ++##.ads_wrap ++###ads-right ++||buzzonclick.com^$third-party ++bigtitslust.com,sortporn.com##.pignr.item ++||bannerbridge.net^$third-party ++##.ad_google_shhide ++##.ads-image ++##.lrec-container ++knowyourmeme.com##.rectangle-unit-wrapper ++##.vce_adsense_widget ++##.vce_adsense_wrapper ++||jhlcrejfi.com^ ++||gigacpmserv.com^ ++##.ads_728x90 ++/ad-scroll. ++||offoonguser.com^ ++||hetaruvg.com^$popup ++###dfp-header ++##.adsense-container ++##.ad-disclaimer ++##.ads-div ++##.refreshInarticleAd ++##.sponsor-block ++||6fe24753fb.com^ ++||bravoedkilan.com^ ++||understoodreceivermisunderstand.com^ ++||sunnyseries.com^$popup ++agedbeauty.net,data18.com,pornpics.com,vipergirls.to##a[href*="/go/"] ++###ad-wrap ++##[href^="https://join3.bannedsextapes.com"] ++||tubemov.com^ ++||rjhbcghmln.com^ ++||9xob25oszs.com^ ++gfinityesports.com,realsport101.com##.connatixPS ++||advertising-cdn.com^ ++##.HomeAds ++||cyih0e43aty7.com^ ++gab.com##[aria-label*="Sponsored:"] ++##.ad-disclaimer-container ++||indebtedatrocious.com^ ++drtuber.com##.item_spots ++.tv/ads. ++||predictivdisplay.com^ ++/ad/banners/* ++caribpress.com###top_banner_container ++##.sticky-bottom-ad ++||googlesyndication.com/pagead/ ++||googlesyndication.com/pagead/$domain=spiegel.de ++##.ad-bar ++drtuber.com##.title-sponsored ++@@||spanishdict.com^$generichide ++@@||adtng.com/get/$subdocument,domain=hanime.tv ++||flogspci.com^ ++##.sponsored-slot ++||katecrochetvanity.com^$popup ++||jighucme.com^ ++##.ad-970-250 ++##.ads-here ++##.mvp-widget-feat2-side-ad ++/iframe/ad/* ++||allyes.com^ ++##.clickads ++||rifsjest.com^ ++scmp.com##.page-container__left-native-ad-container ++||ravenousdrawers.com^ ++||ctengine.io^$third-party ++||antrumsregrind.com^ ++##.ad_xrail_top ++###leaderboard-advert ++||richinfo.co^ ++##.footer-ad-labeling ++/300-250. ++||psaukaux.net^ ++||alitems.site^ ++##.right-column-ad ++||hentaifox.com/js/ajs.js ++||hentaifox.com/js/slider.js ++||rentalcars.com/partners/ ++||dufai4b1ap33z.cloudfront.net^ ++||versionsgratersteward.com^ ++ytmp3.cc###a-320-50 ++###ad-8 ++.php?ad= ++##.promoAd ++||yapsteasers.com^ ++||icorp.ro^$third-party ++||ssl-images-amazon.com/images/*/MAsf- ++##.adsbox970x90 ++||ero-advertising.com^ ++||adblockerapp.info^$popup ++##.vce-ad-below-header ++###HeaderAD ++||faster-trk.com^ ++@@||xfreehd.com^$generichide ++pao.gr###section--sponsors ++##.banner_160x600 ++||web3ads.net^ ++||d188m5xxcpvuue.cloudfront.net^ ++||unrootpteroid.cam^ ++##.top-ad-block ++##.adwidget ++##.adWidget ++||eksiup.com^$third-party ++##.adspot ++##.liberty-ad-renderer-iframe ++##a[href^="https://t.adating.link/"] ++kijiji.ca##div[class^="sponsored-"] ++###ad_left ++||batteusp2hilenor.com^ ++##.ad_1 ++###extraAdsBlock ++##.ad-90 ++###footer_ads ++||news.smi2.ru^$third-party ++##.ad-250 ++||buipovexhav.com^ ++||hedrvszms.com^ ++||fostereminent.com^ ++||logoestulles.com^ ++##.ad-square ++###headerad ++##.ad--halfpage ++||ofhypnoer.com^ ++##.outbrain-widget ++||xlvludsigt.com^ ++/ad_img/* ++###contentAds ++###sponsored-links-alt ++##.taboolaArticle ++||mamydirect.com^ ++@@||mui.com^$generichide ++perfectgirls.net##.banner-wrapper ++=728x90; ++||vianoivernom.com^ ++##.caja_ad ++##.taboola-placeholder ++||videocampaign.co^ ++###sidebar-ad-1 ++stadiumastro.com##.Ads ++|http*://*?$popup,third-party,domain=pornhub.com|redtube.com|tube8.com|youporn.com|youporngay.com ++@@||g.doubleclick.net/gampad/ads?$domain=edy.rakuten.co.jp|pccomponentes.com|tv-tokyo.co.jp|voici.fr ++##.adwords ++si.com##.m-balloon-header--spacer ++pcgamesn.com##.saw-wrap ++||adrelayer.com^$third-party ++||grangilo.net^ ++/partnership-ads/* ++||invitingdoubloons.com^ ++||monetizer101.com^$third-party ++##a[href^="https://banners.livepartners.com/"] ++tomwans.com#@#.adright ++##.widget_ad ++###boxad ++||eergithi.com^ ++@@||jsfiddle.net^$generichide ++||mybetterck.com^$popup ++##.ad-spot ++knowyourmeme.com##.header-unit-wrapper ++||bongacams.com^$popup,third-party ++/video_ads. ++cd1025.com,myfigurecollection.net,prolificnotion.co.uk##.partner ++||passtechusa.com^ ++||twinrdsrv.com^$popup ++||eiteribesshaints.com^ ++##.penci-google-adsense ++##.atf_adWrapper ++xfantazy.com##.partwidg1 ++###right_ad ++##.adv1 ++-720x90- ++||dopansearor.com^$popup ++||dooloust.net^$popup ++###gad728x90 ++||mediafuse.com^$third-party ++##.footerAd ++###BB1-ad ++###adContent ++||akmxts.com^ ++##.vce_adsense_expand ++.prebid& ++||adkaora.space^ ++||fruggedraids.com^ ++###stickyAd ++||ownlocal.com^$third-party ++##.adItem ++##.adv-label ++###sideAds ++###skyscraper_ad ++moneycontrol.com##.mf_radarad ++###sidebar-ad-2 ++||promos.camsoda.com^ ++###component-taboola-below-article-feed ++||vidhdthe.online/mavennofile.js ++||daisycontroversy.com^ ++###dfp-middle ++||cheeradvise.com^ ++people.com##.articleContainer__rail ++mail.com##.blocks-3 ++##.advert-banner-container ++##.ob_ads_header ++##.advertisement-box ++/main/ads/* ++||iphumiki.com^ ++##.adplace ++mangarockteam.com,nitroscans.com##.c-top-second-sidebar ++||saggrowledetc.com^ ++##.ad_title ++||d3f4nuq5dskrej.cloudfront.net^ ++||cuttooscete.com^ ++##.ad-outer ++##.ad-poc-admin ++##.pages__ad ++||godfulsiums.com^ ++##div[id*="ScriptRoot"] ++##.queued-ad ++###body_ad ++###gad300x250 ++||d1ev866ubw90c6.cloudfront.net^ ++10minutemail.net,eel.surf7.net.my,javatpoint.com###right ++freebdsmxxx.org###right ++mobafire.com##.exhibit-narrow ++/adboxes/* ++||dcmgptcbcrogl.com^ ++||resonance.pk^ ++##.firefly-sidebar-ad ++-publicidad. ++###ad-billboard ++##.promo_border ++##.verticalAd ++||damdiversereadiness.com^ ++||sortingwild.com^ ++||stopsrepetitious.com^ ++||ukhkcxmzesi.com^ ++animenewsnetwork.com##.gutter ++||phabycebe.com^ ++||d39ion77s0ucuz.cloudfront.net^ ++||ghableleader.xyz^ ++##.pageAdSkin ++||oeyiamwpj.com^ ++##.single-ad ++||funnyjunk.com/site/js/extra/pre ++calculatorsoup.com###RightSidebar ++##.ad--mid ++||mp3zik.net^$third-party ++||goingtocontent.com^ ++alphaporno.com,crocotube.com,hellporno.com,tubewolf.com,xbabe.com,xcum.com##.bnnrs-player ++||twinrdsyn.com^$popup ++###text_ad ++##.ie-adtext ++###leaderboard_728x90 ++amateur8.com##.is-av ++.com/?ad= ++###adv_sky ++##.ad--horseshoe ++##.teaser-ad ++||postaffiliatepro.com^$popup,third-party ++||hinchantickt.com^ ++||cuppinaruke.com^ ++||tpcserve.com^ ++||dummieseardrum.com^ ++##.ads_box_type1 ++##.sponsor-box ++##.ad__300x250 ++||bngprl.com^ ++||kxnggkh2nj.com^ ++@@||doubleclick.net/gampad/*adPositionName%3Dsuperbanner_$xmlhttprequest,domain=spiegel.de ++##.adunit_leaderboard ++/468_60. ++##.ads-cont ++||egadvertising.com^$third-party ++##.ads-single ++##.ad_xrail ++##.storyAd ++@@||googleoptimize.com/optimize.js$script,domain=wallapop.com ++##.ad_300250 ++##.midAdv-cont2 ++/images/adv- ++/taboolaArticle. ++dawn.com##.radWrapper ++||vooshagy.net^$popup ++##.desktop-lazy-ads ++##.u-ads ++||bemobtrcks.com^ ++##.ad-mobile--sticky ++##.o-ads--center ++||aj2495.online^ ++||flvrbgvpbehhu.com^ ++bravotube.net##a[href^="/cs/"] ++||kangaroohiccups.com^ ++/zcredirect? ++||nshynvupjnm.com^ ++||turacousequent.com^ ++/banner.cgi? ++||wpnjs.com^ ++||player.sendtonews.com^$third-party ++||onvictinitor.com^$third-party ++/ad_images/* ++##[data-role="tile-ads-module"] ++||wwsrjaskrf.com^ ++||bro3.biz^ ++||propadsviews.com^$popup ++##.slate-ad ++||ad-cheers.com^ ++||voqally.com/hub/app/ ++##.adinner ++###admputop2 ++##.ad_72890 ++||ca6ac9b0e5.com^ ++||disploot.com^ ++||drmjxoaaslsn.com^ ++||prakritinfixed.com^ ++comicbook.com##.oas ++armageddonexpo.com,audiforums.com,f1gamesetup.com,ferrarichat.com,hotrodhotline.com,jaguarforums.com,pypi.org,thebugle.co.za,waamradio.com,wbal.com,webtorrent.io##.sponsors ++/plugins/ads/* ++animenewsnetwork.com##.iab ++||morrowfreezer.com^ ++##.bsaProContainerNew ++||adadvisor.net^$third-party ++||katukaunamiss.com^ ++||utrosy.com^ ++##.adpost ++||fbcdn2.com^ ++||numberschord.com^ ++||sportrecs.com/redirect/embed/ ++.info/ads/ ++##.middle_ad ++##.ads-marker ++##.dfp_unit-ad_container ++||coxalscyth.com^ ++###div-insticator-ad-5 ++##.desktop_ad ++##[data-css-class="dfp-inarticle"] ++##.parent-ad-desktop ++||bulrev.com^ ++/textads? ++##.adv-banner ++||beevakum.net^ ++##.ads-col ++||download-ready.net^ ++||drldgfscmjgim.com^ ++||fmgroupdist.com/mafanikio/$image,domain=bdsmtest.org ++live94today.com##.js-demo-avd ++||lafastnews.com^ ++##.top-advert ++-adserver/ ++###ad-main ++##.feed-ad ++##.wide-ad-new-layout ++##.ads_tb-c ++@@||smallseotools.com^$generichide ++||synthesissocietysplitting.com^ ++||chicoryapp.com^$third-party ++##.adv300 ++###ad_right_box ++###advertise ++###LeftAd ++||lqcqhkgoer.com^ ++###adsTop ++||riverhit.com^ ++_120x600_ ++/ad-server.$~script ++###adframe:not(frameset) ++##.googleAd ++/get_ads. ++||libertycdn.com^ ++/adfile/* ++||cobnutsvalure.com^ ++||disrobegilded.com^ ++||d22sfab2t5o9bq.cloudfront.net^ ++###adcontent ++||stunninglover.com^ ++||vethojoa.net^ ++###ads-blog ++||trustx.org^$third-party ++###Ads_BA_SKY ++##.advert-block ++##.table-ad ++@@||google.*/ads/$generichide,domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk ++||camarondo.com^ ++##.adsense-block ++##.ad--skyscraper ++##.adSizer ++##.first_ad ++###postads ++/dfp-ads. ++###adrig ++##a[href^="https://affiliate.rusvpn.com/click.php?"] ++gelbooru.com##.footerAd2 ++bravotube.net##.box-left ++||zwaar.org^$third-party ++###interstitial_ad ++##.gallery-ad-lazyload-placeholder ++###IC1-ad ++@@||ton.twimg.com^$domain=ads.twitter.com|analytics.twitter.com ++||siteoid.com^ ++||dizipal223.com^ ++##.desktopads ++##.leader_ad ++||fd5orie8e.com^ ++##.pageAdSkinUrl ++bravotube.net,spanishporn.com.es##.brazzers ++||topvisitnow.com^ ++||kompoz2.com/js/take.max.js ++##.ADStyle ++||searchsecurer.com^ ++###IC2-ad ++/nativead/* ++##.adChoice ++##.panel-ad ++||ign.com/zdadkit2.js ++###adSkin ++##.sgAd ++filmibeat.com,goodreturns.in,mykhel.com,oneindia.com###verticleLinks ++||advertur.ru^$third-party ++###ad600 ++##.artstyle__advertisement ++||staithecrinion.com^ ++/adword. ++##.ad--sponsor-content ++##.adcont ++||poedb.tw/image/torchlight/ ++/adsby. ++bravotube.net##.inplb3x2 ++###ads_text ++starsinsider.com##.pub-container ++##.top-leaderboard-ad ++cheese.com,fflogs.com,investorplace.com,warcraftlogs.com###bottom-banner ++##.header-advertising ++||sociomantic.com^ ++||1ts17.top^ ++/showad_ ++tinyurl.is##a[href^="mailto:sportspanel4"] ++##.search-ad ++comicbook.com,popculture.com##[id^="native-plus-"] ++/ads/js_ ++||snammar-jumntal.com^ ++##.hb__ad ++##.leftad ++##.native.ad ++newsmax.com##.nmsponsorlink ++newsmax.com##.nmsponsorlink + [class] ++||recreativ.ru^$third-party ++sextb.net##.sextb_300 ++##.adtxt ++gelbooru.com##[href^="https://buymyshit.moneygrubbingwhore.com/"] ++##.rs_ad_block ++||duscleouphes.com^ ++_adsetup_ ++||apvdr.com^ ++||mdxidbcodehpy.com^ ++||pftservice.click^ ++_ad_banner. ++###ads1_box ++###ads2_box ++##.adv_120_600 ++##.at-sidebar-ad ++||2mo3neop.de^ ++||eempacmy.com^ ++||ponderousmuffled.com^ ++||remedyeloise.com^$popup ++||wea5lkaf63loos8a.com^$popup ++vice.com##.fixed-slot ++xgroovy.com##.headP ++@@||autotrader.co.uk^*/advert$~third-party ++||linkonclick.com^$popup ++||drf8e429z5jzt.cloudfront.net^ ++||loathepimpery.com^ ++||toroidscentry.com^ ++||adserving.unibet.com^$popup ++||dmzjmp.com^ ++forums.anandtech.com,forums.pcgamer.com,forums.tomsguide.com,forums.tomshardware.com,forums.whathifi.com###rightcol_top ++##.flex-ad ++###ad-special ++##.TrackedBannerPromo ++###admasthead ++||wonderhsjnsd.com^ ++##.ad-head ++##.ad02 ++@@||guim.co.uk/uploader/$image,~third-party ++##.myAds ++##.div_banner468 ++||ibillboard.com^$third-party ++||painfulpropaganda.com^ ++/images/adv/* ++||ad.eplayer.is^ ++##.variableHeightAd ++||owoxauky.com^ ++||adition.com^$domain=spiegel.de ++forums.anandtech.com,forums.pcgamer.com,forums.tomsguide.com,forums.tomshardware.com###footer_leaderboard ++##.nav_textads ++||hollerscanelos.com^ ++||0f659ec191.com^ ++##.ad-no-notice ++||divaduolite.com^ ++##.ad--center ++||pardongaskins.com^ ++||dopjfbdvatxlhe.com^ ++||masture.mobi^ ++###topad1 ++||luminosoocchio.com^ ++||coojaiku.com^ ++||purchaserteddy.com^ ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Anzeige von"]) ++||fishki.net/code? ++@@||fonts.googleapis.com^$stylesheet,domain=up-4ever.com|up-4ever.org ++##.background-ad ++##.m-ad__wrapper ++##.js-dfp-ad ++allthatsinteresting.com,scientificamerican.com##.footer-banner ++/336x280. ++##[data-revive-zoneid] ++##.oi-header-ad ++##div[id^="ad-position-"] ++||hegiraquirl.com^ ++||got-to-be.com^$popup ++medicalnewstoday.com,psychcentral.com##.css-1cg0byz ++##.AdvertisementText ++##.ad-placeholder-leaderboard ++##.header__leaderboard-ad ++###IC3-ad ++||daughtersanything.com^ ++/getad/* ++##.sidebar_ad ++###ad-right ++||pacontainer.s3.amazonaws.com^ ++||highconvertingformats.com^ ++##.ads_160 ++||forlumineoner.com^ ++||malinesmanses.com^ ++.php?nats= ++xrprightnow.com##.adv-wrapper ++/adnotice. ++flaticon.com##.adobe ++###ad-slot-1 ++zerohedge.com##.AdvertisingSlot_placement__b8TLC ++liveuamap.com##.passby ++###admpudyn3 ++##.ad-slot-wrapper ++hbr.org##.partner-center ++||vcdnads.ru.com^ ++##.zmgad-right-rail ++/adserver.$popup ++##a[href^="https://prf.hn/click/"][href*="/creativeref:"] > img ++@@||ssl-images-amazon.com/images/$image,domain=affiliate-program.amazon.co.uk|affiliate-program.amazon.com|affiliate-program.amazon.in|affiliate.amazon.co.jp|afiliados.amazon.es|associados.amazon.com.br|associates.amazon.ca|associates.amazon.cn|partenaires.amazon.fr|partnernet.amazon.de|programma-affiliazione.amazon.it ++/adtags. ++||3movs.*/sd3/ ++/adsrv/* ++##.bottomAd ++##.ad03 ++/wp-auto-affiliate-links/* ++||antijamburet.com^ ++||glimpsemankind.com^ ++###googleads ++##.ad-728 ++##.adfooter ++###adv-halfpage ++##.ad-display ++||leonoutgaze.com^ ++-ads.php? ++##.fixed_ad ++azernews.az##.banner-block ++##.adcode ++##.topAds ++||petchesa.net^ ++###admpufoot ++##.ad_200 ++||educedsteeped.com^ ++/reklam.$domain=~github.com|~reklam.com.tr ++###div-insticator-ad-6 ++##.AdTagModule ++##.fig-ad-content ++||xprivate.cc^ ++||3movs.*/su4unbl- ++wcostream.com##.reklam_pve ++||bngwlt.com^ ++/ad/side_ ++||ignimgs.com/ign/pogoadk.js$script,domain=ign.com ++||mynkzqogcd.com^ ++formula1.com##.js-promo-item ++@@||einthusan.tv/prebid.js$script,~third-party ++##.center_ads ++||uscnvdcxttnh.com^ ++rightmove.co.uk###propertyplayer ++##.horizontalAdText ++||pdn-1.com^ ++##.left_ad ++autosport.com,motorsport.com##.ms-hapb ++thepiratebay.org###meta-right ++||scrumsrokey.com^ ++###billboard_ad ++||rtbrennab.com^ ++himovies.to,home-barista.com,rarpc.co,shtfplan.com,warecracks.com,washingtontimes.com##a[onclick] ++||a2nn5eri7ce.com^ ++##.rightrail-display-ad ++||contentiq.com^$third-party ++||qrlsx.com^ ++facebook.com,facebookcorewwwi.onion##article[data-ft*="\"ei\":\""] ++||smartredirect.de^$third-party ++peekvids.com##.card-deck-promotion ++##.nativead ++/soralink.js ++||shakeegi.com^ ++###sticky-ads ++##.m-block-ad ++?advertiserid=$domain=~adadyn.com|~outbrain.com|~seek.co.nz|~seek.com.au ++###bm-HeaderAd ++##.at-header-ad ++##.native-ad-slot ++##.sideads ++##.AdsInnov_responsive_ad ++##.ad-sp ++###adBottom ++||deloplen.com^ ++/showad/* ++##.ad__align ++##.container--ads-leaderboard-atf ++playvids.com##.add_href_jsclick ++||nuiinxpzbur.com^ ++tetris.com##.verticalAx ++||biqle.org/swp.js ++###ad-header-2 ++###ad-header-3 ++##.ad-tower-container ++||goodbusinesspark.com^ ++##.top_ad_wrapper ++##.asideAd ++racedepartment.com,resetera.com,satelliteguys.us##.samCodeUnit ++forum.lewdweb.net,forums.socialmediagirls.com##.samCodeUnit ++###iqadtile3 ++||servicesrc.org^ ++###ad-leader ++##.ad_float ++/fload.js ++##.adsense-area ++###ad-mpu ++###adtagheader ++/adframe? ++###zeus_top-banner ++##.ad_warn ++nintendolife.com##.insert ++||3movs.*/ab- ++||dibsemey.com^ ++||sigilsspeiss.com^ ++##.leader-ad ++videosection.com##.iframe-adv ++nuvid.com##.rel_right ++||d22ffr6srkd9zx.cloudfront.net^ ++##a[href^="https://go.nordvpn.net/aff"] > img ++||inkestyle.net^ ++###content_ads ++##.story__top__ad ++||lotsooms.com^ ++classy-online.jp,thelocal.at,thelocal.ch,thelocal.de,thelocal.dk,thelocal.es,thelocal.fr,thelocal.it,thelocal.no,thelocal.se#@#.ad_container ++mirror.co.uk##.shopwindow-adslot ++##.banner_240x400 ++||beenoper.com^ ++||chaferfathom.com^ ++||camschat.net^ ++###dfp-wallpaper-wrapper ++##.grid-ad ++||drailsaculeus.com^ ++###adspace ++##.tout-ad ++||refpa.top^ ++_160_600_ ++##.ad-bottom-container ++videosection.com##.video-item--adv ++||haughtydropszoology.com^ ++||realpython.net/tag.js ++||ovibospeseta.com^ ++/ads-vast- ++###iqadtile5 ++##.Post__ad ++##.adRectangle ++##.ads-google-top ++##.footer-advert ++||b44b115392.com^ ++||ratchgablet.com^ ++||resetmascara.com^ ++games.washingtonpost.com##[class^="DisplayAd_"] ++||whugesto.net^ ++##.ads_right ++##.app_nexus_banners_common ++###ad-sky ++@@||scrippsdigital.com/cms/videojs/$stylesheet,domain=scrippsdigital.com ++###companionAd ++###sponsored-recommendations ++||atptour.com^*/sponsors/ ++metro.co.uk##.metro-discounts ++||gaigroak.com^ ++###iqadtile8 ++||trafficsan.com^$third-party ++##.ads-side ++jizzbunker.com##.ftrzx1 ++||wiglessernes.com^ ++nintendolife.com,purexbox.com,pushsquare.com##.for-desktop ++||adblockanalytics.com^ ++||phouvemp.net^ ++##.ads-google-bottom ++everydaykoala.com,playjunkie.com##[class*="__adv-block"] ++##.ad_bottom_mpu ++||reginasfreyr.com^ ++##.anchored-ad-widget ++||feature.fm^$third-party ++||gualacaharm.com^ ++klmanga.com,klmanga.net,shareae.com##.float-ck ++asiangaysex.net,gaysex.tv##.float-ck ++||rs-stripe.com^ ++||hbid.ams3.cdn.digitaloceanspaces.com^ ++###footerads ++##.ad-banner-leaderboard ++israelnationalnews.com###banner-sticky ++||pelisnetwork.com^$third-party ++||vazypteke.pro^ ++###adLink ++##.full-width-ad ++||migrantspiteconnecting.com^ ++||blablahub.com^ ++##div[data-adzone] ++##.mapped-ad ++##.section-sponsor ++||graifugh.net^ ++/adsearch.$domain=~adsearch.fr ++##.sponsoredContent ++###floatads ++##.ad-post-footer ++||zaamuvqteety.com^ ++||gliksekr.net^ ++||jubsaugn.com^$popup ++##.content_ad ++youtube.com##.ytd-video-masthead-ad-primary-video-overlay-renderer ++||washdaycalmly.com^ ++||adblockultra.com^$popup ++/adv/sponsor/* ++##.ad-slot-replies-header ++##.latest-ad ++cbc.ca##.bigBoxContainer ++||kesmatic.com^$popup ++##.leaderboard-ad-component ++||chatheez.net^ ++||forlumineontor.com^ ++||d1voskqidohxxs.cloudfront.net^ ++##.ad-superbanner ++##.article-top-ad ++||instant-gaming.com/affgames/ ++##.ad_728_90 ++##.ad__sticky ++##.ad_crown ++medicalnewstoday.com##.css-20w1gi ++/ad.aspx? ++###iqadtile16 ++###ad_dfp_rec1 ++###dfp-ia01 ++||bongacams10.com^$popup ++porn300.com,pornodiamant.xxx##[class^="abcnn_"] ++##div[class^="Display_displayAd"] ++||gearsora.com^ ++||juntfemoral.com^ ++informer.com###ad0 ++##[href^="https://stvkr.com/"] ++forex-gold.net,mangarockteam.com##.demand-supply ++hentai2read.com##.zonePlaceholder ++||geishascoset.com^ ++||89522f8d3f.com^ ++||inseparablelunchwasted.com^ ++||latvik.com^ ++||deviatemysticallocking.com^$popup ++||cdn.vaughnsoft.net/abvs/ ++newsmax.com###divArticleSpecialLinks ++bing.com##.ra_car_block ++peekvids.com###mediaPlayerBanner ++##.ad--inArticleBanner ++||moochescramper.com^ ++##.single-ads ++dexerto.com##.aspect-video ++/manageads/* ++##.Ad_container ++.ng/ads/ ++_ad_close. ++##.widget_ads ++||exwotics6heomrthaoi4r.com^ ++##.mm-banner970-ad ++##.ad_sidebar ++##.horizontal-ad-wrapper ++||vaugroar.com^ ++||qfvedpldkde.com^ ++##.markplace-ads ++||kaprila.com^$third-party ++||guerrilla-links.com^ ++###pubexchange_below_content ++##.adslot__ad-wrapper ++##.slider-ads ++##a[href^="https://black77854.com/"] ++||contextendless.com^ ++##.block_ad ++###ad-fullbanner2 ++-banner-ads-$~script ++###advert1 ++||ad.style^$third-party ++##.channel_brand_ad ++##.ad__item ++##.ad_fullwidth ++##.ads-3 ++##.adsblock ++||mandatorycaptaincountless.com^ ++||welfarefit.com^ ++spiegel.de##.emsAnzeige ++##aside[id^="adrotate_widgets-"] ++||xad.com^ ++###rightrail_pos1_ddb_0 ++||d3ithbwcmjcxl7.cloudfront.net^ ++/expop.js ++##.c-googleadslot ++##.marketplace-ad ++||workplaceidenticalincompetent.com^$popup ++everydaykoala.com,playjunkie.com##[class*="__adspot-title-container"] ++###top_ad_banner ++##.right-top-ad ++forums.tomshardware.com###rightcol_bottom ++###dfp-ia02 ++||69v.club^ ++##div[id^="gpt_ad_"] ++||whuptaiz.net^ ++##.headAd ++||aigneloa.com^ ++###gpt-ad-1 ++_ad1.$~stylesheet,domain=~messenger.com ++||variousformatscontent.com^ ++games.dailymail.co.uk,nba.com##div[class^="DisplayAd_"] ++##.ad-container-bottom ++###rightrail_pos2_ddb_0 ++###connatix_placeholder_desktop ++##.ad-slot-container-1 ++||wiztube.xyz/banner/ ++##.adace-slideup-slot-wrap ++##.ad_amazon ++||jerkindeducer.com^ ++/House-Ad- ++##.HomeListBlack__AdBlock ++##.adslot__ad-container ++||djinscavalla.com^ ++##.taboola-ad ++||steghsolio.com^ ++||yieldlove-ad-serving.net^ ++###adSkyscraper ++##.article-ad-left ++||lbampvjuvfv.com^ ++##.adver-block ++/admax.$domain=~admax.cn|~admax.co|~admax.co.jp|~admax.eu|~admax.fi|~admax.hu|~admax.info|~admax.jp|~admax.net|~admax.nu|~admax.org|~admax.se|~admax.shinobi.jp|~admax.us ++##.product-ads ++||pushsar.com^ ++||452tapgn.de^ ++||recordingshipping.com^ ++||xryecggeczcvpk.com^ ++allmonitors24.com,streamable.com##.topbanner ++||easyads28.mobi^ ++||xmlrtb.com^ ++/scripts/ad/* ++@@||smartadserver.com/h/nshow?siteid=$script,domain=dr.dk ++##.offads ++||eroadvertising.com^$third-party ++##.video-archive-ad ++.xyz/ads/ ++||limitationvolleyballdejected.com^ ++||trk-imps.com^ ++###Ads_BA_BS ++##.adk-slot ++||vaspo33.com^ ++##.ad_holder ++###masterad ++##.ad_mobile ++||easy-ads.com^$third-party ++egmnow.com##.outbrain-wrapper ++fastpic.ru##.vright ++||gounlimited.to/js/pop.js ++/mellowads. ++###ad_container ++###adBox ++medicalnewstoday.com##[data-empty="true"] ++medicalnewstoday.com##[style*="line-height: 0;"] ++||oatmeallump.com^ ++absolutelyrics.com,cdrlabs.com,exiledonline.com,findtheword.info,realitywanted.com,revizoronline.com,snapfiles.com###topbanner ++##.mm-embed--sendtonews ++bestlifeonline.com,eatthis.com##.vi-video-wrapper ++###adsContainer ++##.adsMvCarousel ++##.ads-txt ++||pa5ka.com^ ++bulbagarden.net,planetminecraft.com###leaderboard_atf ++||onscroll.com^$third-party ++###rightAd_rdr ++##.ads-social-box ++planetminecraft.com###box_300atf ++xhamster18.desi##.xplayer-banner ++||caltat.com^$third-party ++/webads/* ++vg.no##.webboard ++@@||dilbert.com/assets/ad-vendor-$script,~third-party ++||dq3yxnlzwhcys.cloudfront.net^ ++||wunteetoco.com^ ++###topbannerad ++##.ad-expand ++##.ad160x600 ++@@||jwpcdn.com/player/plugins/googima/$script,domain=iheart.com|video.vice.com ++##.product-ad ++||apprefaculty.pro^$popup ++###ad-rectangle1 ++##.ad-medium-rectangle-base ++||biniprobit.com^ ++_advertise-$domain=~linkedin.com ++||preemiesurnap.com^ ++||goohimom.net^ ++###outbrain-wrapper ++##.ad-t ++/ad_position= ++/embed/ads. ++||pubmatic.com^$domain=spiegel.de ++||javhub.net/av/js/cpp.js ++##.widget_wp_insert_ad_widget ++##.ad--rightRail ++##.fullbanner_ad ++##.rhs-mrec-wrapper ++||ajfnee.com^ ++||indexesport.com^ ++breitbart.com##.a-wrapper ++###advertising_1 ++##.channel_ad_2016 ++@@||entitlements.jwplayer.com^$xmlhttprequest,domain=iheart.com ++||xwlketvkzf.com^ ++||diasciaplatly.com^ ++versus.com##.lead_top ++###adslot_top ++###ad_footer ++||neptuntrack.com^$popup ++||indooritalian.com^ ++/getad? ++||berlipurplin.com^ ++###ad_header ++###crt-adblock-a ++##.ads-1 ++##.connatix-holder ++##.footer-advertisement ++##.footerad ++||hallucinatepromise.com^ ++||quwecgjiibsq.com^ ++||twentyalight.com^ ++||dwr3zytn850g.cloudfront.net^ ++||d3bbyfw7v2aifi.cloudfront.net^ ++/adshow. ++metservice.com##.Header ++##.ad-bottom-right-container ++##.ad-top-right-container ++||mobcrummymow.com^ ++||squirrels.getsquirrel.co^ ++||wmkqxqwpyodrl.com^ ++##.rectangle-ad ++||cambro.tv/post1.js ++||dq06u9lt5akr2.cloudfront.net^ ++hentai2read.com##[href^="https://camonster.com"] ++||outwhirlipedeer.com^ ++##.ad-cell ++###advertisement_belowscreenshots ++###iqadtile1 ++||vetcheslegumen.com^ ++##.pt-ad--container ++||ign.com/s/js/zad.js ++##.ad-side-top ++cheese.com,coingecko.com,fflogs.com,foodlovers.co.nz,foodnetwork.ca,investorplace.com,kurocore.com,skift.com,thedailywtf.com,theportugalnews.com,warcraftlogs.com###top-banner ++##a[href^="http://click.payserve.com/"] ++##.double-ad ++convertingcolors.com,slickdeals.net##.abc ++nintendolife.com,purexbox.com,pushsquare.com##.item-insert ++yahoo.com##div[data-beacon] > div[class*="streamBoxShadow"] ++||takefile.link/promo/$third-party ++###header-advertising ++soccerway.com##.banner-content ++||hisainog.com^ ++||wg-aff.com^$popup ++###advertising_320 ++||zhej78i1an8w6ceu.com^ ++##.ads2 ++###ad-side ++/housead/* ++###adv-banner ++||hgub2polye.com^ ++###iqadtile2 ++||openexaminationgist.com^ ++##.adHeight270 ++##.rightadHeightBottom ++##.advert2 ++##.d3-c-adblock ++planetminecraft.com###box_300btf ++###ads_300x250 ++###ad-header-1 ++||bobbytubate.com^ ++.prtrackings.com% ++###adv-native ++||hentaicdn.com/cdn/v2.assets/js/exc ++usatoday.com##.gnt_x__lbl ++##a[href^="https://www.bang.com/?aff="] ++||metsaubs.net^ ++||raptapee.com^ ++versus.com###bill_bottom ++||lowsteelixor.com^ ++###ad1-placeholder ++##.ad-leaderboard-base ++||temporarilyruinconsistent.com^ ++macrumors.com##.sidebarblock2 ++||kvlzsbxn.com^ ++##.side-advert ++###AdServer ++###ni-ad-row ++gameslol.net,yabiladi.com##.pub_header ++comicbook.com##.mobile ++###crt-adblock-b ++@@||tlc.com^$generichide ++||ladyphapty.com^$popup ++||grown-t-code.com^ ++thefappeningblog.com##.cl-exl ++globalsecurity.org#@##adtop ++||ndroip.com^ ++###dsk-banner-ad-b ++##.ad_skyscraper ++||ptoushoa.com^ ++||dropkickmedia.com^$third-party ++##.ad-bnr ++||akutapro.com^$popup ++||alimama.com^$third-party ++##.c-ad-size3 ++##.sponsorlink ++##a[href^="https://go.strpjmp.com/"] ++manualslib.com##.abp_adv_s-title ++||nui.media^ ++/pop2.js ++||allusionpressed.com^ ++||mxuiso.com^ ++hindustantimes.com##.affilaite-widget ++##.sidebaradbox ++##.th-ad ++last.fm##.tonefuze ++||camwhores.tv/t6e6d2454fa5.js ++/partnerads/* ++@@||curiositystream.com^$generichide ++##.adZone ++||lzxdx24yib.com^ ++||orangunset.com^ ++||schemeabsolutejanuary.com^ ++||xlgfvswcljeazr.com^ ++opensubtitles.org###watch_online ++||mororvaginas.com^ ++||nan46ysangt28eec.com^ ++gamertweak.com##.bannerdiv ++gamertweak.com##.kfzyntmcd-caption ++||d3tozt7si7bmf7.cloudfront.net^ ++###adv_11 ++||audiencerun.com^$third-party ++##.ad-full-width ++##.ad_img ++||interstitial-07.com^ ++/ad-web. ++###pushDownAd ++||1ts17.top^$popup ++||pubhotmax.com^ ++hqporner.com##.black_friday ++##.adv_300_300 ++##a[href^="https://go.xtbaffiliates.com/"] ++||atevaccination.com^ ++/bsa-pro- ++##.m1-header-ad ++||wovensur.com^ ++##.item-container-ad ++usatoday.com##.gnt_tb ++/adpopup. ++maturetubehere.com###lotal ++imgur.com,pushsquare.com,songlyrics.com##.masthead ++||wlkgrnqvuy.com^ ++##.AdMod ++yelp.at,yelp.be,yelp.ca,yelp.ch,yelp.cl,yelp.co.jp,yelp.co.nz,yelp.co.uk,yelp.com,yelp.com.ar,yelp.com.au,yelp.com.br,yelp.com.hk,yelp.com.mx,yelp.com.ph,yelp.com.sg,yelp.com.tr,yelp.cz,yelp.de,yelp.dk,yelp.es,yelp.fi,yelp.fr,yelp.ie,yelp.it,yelp.my,yelp.nl,yelp.no,yelp.pl,yelp.pt,yelp.se#?#div[class^=" container_"]:-abp-has(a[href^="/adredir?"]) ++###popupAd ++##.adsleft ++###dfp_bigbox_2 ++letras.com##.cnt-space-top ++bestlifeonline.com,eatthis.com##.inline ++##.ad--tabletDesktop ++##.buttonAd ++||precessfetidly.com^ ++||schemeabsolutejanuary.com^$popup ++himovies.to,musichq.net##[href="https://zoro.to"] ++/sticky-ads- ++###adright ++||foughtdicecup.com^ ++anysex.com###main_video_fluid_html_on_pause ++###adv_01 ++/getad.$domain=~getad.pl|~getad.spd.pt ++##.adcolumn ++ign.com##.zad ++/wp-bannerize/* ++###stripadv ++||relappro.com^ ++###dfp_bigbox_recipe_top ++###rightAD ++##a[href^="https://refpazkjixes.top/"] ++||fluffynyasquirell.com^ ++@@||wikidata.org^$generichide ++###adv_02 ++||zdywcdjoerv.com^ ++||vasstycom.com^$popup ++##.full-ad ++||graizoah.com^ ++||directionssecondary.com^ ++||taroads.com^$popup ++##.horizontal_ad ++###adscontainer_background_back_index1100_all ++||bluehost-cdn.com/media/partner/images/ ++||mzol7lbm.com^ ++||kaisaimy.net^ ++||cullflitted.com^ ++##.top-ad-wrap ++/120x600_ ++###adSlot2 ++||ponk.pro^ ++timesofindia.indiatimes.com##._3JJMX ++.prebid-bundle. ++/468x60- ++||bidadx.com^ ++###ad_top_banner ++/ad-choices. ++###adslot-download-abovefiles ++##.ad-slug ++##.mar-block-ad ++##.railad ++##.sidebarAd ++##.sticky-ads-content ++||f35bb81112.com^ ++||refutationtiptoe.com^$popup ++||d31ph8fftb4r3x.cloudfront.net^ ++@@||ebaykorea.com/ADS/$image,domain=gmarket.co.kr ++||blueswordksh.com^ ++##.media-viewer__ads-container ++##.ob_dual_right > .ob_ads_header ~ .odb_div ++datacenterdynamics.com,fansshare.com,hairboutique.com,iconarchive.com,imagetwist.com,memecenter.com,neoseeker.com,news18.com,paultan.org,unexplained-mysteries.com,windsorite.ca,xtra.com.my##div[style*="width:300px"] ++-adbanner. ++||closureevaporatefume.com^ ++||adserved.net^ ++/adman_ ++##.adTopWrapper ++||tzhkydcgdmbz.com^ ++##a[href^="//thaudray.com/"] ++||thoupsou.net^ ++||addoor.net^$third-party ++/ad_banner/* ++||tallowstwangle.com^ ++||adrama.to/bbb.php ++##.adset ++##.premium-mpu-container ++||revsci.net^ ++##.adv-bottom ++||1talking.net^ ++||diritymirkish.com^ ++||kiynew.com^ ++||adsniper.ru^$third-party ++##.a728x90 ++##.ad_leaderboard ++||kernelthanks.com^ ++||samazd.com^ ++||orchestraanticipation.com^$popup ++?advertiser= ++||gobicyice.com^ ++||spoutable.com^ ++###advert_container ++###ad-sidebar ++futbol24.com##.adv2 ++##.widget-sponsor ++linuxinsider.com###cboxOverlay ++tribunnews.com###div-Inside-MediumRectangle ++##.ads-link ++||policityseriod.info^ ++###admpubottom2 ++##.background-adv ++||stvkr.com^ ++infowars.com##.css-1upmbem ++/native-ads- ++###mainui-ads ++||ftte.xyz^$popup ++||4wnet.com^ ++###admpudyn4 ++worldtimebuddy.com###toprek ++worldtimebuddy.com##.block2 ++acdn.live###toprek ++##a[href^="https://maymooth-stopic.com/"] ++@@||live.streamtheworld.com/partnerIds$domain=iheart.com ++###ad300 ++###ad_img ++||whatfinger.com^$third-party ++||cadlsyndicate.com^ ++||cheetieaha.com^ ++###iqadtile9 ++everythingrf.com,futbol24.com##.skyscrapper ++||cer43asett2iu5m.com^ ++###ad--article-top ++##.adslot_collapse ++##.advertisement-bottom ++afrivibes.net,airplaydirect.com,americaoutloud.com,bigeye.ug,completesports.com,cryptomining-blog.com,cryptoreporter.info,dotsauce.com,espnrichmond.com,flsentinel.com,forexmt4indicators.com,freedomhacker.net,gamblingnewsmagazine.com,gameplayinside.com,goodcarbadcar.net,kenyabuzz.com,kiwiblog.co.nz,mauitime.com,mkvcage.com,movin100.com,mycolumbuspower.com,naijaloaded.com.ng,newzimbabwe.com,onislandtimes.com,ouo.press,punchng.com,radiobiz.co.za,reviewparking.com,robhasawebsite.com,sacobserver.com,seguintoday.com,theinsider.ug,themediaonline.co.za,theolivepress.es,therep.co.za,thewillnigeria.com,tntribune.com,wantedinafrica.com,wantedinrome.com,wschronicle.com##img[width="300"] ++mature.community,mature.mom,mature.studio,milf.community,milf.mom,milf.plus,milf.sexy,pornhub.com,sports.sexy##img[width="300"] ++usatoday.com##.gnt_tbr ++##a[href^="https://googleads.g.doubleclick.net/pcs/click"] ++||chgzguhkue.com^ ++##.side_ads ++||liqwid.net^$third-party ++||autoads.asia^$third-party ++||hoazinangles.com^ ++###ad--sidebar ++##.mgid_3x2 ++||ijqgefuq.com^ ++||locomotiveconvenientriddle.com^$popup ++spiegel.de##a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"] ++sporcle.com##.IMGgi ++||siteground.com/img/affiliate/ ++||jango.com^$third-party ++##.easyAdsBox ++##.default-teaser__adv ++##.strawberry-ads__pretty-container ++###gg_ad ++||hentaifox.com/dhf.html ++##a[href^="https://torguard.net/aff.php"] > img ++##.ads_footer ++##.responsive-ads ++1news.co.nz,actionnewsjax.com,boston25news.com,easy93.com,kiro7.com,wftv.com,whio.com,wpxi.com,wsbradio.com,wsbtv.com,wsoctv.com##.arcad_feature ++/main/ad/* ++/ads2/* ++||bestwinterclck.name^ ++##.adbottom ++/banner_ads/* ++##.adssidebar2 ++##.mvp-flex-ad ++##.ck-anyclips ++japan-webike.be,japan-webike.ca,japan-webike.ch,japan-webike.dk,japan-webike.ie,japan-webike.it,japan-webike.kr,japan-webike.nl,japan-webike.se,webike-china.cn,webike.ae,webike.co.at,webike.co.hu,webike.co.il,webike.co.uk,webike.com.ar,webike.com.bd,webike.com.gr,webike.com.kh,webike.com.mm,webike.com.ru,webike.com.tr,webike.com.ua,webike.cz,webike.de,webike.es,webike.fi,webike.fr,webike.hk,webike.id,webike.in,webike.la,webike.mt,webike.mx,webike.my,webike.net,webike.net.br,webike.net.pl,webike.ng,webike.no,webike.nz,webike.ph,webike.pk,webike.pt,webike.sg,webike.tw,webike.vn#@#.ad_box ++||deadlineevaporate.com^ ++||nqn7la7.de^ ++||poolbreezecheer.com^ ++||temporarylikewise.com^ ++||atroer.com^$popup ++||jubna.com^$third-party ++_ad_bottom. ++/banner_ad. ++||tedmonastyd.com^ ++##.articleADbox ++##.adSkyscraper ++||behootpokeys.com^ ++##.centerAd ++infowars.com##.css-1vj1npn ++###captcha-adspace ++sportinglife.com##div[class^="Layout__TopAdvertWrapper-"] ++||vertamedia.com^$third-party ++||msgose.com^ ++||pbcde.com^ ++##.adSkin ++##.align.Ad ++||effectivegatetocontent.com^ ++##.gpt-breaker-container ++||majorworkertop.com^ ++##.ad--billboard ++/afu.php?$popup +###adscontainer_banner_new_bottom_index_1060 +###adscontainer_banner_new_second_index_1060 +###adscontainer_banner_new_top_index_1060_2 -+||zeechumy.com^ -+##.ad-component -+/adbanner/* -+bing.com##.pa_sb -+/asyncspc. -+##.box_ad -+##.ad-centered -+/oncc-ad. -+||loameepu.com^ -+healthline.com###DMR1__slot -+###ads-banner -+||hadsimz.com^ -+###menu-ads -+||commonvivacious.com^ -+##.widget_adv_text -+/banners/728 -+||dotcom10.info^ -+@@||g.doubleclick.net/tag/js/gpt.js$domain=spiegel.de -+_right_ads_ -+||d2vwl2vhlatm2f.cloudfront.net^ -+||wpncdn.com^ -+###top-ads-container -+||8429a46b31.com^ -+txxx.com##.herrmhlmolu -+txxx.com##.polumlluluoopp -+usnews.com###bfad-slot -+##.wd-adunit -+||sponsorpay.com^ -+||anymoresentencevirgin.com^$popup -+##.sponsor_ad_section -+##LEADERBOARD-AD -+###dfp-header -+##[href^="http://residenceseeingstanding.com/"] -+||densgauche.com^ -+###adv_top -+##.detail-ads -+mobafire.com##.exhibit-vertical -+ebay.co.uk,ebay.com,ebay.com.au#?#.mfe-lex:-abp-has(h2:-abp-contains(sponsored)) -+###adContent -+mirror.co.uk##.shopwindow-advertorial -+||jywigigu.com^ -+youjizz.com###footer -+##.adCreative -+||click.aliexpress.com^$subdocument,third-party -+||stootsou.net^ -+||d2dyjetg3tc2wn.cloudfront.net^ -+##[id^="ad-wrap-"] -+##.Ad--awareness-bp -+||leerilypimelea.com^ -+||mmctsvc.com^ -+##.adActive -+gamesradar.com,tomshardware.com,whathifi.com##.vid-present -+##.horizontalAd -+||orqsvaxn.com^ -+||300daytravel.com^ -+/show_ad. -+||greatdexchange.com^$popup -+||ghhuqa.org^$popup -+##.skyscraper-ad -+/ad-overlay- -+/gpt.min.js -+##.vce-ad-below-header -+###dfp-leaderboard -+||trmit.com^ -+###adsTop -+##.video-ad-container -+||profitabledisplaycontent.com^ -+macrumors.com##.tertiary -+||innovationthinkingslick.com^ -+||r2b2.io^$third-party -+9jaflaver.com,alaskapublic.org,allkeyshop.com,ancient-origins.net,animeidhentai.com,arabtimesonline.com,biblestudytools.com,carmag.co.za,cnx-software.com,coingolive.com,cryptoslate.com,digitallydownloaded.net,dotesports.com,downturk.net,forum.ragezone.com,fresherslive.com,gizmochina.com,glodls.to,guidedhacking.com,hackernoon.com,hlstester.com,indishare.org,linkhub.icu,litecoin-faucet.com,mbauniverse.com,mediaite.com,myreadingmanga.info,newsfirst.lk,nexter.org,owaahh.com,parkablogs.com,pastemytxt.com,premiumtimesng.com,resultuniraj.co.in,retail.org.nz,rtvonline.com,thinknews.com.ng,timesuganda.com,totemtattoo.com,trancentral.tv,ultshare.com,vumafm.co.za,wccftech.com,yeyeboyz.net,yugatech.com,zmescience.com##[href*="bit.ly/"] -+||iodideeyebath.cam^ -+skysports.com###mpu-1 -+##a[href^="//syndication.dynsrvtbg.com/"] -+##.adHeadline -+||4484986022.com^ -+||adnmore.co.kr^$third-party -+||rndhaunteran.com^ -+##.ad-margin -+###floatingAd -+###adSense -+historydaily.org,israelnationalnews.com,news12.com,pwinsider.com,usahealthcareguide.com##.banner-top -+||hurstplants.com^ -+##.header_ads-container -+###ads-before-content -+##.sh-section-ad -+||azulcw7.com^ -+||nsfwadds.com^ -+##.ad-wireframe -+||qualitydestructionhouse.com^ -+||injusticeamend.com^ -+||goosebomb.com^$popup -+###adv-top -+/ad6. -+##.ads_player -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sp-shiptrack-desktop-carousel_desktop-yo-shiptrack_0"] -+@@||jsdelivr.net^$script,domain=thepiratebay.org -+||prodmp.ru^ -+investopedia.com##.partnerlinks -+bbc.com#?##sticky-mpu:-abp-has(.dotcom-ad-inner) -+||ad.netmedia.hu^ -+##.red-adv -+##.adboxcontent -+ada.org,globes.co.il,techcentral.ie,texteditor.co,versus.com##.topBanner -+##.advertisement-content -+||instinctiveads.com^ -+##.banner_300x250 -+/textad? -+/jquery.adx. -+@@||thefreedictionary.com^$generichide -+||ptutchiz.com^ -+##.ad-970 -+||caoinelining.com^ -+/adfiles/* -+||5toft8or7on8tt.com^ -+||dcmgptcbcrogl.com^ -+||kaoftrknb.com^ -+||appealsfini.com^ -+##.ad-wrapper-bg -+##.ad-mpu-bottom -+##div[data-adunit-path] -+##a[href^="https://www.camsoda.com/enter.php?id="] -+###ad_468_60 -+||hostingcloud.racing^ -+||pubgenius.io^$third-party -+||ziffdavis.com^$third-party -+/webadvert.$domain=~webadvert.ru -+||mybetterck.com^ -+##.ad_336 -+dashnet.org###support -+##.advert-top -+forums.digitalspy.com,marketwatch.com#@#.has-ad -+###HeaderAD -+###iqadtile2 -+||gvt2.com^ -+||jk4lmrf2.de^ -+||unloadpoetry.com^$popup -+###adslot1 -+##.advads-widget -+##.ads.bottom -+##[class^="AdvertisingSlot_"] -+##.ad-splash -+##.banner-ad-container -+||augrezoa.net^ -+##.adv-block -+||beb2644a65.com^ -+||alright.network^$third-party -+##.google-ad-placeholder -+||dlexkxqacleb.com^ -+crazygames.com##.css-1h6nq0a -+##.wrapper_advertisement -+||immenseflakespyramid.com^ -+##.ad_300x600 -+##.rightColumnAd -+##.ad-300-600 -+pornhub.com,pornhubthbh7ap3u.onion,redtube.com,tube8.com,tube8.es,tube8.fr,youjizz.com,youporn.com,youporngay.com##[style*="base64"] -+||zog.link^ -+||adjust.com^$script,third-party -+orteil.dashnet.org###smallSupport -+##.withBanners__ad -+||servingcdn.net^ -+##.ad_element -+###iqadtile5 -+##a[href^="https://www.nutaku.net/signup/landing/"] -+##.plainAd -+###BB1-ad -+##.player-section__ad-block -+##.player-section__ad-wrapper -+||creativesumo.com^ -+/300x600- -+##.bigbox-ad -+||efe3e01295.com^ -+##.ad-wireframe-wrapper -+||enamberchivies.com^ -+||paht.tech^ -+||desipearl.com^$third-party -+##.google-dfp-ad-caption -+##.vlog-ad -+||ads4g.pl^ -+##.advertisingFooterXL -+###adv-Bottom -+##.gallery-ad -+##.google-dfp-ad-wrapper -+##.rail-ads-1 -+indianexpress.com,roblox.com,spotify.com,wccftech.com##.ads-container -+video.laxd.com##.ads-container -+###iqd_mainAd -+##.ad--button -+||deceittoured.com^ -+||pringed.space^ -+zerohedge.com##.AdvertisingSlot_placement__b8TLC -+pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Promocionado por"]) -+##.ad-tile -+##.skyscraper-ad-container -+||am15.net^ -+##.adverts -+/display_ad$domain=~ads.instacart.com -+@@||adsafeprotected.com/services/$domain=reuters.com -+||datawrkz.com^$third-party -+##.MapLayout_BottomAd -+##.ad-one -+###iqadtile3 -+###iqadtile1 -+##.firefly-sidebar-ad -+||tpdads.com^ -+##.SimpleAd -+@@||reastatic.net/150x200-$domain=realestate.com.au -+###ads-bottom -+##.leaderboard_ad_container -+tinyurl.is##a[href^="mailto:sportspanel4"] -+##.adsbymahimeta -+##.ad-anchor -+||qqjar.ru^$third-party -+alaskahighwaynews.ca,bowenislandundercurrent.com,burnabynow.com,coastreporter.net,dawsoncreekmirror.ca,delta-optimist.com,moosejawtoday.com,newwestrecord.ca,nsnews.com,piquenewsmagazine.com,princegeorgecitizen.com,prpeak.com,richmond-news.com,squamishchief.com,tricitynews.com,vancouverisawesome.com##.slot -+gamesradar.com,tomshardware.com,whathifi.com##.jwplayer__widthsetter -+##.Ad-Container -+||cdncontentstorage.com^ -+##.SponsorAds -+##.Ads-leaderboard -+###rightAd -+||waspsbiga.com^ -+||deliverytraffnews.com^ -+||berchsoda.com^ -+||pierlinks.com^ -+##.ad-border -+||pxfindtwo.com^$popup -+/ad-bottom. -+##.advertisement-banner -+/adsense_$domain=~adsense.googleblog.com|~support.google.com -+?adCount=$~xmlhttprequest -+||freudunsneck.com^ -+||affluentshinymulticultural.com^$popup -+investing.com##.midHeader -+###content_ad -+/lazyad- -+||loajawun.com^ -+##.aarpe-ad-wrapper -+||wasoffspring.com^ -+bendsource.com,federalnewsnetwork.com,lonelyplanet.com,sevendaysvt.com,styleweekly.com,tasty.co,tucsonweekly.com##.Ad -+##.adv_txt -+##.content_ad -+##.ad-lb -+##.center-ad -+@@||itv.com/itv/tserver/$~third-party -+##.ad-two -+##.ad-below -+/adv.css? -+||mmngqvbfuzenlk.com^ -+##.am-bazaar-ad -+||ad.linksynergy.com^ -+||jfecfzzuwevyqc.com^ -+||sundayscrewinsulting.com^ -+_ad_units_ -+gelbooru.com##.footerAd2 -+##.sidebar-top-ad -+###ad-unit -+||cateredjapish.com^ -+###headerad -+||napesropes.com^ -+##.advert1 -+###AdBox2 -+||doruffletr.com^$popup -+||ekgloczbsblg.com^ -+##.ad-slider -+lightnovelpub.com##.lnadcontainer -+/ad/common_ -+gelbooru.com##[href^="https://buymyshit.moneygrubbingwhore.com/"] -+=ad_iframe& -+@@||adservex.media.net/videoAds.js?$script,domain=forbes.com -+##.adv300x100 -+##[data-css-class="dfp-inarticle"] -+||uwoaptee.com^ -+namemc.com###skin_wrapper -+##.ad_btn -+.com/ad? -+||cfbwxgsa.com^ -+/adimg/* -+||profitablecpmgate.com^$popup -+###Ad-Container -+||mt34iofvjay.com^ -+-adfliction. -+##.adHolder -+##.adsBanner -+||vichycobourg.com^ -+-ad-300x250. -+##.header-top-ad -+||uwzknashjrhw.com^ -+/api/v1/ad/* -+/images/ads_ -+||curbimpress.com^ -+##.ad-mb -+||benonblkd.xyz^ -+##.ad-top-container -+healthline.com##.css-1d8h8gm -+upornia.com,upornia.tube##.wssvkvkyyee -+##.slot_integrated_ad -+##.single-ad -+##.ad_1 -+##.adszone -+##.ad-336x280 -+##.square-ad -+||animikii-ana.com^ -+||rapillireddles.com^ -+||rusenov.com^ -+###ad-wrap2 -+||snugglethesheep.com^ -+ok.porn,pornhat.com##.bn -+##.adsBlock -+||betzapdoson.com^ -+||bimathyphy.com^ -+browserhow.com,charlieintel.com,chromeunboxed.com,cryptoslate.com,fandomwire.com,flickeringmyth.com,gameinfinitus.com,hdmovies4u.live,indianhealthyrecipes.com,iotwreport.com,quickanswer.blog,reneweconomy.com.au,rezence.com,rok.guide,twistedvoxel.com##.code-block -+mb.com.ph##.code-block -+fyptt.to,japaneseasmr.com##.code-block -+huffingtonpost.co.uk,huffpost.com##.entry__right-rail-width-placeholder -+||faa39957a3.com^ -+###iqadtile16 -+##.ads-horizontal -+##.ad_inner -+###fpad2 -+###my-adsFPT -+||adspirit.de^ -+##.following-ad-container -+##.ad-bigbanner -+||waitressdivisionspring.com^ -+###ad-wrap -+||adrealclick.com^$third-party -+||citatumpity.com^ -+webmd.com##.module-top-picks -+_ad.php? -+||rbthre.work^ -+/adlog. -+###iqd_rightAd -+@@||vk.com/images/ads_$domain=vk.com -+##.advert-center -+||rdtk.io^$popup -+##.advertBlock -+flashscore.co.uk##.boxOverContent__banner -+##.c-adDisplay_container -+||koudooze.net^ -+##.ad-fixed -+||riverhit.com^ -+/^https?:\/\/.*\.(club|news|live|online|store|tech|guru|cloud|bid|xyz|site|pro|info|online|icu|monster|buzz|fun|website|photos|re|casa|top|today|space|network|live|work|systems|ml|world|life)\/.*/$domain=1vag.com|4tube.com|asianpornmovies.com|getsex.xxx|glam0ur.com|hclips.com|hdzog.com|homemadevids.org|hotmovs.com|milfzr.com|porn555.com|pornforrelax.com|pornj.com|pornl.com|puporn.com|see.xxx|shemalez.com|sss.xxx|streanplay.cc|thegay.com|thegay.porn|tits-guru.com|tubepornclassic.com|tuberel.com|txxx.com|txxx.tube|upornia.com|vjav.com|voyeurhit.com|xozilla.com -+kotaku.com###commerce-inset-wrapper -+###adv_center -+_468_60. -+||web.adblade.com^ -+##.newspack_global_ad -+##.contentad -+||kyyydxpptcl.com^ ++||bvwymqlhouxy.xyz^ ++##.dfp-leaderboard ++##a[href^="https://track.afcpatrk.com/"] ++##.row-ad ++digg.com##div[id^="bsa-zone_"] ++/ad-blocking-advisor/* ++###adSlot3 ++||d1pn3cn3ri604k.cloudfront.net^ ++||adstock.pro^$third-party ++||gloodsie.com^ ++##.articleAd ++###ad-skyscraper ++||eugenerhachi.com^ ++/wppas. ++dotesports.com,gamepur.com###top-sticky-sidebar-wrapper ++opensubtitles.org##.a_1.a.p ++flaticon.com##.sp-slidesgo-container ++/blog_ads/* +###top_ads -+.ads.controller. -+/banner.cgi? -+||lowrance.top^ -+animedao.to,elevenforum.com##.gads -+##.ng-ad-container-300-250 -+||alecupknuffe.com^ -+indiedb.com,moddb.com##.supporter -+##a[href^="https://a.bestcontentweb.top/"] -+@@||tidal.com^$generichide -+##.c-adDisplay -+||omoonsih.net^ -+||aqua-adserver.com^$third-party -+||01d0c91c0d.com^ -+||dandiesvicua.com^ -+##.textAds -+||networkbest.ru.com^ -+||poshhateful.com^ -+@@||ad.doubleclick.net/ddm/clk/*http$popup -+.html?clicktag= -+motherless.com##div > table[style][border] -+motherless.com##table[style*="max-width:"] -+||luvaihoo.com^ -+###iqd_align_Ad -+##amp-fx-flying-carpet -+##.stickyad -+||mangahub.io/iframe/ -+##.block-ad-entity -+||cinarra.com^$third-party -+upornia.com,upornia.tube##.eveeecsvsecwvscceee -+upornia.com,upornia.tube##.wcccswvsyvk -+/ads-05. -+/spcjs.php -+||fuzeelamby.com^ -+motherless.com##.top-referers -+||d2juccxzu13rax.cloudfront.net^ -+##.leaderboard-ad-container -+thepiratebay.org###meta-right -+###adholderContainerHeader -+###br-ad-header -+||cash-ads.com^ -+##.ad.widget -+||pyzwwzzooq.com^ -+###adTop -+||mysjozauyuwwm.com^ -+||onclicksuper.com^ -+##.adsense-336 -+||revenuenetwork.com^$popup -+##.ad-code -+||stithujogle.pro^ -+/static/ad/* -+##.card-ads -+yahoo.com##div[data-beacon] > div[class*="streamBoxShadow"] -+||grooseem.net^ -+##.Advertisment -+||sunporno.com/sunstatic/frms/ -+pornez.net##.video-sidebar -+||ced.sascdn.com^$domain=spiegel.de -+##.ad-post -+/gptprebidnative/* -+_right_ads. -+@@||optout.networkadvertising.org^$document -+hqporner.com##.black_friday -+###iqd_topAd -+||deewansturacin.com^ -+##.dfp_slot -+||psairtoo.com^ -+||markreptiloid.com^ -+||trustedgatetocontent.com^ -+||thoomsay.com^ -+/api/ad/* -+||preurllvrbrvng.com^ -+###ad-right -+rightmove.co.uk##._2X2laxgNfgPGfZQTFoPUsd -+###google_ad -+##.ad_widget -+##.sponsored-text -+||carextenuous.com^ -+##div[id^="ad-gpt-"] -+||innovationlizard.com^ -+###iqadtile8 -+##.bottomAd -+youjizz.com###onPausePrOverlay -+cbssports.com,nowthisnews.com,scout.com,seeker.com,thedodo.com,thrillist.com##.leaderboard-wrap -+/sticky-ad- -+investopedia.com###performance-marketing_1-0 -+||yfupfhqxmwvu.com^ -+/adblockdetect. -+||powerain.biz^ -+||ygamhusjtdzajm.com^ -+##.midAdv-cont -+##.ad-ctn -+/160x600. -+##.right_ads -+||molttenglobins.casa^ -+##.ads01 -+/ad-assets/*$~image -+###content_ad_2 -+||crrepo.com^ -+##.advert-bottom -+##.ad.center -+##.ad-250 -+thedailybeast.com##.Sizer -+/scripts/ads/* -+##.adv-banner -+##.footerAd -+||ijqgefuq.com^ -+##.ad-slot--top-banner-ad -+##.fbs-ad--top-wrapper -+##.rightAdsFix -+||outbidashes.com^ -+||shiryharu.pro^ -+||adfpoint.com^$popup -+##.subAdBannerHeader -+/footer_ads_ -+##.leftAdsFix -+||agloowie.com^ -+##.article_ad_top -+##.has-fixed-bottom-ad -+||paslsa.com^ -+##a[href^="https://bongacams2.com/track?"] -+##.ad-below-images -+||turbobit.net/pus/ -+||qzfegwpwdugb.com^ -+##.download_adv_text_video -+##.adsection -+||ad4989.co.kr^$third-party -+##.dfp-block -+||aeeg5idiuenbi7erger.com^ -+##.following-ad -+||c4dbb6a666.com^ -+##a[href^="https://chaturbate.com/affiliates/"] -+||google.com/favicon.ico$popup -+@@||dr.dk^*^sasfid=*&clicktag=$subdocument,domain=dr.dk -+##div[class^="Display_displayAd"] -+_ad_end_ -+##.channel_ad_2016 -+-ad-manager/$~stylesheet -+dictionary.com,thesaurus.com##aside[id$="728x90"] -+##.story-ad -+##.ads2 -+##.module-ads -+##.sponsor_ad -+##.adbadge -+@@||smartadserver.com/ac?nwid=3310^$script,domain=dr.dk -+||amplitudewassnap.com^ -+||atmnjcinews.pro^ -+||ipp.littlecdn.com^ -+##.ad__mobile-footer -+||adglare.net^ -+/ads2_ -+||yctamonieomgb.com^ -+###HeaderAd -+###rightrail_pos1_ddb_0 -+||0b07d5f0b1.com^ -+##.ad-loaded -+##.adsbygalaksion -+##.br-ad -+||littlecdn.com^$script -+##.header__ad -+/ad-provider. -+||parkingcrew.net^$third-party -+###home-ad -+##.iframe-ads ++##.advertisement_728x90 ++/admanager_$domain=~konograma.com ++###ad-slot-2 ++/advertising? ++##.mod_js_ad ++appleworld.today,closerweekly.com,deshdoaba.com,foreverconscious.com,intouchweekly.com,kkfm.com,lifeandstylemag.com,mensjournal.com,patriotfetch.com,pctechmag.com,robinhoodnews.com,rok.guide,rsbnetwork.com,showbiz411.com,thedriven.io,washingtonmonthly.com,wgow.com,wgowam.com,wlevradio.com##.widget_media_image ++||trustedcpmrevenue.com^$popup ++||katchouh.com^ ++||cupidonmedia.com^ ++###sticky-ad-header ++||loggatscowbyre.com^ ++||hqohjvold.com^ ++###ad_area ++##a[href^="https://www.infowarsstore.com/"] > img ++##.Ad--Align ++@@||brave.com/static-assets/$image,~third-party ++||caexdaerwplagr.com^ ++hitc.com,thefocus.news##.GRVMpuWrapper ++###ad_LargeRec01 ++##.adserverad ++||ber2g8e3keley.com^ ++||faipeeji.com^ ++||spatterjointposition.com^ ++##.ads-bing-bottom ++###DFP_top_leaderboard ++||jhoolbiaxial.com^ ++||torrentgalaxy.to/cache/bearable ++@@||ajax.googleapis.com^$script,domain=up-4ever.com|up-4ever.org ++@@||ajax.googleapis.com^$script,domain=imgbox.com ++##.top-right-ad ++||jqueryoi.com^ ++/ad_banner_ ++||voluumtrk.com^ ++||gpsecureads.com^$third-party ++||vic-m.co^ ++||xlwjgtscqzmd.com^ ++##.ad__content ++timeout.com##div[id^="ad-promo-"] +###iqadtile4 -+##.br-ad-wrapper -+||hazardousschooloutcry.com^ -+/ad-refresh- -+##.PageTopAd -+##.advert-title -+##.page-header-ad -+||adipolo.com^$third-party -+||adgrid.io^$third-party -+@@||codesandbox.io^$generichide -+##.Ligatus -+##.ad-small -+##.g-ad -+ezgif.com##div[style$="min-height:90px;display:block"] -+##.image-viewer-ad -+||quiapobood.com^ -+||republer.com^$third-party -+##[href^="https://rapidgator.net/article/premium/ref/"] -+##.image-viewer-mpu -+||opoxv.com^ -+###js-image-ad-mpu -+##.full-top-ad-area -+##.ad-90 -+##.widget_ad_layers_ad_widget -+###ads-left -+###rightrail_pos2_ddb_0 -+-article-ad- -+moddb.com##.nextmediaboxtop -+||suptur.online^ -+/gtm.js?$popup -+||didchinosdub.cam^ -+usnews.com##div[class^="Ad__Container-"] -+##.ad-scroll -+##.subAdBannerArea -+||netizen.co^$third-party -+@@||ebaykorea.com/ADS/$image,domain=gmarket.co.kr -+##.isAd -+##.header-ad-desktop -+/advertise_ -+||d36zfztxfflmqo.cloudfront.net^ -+||indebtedatrocious.com^ -+@@||informer.com^$generichide -+###ad_container -+.eu/ads/$domain=~scutt.eu -+##.ad-container-top -+||adx.io^$third-party -+||separatecolonist.com^ -+##.ad_space -+||metsaubs.net^ -+/meas.ad.pr. -+##.ad_728_top -+##.header-pencil-ad -+||intactscattered.com^ -+###adsBottom -+##.dfpAdUnitContainer -+###close-footer-ad -+cheese.com,fflogs.com,investorplace.com,warcraftlogs.com###bottom-banner -+###preroll_ads -+||pclk.name^ -+##.advertisement-box -+###ad-target -+||defetohi.com^ -+##.showAd -+bloomberg.com#@#.page-ad -+###advertise -+@@||sascdn.com/diff/templates/ts/dist/banner/sas-banner-$script,domain=dr.dk -+##div[id^="ad-position-"] -+||adblockerapp.com^$popup -+||fristminyas.com^ -+||advarkads.com^$third-party -+##iframe[id^="google_ads_frame"] -+##.ad-leader-plus-top -+||fpetwqpzqf.com^ -+||tagdeliver.com^$third-party -+||ghhuqa.net^$popup -+realestate.com.au##.header-leaderboard -+||doigtepyramid.com^ -+||tfosrv.com^ -+||turbobit.net/fd1/js/brinpopup.js -+xfantazy.com##.partwidg1 -+##.advertising-container -+###IC1-ad -+dailymail.co.uk##.puff_pastel -+||vbtrax.com^ -+/adition. -+||curledvolleyballexpense.com^ -+||juergeninez.com^ -+||ainaksis.com^ -+||sbfull.com/js/mainpc.js -+##.component-header-sticky-ad -+##.ad-close-button -+##.component-ar-horizontal-bar-ad -+||kamak-mab.com^ -+sunporno.com##.close-invid -+###after-dfp-ad-mid4 -+###admpubottom -+||admedia.com^$third-party -+euobserver.com,medicinehatnews.com##.top -+daporn.com,fpo.xxx##.top -+postimees.ee#@#.ad01 -+||koocoofy.com^ -+###ad_right3 -+##.floating-ads -+||adf.ly/js/display.js -+||animeheaven.ru/api/pop*.php -+||farehitchlower.icu^ -+###adslot2 -+##a[href^="https://natour.naughtyamerica.com/track/"] -+||onetouch12.com^ -+##.ads-here -+||76d1f732d1.com^ -+##.zeusAdWrapper -+##.o-ad-container -+###ad-left -+||xhhuhdgbk.com^ -+###article_ad -+||sneakyinfected.com^ -+##.inlinead -+##.inline_ad -+##.ad-size-leaderboard -+##.ad_wrapper_top -+###IC2-ad -+@@||freeplayervideo.com^$subdocument -+||wovazaix.com^ -+##.container--ads -+##.ad_notice -+||drtuber.com/footer_ -+##.inner-adv -+##.ad-size-medium-rectangle-flex -+/external_ad? -+/script/java.php?$xmlhttprequest -+##.sponsorLink -+||runeddivided.casa^ -+||adready.com^$third-party -+||aj2373.online^ -+||vmuid.com^ -+##.vce-header-ads -+###mobile-adhesion -+##.ad_300_600 -+/assets/ad/* -+.php?ad_ -+||kaurouby.net^ -+dailymotion.com##div[class^="VideoInfo__videoInfoAdContainer"] -+||player.avplayer.com^$third-party -+-banner-ad- -+||mscoldness.com^$popup -+##.ad--rectangle -+##.adv300 -+##.advertisement_300x250 -+||ttwscqlqmbcb.com^ -+/ad_tag. -+||fullcdn.ga^ -+||linkslot.ru^$third-party -+allmonitors24.com,streamable.com##.topbanner -+##a[href^="https://googleads.g.doubleclick.net/pcs/click"] -+||eroterest.net^$third-party -+##.end-of-article-ads -+||saptiledispatch.com^ -+||yxsgrdxga.com^ -+###ad_right_rail_flex -+/_/ads/* -+###ads-right -+apnaohio.com,miradiorumba.com#@##ad-header -+##.advert.skyscraper -+||adobe.com/td_redirect.html$popup -+###top_right_ad -+cuntest.net###banners -+||amitaephapse.com^ -+transfermarkt.co.uk,transfermarkt.com##.werbung-skyscraper-container -+##.advertisement-container -+##.sics-component__sticky-ad-placeholder -+||ddajztoum.com^ -+||condles-temark.com^ -+##a[href^="https://refpasrasw.world/"] -+###ad-sidebar1 -+###ads-by-google -+###ads_text -+youporn.com##[src*="Blob"] -+||swimsunleisure.com^ -+-160x600- -+_728x90- -+##.stickyadv -+###ads_300x250 -+##.dfp-interstitial -+memytutaj.pl#@##top-ad -+||nomorepecans.com^ -+###adunit -+/taboola-header. -+stuff.co.nz##.sics-component__app__top-leaderboard-ads-container -+||xhr0.xyz^ -+||porntry.com^$third-party -+##.ajdg_grpwidgets -+||miracslubs.com^ -+||zunsoach.com^ -+@@||adsafeprotected.com/vans-adapter-google-ima.js$script,domain=gamingbible.co.uk|ladbible.com|reuters.com -+.php?zone_id= -+||developermedia.com^$third-party -+##.mks_ads_widget -+###videoAdContainer -+##.ad__caption -+||exileinstinct.com^$popup -+||mmaaxx.com^$third-party -+##.ad-slot-sidebar -+||dummieseardrum.com^ -+||forfrogadiertor.com^ -+##.ad_rectangle -+###publicidad -+##.search-ad -+##.sidead -+##.ad_adInfo -+||adtarget.com.tr^$third-party -+###boxLREC -+##.adv-top -+/uploads/ads/*$domain=~bayie.com -+##.AdPlacementBannerSponsorship -+###quads-ad1_widget -+/ads?zone_id= -+##.player-ads -+||marfeel.com^$third-party -+||4f0b6fddef.com^ -+||doz1it.com^ -+||servg1.net^ -+/adsinteractive- -+/ad/img/* -+##.widget_300x250_advertisement -+##.ads-center -+/static/advertising/* -+||stickyadstv.com^$domain=spiegel.de -+||ezmob.com^$third-party -+/adrotate/* -+myreadingmanga.info##a[href^="https://www.dlsite.com/"] -+/content/ads/* -+-banner-ad. -+||d188m5xxcpvuue.cloudfront.net^ -+trueachievements.com##.nn_player_w -+/moneyball/ads/* -+##.ad--banner -+##.d3-o-adv-block -+||ccksdwtuzmadx.com^ -+||rzqqpamj.com^ -+/ad-layers- -+||kiltyyoginis.com^ -+||irchincsp.com^ -+/banners/468 -+##.adcont -+?category=ad& -+||pseekree.com^ -+##[href^="https://join3.bannedsextapes.com"] -+/pop_ad. -+||rlsospzbvquy.com^ -+##.leftAd -+###adBottom -+##div[id^="banner-ad-"] -+||lfstmedia.com^ -+###ad_left -+||canangalaities.com^ -+||tb.turbocap.net/a637rw3.js -+##.inner-ad-section -+literotica.com###b-top -+||nativemedia.rs^$third-party -+||kvezz.com^ -+###sponsorAdDiv -+||glssp.net^ -+###ad-bg -+##.ads300 -+##.quads-ad1_widget -+bigtitslust.com,sortporn.com##.pignr.item -+##.boxAd -+##.rightad -+||reflectedintegrity.com^ -+||7mmtv.tv/hgame/ -+##.mv_atf_ad_holder -+##.ad-embedded -+7mmtv.tv###mvspan_2_s_k_i_p -+pornhub.com,pornhubthbh7ap3u.onion##iframe[width][height*="px"] -+/adconfig. -+/upload/ads/*$domain=~ads.ae -+||deliverytrafficnews.com^ -+##.googleAd -+##.ins_adwrap -+||eshkol.io^$popup -+##.dtads-slot -+digitaltrends.com##.dtads-slot -+##.ad728x90 -+unsplash.com##div[data-ad="true"] -+##.dfad -+flaticon.com###soul-p -+computerweekly.com,techtarget.com,theserverside.com##.cls-hlb-wrapper-desktop -+##.gptSlot -+||prtrackings.com^ -+##.fig-ad-content -+##.ad__leaderboard -+/taboola-footer. -+||odonatainbowed.com^ -+##.home-ads -+||dacmaiss.com^ -+||ergadx.com^ -+as.com##.banner_sup -+##.AdUnit -+##.adv-label -+/adnostic/* -+/468_60. -+||bet365affiliates.com^$third-party -+###iqadtile9 -+##.ad-topbanner -+||adomik.com^$third-party -+||adacado.com^$third-party -+/prod/redirect.html?lu=$popup -+###AdsBillboard -+||0e24f9441d.com^ -+||vouruwou.com^ -+##a[href^="https://affiliate.rusvpn.com/click.php?"] -+||bonertraffic13.info^ -+##.adstop -+||itweepinbelltor.com^ -+###adslot3 -+##.outbrain-widget -+/delivery/spc. -+||dcwkgvoeufhnm.com^ -+||ftjcfx.com^ -+||qwerty24.net^$third-party -+##.etad -+##.custom_ad -+||netseer.com^$third-party -+/160x600- -+###adtop -+||mtttvrit.com^ -+nzherald.co.nz##.section-iframe -+||eabids.com^ -+||nextclick.pl^$third-party -+trueachievements.com##.lb_holder -+||koalaups.com^ -+||utarget.ru^ -+##.ads-social-box -+/pagead/ads? -+||sprinterchance.com^ -+/160x600_ -+##.ad_wide -+###ad_wallpaper -+##.responsive-ad -+##.ad300x600 -+###ad-sidebar2 -+##.dfad_first -+###AdBanner -+||videocampaign.co^ -+##.dfad_pos_1 -+||ayahucapasso.website^ -+||f1a75ead16.com^ -+youjizz.com###rightVideoPrs -+##.slider-ads -+avgle.com##img[src*=".php"] -+##.ads_middle -+||readpeak.com^$third-party -+##a[href^="https://engine.phn.doublepimp.com/"] -+pornhub.com,pornhubpremium.com,redtube.com##a[href^="https://ads.trafficjunky.net/"] -+###footer_ads -+||ads.audio.thisisdax.com^ -+###ads_superbanner1 -+###ad_holder -+||zabanit.xyz^ -+||cjvdfw.com^ -+/core-ads- -+##.ads--no-preload -+||smokesplical.com^ -+||leisurejust.com^ -+.org/ad- -+###adv_IntropageOvl -+bleedingcool.com,indy100.com,jamaicaobserver.com,pastemagazine.com###top_leaderboard -+##.adModule--outer -+##.adset -+avgle.com###aoverlay -+##.adModule--inner -+##.adbottom -+##.advert-content -+##.header-adv -+##.sticky-ad-wrapper -+||metahv.xyz^ -+##.adcenter -+##.ad__section-border -+armageddonexpo.com,audiforums.com,f1gamesetup.com,ferrarichat.com,jaguarforums.com,pypi.org,thebugle.co.za,waamradio.com,wbal.com,webtorrent.io##.sponsors -+perfectgirls.net##.banner-wrapper -+drtuber.com##.title-sponsored -+||aigneloa.com^ -+||paid.outbrain.com^ -+||onclickprediction.com^ -+||fastdxr.com^ -+||irenicaserrano.com^ -+##.card-ad -+##.view_center_ad -+drtuber.com##.item_spots -+forums.anandtech.com,forums.tomsguide.com,forums.tomshardware.com,forums.whathifi.com,redflagdeals.com###header_leaderboard -+/overture/*$script,subdocument -+##.inline-ad-wrapper -+##.bvp-ad -+||lataurir.com^ -+||4dsbanner.net^ -+||abdlnkjs.com^ -+###component-taboola-below-article-feed-2 -+||effectivecpmgate.com^ -+##.desktopads -+###ad-sidebar -+/bannerad. -+||bidsxchange.com^$third-party -+###IC3-ad -+##.view_bottom_ad -+/image/ad/* -+###admpumiddle -+##.ads-iframe -+/banner.gif? -+/top_ad. -+##.promoAd -+rt.com##.banners__border -+##.caja_ad -+##.penci-google-adsense-2 -+||highperformancedformats.com^ -+||affiliate.heureka.cz^ -+||ismovernm.xyz^$popup -+/ad_popup_ -+scmp.com##[id^="div-ad-"] -+://ads.$popup -+##.sticky-ads-container -+||rvmessage.online^ -+###adv_Skin -+||greedseed.world^$third-party -+##.m-block-ad -+||ernestindeedtradition.com^ -+?impr?pageid= -+@@||gocomics.com/assets/ad-dependencies-$script,~third-party -+##div[id^="dfp-slot-"] -+||snodlycaccias.com^ -+##.opd_adsticky -+/adRoll. -+||kveww.com^ -+.org/ad/$domain=~ylilauta.org -+||run-syndicate.com^ -+cbssports.com##.skybox-top-wrapper -+/VideoAd/* -+||psairees.net^ -+##.mod_ad -+##a[href^="https://go.hpyjmp.com/"] -+/sponsoredheadline. -+/120x600. -+@@||www.google.*/adsense/$~third-party,domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk -+##.optidigital-ad-center -+||cloudfront.net^$domain=igg-games.com -+||cloudfront.net^$domain=titantv.com -+##.ad-square -+||polarcdn-terrax.com^ -+###footerad -+##.ConnatixAd -+##.promoad -+##div[data-adname] -+?ZoneID=*&PageID=*&SiteID=$~image -+||utility.rogersmedia.com/wrapper.js -+/ads-pd. -+||slaydesperatelyimmensely.com^ -+/advertisers/*$domain=~ad-maven.com|~ads.pinterest.com|~datalift360.com|~home.tapjoy.com|~panel.rightflow.com|~propelmedia.com|~publisuites.com|~qubeslate.com -+||pncqcqdj.com^ -+||tracot.com^ -+###AdImage -+||effectdeuce.com^ -+##.ad-disclaimer-container -+cd1025.com,myfigurecollection.net,prolificnotion.co.uk##.partner -+##.left-ads -+||smartasset.com^$third-party -+/show_ads_ -+||5937081273.com^ -+||dspultra.com^ -+||peckleooze.com^ -+||uponelectabuzzor.club^ -+||d3ujids68p6xmq.cloudfront.net^ -+##.AdModule -+/bnrsrv. -+/modules/ad/* -+||d1r90st78epsag.cloudfront.net^ -+||tube.ac^$third-party -+##.footer-ad-labeling -+###ad_layer -+||ocqueroques.com^ -+##.ad-widget-wrapper -+||goosebomb.com^ -+||news.smi2.ru^$third-party -+##.MapLayout_BottomMobiAd -+yelp.at,yelp.be,yelp.ca,yelp.ch,yelp.cl,yelp.co.jp,yelp.co.nz,yelp.co.uk,yelp.com,yelp.com.ar,yelp.com.au,yelp.com.br,yelp.com.hk,yelp.com.mx,yelp.com.ph,yelp.com.sg,yelp.com.tr,yelp.cz,yelp.de,yelp.dk,yelp.es,yelp.fi,yelp.fr,yelp.ie,yelp.it,yelp.my,yelp.nl,yelp.no,yelp.pl,yelp.pt,yelp.se##.ABP -+||fakeerupriser.com^ -+||bigbolz.com^ -+||dotardberet.com^ -+/bidvertiser/tags/* -+##.adv_banner -+||gletsokr.com^ -+poe.ninja##.leaderboard-bottom -+poe.ninja##.leaderboard-top -+##.AdTagModule -+/sponsored-content- -+##.ad--overlayer -+##.ad-container--leaderboard -+||loggerbunty.com^ -+||manivalyrid.com^ -+||socalleddemocratstripe.com^ -+||bentent.steampiay.cc^ -+/revboostprocdnadsprod. -+###advert-1 -+||sinaunrelean.info^ -+##.aside-ad -+||gelbooru.com^$csp=script-src 'self' '*' 'unsafe-inline' *.gstatic.com *.google.com *.googleapis.com *.bootstrapcdn.com -+||visors-airminal.com^$popup -+jizzbunker.com,xxxdan.com##.rzx1 -+##a[href^="http://join3.bannedsextapes.com/track/"] -+##.header-ad-wrap -+||snailbodieshomesick.com^ -+##.middle_ad -+||condolencessumcomics.com^ ++##.ad-poc ++##.banner-advertising ++||featassuage.com^ ++||siutxxdk.com^ ++||snugslackmakeup.com^ ++||storialstepony.com^ ++gamepressure.com##.if-no-baner ++||ucbnxsmgdf.com^ ++rawstory.com#?#.body-description > div:-abp-contains(ADVERTISEMENT) ++###top-banner-ad ++||pstreetma.com^ ++@@||vk.com/ads$generichide ++##.leaderboard-ad-wrapper ++||sacegryri.com^ ++||cambro.tv/popin-min.js ++goal.com##[data-name="ad-leaderboard"] ++||punoocke.com^ ++##.dfp-wrapper ++##.p-ad-thumbnail-txt ++##.pop-out-eplayer-container ++###div-insticator-ad-9 ++##.ads_widget ++||soalonie.com^ ++/adunits/* ++||clickoutnetwork.care^ ++coinlean.com###topcontainer ++||juosmjtadx.com^ ++/deliverad/* ++##.Ad-Inner ++##.banner_728_90 ++###ad-slot-4 +||galopelikeantelope.com^ -+###ad_main_top_01 -+/overture.$script,stylesheet,domain=~overture.doremus.org|~overture.london|~overture.plus -+||exdynsrv.com^$popup -+||aigaithojo.com^$popup -+###AdServer -+##.ad-leaderboard-container -+||jounaque.com^ -+##.ad-container-inner -+/adv.png -+###ad_main_top_08 -+###adv_BoxBottom -+###adv-x39 -+##.DFPad -+-300-250. -+||get-me-wow.in^$popup -+##.advertiser -+###adv-x36 -+##.meta_ad -+||outhitcooler.com^ -+||utrosy.com^ -+###ads_top -+##[data-ad-cls] -+###left_ad -+||prf.hn^$third-party -+||dantbritingd.club^ -+||lwgadm.com^ -+||masterbate.pro^$third-party -+||agletmagilp.com^ -+macrumors.com##.sidebarblock -+##.AdSticky -+###skin-ad -+||zuphaims.com^ -+@@||cloud.mail.ru^$image,~third-party -+_video_ads/ -+###left_adv -+||purveystiralee.com^ -+||dwr3zytn850g.cloudfront.net^ -+##.advertisement-title -+||bngwlt.com^ -+||steepto.com^ -+etherscan.io##a[href^="https://goto.etherscan.com/"] > img -+##.leaderboard-ad-placeholder -+##.grid_ad_container -+##a[href^="https://pb-track.com/"] -+###ad_300x250_m_c -+##.railad -+##.ad_bg -+/assets/ad- -+##.o-ads -+||windsplay.com^ -+##.adsMvCarousel -+###adWrapper -+||boahoupi.com^ -+youtube.com##YTM-PROMOTED-VIDEO-RENDERER -+/adpartner. -+||prodaddkarl.com^ -+###taboola-below-article-thumbnails-express -+pixhost.to##.under-image -+||limulushazard.com^ -+##.general_banner_ad -+||unevenmankind.com^ -+/internal-ad- -+##.sheknows-infuse-ad -+readcomiconline.li##.divCloseBut -+||awafthealer.com^ -+##.adWidget -+||xozilla.com/player/html.php$subdocument -+||ebayclassifiedsgroup.com^$third-party -+||bngdyn.com^ -+||openx.net^ -+||optyruntchan.com^ -+##a[href^="http://ad.doubleclick.net/"] -+##.colombiaAd -+##.sponsored-slot -+bscscan.com##.d-lg-inline-block -+mobafire.com##.exhibit-narrow -+###popupAd -+||contalyze.com^ -+##.adv-bottom -+###sidebar_ad_1 -+##.ads-single -+||pinkyads.quest^$popup -+##.mod_ad_container -+##.rightrail-display-ad -+##[id*="MarketGid"] -+||ptaiksah.com^ -+###adcontent -+/adframe.$~script,~xmlhttprequest,domain=~adframe.com -+||pitchedfurs.com^$popup -+###adslot4 -+###adright -+##a[href^="http://www.coiwqe.site/"] -+##.single-top-ad -+##.fs_ads -+###mainui-ads -+##.AdPlacementMPU -+||dscex7u1h4a9a.cloudfront.net^ -+||contextendless.com^$popup -+||keep2share.cc/images/i/$third-party -+@@||smartadserver.com/3310/call$xmlhttprequest,domain=dr.dk -+gsmarena.com##div[style="margin-left: -10px; margin-top: 30px; height: 145px;"] -+||serdaive.com^ -+ndtv.com##.add__txt -+ndtv.com##.add__wrp -+@@||fastmail.com^$generichide -+##.floatingAds -+||bid-engine.com^ -+##a[href^="https://go.goaserv.com/"] -+/sponsored_ad/* -+-ads.php? -+##.adplace -+###sidebar_ad_2 -+||theonecdn.com^ -+##[href^="https://www.restoro.com/"] -+||dopjfbdvatxlhe.com^ -+##.ad728_cont -+||evolvemediallc.com^$third-party -+||honestlyvicinityscene.com^ -+||holiestcoseys.com^ -+||gameads.io^ -+||medleyads.com^ -+##.single-ads -+_adhoriz. -+/ads-api-native? -+||ptoangir.com^ -+###main_ad -+||azansreliant.com^ -+msn.com##div[class^="galleryPage_bannerAd"] -+/publicidad.$~object,~stylesheet -+##.top-leaderboard-ad -+##.gridlove-ad -+||usounoul.com^ -+##.ad-module -+||faspox.com^$third-party -+@@||dmm.com/p/general/$image,~third-party -+##.advert--banner-wrap -+||jubsaugn.com^ -+##.offads -+##.adsright -+pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Sponsorisée par"]) -+||baradoot.com^ -+_ads_updater- -+indiatimes.com##div[data-aff-type] -+||srv224.com^ -+###adv-x37 -+||fuffyauth.com^ -+@@||cdn.plyvdo.live/scripts/$script -+al.com,cleveland.com,gulflive.com,lehighvalleylive.com,masslive.com,mlive.com,newyorkupstate.com,nj.com,oregonlive.com,pennlive.com,silive.com,syracuse.com###below-toprail -+||developmentencyclopaedia.com^ -+||uscnvdcxttnh.com^ -+##.sister-ads -+||entirelysacrament.com^ -+###adv-x38 -+||kangaroohiccups.com^ -+||itineraryupper.com^ -+##a[href^="https://t.aslnk.link/"] -+/ad/cross- -+||audaciousdefault.com^ -+##.ads_css -+##.ad-callout -+##.mobileadunit -+alphaporno.com,crocotube.com,hellporno.com,tubewolf.com,xbabe.com,xcum.com##.bnnrs-player -+||a050fa4308.com^ -+##.advertisement-placeholder -+ndtv.com,news24online.com##.add-section -+||gleameddelightprosperity.com -+##.static-ad -+##[lazy-ad="top_banner"] -+##.banner_240x400 -+||yfetyg.com^ -+||jnxm2.com^ -+||ofgogoatan.com^ -+||olmsoneenh.info^ -+||adhese.com^$third-party -+10minutemail.net,eel.surf7.net.my,javatpoint.com###right -+freebdsmxxx.org###right -+##.adpost -+/ad_display. -+##.nordvpn-popup -+kijiji.ca##div[class^="sponsored-"] -+||ezexfzek.com^ -+||d3l320urli0p1u.cloudfront.net^ -+##.ads-728 -+##.adZone -+||budvawshes.ru^ -+||d3f4nuq5dskrej.cloudfront.net^ -+||videosection.com/agent.php? -+||kvemm.com^ -+||noblerbaining.com^ -+##div[class^="AdCard_"] -+||peer39.com^$third-party -+||adf.ly/js/link-converter.js -+||hetaruvg.com^ -+||punosy.com^ -+||dewretpartook.com^ -+##.ad_blk -+knowyourmeme.com##.rectangle-unit-wrapper -+##.adsense-container -+pcgamebenchmark.com,pcgamesn.com,pockettactics.com,theloadout.com###nn_astro_wrapper -+_468x60/ -+##a[href^="https://maymooth-stopic.com/"] -+@@||astatic.ccmbg.com^*/prebid$script,domain=linternaute.com -+##.vce_adsense_widget -+##.banner_ad_link -+||bepolite.eu^$third-party -+##.footerad -+/newAd/* -+##.adsense-block -+/ad-refresh. -+/cashad. -+||986808cb44.com^ -+##.vce_adsense_wrapper -+||awltovhc.com^ -+/adverts.$~script,domain=~adverts.ie|~adverts.org.ua -+||cyih0e43aty7.com^ -+sourceforge.net###banner-sterling -+||wgrents.com^ -+@@||v.fwmrm.net/ad/p/1?$domain=cc.com|channel5.com|cmt.com|eonline.com|foodnetwork.com|nbcnews.com|ncaa.com|player.theplatform.com|simpsonsworld.com|today.com -+##.ad-block-container -+||keypush.net^ -+##.adRectangle-pos-medium -+###adcontainer2 -+###story_top_ddb_0 -+###adv_LdbMastheadPush -+##.custom-ad -+##.oas_desktop_banner -+-PcmModule-Taboola- -+###outbrain-wrapper -+##.ads-bg -+||apihotels.net/onestream/events/ -+##.squareAd -+##.advert-placeholder -+||ailrouno.net^ -+###story_bottom_ddb_0 -+||pignuwoa.com^ -+##.ob-ad-carousel-layout -+##.item-advertising -+||rftslb.com^ -+knowyourmeme.com##.header-unit-wrapper -+||hawsuffer.com^ -+##div[class^="AdEmbeded__AddWrapper"] -+||clickintext.net^$third-party -+wsj.com###saving-united-coupon-list -+_460_60. -+last.fm##.tonefuze -+||rearedimmortal.com^ -+/bsa-plugin-pro- -+##.adsFirst -+##.adsSecond -+||hbzhrxdmm.com^ -+||gypsyardently.com^$popup -+||flatepicbats.com^ -+###adTopLREC -+###adTopYSP -+||haftersfrutify.com^ -+##.sidebar-advertisement -+||revenuestripe.com^ -+###google-ads -+slickdeals.net##.rightRailBannerSection -+||brftedjb.com^ -+||ivyoqimcvfy.com^ -+6abc.com,abc11.com,abc13.com,abc30.com,abc7.com,abc7chicago.com,abc7news.com,abc7ny.com##.story > .placeholderWrapper -+||salinasbhut.com^ -+##.adsense-box -+||embogsoarers.com^ -+/ads/lz_loader. -+##.headAd -+||broworker7.com^ -+##.adRectangle-pos-small-inline -+/ads?client= -+adultgifworld.com,babeshows.co.uk,boobieblog.com,fapnado.com,foxhq.com,iseekgirls.com,small-breasted-teens.com,the-new-lagoon.com##a[href^="http://refer.ccbill.com/cgi-bin/clicks.cgi?"] -+##.adRow -+##.ads_right -+amazon.ae,amazon.ca,amazon.cn,amazon.co.jp,amazon.co.uk,amazon.com,amazon.com.au,amazon.com.br,amazon.com.mx,amazon.com.tr,amazon.de,amazon.eg,amazon.es,amazon.fr,amazon.in,amazon.it,amazon.nl,amazon.pl,amazon.sa,amazon.se,amazon.sg##div[data-cel-widget="sp-rhf-desktop-carousel_desktop-rhf_1"] -+abcnews.go.com##div[style^="min-height: 90px"] -+||phialedamende.com^ -+##.googleAd300x250 -+crazygames.com,tenforums.com##div[style^="height:250px;"] -+||taghaugh.com^ -+||tiwhaiph.net^ -+||pauzajoo.net^ -+##.leaderAdvert -+-ad-banner- -+||bravotube.net/cc/ -+##.itinerary-index-advertising -+||27417130d3.com^ -+||yeesshh.com^$popup -+###adss -+/ads/native/* -+###ad-panel -+##div[id^="google_dfp_"] -+||varechphugoid.com^ -+/ad/images/*$domain=~studiocalling.it -+##.ad--header -+||tapnative.com^$third-party -+||lgtdkpfnor.com^ -+||bidfilter.com^$third-party -+||ashierbowler.com^ -+/adchoice. -+##.ad-head -+###banner300x250 -+##.header-ads-wrap -+_ads2. -+##.wp_bannerize -+##.player_ima-ad-container -+||shigaxapo.com^ -+###adtophp -+##.ads-inarticle -+##.list_bottom_ad -+/ad_script. -+||liveadexchanger.com^$popup -+###text_ad -+||chusairt.com^ -+dailymotion.com##div[class^="DisplayAd"] -+/lemon7.*.js^$script,domain=vxxx.com -+##.ad-main -+||mfcewkrob.com^ -+||narrowstaredmaking.com^$popup -+||kveii.com^ -+xozilla.com##.brazzers-link -+||usatoday.com/nanobar/ -+##.ad_head -+||shareasale.com/image/$third-party -+stackoverflow.com##.js-sidebar-zone ++###ad970x90_exp ++###div_advt_right ++##.ads_inview ++||bunchypueblo.com^ ++||realtime-bid.com^$popup ++||solocpm.com^ ++##.leftAds ++##.mrec-ads ++||viapawniarda.com^ ++###vz_im_ad ++##.adHeight313 ++##.headerad ++##.section-ads ++timeout.com##div[class^="_inlineAdWrapper_"] ++###top_adspace ++##.adAreaNative ++||alitems.com^ ++/ADNet/* ++##.ad_728_top ++||pgpnsvqpo.com^ ++##.adslistingz ++||d1clmik8la8v65.cloudfront.net^ ++||rorgoops.com^ ++/showbanner. ++##.gallery_ad ++###ads-container-single ++||abc.manga9.co^ ++freecomiconline.me,lordmanga.com,mangahentai.me,manytoon.com,readfreecomics.com##.c-top-sidebar ++||steppesshirvan.com^ ++||cuisineenvoyadvertise.com^ ++||bondfondif.com^ ++##.adtech ++||glimtors.net^ ++##.p-ad-dfp-banner ++##a[href^="https://track.wg-aff.com"] ++realpython.com##div[style^="display:block;position:relative;"] ++###adFrame ++||xmlppcbuzz.com^ ++||roebuckwagged.com^ ++##.adslot_side1 ++##.adMinHeight313 ++##.rightAds ++tribunnews.com###wideskyscraper ++###home-ad ++###adTile ++||albaneverard.com^ ++timeout.com##div[id^="ad-side-"] ++||1ts19.top^ ++##.ad_native ++||gumbolersgthb.com^ ++||thecred.info^ ++||njih.net^$third-party ++/adasync. ++/plugins/ultimate-popunder/*$~stylesheet ++_banner_ad_ ++##.DisplayAd ++##.ads4 ++##.mpu-ad ++||beamedshipwreck.com^ ++||don403deblakda.store^ ++||zewoagoo.com^ ++fool.com###pitch ++@@||amazon.com/home/ads/$document,subdocument,domain=affiliate-program.amazon.com ++||osspalkiaom.com^ ++.io/ads/ ++@@||politiken.dk/static/$script ++##.adsense-inline ++###removeAdsSidebar ++spanishdict.com###removeAdsSidebar ++||mediasama.com^$popup ++||resistcorrectly.com^ ++###advertising_2 ++##.zeus-ad +/detroitchicago/rochester.js -+||c12bleue.com^ -+/detroitchicago/tampa.js -+||rageagainstthesoap.com^ -+@@||s.w.org/wp-content/$stylesheet,domain=wordpress.org -+##.midAdv-cont2 ++##.video-boxad ++##.ad-block-300 ++##.adLargeRect ++##a[href^="https://frameworkdeserve.com/"] ++/e/cm?$subdocument ++||biglittleday.com^ ++||xcsypkknp.com^ ++sourceforge.net###banner-sterling ++##.ads_728 ++||granddaughterrepresentationintroduce.com^ ++##.dac__banner__wrapper ++||tarrabastanly.com^ +/detroitchicago/boise.js +/detroitchicago/memphis.js -+##.advert-block -+##.adv-970 -+doordash.com#?#[data-testid="card.store"] > div:-abp-has(div[data-anchor-id="SponsoredBadge"]) -+||d3q33rbmdkxzj.cloudfront.net^ -+||impiabaxile.com^ -+||torrent-protection.com^ -+||lfjack.com^ -+spiegel.de##div[id*="/spon_dt/"]:not(#google_ads_iframe_\/6032\/spon_dt\/homepage_5__container__) -+##.article-sponsor -+||squidgyhawsed.com^ -+||60e19222e9.com^ -+||gleitmappy.com^ -+&clicktag=http -+##.googleads -+bigcommerce.com#@#.advert-container -+/v2/ads. -+rightmove.co.uk##._3G_zutXOLAwgpG1cvkF6ii -+||twinrdack.com^ -+###ads_bottom -+||rma.homedepot.com^ -+##.endAHolder -+##.ad-column -+medicalnewstoday.com##.css-20w1gi -+||traffic.name^ -+/detroitchicago/minneapolis.js -+/detroitchicago/raleigh.js -+||olpfeere.com^ -+##.adsbox970x90 -+||vcdnads.ru.com^ -+||alternativecpmgate.com^ -+##.elementor-widget-wp-widget-advads_ad_widget -+###sidebar-ad-1 -+###adtext -+/adx_flash. -+||vipergirls.to/clientscript/poptrigger_ -+/adpai. -+###topbannerad -+||hats-47b.com^ -+||atokefissure.com^ -+||choksail.com^ -+||geniusdexchange.com^ -+adfoc.us##.content > iframe -+##.component-ads-by-google -+###footerads -+##.idGoogleAdsense -+###ad_300x250 -+###ad_img -+##.puff-advertorials -+||adfpoint.com^ -+##.vce_adsense_expand -+||kinkledunendly.com^ -+###dsk-banner-ad-a -+||twpasol.com^ -+||pacontainer.s3.amazonaws.com^ -+##.table-ad -+://affiliates.$third-party -+||parkdumbest.com^ -+tekno.kompas.com##.kcm -+.il/ads. -+||profield.ddns.net^$third-party -+||beludicolor.com^ -+||dcai7bdiz5toz.cloudfront.net^ -+##.ads-side -+||vianoivernom.com^ -+/popunders/* -+||teeglimu.com^ -+||cdnpure.com/static/js/ads- -+||ads.viralize.tv^$domain=spiegel.de -+/houseads/* -+||laplamed.com^ -+bing.com##.ra_car_block -+/adplayer/* -+||bannerbridge.net^$third-party -+||d2khpmub947xov.cloudfront.net^ -+||wontonsnosite.com^ -+||pubhotmax.com^ -+||customads.co^ -+##.advrst -+||pubfeed.linkby.com^ -+/ad_banner/* -+medicalnewstoday.com,psychcentral.com##.css-1cg0byz -+###ad_300x100_m_c -+||hzihupwzovva.com^ -+##app-ad -+##.ad--panorama -+ok.xxx##.bn-title -+##.ad-160x600 -+##.lazyload_ad -+/common/ad/* -+###component-taboola-below-article-feed -+.weborama.js -+||refpamjeql.top^ -+||zedo.com^$third-party -+##.herald-ad -+||d1voskqidohxxs.cloudfront.net^ -+##.leftAdsFix1 -+||pushsar.com^ -+###ad-7 -+##.ad-carousel -+||malinesmanses.com^ -+##.wgAd-loaded -+##.rightAdsFix1 -+||agacelebir.com^ -+forums.anandtech.com,forums.tomsguide.com,forums.tomshardware.com,forums.whathifi.com###rightcol_top -+||tradbypass.com^ -+||adsfcdn.com^ -+||boostcpm.su^ -+||hooliganmedia.com^ -+bravotube.net##a[href^="/cs/"] -+||colorfullank.com -+###ADTOP -+/adsense2. -+||d1clmik8la8v65.cloudfront.net^ -+||traffic.name^$popup -+##.verticalAd -+||duringsiam.com^ -+###side-ads -+##.adDiv -+||jhlcrejfi.com^ -+/marfeel_sw. -+##.advertisement-leaderboard -+/ad-exchange. -+/api/ads? -+###rightAD -+##.ad-top-728 -+##a[href^="https://www.bang.com/?aff="] -+##.sponsored-header -+||noddingdilutionradish.com^ -+||attacheastely.com^ -+||sportrecs.com/redirect/embed/ -+##.vf-promo-gtag -+||anyporn.com/aa/ -+##.sticky-bottom-ad -+||ctrip.com^$third-party -+forums.anandtech.com,forums.tomsguide.com,forums.tomshardware.com###footer_leaderboard -+||ntvpwpush.com^ -+||1p1eqpotato.com^ -+||wavermigraineuncle.com^ -+##.advert-inner -+##.group-item-ad -+/publicidades/* -+##.insertad -+mangarockteam.com,nitroscans.com##.c-top-second-sidebar -+||adquery.io^$third-party -+###Ads_BA_SKY -+/data/ads/* -+||gypsyardently.com^ -+||dw55pg05c2rl5.cloudfront.net^ -+/plugins/mts-wp-in-post-ads/* -+###ad_billboard -+||highperformancecpm.com^ -+||pillarvolcano.com^ -+##.right-sidebar-ads-container -+/tagman/* -+||melagratoftmen.com^ -+##[class^="chp_ads_block"] -+##[id^="chp_ads_block"] -+##.first_ad -+##.GoogleDfpAd-Float -+##.ad-block-banner-container -+##.ad--center -+||stotoowu.net^ -+||smopy.com^$third-party -+||rs-stripe.com^ -+amateur8.com##.is-av -+||admob.com^ -+||foremedia.net^$third-party -+||admob.com^$domain=spiegel.de -+/ad_common. -+##.mgline -+||bauwezou.net^ -+/adframes. -+||umekana.ru^ -+-720x90- -+##.product-ad -+###Ads_BA_BS -+biznews.com,burnabynow.com,businessdailyafrica.com,coastreporter.net,financialexpress.com,irishtimes.com,komonews.com,newwestrecord.ca,nsnews.com,prpeak.com,richmond-news.com,seattletimes.com,spokesman.com##a[href*="/sponsored/"] -+latimes.com,sandiegouniontribune.com##.revcontent -+cheaptickets.com,expedia.com,ebookers.com,hotels.com,orbitz.com,travelocity.com,wotif.com#?#.uitk-card:-abp-has(.uitk-badge-sponsored) -+##.in-content-ad -+/adgoal. -+##.ads-marker -+||unfinishedheir.com^ -+/ad-banner-$~image,~script -+||creative-serving.com^ -+###HEADERAD -+@@||prebid.adnxs.com^$xmlhttprequest,domain=go.cnn.com -+/tncms/ads/* -+##.widget_newscorpau_ads -+||ohaaobhvnztj.com^ -+||unbeedrillom.com^ -+||aixcdn.com^ -+##.ad-container-wrapper -+##.widget-adsense -+##.ad-spot -+/overture_ -+##.playAds1 -+||xlvludsigt.com^ -+##.ie-adtext -+||phabycebe.com^ -+##.ad_xrail_top -+##.teaser-advertisement -+###story-ad-7-wrapper -+###adslot5 -+##.banner-ad-row -+||belickitungchan.com^ -+||fluffynyasquirell.com^ -+comicbook.com##.oas -+##.mar-block-ad -+globalnews.ca##.c-flyers -+##.headerad -+||theraprecramp.com^ -+/ads/gpt/* -+||allporncomic.com/round-bread-60fe/ -+##.ad-rectangle-container -+##.gr-ads -+globalnews.ca##.c-stickyRail -+/annonser/*$domain=~billink.no -+##.mu-ad-container -+##.header-advertising -+||wpnrtnmrewunrtok.xyz^ -+##.left_ad -+||outsoarpg.com^ -+##.ads-image -+##.fjs-ad-hide-empty -+||luminosoocchio.com^ -+youtube.com##ytd-single-option-survey-renderer -+/bserver/* -+###admputop2 -+_ad/public/ -+##.adsense-area -+-ads.gif -+##.double-ads -+@@||history.com^$generichide -+||ingramony.com^ -+||d1e28xq8vu3baf.cloudfront.net^ -+##.dfp-top_leaderboard -+##.ad-homepage -+||adnimation.com^$third-party -+##.at-header-ad -+##.ad--section -+racedepartment.com,resetera.com##.samCodeUnit -+forum.lewdweb.net,forums.socialmediagirls.com##.samCodeUnit -+/spc_fi.php -+##.homeAd2 -+##.ad-hint -+||citydsp.com^ -+###amazon-ads -+-468x60- -+###dfp-middle -+##.u-ads -+||oackoubs.com^ -+##.ad-slot-ph -+||hqohjvold.com^ -+###HP1-ad -+||purplepatch.online^ -+||significantoperativeclearance.com^ -+##.at-sidebar-ad -+##.ad-cover -+||cncflpfw.com^ -+###div-insticator-ad-4 -+##a[href^="//chrif8kdstie.com/"] -+##div[id^="gpt_ad_"] -+||awempt.com/embed/ -+##.adbox1 -+###adv-halfpage -+||cheno3yp5odt7iume.com^ -+||ec73ce0ab9.com^ -+##.item-ads -+##.ads300x250 -+##.ad_xrail -+##.lrec-container -+##.right-column-ad -+##.horizontal_ads -+.tv/ads. -+##.header__leaderboard-ad -+/ads3. -+||veoxa.com^$third-party -+##[href^="https://www.mypillow.com/"] > img -+##.content_ads -+##.topArtAd -+##.mobileAd -+/cyad1. -+/files/ads/* -+/googlead/* -+||chosesleptcattish.com^ -+##.adChoice -+##.product-ads -+||win-bidding.com^ -+@@||adtng.com/get/$subdocument,domain=hanime.tv -+##.liberty-ad-renderer-iframe -+||ubkcrmxth.com^ -+||fastpic.org/g/f.js -+##.premium-mpu-container -+||turnipobjection.com^ -+##.is-desktop-ads -+##.sponsor-link -+##.ads-google-top -+##.pageAdSkin -+||zhej78i1an8w6ceu.com^ -+||tipcatscarola.com^ -+###adBox -+||jrpkizae.com^$popup -+###ads-blog -+||25b09661f2.com^ -+||321930e1f3.com^ -+||4763e0a8e9.com^ -+||jinssimon.com^ -+arabtimesonline.com,independent.co.ug,nigerianobservernews.com##.e3lan -+add0n.com,crazygames.com##div[style^="height: 90px;"] -+||advg.jp^$third-party -+thefappeningblog.com##.cl-exl -+nuvid.com##.rel_right -+||wpnjs.com^ -+||nonotro.name^ -+##.desktop.ad -+##.dfp-leaderboard -+@@||g.doubleclick.net/gampad/ads?*wallpaper_1$xmlhttprequest,domain=spiegel.de -+##.ad.wideboard_tablet -+##.single_ad_300x250 -+##a[href^="https://t.adating.link/"] -+##.promoboxAd -+##.ad-promotion-native -+##.gc-deck--is-ad -+##.ad-160 -+##.video-archive-ad -+||rotarb.bid^ -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk#?#div[jsaction^="mouseover:pane."]:-abp-has(span.jHLihd) -+###pushDownAd -+###sideAd -+||dspultra.com^$popup -+||trackuity.com^$third-party -+###side-ad -+###ad_mobile -+##.ad-display -+wcostream.com##.reklam_pve -+calculatorsoup.com###RightSidebar -+||crabdefend.com^ -+@@||pagead2.googlesyndication.com/getconfig/sodar?$xmlhttprequest,domain=spiegel.de -+##.sponsorad -+##.gad_container -+##a[href^="https://go.nordvpn.net/aff"] > img -+-ad.php? -+##.adBanner--outer -+/adv.php -+##.storyAd -+/ast/ads/* -+getdroidtips.com,guru99.com,thegayuk.com,vanguardngr.com,wisden.com##.code-block-4 -+||stagetortoiseinfatuated.com^ -+||batteusp2hilenor.com^ -+||dita6jhhqwoiz.cloudfront.net^ -+||nextgencounter.com^ -+||adpredictive.com^$third-party -+###HP2-ad -+pcgamesn.com,pockettactics.com,theloadout.com##.inlinerail -+##.full-width-ad -+||marketools.plus500.com/Widgets/ -+||eugenerhachi.com^ -+||rorgoops.com^ -+||bullads.net^ -+click2houston.com,clickondetroit.com,clickorlando.com,ksat.com,local10.com,news4jax.com##.topWrapper -+##.advance-ads -+##.big-ad -+||2629ff5ff5.com^ -+||banquetunarmedgrater.com^ -+breitbart.com##.a-wrapper -+##.adColumn -+##.adtag -+versus.com##.lead_top -+xhamster18.desi##.xplayer-banner -+||comacantha.com^ -+##.adfooter -+||hoanoola.net^ -+||logoestulles.com^ -+##.__isboostOverContent -+##.adSizer -+tuxpi.com#@#.adslot -+apkmirror.com#@#.adslot -+||gloolrey.com^ -+/TILE_ADS/* -+###ad_header -+##.SAAG-promoAdContainer -+##.pageAdSkinUrl -+/wpsafelink.js -+##.top-ad-block -+##.ads-google-bottom -+/728_90. -+||inflectionquake.com^ -+##.ad-hideable -+##.pb-f-ad-leaderboard -+||hclips.com/vosaoeceqthv/ -+/adsrv. -+/ajax-advert- -+##.o-ads--center -+###adbottom -+||dq3yxnlzwhcys.cloudfront.net^ -+##.app_nexus_banners_common -+.video.ads. -+_ads.php? -+##.ad-container-bottom -+||bravotube.net/js/clickback.js -+###ad_right_box -+###dfp-wallpaper-wrapper -+/pubmatic_ -+||mediafuse.com^$third-party -+##.adwords -+##.sidebar_ad -+##a[href^="https://www.clicktraceclick.com/"] -+||flippantbliss.com^ -+comicbook.com,popculture.com##[id^="native-plus-"] -+||awempire.com^ -+||highconvertingformats.com^ -+###AdCommerce -+||nan46ysangt28eec.com^ -+||dd09af1279.com^ -+||pandlewombier.com^ -+/images/adv_ -+###skyscraper_ad -+##.strip-ad -+##.mapped-ad -+##div[class^="SponsoredAds"] -+##.adloaded -+/adguru. -+||ilinouck.net^ -+||ukhkcxmzesi.com^ -+###body_ad -+goal.com##[data-name="ad-leaderboard"] -+||grafthivecrocus.cam^ -+##a[href^="http://track.afcpatrk.com/"] -+##.photoad -+||ematicsolutions.com^$third-party -+/video-js-ads. -+###leaderboard_728x90 -+ebay.com##.app-rtm-pid-wrapper -+||glugherg.net^ -+##.adsmessage -+||psurigrabi.com^ -+##.ad-active -+||ba05d69136.com^ -+##.ad-observer -+##div[class^="adunit_"] -+_120x600_ -+##.sidebarAd -+##.ad-mobile--sticky -+##.ad-300X250 -+###ad-side -+||taioncgaiynzt.com^ -+##.ad-tower-container -+##.ad_float -+##.static_mpu_wrap -+pcgamesn.com##.sidebar_affiliate_disclaimer -+pcgamesn.com##.static_mpu_wrap -+##.ad-complete -+||chaumsee.net^ -+||disploot.com^ -+||xyn1d4bjg4vr4m2qwypvuj.com^ -+manualslib.com##.abp_adv_s-title -+##.top-ad-desktop -+###ad-rotator -+||brid.tv^$script,domain=67hailhail.com|deepdaledigest.com|forevergeek.com|geordiebootboys.com|hammers.news|hitc.com|molineux.news|nottinghamforest.news|rangersnews.uk|realitytitbit.com|spin.com|tbrfootball.com|thechelseachronicle.com|thefocus.news|thewrap.com|washingtonexaminer.com -+##.pb-f-ad-flex -+##.ad_col_a -+###in_ad_col_a -+##.SidebarAd -+##.ad-300X250-body -+##.side_ads -+||enserfshoofish.com^ -+||guaricospence.com^ -+||pahtgq.tech^ -+||resonance.pk^ -+rightmove.co.uk##.creative -+timesofindia.indiatimes.com##.paisa-wrapper -+medicalnewstoday.com##[style*="line-height: 0;"] -+###ad-sidebar-1 -+||jouteetu.net^ -+##.fullbanner_ad -+###LeftAd -+##.adfull -+||revenuenetwork.com^ -+###ad-slot-502 -+||successfulpatience.com^ -+||revincenizam.com^ -+##a[href^="http://click.payserve.com/"] -+###gad728x90 -+economist.com,flightcentre.co.uk,payback.pl,ripley.cl,ripley.com.pe,wsj.com#@#.img_ad -+||clickfunnels.com/assets/cfpop.js -+stadiumastro.com##.Ads -+||92a2b69e29.com^ -+||dmzjmp.com^ -+###dfp-header-container -+###adv_sky -+youtube.com##.ytp-ad-action-interstitial-background-container -+/ads5. -+||d1jow6p6g37b9u.cloudfront.net^ -+##.ads-txt -+/displayAdFrame. -+##.zmgad-right-rail -+/ad5. -+||curtlychit.com^ -+||transferowen.com^ -+physicsandmathstutor.com###PMT_Top -+bravotube.net##.box-left -+bravotube.net##.brazzers -+###theotherads -+###sponsorText -+||d39ion77s0ucuz.cloudfront.net^ -+||d3em0905j9y6sm.cloudfront.net^ -+##.playerAd -+medicalnewstoday.com##[data-empty="true"] -+_ad1.$~stylesheet,domain=~messenger.com -+/ad_status. -+imgur.com,pushsquare.com,songlyrics.com##.masthead -+##.ad-strip -+/ai2/s/s/su -+##.ad--in-article -+||ovenbifaces.cam^ -+||jighucme.com^ -+-advertising_ -+##.section-ads -+@@||ps.w.org^$image,domain=wordpress.org -+||trafficdok.com^ -+##.bottom_ads -+||touphipt.com^ -+||variousformatscontent.com^ -+nintendolife.com,purexbox.com,pushsquare.com##.for-desktop -+_google_ads_ -+||saishait.net^ -+###gad300x250 -+##.ad-lazy -+##.searchResultAd -+||beevakum.net^ -+||whatosgoingon.biz^ -+bravotube.net##.inplb3x2 -+wiki.gg##[href^="https://app.wiki.gg/showcase/"] -+/blog_ads/* -+###advert-skyscraper -+/advt.$domain=~advt.ch|~advt.it -+##.variableHeightAd -+##.adnSpot -+##.native-ad-slot -+||allyes.com^ -+fandom.com##.marketplace -+##.ads-div -+||jiffspogonia.com^ -+/compiled/ads- -+||redirectsstm.click^ -+/adclick.$popup -+###player_ad -+##.adheader -+##.article-top-ad -+||pushtorm.net^ -+##.widget_728x90_advertisement -+##.text_ads_2 -+/web/ads/* -+###boxad -+||booster-vax.com^ -+filecrypt.cc,filecrypt.co##.filItheadbIockqueue3 -+##.AdInfo -+/scripts/ad/* -+##.ads_wrap -+||msgose.com^ -+###AdDiv -+sporcle.com##.IMGgi -+||accordinglyvenisonelse.com^ -+###sidebar-ad-2 -+##.ad-v2 -+||69v.club^ -+||glimtors.net^ -+###extraAdsBlock -+###div-insticator-ad-3 -+||myrrhicfoeman.com^ -+/easyazon- -+##.player-leaderboard-ad-wrapper -+aminoapps.com##.overflow-scroll-sidebar > div -+.ads3- -+/wppas/* -+##.sponsor-block -+##.ad.maxiboard -+||gme-trking.com^ -+||glaivoun.net^ -+brisbanetimes.com.au,smh.com.au,theage.com.au,watoday.com.au###articlePartnerStories -+||hetaruvg.com^$popup -+##.ad.maxisky -+||pdn-2.com^ -+||moedgapers.com^ -+||unloadpoetry.com^ -+||cambro.tv/popin-min.js -+##.m-ad__wrapper -+||saggrowledetc.com^ -+||syaomlovqeq.com^ -+||berlipurplin.com^ -+||driddleurease.com^ -+||mamydirect.com^ -+##.m-ad__wrapper--highlight -+###dfp-ad-container -+||inkestyle.net^ -+||justservingfiles.net^ -+##.HomeAds -+||zwaar.org^$third-party -+||bravoedkilan.com^ -+youtube.com##.ytp-ad-action-interstitial-slot -+##.m-ad__wrapper--300x250 -+||aj2031.online^ -+||akmxts.com^ -+||rescuephrase.com^ -+@@||wordpress.org/plugins/$domain=wordpress.org -+.ke/ads/ -+##.innerAds -+.adserver01. -+##div[data-adzone] -+##.advertBox -+||qdatasales.com^ -+tripadvisor.at,tripadvisor.be,tripadvisor.ca,tripadvisor.ch,tripadvisor.cl,tripadvisor.cn,tripadvisor.co,tripadvisor.co.id,tripadvisor.co.il,tripadvisor.co.kr,tripadvisor.co.nz,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.com.ar,tripadvisor.com.au,tripadvisor.com.br,tripadvisor.com.eg,tripadvisor.com.gr,tripadvisor.com.hk,tripadvisor.com.mx,tripadvisor.com.my,tripadvisor.com.pe,tripadvisor.com.ph,tripadvisor.com.sg,tripadvisor.com.tr,tripadvisor.com.tw,tripadvisor.com.ve,tripadvisor.com.vn,tripadvisor.de,tripadvisor.dk,tripadvisor.es,tripadvisor.fr,tripadvisor.ie,tripadvisor.in,tripadvisor.it,tripadvisor.jp,tripadvisor.nl,tripadvisor.pt,tripadvisor.ru,tripadvisor.se#?#.listItem:-abp-has(.sponsored_v2) -+tripadvisor.at,tripadvisor.be,tripadvisor.ca,tripadvisor.ch,tripadvisor.cl,tripadvisor.cn,tripadvisor.co,tripadvisor.co.id,tripadvisor.co.il,tripadvisor.co.kr,tripadvisor.co.nz,tripadvisor.co.uk,tripadvisor.co.za,tripadvisor.com,tripadvisor.com.ar,tripadvisor.com.au,tripadvisor.com.br,tripadvisor.com.eg,tripadvisor.com.gr,tripadvisor.com.hk,tripadvisor.com.mx,tripadvisor.com.my,tripadvisor.com.pe,tripadvisor.com.ph,tripadvisor.com.sg,tripadvisor.com.tr,tripadvisor.com.tw,tripadvisor.com.ve,tripadvisor.com.vn,tripadvisor.de,tripadvisor.dk,tripadvisor.es,tripadvisor.fr,tripadvisor.ie,tripadvisor.in,tripadvisor.it,tripadvisor.jp,tripadvisor.nl,tripadvisor.pt,tripadvisor.ru,tripadvisor.se#?#.listItem:-abp-has(.sponsored_v2) -+###billboard_ad -+jizzbunker.com##.ftrzx1 -+##.fixed_ad -+?type=ad& -+##.promo_border -+##.mm-banner970-ad -+##.ads3 -+||bn5x.net^ -+##.desktop_ad -+##.taboolaArticle -+##.adsHeader -+##.channel-ad -+||erringcrambly.com^ -+##.ads-cont -+||ponk.pro^$popup -+###ads-sticky -+##a[href^="https://keep2share.cc/pr/"] -+||ad-cheers.com^ -+##.advert_label -+##.adss -+##.InArticleAd -+###ads_3 -+guru99.com##.videocontentmobile -+||boustahe.com^ -+##.Ad--sidebar -+##.advert--mpu--rhs -+###banner_ads -+/plugins/ads/* -+||weby.aaas.org^ -+_720x90. -+###ad_wrapper -+##.adver-block -+||bendycrumply.com^ -+||catnipsdaymen.com^ -+||musedalisma.com^ -+||nesispubl.buzz^ -+||ponyvictorymiscarriage.com^ -+andoveradvertiser.co.uk,asianimage.co.uk,autoexchange.co.uk,banburycake.co.uk,barryanddistrictnews.co.uk,basildonstandard.co.uk,basingstokegazette.co.uk,bicesteradvertiser.net,borehamwoodtimes.co.uk,bournemouthecho.co.uk,braintreeandwithamtimes.co.uk,brentwoodlive.co.uk,bridgwatermercury.co.uk,bridportnews.co.uk,bromsgroveadvertiser.co.uk,bucksfreepress.co.uk,burnhamandhighbridgeweeklynews.co.uk,burytimes.co.uk,campaignseries.co.uk,chardandilminsternews.co.uk,chelmsfordweeklynews.co.uk,chesterlestreetadvertiser.co.uk,chorleycitizen.co.uk,clactonandfrintongazette.co.uk,cotswoldessence.co.uk,cotswoldjournal.co.uk,cravenherald.co.uk,creweguardian.co.uk,dailyecho.co.uk,darlingtonandstocktontimes.co.uk,dorsetecho.co.uk,droitwichadvertiser.co.uk,dudleynews.co.uk,ealingtimes.co.uk,echo-news.co.uk,enfieldindependent.co.uk,eppingforestguardian.co.uk,eveshamjournal.co.uk,falmouthpacket.co.uk,freepressseries.co.uk,gazette-news.co.uk,gazetteherald.co.uk,gazetteseries.co.uk,guardian-series.co.uk,halesowennews.co.uk,halsteadgazette.co.uk,hampshirechronicle.co.uk,harrowtimes.co.uk,harwichandmanningtreestandard.co.uk,heraldseries.co.uk,herefordtimes.com,hillingdontimes.co.uk,ilkleygazette.co.uk,keighleynews.co.uk,kidderminstershuttle.co.uk,knutsfordguardian.co.uk,lancashiretelegraph.co.uk,ledburyreporter.co.uk,leighjournal.co.uk,ludlowadvertiser.co.uk,maldonandburnhamstandard.co.uk,malverngazette.co.uk,messengernewspapers.co.uk,milfordmercury.co.uk,newsshopper.co.uk,northwichguardian.co.uk,oxfordmail.co.uk,penarthtimes.co.uk,prestwichandwhitefieldguide.co.uk,redditchadvertiser.co.uk,redhillandreigatelife.co.uk,richmondandtwickenhamtimes.co.uk,romseyadvertiser.co.uk,runcornandwidnesworld.co.uk,salisburyjournal.co.uk,somersetcountygazette.co.uk,southendstandard.co.uk,southwalesargus.co.uk,southwalesguardian.co.uk,southwestfarmer.co.uk,stalbansreview.co.uk,sthelensstar.co.uk,stourbridgenews.co.uk,surreycomet.co.uk,suttonguardian.co.uk,swindonadvertiser.co.uk,tewkesburyadmag.co.uk,theargus.co.uk,theboltonnews.co.uk,thenational.scot,thenorthernecho.co.uk,thescottishfarmer.co.uk,thetelegraphandargus.co.uk,thetottenhamindependent.co.uk,thewestmorlandgazette.co.uk,thisisthewestcountry.co.uk,thurrockgazette.co.uk,times-series.co.uk,wandsworthguardian.co.uk,warringtonguardian.co.uk,watfordobserver.co.uk,westerntelegraph.co.uk,wharfedaleobserver.co.uk,wiltsglosstandard.co.uk,wiltshiretimes.co.uk,wimbledonguardian.co.uk,wirralglobe.co.uk,witneygazette.co.uk,worcesternews.co.uk,yeovilexpress.co.uk,yorkpress.co.uk,yourlocalguardian.co.uk##.promoted-block -+##.adcode -+##.ad.wideboard -+##.ad.skybridgeleft -+||gyvesmutic.com^ -+/getad/* -+##.ad.addon -+planetminecraft.com###box_300atf -+||furstraitsbrowse.com^ -+||cloudfrale.com^ -+##.advertisement_728x90 -+||bourranuncurbs.com^ -+||thepiratebay.$script,domain=pirateproxy.live|thehiddenbay.com|thepiratebay.org -+##.js-ad-hideable -+stuff.co.nz#?#[itemprop]:-abp-has(.sponsored-flag) -+||ad.22betpartners.com^$popup -+||mdxidbcodehpy.com^ -+##.horizontal-ad-wrapper -+###overlay_ad -+tetris.com##.verticalAx -+##.dfp_unit-ad_container -+##.js-ad-primary -+animenewsnetwork.com##.gutter -+||fishki.net/code? -+###sticky_ad_bar -+###head_ad -+##.google-ad-container -+##.earAdv -+||vooshagy.net^$popup -+||rentalcars.com/partners/ -+||zybrdr.com^ -+||oeyiamwpj.com^ -+##.ad_72890 -+###wpladbox1 -+||cheeradvise.com^ -+||resalag.com^ -+##.rail-ad -+.prebid& -+||4wnet.com^ -+||oatmeallump.com^ -+||adxcore.com^ -+gfinityesports.com,realsport101.com##.connatixPS -+vice.com##.adph -+animenewsnetwork.com##.iab -+||ltkcdn.net/ltkrev.js -+##.leader-ad -+###bm-HeaderAd -+/banners.*&iframe= -+##.adsDiv -+@@||adblockplus.org^$generichide -+usatoday.com##.gnt_x__lbl -+||digitalpush.org^$third-party -+##.widget_ads -+||funnyjunk.com/site/js/extra/pre -+videosection.com##.iframe-adv -+/336x280. -+##.ads_4 -+/ad-scroll. -+##.slideshow-vaop-ad -+myreadingmanga.info##a[href^="https://www.gaming-adult.com/"] -+##.hb__ad -+||peaceablefitsfamily.com^ -+||d3tozt7si7bmf7.cloudfront.net^ -+||qqaskpbofrji.com^ -+||ndroip.com^ -+cp24.com#@#.topAd -+/adword. -+||lduhtrp.net^ -+##[id^="bunyad_ads_"] -+||toroidscentry.com^ -+##.row-ad -+||bawkedaimyos.casa^ -+##.adlist -+&adsrc= -+##.refreshInarticleAd -+||vswlxqhvjiz.com^ -+##.ad.promotion -+/House-Ad- -+usatoday.com##.gnt_tb -+||juosmjtadx.com^ -+##.sponsored-link -+maturetubehere.com###lotal -+guru99.com##.responsive-guru99-mobile1 -+##.asideAd -+##.right-top-ad -+##.slate-ad -+||player.sendtonews.com^$third-party -+||platitudezeal.com^ -+##.GeminiNativeAd -+##.insert_ad_column -+###tile-ad -+||frap.site^ -+||goingtocontent.com^ -+##.ad_728_90 -+videosection.com##.video-item--adv -+||glainsee.com^ -+futbol24.com##.adv2 -+egmnow.com##.outbrain-wrapper -+##.top_ads -+@@||yandex.com/search/?$generichide -+||360yield.com^$domain=spiegel.de -+||beenoper.com^ -+||monetizer101.com^$third-party -+###ad-billboard -+||getadjacent.com^$third-party -+gamepressure.com###baner-outer -+##.ad__item -+||tymukyno.xyz^ -+forums.tomshardware.com###rightcol_bottom -+||icorp.ro^$third-party -+||promos.camsoda.com^ -+||gcfowqaazdycb.com^ -+##.ad_crown -+##div[id^="ad-div-"] -+###ad-sidebar-2 -+##.bottom-ad2 -+##.adslot--leaderboard -+||whatisuptodaynow.com^ -+bulbagarden.net,planetminecraft.com###leaderboard_atf -+##.ad-block-300 -+##.full_ad -+||ietyofedinj89yewtburgh.com^ -+##.ad_300250 -+###smallads -+arabiaweather.com,bloomberg.com,gamesindustry.biz,news957.com,newscientist.com,usgamer.net##.leaderboard-container -+bestlifeonline.com,eatthis.com##.vi-video-wrapper -+###adsContainer -+##.ad_fullwidth -+##.ad-slot-replies-header -+||tklaxrrzzo.com^ -+-publicidad. -+##.index_ad_column2 -+##.mod_ad_text -+##.mod_r_ad -+###admpudyn1 -+planetminecraft.com###box_300btf -+||drldgfscmjgim.com^ -+##.index_ad_a4 -+si.com##.m-balloon-header--spacer -+##.index_ad_a6 -+##.mod_index_ad -+||trimbrushed.com^ -+/getad? -+##.mod_ad_t25 -+##.ac-banner-ad -+##.hp_textlink_ad -+##.index_ad_a5 -+||hollekeamboina.com^ -+||synthesissocietysplitting.com^ -+@@||gn-web-assets.api.bbc.com/bbcdotcom/assets/$script,domain=bbc.co.uk -+tribunnews.com###div-Inside-MediumRectangle -+##.index_ad_a2 -+||lankychaosrun.com^ -+##.wide-ad-new-layout -+##.ad-disclaimer -+##.mod_r_ad1 -+||mandatorycaptaincountless.com^ -+##.ad_holder -+##.sidebar-sticky--ad -+||addictedsweetness.com^ -+||daribahactaea.com^ -+||debitswiping.com^ -+||fd5orie8e.com^ -+||shijauns.com^ -+||brutalconfer.com^$popup -+##.chartlist-row--interlist-ad -+##.player_ad2 -+##.main-add-sec -+##.full-bleed-ad-container -+progameguides.com###top-sticky-sidebar-container -+/google_ads_ -+##.ad_center -+##.flex-ad -+##.ads-code -+usatoday.com##.gnt_tbr -+##.pages__ad -+||go2affise.com^ -+##.atf-wrapper -+||misslinkvocation.com^ -+##.ad_google_shhide -+||audiencerun.com^$third-party -+##.native.ad -+||raphidewakener.com^ -+vg.no##.webboard -+walmart.com#?#div[class="mb1 ph1 pa0-xl bb b--near-white w-25"]:-abp-has(div[data-ad-component-type="wpa-tile"]) -+||libertycdn.com^ -+||limurol.com^ -+##.ad-728 -+news.artnet.com,worldsurfleague.com#@#div[data-ad-targeting] -+||digitalmediapp.com^ -+##.player_ad_box -+##.programtic-ads -+people.com##.articleContainer__rail -+##.adItem -+###ad_content -+/images/adv- -+###adl_300x250 -+###headerTopAd -+hentai-foundry.com##main > p -+/ad_position= -+##.full-ad -+||0dcde44a41.com^ -+###tfm_admanagerTeaser -+||d95d7d7060.com^ -+##.ads_728x90 -+/images_ads/* -+@@||g.doubleclick.net/gampad/ads?$domain=edy.rakuten.co.jp|pccomponentes.com|tv-tokyo.co.jp|voici.fr -+unsplash.com#?#.MbNnd:-abp-has(a:-abp-contains(Sponsored)) -+###postads -+agedbeauty.net,data18.com,pornpics.com,vipergirls.to##a[href*="/go/"] -+||owewary.com^ -+###gpt-mpu -+##.placeholderAd -+##.adace-slideup-slot-wrap -+/images/adv/* -+##.mvp-widget-feat2-side-ad -+||inforsea.com^$domain=spiegel.de -+##.ad--skyscraper -+||hoidenbinate.com^ -+###advertising_1 -+##.ads-3 -+||expressfouty.com^ -+||golden-gateway.com^ -+##.clickads -+tribunnews.com###wideskyscraper -+-720x90. -+||estuantunsnow.com^ -+/ai2/s/s/js/ssu -+##a[href^="https://twinrdsyn.com/"] -+###ads_page_top -+/adunits/* -+/ad/banners/* -+||mobcrummymow.com^ -+||66e7b94f96.com^ -+||advertur.ru^$third-party -+###adslot6 -+###adframe:not(frameset) -+/tinlads. -+||djnaivalj34ub.cloudfront.net^ -+impartialreporter.com,polygon.com,tweaktown.com##.ob-smartfeed-wrapper -+||effectivegatetocontent.com^ -+||sociomantic.com^ +##.addiv -+###ad-special -+##.parent-ad-desktop -+###googleads -+||colanbalkily.com^ -+||domslc.com^ -+||vethojoa.net^ -+###adslot_top -+###admpufoot -+###gasense -+##.adSkin -+||3d406f3a14.com^ -+||nutritionrumblelocus.com^ -+###adv-banner -+/textads? -+##display-ad-component -+||zebraicrudista.com^ -+||drivevideo.xyz/advert/ -+###ad-standard -+###floatads -+##.powerinbox -+||mynkzqogcd.com^ -+##.adsbg300 -+##.inner_ad -+/adnet.$domain=~adnet.agency|~adnet.hr -+||web3ads.net^ -+##.apexAd -+||wiztube.xyz/banner/ -+###advertising_320 -+google.ac,google.ae,google.at,google.be,google.bg,google.by,google.ca,google.ch,google.cl,google.co.id,google.co.il,google.co.in,google.co.jp,google.co.ke,google.co.kr,google.co.nz,google.co.th,google.co.uk,google.co.ve,google.co.za,google.com,google.com.ar,google.com.au,google.com.br,google.com.co,google.com.ec,google.com.eg,google.com.hk,google.com.mx,google.com.my,google.com.pe,google.com.ph,google.com.pk,google.com.py,google.com.sa,google.com.sg,google.com.tr,google.com.tw,google.com.ua,google.com.uy,google.com.vn,google.cz,google.de,google.dk,google.dz,google.ee,google.es,google.fi,google.fr,google.gr,google.hr,google.hu,google.ie,google.it,google.lt,google.lv,google.nl,google.no,google.pl,google.pt,google.ro,google.rs,google.ru,google.se,google.sk##div[jstcache] > a[href^="/aclk?"] -+##.player_ad -+||morrowfreezer.com^ -+##.advertising-block -+allthatsinteresting.com,scientificamerican.com##.footer-banner -+##.advert-banner-container -+##.ad140 -+||grauwaiw.com^ -+@@||gomoplayer.com^$subdocument -+||elmftqzs.com^ -+###sticky-ads-top -+ladbible.com,unilad.co.uk##div[class*="margin-Advert"] -+##.adArea -+##.top-ad-wrap -+##.player_hover_ad -+/728-90. -+###ad-slot-top -+playvids.com##.add_href_jsclick -+||nabobketupa.com^ -+###frnBannerAd -+##.adloc-is-banner -+add0n.com,wccftech.com##div[style^="min-height:90px"] -+||camschat.net^ -+slickdeals.net##.abc -+##.page_ad -+||b44b115392.com^ -+##.markplace-ads -+##.ad-heading -+##.ad-poc-admin -+###admasthead -+##.list-ad -+###wpladbox2 -+##.homeAd -+##.advertisement.leaderboard -+pinflix.com,pornhd.com##.zone-area -+.lk/ads/ -+/get_ads. -+###adv-text -+||cpaoffers.network^$popup -+##.zad.billboard -+||pubmatic.com^$domain=spiegel.de -+###Ads_BA_FLB -+##.playAds2 -+##.player-under-ad -+||ticaframeofm.xyz^ -+##.ezAdsense -+||faster-trk.com^ -+##.ad--mid -+###crt-adblock-a -+starsinsider.com##.pub-container -+datacenterdynamics.com,fansshare.com,hairboutique.com,iconarchive.com,imagetwist.com,memecenter.com,news18.com,paultan.org,unexplained-mysteries.com,windsorite.ca,xtra.com.my##div[style*="width:300px"] -+||camarondo.com^ -+###adUnit -+##.player_page_ad_box -+##.marketplace-ad -+newsmax.com##.nmsponsorlink -+newsmax.com##.nmsponsorlink + [class] -+##.ad-02 -+##.adv-ad -+||predictiondexchange.com^ -+@@||doubleclick.net/gampad/*adPositionName%3Dsuperbanner_$xmlhttprequest,domain=spiegel.de -+##.double-ad -+/eas_tag.1.0.js -+||ssl-images-amazon.com/images/*/MAsf- -+##.ad--inner -+/mellowads. -+##.m-ad__wrapper--728x90 -+##.ads-top-center -+###crt-adblock-b -+###interstitial_ad -+||loggatscowbyre.com^ -+||mourny-clostheme.com^$popup -+||tenthsfrumpy.com^ -+/taboolaArticle. -+peekvids.com##.card-deck-promotion -+/main/ads/* -+||authoritygratecreed.com^ -+||onetouch12.com^$popup -+###Ads_BA_CAD -+/ad/spacer. -+||ad.style^$third-party -+.ng/ads/ -+||blueswordksh.com^ -+||tabookbusines.info^ -+##.amp_ad_1 -+.php?ad= -+##.ad-medium-rectangle-base -+||tpcserve.com^ -+##.sponsoredLabel -+||fortssturt.com^ -+/336x280- -+||tubemov.com^ -+||bongacams.com^$popup,third-party -+||xgroovy.com/static/js/script.js -+###sponsored-recommendations -+||dibsemey.com^ -+###ad-slot-1 -+##a[href^="https://go.strpjmp.com/"] -+##.ad-outer -+##.adspot -+##.footer-advert -+||forlumineoner.com^ -+||meo257na3rch.com^ -+edutourism.in,news24online.com,online-image-editor.com,thehindu.com##.add -+||instant-gaming.com/affgames/ -+||d22ffr6srkd9zx.cloudfront.net^ -+##.ad-place -+###banner_pos1_ddb_0 -+||3movs.*/su4unbl- -+ign.com##.zad -+||lookandfind.me^ -+###team_ad -+##.ad-post-footer -+dotesports.com,gamepur.com###top-sticky-sidebar-wrapper -+##.tout-ad -+||lbampvjuvfv.com^ ++/bottom_ad. ++##.rightads ++||coffeeliketime.com^ +||mycruhmeaoy.com^ -+##.c-posts__ad -+###top_ad_banner -+||dooloust.net^$popup -+||ptoushoa.com^ -+##.block_ad -+/ads-vast- -+||pardongaskins.com^ -+##.ad-inside -+##.sudoku-ad -+##.atf_adWrapper -+##.ad_mobile -+||raisedmanatee.com^ -+||yxpyjyhjj.com^ -+cbc.ca##.bigBoxContainer -+##.adsense-inline -+gab.com##[aria-label*="Sponsored:"] -+##a[href^="https://banners.livepartners.com/"] -+/^https?:\/\/www\.[0-9a-z]{8,}\.com\/[0-9a-z]{1,4}\.js$/$script,third-party,domain=dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.watch|dood.ws -+##.yom-ad -+||broomacknowledgedpinch.com^ -+reddflix.com##.advbox -+##.play-page-ads -+/iframe/ad/* -+##a[href^="https://www.rabbits.webcam/?id="] -+/partnership-ads/* -+||wagersinging.com^ -+##a[href^="https://prf.hn/click/"][href*="/creativeref:"] > img -+##.GRVVideo -+||brocardcored.com^ -+||bahuthue.com^ -+||zifujwgejz.com^ -+1tamilmv.click##.ipsCarousel -+himovies.to,home-barista.com,rarpc.co,shtfplan.com,warecracks.com,washingtontimes.com##a[onclick] -+comicbook.com##.mobile -+||02b57bb965.com^ -+||tlprxzujk.com^ -+||lafastnews.com^ -+##.AdsInnov_responsive_ad -+||dd8af8726c.com^ -+||establishbrightestsavvy.com^ -+||fordgitter.com^ -+||pumpoofi.net^ -+||shutplumptravels.com^ -+||rearedimmortal.com^$popup -+||zaamuvqteety.com^ -+||masakeku.com^ -+||lotsooms.com^ -+||skiptheadz.com^$popup -+||oxiqyxos.com^ -+||vinalsmuffish.com^ -+||fructushumble.com^ -+##a[href^="https://track.wg-aff.com"] -+||margarinereverend.com^ -+||cobnutsvalure.com^ -+target.com##[data-test="featuredProducts"] -+##aside[id^="adrotate_widgets-"] -+dexerto.com##.bg-neutral-grey-4 -+||msdhyexj.com^ -+||gearsora.com^ -+##a[href^="http://amzn.to/"] > img[src^="data"] -+dexerto.com##.py-4 -+||hentaifox.com/js/ajs.js -+||hentaifox.com/js/slider.js -+||galileirice.com^ -+||silsoaba.com^ -+||bongacams10.com^$popup -+||owneduntwind.com^ -+1news.co.nz,boston25news.com,kiro7.com,wftv.com,whio.com,wpxi.com,wsbradio.com,wsbtv.com,wsoctv.com##.arcad_feature -+||lavabosmotlier.com^ -+||eksiup.com^$third-party -+##a[href^="http://cam4com.go2cloud.org/aff_c?"] -+||quiapountaxed.com^ -+||unknitting.com^ -+||dgzhbvifnjo.com^ -+||rockcloudspace.com^ -+||atwounlit.com^ -+webmd.com##.top-picks -+||invitingdoubloons.com^ -+##a[href^="https://black77854.com/"] -+@@||xfreehd.com^$generichide -+||educedsteeped.com^ -+||loedtamanac.com^ -+||harmonycanyon.com^ -+||turacousequent.com^ -+###leaderboard-advert -+||understoodreceivermisunderstand.com^ -+||wawlingcuba.com^ -+||boostcdn.net^ -+||cuttooscete.com^ -+##.article__header-ad-slot -+||advertising-cdn.com^ -+||briefsupbuoy.com^ -+||katukaunamiss.com^ -+###advert-strip1 -+###advert-strip2 -+||vetcheslegumen.com^ -+||workplaceidenticalincompetent.com^ -+###advert-strip3 -+###advert-strip4 -+||acesbashlyk.com^ -+||uomsogicgi.com^ -+##.ad--halfpage -+||ucxfdvhuqwpig.com^ -+dexerto.com##.aspect-video -+###advert-strip5 -+||flogspci.com^ -+forex-gold.net,mangarockteam.com##.demand-supply -+||coxalscyth.com^ -+||coojaiku.com^ -+gamertweak.com##.bannerdiv -+||mbuabypsbfh.com^ -+||atevaccination.com^ -+||spatterjointposition.com^ -+###sticky-ads -+afrivibes.net,airplaydirect.com,americaoutloud.com,bigeye.ug,completesports.com,cryptomining-blog.com,cryptoreporter.info,dotsauce.com,espnrichmond.com,flsentinel.com,forexmt4indicators.com,freedomhacker.net,gamblingnewsmagazine.com,gameplayinside.com,goodcarbadcar.net,kenyabuzz.com,kiwiblog.co.nz,mauitime.com,mkvcage.com,movin100.com,mycolumbuspower.com,naijaloaded.com.ng,newzimbabwe.com,onislandtimes.com,punchng.com,radiobiz.co.za,reviewparking.com,robhasawebsite.com,sacobserver.com,seguintoday.com,theinsider.ug,themediaonline.co.za,theolivepress.es,therep.co.za,thewillnigeria.com,tntribune.com,wantedinafrica.com,wantedinrome.com,wschronicle.com##img[width="300"] -+||ad.eplayer.is^ -+##a[href^="https://track.afcpatrk.com/"] -+||6fe24753fb.com^ -+||sunnyseries.com^$popup -+###pubexchange_below_content -+||warilyaggregation.com^ -+||chgzguhkue.com^ -+||futuredistracting.com^ -+###zeus_top-banner -+||vistashomonid.com^ -+||pervialinagile.com^ -+||ucbnxsmgdf.com^ -+nintendolife.com,purexbox.com,pushsquare.com##.insert-label -+@@||ads.pubmatic.com/AdServer/js/pwt/$script,domain=independent.co.uk|india.com -+##[class*="__adv-block"] -+||zdywcdjoerv.com^ -+||undimlyjewlike.com^ -+flaticon.com##.adobe -+||goodbusinesspark.com^ -+||volowwoidre.com^ -+||bngprl.com^ -+||evitingawabi.com^ -+||yhmgqevtybbku.com^ -+mail.com##.blocks-3 -+||u0064.com^ -+||eozoicfirring.com^ -+||fruggedraids.com^ -+||tallowstwangle.com^ -+||f86c0f6c3b.com^ -+appleworld.today,closerweekly.com,deshdoaba.com,foreverconscious.com,intouchweekly.com,kkfm.com,lifeandstylemag.com,mensjournal.com,patriotfetch.com,pctechmag.com,rok.guide,rsbnetwork.com,washingtonmonthly.com,wgow.com,wgowam.com,wlevradio.com##.widget_media_image -+||ctengine.io^$third-party -+##[class*="__adspot-title-container"] -+rightmove.co.uk###propertyplayer -+||ad999.biz^ -+||undeenardoo.com^ -+||stunninglover.com^ -+||samazd.com^ -+||sortingwild.com^ -+||tearoomruchbah.com^ -+||biniprobit.com^ -+||ghableleader.xyz^ -+||gbdixorxxdjykr.com^ -+||pftservice.click^ -+coinlean.com###topcontainer -+||pelisnetwork.com^$third-party -+||firthpyrones.com^ -+||anandanudish.com^ -+||dbkhhkzhdjkhqh.com^ -+||kvlzsbxn.com^ -+##div[id^="advads_"] -+||clarkiainde.com^ -+||stheneencave.com^ -+||servicesrc.org^ -+/stn-player. -+||flvrbgvpbehhu.com^ -+||vhanime.com/js/bnanime.js -+||ca6ac9b0e5.com^ -+||shoresmmrnews.com^ -+||rimpirbtmxg.com^ -+||hinchantickt.com^ -+@@||live.streamtheworld.com/partnerIds$domain=iheart.com -+||numberschord.com^ -+||coronisabv.com^ -+###div-insticator-ad-5 -+||aspiredcapitol.com^ -+||lowrihouston.pro^ -+||nnlczheczlq.com^ -+||captiongodfather.com^ -+||disrobegilded.com^ -+||thurniafetal.com^ -+||blackcurrantspent.com^ -+||retailgobioid.com^ -+||antrumsregrind.com^ -+||contextendless.com^ -+||tumuta.xyz^ -+||washdaycalmly.com^ -+||tiesmaritalkidnap.com^ -+||biptolyla.com^ -+||membersfifteenthintent.com^ -+||hulksskyed.com^ -+||maw5r7y9s9helley.com^ -+||vazypteke.pro^ -+||atroer.com^$popup -+||dejectioninvention.com^ -+||lotionmodule.com^ -+||ponderousmuffled.com^ -+||sheeckaz.com^ -+vice.com##.fixed-slot -+||cullflitted.com^ -+||sacegryri.com^ -+||emploresmith.com^ -+||kvexx.com^ -+gamertweak.com##.kfzyntmcd-caption -+||kvecc.com^ -+coolors.co###sticky-ccad -+||purchaserteddy.com^ -+||hegiraquirl.com^ -+||got-to-be.com^$popup -+||zendplace.pro^$third-party -+||ltwrkbxgnsc.com^ -+||semjurljffawpt.com^ -+||whatfinger.com^$third-party -+||hollerscanelos.com^ -+||kanoonhymens.com^ -+flaticon.com##.sp-slidesgo-container -+||kvjkkwyomjrx.com^ -+||leonoutgaze.com^ -+###div-insticator-ad-6 -+||lowsteelixor.com^ -+||wea5lkaf63loos8a.com^ -+||gliffyfreaked.com^ -+imgbb.com##.abnr -+||xryecggeczcvpk.com^ -+||carapusgyal.com^ -+||scrumsrokey.com^ -+##a[href^="https://torguard.net/aff.php"] > img -+thelibertydaily.com##[href^="https://www.dismecoins.com/"] -+||precessfetidly.com^ -+||relumedbiaxial.com^ -+||balonamble.com^ -+||haughtydropszoology.com^ -+||doneeinvict.com^ -+||vaugroar.com^ -+##a[href^="http://refpa.top/"] -+||coetusnappers.com^ -+||foughtdicecup.com^ -+||supervisorreflex.com^ ++/detroitchicago/tampa.js ++###ads_banner ++||vdopia.com^ ++||ochringtensor.com^ +||truantsambaree.com^ -+||loveclubhere.life^$popup -+##aside[id^="advads_ad_widget-"] -+||ecgmdxoucsnrmq.com^ -+##.ck-anyclips -+||jatsekse.net^ -+aframnews.com,afro.com,aurn.com,borneobulletin.com.bn,businessday.ng,businessofapps.com,chicagodefender.com,chimpreports.com,dailysport.co.uk,dallasvoice.com,gatewaynews.co.za,gayexpress.co.nz,gematsu.com,islandecho.co.uk,jacksonvillefreepress.com,mediaplaynews.com,moviemaker.com,newpittsburghcourier.com,nondoc.com,one.com.mt,richmondshiretoday.co.uk,sammobile.com,savannahtribune.com,talkradioeurope.com,thegolfnewsnet.com,waamradio.com,womensagenda.com.au##.g -+pisshamster.com##.g -+gameslol.net,yabiladi.com##.pub_header -+||surelyconvinced.com^ -+||migrantspiteconnecting.com^ -+||agielspick.com^ -+||majorworkertop.com^ -+||djinscavalla.com^ -+||hatbenchmajestic.com^ -+||jubsaugn.com^$popup -+||xjqxrpwlfg.com^ -+||ladyphapty.com^$popup -+||xjzcbddnj.com^ -+||d3hyjqptbt9dpx.cloudfront.net^ -+||zigansherpa.com^ -+||deviatemysticallocking.com^$popup -+||cdn.vaughnsoft.net/abvs/ -+##.box-advertising -+||grossedoicks.com^ -+||asg.bhabhiporn.pro^ -+||wmkqxqwpyodrl.com^ -+##.inlinead_lazyload -+||deepermagnes.com^ -+###ad-slot-3 -+||thegay.com^$csp=default-src 'self' *.ahcdn.com fonts.gstatic.com fonts.googleapis.com https://thegay.com https://tn.thegay.com 'unsafe-inline' 'unsafe-eval' data: blob: -+||besullyatte.com^ -+||wea5lkaf63loos8a.com^$popup -+||workplaceidenticalincompetent.com^$popup -+||anodonphasma.com^ -+||d1t8it0ywk3xu.cloudfront.net^ -+||howoverlapsuspicious.com^ -+||indooritalian.com^ -+||jerkindeducer.com^ -+###ad_dfp_rec1 -+||tarrilyathenee.com^ -+##a[href^="http://ads2.williamhill.com/redirect.aspx?"] -+||recordingshipping.com^ -+||drailsaculeus.com^ -+##a[href^="http://affiliate.coral.co.uk/processing/"] -+thegatewaypundit.com,westernjournal.com##.persistent-footer -+||d3rjndf2qggsna.cloudfront.net^ -+||diasciaplatly.com^ -+||understandintimidate.com^ -+##a[href^="https://a.montangop.top/"] -+##.sticky-ads-content -+||ejectbagsindefinite.com^ -+###affiliate_2 -+dataversity.net,sakshi.com,songlyrics.com,yallamotor.com##.adblock -+israelnationalnews.com###banner-sticky -+||hentaifox.com/dhf.html -+||hoazinangles.com^ -+||suncenturyautumn.com^ -+porn300.com,porndroids.com##.hidden-under-920 -+youtube.com##.ytd-video-masthead-ad-primary-video-overlay-renderer -+||garmentsdraught.com^ -+breakingbelizenews.com,cardealermagazine.co.uk,headfonics.com,igorslab.de,landline.media,mikesmoneytalks.ca,sundayworld.co.za,theroanokestar.com,visualcapitalist.com##a[href*="/linkout/"] -+##a[href^="https://refpazkjixes.top/"] -+||bummilpatten.com^ -+||plantomgeforce.online^ -+||antijamburet.com^ -+||temporarilyruinconsistent.com^ -+hitc.com,thefocus.news##.GRVMpuWrapper -+||wrivedipnoi.com^ -+||thenagesnide.com^ -+||xwvbbphb.com^ -+##a[href^="https://www.infowarsstore.com/"] > img -+porntry.com,videojav.com##.video-side__spots -+||ptistyvymi.com^ -+||visiblejoseph.com^ -+||orangunset.com^ -+||sloughybucayo.com^ -+||reflushneuma.com^ -+4kpornvideos.tv,flashtranny.com,gaymovievids.com,gaypornarchive.com,gayporno.fm,igayporn.tv,machogaytube.com,me-gay.com,onlydudes.tv,ts-tube.net,verygayboys.com,xgaytube.tv##.ae-player__itv -+||rummaringp.pics^ -+##a[href^="https://ads.betfair.com/redirect.aspx?"] -+||ucqlpapdmyjv.com^ -+||puitaexb.com^ -+jquery.com##.sponsor-line -+||drpulgrcg.com^ -+||d31c6d951c.com^ -+||delwargal.click^ -+||alitems.site^$popup -+||chrantary-vocking.com^ -+||xbouyazk.com^ -+||iqbroker.com/lp/*?aff=$popup,third-party -+||blablahub.com^ -+##a[href^="https://webroutetrk.com/"] -+||spellingreasoningexamine.com^ -+||detinetcallant.com^ -+||thoupsou.net^ -+||preemiesurnap.com^ -+||kernelthanks.com^ -+##a[href^="https://mediaserver.entainpartners.com/renderBanner.do?"] -+||ybnggmnaxu.com^ -+||ftte.xyz^$popup -+##.banner-advertising -+||arrahgodded.com -+##a[href^="https://a-ads.com/?partner="] -+||iwkexdab.com^ -+||whistedsynapte.com^ -+||yabacackler.com^ -+##.ad-skeleton -+catcountry941.com,cnx-software.com,dailyveracity.com,gamingonphone.com,metalsucks.net,mmoculture.com,nasaspaceflight.com,quickanswer.blog,robloxhackscripts.com,techdows.com,tooxclusive.com##.widget_custom_html -+||eldrurjtsbl.com^ -+||deviatemysticallocking.com^ -+||forecastsinglegait.com^ -+||temporarylikewise.com^ -+##[href^="https://totlnkcl.com/"] -+||undooptimisticsuction.com^ -+||chekseme.net^ -+||snarlsevres.com^ -+||banquetunarmedgrater.com^$popup -+fox10phoenix.com,fox26houston.com,fox4news.com,fox7austin.com,foxla.com##.vendor-unit -+||lfjaqwwsgyu.com^ -+||19273817.com^ -+||torrentgalaxy.to/cache/bearable -+||storialstepony.com^ -+||igreskfq.com^ -+###div-insticator-ad-9 -+##.google-ads-in_article -+||bunchypueblo.com^ -+||dowellippen.com^ -+||strowedatellan.com^ -+||trifaouthits.com^ -+##a[href^="https://tc.tradetracker.net/"] > img -+||schemeabsolutejanuary.com^ -+||abc.manga9.co^ -+||steinrelists.com^ -+||oxazoleorfrays.com^ -+||revarynookier.com^ -+||crumbtypewriterhome.com^ -+||hmtacaizmmzpxv.com^ -+||inwraptsekane.com^ -+||otnolatrnup.com^$popup -+##.dfx-ad -+||fixiondenied.com^ -+##[href^="https://glersakr.com/"] -+||don403deblakda.store^ -+||summonedessencetrap.com^ -+##.zeus-ad -+hentaihaven.icu,hentaihaven.xxx,hentaistream.tv,nhentai.io##.script_manager_video_master -+||whuptaiz.net^ -+||hgub2polye.com^ -+##div[class^="adbanner_"] -+||colorfullank.com^ -+||limitlessexterminator.com^ -+||op02.biz^ ++###Ads_BA_FLB ++||ipromote.com^$third-party ++##.photo-ad ++||kgftlnvgql.com^ ++||zhnlyyrr.com^ ++/detroitchicago/minneapolis.js +||computebailiff.com^ ++@@||tra.scds.pmdstatic.net/advertising-core/$domain=voici.fr ++##.mm-banner970-90-ad ++||tube.ac^$third-party ++/detroitchicago/raleigh.js ++##[href^="https://www.mypillow.com/"] > img ++||oldgyhogola.com^ ++||colonistnobilityheroic.com^ ++##.ads-top-center ++##.inline-iframe.article--content-embed +||wrxqupnusmdewe.com^ -+indianexpress.com##.nfm-base-register-div ++allkeyshop.com,cdkeyit.it,cdkeynl.nl,cdkeypt.pt,clavecd.es,goclecd.fr,keyforsteam.de##.background-link-left ++allkeyshop.com,cdkeyit.it,cdkeynl.nl,cdkeypt.pt,clavecd.es,goclecd.fr,keyforsteam.de##.background-link-right ++||impactserving.com^$popup ++||nasrolaugers.com^ +||phukienthoitranggiare.com^ -+||chaferfathom.com^ -+||bolofoak.net^ -+||painfulpropaganda.com^ -+||directuklyecon.pics^ -+||fbmklibvrroltd.com^ -+||hakeemzeugma.com^ -+##.p-ad-dfp-banner -+||adfinix.com^$third-party -+##.p-ad-feature-pr.p-ad-thumbnail-txt -+||0fd94232df.com^ -+||bucminum.com^ -+||jujaufur.net^ -+||youtubem.shop^ -+hindustantimes.com###divshopnowRight -+||twazzyoidwlfe.com^ -+||hetadinh.com^$popup -+##a[href^="https://a-ads.com/campaigns/"] -+||ptaimpeerte.com^ -+||pahthf.tech^ -+goal.com,thisislondon.co.uk##.commercial -+||guineapilotage.com^ -+||adv.r7.com^ -+||xepkfd.com^ -+##a[href^="https://click.a-ads.com/"] -+nintendolife.com,purexbox.com,pushsquare.com##.item-insert -+||smartcj.com^$popup -+||curredreflex.com^ -+##a[href^="https://dialling-abutory.com/"] -+||kjtwpeqalrww.com^ -+||kilosposey.com^ -+||alfpair.com^ -+||sculledoxygens.com^ -+||parashpar.xyz^ -+##a[href^="http://media.paddypower.com/redirect.aspx?"] -+||starkshrewd.com^$popup -+||scalledzamia.com^ -+||cephidelixed.com^ ++###sticky-ad-bottom ++##.lazy-adv ++||ubkcrmxth.com^ ++youtube.com##ytm-promoted-sparkles-web-renderer ++/partnerships-ads- ++###topad728 ++##.ad-lib-div ++porn300.com,porndroids.com##.hidden-under-920 ++-720x90. ++##.ad-02 ++###ads_3 ++##a[href^="https://ads.betfair.com/redirect.aspx?"] ++###topadzone ++###ads_footer ++avgle.com##a[href*="/redirect"] +||peltingcatwood.com^ -+musescore.com##.js-musescore-hb-728--wrapper -+##a[href^="https://oackoubs.com/"] -+musescore.com###ad_cs_12219747_300_250 -+||exurbyellow.com^ -+||exileinstinct.com^ -+||mentwren.xyz^ -+##a[data-redirect^="https://paid.outbrain.com/network/redir?"] -+||continuousformula.com^ -+||pluffdoodah.com^ -+||yrphdyztfgfv.com^ -+||hitchrational.com^ -+||pumiceprutah.com^ -+||schemeabsolutejanuary.com^$popup -+##a[href^="https://go.xtbaffiliates.com/"] -+||onetwohub.com^ ++###inline-ad ++###left_ads ++##.ad160 ++||hughester.com^ ++||kougloar.com^ ++||maholinoticed.com^ ++###adslider ++##.ad-skyscraper1 ++##.side-bar-ad ++||andriesshied.com^ ++||duckswillsmoochyou.com^ ++||jnxm2.com^ ++||tmrjmp.com^ ++||spellingreasoningexamine.com^ ++||thegay.com^$csp=default-src 'self' *.ahcdn.com fonts.gstatic.com fonts.googleapis.com https://thegay.com https://tn.thegay.com 'unsafe-inline' 'unsafe-eval' data: blob: ++||agielspick.com^ ++||undeenardoo.com^ ++terraria.wiki.gg##[href^="https://store.steampowered.com/app/"] ++||refnippod.com^ ++||spotxcdn.com^ ++ebaumsworld.com,greedyfinance.com##.divider ++||makingnude.com^ ++##.ads.cell ++##.adun ++transfermarkt.com###home-rectangle-spotlight ++||seeptoag.net^ ++###advertising_300_under ++###advertising_300x105 ++###top-not-ads ++##.pt-ad--scroll ++drtuber.com##.drt-sponsor-block ++||adikteev.com^$third-party ++###socialAD ++##.ads-code ++##.ads10 ++###adTop ++##.uvs-ad-full-width ++||vyfrxuytzn.com^ ++###contentad-story-middle-1 ++dataversity.net,sakshi.com,songlyrics.com,yallamotor.com##.adblock ++digitaltrends.com##.b-anterior ++qwant.com##.result--ext ++edutourism.in,news24online.com,online-image-editor.com,thehindu.com##.add ++##.full-bleed-ad-container ++||hyperoi.com^ ++||googlesyndication.com/simgad/$domain=spiegel.de ++/300_250_ ++@@||connatix.com*/connatix.player.$script,domain=ebaumsworld.com|funker530.com|washingtonexaminer.com ++##.ads11 ++##.headerads ++||nativewpsh.com^ ++||bestzba.com^ ++||ja2n2u30a6rgyd.com^ ++##.gridlove-ad ++||hakeemzeugma.com^ ++##.adv_hed ++||kgdvs9ov3l2aasw4nuts.com^ ++##.tsm-ad ++guru99.com##.videocontentmobile ++||marketgid.com^ ++/adsystem. ++##.bottom_ads ++ebay.com##.app-rtm-pid-wrapper ++xxxdan.com###bottom-line ++##.primary-ad-widget ++##.secondary-ad-widget ++##.amp_ad_1 ++||nlqqrsgr.com^ +||oamoatch.com^ -+||web-guardian.xyz^ -+##.p-ad-thumbnail-txt -+codeproject.com##.msg-300x250 -+||64ffcfdec2.com^ -+##.ads_inview -+||dmdxhrne.com^ -+##a[href^="https://frameworkdeserve.com/"] -+||losingfoundation.com^ -+##.googleAdsContainer -+||suinglygaggler.com^ -+||ascensionpatterbearable.com^ -+hypebeast.com##.shopping-break-container -+||grvmedia.com^$third-party -+##[href^="https://stvkr.com/"] -+##a[href^="https://badoinkvr.com/"] -+||thegay.com/nofa/ -+##.revcontent-wrap -+||thegay.com^*/momass -+comicbook.com##.embedVideoContainer -+||jqyexkcsd.com^ -+||viapawniarda.com^ -+||disrootaffa.com^ -+sciencealert.com###Purch_D_R_0_1 -+@@||material.io^$generichide -+||ningseriencess.pics^ -+||saltycarboninsulting.com^ -+techrepublic.com###leader-bottom -+techrepublic.com###leader-plus-top -+##.ck-anyclips-article -+##a[href^="//postlnk.com/"] -+||ptupoobs.com^ -+||responsivefebruary.com^ -+##a[href^="https://www.awin1.com/cread.php?awinaffid="] -+||jsoctn9.com^ -+digg.com#?#article.fp-vertical-story:-abp-has(a[href="/channel/digg-pick"]) -+discussingfilm.net,tech-latest.com,usmagazine.com##.widget_block -+##.p-ad-dfp-middle-rec -+||d3fkv551xkjrmm.cloudfront.net^ -+@@||exosrv.com/video-slider.js$domain=xfreehd.com -+||pahtef.tech^ -+bbcamerica.com,ifc.com,sundancetv.com,wetv.com###banner-top ++||wwnrdqxo.com^ ++||pre4sentre8dhf.com^ ++arabtimesonline.com,independent.co.ug,nigerianobservernews.com##.e3lan ++/google_ads/* ++||alitems.site^$popup ++##a[href^="http://ads2.williamhill.com/redirect.aspx?"] ++||tenthsfrumpy.com^ ++||unusualbrainlessshotgun.com^ ++###adcontainer3 ++||zigansherpa.com^ ++/dfp-ads/* ++/re-ads- ++||petunsehemiope.com^ ++###Ads_BA_CAD ++/api/handshake?site=$xmlhttprequest ++||affiliatefuture.com^ ++||thorsado.net^ ++||optnumbhigh.com^ ++###adv_adsense_300_dx ++###adv_adsense_300_m ++###head_ad ++###medrec_bottom_ad ++##.InsertedAd ++##.ad-cover ++##.adChoicesLogo ++##.article-content-ad ++||19805d2bcb.com^ ++||cwqljsecvr.com^ ++||finishasleepprepared.com^ ++||hbsjqogt.xyz^ ++||ionseleaukses.autos^ ++||jujaufur.net^ ++||nordeela.com^ ++||tdrfygiwznl.com^ ++||wea5lkaf63loos8a.com^ ++||youtubem.shop^ ++collinsdictionary.com##.topslot_container ++xxxdan.com##.zx1p ++||bankerconcludeshare.com^ ++##.adsDiv ++||flyingsquirellsmooch.com^ ++getdroidtips.com,guru99.com,thegayuk.com,vanguardngr.com,wisden.com##.code-block-4 ++||skiptheadz.com^$popup ++##.ads.top ++##.adsbox--masthead ++##.meta-ad ++||chekseme.net^ ++||h2aek6rv0ard.com^ ++##.c-partner-articles ++##.sidebar-sponsored ++youtube.com##.ytp-ad-overlay-container ++||affiz.net^ ++euronews.com##.base-leaderboard ++###top_right_ad ++##.o-ad-container ++||zazu.vtube.to^ ++##.wppaszone ++||cosydrbrewing.com^ ++##.adsitem ++||quanta.la^$third-party ++gigazine.net#@#.adtag ++###ad_link ++##.ad_skin ++##.ad_table ++.hr/ads. ++##.GRVVideo ++||dw55pg05c2rl5.cloudfront.net^ ++@@||securenetsystems.net/advertising/ad_campaign_get.cfm?$xmlhttprequest ++thestreet.com##.m-balloon-header ++@@||support.google.com/google-ads/$domain=ads.google.com ++###affiliate_2 ++/tradedoubler. ++##.adArea ++##.google-ad-manager__slot ++||lcreatessque.xyz^ ++||onvictinitor.com^ ++wordcounter.net###glya ++thepointsguy.com##.favorite-cards ++porn300.com##.wrapper__related-sites ++##.adblock__banner ++||alignclamstram.com^ ++@@||brighteon.com^$generichide ++||adcdnx.com^ ++###dfp-header-container ++huffingtonpost.co.uk#@#.ad_spot ++||r18.com/track/ ++||sagedeportflorist.com^ ++||ptistyvymi.com^ ++/easyazon- ++##.outbrain-ad-units ++vice.com##.vice-ad__container ++||undooptimisticsuction.com^ ++##.partnerAd ++||immixedpistrix.com^ ++indiatoday.in###block-block-64 ++@@||radiotimes.com/static/advertising/$script,~third-party ++##.horizontal-advert-container ++||soltitate.site^ ++##.spt-footer-ad ++||tailapsi.com^ ++||sprout-ad.com^$third-party ++##.block-itg-ads ++||platitudezeal.com^ ++||dexpredict.com^$popup ++||pervialinagile.com^ ++||cultergoy.com^ ++##.billboard-ad-slot-container ++hentai2read.com##.alert-danger ++||onemboaran.com^ ++||u0064.com^ ++||st.ipornia.com^$third-party ++##.VideoAd ++techymedies.com#@##ad-top ++||whoognoz.com^ ++news.am##.banner_click ++timesofindia.indiatimes.com##._3xsKP ++##.apexAd ++androidcentral.com,techspot.com##.cta ++guru99.com##.responsive-guru99-mobile1 ++###story_top_ddb_0 ++##.js_slideshow-sidebar-ad ++||hoanoola.net^ ++||ductclickjl.com^ ++###side-ad ++##a[href^="https://mediaserver.entainpartners.com/renderBanner.do?"] ++||nawpush.com^ ++||cjt3w2kxrv.com^ ++##.adfull ++||svscomics.com/templates/defaultm/images/fboomadz.png ++||twazzyoidwlfe.com^ ++||beforeitsnews.com/img/banner_ ++##.adsbillboard ++##.neo-advert ++||azoaltou.com^ ++||jzicclzfgufga.com^ ++||safelinku.com/js/web-script.js ++##.single-mpu ++##.ad--horseshoe__content ++/ads/images/* ++||kertzmann.com^ ++##.ad-break ++###story_bottom_ddb_0 ++||starkshrewd.com^$popup ++||tophosting101.com^$third-party ++||fructushumble.com^ ++@@||experienceleague.adobe.com^$~third-party ++##.sky-ad ++||thurniafetal.com^ ++svscomics.com##.regi ++/468-60. ++###adHolder ++/prebid-min- ++||oboxads.com^$third-party ++##.header_ads ++||mbl.is/augl/ ++###ad-slot1 ++||usemax.de^$third-party ++##.Section-ad ++##.Sticky-AdContainer ++||ueuodgnrhb.com^ ++##.mobads ++##.adcard ++##.bannerAds ++##.l-ad-top ++||topazgrubbed.com^ ++||ointmentaloofpincers.com^ ++||whazugho.com^ ++||download-ready.net^$popup ++||reople.co.kr^ ++##.top-ad-content ++||ashoupsu.com^$popup ++##.full_ad ++||hedgehoghugsyou.com^ ++||exurbyellow.com^ ++||lickingimprovementpropulsion.com^$popup ++###Ads_BA_CAD2 ++smbc-comics.com###boardleader ++##.ads_title ++###smallads ++||otnolatrnup.com^$popup ++||rapolok.com^ ++##.ads-bottom-center ++##.ads-inner ++##.advert--inline ++##.ajdg_bnnrwidgets ++##.fullpage-ad ++##.js-sticky-ad ++##.story-header-ad ++##.top-header-ad ++||shqbsdjatunl.com^ ++cheese.com,datpiff.com,gtainside.com##.skyscraper ++porndoe.com##.\-f-banners ++simply-hentai.com##.skyscraper ++/ads_controller. ++||imglnkd.com^ ++||grabo.bg^$third-party ++||admulti.com^$third-party ++.is/ads/ ++wccftech.com##.main-background-wrap ++||hpyjmp.com^ ++###adLeaderboard ++||chl7rysobc3ol6xla.com^ ++###ad160600 ++###dfp-billboard1 ++##.adwide ++||interstitial-08.com^ ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Promowane przez"]) ++4kpornvideos.tv,flashtranny.com,gaymovievids.com,gaypornarchive.com,gayporno.fm,igayporn.tv,machogaytube.com,me-gay.com,onlydudes.tv,ts-tube.net,verygayboys.com,xgaytube.tv##.ae-player__itv +||qupurda.com^ -+||soundelktemper.com^ -+||dltqxz76sim1s.cloudfront.net^ -+codeproject.com##.bottom-promo -+||aeolismtact.com^ -+||delayeddisembroildisembroil.com^ -+@@||thingiverse.com/assets/ad/$image,~third-party -+||tranny.one/bd.php -+||whootkhankah.com^ -+digg.com#?#article.fp-vertical-story:-abp-has(div:-abp-contains(SPONSORED)) -+||itemgnat.com^ -+buzzfeednews.com##.pgs-dpg-flex -+||becrustleom.com^ -+||votemoodyexcavate.com^ -+||owlcongratulate.com^ -+||liegelygosport.com^ -+luscious.net##.adDisplay-module__ad_banner--Drna4 -+||poplarcolonistgreatest.com^ -+###bing-text-ad-1 -+##[href^="https://trackfin.asia/"] -+||e55cdcbcd2.com^ -+||eggnogsagrapha.com^ -+||starterplaicebrow.com^ -+||uyaly.com^ -+##div[class^="kiwiad-desktop"] -+##div[class^="kiwiad-popup"] -+||tynnikhb.com^ -+blackhaloadultreviews.com,hentaigasm.com,javjunkies.com,masahub.net,porn-w.org,yespornplease.porn##a[href*="//bit.ly/"] -+||izewuzabgcojd.com^ -+||declk.com^ -+||kendosliny.com^ -+||shaickox.com^ -+||peacockdienook.com^ -+||purchasefastidiouswindfall.com^ ++whatismyipaddress.com##.fl-module-wipa-concerns ++||oxazoleorfrays.com^ ++||green-red.com^$third-party ++10play.com.au,ebay.com,geo.tv,jozifm.co.za,nwherald.com,runt-of-the-web.com,thewest.com.au,topgear.com.ph##.mrec ++##.adAreaTopTitle ++##.modal-ad ++##.weather_ad ++smbc-comics.com###comicright > div[style] ++legacy.com###display-right-1 ++||milestonequakingashes.com^ ++###sponsored_content ++||curtlychit.com^ ++##.top-advertisement ++||fearwild.com^ ++###leftAd_fmt ++###leftAd_rdr ++##.ligatus ++##.mmads ++##.newsAd ++##.page-ads ++||mopnatrestriction.com^ ++||adfinix.com^$third-party ++||chrantary-vocking.com^ ++||jollyembodyclassified.com^ ++alphaporno.com##.bottom-banners ++||trifaouthits.com^ ++##.ad-rail-wrapper ++||popmyads.com^ ++##.list-ad ++||shemale.house^$third-party ++_reklama_$domain=~youtube.com ++##.region-ad-bottom-leaderboard ++||warilyaggregation.com^ ++##.banner-ad-inner ++##.centered-ad ++###header-ad-slot ++##.js-ad-banner-container ++proporn.com,vivatube.com##.livecams ++##.ad_head ++##.ad-medium ++##.single-top-ad ++electronicproducts.com,powvideo.net,streamplay.to###overlay ++##.advertising-notice ++||dentofinauk.shop^ ++||cutlersbahaism.com^ ++###ad_wrapper ++###adcode ++##.medrec-ad ++||hetadinh.com^$popup ++###HP1-ad ++sciencing.com,sportsnet.ca##.sticky-leaderboard-container ++###gpt-mpu ++||realssp.co.kr^$third-party ++/adv2. ++###div-ad-leaderboard ++||cloudnetstorage.com^ ++/advscript. ++||cynicaugural.com^ ++||cam4tracking.com^$popup ++||drda5yf9kgz5p.cloudfront.net^ ++||op02.biz^ ++digg.com#?#article.fp-vertical-story:-abp-has(a[href="/channel/digg-pick"]) ++_720x90. ++###ad-block-2 ++##.full-top-ad-area ++||energeticholder.com^ ++||asg.bhabhiporn.pro^ ++##.rightad ++@@||wikibooks.org^$generichide ++###ads_container ++##.ad-render-space ++||bncloudfl.com^ ++porngem.com,uiporn.com##.a-d-v ++##.adIframe ++##.widget-dfp ++xdpedia.com#@#div[id^="ezoic-pub-ad-"] ++||shrinkearn.com^$third-party ++###ad-standard ++###gasense ++||fastdlr.com^ ++##.advertising1 ++##.adslot_4 ++###lowerads ++###tfm_admanagerTeaser ++||wistia.com/assets/external/googleAds.js ++digg.com#?#article.fp-vertical-story:-abp-has(a[href="/channel/promotion"]) ++##.stickad ++||jewishcontentnetwork.com^$third-party ++||turnhub.net^ ++/adjs/*$~image ++##.googleAdsContainer ++||maniconclavis.com^ +axisbank.com##.topbandBg_New -+||pharaohsteven.com^ -+##.Article-advert -+##[href^="https://www.avantlink.com/click.php"] img -+||shrewdoscular.com^ -+||ku2d3a7pa8mdi.com^$popup -+||marvelrespectableinset.com^ -+||sunburnquasars.com^ -+||pangrespectfully.com^ -+||flaticon.com/edge/banner/$popup ++dailydot.com,grammar-monster.com##footer ++||heavyrnews.name^ ++reddflix.com##.advbox ++||rev-stripe.com^ ++##.adbutton ++||vhanime.com/js/bnanime.js ++brila.net,cgmagonline.com,cycling.today,gayexpress.co.nz,theyeshivaworld.com,thisisanfield.com##.td-banner-wrap-full ++||earn-bitcoins.net/banner_ ++###sidebar-ad2 ++ladbible.com,unilad.co.uk##div[class*="margin-Advert"] ++||tobaltoyon.com^ ++##.ad-sponsors ++||ascensionpatterbearable.com^ ++/adnet.$domain=~adnet.agency|~adnet.hr ++##.ad_margin ++##.signad ++||chrif8kdstie.com^ ++###contentad-superbanner-1 ++/ads_iframe. ++##.p-ad-dfp-middle-rec ++depositfiles.com,depositfiles.org,dfiles.eu,dfiles.ru##.banner1 ++##.advertisement-top ++##.dac__mpu-card ++||0-000.store^ ++##.AdTitle ++##.ad-position-2 ++||thegay.com/nofa/ ++kompoz2.com,pornvideos4k.com##.brs-block ++@@||edmodo.com/ads$~third-party,xmlhttprequest ++||inwraptsekane.com^ ++##.ad-position ++||kendosliny.com^ ++###adstrip ++/336x280- ++||impactslam.com^$third-party ++||lwgadm.com^ ++||thegay.com^*/momass ++##.ad100 ++||organsthud.com^ ++drugs.com##.topbanner-wrap ++bing.com##.ad_sc ++guru99.com#?#.content2:-abp-has(div[id^="div-gpt-ad"]) ++||kaurouby.net^ ++||thisvid.com/enblk/ ++###HP2-ad ++||jqyexkcsd.com^ ++##.sideBoxStackedAdWrap ++##.ads3 ++||safelywestselfish.com^ ++||dexchangeinc.com^ ++||oataltaul.com^$popup ++||adrealclick.com^$third-party ++###sidebar-ad3 ++||jatsekse.net^ ++consobaby.co.uk,gumtree.com,pcgamingwiki.com,thefootballnetwork.net###mpu ++pravda.ru##.yaRtbBlock ++||prscripts.com^$third-party ++/ads4.$domain=~ads4.city ++##.divads ++##aside[id^="advads_ad_widget-"] ++whatismyipaddress.com##.fbx-player-wrapper ++###ad-slot-3 ++###ad_row ++###locked-footer-ad-wrapper ++###video_advert ++||ietyofedinj89yewtburgh.com^ ++##.ipsAd ++###ad_wrapper1 ++###home_mpu ++###banner_ads ++@@||adjust.com/adjust-latest.min.js$domain=anchor.fm ++/modules/ads/* ++/adoverlay/* ++###AdRectangleBanner ++###adscontainer ++###topads-wrapper ++##.ad-text-link ++##.area_ad03 ++##.js_slideshow-full-width-ad ++##.mvp-feat1-list-ad ++stuff.tv#@#.c-ad ++||admicro.vn^ ++||alecupknuffe.com^ ++||currierfrank.com^ ++||drivecareveryday.com^ ++||opertyvaluat.autos^ ++||yearil.com^ ++beckernews.com,bizpacreview.com,browserhow.com,constructionreviewonline.com,planetanalog.com,windowslatest.com,yugatech.com##.ai_widget ++mediamanager.co.za##.bnr ++hentaidude.xxx##.ai_widget ++pornogratisdiario.com,xcafe.com##.bnr ++kompoz2.com,pornvideos4k.com,roleplayers.co##.full-bns-block ++||news-headlines.co^ ++||zeroidtech.com^ ++||puitaexb.com^ ++||33ceaea337.cfd^ ++/beacon/ads/* ++||evhipjnjvxxuikn.xyz^ ++||dvypar.com^ ++##.a-ad ++##.add300x250 ++##.pagefair-acceptable ++||fumarinpest.com^ ++##.header-advertise ++aframnews.com,afro.com,aurn.com,borneobulletin.com.bn,businessday.ng,businessofapps.com,chicagodefender.com,chimpreports.com,coinweek.com,dailysport.co.uk,dallasvoice.com,gatewaynews.co.za,gayexpress.co.nz,gematsu.com,islandecho.co.uk,jacksonvillefreepress.com,mediaplaynews.com,moviemaker.com,newpittsburghcourier.com,nondoc.com,one.com.mt,richmondshiretoday.co.uk,sammobile.com,savannahtribune.com,talkradioeurope.com,thegolfnewsnet.com,waamradio.com,womensagenda.com.au##.g ++||toeapesob.com^ ++##.footer-ad-wrap ++##.postad ++||responsivefebruary.com^ ++###adLayer ++##.adtech-wrapper ++###adheader ++###middleads2 ++digg.com#?#article.fp-vertical-story:-abp-has(div:-abp-contains(SPONSORED)) ++_ad_block& ++##.sponsored-block ++||smartcj.com^$popup ++porntry.com,videojav.com##.video-side__spots ++/ads/gpt_ ++##.gpt-ad-container ++||havanese.top^ ++||cacheone.fun^ ++##.desktop.ad ++||grossedoicks.com^ ++##.adsHeader ++##.adfliction ++6abc.com,abc11.com,abc13.com,abc30.com,abc7.com,abc7chicago.com,abc7news.com,abc7ny.com##.leaderboard2 ++azcentral.com,detroitnews.com,freep.com##div[id^="ad-slot-"] ++/300x150_ ++||besullyatte.com^ ++||stagepopkek.com^ ++turbobit.net###__bgd_link ++/v3/ads? ++##.ad-refresh ++##.innerad ++||lapblra5do4j7rfit7e.com^ ++||ydreamsau.autos^ ++||getscriptjs.com^ ++##.ad-wide ++###ad-background ++plos.org##.head-top ++###right-ads ++||sapagallic.com^ ++##.ads-aside ++pinterest.ca,pinterest.at,pinterest.ch,pinterest.co.uk,pinterest.com,pinterest.com.au,pinterest.com.mx,pinterest.de,pinterest.es,pinterest.fr,pinterest.it,pinterest.pt#?#div[data-test-id="pin"]:-abp-has(div[title="Gesponsord door"]) ++||fsalfrwdr.com^ ++###ads_right ++##.c-ad--adStickyContainer ++legacy.com###display-right-2 ++rateyourmusic.com##.column_filler ++ebaumsworld.com##.mediumRect ++##.ad-btn ++/reclame/*$domain=~github.com ++##.zox_ad_widget ++||siegepolitical.com^$popup ++||snugslackmakeup.com^$popup ++usnews.com###ac-lre-player-ph ++/script/ads_ ++||relumedbiaxial.com^ ++##.advertisement1 ++##.reserved_box_ads ++##.sponsored-container ++||d3jdulus8lb392.cloudfront.net^ ++.eu/adv/ ++##.ad-card-container ++##.stickyContainerMpu ++vice.com##.adph ++lawandcrime.com,mediaite.com##.sidebar-hook ++||8muses.com/banner/ ++###ad-pushdown ++##.block-ltadvertising ++##.subscriber-ad ++##.widget_ad_widget ++atptour.com###footerPartners ++atptour.com##.iab-wrapper ++empflix.com##.pause-overlay ++||targetspot.com^$third-party ++||leadfamly.com/campaign/sdk/popup.min.js ++@@||www.google.*/aclk?$domain=google.ae|google.at|google.be|google.bg|google.by|google.ca|google.ch|google.cl|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.nz|google.co.th|google.co.uk|google.co.ve|google.co.za|google.com|google.com.ar|google.com.au|google.com.br|google.com.co|google.com.ec|google.com.eg|google.com.hk|google.com.mx|google.com.my|google.com.pe|google.com.ph|google.com.pk|google.com.py|google.com.sa|google.com.sg|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vn|google.cz|google.de|google.dk|google.dz|google.ee|google.es|google.fi|google.fr|google.gr|google.hr|google.hu|google.ie|google.it|google.lt|google.lv|google.nl|google.no|google.pl|google.pt|google.ro|google.rs|google.ru|google.se|google.sk|googleadservices.com ++##.adcode-widget ++##.area_ad09 ++||lingamretene.com^ ++||d227cncaprzd7y.cloudfront.net^ ++||ajxx98.online^ ++##.headerAds ++###adColumn ++##.groei-ad ++||vs4.com/req.php?z= ++aniwatcher.com##.sa ++###advert_1 ++/ad_manager/* ++/ck.php?nids ++###ad-top-banner ++###adv-right ++##.container_ad ++||drpulgrcg.com^ ++||elsewherebuckle.com^ ++||shauksug.com^ ++bleedingcool.com,indy100.com,jamaicaobserver.com,pastemagazine.com###top_leaderboard ++||whatosgoingon.biz^ ++##.Advert-label ++##.a160x600 ++legacy.com###display-top-1 ++||plaicestems.com^ ++/imgads/* ++##.detail-ad ++/ads/main. ++||a91dcb249b.click^ ++||moedgapers.com^ ++##.main-ad-container ++@@||adf.ly^$generichide ++?adTagUrl= ++||crumbtypewriterhome.com^ ++||dtiserv2.com^$third-party ++||manytoon.com/script/$script ++||chaintopdom.nl^ ++||origunix.com^ ++/rcsad_ ++/ad-api- ++@@||itv.com/itv/hserver/*/site=itv/$xmlhttprequest ++##.ad-span ++||revenueflex.com^$third-party ++||strowedatellan.com^ ++##.ad-large-1 ++##.ad-small-1 ++##.ad-small-2 ++##.adRectangle-pos-large ++##.module__ad-wide ++||son-in-lawmorbid.com^ ++###quads-ad2_widget ++androidsage.com,cryptoreporter.info,ets2.lt,geekdashboard.com,geekspin.co,getdroidtips.com,kanonitv.net,techpp.com,whats-on-netflix.com##.code-block-1 ++||nimrute.com^ ++||phicmune.net^ ++/ad_fallback/* ++/adload. ++_adcontent/ ++||directuklyecon.pics^ ++##.ad_desktop ++###google-ad ++##.player-ad ++||nsstatic.com^$third-party ++||ptaimpeerte.com^ ++##.advert--placeholder ++##.mom-ad ++##.searchRightMiddleAds ++###ad-stickers ++###adBannerTop ++##.vjs-ad-overlay ++pornicom.com##.spot-after ++||owlcongratulate.com^ ++##.top-banner-ad ++||semjurljffawpt.com^ ++###NR-Ads ++@@||g2crowd.com/uploads/product/image/$image,domain=g2.com ++##.revive-ad ++##.above-header-advert ++/bannerad/* ++@@||cbs.com^$generichide ++###block-ltadvertising-ltadvertising ++||xwvbbphb.com^ ++||clickadilla.com^$third-party ++###player-advertising ++##.ad_side ++##.adtag ++||autopsycarrel.com^ ++||haunigre.net^ ++||zifujwgejz.com^ ++###leader-ad ++southernliving.com##.karma-sticky-rail ++||socalleddemocratstripe.com^ ++hindustantimes.com###divshopnowRight ++||blueparrot.media^ ++/wp-ad-guru/* ++||spotscenered.info^$popup ++||scurfrubicon.com^ ++##.adSky ++##.inline-story-add ++pinflix.com,pornhd.com##.zone-area ++||d3hyjqptbt9dpx.cloudfront.net^ ++timesofindia.indiatimes.com##.addblock ++||smarttopchain.nl^ ++###top-ads ++||topblockchainsolutions.nl^ ++||anchovysuccession.com^ ++##.NR-Ads ++||tumedhan.com^ ++||korrelate.net^ ++##.ad-wrapper-top ++##.after-intro-ad ++||rlsospzbvquy.com^ ++-advertise.$domain=~ads.com|~i-advertise.net|~mb-advertise.gr ++||tramemedea.com^ ++||onclickalgo.com^$popup ++_adcall. ++##.dfpad ++##[href^="https://trackfin.asia/"] ++||ilinouck.net^ ++||starterplaicebrow.com^ ++||imonomy.com^$third-party ++||medyagundem.com^$third-party ++||statsperformdev.com^$third-party ++aeroexpo.online,agriexpo.online,directindustry.com,fonearena.com,frontlinesoffreedom.com,stakingrewards.com,winemag.com###header-banner ++luscious.net##.adDisplay-module__ad_banner--Drna4 ++aan.xxx###header-banner ++||becrustleom.com^ ++||movcpm.com^ ++/ad/top_ ++/reclama/* ++###adwrapper ++##.skyscraper_ad ++||cuseccharm.com^ ++breakingbelizenews.com,cardealermagazine.co.uk,headfonics.com,igorslab.de,landline.media,mikesmoneytalks.ca,sundayworld.co.za,theroanokestar.com,visualcapitalist.com##a[href*="/linkout/"] ++pornlib.com##a[href*="/linkout/"] ++||clipelis.lol^ ++##.penci-google-adsense-1 ++###ad-slug-wrapper ++/right_ad_ ++nintendolife.com,purexbox.com,pushsquare.com##.insert-label ++||meo257na3rch.com^ ++###ad_close ++##.adSlide ++##.sidebar-sticky--ad ++##.ads_468 ++||healmsuoguurd.eu^ ++##.entry-ad ++||pahthf.tech^ ++||secureaddisplay.com^ +||hsrvz.com -+||get2m5sgstohne.com^ -+bestvpnserver.com###text-9 -+coolors.co###generator_cad -+###bing-text-ad-2 -+##[href^="https://mypatriotsupply.com/"] > img -+1071thepeak.com,gpfans.com,thedailystar.net##.top-leaderboard -+||draggedgram.com^ ++||hellporno.com/_a_xb/ ++##.sidebox-ad ++||oversowcholam.com^ ++##.adheader ++||peacockdienook.com^ ++_images/ad_ ++-728-90. ++###adverticum_r_above ++###advertise-block ++###left_ad ++##.dfp_ads_block ++##.news_imgad ++||ptekuwiny.pro^ ++||purchasefastidiouswindfall.com^ ++animefire.net##.divSection3 ++fox10phoenix.com,fox26houston.com,fox4news.com,fox7austin.com,foxla.com##.vendor-unit ++javdoe.fun,javhd.today,javseen.tv,javtape.site###previewBox ++||barlo.xyz^ ++||ufpcdn.com^ ++/adcounter. ++_350x100. ++||nickeeha.net^ ++2merkato.com,2mfm.org,aps.dz,armyrecognition.com,beginlinux.com,botswanaguardian.co.bw,cbn.co.za,dailynews.co.tz,digitalmediaworld.tv,eprop.co.za,finchannel.com,i-programmer.info,killerdirectory.com,pamplinmedia.com,radiolumiere.org,southfloridagaynews.com,thepatriot.co.bw##.bannergroup ++###ad-rectangle2 ++##.adlist ++##.advertisementText ++||yallarec.com^ ++##.player__inline-ad ++##.news-ad ++@@||survey.g.doubleclick.net^$script,domain=sporcle.com ++###dfp-rectangle1 ++##.gallery-sidebar-ad ++##.jsOneAd ++/files/ad/* ++##.ad-BANNER ++/ad/get_ ++||adplugg.com^$third-party ++##.ads-posting ++||konradsheriff.com^ ++||schese.com^ ++||wuzbhjpvsf.com^ ++porntry.com##.center-spot ++||potwm.com^ ++##.ad-grid ++##.sidebar-advert ++##.ads-block-top ++foxbusiness.com##.pre-content ++||hetaint.com^ ++||accentneglectporter.com^ ++##.adunit-middle ++||cfbenchcl.com^ ++##.widget_adswidget1-quick-adsense ++||kettakihome.com^$popup ++/delivery/avw. ++###adverticum_r_above_container ++##.ad300250 ++##.adform__topbanner ++##.adverticum_container ++##.adverticum_content ++##.adverticum_gate_banner ++##.adImg ++_160x600/ ++||pimpandhost.com/static/html/ ++@@||exosrv.com/video-slider.js$domain=xfreehd.com ++###container_ad ++##.ad_billboard ++imgbb.com##.abnr ++/ads/tso ++||can-get-some.in^ ++knowyourmeme.com##.combo-wrapper ++||jscount.com^ ++||losingfoundation.com^ ++##.ad-subtitle ++##.sticky-ad-bottom ++||pilaffskoniga.com^ ++||yckussysvawiu.xyz^ ++###sidebar-ads ++##.banner-ad-wrap ++pcgamesn.com##.new_affiliate_embed ++indiatoday.in##.rtl-shopping ++##.page__top-ad-wrapper ++/get_ads| ++###adsContent ++###player_ads ++##.ad_inline ++hentaihaven.icu,hentaihaven.xxx,hentaistream.tv,nhentai.io##.script_manager_video_master ++comicbook.com##.embedVideoContainer ++formula1.com##.f1-dfp-banner-wrapper ++##.ads__container ++||continuousformula.com^ ++||aimpooft.com^ ++||asmsagvjbxejm.xyz^ ++||dvnmyltt.xyz^ ++||ghyklxvleas.xyz^ ++||hbepoqct.xyz^ ++||ikmstxasipnuyi.com^ ++||kojfsbehrvdui.xyz^ ++||opkkrbqyrqtkmty.com^ ++||rsngelaqprud.xyz^ ++||spyafoepeyddb.xyz^ ++||ulfewmgywwxs.xyz^ ++||woeocbeswhf.xyz^ ++||alfpair.com^ ++/header-ad- ++||junmediadirect.com^ ++###dcomHomeTop-728x90 ++##.html-advertisement ++##.promoAds ++||dafttwist.com^ ++||admarketplace.net^$third-party ++##a[href^="https://tc.tradetracker.net/"] > img ++||crbbgate.com^ ++||arbourrenewal.com^ ++||roilsnadirink.com^ ++/v7/ads/* ++||rxthdr.com^ ++||igreskfq.com^ ++##.ads-square ++||ldndromaqpnnp.com^ ++ign.com##.deals-block ++@@||ads.google.$popup,domain=google.ac|google.ad|google.ae|google.al|google.am|google.as|google.at|google.az|google.ba|google.be|google.bf|google.bg|google.bi|google.bj|google.bs|google.bt|google.by|google.ca|google.cat|google.cd|google.cf|google.cg|google.ch|google.ci|google.cl|google.cm|google.co.ao|google.co.bw|google.co.ck|google.co.cr|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.ls|google.co.ma|google.co.mz|google.co.nz|google.co.th|google.co.tz|google.co.ug|google.co.uk|google.co.uz|google.co.ve|google.co.vi|google.co.za|google.co.zm|google.co.zw|google.com|google.com.af|google.com.ag|google.com.ai|google.com.ar|google.com.au|google.com.bd|google.com.bh|google.com.bn|google.com.bo|google.com.br|google.com.by|google.com.bz|google.com.cn|google.com.co|google.com.cu|google.com.cy|google.com.do|google.com.ec|google.com.eg|google.com.et|google.com.fj|google.com.gh|google.com.gi|google.com.gt|google.com.hk|google.com.jm|google.com.jo|google.com.kh|google.com.kw|google.com.lb|google.com.ly|google.com.mm|google.com.mt|google.com.mx|google.com.my|google.com.na|google.com.ng|google.com.ni|google.com.np|google.com.om|google.com.pa|google.com.pe|google.com.pg|google.com.ph|google.com.pk|google.com.pr|google.com.py|google.com.qa|google.com.ru|google.com.sa|google.com.sb|google.com.sg|google.com.sl|google.com.sv|google.com.tj|google.com.tn|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vc|google.com.ve|google.com.vn|google.cv|google.cz|google.de|google.dj|google.dk|google.dm|google.dz|google.ee|google.es|google.fi|google.fm|google.fr|google.ga|google.ge|google.gg|google.gl|google.gm|google.gp|google.gr|google.gy|google.hk|google.hn|google.hr|google.ht|google.hu|google.ie|google.im|google.iq|google.is|google.it|google.it.ao|google.je|google.jo|google.jp|google.kg|google.ki|google.kz|google.la|google.li|google.lk|google.lt|google.lu|google.lv|google.md|google.me|google.mg|google.mk|google.ml|google.mn|google.ms|google.mu|google.mv|google.mw|google.ne|google.ne.jp|google.ng|google.nl|google.no|google.nr|google.nu|google.pl|google.pn|google.ps|google.pt|google.ro|google.rs|google.ru|google.rw|google.sc|google.se|google.sh|google.si|google.sk|google.sm|google.sn|google.so|google.sr|google.st|google.td|google.tg|google.tl|google.tm|google.tn|google.to|google.tt|google.us|google.vg|google.vu|google.ws ++##.c-ad-size2 ++##.fp_adv-box ++##[href^="https://awbbjmp.com/"] ++||inconsistencyriskyan.com^ ++thepointsguy.com##.beam-card-feature ++/css/adsense ++||limitlessexterminator.com^ ++||physicallyfinch.com^ +||wilfridscandalconceived.com^ -+||yorage.com^ -+##a[href^="http://reallygoodlink.freehookupaffair.com/"] ++/ads/home/* ++||maw5r7y9s9helley.com^ +||headstonefoamcleaver.com^ ++||iwkexdab.com^ ++||superfastcdn.com^$popup +smallseotools.com##.b +smallseotools.com##.new__s_ -+##a[href^="https://clicks.pipaffiliates.com/"] -+##.js-mapped-ad ++democraticunderground.com,plos.org##.skyscraper-container ++||abgligarchan.com^ ++/video-ads/* ++##.advertBox ++/resources/ad. ++||oataltaul.com^ ++javgg.net###adlink +||taggyhearse.com^ -+||zendplace.pro^ ++##.adMgsBanner ++##.js-ads ++tvnz.co.nz##.Advert ++jpost.com##.right-side-banner ++||adziff.com^ ++##.ad_item ++/pageadimg/* ++##.taboola-in-plug-wrap ++||whsrdsweq.com^ ++/prebid35. ++||acloudimages.com^$third-party ++##.adHeader ++@@||downol.dr.dk/download/*&clicktag=http$document,subdocument,domain=dr.dk ++||d1t8it0ywk3xu.cloudfront.net^ ++||ad-mapps.com^ +smallseotools.com##.px301 -+##div[id^="ads300_100-widget-"] ++/adsetup_ ++/web-ads. ++||pigtre.com^ ++##.ad_frame ++##.frn_adbox ++ebaumsworld.com#@#.promoAd ++convertcase.net##.feature ++androidcentral.com,imore.com##.no-amazon ++##.banner_468x60 ++##.header__advertisement ++/adview_ ++##a[data-redirect^="https://paid.outbrain.com/network/redir?"] ++##.b-adv ++###adRight ++||eggnogsagrapha.com^ ++/right_ad. ++||grairsoa.com^ ++|https://$image,script,stylesheet,subdocument,third-party,xmlhttprequest,domain=canyoublockit.com ++|https://$image,script,stylesheet,subdocument,third-party,xmlhttprequest,domain=shink.me|shon.xyz ++||rotumal.com^ ++/bannerads/* ++/default/ads/* ++###googleAds ++###mpuAd ++##.ad-unit-secondary ++##.ad-unit-sponsored-bar ++##.ads_label ++##.adv-slot-container ++##.b-ad ++##.side_adv ++##.sponsored-article-widget ++##.widget_better-ads ++##.article-footer--taboola ++||agunahclamped.com^ ++||ccn08sth.de^ +||dollopsshutout.com^ -+||foiblesretried.com^ -+||hinoidczarist.com^ -+||wosade.xyz^ -+||ghostedridotto.com^ -+||pilaryhurrah.com^ -+##a[href^="https://www.privateinternetaccess.com/"] > img -+||woathail.net^ -+||godlessabberant.com^ -+||whootascots.com^ -+||tumedhan.com^ -+||velteels.net^ -+||get-me-wow. -+||jppwzdbypenk.com^ -+##a[href^="https://k2s.cc/pr/"] -+||upendsspicily.com^ -+||leezoama.net^ -+gcn.com,groovyhistory.com,lifebuzz.com,toocool2betrue.com,videogameschronicle.com##.adwrapper -+||curietplatly.com^ -+||choptacache.com^ -+###bing-text-ad-3 -+||erenowcommie.com^ -+||rjstusbx.com^ -+techrepublic.com##.medusa-list -+||choobinoobi.com^ -+||yesnisndglh.com^ -+||pahtwt.tech^ -+##.player__inline-ad -+smallseotools.com##.px261 -+target.com#?#div[data-test="@web/site-top-of-funnel/ProductCardWrapper"]:-abp-contains(sponsored) -+##a[href^="https://servedbyadbutler.com/"] -+##[href^="https://www.targetingpartner.com/"] -+||flocktanjib.com^ -+||tpvjycisbqklu.com^ -+||beauhoneycomb.com^ -+||casserolehunchcontract.com^ -+||clozetempts.com^ -+||demostens.store^ -+||gnyergfy.com^ -+||gombaltowa.cfd^ -+videojav.com##.underplayer_banner -+||dopansearor.com^$popup -+/_js/prbd_6.19.0.js -+##a[href^="http://online.ladbrokes.com/promoRedirect?"] -+||catclawvines.com^ -+||aranuf.com^ ++||exofrwe.com^ ++||gastedidlemen.com^ ++||lurgaimt.net^ ++||sagacivisms.com^ +||xmlapiclickredirect.com^ -+tenforums.com,wahm.com##[style="min-height:250px;"] ++||glitteridentifiernavy.com^$popup ++||d3numuoibysgi8.cloudfront.net^ ++audioz.download###PromoHead ++eightieskids.com##.break ++audioz.download##[src*="/promo/"] ++@@||material.io^$generichide ++||19273817.com^ ++##.top_ads ++-web-ad- ++||draggedgram.com^ ++||frap.site^ ++time.is##.rad ++###FooterAd ++##.ad-hdr ++##.top-ad-anchor ++##.ads-bing-top ++##.m-advertisement ++###ad_unit2 ++###right-rail-ad-slot-content-top ++###top-ad-slot-0 ++##.textadbox ++infowars.com##.css-1nbwp0k ++###adlinks ++##.adss ++||azureedge.net/cdn/js/rad.js ++###ad_9 ++||onetwohub.com^ ++||clmcom.com^ ++||doneeinvict.com^ ++||phoaptee.net^ ++##.bottomads ++||rag3ca7t5amubr8eedffin.com^ ++/ad/common/* ++###divAds ++target.com#?#div[data-test="@web/site-top-of-funnel/ProductCardWrapper"]:-abp-contains(sponsored) ++##div[id^="advads_"] ++||aspiredcapitol.com^ ++||vrsshsdaa.com^ ++##.ad-integrated-display ++##.side_ad_3 ++##.sidebar__ad ++||showfocuspocus.com^ ++||tracot.com^$popup ++ladbible.com##.css-1dgm0zi-Advert ++/imageads/* ++##.top-adv ++-article-ad. ++/pbjsandwich. ++||rovettobirse.com^ ++##.adMiddle ++||foisonbetises.com^ ++###advert2 ++||momdola.com^ ++tigerdroppings.com##.divHLeaderFull ++||raupsica.net^ ++||where.com^ ++||wg-aff.com^ ++###ad-flex-top ++###adchoices-icon ++##.block-simpleads ++/jquery.adi. ++_160_600. ++###panel-ad ++##.native_ad ++##.b_ads ++bab.la##.info-panel ++||tranny.one/bd.php ++##.adBillboard ++abbotsfordgasprices.com,albertagasprices.com,barriegasprices.com,bcgasprices.com,calgarygasprices.com,edmontongasprices.com,gasbuddy.com,halifaxgasprices.com,hamiltongasprices.com,kwgasprices.com,londongasprices.com,manitobagasprices.com,montrealgasprices.com,newbrunswickgasprices.com,newfoundlandgasprices.com,novascotiagasprices.com,nwtgasprices.com,ontariogasprices.com,ottawagasprices.com,peigasprices.com,quebeccitygasprices.com,quebecgasprices.com,reginagasprices.com,saskatoongasprices.com,saskgasprices.com,torontogasprices.com,vancouvergasprices.com,victoriagasprices.com,winnipeggasprices.com###divSky ++wccftech.com##.bg-square ++wccftech.com##.bg-vertical ++motorsport.com##.ms-ap ++playvids.com,pornflip.com##.invideoBlock ++##.adsidebar ++||d3qinhqny4thfo.cloudfront.net^ ++##.advertorial-teaser ++||ilyf4amifh.com^ ++/publicidad_$~stylesheet ++@@||z.moatads.com^$script,domain=standard.co.uk ++##.adinjwidget ++||facyptythu.com^ ++||widgets.oddschecker.com^ ++###adbottom ++/banner-ad- ++_topad. ++||oakapsot.com^ ++||upendsspicily.com^ ++binnews.com,iheart.com##.component-pushdown ++3movs.com##.spot-header ++tigerdroppings.com##.lowLead ++motorsport.com##.ms-apb-dmpu ++||rufodeey.net^ ++||trafforsrv.com^$third-party ++||zendplace.pro^$third-party ++##.banner-728 ++majorgeeks.com##.navigation-light ++||bookmsg.com^ ++||nebrisvorago.com^ ++##.mod_ad_t25 ++hdfcbank.com#@#.adbanner ++||revarynookier.com^ ++##.index_ad_a4 ++##.index_ad_a6 ++##.index_ad_column2 ++##.article__adblock ++##.hp_textlink_ad ++##.index_ad_a5 ++##.mod_index_ad ++##.mod_r_ad ++||datajsext.com^ ++/paidads/* ++||4hfchest5kdnfnut.com^ ++||facebook.com/audiencenetwork/$third-party ++/images2/Ads/* ++/gtv_ads. ++##.advads-close-button ++##.top-ad-desktop ++videojav.com##.underplayer_banner ++##.adClose ++##.ads_3 ++###bigbox-ad ++||salutationcheerlessdemote.com^ ++variety.com###leaderboard-no-padding ++##.index_ad_a2 ++##.mod_r_ad1 ++msn.com##.serversidenativead.secondary ++_ad3. ++||fdelphaswcealifornica.com^ ++###adsense1 ++britannica.com##.bc-article-inline-dialogue ++drtuber.com##a[href^="/partner/"] ++||acplat.online^$popup ++||plaguemanipulatedrag.com^ ++||adsxyz.com^ ++##.gutterads ++||biptolyla.com^ ++||bemobpath.com^ ++##.wideAd ++##.ad-header-container ++||uomsogicgi.com^ ++##.mod_ad_text ++##.g_adv ++##.ad-in-content ++###related_ads ++##.ad-skeleton ++||cephidelixed.com^ ++ccm.net##.ccm_pugoo__sponso ++||omgt4.com^$popup ++###advertising_300 ++##.sponsored-tag ++##a[href^="https://www.awin1.com/cread.php?awinaffid="] ++||pharaohsteven.com^ ++###wrapper-AD_R ++pervclips.com##.remove-spots ++.cz/bannery/ ++||mgcicjfqyfik.com^ ++||iardxdnc.com^ ++bobvila.com##.bv-unit-wrapper ++##.adv-970 ++##.sticky-ad-footer ++||aihoasso.net^ ++/page-ads- ++###ad_global_header2 ++engadget.com###gemini-right-rail-thumbnails ++||auditioningouncesufficiently.com^ ++||pushtorm.net^ ++||deepermagnes.com^ ++##.google-ad-iframe ++@@||bankofamerica.com^*?adx=$~third-party,xmlhttprequest ++javgg.net##.home_iframead ++=160x600; ++##.gad-container ++||afflat3a1.com^ ++##.sidebarad ++##.ads-one ++##.adslisting ++##.advertContainer ++##.dfx-ad ++##.textadscontainer ++mbl.is##.augl ++smallseotools.com##.px261 ++futbol24.com##.rek ++||zuphaims.com^ ++||kaiu-marketing.com^ ++##a[href^="https://webroutetrk.com/"] ++||6bgaput9ullc.com^ ++||pubtm.com^ ++||d2lahoz916es9g.cloudfront.net^ ++presskitaquat.com##.e3lan-top ++##.right-ad2 ++||significantoperativeclearance.com^$popup ++/suv4.js ++||hetadinh.com^ ++##.ad-tech-widget ++##.sponsor_image ++##.thumb_ad ++2oceansvibe.com###skin ++/fro_lo.js ++thedailybeast.com##.Cheat__top-ad ++linuxize.com##.linaff ++eatthis.com##[id^="gm_karmaadunit_widget"] ++/sideads. ++||ourl.link^ ++||choobinoobi.com^ ++###sidead ++##.ad--marker-inner ++##.ad--stroer ++##.ad__superbanner ++||effectiveperformanceformat.com^ ++||ocelot.studio^$third-party ++tekno.kompas.com##.native-wrap ++##a[href^="http://cam4com.go2cloud.org/aff_c?"] ++###ad-slot2 ++##.adHolderStory ++##.onf-ad ++##.ad-displayed ++||6glece4homah8dweracea.com^ ++@@||adsales.snidigital.com/*/ads-config.min.js$script ++coincodex.com,yourbittorrent.com##iframe[src] ++xcafe.com##iframe[src] ++pornhd.com##.footer-zone ++/popunder- ++||ltdxdwjsf.com^ ++||bostopago.com^ ++=468x60& ++||pahtef.tech^ ++###divThreadAdBox ++disk.yandex.by,disk.yandex.com,disk.yandex.kz,disk.yandex.ru,disk.yandex.ua,disk.yandex.uz,freevoipdeal.com,voipstunt.com,yadi.sk#@#.content_ads ++||aff-track.net^ ++||leukemiarussianarmies.com^ ++=300x250_ ++/ad_config. ++###ad-container1 ++##.ad.card ++##.inlineAd ++##.result-words-ad-new ++##.takeover-ad ++##[href^="https://www.avantlink.com/click.php"] img ++||clozetempts.com^ ++||disasterthoughtless.com^ ++snopes.com##.PlacementWrapper ++||voyeurhit.com^$third-party ++||disappearpoliticalamoral.com^ ++||brandnewapp.pro^ ++/popunders/* ++###advertising_728 ++###ad-top-lock ++###adsense-2 ++gadgethacks.com,reality.news,wonderhowto.com##.whtaph ++###bottom_ad_area ++||xvlcbwlgpy.com^ ++###adv_contents ++##.ads_wide ++##.vdvwad ++||boakauso.com^ ++||hubturn.info^$popup ++##.Ad--empty ++###contentad-commercial-1 ++||aistolsu.net^ ++##.ads-skin ++||protoawe.com^ ++###adfreeDeskSpace ++###pc-div-gpt-ad_728-3 ++##.ad-160-above ++||snippystowstool.com^ ++||lookujie.net^ ++||ban-host.ru^$third-party ++/popunderjs/* ++##.adElement ++||travelingturtleharmonious.com^ ++||up4u.me^ ++||get-me-wow. ++##.ad300x120 ++/adsys/* ++||xxxshake.com/assets/f_load.js ++shareae.com##a[href^="https://aejuice.com/"] ++@@||gstatic.com^*/adwords/$domain=support.google.com ++_header_ad_ ++||kitwkuouldhukel.xyz^ ++##.ad-4 ++##.ads300-250 ++##.advertising_block ++##.box-advertising ++##.sponsorBox ++/rdm-ad- ++||udbaa.com^ ++/AdBackground. ++##.dynamicAdvertContainer ++||comagallopadvance.com^ ++||nereserv.com^ ++||uncoreswizzle.com^ ++topminecraftservers.org##.grey-section ++||wwija.com^ ++||xxxshake.com/static/js/script.js ++##.Article__Ad ++##.banner_300x600 ++||mylust.com/b/ ++||scowpoppanasals.com^ ++||misspelldefine.com^ ++###adTower ++##.ad_center_bottom ++##.ck-anyclips-article +filecrypt.cc,filecrypt.co##.hghspd +filecrypt.cc,filecrypt.co##.hghspd + * +filecrypt.cc,filecrypt.co##[onclick^="var lj"] -+||staggerconstructionface.com^ -+##[href*=".engine.adglare.net/"] -+||forexprostools.com^$third-party -+||hollercatastrophe.co^ ++thegay.com##.video-page__content > .right ++||shoresmmrnews.com^ ++codeproject.com##.msg-300x250 ++.us/ads/ ++##.ad_widget_title ++pervclips.com###under-video ++||bubblesmedia.ru^$third-party ++||ad.about.co.kr^ ++||pervclips.com/tube/contents/images-banners/ ++##.rgt_ad ++||stougnee.com^ ++###ad_home ++##.header-ads-wrapper ++##.smart-ad ++##a[href^="https://go.markets.com/visit/?bta="] ++||augnolru.com^ ++||dkkypggviv.com^ +||palmicplod.com^ -+##[href^="https://zstacklife.com/"] img -+brighteon.com##[href^="https://support.brighteon.com/"] ++||kellyfight.com^ ++||cameraprive.com^$third-party ++/fixSpecialAdHome. ++forum.wordreference.com###botSupp ++||royalcactus.com^$popup ++##.ad-divider ++##.jLinkSponsored ++##.ad--native ++##.top_ad_holder ++||ngeoziadiyc4hi2e.com^$popup ++/adlib.$domain=~adlib.info|~adlib.mu|~catharijneconvent.nl|~rws.nl ++||hot4k.org^ ++##.ad-click ++##.adContainerSide ++##.wcfAdLocation ++||eldrurjtsbl.com^ ++/adcontent/*$~image ++##.right-rail-ad-container ++###ad_mpu ++||zendplace.pro^ ++###adFooter ++||stunthedge.com^ +||descendantmystery.com^ ++||aff-track.net^$popup ++_468x90. ++##.print-adslot ++||deviatemysticallocking.com^ ++###advertisement_banner ++##.ad1x1 ++##.adv_300 ++##.articleads ++##.taboola-single-asset-ads +||bluntedhalvah.com^ -+||washpiggyabdomen.com^ -+||captivatepestilentstormy.com^ -+##[href^="https://istlnkcl.com/"] -+##a[href^="http://www.fonts.com/BannerScript/"] -+||dragonspontaneous.com^ -+##.advertisement-google -+##a[href^="http://affiliates.lifeselector.com/"] -+||diritymirkish.com^ -+##[href^="https://awbbjmp.com/"] -+||pages.etoro.com/widgets/$third-party -+||snoreempire.com^ -+||fouglisy.net^ -+||aripplebeluga.com^ -+##a[href^="https://cagothie.net/"] -+||azoniumsinamin.com^ -+||boatlyseljuk.com^ ++||dulcormutated.com^ ++||malastasho.pro^ ++||marvelrespectableinset.com^ ++/^https?:\/\/(.+?\.)?canadafreepress\.com\/[\/][\/a-zA-Z0-9]{3,}\/[a-zA-Z0-9]{6,}\/.*/ ++coolors.co###sticky-ccad ++eonline.com##.article-detail__right-rail--topad ++marketscreener.com##.bas ++chat-avenue.com,flashx.cc,flashx.co,flashx.pw,forum.gsmhosting.com,themediaonline.co.za,topprepperwebsites.com##img[width="468"] ++sexmummy.com##img[width="468"] ++/phpbb_ads/* ++||cdnaz.win^ ++||hawkyeye5ssnd.com^ ++chikiporn.com,pornq.com##.thumb--adv ++||bigpipes.co^$third-party ++/adpage/*$domain=~adpage.com.ua|~adpage.io ++||pseepsie.com^ ++##.ad_spot ++_adserver. ++||throngsarseno.com^ ++||oxynticarkab.com^ ++###right_side_ad ++||advcash.com^$third-party ++||howoverlapsuspicious.com^ ++/video_ad_ ++###adChoicesLogo ++||sdbvveonb1.com^ ++###sideAd4 ++||coolors.co/ajax/get-ads ++rediff.com###world_right1 ++engadget.com###outstreamPlayer-inArticle ++gayporno.fm##.b-content__aside-head ++gayporno.fm##.traffic ++gfycat.com##.side-slot ++##.adrow ++blackhaloadultreviews.com,hentaigasm.com,javjunkies.com,masahub.net,porn-w.org,yespornplease.porn##a[href*="//bit.ly/"] ++popsci.com,thedrive.com##.empire-below_content__desktop__articles-prefill-container ++||fostereminent.com^$popup ++##.ad-unit-top ++||thenagesnide.com^ ++###RightAd ++###adHeading ++probuilds.net##a[class^="dl-blitz-"] ++||tartwo.com^ ++||plx.porndig.com^ ++||qksrv.net^ ++##.ad_fadein ++iceporn.com##.furtherance ++||feewuvoo.net^ ++/adserver? ++##.pb-ads ++conservativebrief.com##.code-block > span ++goal.com,thisislondon.co.uk##.commercial ++||dochase.com^$third-party ++##.c-gallery-vertical__advert ++||atonato.de^ ++||includemodal.com^ ++##.header-banner-ad ++||d2sp5g360gsxjh.cloudfront.net^ ++##.Article-advert ++||2cnjuh34jbpoint.com^ ++||founct.com^ ++###banner_pos1_ddb_0 ++##.affiliate-link ++||stvkr.com^$popup ++||tagbucket.cc^$third-party ++###ad_banner_top ++##.sal-adv-gpt ++##.text-ad-top ++joins.com,jtbc.co.kr#@#.ad_bottom ++||nathanaeldan.pro^$popup ++nanoreview.net###the-app > .mb +||cusptumbak.com^ ++##.adHeight280 ++##.c-inblog_ad ++||codesbro.com^ ++hypebeast.com##.shopping-break-container ++||flaticon.com/edge/banner/$popup ++.com/adv_ ++popsci.com,thedrive.com##.empire-header__desktop__article-prefill-container ++##.advertisementLabel ++military.com##.page__top ++/css/adv. ++/google-adsense-$domain=~webst8.com ++||web-guardian.xyz^ ++##a[href^="https://a.montangop.top/"] ++/download/ads ++###dsk-box-ad-c ++/displayads/* ++_BannerAd_ ++_doubleclick. ++slashdot.org##.deals-wrapper ++kickasstorrents.to##.dssdffds ++/dartads. ++/nativeads. ++.728x90- ++||webgains.com^$third-party ++##.ad-type ++thegatewaypundit.com,westernjournal.com,wnd.com##.persistent-footer ++##.ad_type_dfp ++##.right-column-ads ++##.tnt-dmp-reactive ++buzzfeednews.com##.pgs-dpg-flex ++###advertorial ++##.rail__ad ++##.revcontent-wrap ++donegaltv.ie,emergencyemail.org,out.com##.footer ++###sideAd1 ++gadgetstouse.com##.td-ss-main-sidebar ++techwalla.com##.component-article-section-jwplayer-wrapper ++###sidebarad ++/ad/banner. ++||d2vwl2vhlatm2f.cloudfront.net^ ++||mtburn.com^$third-party ++||thingrealtape.com^ ++/content/ad/* ++||zaphakesleigh.com^ ++||zebraicrudista.com^ ++||pnperf.com^$third-party ++###ad728 ++###ad_unit1 ++###sideAd2 ++##.a-ad--leaderboard ++##.ad-background-container ++##.sidebar-adbox ++##a-ad ++||accoul.com^ ++||comilar-efferiff.icu^ ++||contentcave.co.kr^ ++||creatorcloakroomborrowed.com^ +||egpdbp6e.de^ -+||lpnottech.com^ ++||flocktanjib.com^ ++||greeltie.com^ +||psossoot.com^ -+||screechadulthood.com^ -+||solitudeslander.com^ ++||rhinoceroscoketooth.com^ ++||slowih.com^ +||trashyfindconfront.com^ ++||wf66l5ylwq.com^ ++||youngestdisturbance.com^ ++||zorprhbnwbezie.com^ +||ghhuqa.net.^$popup ++||ntvcld-a.akamaihd.net^ +||torrentgalaxy.to/cache/cachelite -+phonearena.com##.heading-deal -+/adw.$domain=~adw.amsterdam.nl|~adw.be|~adw.olsztyn.pl|~adw.org|~adw.org.pl|~gnome.org|~valadoc.org -+||lingamretene.com^ -+mentalfloss.com###mm-player-placeholder-large-screen ++wearedore.com##.bloc-pub ++theregister.com##.wptl ++||im.ov.yahoo.co.jp^ ++||detinetcallant.com^ ++||pluffdoodah.com^ ++||tollholdmeg.cam^ ++###display-ads ++##.ad-160-600 ++||kvjkkwyomjrx.com^ ++codeproject.com##.bottom-promo ++hdfcbank.com#@#.adLink ++##.ads-decorator ++##.js-dfp-ad-bottom ++||2qj7mq3w4uxe.com^ ++republicworld.com##.padtop20.txtcenter.minheight90 ++/banner_ad_ ++###adtagrightcol ++###dsk-box-ad-f ++##.textLinkAd ++eonline.com##.article-detail__segment-ad ++##.ads728x90 ++rateyourmusic.com##.page_creative_frame ++##.ad_widget_image ++||duf1ql28oaxcm3x6baf7wxvo6n29hrozqxbd13emc3na96i64j.xyz^ ++||dasfelynsaterr.webcam^ ++||peacto.com^ ++##.Textads ++||garmentsdraught.com^ ++||thanosofcos5.com^$popup ++/admanagers/* ++||liveadexchanger.com^$third-party ++bbcamerica.com,ifc.com,sundancetv.com,wetv.com###banner-top ++racingtv.com,twitter.com,wral.com##.promotion ++viptube.com##.promotion ++###divAdRight ++||elkconsistbirch.com^ ++###adfooter ++##.ad336 ++/_js/prbd_6.19.0.js ++###inline_ad ++##.adgmleaderboard ++/adblockdetection. ++||vswlxqhvjiz.com^ ++###bing-text-ad-1 ++###right_ads ++##.result-top-ad ++sfgate.com##.stickyWrapper ++/front/ad/* ++wormate.io###loa831pibur0w4gv ++/ad-overlay. ++||nobbutaaru.com^ ++##.google-ad-manager ++||kvexx.com^ ++||slideff.com^ ++||banquetunarmedgrater.com^$popup ++popsci.com,thedrive.com##.empire-content__desktop__articles-prefill-container ++##.ad-above-mod-dl-btn ++://rs-stripe.wsj.com/stripe/image? +||unbuttontumorbaloney.com^ -+fontspace.com,skyrimcommands.com#@#.container-ads -+indiatoday.in##.rtl-shopping -+||gaimoupy.net^ -+mentalfloss.com##.style_1ngkwsz-o_O-style_1ts1q2h ++||bruperchrophone.com^ ++/336x280_ ++/reklama2. ++###ad_leaderboard ++##.r_ads ++/frontend_loader.js ++||cluodlfare.com^ ++@@||daumcdn.net/adfit/static/ad.min.js$script,domain=daum.net ++||dragonspontaneous.com^ ++###adText ++##.ad-text-label ++##.g_ad ++aniwatcher.com##main > [href] > [src] ++||du2uh7rq0r0d3.cloudfront.net^ ++###Ads_BA_BUT ++###adsense_top ++##.mid_ad +||rantsundaydish.com^ -+||iteassemblyj.xyz^ -+||torrent-protection.com^$popup -+||torrent-protection.com^$popup -+||aj2495.online^ -+||discuteeves.com^ -+##[href^="https://r.kraken.com/"] -+||cupbiologicaljourney.com^ -+||pansymerbaby.com^ -+||d3qilfrpqzfrg4.cloudfront.net^ -+||supersedeforbes.com^ -+##.in-body-banner-ad -+alternativeto.net##.AdsenseAd_putFood__h0Ah0 -+||midistortrix.com^ -+||d1e9rtdi67kart.cloudfront.net^ -+||codbankauthors.com^ -+##[href^="https://freecourseweb.com/"] > .sitefriend ++||teefuthe.com^ ++||weakya.com^ ++||ti.tradetracker.net^ ++||d3f1m03rbb66gy.cloudfront.net^ ++pornhd.com##.ntv-code-container ++.com/adv? ++##.PcSideBarAd ++majorgeeks.com##.alford > tbody > tr ++||woathail.net^ ++##.media-network-ad ++###divAdLeft ++||cpm-ad.com^ ++informer.com##.aa-728 ++##.ads_2 ++||chewsrompedhemp.com^ ++republicworld.com##.pad3010.txtcenter ++###contentad-topbanner-1 ++##[data-advadstrackid] ++||vespymedia.com^ ++###page_top_ad ++songlyrics.com#@#.footer-ad ++||negusnozzles.com^ ++||politicianskypart.com^ ++||a2dfp.net^$third-party ++##a[href^="https://www.rabbits.webcam/?id="] ++ebay.co.uk,ebay.com,ebay.com.au##.srp-1p__link ++##.categoryMosaic-advertising ++##.categoryMosaic-advertisingText ++##.textad_headline ++##[href^="https://istlnkcl.com/"] ++pornhub.com##[srcdoc] ++###ad-space ++||hyloistmithan.com^ ++||realbig.media^$third-party ++||uprimp.com^ ++##.teaserAdHeadline ++/popup2.js ++##.leaderboard-ads ++||junkieswudge.com^ ++###waldo-sticky-footer-wrapper ++digitaltrends.com##.dtvideos-container[data-provider="jwplayer"] ++pornwhite.com##.content-aside ++||gousouse.com^ ++||adsplay.in^ ++||petasusawber.com^ ++/adbanners/* ++||perict.com^ ++||speenphorbin.com^ ++techrepublic.com##.medusa-list ++||kostprice.com^ ++||sancdn.net^$third-party ++###bottomAds ++##.channel-icon--ad ++##.js-advertising__placeholder1 ++news.am,nexter.org,viva.co.nz##.side-banner ++/video_ad. ++||firthpyrones.com^ ++||pendulumkeg.com^ ++||flurrylimmu.com^ ++##.article__inset--margin-ad ++||fixiondenied.com^ ++||pierisrapgae.com^ ++||bnuieugbkirom.xyz^ ++.az/adv/ ++/footer_ads. ++##.bigbox.ad ++||adstopc.com^$popup ++pornhd.com##.video-player-overlay ++||postureconstituent.com^ ++||snoreempire.com^ ++###ad_head ++##.ad-med-rec ++##.adsrecnode ++##.single-post-ad ++job.inshokuten.com,sexgr.net,webbtelescope.org#@#.ad-box ++||velteels.net^ ++||adamatic.co^$third-party ++##.ui-advertising__container ++fontspace.com,skyrimcommands.com#@#.container-ads ++##.adcode300x250 ++##.advertise-box ++linuxinsider.com###colorbox ++||spewyelks.com^ ++||boftogro.net^ ++||bemobtrk.com^ ++###adriver_top ++##.adsense-slot ++##.sticky_ads ++##.widget_themoneytizer_widget +||unusualbrainlessshotgun.com^$popup -+##.in-body-ad-row -+##a[href^="https://click.hoolig.app/"] -+animexin.xyz,animexinax.com###overplay -+||cuberssnur.com^ ++||cloud.setupad.com^ ++##.ad__wrapper-element ++||superxxxfree.com^ ++||trafogon.com^ ++||romance-net.com^ ++getdroidtips.com,journeybytes.com,thebeaverton.com,thisisanfield.com,unfinishedman.com##.ai-viewport-1 ++###bing-text-ad-2 ++delicious.com.au,taste.com.au##.prom-header ++||maghoutwell.com^ ++@@||thingiverse.com/assets/ad/$image,~third-party ++||titanads2.com^ ++||tarrilyathenee.com^ ++##.adTxt ++##.adsvideo ++##.js-mapped-ad ++theculturetrip.com##div[class^="billboard_"] ++||xml-api.online^ ++add0n.com##div[style^="min-height:90px"] ++##.ad-dt ++##.csw-ae-wrapper ++/resources/ads/* ++##.adborderbottom ++||erringcrambly.com^ ++||rhesusvitrite.com^ ++|https://$script,third-party,xmlhttprequest,domain=embedscr.to|embedsr.to|iembedrip.com ++|https://$script,third-party,xmlhttprequest,domain=bc.vc ++##.Ad-leaderboard ++||d18g6t7whf8ejf.cloudfront.net^ ++##.middlead ++||duanepearls.com^ ++/adconfigproxy. ++||luxup.ru^ ++###ad-leaderboard-top ++##.ads-two ++##.c-adOmnibar ++##.storyadHolderAfterLoad ++theblaze.com##[data-category="SPONSORED"] ++||blueoyster.click^ ++##.ads_300 ++##.adcode728x90 ++||cnnected.org^ ++_textad_$~media ++##.powerinbox ++##.page_ad ++||handy-tab.com^ ++###smallBannerAdboard ++##.teaser-sponsor ++##.topadtxt ++##.ui-advertising_position1 ++||recreationhiddenmosque.com^ ++||routemomentarilydiscovering.com^ ++||ksehinkitw.hair^ ++||limberkilnman.cam^ ++techspot.com##.billboard_placeholder_min ++||cloudfront.net^*/sponsors/$domain=pbs.org ++##.adbordertop ++###banner_pos2_ddb_0 ++pocket-lint.com##div[id^="taboola-demo-widget_"] ++||vcdc.com^ ++||departgross.com^ ++||poplarcolonistgreatest.com^ ++||myfinance.com^$subdocument,third-party ++##.ad-mpu-placeholder ++##.ads-line ++##.doubleClickAd ++##.momizat-ads ++||bmcdn1.com^ ++allthetests.com,bom.gov.au,cadenaazul.com,lapoderosa.com###advertising ++techrepublic.com###leader-bottom ++milffox.com###advertising ++||parkcircularpearl.com^ ++||addroplet.com^ ++##.advert-box ++||promokrot.com^$third-party ++||showmeyouradsnow.com^$third-party ++##.nm-ad ++##.eg-custom-ad ++##.ps-ad ++dict.cc###recthome ++dict.cc###recthomebot ++###div-ad-bottom ++##.ad-slot-replies ++||buksaiss.net^ ++||leezoama.net^ ++##.in-article-ad ++###adholder ++gelbooru.com##[href^='https://realbooru.com/'] ++||u29qnuav3i6p.com^ ++/livejasmin.$domain=~livejasmin.com ++###background-ad-cover ++##.ad-container--taboola ++||b2acafb3a3.com^ ++||curbaffluencenicer.com^ ++||edlqhrbgs.com^ +||eighes.com^ +||hentaionline.net^ +||iasninancukan.lol^ -+||moitrrhiza.com^ ++||lojapanelmo.com^ ++||ofghaidarium.xyz^ ++techrepublic.com###leader-plus-top +w2g.tv###w2g-square-ad -+###gnt_atomsnc -+||pilaffskoniga.com^ -+||blouseridge.com^ -+||othbhe2.com^ -+||throngsarseno.com^ -+||majestydeference.com^ ++poe.ninja##.leaderboard-bottom ++poe.ninja##.leaderboard-top ++##.rt_ad ++/plus/ad_ ++||conative.de^$domain=spiegel.de ++##.js-dfp-ad-top ++##.polaris__ad ++proporn.com##.trailerspots ++###post-ad ++setlist.fm##.prmtnTop ++/iframe_ad. ++/advertises/* ++_adverts.js ++||videobaba.xyz^ ++||kgua0o66bcw8.com^ ++##.adarea ++||bfypvmnytobqyn.xyz^ ++||atomex.net^ ++||elmftqzs.com^ ++||constituentonset.com^ ++###sideAd3 ++##.ad-block__inner ++##.mediumRectangleAd ++||jtubvaewvijfk.xyz^ ++||nfcrxfkbhuwrnrt.xyz^ ++||ngxdyxhdkx.xyz^ ++politico.com##.fixed-top ++##.adTag ++||vattingbalak.com^ ++||porngames.games/sbbi/ ++||dikkoplida.cam^ ++##.ads_content ++###topAds ++##.site-footer__ad-area ++||hearstnp.com/scripts/loadads.js ++inoreader.com###sinner_container ++tiermaker.com##.desktop-sticky ++jquery.com##.sponsor-line ++||ftte.fun^ ++||brocardcored.com^ ++###divTopAd ++||torrent-protection.com^$popup ++||torrent-protection.com^$popup ++groovypost.com##.groov-adlabel ++al.com,cleveland.com,lehighvalleylive.com,masslive.com,mlive.com,newyorkupstate.com,oregonlive.com,pennlive.com,silive.com,syracuse.com##.revenue-display ++##.vi-sticky-ad +##div.fadeInDown[id$="____equal"][class$="____equal"] -+||go.onelink.me^ -+||misspelldefine.com^ -+||boastpretenddied.com^ ++||altowriestwispy.com^ ++||keydawnawe.com^ ++||undimlyjewlike.com^ ++/getads. ++_content_ad_ ++||hugfromoctopus.com^ ++||bgaxgjre.xyz^ ++tube8.com##[data-spot] ++##.thumb-ads ++/videoads. ++##.text_ad_website ++||ewoutosh.com^ ++||machogodynamis.com^ ++||d2qnx6y010m4rt.cloudfront.net^ ++||d1upt0rqzff34l.cloudfront.net^ ++sportshub.stream##.db783ekndd812sdz-ads ++||bcxamyjtnzuf.com^ ++||detdtmkwcl.com^ ++||xepkfd.com^ ++##.catfish_ad ++##.view-video-advertisements ++imagebam.com###inter > [src] ++||static.fastpic.org^$subdocument ++##a[href^="https://tracking.avapartner.com/"] +vxxx.com##.emrihiilcrehehmmll -+convertcase.net##.feature ++##.ad_728x90 ++/300xx250. ++||fwcdn1.com/js/storyblock.js ++##.ad-block--leader ++##.ads_container_top ++##.sponsorArea ++groovypost.com##div[class^="groov-adsense-"] ++##.footer-advertisements +||gloutedaerated.com^ -+||frapsguardo.com^ -+||phonearena.com/js/ops/taina.js -+||glochatuji.com^ -+##a[href^="https://www.popads.net/users/"] -+fortune.com##div[class*="Ad-"] -+||pendulumkeg.com^ -+||perfunctoryfrugal.com^ -+##a[href^="https://mmwebhandler.aff-online.com/"] -+||belongedshark.com^ -+||poembetray.com^ ++||kilosposey.com^ ++porndr.com###PD-Under-player ++##.ad300w ++||mp3-convert.org/p$popup ++||go.strpjmp.com^ ++###adverticum_r_side_container ++||tierbignews.com^ ++||gnyergfy.com^ ++=adslot& ++||atptour.com/assets/atpwt/third-party/ ++##.ad_choice ++##.ad_top_2 ++##.admain ++||ayassociallya.xyz^ ++||ptlwmstc.com^ ++||tiringjollyhalfmoon.com^ ++pcworld.com##.coupons ++addictivetips.com,coinweek.com,simscommunity.info##.custom-html-widget ++###adWrap ++##.ads-mini ++##.companion-ad ++##.promo_ad ++##.publication-ad ++##.textAd3 ++||adelement.com^$third-party ++||rnldustal.com^ ++||vidcpm.com^ ++###AD_Top ++||kz2oq0xm6ie7gn5dkswlpv6mfgci8yoe3xlqp12gjotp5fdjxs5ckztb8rzn.codes^ ++||pvclouds.com^ ++##.ad-after-content ++kaotic.com##.chaturbate ++/160x600/* ++##.ad-content-area ++##.ads_300x250 ++||cupbiologicaljourney.com^ ++||vooshagy.net^ ++||d3rjndf2qggsna.cloudfront.net^ ++##.playerad ++##.pt_ad03 ++/js.ad/size= ++||fiberedvaleryl.com^ ++||hangersbozal.com^ ++##.coreAdsPlacer ++##.promotionTextAd ++##.publicidad_horizontal ++##.teaserAdContainer ++||revrtb.net^ ++||chjhsfctkeve.xyz^ ++||liveburst.com^$third-party ++||nextpsh.top^ ++###adHeightstory ++###bottom-ad-1 ++||matqqagvkaaftr.com^ ++##.ads-wrapper-top ++##.ad336x280 ++/banner-ads- ++||spotofspawn.com^$popup ++##.embed-ad ++##.featured-ads ++adtunes.com,all-nettools.com,britsabroad.com,kiwibiker.co.nz,printroot.com###ad_global_below_navbar ++||carapusgyal.com^ +||plebiancairn.com^ -+||narior.com^ ++||glaurtas.com^ ++###mvp-foot-ad-wrap ++##.sideAd ++||ppc-direct.com^$third-party ++||loveclubhere.life^$popup ++.php?adv= ++##.ad-block--leader-extra ++##.guide__row--fixed-ad ++##.outer-ad-container ++##.promoAdvertising ++##.pt_col_ad02 ++##.sector-widget__tiny-ad ++||toyota.lol^ ++###bottomDDAd ++##.adv_title ++##.blog-ad ++||doerscharre.com^ ++||yopard.com^ ++thisav.com###vjs-banner-container +thegay.com##.underplayer__info > div:not([class]) -+xrprightnow.com##.adv-wrapper -+||clipconverter.cc^$csp=default-src 'self' i.ytimg.com *.clipconverter.cc 'unsafe-inline' data: blob: -+||omgt5.com^$popup -+||waitedbunchnight.com^ -+||atroer.com^ -+||hyloistmithan.com^ ++/adsame/* ++##.blogAd ++||ck-cdn.com^$third-party ++||d3fkv551xkjrmm.cloudfront.net^ ++##.themonic-ad2 ++independent.ie##.slot1 ++kaskus.co.id##.bottom-frame ++||fapcat.com^$third-party ++||owewary.com^ ++##.sponsored-article ++###topAD ++###BottomRightAdWrapper ++###Top1AdWrapper ++##.Ad-label ++##.ad-unit-wrapper ++||boogopee.com^ ++||mimilcnf.pro^ ++###ad-rectangle3 ++##.channel-icon__ad-buffer ++##.text_ad_title ++timesofmalta.com##.sw-Top ++##.txtadbox ++||aawulszemel.com^ ++||headedtamhemp.com^ ++##.textSponsor ++rottentomatoes.com#@#.page_ad ++||servecontent.net^$third-party ++interestingengineering.com##.adW ++pocket-lint.com##.im-desktop ++||definedlaunching.com^ ++||internewsweb.com^$popup ++###adslot-half-page ++||tripleoleum.com^ ++imgbox.com###full-page-redirect ++visualcapitalist.com##.visua-target ++||gaimoupy.net^ ++||evaluationgnatprotected.com^ ++independent.ie##.slot4 ++###fixedAd ++###AdTop ++##.ads-post +vxxx.com##.lmetceehehmmll ++||omgpm.com^ ++||utkglwrujzfb.com^ ++##.adhesion-block ++||aripplebeluga.com^ ++###BannerAd ++##.advertiseText ++###ad-main-top ++###top-ad-wrapper ++thestar.com.my##.med-rec ++unknowncheats.me##[href^="https://www.iwantcheats.net/"] ++###bing-text-ad-3 ++##.block_adv +##.prebid-wrapper -+||humejylu.com^ -+||megatube.xxx/ab-s.js -+job.inshokuten.com,sexgr.net,webbtelescope.org#@#.ad-box ++/gdpr-ad-script. ++||revrtb.com^ ++/popunder_ ++###advertising_div ++##.nav_ad ++##.ad-a ++##.banner160x600 ++||carememachera.com^ ++/targetpushad. ++/ad_choices. ++###top_ad_container +efukt.com##.media_below_container -+boobieblog.com,imgadult.com,lolhentai.net,picdollar.com,porngames.com,thenipslip.com,wetpussygames.com##canvas -+||megatube.xxx/su4unbl-r.js -+||anrlttkketcdw.com^ ++||higgiens23c5l8asfrk.com^ ++##.ad-microsites ++pocket-lint.com##.block-inline ++pocket-lint.com##.block-mpu ++||absorbedswept.com^ ++_468_60_ ++###adv_52 ++indiatimes.com##.rmfp ++##.Arpian-ads ++##.roadblocker-ad-content-wrap ++technicalarp.com##.Arpian-ads ++/app/ads/* ++###header-banner-ad ++##.ad-dog ++##.ads_unit ++##.advertisement-area ++/delivery/al.php ++||9desires.xyz^$third-party ++###adsside ++##.adv-sidebar ++##.zox-post-bot-ad ++##.bottomadtag ++##.custom-ads ++||whataboutnews.com^$popup,third-party ++##.logo-ad ++informer.com##.spnsd ++||pgonews.pro^ ++###ad-leaderboard-bottom ++###banner-ads ++##.ad-468x60 ++##.adHalfPage ++##.bottomgooglead ++##.footer__ads--content ++##.google-dfp-ad-label ++##.ps-ligatus_placeholder ++##.s-ads ++##.sidebar-square-ad ++##.widget_adrotate_widgets ++flightcentre.co.uk,out.com#@#.dfp-tag-wrapper ++||1659d63dc0.com^ ++||59987d951d.com^ ++||aahekppl.com^ ++||abrocvhkwhd.com^ ++||akmqmypoqyn.com^ ++||ascdwiah.com^ +||besequda.xyz^ -+||cubeslichees.com^ -+||ernoddenkn.pics^ -+||galoreupspeed.com^ -+||gempeety.com^ +||gravertoyons.com^ -+||rb.gy^ -+||recentpoisoncoma.com^ -+||swimsuitmysteryisland.com^ ++||labourmuttering.com^ ++||nbuuhmxvzgrgu.com^ ++||speai.com^ ++||stastips.net^ +||unkindvanilla.com^ -+||pictoa.com/310.js ++||vsmokhklbw.com^ ++||mindedcarious.com^$popup ++||nicesthoarfrostsooner.com^$popup ++||dlvds9i67c60j.cloudfront.net^ ++||cdn.thejournal.ie/media/hpto/$image ++@@||mxdcontent.net^$xmlhttprequest,domain=mixdrop.co ++goal.com##.semantic-player-embed ++whoreshub.com##.col-second +vxxx.com##.itrrciecmeh +vxxx.com##.recltiecrrllt -+bdsmx.tube,hotmovs.com,javdoe.fun,javtape.site,porntop.com##.right +thegay.com##.video-slider-container -+||garibamarmose.com^ -+||naisoops.net^ -+||englerbraw.com^ -+##.widget--local-ads -+||ceeviwep.com^ -+||twangedcored.com^ -+##a[href^="http://tour.mrskin.com/"] -+##.site-header-ad -+||photographingmake.com^ -+||parkcircularpearl.com^ -+||rentingketch.com^ -+androidpolice.com##.w-pencil-banner -+##a[href^="https://fleshlight.sjv.io/"] -+appleinsider.com##.push -+||oddscornflower.com^ -+||sexvid.xxx/mia/ -+||gettopple.com^$third-party -+||mixwevri.com^ -+||mqqrcdxbnog.com^ -+||resourceswhistlingmore.com^ -+##[href^="https://t.ajrkm.link/"] -+##.ad-loading -+##.ad-side-wrapper -+||jojome.xyz^ -+||preferenceforfeit.com^ -+||komarchlupoid.com^ -+##a[href^="https://ismlks.com/"] -+||permittedswift.com^ -+||restorationbowelsunflower.com^ -+###ad-slot-5 -+||scriptvealpatronage.com^ -+||d2r2yqcp8sshc6.cloudfront.net^ -+||warilyaggregation.com^$popup -+||ads4pc.com^ -+##a[href^="//thaudray.com/"] -+##[href^="https://wct.link/"] ++||go.celebjihad.live^ ++||boffoadsfeeds.com^ ++||pages.etoro.com/widgets/$third-party ++||islecolloquial.com^ ++||spawnpredicatemutual.com^ ++||hinoidczarist.com^ ++/logo-ad. ++/adw.$domain=~adw.amsterdam.nl|~adw.be|~adw.olsztyn.pl|~adw.org|~adw.org.pl|~gnome.org|~valadoc.org ++||ptapjmp.com^ ++||fetishshrine.com/contents/images-banners/ ++||khayatarai.com^ ++##.ad_msg ++||cybertronads.com^ ++||x.castanet.net^ ++||notesbook.in^ ++||delayeddisembroildisembroil.com^ ++##.a-ad--wide ++||erimal.com^ ++||yaiser.com^ ++##[href^="https://mypatriotsupply.com/"] > img ++||staureez.net^ ++||boguspredict.com^ ++/adgpt.js ++||cationakasu.shop^ ++||xpectthatmy.shop^ ++##a[href^="//chrif8kdstie.com/"] ++||thegay.com^$script,domain=thegay.com ++||snoreempire.com^$popup ++||imptywcjfvhqru.com^ ++||pahtky.tech^ ++##[href^="https://totlnkcl.com/"] ++||dreamsyskaff.com^ ++||bfxytxdpnk.com^ ++||suozmtcc.com^ +##a[href^="http://www.mrskin.com/tour"] -+##a[href^="http://www.bet365.com/"][href*="affiliate="] -+||fervorsslutted.com^ -+||6745jj.com^ -+||fumarinpest.com^ ++||genialsleptworldwide.com^$popup ++||freezeanything.com^ ++||sixtybirthsuperstition.com^ ++||decodebodo.com^ ++||deemsoil.com^ ++||gotbstgifts.click^ ++||ncecafvdeu.shop^ ++||variablesconevening.com^ ++||waegesth.com^ ++catcountry941.com,cnx-software.com,dailyveracity.com,gamingonphone.com,metalsucks.net,mmoculture.com,nasaspaceflight.com,quickanswer.blog,robloxhackscripts.com,techdows.com,tooxclusive.com##.widget_custom_html ++hotcelebshome.com,javcrave.com##.widget_custom_html ++||dmdxhrne.com^ ++||finedergotic.com^ ++||flashnetic.com^ ++||involveclank.com^ ++##.c-prebid ++##a[href^="https://click.hoolig.app/"] ++||naisoops.net^ ++||capaciouslistless.com^ ++@@||thegay.com/upd/*/assets/preview*.js|$domain=thegay.com ++@@||thegay.com/upd/*/static/js/*.js|$domain=thegay.com ++||arterybasin.com^ +||daysmokeoffspring.com^ +||nknowledcon.one^ -+||reddenjaguarsuitcase.com^ -+||cookpad-ads.com^ -+||affpa.top^ -+mercurynews.com,nssmag.com##.header-banners -+##a[href^="https://porntubemate.com/"] -+##div[class^="AdSlot__container"] ++||rnoddenkn.asia^ ++||dealsfor.life^ ++||buckspanuelo.com^ ++||xlvirdr.com^ ++||lurgaimt.net^$popup ++||exileinstinct.com^ ++||notiftravel.com^$popup ++||amwoukrks.autos^ +||coozoaji.net^ -+||gizzenaceric.com^ -+##a[href^="https://billing.purevpn.com/aff.php"] > img ++||formulacountess.com^ +||whootapt.com^ -+joins.com,jtbc.co.kr#@#.ad_bottom -+||waxaimg.info^ -+##div[class^="index__adWrapper"] -+||chicoryapp.com^$third-party -+||hdtube.porn/rods/ -+##.footerSponsorStrip -+||mpsuadv.ru^ -+##div[id^="ad_bigbox_"] -+||drulilqe8wg66.cloudfront.net^ -+###dfp-ros-res-header_container -+||aistolsu.net^ -+||easyads29.mobi^ -+||setoutcazique.com^ -+wccftech.com##.bg-horizontal -+||rebursteaseful.com^ -+||vigpsypoyta.com^ -+##div[id^="ads250_250-widget-"] -+||fetiseovisac.com^ -+||onsetknives.com^ -+##.taboolaHeight -+||accordaudienceeducational.com^ -+||shotstopers.com^ -+||kitwkuouldhukel.xyz^ -+||bastingestival.com^ -+||neasal.com^ -+##a[href^="http://www.cdjapan.co.jp/aff/click.cgi/"] -+||pcmclks.com^ -+||quiremuken.xyz^ -+||istxtrxphwoh.com^ -+livemint.com##.trendingSimilarHeight -+antimusic.com,roadtests.com##.topad -+d123movies.to##.mobile-btn > div -+||filese.me^ -+##.widget-ad-script -+||qthynj2.com^ -+||escapeeelapid.com^ -+||ruelliaforgift.com^ -+||toyota.lol^ -+##a[href^="https://go.gldrdr.com/"] -+abovetopsecret.com,thelibertydaily.com,uncanceled.news##[href^="https://mypatriotsupply.com/"] -+||bustlemiszone.com^ -+##a[href^="http://marketgid.com"] -+##a[href^="https://promo-bc.com/"] -+||aptonnerv.buzz^ ++###taboola-below-article-1 ++||godpvqnszo.com^ ++||wowshortvideos.com^ ++||adligature.com^ ++||glaichid.net^ ++||juringupstage.com^ ++||ktobedirectu.autos^ ++||oagudole.net^ ++||tefections.xyz^ ++||d3qilfrpqzfrg4.cloudfront.net^ ++/adblock_detector2. ++||go.onelink.me^ ++##a[href^="https://mmwebhandler.aff-online.com/"] ++||reedsonceoxbow.com^ ++||getonlineuserprotection.com^$popup ++||datingtoday.top^ ++||adsforcomputercity.com^$popup ++||entainpartners.com/renderbanner.do? ++apptrigger.com,fansided.com,hiddenremote.com,lastnighton.com,mlsmultiplex.com,netflixlife.com,playingfor90.com,winteriscoming.net##.header-billboard ++||komarchlupoid.com^ ++||headerporkfloral.com^$popup ++||dargtabet.com^ ++||14i8trbbx4.com^ ++||weedprolific.com^ ++||yrecomemu.one^ ++||v6rxv5coo5.com^$popup ++##[href^="https://r.kraken.com/"] ++||ceeleeca.com^ ++||moksoxos.com^$popup ++##a[href^="https://clicks.pipaffiliates.com/"] ++animexin.xyz,animexinax.com###overplay ++@@||thegay.com/assets/jwplayer-*/jwplayer.js|$domain=thegay.com ++||liegelygosport.com^ ++||effusedprankle.com^ ++##div[id^="ads300_100-widget-"] ++||againirksomefutile.com^ ++||beefypolitics.com^ ++||blouseridge.com^ ++||cdceed.de^ ++||closau.com^ +||cooksrosiny.website^ -+||ertyvaluation.lol^ -+||icewaterhou.xyz^ -+||ndingcouncer.xyz^ -+||orahmaggi.xyz^ -+||pecult.com^ -+||presidentrestoration.com^ -+||preventionpitcherremedy.com^ -+||stammerail.com^ -+||towniesgauze.com^ -+||adstopc.com^$popup -+ladbible.com##.css-1v521fz -+||sovrn.com^$third-party -+techraptor.net,unite-db.com###nn_lb2 -+ah-me.com,gaygo.tv##.flirt-block -+||mucinshasht.com^ -+||staykidnapcoma.com^ -+##a[href^="https://www.adultempire.com/"][href*="?partner_id="] -+||forearmthrobjanuary.com^ -+||chokupsupto.com^ -+addictivetips.com,gamerevolution.com##.custom-html-widget -+##.intro-ad ++||dfd1ec534a.com^ ++||indictmentvehemently.com^ ++||lamburnsay.live^ ++||mccahs.com^ ++||oovilsol.com^ ++||psoukesh.com^ ++||thatdhostler.com^ ++||politicianbusplate.com^$popup ++||sajagosta.pro^$popup ++beermoneyforum.com,forums.sailinganarchy.com,geekdoing.com,sportfishingbc.com,studentdoctor.net##.samBannerUnit ++||d2ei3pn5qbemvt.cloudfront.net^ ++##a[href^="https://www.privateinternetaccess.com/"] > img ++||cookpad-ads.com^ ++||thenceextremeeyewitness.com^ ++mediafire.ec,point2homes.com,propertyshark.com###fixedban ++##a[href^="https://get.surfshark.net/aff_c?"][href*="&aff_id="] > img ++||abazelfan.com^ +||bendingalliance.com^ -+||camilo4free.cfd^ -+||agenduret.com^ -+phonearena.com##.spot-sticky-container -+##a[href^="https://www.xvinlink.com/?a_fid="] -+||announceproposition.com^ -+##a[href^="https://m.do.co/c/"] > img -+##a[href^="http://pityhostngco2.xyz/"] -+beforeitsnews.com##.notTwitterCardsGrid -+##div[class^="adUnit_"] -+gobankingrates.com##.rate-table-header -+||animefilter.com/img/b.jpg -+||irradiatestartle.com^ -+gobankingrates.com##.bestbanks-slidein -+cbn.com##.partners-block -+dawn.com##.widget-sponsoredcontent -+##[href^="https://www.reimageplus.com/"] -+||begasuthy.com^ -+##[id^="bunyad-widget-ads-"] -+##a[href^="https://awejmp.com/"] -+||ismscold.buzz^ -+||ncesprin.buzz^ -+||sautreesned.com^ -+##a[href^="https://betway.com/"][href*="&a="] -+||jogglyisohel.com^ -+||bestgirls4fuck.com^$popup -+||hexodesmacker.com^ -+cutegurlz.com##.header-widget -+##.aside-collection-ad-slot -+||takychasing.com^ -+||digitaloceanspaces.com/WWW/$domain=7-zip.org -+##a[href^="http://ads.betfair.com/redirect.aspx?"] -+||partion-ricism.xyz^ -+##a[href^="https://www.financeads.net/tc.php?"] -+##[href^="https://routewebtk.com/"] -+||upffxs6.com^ -+##[href^="https://ilovemyfreedoms.com/landing-"] -+###ad-banner-btf -+##.revamp-ads4 -+##[href^="https://www.dcpodj3k5.com/"] -+||fattem.com^ ++||frooter.xyz^ ++||rouseindecentworth.com^ ++||adforyounews.com^$popup ++||pansymerbaby.com^ ++||cigarregistersheriff.com^ ++||coafogle.com^ ++||aduato.com^ ++||niwooghu.com^ ++||sensiblemuggy.com^ ++||oetreixkbxx.com^ ++||progressproceeding.com^ ++##[href^="https://zstacklife.com/"] img ++##a[href^="http://tour.mrskin.com/"] ++||jillbuildertuck.com^$popup ++||562i7aqkxu.com^ ++##a[href^="https://fleshlight.sjv.io/"] ++/ads/stickyLb.js ++||alexatracker.com^ ++||blastsbigener.com^ ++||schond.com^ ++##.yobee-adv ++||rummaringp.pics^ ++||followmalnutritionjeanne.com^ ++||0f6f763bf7.com^ ++||1731d04ba1.com^ ++||dhvary.com^ ++||ernoddenkn.pics^ +||hurtfulplunge.com^ -+||lashingabnaki.com^ -+||plagueinclude.com^ -+||rog4.com^ -+check-host.net##.athold10wr -+##[href^="https://join.playboyplus.com/track/"] -+##a[href^="https://go.markets.com/visit/?bta="] -+d123movies.to,yifymovies.one##.mvic-btn -+pcgamesn.com,theloadout.com##.sticky_rail600 -+||barneysunsharp.com^ -+||englandhogmane.com^ -+##a[href^="https://track.effiliation.com/servlet/effi.click?"] > img -+||donttbeevils.de^ -+||rrtwda9.com^ -+||straticjustice.com^ -+##a[href^="https://fileboom.me/pr/"] ++||permanentlyreefwool.com^ ++||rashparron.buzz^ ++||smopon.com^ ++||wupina.xyz^ ++||zationserv.one^ ++||de2nsnw1i3egd.cloudfront.net^ ++||lpnottech.com^ ++||beggarlyfilmingabreast.com^ +||ssfultraightd.one^ -+||strivenramplor.com^ -+||migrantspiteconnecting.com^$popup -+##.dfm-featured-bottom-flex-container -+||d2rx475ezvxy0h.cloudfront.net^ -+||reklamko.pro^ -+||oataltaul.com^ -+||evaluationgnatprotected.com^ -+||anopportuni.lol^ -+||endangersquarereducing.com^ -+||nedassiu.buzz^$popup -+dallasnews.com##.dmnc_features-ads-config-presets-module__1xTTS -+metabattle.com##div[style="display: flex; justify-content: center; align-items: center; margin-top: 60px; min-height: 250px;"] -+/taboola_header. -+drive.com.au##.adSpacing_drive-ad-spacing__g09um -+||jquerycdn.host^ -+||unjointbobbed.com^ -+||riverhita.com^ -+||tendencysanction.com^ -+||arisedammiral.com^ -+||gatetent.com^ -+||poltbassa.com^ -+||yourvouchundercover.com^ -+##.mf-adsense-leaderboard -+##.mf-adsense-rightrail -+##.sticky-adsense -+||nbpritqp.com^ -+||shrinkmesh.com^ -+||closvisarga.com^ -+##a[href^="https://prf.hn/click/"][href*="/adref:"] > img -+||htxourpo.com^ -+##[href^="//mage98rquewz.com/"] -+fanlesstech.com###HTML3 -+##.home-2020-ad-wide -+canberratimes.com.au,examiner.com.au,theland.com.au,whoscored.com###billboard-container -+||unsternrelease.com^ -+||aahekppl.com^ -+||alexius-ber.com^ -+||briolenproc.pics^ -+||dealingdisarrayanniversary.com^ -+||eadwhiwax.com^ -+||eargentssep.one^ -+||ecossn.com^ -+||empill.com^ -+||fronol.com^ -+||humanlikeads.com^ -+||izrnvo.com^ -+||looqpxrwgpd.com^ -+||ovdimin.buzz^ -+||pahtky.tech^ -+||qegjhnnnte.com^ -+||rvmessage.top^ -+||selfconfidencecap.com^ -+||sunsetjuxtapositioninvoke.com^ -+||thagic.com^ -+||wideorganiz.xyz^ -+||jujaufur.net^$popup -+||oataltaul.com^$popup -+||snoreempire.com^$popup -+pcmag.com###alertbar -+zeenews.india.com##.add-placeholder -+apkcombo.com##div[class*="revamp-ads"] -+altfi.com##.alert -+||hotwire-widget.dailywire.com^$third-party -+||doffingiceboat.com^ -+/ad.*/impression? -+##[href^="http://homemoviestube.com/"] -+||cqwajn.com^ -+##.ad-600-h -+||initiatehighlyrenewedtheproduct.vip^ -+||viapawniarda.com^$popup -+||allerdelphin.com^ -+||djxfar6.com^ -+||scythesandwiches.com^ -+||ayyfewggggfbhf.com^ -+1337x.to##a[href^="/anony9"] -+||jecoglegru.com^ ++||tonemedia.com^ ++||roadmappenal.com^$popup ++||ebodyfairesra.xyz^ ++||finisheddaysflamboyant.com^ ++##[href^="https://wct.link/"] ++reuters.com##div[class^="AdSlot__container"] ++##a[href^="https://k2s.cc/pr/"] ++||girliewinding.com^ ++||sartorsstagne.com^ ++||download-portal.net^$popup ++@@||thegay.com/assets/jwplayer-*/jwplayer.core.controls.html5.js|$domain=thegay.com ++||oulukdliketo.shop^ ++lawandcrime.com,mediaite.com##.o-promo-unit ++##[href^="https://routewebtk.com/"] ++||creditorapido.xyz^ ++||holptimawa.com^ ++||tneca.com^ ++##[href^="https://ilovemyfreedoms.com/landing-"] ++||waxaimg.info^ ++||affairsmithbloke.com^ ++||sunglassesmentallyproficient.com^$popup ++investing.com##.dfp-native ++||rb.gy^ ++||ttoefanyorget.one^ ++||eventsancientreject.com^ ++||file-upload.site/page.js +||tarbivious.com^ -+||ketobeparto.xyz^ -+hitbdsm.com##a[href^="https://go.rabbitsreviews.com/"] -+###fwdevpDiv0 -+golfdigest.com##.o-ArticleRecirc -+||whouseem.com^ -+##a[href^="https://misspkl.com/"] -+||suomicgeyser.com^ -+||gristleupanaya.com^ -+timesnownews.com##div[class^="adCaller-"] -+||adventurouscomprehendhold.com^ -+gameslol.net##.pubGside -+||lyjegushe.pro^ -+||qpfkuyura.com^ -+||sudail.com^ -+||spatterjointposition.com^$popup -+||uphelyacurrier.com^ -+||riskoccur.com^ ++##div[id^="ads250_250-widget-"] ++||possessionaddictedflight.com^$popup ++||eleutrummery.com^ ++@@||s.ntv.io/serve/load.js$domain=titantv.com ++||viapawniarda.com^$popup ++||masonercorking.com^ ++budgetbytes.com,ets2.lt,miloserdov.org###custom_html-2 ++||fetiseovisac.com^ ++/adscale_$domain=~adscale.com|~adscale.dev ++||2iiyrxk0.com^ ++||754999acdc.com^ ++||7jrahgc.de^ ++||astonishedmule.com^ ++||briolenproc.pics^ ++||easeavaila.buzz^ ++||geejooji.com^ ++||hatsheisaco.xyz^ ++||humanlikeads.com^ ++||iaxsmxdwokken.com^ ++||iccorm.com^ ++||inchasekinds.com^ ++||inediblepollingbuzz.com^ ++||mcurrentlyse.shop^ ++||onakasulback.autos^ ++||post-redirecting.com^ ++||sligin.com^ ++||tksgjhukenbcu.com^ ++||verandahcrease.com^ ++||jujaufur.net^$popup ++||piwhecyfo.pro^$popup ++||toenailtrishaw.com^ ++||compactyunker.com^ ++statsroyale.com##div[class^="adUnit_"] ++||rnv.life^ ++||d3x0jb14w6nqz.cloudfront.net^ ++##[href^="https://join.playboyplus.com/track/"] ++||partieseclipse.com^ ++##a[href^="https://ismlks.com/"] ++||researchers.pw^ ++||eargentssep.one^ ++##a[href^="https://go.gldrdr.com/"] ++||infestpaddle.com^ ++||rimefatling.com^ ++||b.isbnrs.com^ ++@@||thetvdb.com/banners/$image,domain=tvtime.com ++||irradiatestartle.com^ ++||hangoverineffectivecorners.com^ ++||skiptheadz.info^$popup +||patodonalgomball.store^ -+##.ad-content-wrapper -+||cesprinciple.com^ -+@@||improvedigital.com/pbw/headerlift.min.js$domain=games.co.uk|kizi.com|zigiz.com -+||limmatabaculum.com^ -+||cationinina.one^ -+||167f8c4133.bar^ -+||alskillsexkce.xyz^ -+||laniusburkei.com^ ++||0redird.com^ ++##a[href^="https://www.adultempire.com/"][href*="?partner_id="] ++##.primis-ad-wrap ++||3ed671e3c0.com^ ++||bearagriculture.com^ ++||dinosaurrestore.com^ ++||pymondardin.xyz^ +||repairedbringstale.com^ +||sexbugerte.xyz^ -+##a[href^="https://ad.atdmt.com/"] -+cumlouder.com##.related-sites -+||gogglemessenger.com^ -+||trendbuffseparation.com^ -+||vakagdnj.com^ -+##a[href^="http://keep2share.cc/pr/"] -+||reciprocaldandy.com^ -+||tendencysanction.com^$popup -+||minunetclose.com^ -+/adlink/*$domain=~adlinktech.com|~github.com -+/adscale_$domain=~adscale.com|~adscale.dev -+||cordha.com^ -+||holptimawa.com^ -+||muhtgyfourcjl.com^ -+||rocces.com^ -+||stonordersity.xyz^ -+@@||voeunblock3.com^$subdocument -+androidauthority.com##.-Yc -+||luracancamus.com^ -+@@||lshstream.xyz/hls/$xmlhttprequest -+||di028lywwye7s.cloudfront.net^ -+###google-ads-detailsRight -+||aurallyhypaton.com^ -+||aerialmistaken.com^ -+||unswingfluvial.com^ -+##a[href^="https://refpaexhil.top/"] -+||sbeforeuka.xyz^ -+||tsiwoulukdli.xyz^ -+||absoluteroute.com^$popup -+mapquest.co.uk,mapquest.com##.mqBizLocsContainer -+fxstreet.com##.fxs_leaderboard -+||selvaexposit.com^ -+||ellpaniers.com^ ++||hallucinatepromise.com^$popup ++##[href^="https://www.reimageplus.com/"] ++||facesnotebook.com^ ++||herthyptal.com^ ++||bleokerrie.com^ ++||igarabealing.website^ ++||boarhammock.com^ ++||irvate.com^ ++||affpa.top^ +##div[id^="ad_script_"] -+||ductrealistic.com^ -+gadgets360.com##.__wdgt_rhs_kpc -+||flagmantensity.com^ -+||pizasoji.com^ -+metabattle.com##div[style="min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; background: #1d1d1d; overflow: hidden;"] -+##a[href^="http://ul.to/ref/"] -+##.ad-wide-wrap -+||chedstimaarr.pics^ -+||nedukeratio.lol^ -+||notifstar.com^ -+||parisjeroleinpg.com^ ++||cooperatetimes.com^ ++||revboostprocdnadsprod.azureedge.net^ ++sexvid.porn,sexvid.pro,sexvid.xxx##.download_link ++##[href^="https://freecourseweb.com/"] > .sitefriend ++||athyimmesa.shop^ ++||birdnavy.com^ ++||esopertyva.shop^ ++||genony.com^ ++||loftusinghorizon.com^ ++||phrans.com^ ++||uthyr-que.com^ ++afar.com,m.economictimes.com,trailspace.com##.adContainer ++||leepoona.com^ ++||axillovely.com^ ++||dne6rbzy5csnc.cloudfront.net^ ++||d3phzb7fk3uhin.cloudfront.net^ ++||1redirc.com^ ++||gotbstgifts.click^$popup ++||endangersquarereducing.com^ ++||torioluor.com^ ++||xueserverhost.com^ ++||16dcc05513.com^ ++||asleepnancy.com^ ++||cattledisplace.com^ ++||cursormedicabnormal.com^ ++||entalsindust.one^ ++||mechth.com^ ++||midlandfeisty.com^ +||ads4pc.com^$popup -+||ad.pornimg.xyz^$popup -+upornia.tube##.voiscscttnn -+mangamiso.net##.d-flex-row ++||shestugele.pro^$popup ++##a[href^="https://billing.purevpn.com/aff.php"] > img ++||markshospitalitymoist.com^ ++||offgate-app-phkr.com^$popup +||jheelsplotch.com^ -+yourlust.com##.banner_right_bottoms -+||apbxnqbhd.com^ -+||clariniwoald.com^ -+vaughn.live##div[class^="vs_v9_MvnAbvs"] -+||n0400.com^ -+||laagershosed.com^ -+beforeitsnews.com,bigleaguepolitics.com,in5d.com,thetruedefender.com##[href*="hop.clickbank.net"] -+||erm5aranwt7hucs.com^ -+||kveaa.com^ -+##a[href^="https://x.trafficandoffers.com/"] ++||auffic.com^ +||fubsoucm.com^ -+||kychajuza.com^ -+||purgma.com^ -+||stompimp.net^ -+||vaughn.live/app/abvsp.php -+||milfunsource.com^ -+legacy.com##.displayOverlay1 -+tokder.org###aaaa -+igberetvnews.com,nextnewssource.com###wallpaper -+||hdbcome.com^ -+||b.isbnrs.com^ -+||cebygijy.pro^ -+||guiltypattern.com^ -+||poisonoustrolleyenhance.com^ -+||scholarovertakealimony.com^ -+||specificationconsiderable.com^ -+||stauru.com^ -+||validsquatcyber.com^$popup -+||dby7kx9z9yzse.cloudfront.net^ -+||jeeryzest.com^ -+||ppikhedas.com^ -+||spokesmanlinedmercury.com^ -+##a[href^="https://streamate.com/landing/click/"] -+||xmlapiclickredirect.com^$popup -+||ernitz.com^ -+||acplat.online^$popup -+##a[href^="https://as.sexad.net/"] -+##.article-connatix-wrap -+||submitgills.com^ -+/smartads.$domain=~smartads.com.sg|~smartads.com.vn|~smartads.cz|~smartads.halocom.io|~smartads.io|~smartads.lt|~smartads.shop -+##[href^="https://affect3dnetwork.com/track/"] -+||unreshiramor.com^$popup -+||pickaxewafters.com^ -+##div[class^="adsbutt_wrapper_"] -+##[href^="https://zone.gotrackier.com/"] -+##a[href^="http://banners.victor.com/processing/"] -+||batmenmessily.website^ -+||buildsintellecttweak.com^ -+||callingorator.com^ -+||cemukentha.xyz^ -+||darleygamball.cfd^ -+||dylums.com^ -+||effolk.com^ -+||gaspcultivateclassroom.com^ -+||litusher.com^ -+||omgt5.com^ -+||ongoingfitfullacerate.com^ -+||quellstubble.com^ -+||respectfullysavvy.com^ -+||thumac.com^ -+||trustdispel.com^ -+||uptorncouldn.website^ -+||xipheglipy.com^ -+||yasmwesikz.com^ -+||fyglovilo.pro^$popup -+||bluehost.com/track/ -+rebelnews.com##.rn_widgets_content -+darknessporn.com,familyporner.com,pisshamster.com,xanimu.com##.beside-video -+darknessporn.com,familyporner.com,pisshamster.com,xanimu.com##.native-boxes -+darknessporn.com,familyporner.com,pisshamster.com,xanimu.com##.related-boxes-footer -+##[href^="https://join.girlsoutwest.com/"] -+||ageistlutists.com^ -+||jcyunk2.com^ -+mangamiso.net##.extraHeight -+||d1hnmxbg6rp2o6.cloudfront.net^ -+||ticketswinning.com^ -+||kanasmeedful.com^ -+darknessporn.com,familyporner.com,pisshamster.com,xanimu.com##.inside-list-boxes -+hdtube.porn##.g-col-banners -+||tartarsharped.com^ -+||lurefuleuryon.com^ -+##.regular-ads -+@@||ads.microsoft.com^$generichide -+##a[href^="https://landing1.brazzersnetwork.com"] -+iconfinder.com##.istockphoto-placeholder -+##.upx-ad-placeholder -+##[href^="https://mypillow.com/"] > img -+darknessporn.com,familyporner.com,pisshamster.com,xanimu.com##.after-boxes -+||calmsbocking.com^ -+||montkyodo.top^ -+||scaupyfeuwmaxxt.com^ -+||mypornstarbook.net/ads/ -+informer.com##.a2 -+||stroveraved.com^ -+||boguspredict.com^ -+||dinterperson.xyz^ -+||entualkenti.buzz^ -+||adversesuffering.com^ -+##.preheader_advert -+orilliamatters.com,sootoday.com,timescolonist.com,vancouverisawesome.com###leaderboard-container -+||haxbyq.com^ -+||dienesasides.com^ -+||iykiuacppty.com^ ++||partion-ricism.xyz^ ++##a[href^="https://porntubemate.com/"] ++||daincautela.com^ ++||gettopple.com^$third-party +||neutralityrecommendstretched.com^ -+##a[href^="http://xads.zedo.com/"] -+##a[href^="http://ad-emea.doubleclick.net/"] -+||captiveimpossibleimport.com^ -+||fearwild.com^ -+||epdspvkaqasbut.com^ -+||fultraightdec.xyz^ -+||inflectionquake.com^$popup -+forbes.com,nasdaq.com##.video-placeholder -+||pestequitch.com^ -+||intelligenceretarget.com^ -+xanimu.com##.alrt -+##.penci-adsense-below-slider -+||allstat-pp.ru^ -+##a[href^="https://bngpt.com/"] -+##a[href^="http://fileboom.me/pr/"] -+@@||material.angular.io^$generichide -+||mashlumgibers.com^ -+||denknowled.xyz^ -+##.post-ad-title -+||gcouncer.buzz^ -+##a[href^="http://wct.link/"] -+##.ad-after-header -+||animemeat.com^$popup -+||ogtrk.net^$popup -+||acrvclk.com^$popup -+##.adsSticky -+/email-assets/ads/* -+||wildlifeeventlean.com^ -+||pactionpolab.com^ -+||puggedproses.com^ -+||jrmixnjsc.com^ -+||municalcurit.xyz^ -+/ad-units. -+##.adsense-iframe-container -+##.its_for_ads -+||clementmeddling.com^ -+||devotionlongestresearching.com^ -+||lgkwytmgkcwgsa.com^ -+##a[href^="https://www.bebi.com"] -+||decisivebottledhappen.com^ -+###incontentAd1 -+##a[href^="https://www.securegfm.com/"] -+||psychaltuxes.com^ -+###incontentAd2 -+||vacationambulancekin.com^ -+##[href^="https://clk.right-wing-health.com/"] -+||aboage.com^ -+||thinnerconcha.com^ -+##.pp-ad-container -+||treasureravenvulgar.com^ -+##.box-ads-header-home -+||ioniaukmla.xyz^ -+techraptor.net,unite-db.com###nn_lb1 -+###incontentAd3 -+||braleak.com^ -+||tvmjbicofqy.com^ -+||campaigns.williamhill.com^ -+abcnews.go.com,edarabia.com##.leaderboard-970 -+||indirecttagordered.com^ -+##a[href^="https://join.virtualtaboo.com/track/"] -+||proclaimincurable.com^ -+||sexvid.xxx/ftsm/ -+||imctransfer.com^*/promo/ -+yourlust.com##.fluid_html_on_pause -+||foldexcitedlyevery.com^ -+##a[href^="https://track.afftck.com/"] -+||51cf9c517a.com^ -+||getels.com^ -+||lcvtgvcod.com^ -+||oextraordu.one^ -+||rapite.com^ -+||zusholro.net^ -+porntop.com###s-suggesters -+@@||global-uploads.webflow.com/*_dimensions-$image,domain=dimensions.com -+||doubleadserve.com^$popup -+||tcpcharms.com^ -+||f3udfa7nfguhni.com^ -+##a[href^="https://ad13.adfarm1.adition.com/"] -+##.footer-post-ad-blk -+||eoopersed.one^ -+lawandcrime.com,mediaite.com##.o-promo-unit -+||formfulerses.com^ -+||foreverhealthsculptor.com^ -+||serbianstonish.com^ -+##a[href*="//lkstrck2.com/"] -+||koudov.com^ -+||d31y1abh02y2oj.cloudfront.net^ -+/adnext.$domain=~adnext.lt|~adnext.pl -+||colsuchy.com^ -+||dribletbogled.com^ -+||samghasps.com^ -+##a[href^="https://go.currency.com/"] -+||jugust.com^ -+||ad.kisstvshow.ru^ -+||joapsiro.com^ -+||domainanalyticsapi.com^ -+||babepedia.com/iStripper/ -+sneakernews.com##.adv-parent -+||rqnvci.com^ -+||kymagachu.pro^ -+||refugedcuber.com^ -+||boshustaty.pro^ -+||gobsea.com^ -+||lowlatiasan.com^ -+||pavilionslendercudgel.com^ -+||slxenpncpot.com^ -+||bromismcrouton.com^ -+||iuwzdf.com^ -+||goodcasino.uno^ -+||helperate.net^ -+||stinue.com^ -+||localesaftaba.com^ -+breakingnews.ie,canberratimes.com.au,theland.com.au##.py-2.bg-gray-100 -+||chinlesufer.com^ -+||althef.com^ -+||lagginleapful.com^ -+##[href^="https://secure.bmtmicro.com/servlets/"] -+##a[href^="https://adultfriendfinder.com/go/page/landing"] -+||barbedabout.com^ -+||carrialferes.com^ -+||fadedpracticedduly.com^ -+||guutvwqdxn.com^ -+||mbmrwxdwq.com^ -+||nagher.com^ -+||totfrvpotdp.com^ -+||tytostaracar.lol^ -+||cyber-guard.me^$popup -+troypoint.com##.mysticky-welcomebar-fixed-wrap -+##a[href^="http://server.cpmstar.com/click.aspx?poolid="] -+###iqadtile6 -+||rehearsemeltdownrust.com^ -+||fridgestretched.com^ -+##a[href^="http://mgid.com/"] -+||fdvewptkqfnrok.com^ -+||overrateddimension.com^ -+/adcreative.$domain=~adcreative.es|~adcreative.nl|~hange.jp -+||ffwjkbruvypv.com^ -+||joedisarmament.com^ -+||cawber.com^ -+||narnuefprlcp.com^ -+##.adsHeight300x250 -+##.headerAds250 -+thelincolnite.co.uk#@#.inline-ad -+||takemore-prizes.life^ -+legacy.com,topper.com.br#@#a[href^="https://pubads.g.doubleclick.net/"] -+##a[href^="http://campeeks.com/"][href*="&utm_"] -+||ricewaterhou.one^ -+||shroffmere.com^ -+||vaughn.live^*/abvs_video.js -+||requotehocker.com^ -+ftopx.com##.add-block -+troypoint.com##.su-box -+||igaming-warp-service.io^ -+||unblentnitric.com^ -+msn.com##div[aria-label="promotions"] -+||retagro.com^ -+||bainingsardana.com^ -+||enthusiasticsabotage.com^ -+##a[href^="https://tracking.avapartner.com/"] -+browardpalmbeach.com,dallasobserver.com,houstonpress.com,miaminewtimes.com,phoenixnewtimes.com,westword.com##.beforeBillboard -+##.mid-ads -+||cauthaushoas.com^ -+@@||pubads.g.doubleclick.net/ssai/$domain=worldsurfleague.com -+||canoevaguely.com^ ++||aviole.com^ ++||ay5u9w4jjc.com^ ++||ceeviwep.com^ ++||sinisterbatchoddly.com^ ++||morred.com^ ++/plugins/cactus-ads/*$script,stylesheet ++##a[href^="https://ad.atdmt.com/"] ++##a[href^="https://streamate.com/landing/click/"] ++||hdbcome.com^ ++||safebrowsdv.com^ ++||ads4pc.com^ ++||fla4n6ne7r8ydcohcojnnor.com^ +##a[href^="https://iqbroker.com/"][href*="?aff="] -+@@||ad.doubleclick.net/ddm/$popup,domain=billiger.de|guide-epargne.be|legacy.com|mail.yahoo.com|nytimes.com|spaargids.be -+##a[href^="//edgar2al2larngpoer.com/"] -+##a[href^="http://k2s.cc/code/"] -+||acronycgrimes.com^ -+##a[href^="https://adserver.adreactor.com/"] -+||1dd10808b3.world^ -+||anyplaceagency.com^ -+||auntietraumatizemobile.com^ -+||bilkedsquit.com^ -+||bleandworld.xyz^ -+||cloudcnfare.com^ -+||coccup.com^ -+||cunzashope.com^ -+||dibjaahejdaeejhhaacd.ru^ -+||disruptorgan.com^ -+||dotlessnorelin.com^ -+||echnol.com^ -+||ementwre.buzz^ -+||enued.com^ -+||gixiluros.com^ -+||kukachesy.pro^ -+||legcgjldeka.com^ -+||nedaugha.buzz^ -+||nipmucktwicer.com^ -+||pastivapte.pro^ -+||rayrecollect.com^ -+||sensiblemuggy.com^ -+||snugphotographer.com^ -+||stifletunnelsang.com^ -+||supplysuede.com^ -+||fastdxr.com^$popup -+||separatecolonist.com^$popup -+||ultimate-ad-eraser.com^$popup -+androidauthority.com##.-Ci -+freedownloadmanager.org##.ab320 -+pixwox.com##.tce-box-n-w -+hentaiworld.tv##.footer-banners-iframe -+@@||ipinfo.io/static/images/use-cases/adtech.jpg$image,~third-party -+||advantageoutlayreeds.com^ -+yopmail.com,yopmail.fr,yopmail.net##.pindexhautctn -+||d23spca806c5fu.cloudfront.net^ -+||e346ab6c68.click^ -+||camwhores.porn/5143ed8f34a1.js -+@@||ui.ads.microsoft.com^$~third-party -+||ormationwi.xyz^ -+republicworld.com###desktop-livetv-728-90 -+||saviourketonic.com^ -+familyporn.tv,mywebcamsluts.com##.side_spot -+||kingwitheaa.lol^ -+||goodfungame.com^$third-party -+##.post_detail_right_advert -+browardpalmbeach.com,dallasobserver.com,houstonpress.com,miaminewtimes.com,phoenixnewtimes.com,westword.com##.AirBillboardInlineContent -+###floating-ad-wrapper -+slashgear.com##.recommended-heading -+##div[class^="hp-ad-rect-"] -+||sayingcoxy.com^ -+pocketgamer.com###mobile-background -+amateurporn.me,eachporn.com##.item[style] -+||confdatabase.com^ -+||surelyconvinced.com^$popup -+cyprus-mail.com##div[id^="cypru-"] -+||n0299.com^ -+###google-ads-directoryViewRight -+||pervasivebacksrate.com^ -+||ewtdjgsaip.com^ -+||llentmatchw.xyz^ -+||myattentio.xyz^ -+##[href^="https://www.herbanomic.com/"] > img -+||neglectedwhip.com^ -+||rbtwo.bid^ -+||hospicalada.xyz^ -+||peukasrsihav.xyz^ -+||plumcandied.com^ -+barscaffolding.co.uk,capitalregionusa.xyz,dcraddock.uk##.boxzilla-container -+###dragads -+||majorinryesop.lol^ -+||noodlesignifyghosts.com^ -+##a[href^="https://msecure117.com/"] -+||apkmody.io/ads -+##[class^="Ad-adContainer"] -+###fwdevpDiv1 -+||disurm.com^ -+msn.com##.articlePage_eoabNativeAd-DS-EntryPoint1-1 -+||easydating.top^ -+##.pagebottom-ads -+##.advads-background -+thesaturdaypaper.com.au##.promo-banner -+||steakeffort.com^ -+##.top-ad-970x90 -+thecompleteuniversityguide.co.uk##.bnr_out -+||simoolkankrej.com^ -+||euizhltcd6ih.com^ -+||sbprpoowdyfbx.com^ -+||wheavy.com^ -+||grideawkwarddepth.com^ -+##.strack_bnr -+freedownloadmanager.org##.ab1 -+##a[href^="https://ptapjmp.com/"] -+||ejwxiuhjxep.com^ -+||hsxmxmsootyl.com^ -+||prbttpqbd.com^ -+192-168-1-1-ip.co,receivesms.co###adresp -+##a[href^="http://campaign.bharatmatrimony.com/track/"] -+##.lastAdHolder -+infobel.com##.results-bottom-banner-container -+##[href^="https://infinitytrk.com/"] -+||parisjeroleinpg.com^$popup -+##a[href^="http://deloplen.com/"] -+###aom-ad-right_side_2 -+||aucked.com^ -+||ggklheppngros.com^ -+||goined.com^ -+||mostlytreasure.com^ -+||ospicalad.buzz^ -+||revolvefarfetched.com^ -+||romagetukio.xyz^ -+||ssfaxobqb.com^ -+||wahess.com^ -+||wyimgydwxcy.com^ -+||animeland.tv/pa.js -+@@||v.fwmrm.net/ad/g/1$domain=uktv.co.uk|vevo.com -+||rst.pornyhd.com^ -+##.top-post-ads -+||hurlockserail.com^ -+||sociallycontend.com^ -+fansshare.com##[width="300"] -+##a[href^="http://istri.it/?"] -+##a[href^="http://reallygoodlink.extremefreegames.com/"] -+||cpallcpqgngidnn.com^ -+##.ad-size-mpu -+anisearch.com##.rect_sidebar -+##.adsHeight720x90 -+||caruagedlr.com^ -+@@||webbtelescope.org/files/live/sites/webb/$image,~third-party -+##.incontent-ad1 -+||immisurns.com^ -+coolors.co###header-ccad -+##[href="https://ourgoldguy.com/contact/"] img -+||appnow.sbs^ -+||attributedrelease.com^ -+||e44150775e.site^ -+||niwooghu.com^ -+||oscism.com^ -+wionews.com##.posrelativebox -+||ethicel.com^ -+##a[href^="http://bodelen.com/"] -+##.block-ads-system -+##.wc-adblock-wrap -+##[href^="http://join.shemalesfromhell.com/"] -+||binmenkollast.com^ -+##.ad-size-landscape ++##.pubexchange_module ++/tnt.ads. ++##[href^="https://clk.right-wing-health.com/"] ++##[href^="https://zone.gotrackier.com/"] ++||9tp9jd4p.de^ ++||agraglie.net^ ++||arisedammiral.com^ ++||batmenmessily.website^ ++||bodher.com^ ++||buildsintellecttweak.com^ ++||effolk.com^ ++||junemy.com^ ++||kidnapbushesfuse.com^ ++||litusher.com^ ++||lurefuleuryon.com^ ++||packethierarchy.com^ ++||pfewuzbtkr.com^ ++||refurt.com^ ++||solemnmanarchie.com^ ++||stypaphupse.com^ ++||uesusdistryord.xyz^ ++||uptorncouldn.website^ ++||yresumeform.autos^ ++||zythumungull.com^ ++||fyglovilo.pro^$popup ++||lkojioq.org^$popup ++||rhkyufodw8ochdr3ogsite.com^ ++msn.com##div[aria-label="promotions"] ++##[href^="https://join.girlsoutwest.com/"] ++##a[href^="http://pityhostngco2.xyz/"] +||brazenwholly.com^ -+||treasureravenvulgar.com^$popup -+||bhabgrqjjhn.com^ -+||notfcompreviews.com^ -+||worrycrevicewholly.com^ -+##.bottom-post-ads -+||u0054.com^ -+||astaticglib.com^ -+##div[data-alias="300x250 Ad 1"] -+radaronline.com##.sc-gXZlrW -+theyarehuge.com##.video-holder > .box -+##div[class^="ad_position_"] -+||arablucidlygrease.com^ -+##.bordered-ad ++/ad-units. ++||filegrab.xyz^ ++||abough.com^ ++||chedstimaarr.pics^ ++||sessionamateur.com^ ++||pestequitch.com^ ++||ghettoschanse.com^ ++/ab_fl.js$script ++||fultraightdec.xyz^ ++||rocces.com^ ++||unpacktexture.com^ ++||inmanga.com/ads/ ++@@||megaup.net^$generichide ++@@||maxstream.video^$generichide ++||dowtyler.com^$popup ++||meetexhibitcautiously.com^ ++||sedatecompulsiveout.com^$popup ++||alayzakat.com^ ++||attributedrelease.com^ ++||furnishedleggysoak.com^ ++/a/display.php?$script ++##a[href^="https://www.bebi.com"] ++||fntlyenclothe.xyz^ ++||focump.com^ ++||toshelmeton.com^ ++||visiteeremast.com^ ++||granddaughterrepresentationintroduce.com^$popup ++@@||api.adinplay.com/libs/aiptag/$domain=bigescapegames.com|brofist.io|findcat.io|lordz.io|squadd.io ++||typescoordinate.com^ ++||spatterjointposition.com^$popup ++||endomespettle.com^ ++||preauc.com^ ++||warilyaggregation.com^$popup ++##a[href^="https://misspkl.com/"] ++##[href^="http://homemoviestube.com/"] ++||mcmo22.com^ ++||xlirdr.com^$popup ++||headerporkfloral.com^ ++@@||wrestlinginc.com/wp-content/themes/unified/js/prebid.js$~third-party ++bestvpnserver.com,thewashingtonstandard.com###text-9 ++||millionsview.com^$third-party ++||metolluteic.com^ ++###gnt_atomsnc ++||juncil.com^ ++||ayelpacle.com^ ++||jillbuildertuck.com^ ++||woodmenopsonia.com^ +##[href^="http://join.hardcoreshemalevideo.com/"] -+||blastsbigener.com^ -+||chooppolygar.com^ -+||edassiumw.xyz^ -+||equityjesusdisappointment.com^ -+||govels.com^ -+||juvxsbhinuqifu.com^ -+||rungglasses.com^ -+||soluth.com^ -+||tuckbos.lol^ -+||twentycolander.com^ -+||ufywdjessgem.com^ -+||vqtdbnwduk.com^ -+||zsinek.com^ -+||lowrihouston.pro^$popup -+||lpnottech.com^$popup -+||d1twn22x8kvw17.cloudfront.net^ -+||ad.kissasian.com.ru^ -+revolver.news##.__hinit -+revolver.news##.af-slim-promo -+##a[href^="https://squren.com/rotator/?atomid="] -+pornjam.com##.publ1s-b0ttom -+||colmcweb.com^$popup -+##div[data-alias="300x250 Ad 2"] -+||watchahv.com^ -+||ndegj3peoh.com^ -+##.leaderboard-top-ad -+||casleygkqvkx.com^ -+||dailymirror.lk/youmaylike -+##a[href^="http://buysellads.com/"] -+||cheemtoo.com^ -+/^https?:\/\/.*\.(club|xyz|top|casa)\//$popup,domain=123movies2022.org|123moviesme.online|9anime.to|databasegdriveplayer.co|dood.la|dood.so|dood.to|dood.video|dood.watch|dood.ws|doodcdn.com|fmovies.to|fmovies.world|fplayer.info|gogoanimes.to|gogoplay1.com|masahub.net|mixdrop.co|redirect-ads.com|strtpe.link|voe-unblock.com|wawacity.work -+autoblog.com##.gemini-native -+||nedassiu.buzz^ -+advocate.com,out.com##.ourSponsors -+||lyssapebble.com^ -+##a[href^="//srv.buysellads.com/"] -+||thenipslip.com/8bf6a64db50f.js -+||k68tkg.com^ -+##.in-post-banner-ad -+##.squirrel_widget +##[href^="http://join.michelle-austin.com/"] +##[href^="http://join.trannies-fuck.com/"] -+##[href^="https://goldforyourfuture.com/clk.trk"] img -+##a[href^="https://mcdlks.com/"] -+||cozesplacebo.com^ -+||mkgekotijxqthj.com^ -+||nimrodsblazers.com^ -+gaymovievids.com,me-gay.com,ts-tube.net,verygayboys.com##.random-td -+##[href^="http://www.mypillow.com/"] > img -+||dysses.com^ -+||ripeabacktuition.com^ -+||uxakoonblafkys.com^ -+||19528681.com^ -+||enebut.com^ -+timesnownews.com##.ArticleShow-mb-5-3rhfv.ArticleShow-container-rdE5S -+||integr8.digital^$third-party -+##.ad-in-artilce -+||adshort.space^ -+###result-list-aside-topadsense -+##.search-result-list-item--sidebar-ad -+##.search-result-list-item--topad -+||123camquiz.com^ -+||breemi.com^ -+||closkyyodels.com^ -+||longestwaileddeadlock.com^ -+||naoyjitqsoap.com^ -+||ncyveuecqsan.com^ -+||strivefoetus.com^ -+||sturea.com^ -+||xyuwxpupdr.com^ -+||jobsora.com/img/banner/ -+4sysops.com###div-test-0 -+4sysops.com###div-test-2 -+4sysops.com###div-test-7 -+familyporner.com,pisshamster.com,xanimu.com##.native-boxes-2 -+##.ad-top-spacing -+||differfundamental.com^ -+##a[href^="http://www.sexgangsters.com/?pid="] -+##[href^="http://join.shemalepornstar.com/"] -+##[href^="https://www.hostg.xyz/aff_c"] > img -+##a[href^="http://www.bluehost.com/track/"] > img -+||kikugrotzen.com^ -+||unfide.com^ -+||apartslimlettuce.com^ -+||stowsentimental.com^ -+9anime.to,tennisuptodate.com##.sda -+wbur.org##.section--uw -+##a[href^="https://ndt5.net/"] -+||utfied.com^ -+||npecialukize.lol^ -+eurogirlsescort.com##.js-stats-click -+##a[href^="https://www.sheetmusicplus.com/"][href*="?aff_id="] -+||hdpornmax.com/tmp/ -+||slimybaptism.com^ -+||ttyyeastfeukuf.xyz^ -+||clicknplay.to/q3gSxw5.js -+||istlnkcl.com^$popup -+||editchee.com^ -+||fnaudmobile.com^ -+||sulkydozeperceive.com^ -+||prudencebeyondfalter.com^ -+##a[href^="http://hotcandyland.com/partner/"] -+||i884.info^ -+||rhelog.com^ -+||stagetortoiseinfatuated.com^$popup -+||capital.com/widgets/$third-party -+hepper.com##.sidebar__placement -+msn.com##div[data-section-id="stripe.bannernativead"] -+@@||wrestlinginc.com/wp-content/themes/unified/js/prebid.js$~third-party -+evilbeetgossip.com,katt.com,kyis.com,thesportsanimal.com,wild1049hd.com,wky930am.com##.textwidget -+||fantasyspent.com^ -+||conductmassage.com^ -+||likenesscollecting.com^ -+##a[href^="http://vo2.qrlsx.com/"] -+||fyglovilo.pro^ -+##.right-ad-1 -+##.right-ad-5 -+americaoutloud.com,autoaction.com.au,cryptoreporter.info,dafont.com,forexmt4indicators.com,gamblingnewsmagazine.com,irishcatholic.com,tntribune.com##img[width="728"] -+##[href^="https://cpa.10kfreesilver.com/"] -+##a[href^="https://clixtrac.com/"] -+##a[href^="https://waisheph.com/"] -+||acoozzh.top^ -+||smg8oo4njst45oene.com^ -+||supersedeforbes.com^$popup -+washingtontimes.com##.piano-in-article-reco -+washingtontimes.com##.piano-right-rail-reco -+idropnews.com##.related-posts -+##a[href^="https://ads.leovegas.com/redirect.aspx?"] -+||bondagecoexist.com^ -+||linaloabatches.com^ -+##a[href^="https://awecrptjmp.com/"] -+||immixteddo.com^ -+||barreraxyloid.com^ -+##.ad_w -+##.block-ad-blocktop -+bleachernation.com,mydailyfreedom.com##.code-block-16 -+##.right-ad-2 -+##.right-ad-4 -+##[href^="http://join.shemale.xxx/"] -+||atedmon.buzz^ -+||chyxyrothi.com^ -+||cruced.com^ -+||ifinaukncecaf.xyz^ -+||restaurantbubblerub.com^ -+||whitor.com^ -+fastpic.ru,freesteam.io,theblockcrypto.com##.d-lg-block -+||aj2397.online^ -+||web-guardian.xyz^$popup -+##[href^="http://join.ts-dominopresley.com/"] -+##.sponsor-bar-ea -+||argerm.com^ -+||dlkruoxcusyy.com^ -+||jefashivy.com^ -+||rubbersmyoxus.com^ -+||xxxhd.cc^$script,third-party -+||xijgedjgg5f55.com^ -+||trkbng.com^$popup -+48hills.org,audiobacon.net,bhamnow.com,coinquora.com,manageditmag.co.uk,mondoweiss.net,ottverse.com,sundayworld.co.za,tampabayparenting.com,theaudiophileman.com##.adv-link -+||phoudson.com^ -+||qamwm5o8dlgijte.com^ -+##a[href^="https://www.mrskin.com/tour"] -+||idiotyet.com^ -+##.primis_1 -+pocketgamer.com###site-background -+||laagersmascons.com^ -+##a[href^="https://www.vfreecams.com/in/?track="] -+homehound.com.au##.left-banner -+||coninemelior.com^ -+||latcoy.com^ -+sciencenews.org##.ad-block-leaderboard__freestar___Ologr -+afro.com,chimpreports.com,islandecho.co.uk,locklab.com,mallorcasunshineradio.com,runwaygirlnetwork.com,talkradioeurope.com##.a-single -+||tetrylscullion.com^ -+##a[href^="https://avtub.click/assets/link.php"] -+||digiadzone.com^$third-party -+##.horizontal-full-ad -+sunnewsonline.com#@#.jeg_ad -+||hispasexy.org/buttons/banner728.gif -+||26968963.com^ -+||cribbolts.com^ -+||wellhello.com^ -+##a[href^="https://moneynow.one/"] -+||tubev.sex/td24f164e52654fc593c6952240be1dc210935fe/ -+##a[href^="https://tour.mrskin.com/"] -+##a[href^="http://www.FriendlyDuck.com/"] -+##a[href^="https://financeads.net/tc.php?"] -+/adlink-$domain=~adlinktech.com|~github.com|~github.io -+###header-ads-holder -+##.ad--in-content -+##.ad_unit_300 -+##.ad_unit_600 -+##.ad_wrapper_970x90 -+##.inside-content-ad-container -+##.pane-ad-pane -+##a[href^="//eurogirls.live/track?"] -+##a[href^="http://bestorican.com/"] -+##a[href^="http://enter.anabolic.com/track/"] -+##a[href^="https://ad.kubiccomps.icu/"] -+##div[id^="div-ads-"] -+##a[data-url^="http://paid.outbrain.com/network/redir?"] -+||acceptabletally.com^ -+||aculeacashel.com^ -+||addresshisselephant.com^ -+||ahvfast.com^ -+||bladic.com^ -+||cleanedglistenwhite.com^ -+||columnisterror.com^ -+||currol.com^ -+||dartg665moetyor.com^ -+||duskingdinars.casa^ -+||educationaldetachblob.com^ -+||effections.xyz^ -+||elementsfertilisedfaithful.com^ -+||emerizeculler.com^ -+||enheir.com^ -+||erpyfubgt.com^ -+||familyliar.com^ -+||fattiersereins.com^ -+||favourablequickdelve.com^ -+||ffrxuokerqsi.com^ -+||forsarrooving.com^ -+||g33ktr4ck.com^ -+||grainealgums.com^ -+||groowzer.com^ -+||guro2.com^ -+||hewkpvsrdk.com^ -+||jazzharder.com^ -+||jumperpietygun.com^ -+||kabhpycekgosym.com^ -+||kipjairtxunmo.com^ -+||lunoidgulsach.com^ -+||mediapush1.com^ -+||mxabetogiycjdp.com^ -+||objectdressed.com^ -+||orcept.com^ -+||pacide.com^ -+||pbkpjnxauvw.com^ -+||pozekate.com^ -+||punnettracked.website^ -+||qffvrenbek.com^ -+||qheubcxracfadwr.com^ -+||reportsnail.com^ -+||reputedaytrade.com^ -+||searchingfor.lol^ -+||shownperfunctory.com^ -+||suspectedsinewnotary.com^ -+||syndid.com^ -+||thatohegly.com^ -+||thrube.com^ -+||thully.com^ -+||tobymenviolins.casa^ -+||usekha.com^ -+||vogulprecast.com^ -+||vuhofiny.com^ -+||wickoolt.com^ -+||writespruce.com^ -+||yearthpsyllid.com^ -+||zyfufuge.com^ -+||zypanafo.pro^ -+||offgate-app-phkr.com^$popup -+||giphy.com/embed/$domain=srilankamirror.com -+||track.10bet.com^ -+||srilankamirror.com/images/banners/ -+||gaytail.com/vast.xml -+thescore.com##.Ad__container--2fhQb -+sevenforums.com##.chill -+beckershospitalreview.com##.moduletable > .becker_doubleclick -+pixwox.com##.tce-box-i-w -+techpout.com##.widget_xyz_insert_php_widget -+4sysops.com##[href^="https://4sysops.com/a.php"] -+apotelyt.com##aside[id^="hedoApp"] -+apotelyt.com##aside[id^="widoApp"] -+navajotimes.com##div[style="text-align: center; margin-top: -35px;"] -+gamersnexus.net#?##right_col > div:-abp-has(p:-abp-contains(Advertisement)) -+nudesjar.com###bbbb -+porndroids.com##.CDjtesb7pU__video-units -+me-gay.com##.b-uvb-spot -+@@||forexprostools.com^$subdocument,domain=fx-rashinban.com -+||promotebred.com^ -+||2e8dgn8n0e0l.com^ -+||cleverads.vn^$third-party -+##.sponsor-rss-block-container -+||partners.etoro.com^$third-party -+##a[href^="http://adf.ly/?id="] -+@@||pngimg.com/distr/$image,~third-party -+||cartining-specute.com^ -+||ttbm.com^ -+||sarcasmhickbits.com^ -+||ladsatz.com^ -+||tcache.ml^ -+fapxl.com,javtitan.com,thejavmost.com,tojav.net###preroll -+||trackvoluum.com^ -+anisearch.com###rrightX -+||brokagedefraud.com^ -+||successionflimsy.com^ -+||wandererbashful.com^ -+||primevalrespectful.com^ -+notateslaapp.com##.jeffdlwlxpqi -+||futbollatam.com/ads.js -+##.post-sidebar-ad -+||hosept.com^ -+||understoodreceivermisunderstand.com^$popup -+nudesjar.com###dddda -+||blinkjork.com^ -+moneycontrol.com##.add-spot -+||peruseinvitation.com^ -+||amateurporn.me/banners/ -+theblock.co,thekitchn.com##.stickyFooter -+||validsquatcyber.com^ -+||kindleloving.com^ -+u.today##.card--something-md -+u.today##.something -+/api.ads.$domain=~ads.instacart.com -+##a[href^="http://tc.tradetracker.net/"] > img -+||d3t3bxixsojwre.cloudfront.net^ -+/?ref=$popup,domain=hltv.org -+||porngamespass.com/iframes/ -+sciencenews.org##.from-nature-index__wrapper___2E2Z9 -+||masontotally.com^ -+pornsex.rocks##.dump -+pornsex.rocks##.subsequent -+###ad-incontent -+##[href^="https://go.affiliatexe.com/"] -+##a[href^="http://www.adbrite.com/mb/commerce/purchase_form.php?"] -+||malect.com^ -+cryptoreporter.info,sunnewsonline.com,techpp.com##.code-block-3 -+##.bi-advertorial -+##div[class^="BannerAd_"] -+##a[href^="https://adsrv4k.com/"] -+##div[id^="ad-server-"] -+##a[href^="https://www.sweetdeals.com"] -+##div[id^="gtm-ad-"] -+||vexevutus.com^ -+||jspop.xyz^ -+###foot-ad-wrap -+###fwdevpDiv2 -+##a[href^="http://go.ad2up.com/"] -+##a[href^="https://syndication.dynsrvtbg.com/"] -+||mucums.com^ -+||lasentinel.net/static/img/promos/ -+||bdsmstreak.com/vast -+||fapclub.sex/js/hr.js -+winaero.com###dfsfsdfs-asdasd-2 -+winaero.com###diodfoihdfsd -+theblock.co##.fullWidthDisplay -+||scalpaccomplishedliving.com^ -+###appnexus-placement-articleTopAd -+##.adv__leaderboard -+##.ck_adv-box -+##.ads-under-header -+||cricketunbutton.com^ -+||reedpraised.com^ -+##.gptSlot-outerContainer -+forbes.com#@#.ads-loaded -+cpu-monkey.com,gpu-monkey.com##.werb -+##.Ads_header -+||anisearch.com/amazon -+||dedating.online^$popup -+##a[href*=".incontro-veloce.com/"] -+citynews.ca###Bigbox_300x250 -+||seventeencheckcurtain.com^ -+##.AdCompactheader -+##.adunit-container-incontent-280px -+##a[href^="https://nutrientassumptionclaims.com/"] -+##a[href^="https://someperceptionparade.com/"] -+##a[href^="https://www.gambling-affiliation.com/cpc/"] -+||faused.com^ -+||gasylicyg1e8n6po.com^ -+||oqieibkoqxwt.com^ -+||peskyclarifysuitcases.com^ -+||speciesbrittle.com^ -+||tfdnncmhx.com^ -+||thiokolduumvir.com^ -+bookriot.com###top_takeover -+thenetnaija.co,thenetnaija.com##.cmp-list -+bookriot.com##.random-content-pro-wrapper -+###wp_adbn_root -+##a[href^="http://c.actiondesk.com/"] -+||gpyrvmufck.com^ -+||slideff.com^$popup -+/taboolaSection. -+||woffxxx.com^$popup -+##a[href^="https://medleyads.com/"] -+##.chapter-bottom-ads -+##.chapter-top-ads -+##.tnw-ad -+||kewhulawi.com^ -+getbukkit.org##.limit -+50gameslike.com,highdemandskills.com,yumyumnews.com##[href^="https://click.linksynergy.com/"] -+||qinquinal.com^ -+##a[href^="http://adserver.adreactor.com/"] -+##a[href^="http://adultgames.xxx/"] -+||nichedlinks.com^ -+||triflinguncertainforensic.com^ -+filepuma.com##.update_software -+##a[href^="https://galaxyroms.net/?scr="] -+##a[href^="https://join.sexworld3d.com/track/"] -+##[href^="http://clicks.totemcash.com/"] -+sunnewsonline.com#@#.jeg_ad_top -+sunnewsonline.com#@#.jnews_header_top_ads -+||okraenrolls.com^ -+||storage.googleapis.com/cdn.newsfirst.lk/advertisements/$domain=newsfirst.lk -+pornjam.com##.r1ght-pl4yer-169 -+##a[href^="https://go.alxbgo.com/"] -+##.adbutler-inline-ad -+###adv-Middle -+##a[href^="https://geniusdexchange.com/"] -+##.qa-placement-outbrain-under-post-cr -+||akdbr.com^ -+||arabdevastatingpatty.com^ -+||asymyvhmwyyop.com^ -+||atwcmxpww.com^ -+||cepterunlogic.com^ -+||cupoabie.net^ -+||diamondmodapk.com^ -+||eezoulru.com^ -+||ftmsovmmsoi.com^ -+||krmal.com^ -+||lightlyrelinquish.com^ -+||pestgermagriculture.com^ -+||prgvhola.com^ -+||sacrib.com^ -+||soogandrooped.cam^ -+||throun.com^ -+||gcouncer.buzz^$popup -+||webnotificationslife.com^$popup -+||zype.com^$third-party,domain=bossip.com|hiphopwired.com|madamenoire.com -+||clicknplay.to/api/$popup -+newsfirst.lk###sponsored-content-1 -+reneweconomy.com.au###text-46 -+thisismoney.co.uk##.button-style > [href] -+careerindia.com##.inhouse-content -+samsclub.com#?#li[class="sc-carousel-slide sc-carousel-horizontal"]:-abp-has(div.sc-pc-specials) -+sexybabegirls.com##.girlsgirls -+##a[href^="https://syndication.exoclick.com/"] -+##a[href*="https://www.sweetdeals.com/"] img -+||webnotificationslife.com^ -+###adbineScroll -+battlefordsnow.com,cfjctoday.com,everythinggp.com,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca##.midcontent -+||hltv.org^*=|$popup,domain=hltv.org -+iobroker.net##.jss125 -+##.adindicator -+||linksecurecd.com^ -+bossip.com##.fsb-desktop -+bossip.com##.fsb-toggle -+milfporn8.com,ymlporn7.net##.vid-ave-pl -+||airdropemboil.com^ -+||forthcomingpropelwho.com^ -+##a[href^="https://www.im88trk.com/"] -+###sponsored-outbrain-1 -+||aspencore.com/syndication/v3/partnered-content/ -+##[href^="https://track.fiverr.com/visit/"] > img -+##a[href^="https://go.cmtaffiliates.com/"] -+##a[href^="https://offers.refchamp.com/"] -+||carrotraining.com^ -+battlefordsnow.com,cfjctoday.com,everythinggp.com,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca###banner-header -+##[href^="https://www.brighteonstore.com/products/"] img -+##a[href^="http://www.gfrevenge.com/landing/"] -+||aerugosspritz.com^ -+||complimentarywalkerexcessively.com^ -+||plaghs.com^ -+||tagoutlookignoring.com^ -+||waniks.com^ -+sun-sentinel.com##.trb_sf_hl -+businessday.ng##.uiazojl -+msn.com##[data-test-id="mrr-nativead"] -+gamersnexus.net#?#.moduleContent:-abp-contains(Advertisement) -+##.header-ad-widget -+||1o1camshow.com^$popup -+||dailyporn.club/at/code.php -+||n0433.com^ -+||sacdon.com^ -+||simple-isl.com^ -+miloserdov.org,reneweconomy.com.au,wpneon.com###custom_html-10 -+||pornsex.rocks/league.aspx -+sciencenewsforstudents.org##.ad-block-leaderboard__wrapper___1rR0c -+##a[href^="https://join.dreamsexworld.com/"] -+##.adsfloatpanel -+##[href^="https://mylead.global/stl/"] > img -+||democracyendlesslyzoo.com^ -+||sumpki.com^ -+##a[href*=".trust.zone"] -+##.ad-55 -+2smsupernetwork.com,reneweconomy.com.au,zambiareports.com###text-3 -+koreaherald.com##.header_bnn -+koreaherald.com##.khadv1 -+##a[href^="http://www.getyourguide.com/?partner_id="] -+||reesttowny.com^ -+battlefordsnow.com,cfjctoday.com,everythinggp.com,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca##.parallax-breakout -+||balneasoucars.website^ -+||noaon2.com^ -+financemagnates.com##.banner__outer-wrapper -+##a[href^="https://secure.starsaffiliateclub.com/C.ashx?"] -+||n0355.com^ -+||bonuscontract.com^ -+wbap.com###media_image-3 -+##a[href^="http://partners.etoro.com/"] -+##a[href^="https://fakelay.com/"] -+##a[href^="https://www.purevpn.com/"][href*="&utm_source=aff-"] -+||idahoanpavies.com^ -+airmail.news,govevents.com,protipster.com##.display -+##a[href^="https://land.brazzersnetwork.com/landing/"] -+##[href^="https://www.mypatriotsupply.com/"] > img -+##a[href^="http://www.fleshlight.com/"] -+thehustle.co##.sidebar-feed-trends -+/wallpaper-ad. -+##.VPCarbonAds -+##.ad-banner-full-wrapper -+##.ad-wrapper-mobile-atf -+##.adunit-container-incontent-400px -+##.amis-advert -+##.footer-prebid -+##.publisher_ad -+##a[href*=".flndmyiove.net/"] -+##a[href^="//go.xlviiirdr.com"] -+##a[href^="http://www.onwebcam.com/random?t_link="] -+##a[href^="https://chaturbate.xyz/"] -+##a[href^="https://go.ad2up.com/"] -+##a[href^="https://go.hpyrdr.com/"] -+##a[href^="https://graizoah.com/"] -+##a[href^="https://see.kmisln.com/"] -+##a[href^="https://t.grtyi.com/"] -+##a[href^="https://tragency-clesburg.icu/"] -+##a[href^="https://www.healthrangerstore.com/"] > img -+##a[href^="https://www.kingsoffetish.com/tour?partner_id="] -+##a[href^="https://www.rcbopt.com:8080/offer/"] > img -+##a[href^="https://fastestvpn.com/lifetime-special-deal?a_aid="] -+###taboola-mobile-article-thumbnails -+||arened.com^ -+||bf9c1dc8ca.com^ -+||btmpgcgpjwagnx.com^ -+||convertsial.com^ -+||dealerobjections.com^ -+||devotedvarnish.com^ -+||dhonon.com^ -+||dviccvivms.com^ -+||eruple.com^ -+||hyxumuta.com^ -+||indold.com^ -+||markkasgrosses.com^ -+||milesdrone.com^ -+||natspiders.com^ -+||pertfair.com^ -+||qbccpgljgxc.com^ -+||qpwgmphwnejfp.com^ -+||qwwjgmpfpthke.com^ -+||rsnvboidrvqjso.com^ -+||santosseorita.com^ -+||socketlidoperative.com^ -+||subtlemedicineincorporate.com^ -+||turinxmw.com^ -+||uads.shop^ -+||unqhuyfkhbj.com^ -+||xxvism.com^ -+||gwrtheyrn-rot.com^$popup -+||ad.kubiccomps.icu^ -+||idrive.com/include/images/idrive-120240.png -+||receive-sms-online.info/img/banner_ -+edn.com###SideBarWrap -+canberratimes.com.au,examiner.com.au,theland.com.au###newswell-leaderboard-container -+iobroker.net,iobroker.pro##.jss43 -+punchng.com##.site-header-placeholder -+tetris.com##a[onclick*="open"] -+canberratimes.com.au,examiner.com.au,theland.com.au##div[id^="mrec-"] -+canberratimes.com.au,examiner.com.au,theland.com.au##div[id^="newswell-side-"] -+bossip.com,hiphopwired.com,madamenoire.com###player-wrapper -+europeanpharmaceuticalreview.com##.europ-fixed-footer -+samsclub.com#?#li:-abp-has(> div:-abp-contains(Sponsored)) -+@@||ias.global.rakuten.com/adv/$script,domain=rakuten.co.jp -+@@||ad.doubleclick.net/clk*&destinationURL=$popup -+infobel.com##.results-top-banner-container -+cnn.com###partner-zone -+||begrimdos.com^ -+###appnexus-placement-articleTextAd2 -+##a[href^="http://www.greenmangaming.com/?tap_a="] -+||absorbedexistence.com^ -+gamepur.com##.wp-block-dotesports-affiliate-button -+@@||2mdn.net/instream/html5/ima3.js$script,domain=cadenadial.com|earthtv.com|techrepublic.com|zdnet.com -+##a[href^="https://queersodadults.com/"] -+finbold.com##.cta-block -+##a[href^="http://tezfiles.com/pr/"] -+postnewsgroup.com,vgleaks.com###text-4 -+||aeeg5idiuenbi7erger.com^$popup -+finbold.com###ba200ba7ef5e1 -+finbold.com###bottom_anchor -+finbold.com##.holder-bg -+natureworldnews.com##label -+##a[href^="https://dooloust.net/"] -+##a[href^="https://www.jackery.com?aff="] > img -+strangesounds.org##.wp-image-281312 -+##.advertising-disclaimer -+##.ad-slot-responsive -+##.view-advertisement -+##.view-id-advertisement -+##.wh-advert -+##a[href^="https://go.julrdr.com/"] -+||clayierglaiks.com^ -+||pitchedsprout.com^ -+||vibuin.com^ -+travelpulse.com###ab_container -+##a[href^="https://goraps.com/"] -+##a[href^="//www.mgid.com/"] -+||pushnotstudio.com^ -+##a[href^="https://landing.brazzersplus.com/"] -+##a[data-redirect^="http://paid.outbrain.com/network/redir?"] -+##[href^="https://goldcometals.com/clk.trk"] -+##a[href^="http://bs.serving-sys.com/"] -+##a[href^="http://see.kmisln.com/"] -+##a[href^="http://trk.mdrtrck.com/"] -+##a[href^="https://ak.hetaruwg.com/"] -+##a[href^="https://members.linkifier.com/public/affiliateLanding?refCode="] -+||mjjppdbqrlo.com^ -+||stpmgo.com^ -+insauga.com##.proper-content-dynamic -+dallasnews.com##.xl_right-rail -+/adlink.$domain=~adlink.guru|~adlinktech.com|~github.com -+##.banner-ad-contianer -+##a[href^="http://www.adultempire.com/unlimited/promo?"][href*="&partner_id="] -+||trackytrack02.com^ -+||lolhentai.net/tceb29242cf7.js -+dailynews.lk,german-way.com,power987.co.za,qsaltlake.com,tfetimes.com##img[height="250"] -+||ceileangsts.com^ -+##a[href^="http://xtgem.com/click?"] -+euroweeklynews.com###banner-970 -+##.fixed-sidebar-ad -+##[href^="http://join.rodneymoore.com/"] -+###right_ad_1 -+##.adSlotHeaderContainer -+##a[href^="https://go.247traffic.com/"] -+||leisurelypizzascarlet.com^ -+||rareinsane.com^ -+news9live.com###left_before_story -+mrstiff.com###xdv-preroll -+##a[href^="https://www.sugarinstant.com/?partner_id="] -+##a[href^="http://www.tirerack.com/affiliates/"] -+###ad_after_header_1 -+###ad_level_1 -+##.ad-slot-header -+##.margin-advertisement -+##a[href^="http://adultfriendfinder.com/p/register.cgi?pid="] -+##a[href^="http://bluehost.com/track/"] -+##a[href^="http://www.hibids10.com/"] -+##a[href^="https://go.admjmp.com/"] -+##a[href^="https://look.utndln.com/"] -+##a[href^="https://s.zlink2.com/"] -+##a[href^="https://www.sheetmusicplus.com/?aff_id="] -+##aside[id^="tn_ads_widget-"] -+||889433.com^ -+||aviesanct.website^ -+||fwglrwncnusph.com^ -+||garlandnaninflict.com^ -+||lawhulophe.com^ -+||lubbreton.com^ -+||mpoagbhupufon.com^ -+||reflexalright.com^ -+||s4block.com^ -+||shawashygy.com^ -+||sinewedretore.casa^ -+||surzoe.com^ ++##a[href^="https://click.a-ads.com/"] ++||accoln.com^ ++||bridgerbristle.com^ ++||dfyouolsdq.com^ ++||exerciseundergone.com^ ++||forgerylimit.com^ ++||oextraordu.one^ ++||free3dgame.xyz^$popup ++||oxydaserucked.com^ ++||yumomis.com^ ++||getels.com^ ++||itemperrycreek.com^ ++||gatetent.com^ ++||scutesneatest.com^ ++||trappedtree.com^ ++||sudrauls.com^ ++||mistakeirresistiblechalk.com^ ++||rtyvaluation.shop^ ++##a[href^="https://www.financeads.net/tc.php?"] ++||midistortrix.com^ ++altfi.com##.alert ++##a[href*="//lkstrck2.com/"] ++||validsquatcyber.com^$popup ++||noblesoverloadprofanity.com^ ++##[href^="http://join.shemalesfromhell.com/"] ++||a-waiting.com^ ++||aborld.com^ ++||boshustaty.pro^ ++||jilorunmy.buzz^ ++||kescowledge.xyz^ ++||lowlatiasan.com^ ++||nadiingsinsp.one^ ++||overjoyed-balance.com^ ++||somatendoo.com^ +||unrentkinky.com^ -+||upodnvvvxvnxh.com^ -+||vnyhxpplppmooe.com^ -+||wokentractorfurnished.com^ -+||c0nect.com^$popup -+||glizauvo.net^$popup -+||unforgivablegrowl.com^$popup -+||theonlineuserprotection.com/download-guard/$popup,third-party -+||thefinancialexpress.com.bd/images/rocket-250-250.png -+assamtribune.com###async_body_tags -+cbn.com###cbn_leaderboard_atf -+arydigital.tv###zzright -+pakobserver.net##.tdi_124 -+@@||browserbench.org^$generichide -+##a[href^="https://affiliate.geekbuying.com/gkbaffiliate.php?"] -+##div[id^="taboola-stream-"] -+##a[href^="https://join.virtuallust3d.com/"] -+||fnaudmobile.com^$popup -+##.mh-advert -+##div[class^="ad_border_"] -+||conative.network^ -+orschlurch.net,tetris.com##[href^="https://amzn.to/"] -+##a[href^="http://www.revenuehits.com/"] -+##a[href^="https://aweptjmp.com/"] -+apotelyt.com###hedoCon -+apotelyt.com###widoCon -+apotelyt.com##.cuPopu-Con -+academicful.com,forum.mobilism.org##[rel="sponsored"] -+||muddyjustify.com^ -+##a[href^="http://adserving.unibet.com/"] -+##a[href^="http://secure.vivid.com/track/"] -+drweil.com##.promo-blurb -+drweil.com##.promo-blurb-label -+thumbsnap.com##.ts-blurb-wrap -+##.national_ad -+##[href^="http://go.cm-trk2.com/"] -+##.ad_break2_container -+##.article_body_ad1 ++kitco.com##.ad_space_730 ++||kychajuza.com^ ++||curietplatly.com^ ++||intelligenceretarget.com^ ++||d19gkl2iaav80x.cloudfront.net^ ++##a[href^="https://track.effiliation.com/servlet/effi.click?"] > img ++||atebilaterde.one^ ++||ceteembathe.com^ ++||perryvolleyball.com^ ++||allstat-pp.ru^ ++##a[href^="https://prf.hn/click/"][href*="/adref:"] > img ++##a[href^="https://go.currency.com/"] ++##a[href^="https://track.afftck.com/"] ++||yahuu.org^ ++||elsewherebuckle.com^$popup ++||d2kpucccxrl97x.cloudfront.net^ ++||abyssesbathman.com^ ++||chachophigy.pro^ ++||backmerriment.com^ ++||laniusburkei.com^ ++||noqukjy.com^ ++||kissasian.li/ads/ ++##[href^="https://affect3dnetwork.com/track/"] ++pointblanknews.com,sharktankblog.com##img[height="60"] ++||uptownrecycle.com^ ++||xpprinx2.com^$popup ++##a[href^="https://m.do.co/c/"] > img ++||antarcticoffended.com^ ++||tczzzlwpss.com^ ++||d3mmnnn9s2dcmq.cloudfront.net/shim/embed.js ++||thurch.com^ ++||twentycolander.com^ ++##[href^="https://www.targetingpartner.com/"] ++marketscreener.com##.hPubRight2 ++allnigerianrecipes.com,antimusic.com,roadtests.com##.topad ++||protectionabate.com^ ++||clariniwoald.com^ ++##a[href^="https://promo-bc.com/"] ++||tonsilyearling.com^ ++/awaps-ad-sdk-$script ++##[href^="https://mypillow.com/"] > img ++||0a0d-d3l1vr.b-cdn.net^ ++||9001476746.com^ ++||ads-delivery.b-cdn.net^ ++||affelseaeineral.xyz^ ++||assimilateentrails.com^ ++||bbjisktuj.com^ ++||bilkedsquit.com^ ++||buvamery.net^ ++||cataractoutputprogramming.com^ ++||councilcoveauto.com^ ++||creationaleprose.com^ ++||differencedisinheritpass.com^ ++||dotagestores.com^ ++||echnol.com^ ++||enacttournamentcute.com^ ++||enued.com^ ++||followingdonation.com^ ++||functionspresidespiral.com^ ++||haffic.com^ ++||hangoverrapidlygreat.com^ ++||hnfuboqaopdweu.com^ ++||hrmationeng.xyz^ ++||huskydesigner.pro^ ++||macaigha.net^ ++||mambobuyback.com^ ++||maternalhi.com^ ++||metherearl.xyz^ ++||milips.com^ ++||ndbriolenproc.buzz^ ++||nipmucktwicer.com^ ++||okoniteblart.com^ ++||oppean.com^ ++||pycizury.pro^ ++||rayrecollect.com^ ++||waiting.biz^ ++||wxerixudglwf.com^ ++||drakejones.xyz^$popup ++||kxnggkh2nj.com^$popup ++||skiptheadz.net^$popup ++||d3rb9wasp2y8gw.cloudfront.net^ ++||drbccw04ifva6.cloudfront.net^ ++orilliamatters.com,sootoday.com,timescolonist.com,vancouverisawesome.com###leaderboard-container ++igberetvnews.com,nextnewssource.com###wallpaper ++||ogtrk.net^$popup ++forbes.com,nasdaq.com##.video-placeholder ++##.sidebarAD ++||alterationappealprison.com^ ++||vrixon.com/adsdk/ ++||harlergate.casa^ ++||airdempu.com^ ++##a[href^="http://wct.link/"] ++/jsAds-$script ++||cataractsallydeserves.com^ ++||tauvoojo.net^ ++||prebidwrapper.com^$third-party ++||dby7kx9z9yzse.cloudfront.net^ ++||lowrihouston.pro^$popup ++||sayingcoxy.com^ ++||eechicha.com^ ++||animemeat.com^$popup ++##a[href^="https://as.sexad.net/"] ++||civilizationthose.com^ ++||ployeesihigh.one^ ++@@||webbtelescope.org/files/live/sites/webb/$image,~third-party ++||baldbaptismrisk.com^ ++##[href^="https://infinitytrk.com/"] ++||elepts.com^ ++||gasolineunityauspice.com^ ++||ultimate-ad-eraser.com^$popup ++||airlinerappetizingcoast.com^ ++||rqnvci.com^ ++||shroffmere.com^ ++||dribletbogled.com^ ++||ashamedbirchpoorly.com^ ++crazygames.com,malaysiakini.com,tenforums.com##div[style^="height:250px"] ++##a[href^="https://msecure117.com/"] ++||kebyartopsman.website^ ++||notifstar.com^ ++||protocolgroupgroups.com^ ++||nswith.com^ ++||redrotou.net^ ++||analogydid.com^ ++||cloudcnfare.com^ ++||colsuchy.com^ ++||albeitinflame.com^ ++||advantagesclotblend.com^ ++##[href^="http://join.shemalepornstar.com/"] ++||aucked.com^ ++||conurs.com^ ++||goined.com^ ++||otomacotelugu.com^ ++||polerenewget.buzz^ ++||scammereating.com^ ++||sportrookier.com^ ++||walkamorous.com^ ++||yassumeda.one^ ++||yinthesprin.xyz^ ++||verandahcrease.com^$popup ++duplichecker.com##img[src*="data:image"] ++##a[href^="https://landing1.brazzersnetwork.com"] ++/js/ad.js?slot= ++||thathechoxe.com^ ++||ricewaterhou.xyz^ ++||currol.com^ ++||shidn.com^ ++||tffkroute.com^ ++||weednewspro.com^ ++##.empire-unit-prefill-container ++melmagazine.com##.empire-unit-prefill-container ++||longestwaileddeadlock.com^ ++||sub2.avgle.com^ ++||echolargemovement.com^ ++/adv_ads_ ++||i884.info^ ++||setsdowntown.com^ ++||5xd3jfwl9e8v.com^ ++/fel456.js$script ++##[data-adblockkey] ++##a[href^="https://join.virtualtaboo.com/track/"] ++||afterthoughthassledos.com^ ++||aistthatheha.xyz^ ++||bumpingasbolin.com^ ++||chooppolygar.com^ ++||clo6du.com^ ++||featoutline.com^ ++||fisetinmedius.com^ ++||irecid.com^ ++||joccupangno.xyz^ ++||lithogsicket.com^ ++||locatc.com^ ++||lowstaryur.com^ ++||nulats.com^ ++||op00.biz^ ++||serumbosses.com^ ++||uvbyty.com^ ++||valuabletuskbadge.com^ ++||veneeringimpenetrable.com^ ++||wadmargincling.com^ ++||walkinglive.org^ ++||whicki.com^ ++||ad.kisstvshow.ru^ ++msn.com##div[data-section-id="stripe.bannernativead"] ++##[href^="https://secure.bmtmicro.com/servlets/"] ++||reedsbullyingpastel.com^ ++||arecmesi.net^ ++##.ads-placeholder-inside ++||chyxyrothi.com^ ++discussingfilm.net,shtfplan.com,tech-latest.com,usmagazine.com##.widget_block ++||stonergraces.com^ ++||kuleqasfors.one^ ++||recesssignary.com^ ++||briefcasebuoyduster.com^ ++||secondunderminecalm.com^ ++||cozesplacebo.com^ ++||dariolunus.com^ ++||ductquest.com^ ++||pushmejs.com^ ++||nagher.com^ ++||qe0ckm024b.com^ ++##[href^="https://cpa.10kfreesilver.com/"] ++||abruptcompliments.com^ ++||akelandord.buzz^ ++||armals.com^ ++||bowedsequence.com^ ++||breemi.com^ ++||enebut.com^ ++||ningukmodu.one^ ++||newspopperio.com^$popup ++||sagedeportflorist.com^$popup ++||guchihyfa.pro^ ++##[href^="https://www.herbanomic.com/"] > img ++playco-opgame.com,sadeempc.com,thewashingtonstandard.com###text-8 ++||sdnihyxlqiws.com^ ++||disurm.com^ ++||edassiumw.xyz^ ++||shorantonto.com^ ++||datingtoday.top^$popup ++9anime.to,cyclinguptodate.com,tennisuptodate.com##.sda ++@@||googleapis.com/js/sdkloader/ima3.js$domain=udn.com ++##a[href^="https://moneynow.one/"] ++||cleanedglistenwhite.com^ ++||gentssepa.buzz^ ++||lmeexisten.xyz^ ++||madampassenger.com^ ++||oxrendflare.com^ ++||rgentssep.xyz^ ++||swirlygossips.com^ ++||tiltfastest.com^ ++||trembleafterthought.com^ ++||zegrumse.net^ ++||admiredexcrete.com^ ++##a[href^="https://ads.leovegas.com/redirect.aspx?"] ++||cipledecline.buzz^ ++||vogulprecast.com^ ++xxxcomics.org##video ++||ungroudonchan.com^ ++||123camquiz.com^ ++||algothitaon.com^ ++||dodurantom.com^ ++||mailboxdoablebasically.com^ ++||piquetmuriti.com^ ++||tindocumentary.com^ ++||rat.xxx/retr/ ++||shitucka.net^ ++||stowsentimental.com^ ++||slimybaptism.com^ ++##[href^="http://join.ts-dominopresley.com/"] ++##[href^="https://goldforyourfuture.com/clk.trk"] img ++##a[href*=".zlinkm.com/"] ++||colmoseshelled.com^ ++||dizzardfovea.com^ ++||reheatmontia.com^ ++||rat.xxx/ssk/ ++||1redirc.com^$popup ++||immisurns.com^ ++##a[href^="https://www.mrskin.com/tour"] ++||okraenrolls.com^ ++##a[href^="https://adsrv4k.com/"] ++barscaffolding.co.uk,capitalregionusa.xyz,dcraddock.uk,javbebe.com,javxxoo.com,xxx-picture.com##.boxzilla-container ++||darghinruskin.com^ ++||dulogav.com^ ++||v00ske77693f.com^ ++||lpnottech.com^$popup ++||borrowdefeat.com^ ++||groglezapto.pro^ ++||ifinaukncecaf.xyz^ ++||saltsspectacles.com^ ++||ivanvillager.com^ ++||padp5arja8dgsd9cha.com^ ++||higgiens23c5l8asfrk.com^$popup ++||alertlogsemployer.com^ ++||flowplayer.com/releases/ads/ ++##.content__ad ++||accedenonre.xyz^ ++||avalancheofnews.com^ ++freedownloadmanager.org##.ab1 ++@@||global-uploads.webflow.com/*_dimensions-$image,domain=dimensions.com ++||successionflimsy.com^ ++/ane-preroll/preroll.js ++/prebid-pro. ++##.ads_placeholder ++##.splashy-ad-container ++##[href^="http://join.shemale.xxx/"] ++##a[href*=".flndmyiove.net/"] ++##a[href^="http://adf.ly/?id="] ++##a[href^="https://avtub.click/assets/link.php"] ++##a[href^="https://click.dtiserv2.com/"] ++##a[href^="https://nutrientassumptionclaims.com/"] ++##a[href^="https://syndication.dynsrvtbg.com/"] ++##a[href^="https://tour.mrskin.com/"] ++##a[href^="https://www.vfreecams.com/in/?track="] ++||03f128fb44.com^ ++||58gs7b32jy.com^ ++||animatedbothervogue.com^ ++||atraichuor.com^ ++||bb63221b43.com^ ++||belfarewes.buzz^ ++||clackavarian.com^ ++||criticismheadphoneprinting.com^ ++||cylish.com^ ++||dolpc.com^ ++||dreaty.com^ ++||duskingdinars.casa^ ++||efflue.com^ ++||enlightenedinterest.pro^ ++||fenacheaverage.com^ ++||foldertopichoot.com^ ++||freuna.com^ ++||fsznrodyocq.com^ ++||grainealgums.com^ ++||grudgemotivate.com^ ++||grumblecrytopless.com^ ++||henoticpipi.com^ ++||hildr-zah.com^ ++||irgayuwmhj.com^ ++||juryinvolving.com^ ++||kazanwhoeveryowl.com^ ++||laufonie.net^ ++||les7andla4.cfd^ ++||lumupu.xyz^ ++||mahdicrofter.com^ ++||ndegj3peoh.com^ ++||ninemilkpie.live^ ++||objectsentrust.com^ ++||oncertaino.xyz^ ++||overkirliaan.com^ ++||propvideo.net^ ++||ridiculousatta.xyz^ ++||sbyqtugtfe.com^ ++||shammarfinew.com^ ++||simpliftsbefore.xyz^ ++||strakerecombs.website^ ++||submb.com^ ++||survey2you.co^ ++||ukrauw.com^ ++||unsulf.com^ ++||utndln.com^ ++||varietiesplea.com^ ++||vuhofiny.com^ ++||wapataimplete.com^ ++||werese.com^ ++||whizduly.com^ ++||yidded.com^ ++||zyfufuge.com^ ++||a-waiting.com^$popup ++||adz-shield.com^$popup ++||ezyenrwcmo.com^$popup ++||limitationvolleyballdejected.com^$popup ++||d1j47wsepxe9u2.cloudfront.net^ ++||d2s9nyc35a225l.cloudfront.net^ ++||d5onopbfw009h.cloudfront.net^ ++freedownloadmanager.org##.ab320 ++48hills.org,audiobacon.net,bhamnow.com,coinquora.com,manageditmag.co.uk,mondoweiss.net,ottverse.com,sundayworld.co.za,tampabayparenting.com,theaudiophileman.com##.adv-link ++123-movies.buzz##.ann-home ++||headlightbailey.com^ ++msn.com##.articlePage_eoabNativeAd-DS-EntryPoint1-1 ++##a[href^="https://bngpt.com/"] ++||ad.kissasian.com.ru^ ++||cofounderspecials.com^ ++||ngegas.files.im^ ++||ngegas.files.im^ ++gr8.cc,psycatgames.com##.sticky-banner ++cumlouder.com##.sticky-banner ++##a[href^="https://www.sheetmusicplus.com/"][href*="?aff_id="] ++##a[href^="https://awecrptjmp.com/"] ++##a[href^="http://www.FriendlyDuck.com/"] ++||lockerstagger.com^ ++##a[href*="https://www.sweetdeals.com/"] img ++||editchee.com^ ++||lotreal.com^ ++##a[href^="https://ndt5.net/"] ++||oungimuk.net^ ++||eugeniecor.com^ ++||rnotraff.com^ ++||shivoaps.net^ ++##a[href^="https://clixtrac.com/"] ++##[href^="http://www.mypillow.com/"] > img ++##a[href^="https://join.dreamsexworld.com/"] ++||validsquatcyber.com^ ++theblock.co,thekitchn.com##.stickyFooter ++||zaglushkaaa.com^ ++||d3t3bxixsojwre.cloudfront.net^ ++##a[href^="https://financeads.net/tc.php?"] ++||girlbuffalo.com^ ++##a[href^="http://deloplen.com/"] ++##a[href^="https://adultfriendfinder.com/go/page/landing"] ++||boxofwhisper.com^ ++##.gptSlot-outerContainer ++###foot-ad-wrap ++##a[href^="https://adserver.adreactor.com/"] ++||btpnav.com^ ++||cremateretainedsurname.com^ ++||diaperhumanpurify.com^ ++||malect.com^ ++||trkbng.com^$popup ++##a[href^="https://www.sweetdeals.com"] ++||benidorinor.com^ ++||jugnaglo.com^ ++||bftrlhesrlfjp.com^ ++/plugins/cpx-advert/*$script ++##a[href^="https://go.247traffic.com/"] ++||preoccupydaughterinlaw.com^ ++||vt894axs16.com^ ++||track.kinetiksoft.com^$popup,third-party ++zerohedge.com##div[class^="AdvertisingSlot_"] ++||hsrvz.com^$popup ++forbes.com#@#.ads-loaded ++||ossrhydonr.com^ ++||badskates.com^ ++||uuhvungdag.com^$popup ++||fyglovilo.pro^ ++||remembercompetitioninexplicable.com^ ++domainnamewire.com##.g-single ++##a[href^="http://adserver.adreactor.com/"] ++##a[href^="http://hotcandyland.com/partner/"] ++##a[href^="http://tc.tradetracker.net/"] > img ++||actsrelent.com^ ++||baitwizardrhythm.com^ ++||ecched.com^ ++||faused.com^ ++||ninetypastime.com^ ++||shantihskats.com^ ++||vfgtg.com^ ++||wibtntmvox.com^ ++||objectionsdomesticatednagging.com^$popup ++||treatycalculator.com^$popup ++independent.co.uk##div[class*="TopBanner_"] ++||phoudson.com^ ++||jefashivy.com^ ++||downloadyt.com^ ++||xqzlgbbe.com^ ++##.gnt_rr_xpst ++##.gnt_rr_xst ++||anmdr.link^ ++||orderlyregister.pro^ ++||separationreverttap.com^ ++||yarlnk.com^ ++||1jsskipuf8sd.com^ ++||rtyznd.com^ ++||mediapush1.com^ ++||bigrourg.net^ ++||yourmetshop.com^ ++||fewergkit.com^ ++##a[href^="http://www.onwebcam.com/random?t_link="] ++##[href^="https://mystore.com/"] > img ++||niececordthrone.com^ ++##.ADVParallax ++##.adsmobile ++##.dfp-wrap ++||08bb1fn3t4.com^ ++||24newstech.com^ ++||abnegatedigging.com^ ++||addthief.com^ ++||alecclause.com^ ++||arabdevastatingpatty.com^ ++||avenuescrupuloustheological.com^ ++||cha2spoi3rasne.com^ ++||daphnews.com^ ++||espotl.com^ ++||fanyorgagetn.buzz^ ++||fivern.com^ ++||negationsome.com^ ++||noaon2.com^ ++||nuniceberg.com^ ++||nvqjpzxufp.com^ ++||quarrelaimless.com^ ++||rearcocoa.com^ ++||rigidearnest.com^ ++||schoax.com^ ++||ukdliketobepa.monster^ ++||untropiuson.com^ ++||adsmart.hk^$third-party ++||wowshortvideos.com^$popup ++@@||thegay.com/assets/jwplayer-*/jwplayer.core.controls.js|$domain=thegay.com ++@@||thegay.com/assets/jwplayer-*/provider.hlsjs.js|$domain=thegay.com ++reverso.net###rca ++afro.com,chimpreports.com,islandecho.co.uk,locklab.com,mallorcasunshineradio.com,runwaygirlnetwork.com,talkradioeurope.com,theshoesnobblog.com##.a-single ++##div[id^="div-ads-"] ++||coastpreachshrink.com^ ++@@||texasmonthly.com/wp-content/plugins/txmo-header-bidding/dist/js/txmo-prebid.js ++/plugins/dx-ads/*$script ++||nndiscov.cfd^ ++/adlinks.$domain=~adlinks.io|~adlinks.to ++##.bordered-ad ++###videoOverAd ++##.videoOverAdSmall +##[id^="ad_slider"] -+##a[href^="//pubads.g.doubleclick.net/"] -+##a[href^="http://go.xtbaffiliates.com/"] -+||eeaacsmmdenxarx.com^ -+||flibao.com^ -+||d2k7gvkt8o1fo8.cloudfront.net^ -+||dailynews.lk/sites/default/files/pictures/BO-Banner-NEW.gif -+wbur.org##.uw--rec -+filtercams.com###bannerFC -+nationalheraldindia.com##.header-m__ad-top__36Hpg -+##a[href^="https://t.hrtyj.com/"] -+||faminedealergirl.com^ -+||inheritanceourselves.com^ -+battlefordsnow.com,cfjctoday.com,everythinggp.com,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca###bumper-cars -+androidsage.com,bigleaguepolitics.com##.code-block-9 -+battlefordsnow.com,cfjctoday.com,everythinggp.com,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca##.pos-top -+||cloudcdn.ml^ -+##.hp-sectionad -+||grahamsbandbox.com^ -+/single-advertisements? -+##.a-d-holder-container -+##.dfpAdspot -+##.frontendAd -+##.page-bottom-fixed-ads -+##a[href^="https://ad.zanox.com/ppc/"] > img -+##a[href^="https://ads.planetwin365affiliate.com/redirect.aspx?"] -+##a[href^="https://cpartner.bdswiss.com/"] -+##a[href^="https://easygamepromo.com/ef/custom_affiliate/"] -+##a[href^="https://pl.premium4kflix.website/"] -+##a[href^="https://www.mrskin.com/account/"] -+##div[class^="s-dfp-"] -+mypatriotsupply.com#@#[href^="https://mypatriotsupply.com/"] > img -+mypatriotsupply.com#@#[href^="https://www.mypatriotsupply.com/"] > img -+||abbols.com^ -+||bestdatingshere.life^ -+||concoursestrickenpuppy.com^ -+||condolencespicturesquetracks.com^ -+||contemplatereunitededgy.com^ -+||protectorincorporatehush.com^ -+||stammerail.com^$popup -+||soap2day.show/ajax/script.php -+||tuberel.com/poppy/ -+bbcamerica.com,ifc.com,sundancetv.com,wetv.com###banner-bottom -+edn.com,planetanalog.com###bannerWrap -+point2homes.com###smartAsset -+canonsupports.com##.box -+nationalheraldindia.com##.styles-m__dfp__3T0-C -+##[href^="https://go.astutelinks.com/"] -+||g.ibtimes.sg/sys/js/minified-video.js -+##[href*="incentrev.com/"] img -+##[href^="https://shiftnetwork.infusionsoft.com/go/"] > img -+##a[href^="https://lead1.pl/"] -+kyivpost.com##.b-title -+gpfans.com##.leaderboardbg -+kyivpost.com##.widget-300-250 -+airplaydirect.com,cultofcalcio.com,dailynews.lk,economicconfidential.com,newzimbabwe.com,opednews.com,roadtester.com.au,runechat.com,tfetimes.com,therainbowtimesmass.com,ugstandard.com##img[height="90"] -+/adrot.$domain=~adrot.hu -+##a[href^="https://www.pornhat.com/"][rel="nofollow"] -+||anxiouslyconsistencytearing.com^ -+||meteorclashbailey.com^ -+searchenginereports.net###bio_ep -+bossip.com##.player-wrapper-inner -+/adscale.$domain=~adscale.com|~adscale.dev|~adscale.io|~adscale.net|~adscale.pl -+###carbon-ads-container-bg -+##.header_ad1 -+##.mo-advert -+##a[href^="http://rs-stripe.wsj.com/stripe/redirect"] -+##a[href^="http://www.friendlyduck.com/AF_"] -+##a[href^="https://go.etoro.com/"] > img -+##a[href^="https://porngames.adult/?SID="] -+##a[href^="https://tracking.comfortclick.eu/"] -+##div[class^="sp-adslot-"] -+##a[href^="https://www.goldenfrog.com/vyprvpn?offer_id="][href*="&aff_id="] -+||kudrunoptime.com^ -+||paucifyunaware.com^ -+||pierremarkeraffliction.com^ -+||stbvip.co^ -+||tarotien.com^ -+||sundayobserver.lk/sites/default/files/pictures/COVID19-Flash-1_0.gif -+mmorpg.com###mmorpg_desktop_list_2 -+arydigital.tv,barakbulletin.com##.bsac -+rabble.ca##.grey-cta-block -+infobel.com##.results-middle-banner-container -+idropnews.com##.side-title-wrap -+vervetimes.com##.uyj-before-header -+repeatreplay.com##.wp-block-spacer -+androidpolice.com,constructionreviewonline.com,cryptobriefing.com,dereeze.com,tyretradenews.co.uk##.ai-track -+##a[href^="https://ausoafab.net/"] -+antimusic.com##.mad -+##a[href^="http://affiliates.pinnaclesports.com/processing/"] -+##a[href^="http://campaign.bharatmatrimony.com/cbstrack/"] -+||explanationsacrifice.com^ -+dallasobserver.com##.AirBillboardInlineContentresponsive -+dallasobserver.com##.kgbqfwag -+##a[href^="https://traffdaq.com/"] -+||judicialleasthandful.com^ -+battlefordsnow.com,cfjctoday.com,everythinggp.com,filmdaily.co,huskiefan.ca,larongenow.com,meadowlakenow.com,nanaimonewsnow.com,northeastnow.com,panow.com,rdnewsnow.com,sasknow.com,vernonmatters.ca##.vc_single_image-wrapper -+##.Ads__wrapper -+##.ads.box -+##.adunit-container-bb -+##.advt-right -+##.dianomi-embed -+##.page-top-ads -+##.wtc-wg-plugilo-iframe-container ++##a[href^="https://galaxyroms.net/?scr="] ++||auditioningborder.com^ ++||b58ncoa1c07f.com^ ++||coltseaman.com^ ++||muddiedbubales.com^ ++||multicoloredsteak.pro^ ++||ougribot.net^ ++||profileknee.com^ ++||milfnut.net/assets/jquery/$script ++friv.com###lba ++friv.com###lbaTop ++independent.co.uk##div[class*="Ad__Wrapper-"] ++||whourgie.com^ +##[class^="amp-ad-"] -+##a[href^="http://look.djfiln.com/"] -+##a[href^="http://webgirlz.online/landing/"] -+##a[href^="http://www.on2url.com/app/adtrack.asp"] -+##a[href^="https://go.cmrdr.com/"] -+##a[href^="https://mediaserver.gvcaffiliates.com/renderBanner.do?"] -+##div[id^="advt-"] -+||3338635.com^ -+||nthaitingsh.buzz^ -+||tp1jcgl644jk.com^ -+||elitepaysites.com/ae-banners/ -+essentialenglish.review##.right-panel -+arynews.tv##.tdi_103 -+cryptopolitan.com##.wordp-siderbar-new-theme -+dailytrust.com##div[class^="header_ad_"] -+||resemblanceilluminatedcigarettes.com^ -+savetiknowm.org##div[style="min-height: 280px;"] -+##a[href^="https://offerforge.net/"] -+redpepper.co.ug,systutorials.com###block-3 -+forexlive.com##.top-forex-brokers__wrapper -+/adshare/*$domain=~adshare.io|~adsharetoolbox.com -+###adsright_header -+##.adunit-container-sitebar-600px -+##.article-sponsorship-header -+##a[href^="http://promos.bwin.com/"] ++||gourdycortes.com^ ++##.cn-advertising ++##[href^="https://www.brighteonstore.com/products/"] img ++##a[href^="https://go.alxbgo.com/"] ++||akdcunfxex.com^ ++||dippingearlier.com^ ++||worldofmods.com/wompush-init.js ++||peskyclarifysuitcases.com^ ++||reportsnail.com^ ++##div[id^="ad-server-"] ++##a[href^="http://partners.etoro.com/"] ++||doxoonas.net^ ++||balneasoucars.website^ ++/api.ads.$domain=~ads.instacart.com ++||runreferences.com^ ++||yasmwesikz.com^ ++/ane-popup-banner/ane-popup-banner.js ++##.VPCarbonAds ++##.onet-ad ++##[href^="https://goldcometals.com/clk.trk"] ++##[href^="https://shiftnetwork.infusionsoft.com/go/"] > img ++##a[href^="http://rs-stripe.wsj.com/stripe/redirect"] ++##a[href^="https://ak.hetaruwg.com/"] ++##a[href^="https://join.sexworld3d.com/track/"] ++##a[href^="https://land.brazzersnetwork.com/landing/"] ++##a[href^="https://queersodadults.com/"] ++##a[href^="https://someperceptionparade.com/"] ++##a[href^="https://tragency-clesburg.icu/"] ++##article.ad ++##div[id^="gtm-ad-"] ++##.jwPlayer--floatingContainer ++##a[href*=".trust.zone"] ++||7fva8algp45k.com^ ++||accustomedinaccessible.com^ ++||adjustbedevilsweep.com^ ++||adoptdischarged.com^ ++||agriculturalproshereby.com^ ++||arkfacialdaybreak.com^ ++||cobwebhauntedallot.com^ ++||colossalrate.com^ ++||customapi.top^ ++||devotedvarnish.com^ ++||engagementpolicelick.com^ ++||eruple.com^ ++||givensidewaysremoved.com^ ++||koilabumpoff.casa^ ++||lbbxuenncq.com^ ++||merterpazar.com^ ++||naazrghwxj.com^ ++||natspiders.com^ ++||nockerlpittite.website^ ++||nsump.com^ ++||oklast.com^ ++||peeredgerman.com^ ++||radarwitch.com^ ++||rebusytoment.com^ ++||refdomain3.xyz^ ++||reswsentativ.xyz^ ++||retauwhu.com^ ++||sofcryingfo.xyz^ ++||stpmgo.com^ ++||tberjonk.com^ ++||thrube.com^ ++||tragedylydia.com^ ++||vemflutuartambem.com^ ++||bipedhematin.website^$popup ++||gwrtheyrn-rot.com^$popup ++@@||player.avplayer.com^$script,domain=explosm.net|justthenews.com ++||anywaypupil.com^ ++||triflinguncertainforensic.com^ ++||tagstorkglory.com^ ++||vjdciu.com^ ++##a[href^="https://go.xlivrdr.com"] ++sonyalpharumors.com###custom_html-25 ++###ax-billboard ++||dismissabuse.com^ ++||passwordslayoutvest.com^ ++##a[href^="https://t.grtyi.com/"] ++||aerugosspritz.com^ ++||bettershitecolumn.com^ ++||monsterofnews.com^ ++||olayomad.com^ ++||simple-isl.com^ ++||skyuglejealous.com^ ++boldsky.com,drivespark.com,filmibeat.com,gizbot.com,goodreturns.in,nativeplanet.com,oneindia.com##.cmscontent-left-article ++##a[href^="http://bodelen.com/"] ++||amountinsulation.com^ ++||shawashygy.com^ ++###header-ads-holder ++##[href^="https://cipledecline.buzz/"] ++##a[href^="https://t.hrtyj.com/"] ++||assistedadultrib.com^ ++||explanationsacrifice.com^ ++||glaxaukr.net^ ++||naambonder.com^ ++||pop.dojo.cc^ ++||resistsarcasm.com^ ++||stretchedcreepy.com^ ++||fla4n6ne7r8ydcohcojnnor.com^$popup ++||loadx.me/show/$popup ++||absolveparticlesanti.com^ ++##.adSlotHeaderContainer ++##a[href^="https://www.healthrangerstore.com/"] > img ++###ax-billboard-sub ++##[href^="http://clicks.totemcash.com/"] ++##a[href^="https://go.cmtaffiliates.com/"] +##a[href^="https://t.hrtye.com/"] -+||sesameasterisk.com^ -+||surnamesubqueryaloft.com^ -+||trkad.network^ ++##div[id^="taboola-stream-"] ++||limorev.com^ ++postnewsgroup.com,thewashingtonstandard.com,vgleaks.com###text-4 ++||markkasgrosses.com^ ++/adlink.$domain=~adlink.com|adlink.guru|~adlinktech.com|~github.com ++||paucifyunaware.com^ ++##.ad-slot-header ++||watwait.com^ +||zybrdr.com^$popup -+bigleaguepolitics.com,ugstandard.com##.code-block-6 -+pornjam.com##.r1ght-pl4yer-43 -+amsterdamnews.com,sundayworld.co.za,universityaffairs.ca##a[href*="/sponsored-content/"] -+searchenginereports.net###bio_ep_bg -+||thenceafeard.com^ -+/prebid_ver.js -+##.adWords-bg -+##.klicked-ads -+##.rw-advert -+gumtree.com#@#.postad -+||b3kyo0de1fr0.com^ -+||sabreurnevome.com^ -+cargurus.co.uk##.leaderboardWrapper -+/adsup.$domain=~adsup.lk -+##a[href^="http://secure.cbdpure.com/aff/"] -+||astcarbinkom.com^ -+||cutegurlz.com/promos-royal-slider/aff/ -+##a[href^="http://hyperlinksecure.com/go/"] -+capsulenz.com,ssbcrack.com##.td_spot_img_all -+##.sponsorship-banner-bottom -+||ixodidsupdives.com^ -+||mellivoracode.com^ -+||posttrendingblog.com^ -+##a[href^="http://www.badoink.com/go.php?"] -+##a[href^="https://awptjmp.com/"] -+||fogvnoq.com^ -+cryptobriefing.com##.na-item.item -+/s.ashx?btag -+###AdServer_Banner_1 -+###AdServer_Banner_2 -+###AdServer_Banner_3 -+###AdServer_Banner_8 -+###adLarge -+###ad_before_header -+###ads728x90top -+###leader-companion > a[href] -+##.BOX_Ad -+##.ad-ban -+##.ad-gap-sm -+##.ad300px -+##.adContainerSide2 -+##.ad_wrapper_300 -+##.ads-instance -+##.adslot970 -+##.advertisement_footer -+##.altad -+##.anyad -+##.arcad-block-container -+##.atf-ad -+##.boxAds2 -+##.bwm_widget_ad_callout -+##.custom-ad-area -+##.dt-sponsor -+##.full-page-ad -+##.goads ++###IC4-ad ++##.ad--in-content +##.googleAdsenseMiddle -+##.home-page-ad -+##.homeTopAdContainer -+##.home_ad_title -+##.its_all_for_ads ++##[href^="https://go.xlrdr.com"] ++##[href^="https://track.fiverr.com/visit/"] > img ++##a[href^="https://click.linksynergy.com/fs-bin/"] ++##a[href^="https://fakelay.com/"] ++##a[href^="https://go.etoro.com/"] > img ++##a[href^="https://mediaserver.gvcaffiliates.com/renderBanner.do?"] ++##a[href^="https://s.zlink2.com/"] ++##a[href^="https://syndication.exoclick.com/"] ++##a[href^="https://traffdaq.com/"] ++##a[href^="https://www.jackery.com?aff="] > img ++||adlogists.com^ ++||armisticedesigning.com^ ++||btpnative.com^ ++||businessessities.com^ ++||coolinghistory.com^ ++||ebonyrecognize.com^ ++||epi0tzwi.com^ ++||granarybroughtfun.com^ ++||harmlesstacticalhonorable.com^ ++||hellocaterersomeone.com^ ++||janitoraccrue.com^ ++||lawful-screw.com^ ++||liveunderestimate.com^ ++||lubbreton.com^ ++||messagereceiver.com^ ++||novelas360.cc^ ++||numeralembody.com^ ++||oclaserver.com^ ++||offsigilyphor.com^ ++||swatad.com^ ++||themeillogical.com^ ++||uymkdz9s.com^ ++||varshacundy.com^ ++||wasquite.buzz^ ++||xuzeez.com^ ++||1free33style.com^$popup ++||predictiondexchange.com^$popup ++||xmlrtb.com^$popup ++||bidder.newspassid.com^ ++titantv.com###GridPlayer ++apkmb.com,wbap.com###media_image-3 ++tennistemple.com##.akcelo-wrapper ++msn.com##[data-test-id="mrr-nativead"] ++@@||imasdk.googleapis.com/js/sdkloader/ima3_debug.js$domain=abcnews.go.com|brightcove.net|insideedition.com|pch.com ++###primis-holder ++||5odjin7ipi.com^ ++||addtakingcontinuous.com^ ++||ahlefind.com^ ++||zmjagawa.com^ ++||auntieimpetus.com^ ++||clothingsphere.com^ ++||goddessclad.com^ ++||habeglee.net^ ++||leechplanes.com^ ++||nougacoush.com^ ++||onautcatholi.xyz^ ++nytimes.com##.e1xxpj0j1.css-4vtjtj ++##[href^="https://www.mypatriotsupply.com/"] > img ++||frothadditions.com^ ++##.--ads ++##.dfp-ad-top-wrapper ++##[href^="https://go.astutelinks.com/"] ++##a[href^="http://www.gfrevenge.com/landing/"] ++##a[href^="https://go.admjmp.com/"] ++##a[href^="https://ptapjmp.com/"] ++||adoopaqueentering.com^ ++||aspape.com^ ++||fregtrsatnt.com^ ++||remedyedmundoccasioned.com^ ++||romancemind.com^ ++||shugraithou.com^ ++||toahooka.com^ ++||weltercampe.com^ ++||adzshield.info^$popup ++||oodrampi.com^$popup ++nytimes.com##.css-142l3g4 ++thesaurus.com##.e1wyd5nb0 ++##a[href^="http://adultgames.xxx/"] ++##a[data-redirect^="http://paid.outbrain.com/network/redir?"] ++||backfireaccording.com^ ++||pics-x.com/api/get_ad/ ++||op01.biz^ ++/adscale.$domain=~adscale.com|~adscale.dev|~adscale.io|~adscale.net|~adscale.pl ++##.page-bottom-fixed-ads ++##a[href^="//pubads.g.doubleclick.net/"] ++##a[href^="https://see.kmisln.com/"] ++||2go7v1nes8.com^ ++||absorbingconstitution.com^ ++||amtropiusr.com^ ++||annoynoveltyeel.com^ ++||armisticeexpress.com^ ++||arrivedeuropean.com^ ++||ascentmatrimonypistol.com^ ++||baledenseabbreviation.com^ ++||blnclqnp.com^ ++||conceptualization-noddies-candlemaker.online^ ++||earlieraccelerateshoplifting.com^ ++||explorecomparison.com^ ++||fictiongroin.com^ ++||incorphishor.com^ ++||legerbbs.com^ ++||preachribbonsummoned.com^ ++||theonlineuserprotection.com/download-guard/$popup,third-party ++bigleaguepolitics.com,ugstandard.com##.code-block-6 ++airplaydirect.com,cultofcalcio.com,dailynews.lk,economicconfidential.com,newzimbabwe.com,opednews.com,roadtester.com.au,runechat.com,tfetimes.com,therainbowtimesmass.com,ugstandard.com##img[height="90"] ++||chooxaur.com^$popup ++||d2k7gvkt8o1fo8.cloudfront.net^ ++##a[href^="http://secure.vivid.com/track/"] ++##a[href^="https://aweptjmp.com/"] ++search.conduit.com#@#.ads_wrapper ++||betalonflamechan.com^ ++||brookbrutallovers.com^ ++||cgeckmydirect.biz^ ++||coldflownews.com^ ++||indefinitelytonsil.com^ ++||scissorstenantplot.com^ ++||teasimilarman.com^ ++||mungfali.com^$popup ++looperman.com###header-top ++boundhub.com##noindex ++||aimpocket.com^ ++##.advertising-wrapper ++##a[href^="https://ausoafab.net/"] ++||adulterygreetimpostor.com^ ++||conumal.com^ ++||illishrastus.com^ ++||ju427bv7an9n.com^ ++||lawhulophe.com^ ++||seekgeographical.com^ ++||tarotien.com^ ++redpepper.co.ug,systutorials.com###block-3 ++geeksforgeeks.org##.textBasedMannualAds_2 ++##.adslot970 +##.js-adzone ++##[href^="http://join.rodneymoore.com/"] ++##a[href^="https://go.hpyrdr.com/"] ++||adherenceenmitycentury.com^ ++||automaticallyindecisionalarm.com^ ++||complainfriendshipperry.com^ ++||existsvolatile.com^ ++||glenprejudice.com^ ++||ixodidsupdives.com^ ++##.clever-core-ads ++##a[href^="//go.xlviiirdr.com"] ++##a[href^="https://join.virtuallust3d.com/"] ++||tahoshehu.com^ ++##.page-top-ads ++||testimonypersuadedclinic.com^ ++||pellodersecalmi.ga^$popup ++cyclinguptodate.com##.video-container ++||disturbedaccruesurfaces.com^ ++.adspace.$domain=~adspace.pro ++/adshare/*$domain=~adshare.io|~adsharetoolbox.com ++/clever_ads.js ++/module-ads-html-$script ++/plugins/meks-easy-ads-widget/* ++/taboola_ads.js ++###Mpu_Top ++###gpt-sticky ++###leaderboard.ad ++###primis-container ++###top-advertising-content ++###wrapper-AD_L ++##.Ad--presenter ++##.ArticleAdSide ++##._ads ++##.ad-hfu ++##.ad-incontent ++##.ad-size-300x600 ++##.ad-slot-inview ++##.ad-slot-rail ++##.ad300px ++##.adInitRemove ++##.adcon ++##.ads-stick-footer ++##.ads-top-home ++##.adver-header ++##.advertising_wrapper ++##.ahe-ad ++##.arcad-block-container ++##.banner-ad-bottom-fixed ++##.box-fixed-ads ++##.c-ad--bigbox ++##.containerads ++##.content_gpt_top_ads ++##.dfp_ad_pos ++##.fixedLeftAd ++##.google-bottom-ads ++##.hero-advert ++##.home-page-ad ++##.inr_top_ads ++##.l-article__ad +##.live-ad +##.main-header__ad-wrapper ++##.min-height-ad +##.module-box-ads ++##.np-header-ads-area +##.o-ads__outer -+##.perm_ad -+##.photo-ad-pad ++##.p-ad-feature-pr ++##.polaris__teads +##.r-pause-ad-container -+##.side__ad -+##.sponsorship-leaderboard -+##.vpnad ++##.sm-advertisement ++##.toolkit-ad-shell ++##.topAdsWrappper ++##.widget_abn_admanager_sidestealer +##[data-d-ad-id] +##[data-m-ad-id] -+##[data-name="adaptiveConstructorAd"] -+##[href="https://masstortfinancing.com"] img ++##[href="https://www.masstortfinancing.com/"] > img +##[href^="http://globsads.com/"] -+##[href^="http://mypillow.com/"] > img -+##[href^="http://www.pingperfect.com/aff.php"] -+##[href^="https://affiliate.fastcomet.com/"] > img ++##[href^="http://go.cm-trk2.com/"] ++##[href^="http://misslinkvocation.com/"] +##[href^="https://antiagingbed.com/discount/"] > img -+##[href^="https://mystore.com/"] > img -+##[href^="https://shrugartisticelder.com"] -+##[href^="https://v.investologic.co.uk/"] ++##[href^="https://go.affiliatexe.com/"] ++##[href^="https://mylead.global/stl/"] > img +##a[href^="//benoopto.com/"] -+##a[href^="//coarsewary.com/"] +##a[href^="//lambingsyddir.com/"] -+##a[href^="http://ad-apac.doubleclick.net/"] -+##a[href^="http://adclick.g.doubleclick.net/"] -+##a[href^="http://adlev.neodatagroup.com/"] -+##a[href^="http://admrotate.iplayer.org/"] -+##a[href^="http://ads.sprintrade.com/"] -+##a[href^="http://adserver.adtech.de/"] +##a[href^="http://affiliates.thrixxx.com/"] -+##a[href^="http://aflrm.com/"] -+##a[href^="http://axdsz.pro/"] +##a[href^="http://bc.vc/?r="] -+##a[href^="http://bcntrack.com/"] -+##a[href^="http://bcp.crwdcntrl.net/"] -+##a[href^="http://c.jumia.io/"] -+##a[href^="http://cdn.adstract.com/"] -+##a[href^="http://click.plista.com/pets"] -+##a[href^="http://espn.zlbu.net/"] -+##a[href^="http://feedads.g.doubleclick.net/"] -+##a[href^="http://ffxitrack.com/"] -+##a[href^="http://freesoftwarelive.com/"] -+##a[href^="http://fusionads.net"] -+##a[href^="http://go.oclaserver.com/"] -+##a[href^="http://goldmoney.com/?gmrefcode="] ++##a[href^="http://go.xtbaffiliates.com/"] +##a[href^="http://googleads.g.doubleclick.net/pcs/click"] -+##a[href^="http://hpn.houzz.com/"] +##a[href^="http://intent.bingads.com/"] -+##a[href^="http://k2s.cc/pr/"] -+##a[href^="http://mob1ledev1ces.com/"] -+##a[href^="http://n.admagnet.net/"] -+##a[href^="http://secure.hostgator.com/~affiliat/"] -+##a[href^="http://serve.williamhill.com/promoRedirect?"] -+##a[href^="http://syndication.exoclick.com/"] -+##a[href^="http://t.wowtrk.com/"] -+##a[href^="http://wgpartner.com/"] -+##a[href^="http://www.TwinPlan.com/AF_"] ++##a[href^="http://trk.mdrtrck.com/"] +##a[href^="http://www.adultdvdempire.com/?partner_id="][href*="&utm_"] -+##a[href^="http://www.adxpansion.com"] -+##a[href^="http://www.afgr2.com/"] -+##a[href^="http://www.amazon.co.uk/exec/obidos/external-search?"] -+##a[href^="http://www.down1oads.com/"] -+##a[href^="http://www.firstclass-download.com/"] -+##a[href^="http://www.firstload.com/affiliate/"] -+##a[href^="http://www.firstload.de/affiliate/"] -+##a[href^="http://www.fpcTraffic2.com/blind/in.cgi?"] -+##a[href^="http://www.linkbucks.com/referral/"] -+##a[href^="http://www.liutilities.com/"] -+##a[href^="http://www.pinkvisualgames.com/?revid="] -+##a[href^="http://www.plus500.com/?id="] -+##a[href^="http://www.ragazzeinvendita.com/?rcid="] -+##a[href^="http://www.roboform.com/php/land.php"] -+##a[href^="http://www.seekbang.com/cs/"] -+##a[href^="http://www.sfippa.com/"] -+##a[href^="http://www.socialsex.com/"] -+##a[href^="http://www.terraclicks.com/"] -+##a[href^="http://www.text-link-ads.com/"] -+##a[href^="http://yads.zedo.com/"] ++##a[href^="http://www.adultempire.com/unlimited/promo?"][href*="&partner_id="] ++##a[href^="https://1free33style.com/"] +##a[href^="https://a.bestcontentfood.top/"] ++##a[href^="https://a2.adform.net/"] ++##a[href^="https://ad.zanox.com/ppc/"] > img ++##a[href^="https://ads.planetwin365affiliate.com/redirect.aspx?"] +##a[href^="https://adswick.com/"] -+##a[href^="https://aff-ads.stickywilds.com/"] +##a[href^="https://agacelebir.com/"] -+##a[href^="https://bestcond1tions.com/"] -+##a[href^="https://click.plista.com/pets"] -+##a[href^="https://content.oneindia.com/www/delivery/"] -+##a[href^="https://creacdn.top-convert.com/"] -+##a[href^="https://dediseedbox.com/clients/aff.php?"] ++##a[href^="https://awptjmp.com/"] ++##a[href^="https://cpartner.bdswiss.com/"] ++##a[href^="https://dooloust.net/"] +##a[href^="https://earandmarketing.com/"] +##a[href^="https://fast-redirecting.com/"] -+##a[href^="https://freeadult.games/"] -+##a[href^="https://giftsale.co.uk/?utm_"] -+##a[href^="https://go.onclasrv.com/"] ++##a[href^="https://geniusdexchange.com/"] ++##a[href^="https://go.cmrdr.com/"] ++##a[href^="https://go.julrdr.com/"] +##a[href^="https://go.zybrdr.com"] +##a[href^="https://gohere.pl/"] +##a[href^="https://iac.ampxdirect.com/"] -+##a[href^="https://intenseaffiliates.com/redirect/"] -+##a[href^="https://jmp.awempire.com/"] -+##a[href^="https://land.rk.com/landing/"] ++##a[href^="https://landing.brazzersplus.com/"] ++##a[href^="https://lead1.pl/"] ++##a[href^="https://lobimax.com/"] ++##a[href^="https://loboclick.com"] ++##a[href^="https://look.utndln.com/"] ++##a[href^="https://medleyads.com/"] +##a[href^="https://my-movie.club/"] -+##a[href^="https://secure.bstlnk.com/"] -+##a[href^="https://secure.cbdpure.com/aff/"] ++##a[href^="https://offers.refchamp.com/"] ++##a[href^="https://porngames.adult/?SID="] ++##a[href^="https://taghaugh.com/"] ++##a[href^="https://thaudray.com/"] +##a[href^="https://track.healthtrader.com/"] +##a[href^="https://track.interactivegf.com/"] +##a[href^="https://track.totalav.com/"] -+##a[href^="https://track.trkinator.com/"] ++##a[href^="https://tracking.comfortclick.eu/"] +##a[href^="https://tracking.gitads.io/"] +##a[href^="https://trk.moviesflix4k.xyz/"] -+##a[href^="https://vlnk.me/"] -+##a[href^="https://windscribe.com/promo/"] -+##a[href^="https://www.chngtrack.com/"] -+##a[href^="https://www.firstload.com/affiliate/"] -+##a[href^="https://www.g4mz.com/"] -+##a[href^="https://www.mypornstarcams.com/landing/click/"] ++##a[href^="https://waisheph.com/"] ++##a[href^="https://www.highperformancegate.com/"] ++##a[href^="https://www.kingsoffetish.com/tour?partner_id="] ++##a[href^="https://www.mrskin.com/account/"] +##a[href^="https://www.nudeidols.com/cams/"] +##a[href^="https://www.oneclickroot.com/?tap_a="] > img -+##a[href^="https://www.share-online.biz/affiliate/"] -+##a[href^="https://www.spyoff.com/"] -+##div[class^="Directory__footerAds"] -+##div[class^="awpcp-random-ads"] -+##div[class^="pane-adsense-managed-"] -+##div[id^="ad-cid-"] ++##a[href^="https://www.sugarinstant.com/?partner_id="] ++##div[class^="s-dfp-"] +##div[id^="ad-inserter-"] +##div[id^="lazyad-"] -+##div[id^="proadszone-"] -+##iframe[src^="http://ad.yieldmanager.com/"] -+##iframe[src^="http://www.adpeepshosted.com/adpeeps.php?"] ++##.gnt_flp ++###jwplayer-container-div ++###primis_intext +##.primis-player__container +##a[href^="https://track.ultravpn.com/"] -+##[href^="https://bulletprofitsmartlink.com/"] -+##[id*="MGWrap"] -+##[onclick*="content.ad/"] -+##a[data-oburl^="https://paid.outbrain.com/network/redir?"] -+##a[data-url^="http://paid.outbrain.com/network/redir?"] + .author -+##a[href^="http://paid.outbrain.com/network/redir?"] -+||12805b86d6.com^ -+||258c7c3d75.com^ -+||3711c45955.com^ -+||69ed4fcc9d.com^ -+||79cedd0043.com^ -+||84d5acbe01.com^ -+||abnegationbanquet.com^ ++##a[href^="https://www.goldenfrog.com/vyprvpn?offer_id="][href*="&aff_id="] ++##a[href^="https://www.purevpn.com/"][href*="&utm_source=aff-"] ++##div[id*="MarketGid"] ++##.container-content__container-relatedlinks ++###taboola-below-article-thumbnails-v2 ++##.taboola_container ++dbook.docomo.ne.jp,dmagazine.docomo.ne.jp#@#.ad-button ++dbook.docomo.ne.jp,dmagazine.docomo.ne.jp#@#.ad-cover ++||0pyn37dv3m.com^ ++||1free33style.com^ ++||34pavouhj7.com^ ++||421npyd4nd.com^ ++||47e0aaed8a.com^ ++||590578zugbr8.com^ ++||5umpz4evlgkm.com^ ++||76a7doiet256.com^ ++||abandonrecommendationwars.com^ ++||abattoirpleatsprinkle.com^ ++||abbronzongor.com^ ++||abdurantom.com^ ++||abruptlyinstitution.com^ ++||accessiblescopevisitor.com^ ++||accompanycollapse.com^ +||accusationcollegeload.com^ ++||acheworry.com^ ++||ad2up.com^ ++||addinginstancesroadmap.com^ ++||additionindianscontentment.com^ ++||adjointeen.com^ +||adsandcomputer.com^ -+||adshoper.com^ -+||agazis.com^ -+||agregadorcode.com^ -+||agrigh.com^ -+||aj2430.online^ -+||argondenial.com^ -+||bbcrgate.com^ -+||bkfupfeyv.com^ -+||blinnowther.com^ -+||bluespeltast.com^ -+||bmhciohwvwgsi.com^ -+||bonus-point1.life^ -+||buffersthyrold.com^ -+||cabbagehomme.casa^ -+||cabbingpolynya.cam^ -+||casinal.com^ -+||cexucetum.com^ -+||chicks4date.com^ -+||coneenpien.com^ -+||crexojhuhtqoh.com^ -+||curatcullion.com^ -+||curdlesgazump.com^ ++||adultsjuniorfling.com^ ++||advantagespire.com^ ++||affairscollar.com^ ++||afterwardstationquestions.com^ ++||agamantykeon.com^ ++||ageore.com^ ++||agrarianbeepsensitivity.com^ ++||aidspectacle.com^ ++||aircraftairliner.com^ ++||ajestigie.com^ ++||ajeyaxdcvogcx.com^ ++||allureencourage.com^ ++||almostspend.com^ ++||alpsvaivode.com^ ++||alrightconsulatevarying.com^ ++||amazinelistrun.xyz^ ++||ambassadorpotentsummer.com^ ++||amountdonutproxy.com^ ++||amusemystic.com^ ++||anapirate.com^ ++||anddecoyblizzard.com^ ++||annotationwednesdayplayground.com^ ++||anytimeoutstandingcharges.com^ ++||apologiesbackyardbayonet.com^ ++||approachingrat.com^ ++||appropriateloathefewer.com^ ++||aprilineffective.com^ ++||arousedimitateplane.com^ ++||artistperhapscomfort.com^ ++||ascensionrookieweapon.com^ ++||assertedclosureseaman.com^ ++||assignconsented.com^ ++||assuranceapprobationblackbird.com^ ++||assurancelocusmat.com^ ++||astonebehap.com^ ++||atombearable.com^ ++||attemptdruggedcarve.com^ ++||auspiceunworthy.com^ ++||autand.com^ ++||awaitbackseatprod.com^ ++||b42rracj.com^ ++||backseatabundantpickpocket.com^ ++||badlymaggot.com^ ++||baptun.com^ ++||basepush.com^ ++||basiun.com^ ++||batespecializecoal.com^ ++||benumelan.com^ ++||blockedadulatoryhotel.com^ ++||bludwan.com^ ++||bonfiresaltymilk.com^ ++||bonnetiere-infrangible-burthening.xyz^ ++||buoyant-force.pro^ ++||burdiesfogyish.com^ ++||capricetheme.com^ ++||catastropheillusive.com^ ++||cesurasfratchy.com^ ++||chekajie.com^ ++||cictivesmuha.xyz^ ++||ciqguphollyj.com^ ++||cladupius.com^ ++||clickadu.com^ ++||clogsspiered.com^ ++||cludic.com^ ++||cluttercallousstopped.com^ ++||collectionspriestcardiac.com^ ++||coluim.com^ ++||comparativevegetables.com^ ++||consequencesgiddyditch.com^ ++||cowerarmament.com^ ++||crdefault.link^ ++||crdefault1.com^ ++||cribut.com^ +||cyclismpeddled.cam^ -+||dasperdolus.com^ -+||dbf1405f9c.com^ -+||ddnmzrpp.com^ -+||defeak.com^ -+||dev0.buzz^ -+||dlrcoalbin.com^ -+||dosawhatkin.com^ -+||dwirow.com^ -+||eignal.com^ -+||eisual.com^ -+||ejghgjhhgadcdchjaada.ru.^ ++||ddigujslwjmyk.com^ ++||delempanyi.one^ ++||diapertypesdeference.com^ ++||dified.com^ ++||distinct-bicycle.com^ ++||doflygonan.com^ ++||drauntilperin.xyz^ ++||driverpartially.com^ ++||earlos.com^ +||ekhqoitttw.com^ -+||ettlingnidana.com^ ++||entativesath.one^ ++||envyblundercollide.com^ ++||epushclick.com^ ++||esteemtalented.com^ ++||eventuallybraid.com^ +||eyfvklgx.com^ -+||fertilrouts.com^ ++||ezjhhapcoe.com^ ++||fadsimz.com^ ++||fatalityplatinumthing.com^ ++||faxqaaawyb.com^ ++||feelsjet.com^ ++||ferritediener.tech^ ++||feyl4mh5to.com^ ++||finnan2you.com^ ++||forcelessgreetingbust.com^ ++||forgivenesspeltanalyse.com^ ++||frugalrushcap.com^ ++||gashewasf.xyz^ ++||gfsdloocn.com^ +||gimypibo.pro^ -+||girise.com^ -+||girls2date.club^ +||gosweethomes.com^ +||gracaiko.net^ ++||grehtrsan.com^ ++||grounded-card.pro^ ++||guisis.com^ ++||gurimix.com^ +||gwrtheyrn-rot.com^ -+||hauntcontribution.com^ -+||hkmurfdpe.top^ -+||hymenalwiring.com^ -+||iamcurrently.lol^ -+||ipiesrveoocelb.com^ -+||irinto.com^ -+||jaleepsorous.website^ -+||kuntic.com^ -+||larverewish.com^ -+||legehtxfwcg.com^ -+||leotumal.com^ -+||loftiernucule.com^ -+||maghma.com^ ++||haviol.com^ ++||heisalw.xyz^ ++||hjxajf.com^ ++||hoo1luha.com^ ++||hosieryplum.com^ ++||housekeeperemptiness.com^ ++||hqpuoxdtbqpdygf.com^ ++||hypota.com^ ++||i010b048d3e4a1e4b70aba72b169e70c90971f9.xyz^ ++||i7ece0xrg4nx.com^ ++||iicsxxkdcy.com^ ++||illegimateillegimatetolerablepushy.com^ ++||inbdmaza.com^ ++||incomethoroughabjure.com^ ++||infectedably.com^ ++||infectsrerun.com^ ++||informflaskfiction.com^ ++||insurancedeletemillion.com^ ++||invadedwherevoluntary.com^ ++||irresponsibilityadvertiseanthony.com^ ++||isreas.com^ ++||j6mn99mr0m2n.com^ ++||jestinvaderspeedometer.com^ ++||jsdelvr.com^ ++||junkeach.com^ ++||juqpsioodpnecqp.com^ ++||justpremium.com^ ++||kneltmayhem.com^ ++||kolanx.com^ ++||krence.com^ ++||landscapedeputyirreparable.com^ ++||larsenik.com^ ++||lassue.com^ ++||leetaipt.net^ ++||leigunfax.com^ ++||logoscollection.com^ ++||loverevenue.com^ ++||lowdodrioon.com^ ++||mammalbuy.com^ ++||mbhvyihyaayh.com^ +||miraclenecklace.com^ -+||mworkh.buzz^ ++||moderg.com^ ++||mulesto.com^ ++||mungfali.com^ ++||muzarabeponym.website^ ++||myfrank.xyz^ ++||mygtmn.com^ +||mythincredibly.com^ -+||narsap.com^ -+||ncernedas.one^ -+||newburgtourism.com^ -+||neyhdjwpumivpa.com^ ++||ndjelsefd.com^ ++||newir3ltyug79aiman.com^ ++||nihxigmalrkfov.com^ ++||nobiol.com^ ++||normanstaximan.com^ ++||oadroass.com^ ++||oaksafta.com^ ++||obedientrock.com^ +||octrue.com^ -+||op01.biz^ -+||orchidreducedbleak.com^ -+||perceptunarms.com^ -+||prelendrb.bid^ -+||qndvbgqc.com^ -+||radull.com^ -+||raungecomtian.com^ ++||omnan.com^ ++||oolraimt.net^ ++||otbuzvqq8fm5.com^ ++||ovemer.com^ ++||padsdel.com^ ++||padstm.com^ ++||padull.com^ ++||painsdire.com^ ++||palama2.com^ ++||peciet.com^ ++||phiduvuka.pro^ ++||pigath.com^ ++||pilpulbagmen.com^ ++||plainmarshyaltered.com^ ++||postponeacademic.com^ ++||pouneeso.com^ ++||preeditpastes.website^ ++||preventionbitten.com^ ++||propellerads.com^ ++||ptcovqkjo.com^ ++||puntershorahs.com^ ++||pvykihatcb.com^ ++||rathergist.com^ ++||reallyteenageotter.com^ +||receme.com^ -+||renderscreech.com^ -+||ruliam.com^ -+||rundse.com^ ++||reinstandpointdumbest.com^ ++||ridexasperateunstable.com^ ++||rsationhesaid.xyz^ ++||rtbstream.com^ ++||rugiomyh2vmr.com^ ++||rumoredhispa.com^ +||rvcrfvighmoaksn.com^ -+||satyrkendir.com^ ++||ryange.com^ +||sbuxjhuwsthcyit.com^ -+||seminartacticshiking.com^ -+||seraialumins.com^ -+||singerrespectfuljerk.com^ -+||smaleo.com^ -+||smises.com^ -+||snailteasesimulator.com^ -+||solemnherald.com^ -+||specifiedinspector.com^ -+||sshsnahw.com^ -+||stemgthrop.one^ -+||stoshewyho.pro^ -+||suitcasesimbue.com^ -+||supplerneedled.com^ -+||survrhostngs.xyz^ -+||sutiletoroid.com^ ++||scouredpalulus.com^ ++||sdasasyydd.com^ ++||shelvesdeserve.com^ ++||shelvesendorsebloom.com^ ++||shredsorators.com^ ++||slahpxqb6wto.com^ ++||slavre.com^ ++||sliddeceived.com^ ++||snappy-examination.pro^ ++||sootproclaim.com^ ++||sophomoreclassicoriginally.com^ ++||spider.ad^ ++||ssiapawz.com^ ++||st-rdirect.com^ ++||stabilityvatinventory.com^ ++||stationeryshapeless.com^ ++||stempelcosier.com^ ++||stinkyloadeddoctor.com^ ++||strigh.com^ ++||sunsetpersuadeaffectionately.com^ ++||syllin.com^ +||syqoqjibiagvo.com^ -+||teicdn.com^ -+||tnlvnnvlsrabywk.com^ -+||troild.com^ -+||typicc.com^ -+||uapekkgmhjxponr.com^ -+||ukhongswrd.com^ -+||undard.com^ ++||thongrooklikelihood.com^ ++||thuary.com^ ++||tikbblove.com^ ++||top-offers1.com^ ++||trehtnoas.com^ ++||tuyves.com^ ++||twirehillers.com^ ++||ukentaspects.autos^ +||unhelerrevoke.website^ -+||valetisolate.com^ -+||vjdciu.com^ ++||upshroomishtor.com^ ++||v4yleins27hv.com^ ++||vastatecuissen.com^ ++||vendimob.pl^ ++||vexacion.com^ ++||vg4u8rvq65t6.com^ ++||videosprofit.com^ ++||visaexasperation.com^ ++||vqpcgkqriftt.com^ +||vsttyxsthsvhp.com^ -+||watwait.com^ -+||weeplypriapic.website^ -+||whalso.com^ -+||whmwdjecmgnt.com^ -+||woodlandsintervention.com^ -+||worthlessscowledexactly.com^ -+||xfrena.com^ -+||yemecotum.com^ -+||yrqr-ping.com^ -+||yugout.com^ -+||yycvaemnomsjie.xyz^ -+||zdsfnagupwkztl.com^ -+||znqip.org^ ++||wastedclassmatemay.com^ ++||weemauge.com^ ++||wittilyfrogleg.com^ ++||worthless-living.pro^ ++||ycadenevery.xyz^ ++||ydkxhcetv.com^ ++||yumkelis.com^ ++||zeecoomi.net^ +||zumolery.xyz^ -+||germaniavid.com^$third-party -+||mcqmall.com^$third-party -+||simpletraffic.co^$third-party -+||chicks4date.com^$popup -+||chrantary-vocking.com^$popup -+||curbimpress.com^$popup ++||wsec.multiscreensite.com^$third-party ++||4eb28685b6.com^$popup ++||awasrqp.xyz^$popup ++||crdefault.link^$popup ++||crdefault1.com^$popup ++||exerciseundergone.com^$popup +||fittingcentermondaysunday.com^$popup -+||initiatecompletelysophisticatedthefile.vip^$popup -+||losingfoundation.com^$popup -+||myjollyrudder.com^$popup -+||omgpm.com^$popup -+||online-user-protector.com^$popup ++||grumblecrytopless.com^$popup ++||inediblepollingbuzz.com^$popup ++||lassampy.com^$popup ++||looew.club^$popup ++||loverevenue.com^$popup ++||maw5r7y9s9helley.com^$popup ++||mcmo22.com^$popup ++||merterpazar.com^$popup ++||outgoingfan.pro^$popup ++||padp5arja8dgsd9cha.com^$popup ++||perryvolleyball.com^$popup +||peskyclarifysuitcases.com^$popup -+||restorationbowelsunflower.com^$popup ++||postponeacademic.com^$popup ++||ptistyvymi.com^$popup +||simple-isl.com^$popup -+||smartmnews.pro^$popup -+||trustedzone.info^$popup -+||unbeedrillom.com^$popup -+||vkcdnservice.com^$popup -+||xijgedjgg5f55.com^$popup -+||zendplace.pro^$popup -+||znqip.org^$popup -+||saveit.us/img/$third-party -+||shopmyshelf.us^$third-party ++||sobakenchmaphk.com^$popup ++||sympathetic-angle.com^$popup ++||vfgtg.com^$popup ++||watch-now.club^$popup ++||yahuu.org^$popup ++||yourmetshop.com^$popup ++||sobakenchmaphk.com^$popup ++||parking.godaddy.com^$third-party +||windows.net/banners/$domain=hortidaily.com ++||d2mqdhonc9glku.cloudfront.net^ ++||d2zbpgxs57sg1k.cloudfront.net^ +||d3584kspbipfh3.cloudfront.net/cm/ -+||d8cxnvx3e75nn.cloudfront.net^ ++||djvby0s5wa7p7.cloudfront.net^ +||lp1s.cyber-guard.me^$popup,third-party -+||teenfinder.com/landing/$popup,third-party -+||tracking.keyxel.com^$popup,third-party -+||brighteon.tv/Assets/ARF/ -+||draftkings.bbgi.com^$subdocument -+||isohunt.app/a/b.js -+||streamoupload.*/api/spots/$script -+||yabeat.org/*?meteor_js_$script -+||link.advancedsystemrepairpro.com^$popup -+||mercurybest.com^$popup,domain=hltv.org -+||gayfor.us/front.js -+||home-xxx-videos.com/snowy- -+||javsubtitle.co/sponsor/ -+||mature-chicks.com/sparkling- -+||pics-x.com/api/get_ad/ -+||rat.xxx/retr/ -+||rat.xxx/ssk/ -+||xxxxsx.com/sw.js -+fortune.com###Homepage-InStream0 -+fortune.com###Homepage-InStream1 -+fortune.com###Homepage-InStream2 -+fortune.com###Homepage-InStream3 -+nutritioninsight.com,packaginginsights.com###horizontalblk -+myjoyonline.com###in-article -+booklife.com,yabeat.org###interstitial -+ugstandard.com###leader-wrap -+assamtribune.com###left_level_before_tags ++||hortidaily.com/b/ ++||pururin.to/assets/js/pop.js ++geeksforgeeks.org###GFG_AD_Desktop_BTF_Postcontent_728x280 ++geeksforgeeks.org###GFG_AD_Desktop_MTF_Postcontent_728x90 ++geeksforgeeks.org###GFG_AD_Desktop_PostContent_300x250 ++dexerto.com###\#primisplayer ++livescore.com###ad-holder-gad-news-article-item ++reverso.net###bottom-mega-rca-box ++icon-icons.com###bsa-placeholder-search ++kbb.com###contentFor_kbbAdsSimplifiedNativeAd ++eetimes.eu,miloserdov.org###custom_html-16 ++icon-icons.com###istockphoto-placeholder +fileproinfo.com###myNav -+faucetpay.nurul-huda.or.id###satoshi1 -+faucetpay.nurul-huda.or.id###satoshi2 ++politico.com###pol-01-wrap +standard.co.uk###stickyFooterRoot +gumtree.com###tBanner -+johnogroat-journal.co.uk,stamfordmercury.co.uk##.MPU -+web-dev-qa-db-fra.com##.adn-ar -+web3wire.news##.banner-one -+nilechronicles.com##.bn-lg-sidebar -+functions-online.com##.box_wide ++sciencealert.com##.Purch_Y_C_0_1-container ++behance.net##.StockRail-rail-oox ++gadgets.ndtv.com,gadgets360.com##._ad ++sciencealert.com##.ad-desktop\:block ++letras.com##.an-pub ++icon-icons.com##.apu ++nypost.com##.billboard-overlay +retailgazette.co.uk##.boxzilla-overlay -+businessplus.ie##.bp_billboard_single -+thehustle.co##.c-layout--trends -+news24online.com##.clearfix.db_shw_mb_blk -+faucetpay.nurul-huda.or.id##.col-sm-3 -+conservativeplaylist.com##.conse-d -+conservativeplaylist.com##.conse-e -+conservativeplaylist.com##.conse-f -+nytimes.com##.css-bs95eu -+lifewire.com##.daily-deal ++youloveit.com##.btop +distractify.com,radaronline.com##.dhvATd +apkcombo.com##.diseanmevrtt -+thesaurus.com##.e1wyd5nb0 -+thepostemail.com##.external -+theblock.co##.fixedUnit -+fool.ca##.fool-ecap -+cnx-software.com##.gross -+cannabishealthnews.co.uk##.mvp-side-widget img -+hoteldesigns.net##.n2-ss-slider -+helpnetsecurity.com##.not-empty -+kueez.com,trendexposed.com##.nya-slot -+practicalecommerce.com##.partners-sidebar -+runningmagazine.ca##.repeater-bottom-leaderboard -+seattlepride.org##.section_sponsorship -+bscscan.com##.showcase-banner-spacing -+repeatreplay.com##.sidebar-primary -+cultofmac.com##.sponsored_paragraph -+businessday.ng##.vc_custom_1627979893469 -+wikikeep.com##.widget-area -+cryptopolitan.com##.wordp-leaderboard -+bellinghamherald.com##.zone-el ++thepiratebay3.to##.download_buutoon ++shtfplan.com,yournews.com##.et_pb_code_inner ++gifcompressor.com,heic2jpg.com,jpg2png.com,png2jpg.com,webptojpeg.com,wordtojpeg.com##.ha ++gifcompressor.com,heic2jpg.com,jpg2png.com,png2jpg.com,webptojpeg.com,wordtojpeg.com##.header__right ++garticphone.com##.jsx-2397783008 ++eetimes.eu,powerelectronicsnews.com##.masthead-banner ++urbandictionary.com##.mb-4.justify-center ++2ip.me##.menu_banner ++pcgamesn.com##.nn_mobile_mpu_wrapper ++kueez.com,trendexposed.com,wackojacko.com##.nya-slot ++business2community.com##.sticky-header +usnews.com##[class*="ad-spacer"] -+faucetpay.nurul-huda.or.id##[href] > .col-sm-4 -+cannabishealthnews.co.uk##[href^="https://themedicalcannabisclinics.com/"] -+apkcombo.com##[onclick*="_blank"] -+academictorrents.com##[src^="/pic/sponsors/"] -+101thefox.net,957thevibe.com##a[href^="https://parisicoffee.com/"] ++economist.com##[class^="adComponent"] ++kbb.com##[data-lean-auto="flexible-native-2"] ++naturalnews.com##[href^="https://www.naturalnews.com/ARF/"] ++academicful.com,forum.mobilism.org##[rel="sponsored"] ++1337x.to##a[href="/anoydl9-VpnHideMe"] +nosubjectlosangeles.com,richardvigilantebooks.com##a[href^="https://rebrand.ly/"] ++1337x.to##a[id][href^="/anoyd"] +opensubtitles.org##a[target="_blank"][href^="https://www.amazon.com/gp/search"] -+conservativeplaylist.com##center > [href] -+constructionreviewonline.com##div[id^="const-"] -+lagniappemobile.com##div[id^="lagni-"] -+lasentinel.net##div[style^="min-height: 250px; width: 300px;"] -+duplichecker.com##img[src*="data:image"] -+ibtimes.sg##.featured_video -+bleachernation.com#?#.code-block:-abp-has(span:-abp-contains(ADVERTISEMENT)) -+digg.com#?#.tracking-widest:-abp-contains(Sponsored) -+albertsons.com#?#product-item-v2[class$="product-card-col"]:-abp-has(div[data-qa="prd-itm-spnsrd"]) -+winaero.com#?#p:-abp-contains(Advertisement) -+hentaifox.com###slider -+barscaffolding.co.uk,capitalregionusa.xyz,dcraddock.uk##.boxzilla-overlay -+xnxxvideos.rest##.camitems -+xnxxvideos.rest##.mult -+xnxxvideos.rest##.prefixat-player-promo-col -+pornjam.com##.productora -+xnxxvideos.rest##.refr -+teenpornvideo.fun##.sponsor-link-desk -+teenpornvideo.fun##.sponsor-link-mob -+brazz-girls.com##[href^="/Site/Brazzers/"] -+hentai-gamer.com##[src^="https://www.hentai-gamer.com/pics/"] -+@@||web.basemark.com^$generichide -+/adcreative/*$~image,domain=~adcreative.nl ++baking-forums.com,windows10forums.com##div.message--post.message ++wsj.com##div[class*="WSJTheme--adWrapper"] ++ntdeals.net,psdeals.net,xbdeals.net##div[class^="ads-"] ++releasestv.com##div[class^="astra-advanced-hook-"] ++tweaktown.com##.adcon ++apkmirror.com##.ains-apkm_outbrain_ad ++msn.com##.galleryPage_eoabNativeAd-DS-EntryPoint1-1 ++barscaffolding.co.uk,capitalregionusa.xyz,dcraddock.uk,javbebe.com,javxxoo.com,xxx-picture.com##.boxzilla-overlay ++cliniqueregain.com##.footer-promo ++cliniqueregain.com,tallermaintenancar.com##.girl ++amateur-vids.eu,camgirl-video.com,gigapornmovies.com,mature.community,mature.mom,mature.sexy,mature.studio,milf.community,milf.mom,milf.plus,milf.sexy##.happy-under-player ++cliniqueregain.com,tallermaintenancar.com##.thumbs ++pornhub.com,redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com##[href*="data:"] ++xpassd.co##aside[id^="tn_ads_widget-"] ++@@||adserver.skiresort-service.com/www/delivery/spcjs.php?$script,domain=skiresort.de|skiresort.fr|skiresort.info|skiresort.it|skiresort.nl ++@@||sourcegraph.com^$generichide ++@@||ascii.jp/img/ad/$image,~third-party ++@@||pubads.g.doubleclick.net/gampad/$image,domain=topper.com.br ++@@||rakuten-bank.co.jp/rb/ams/img/ad/$~third-party ++.club/js/popunder.js ++/adframes/*$~image ++/ads-templateslist. +/adshare.$domain=~adshare.io|~adshare.tv|~echosign.com -+/get-ads-by-zones/* -+/stn-player/* -+###AdServer_Banner_4 -+###AdServer_Banner_5 -+###AdServer_Banner_6 -+###AdServer_Banner_7 -+###AdServer_Banner_9 -+###AdsPubperform -+###AdsSky -+###StickyBannerAd -+###ad-site-header -+###ad3734 -+###adSpaceHeight -+###advert-banner2 -+###advert-fireplace ++/adsign.$domain=~adsign-admin.apps.asu.edu|~adsign.com.au|~adsign.no|~adsign.slack.com ++/asrv/campaign/* ++/dfp_async. ++/dfpNew. ++/js/prebid-video. ++/livejasminpopupunder. ++/pup-a9-header-bidder/* ++/sponsors/popunder. ++/wp-content/plugins/wp-ad-guru/* ++/zcvisitor/*$popup ++/zp-redirect?$popup ++###IB-ads ++###IFrameAd ++###IFrameAd1 ++###Mpu_Bottom ++###ad-bottom-fixed ++###ad-box-left ++###ad-container-top-placeholder ++###adHome ++###ad_article1_1 ++###ad_article1_2 ++###ad_article2_1 ++###ad_article2_2 ++###ad_article3_1 ++###ad_article3_2 ++###ad_interthread ++###adbox--hot_news_ad ++###adbox--page_bottom_ad ++###adbox--page_top_ad ++###ads_0_container ++###ads_in_modal ++###adsense-post-300x250 ++###adsense-slot-1 ++###adslot-side-mrec ++###advertisement-placement +###aside-ad-container -+###billboard-ad ++###ax-billboard-bottom ++###ax-billboard-top ++###block-articlebelowtextad ++###block-articlefrontpagead ++###block-articletopadvert ++###block-frontpageabovepartnersad ++###block-frontpagead ++###block-frontpagesideadvert1 +###bottom-ad-area -+###bww-advertising-popup-overlay -+###dfp-ap-2016-interstitial -+###interstitial-shade -+###large-bottom-leaderboard-ad -+###large-leaderboard-ad -+###large-middle-leaderboard-ad -+###leaderboard.ad ++###carbonadcontainer ++###darazAd ++###dfp-article-related0-mpu ++###dfp-atf-desktop ++###dfp-btf-desktop ++###dfp-mtf-desktop ++###div-footer-ad ++###div-leader-ad ++###ezmobfooter ++###gam-ad-ban1 ++###google_ad_1 ++###google_ad_2 ++###google_ad_3 ++###gpt-ad-banner ++###gpt-ad-side-bottom ++###h-ad ++###header-banner-ad-wrapper ++###home_ad_b_1 ++###module-ads-01 ++###module-ads-02 ++###mpuAdvertDesk3 ++###pencil-alt-banner-ad-wrapper ++###related-news-1-top-ad +###river_sponsors_hiring ++###singleads ++###staticad +###tmInfiniteAd ++###videoOverAd300 ++###viewabilityAdContainer ++###wrapper-AD_L2 ++###wrapper-AD_L3 +###zsAdvertisingBanner -+##.--ads -+##.-advertsSidebar -+##.AdsSections -+##.BOX_LeadAd ++##.ADVBig ++##.ADVFLEX_250 ++##.AdSpeedWP ++##.AdvtSample ++##.Billboard-ad ++##.LearderAd_Border ++##.ListicleAdRow +##.PrimisResponsiveStyle ++##.acm-ad-container +##.acm-ad-tag-unit -+##.ad-alignment -+##.ad-container--masthead -+##.ad-container--mrec -+##.ad-incontent -+##.ad-mr-article -+##.ad-widget-box -+##.ad-widget-sizes ++##.ad--droite_middle ++##.ad--outstream ++##.ad-1-drzac-links ++##.ad-1-sidebar-1 ++##.ad-1-sidebar-2 ++##.ad-background-center ++##.ad-banner-header ++##.ad-banner-single ++##.ad-banner-static ++##.ad-filmstrip ++##.ad-float ++##.ad-floating ++##.ad-header-small-square ++##.ad-holder-center ++##.ad-inner-container-background ++##.ad-leader-board ++##.ad-link-block ++##.ad-mod-section ++##.ad-mod-section-728-90 ++##.ad-page-setting ++##.ad-parent-class ++##.ad-placeholder--mpu ++##.ad-placeholder__inner ++##.ad-pos-0 ++##.ad-pos-1 ++##.ad-pos-2 ++##.ad-pos-3 ++##.ad-pos-4 ++##.ad-pos-5 ++##.ad-pos-6 ++##.ad-row-box ++##.ad-sidebar-mrec ++##.ad-square-placeholder ++##.ad-superbanner-node ++##.ad-t-text ++##.ad-text-centered ++##.ad-top-featured ++##.ad-units-single-header-wrapper ++##.ad-wrapp ++##.ad-wrapper--lg ++##.ad-wrapper--sidebar +##.ad-wrapper-250 ++##.ad-wrapper-solid ++##.ad.post-area +##.ad.small-mpu ++##.ad336х280_desk ++##.adHeading ++##.adInsider ++##.adPanorama +##.adWizard-ad ++##.ad_16m7rle ++##.ad__holder ++##.ad__space ++##.ad__window ++##.ad_content_bottom ++##.ad_desk_w970_h250 +##.ad_fluid -+##.ad_hd ++##.ad_header_top ++##.ad_leaderboard_master ++##.ad_leaderboard_wrap ++##.ad_lrgsky +##.ad_right_300_250 ++##.ad_scroll ++##.ad_sidebar_left ++##.ad_sidebar_right +##.ad_unit_wrapper_main -+##.ads-hints ++##.adhesiveAdWrapper ++##.ads-below-view-content ++##.ads-bt ++##.ads-by-google ++##.ads-container-250 ++##.ads-internal +##.ads-margin-top-bottom ++##.ads-placeholder-wrapper ++##.ads-sidebar-widget ++##.ads-sticky +##.ads-top-fixed -+##.ads-top-home +##.ads-top-main ++##.ads-wall-container +##.adsBlockContainerHorizontal -+##.ads_placeholder -+##.ads_uol_728x90 ++##.ads__article__header ++##.ads_full_1 ++##.ads_home ++##.ads_middle-container ++##.ads_wrap-para ++##.adsbx728x90 ++##.adsdesktop ++##.adserverBox ++##.adsntl +##.adunit-googleadmanager -+##.adver-header -+##.advertising-wrapper ++##.adunit-search-midstream ++##.adunit-skyscraper-1 ++##.adunit-skyscraper-2 ++##.adv-link--left ++##.adv-link--right ++##.adv-top-banner ++##.advert--in-sidebar ++##.advert-sticky-wrapper ++##.advertHeader ++##.advert_foot ++##.advert_title ++##.advertisementBoxBan ++##.advertising-mediumrectangle ++##.advertizing-banner ++##.advtbox ++##.adwrap-mrec ++##.adwrap_MPU ++##.adxs-vertisements +##.amp-adv-wrapper -+##.arena-ad-col ++##.anchor-ad ++##.art-text-ad ++##.article-ad-container ++##.article-body-affiliate-box +##.article_ad_1 +##.article_ad_2 ++##.aside-ads-top ++##.b-adhesion ++##.b-right-rail--ads ++##.bannerGoogle ++##.bd-header-ad +##.bg-ads-space -+##.bg_ads ++##.billboard__ad__full ++##.block-advertisement-banner-block +##.block__ads__ad -+##.bottom-mobile-ad -+##.bww-advertising-ad-container -+##.c-ad--bigbox ++##.bonnier-ads-middle ++##.c-ad--header ++##.c-ad--mpu-in-article ++##.c-ad-placeholder ++##.c-advertising__banner-area +##.c-button--adchoices +##.c_nt_ad -+##.content_gpt_top_ads ++##.center-tag-rightadbottom ++##.combinationAd ++##.connatix ++##.css--ad ++##.custom_ad_responsive ++##.desktop_mpu ++##.dfp-ad-container-box ++##.dfp-ad-container-wide +##.dfp-ad-lead2-wrap +##.dfp-ad-lead3-wrap -+##.dfp-ad-top-wrapper ++##.dfp-ad-region-1 ++##.dfp-ad-region-2 ++##.dfp-billboard-wrapper +##.div-insticator-ad ++##.dtads-desktop ++##.exo_wrapper +##.fixadheight -+##.fixedLeftAd -+##.google-bottom-ads ++##.fixed-ads ++##.flexAds ++##.footer-ad-row ++##.freestar-ad-container ++##.fullBleedAd ++##.gam-ad-hz-bg ++##.google-ad-center ++##.google-ad-center-below-posts ++##.google-ad-center-footer ++##.gpt-ad-sidebar-wrap ++##.header-adspace ++##.headerMain-ad ++##.hm-vertical-ad ++##.home-2020-ad-text ++##.home-ad-bigbox ++##.homePageAdSquare +##.index-content-ad-wrapper-top -+##.inr_top_ads -+##.l-article__ad ++##.inline-banner-ad ++##.item--ad ++##.js-sticky-advert-details-mpu ++##.l1-ads-wrapper ++##.latestStoriesAd ++##.layout_h-ad ++##.lazy-ad-unit +##.leaderboard-ad-fixed ++##.leaderboard-top-ad-wrapper +##.lee-track-ilad -+##.lg-infeed-wrapper -+##.mobile-leaderboard-fader ++##.main-header-ad ++##.masthead__ad ++##.media_impact_ads_ad_superbanner ++##.mod-amazon-btn +##.mpu_wrapper ++##.mw-ad ++##.native_ad_wrap ++##.navbar-ad-section ++##.news-item--ad +##.o-ad +##.o-teaser--native-ad -+##.p-ad-feature-pr ++##.outbrainad ++##.pageAd ++##.pb-slot-container ++##.placeholder-dfp +##.post-ad-top -+##.postend-advert -+##.right-ad-3 ++##.primis-video ++##.print-ad-wrapper ++##.promotionAdContainer ++##.re-AdTop1Container ++##.region-ad-pan ++##.right-ad350px250px +##.right-rail-box-ad-container ++##.right_ad_wrap +##.rs-advert +##.rs-advert__container ++##.search-result--sponsored-ad +##.sf-advert -+##.skyad ++##.side-panel_v-ad-container ++##.sidebar-digiads ++##.sideright_ads ++##.single-bottom-ads ++##.sovrn-connect-ad ++##.sp-adblock-2 ++##.sponsored_title ++##.square-adwrap ++##.ssp-advert +##.standard_ad_slot +##.sterra-ad ++##.subscribox-ad +##.tmo-ad +##.tmo-ad-ezoic +##.top-ad-deck -+##.topAdsWrappper ++##.top-ad-module ++##.tw-adv-gpt ++##.v-ad ++##.videoOverAd300 +##.waf-ad -+##.werbungAd +##.widget_doubleclick_widget -+##[href="https://www.masstortfinancing.com/"] > img -+##[href^="http://advertisesimple.info/"] ++##.widget_ep_rotating_ad_widget ++##.widget_newspack-ads-widget ++##.wotd-widget__ad ++##.yayoi_ad_box2 ++##[href="https://jdrucker.com/gold"] > img ++##[href^="//ngeoziadiyc4hi2e.com/"] ++##[href^="http://mypillow.com/"] > img +##[href^="http://trafficare.net/"] +##[href^="http://www.fleshlightgirls.com/"] ++##[href^="http://www.pingperfect.com/aff.php"] ++##[href^="https://ad.admitad.com/"] ++##[href^="https://affiliate.fastcomet.com/"] > img +##[href^="https://click2cvs.com/"] +##[href^="https://detachedbates.com/"] +##[href^="https://engine.gettopple.com/"] ++##[href^="https://glersakr.com/"] +##[href^="https://go.4rabettraff.com/"] +##[href^="https://kingered-banctours.com/"] ++##[href^="https://noqreport.com/"] > img ++##[href^="https://optimizedelite.com/"] > img ++##[href^="https://shrugartisticelder.com"] +##[href^="https://traffserve.com/"] +##[href^="https://turtlebids.irauctions.com/"] img ++##[href^="https://v.investologic.co.uk/"] ++##[href^="https://www.hostg.xyz/"] > img +##[href^="https://www.mystore.com/"] > img -+##[id^="adframe_wrap_"] ++##[id^="section-ad-banner"] +##[onclick^="location.href='http://www.reimageplus.com"] -+##a[href*=".medgoodfood.com/"] -+##a[href^="//porngames.adult/?SID="] ++##a[href*=".engine.adglare.net/"] ++##a[href*="http://MyPillow.com"] > img ++##a[href^="//coarsewary.com/"] ++##a[href^="//go.eabids.com/"] +##a[href^="//voyeurhit.com/cs/"] -+##a[href^="//www.pd-news.com/"] -+##a[href^="http://1phads.com/"] -+##a[href^="http://360ads.go2cloud.org/"] -+##a[href^="http://ad.au.doubleclick.net/"] -+##a[href^="http://ad.yieldmanager.com/"] -+##a[href^="http://adprovider.adlure.net/"] -+##a[href^="http://adrunnr.com/"] -+##a[href^="http://ads.expekt.com/affiliates/"] -+##a[href^="http://adserver.adtechus.com/"] -+##a[href^="http://adsrv.keycaptcha.com"] -+##a[href^="http://adtrack123.pl/"] -+##a[href^="http://adtrackone.eu/"] -+##a[href^="http://aff.ironsocket.com/"] ++##a[href^="//wagerprocuratorantiterrorist.com/"] ++##a[href^="http://adultfriendfinder.com/go/page/landing"] +##a[href^="http://affiliate.glbtracker.com/"] -+##a[href^="http://affiliates.score-affiliates.com/"] +##a[href^="http://allaptair.club/"] -+##a[href^="http://anonymous-net.com/"] -+##a[href^="http://api.content.ad/"] -+##a[href^="http://at.atwola.com/"] -+##a[href^="http://azmobilestore.co/"] +##a[href^="http://betahit.click/"] -+##a[href^="http://c.ketads.com/"] -+##a[href^="http://c43a3cd8f99413891.com/"] -+##a[href^="http://casino-x.com/?partner"] -+##a[href^="http://cdn.adsrvmedia.net/"] -+##a[href^="http://cdn3.adexprts.com/"] -+##a[href^="http://clickandjoinyourgirl.com/"] -+##a[href^="http://clicks.binarypromos.com/"] -+##a[href^="http://clickserv.sitescout.com/"] -+##a[href^="http://clkmon.com/adServe/"] -+##a[href^="http://codec.codecm.com/"] -+##a[href^="http://cpaway.afftrack.com/"] -+##a[href^="http://czotra-32.com/"] +##a[href^="http://d2.zedo.com/"] -+##a[href^="http://databass.info/"] -+##a[href^="http://dftrck.com/"] -+##a[href^="http://down1oads.com/"] -+##a[href^="http://download-performance.com/"] -+##a[href^="http://dwn.pushtraffic.net/"] -+##a[href^="http://earandmarketing.com/"] -+##a[href^="http://eclkmpsa.com/"] -+##a[href^="http://elitefuckbook.com/"] -+##a[href^="http://engine.newsmaxfeednetwork.com/"] -+##a[href^="http://ethfw0370q.com/"] -+##a[href^="http://farm.plista.com/pets"] -+##a[href^="http://finaljuyu.com/"] -+##a[href^="http://findersocket.com/"] -+##a[href^="http://fsoft4down.com/"] -+##a[href^="http://g1.v.fwmrm.net/ad/"] -+##a[href^="http://galleries.securewebsiteaccess.com/"] ++##a[href^="http://enter.anabolic.com/track/"] +##a[href^="http://go.247traffic.com/"] +##a[href^="http://go.fpmarkets.com/"] -+##a[href^="http://go.mobisla.com/"] -+##a[href^="http://go.seomojo.com/tracking202/"] -+##a[href^="http://greensmoke.com/"] -+##a[href^="http://guideways.info/"] -+##a[href^="http://hd-plugins.com/download/"] -+##a[href^="http://igromir.info/"] -+##a[href^="http://imads.integral-marketing.com/"] -+##a[href^="http://install.securewebsiteaccess.com/"] -+##a[href^="http://landingpagegenius.com/"] -+##a[href^="http://latestdownloads.net/download.php?"] -+##a[href^="http://linksnappy.com/?ref="] -+##a[href^="http://liversely.com/"] -+##a[href^="http://liversely.net/"] -+##a[href^="http://lp.ezdownloadpro.info/"] -+##a[href^="http://lp.ncdownloader.com/"] -+##a[href^="http://mmo123.co/"] -+##a[href^="http://onclickads.net/"] -+##a[href^="http://pan.adraccoon.com?"] -+##a[href^="http://papi.mynativeplatform.com:80/pub2/"] -+##a[href^="http://play4k.co/"] -+##a[href^="http://pokershibes.com/index.php?ref="] -+##a[href^="http://pwrads.net/"] -+##a[href^="http://record.betsafe.com/"] -+##a[href^="http://record.sportsbetaffiliates.com.au/"] -+##a[href^="http://refer.webhostingbuzz.com/"] -+##a[href^="http://refpaano.host/"] -+##a[href^="http://s5prou7ulr.com/"] -+##a[href^="http://s9kkremkr0.com/"] -+##a[href^="http://searchtabnew.com/"] -+##a[href^="http://secure.signup-page.com/"] -+##a[href^="http://see-work.info/"] -+##a[href^="http://semi-cod.com/clicks/"] -+##a[href^="http://servicegetbook.net/"] -+##a[href^="http://sharesuper.info/"] -+##a[href^="http://spygasm.com/track?"] -+##a[href^="http://srvpub.com/"] -+##a[href^="http://stateresolver.link/"] +##a[href^="http://static.fleshlight.com/images/banners/"] -+##a[href^="http://track.trkvluum.com/"] -+##a[href^="http://tracking.deltamediallc.com/"] +##a[href^="http://traffic.tc-clicks.com/"] -+##a[href^="http://ucam.xxx/?utm_"] -+##a[href^="http://uploaded.net/ref/"] -+##a[href^="http://us.marketgid.com"] -+##a[href^="http://vinfdv6b4j.com/"] -+##a[href^="http://web.adblade.com/"] -+##a[href^="http://websitedhoome.com/"] -+##a[href^="http://webtrackerplus.com/"] -+##a[href^="http://wopertific.info/"] -+##a[href^="http://www.123-reg.co.uk/affiliate2.cgi"] -+##a[href^="http://www.1clickdownloader.com/"] -+##a[href^="http://www.adskeeper.co.uk/"] +##a[href^="http://www.advcashpro.com/aff/"] -+##a[href^="http://www.affiliates1128.com/processing/"] -+##a[href^="http://www.afgr3.com/"] -+##a[href^="http://www.babylon.com/welcome/index?affID"] -+##a[href^="http://www.bitlord.me/share/"] -+##a[href^="http://www.clkads.com/adServe/"] -+##a[href^="http://www.dealcent.com/register.php?affid="] -+##a[href^="http://www.dl-provider.com/search/"] -+##a[href^="http://www.download-provider.org/"] -+##a[href^="http://www.downloadplayer1.com/"] -+##a[href^="http://www.downloadthesefiles.com/"] -+##a[href^="http://www.downloadweb.org/"] -+##a[href^="http://www.easydownloadnow.com/"] -+##a[href^="http://www.fbooksluts.com/"] -+##a[href^="http://www.flashx.tv/downloadthis"] -+##a[href^="http://www.freefilesdownloader.com/"] -+##a[href^="http://www.friendlyadvertisements.com/"] -+##a[href^="http://www.friendlyquacks.com/"] -+##a[href^="http://www.gamebookers.com/cgi-bin/intro.cgi?"] -+##a[href^="http://www.graboid.com/affiliates/"] -+##a[href^="http://www.hitcpm.com/"] -+##a[href^="http://www.idownloadplay.com/"] -+##a[href^="http://www.liversely.net/"] -+##a[href^="http://www.menaon.com/installs/"] -+##a[href^="http://www.mobileandinternetadvertising.com/"] -+##a[href^="http://www.my-dirty-hobby.com/?sub="] -+##a[href^="http://www.myfreepaysite.com/sfw.php?aid"] -+##a[href^="http://www.myfreepaysite.com/sfw_int.php?aid"] -+##a[href^="http://www.mysuperpharm.com/"] +##a[href^="http://www.onclickmega.com/jump/next.php?"] -+##a[href^="http://www.paddypower.com/?AFF_ID="] -+##a[href^="http://www.pinkvisualpad.com/?revid="] -+##a[href^="http://www.quick-torrent.com/download.html?aff"] -+##a[href^="http://www.securegfm.com/"] -+##a[href^="http://www.streamate.com/exports/"] -+##a[href^="http://www.streamtunerhd.com/signup?"] -+##a[href^="http://www.torntv-downloader.com/"] -+##a[href^="http://www.twinplan.com/AF_"] -+##a[href^="http://www.uniblue.com/cm/"] -+##a[href^="http://www.urmediazone.com/signup"] -+##a[href^="http://www.usearchmedia.com/signup?"] -+##a[href^="http://www.wantstraffic.com/"] -+##a[href^="http://www.webtrackerplus.com/"] -+##a[href^="http://www.xmediaserve.com/"] -+##a[href^="http://wxdownloadmanager.com/dl/"] -+##a[href^="http://z1.zedo.com/"] -+##a[href^="http://zevera.com/afi.html"] ++##a[href^="https://1startfiledownload1.com/"] +##a[href^="https://5hjdbfjfd5.monster/"] ++##a[href^="https://a-ads.com/"] +##a[href^="https://a.bestcontentoperation.top/"] -+##a[href^="https://a2.adform.net/"] +##a[href^="https://aaucwbe.com/"] -+##a[href^="https://adhealers.com/"] ++##a[href^="https://ad.kubiccomps.icu/"] ++##a[href^="https://adjoincomprise.com/"] +##a[href^="https://adnetwrk.com/"] +##a[href^="https://ads-for-free.com/click.php?"] +##a[href^="https://ads.ad4game.com/"] +##a[href^="https://ads.cdn.live/"] -+##a[href^="https://ads.trafficpoizon.com/"] -+##a[href^="https://affiliates.bet-at-home.com/processing/"] ++##a[href^="https://aff-ads.stickywilds.com/"] ++##a[href^="https://affpa.top/"] +##a[href^="https://albionsoftwares.com/"] +##a[href^="https://americafirstpolls.com/"] +##a[href^="https://as.conjectwatson.com/"] +##a[href^="https://awentw.com/"] +##a[href^="https://axdsz.pro/"] +##a[href^="https://azpresearch.club/"] -+##a[href^="https://blackorange.go2cloud.org/"] ++##a[href^="https://bestcond1tions.com/"] ++##a[href^="https://bestdatinghere.life/"] +##a[href^="https://bluedelivery.pro/"] -+##a[href^="https://bnsjb1ab1e.com/"] -+##a[href^="https://bullads.net/get/"] +##a[href^="https://burpee.xyz/"] ++##a[href^="https://cagothie.net/"] ++##a[href^="https://cam4com.go2cloud.org/"] +##a[href^="https://cams.imagetwist.com/in/?track="] +##a[href^="https://chaturbate.jjgirls.com/?track="] -+##a[href^="https://control.trafficfabrik.com/"] +##a[href^="https://cpmspace.com/"] ++##a[href^="https://creacdn.top-convert.com/"] ++##a[href^="https://datingbests.life/"] +##a[href^="https://deliver.tf2www.com/"] +##a[href^="https://delivery.porn.com/"] ++##a[href^="https://dfsdkkka.com/"] ++##a[href^="https://dialling-abutory.com/"] +##a[href^="https://dianches-inchor.com/"] -+##a[href^="https://dltags.com/"] -+##a[href^="https://dynamicadx.com/"] ++##a[href^="https://engine.blueistheneworanges.com/"] ++##a[href^="https://engine.trackingdesks.com/"] +##a[href^="https://explore.findanswersnow.net/"] -+##a[href^="https://farm.plista.com/pets"] +##a[href^="https://fertilitycommand.com/"] -+##a[href^="https://flirtaescopa.com/"] -+##a[href^="https://gamescarousel.com/"] ++##a[href^="https://get2nesoft1.ru/"] +##a[href^="https://gghf.mobi/"] +##a[href^="https://go.ebrokerserve.com/"] +##a[href^="https://go.goasrv.com/"] ++##a[href^="https://go.skinstrip.net"][href*="?campaignId="] +##a[href^="https://go.trackitalltheway.com/"] -+##a[href^="https://go.trkclick2.com/"] -+##a[href^="https://gogoman.me/"] -+##a[href^="https://horny-pussies.com/tds"] ++##a[href^="https://go.xlirdr.com"] ++##a[href^="https://go.xlvirdr.com"] +##a[href^="https://iactrivago.ampxdirect.com/"] +##a[href^="https://incisivetrk.cvtr.io/click?"] -+##a[href^="https://intrev.co/"] ++##a[href^="https://intenseaffiliates.com/redirect/"] ++##a[href^="https://itubego.com/video-downloader/?affid="] +##a[href^="https://leg.xyz/?track="] -+##a[href^="https://meet-sex-here.com/?u="] ++##a[href^="https://lnkxt.bannerator.com/"] ++##a[href^="https://losingoldfry.com/"] ++##a[href^="https://meet-sex-here.com/"] +##a[href^="https://meet-sexhere.com/"] -+##a[href^="https://meet-to-fuck.com/tds"] -+##a[href^="https://mk-ads.com/"] ++##a[href^="https://meet-to-fuck.com/"] +##a[href^="https://mk-cdn.net/"] +##a[href^="https://mob1ledev1ces.com/"] ++##a[href^="https://movie.download-file.org/"] +##a[href^="https://myusenet.xyz/"] ++##a[href^="https://oackoubs.com/"] ++##a[href^="https://odnxe.lncredlbiedate.com/"] +##a[href^="https://ovb.im/"] +##a[href^="https://partners.fxoro.com/click.php?"] ++##a[href^="https://pl.premium4kflix.website/"] +##a[href^="https://playuhd.host/"] -+##a[href^="https://porndeals.com/?track="] ++##a[href^="https://pongidsrunback.com/"] +##a[href^="https://reachtrgt.com/"] -+##a[href^="https://redsittalvetoft.pro/"] -+##a[href^="https://refpaano.host/"] +##a[href^="https://reinstandpointdumbest.com/"] -+##a[href^="https://retiremely.com/"] -+##a[href^="https://rev.adsession.com/"] ++##a[href^="https://s.zlink1.com/"] +##a[href^="https://scurewall.co/"] -+##a[href^="https://secure.eveonline.com/ft/?aid="] -+##a[href^="https://sexsimulator.game/tab/?SID="] ++##a[href^="https://speedsupermarketdonut.com/"] +##a[href^="https://spygasm.com/track?"] +##a[href^="https://static.fleshlight.com/images/banners/"] +##a[href^="https://t.mobtya.com/"] ++##a[href^="https://takeallsoft.ru/"] +##a[href^="https://topoffers.com/"][href*="/?pid="] +##a[href^="https://torrentsafeguard.com/?aid="] -+##a[href^="https://track.52zxzh.com/"] +##a[href^="https://track.bruceads.com/"] +##a[href^="https://track.clickmoi.xyz/"] +##a[href^="https://track.themadtrcker.com/"] +##a[href^="https://tracking.trackcasino.co/"] -+##a[href^="https://trackjs.com/?utm_source"] +##a[href^="https://traffic.bannerator.com/"] +##a[href^="https://transfer.xe.com/signup/track/redirect?"] +##a[href^="https://trappist-1d.com/"] +##a[href^="https://trf.bannerator.com/"] -+##a[href^="https://trklvs.com/"] -+##a[href^="https://trust.zone/go/r.php?RID="] ++##a[href^="https://trk.watchlivesports4k.club/"] +##a[href^="https://trusted-click-host.com/"] +##a[href^="https://tupitea.co/"] +##a[href^="https://uncensored.game/"] +##a[href^="https://uncensored3d.com/"] ++##a[href^="https://vlnk.me/"] +##a[href^="https://wantopticalfreelance.com/"] +##a[href^="https://watchmygirlfriend.tv/"] -+##a[href^="https://weedzy.co.uk/"][href*="&utm_"] -+##a[href^="https://www.adskeeper.co.uk/"] -+##a[href^="https://www.adxtro.com/"] ++##a[href^="https://www.adskeeper.com"] +##a[href^="https://www.arthrozene.com/"][href*="?tid="] -+##a[href^="https://www.dollps.com/?track="] -+##a[href^="https://www.friendlyduck.com/AF_"] -+##a[href^="https://www.hotgirls4fuck.com/"] -+##a[href^="https://www.oboom.com/ad/"] ++##a[href^="https://www.chngtrack.com/"] ++##a[href^="https://www.mypornstarcams.com/landing/click/"] +##a[href^="https://www.oboom.com/ref/"] ++##a[href^="https://www.onlineusershielder.com/torrent-guard/?"] +##a[href^="https://www.passeura.com/"] -+##a[href^="https://www.travelzoo.com/oascampaignclick/"] -+##a[href^="https://www.what-sexdating.com/"] -+##a[href^="https://zononi.com/"] -+##aa[href^="https://itubego.com/video-downloader/?affid="] -+##ark-top-ad -+##div[class^="AdBannerWrapper-"] -+##div[class^="AdItem-"] -+##div[class^="Ad__adContainer"] -+##div[class^="Ad__bigBox"] -+##div[class^="Ad__container"] -+##div[class^="AdhesionAd_"] -+##div[class^="BlockAdvert-"] -+##div[class^="PreAd_"] -+##div[class^="ResponsiveAd-"] -+##div[class^="adpubs-"] -+##div[class^="advertisement-desktop"] -+##div[class^="articleAdUnitMPU_"] -+##div[class^="block-openx-"] -+##div[class^="index_adAfterContent_"] -+##div[class^="index_adBeforeContent_"] -+##div[class^="index_displayAd_"] -+##div[class^="largeRectangleAd_"] -+##div[class^="lifeOnwerAd"] -+##div[class^="local-feed-banner-ads"] -+##div[class^="pane-google-admanager-"] -+##div[class^="proadszone-"] -+##div[id^="code_ads_"] -+##div[id^="div-adtech-ad-"] -+##.gnt_flp -+##.gnt_rr_xpst -+##.gnt_rr_xst -+##a[href^="http://get.slickvpn.com/"] ++##a[href^="https://www.sheetmusicplus.com/?aff_id="] ++##ad-shield-ads ++##amp-connatix-player ++##div[id^="ad_bnr_"] ++##div[id^="ads300_250-widget-"] ++##iframe[src^="http://ad.yieldmanager.com/"] ++##iframe[src^="http://www.adpeepshosted.com/"] ++##img[src^="https://images.purevpnaffiliates.com"] ++###jwplayer_contextual_player_div ++##.js-widget-distroscale ++##.oovvuu-embed-player ++##.s2nContainer +##a[href^="http://https://www.get-express-vpn.com/offer/"] ++##a[href^="https://fastestvpn.com/lifetime-special-deal?a_aid="] +##a[href^="https://www.get-express-vpn.com/offer/"] -+##[href^="/admdownload.php"] -+##[href^="/ucdownload.php"] -+##[href^="/ucdownloader.php"] -+##[href^="/ucmini.php"] ++##[onclick*="content.ad/"] +##.adv_outbrain +##a[data-obtrack^="http://paid.outbrain.com/network/redir?"] +##a[data-oburl^="http://paid.outbrain.com/network/redir?"] ++##a[data-oburl^="https://paid.outbrain.com/network/redir?"] +##a[data-redirect^="this.href='http://paid.outbrain.com/network/redir?"] ++##a[data-url^="http://paid.outbrain.com/network/redir?"] ++##a[data-url^="http://paid.outbrain.com/network/redir?"] + .author +##a[data-widget-outbrain-redirect^="http://paid.outbrain.com/network/redir?"] ++##a[href^="http://paid.outbrain.com/network/redir?"] +##a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source +##a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source +##a[target="_blank"][onmousedown="this.href^='http://paid.outbrain.com/network/redir?"] -+###taboola-below-article-thumbnails-v2 -+##.taboola_container -+##div[class^="backfill-taboola-home-slot-"] -+ewybory.eu#@##adv-text -+deepgoretube.site#@##fwdevpDiv0 ++##.taboola__container ++suntory.co.jp#@##page_ad +tapahtumat.iijokiseutu.fi,tapahtumat.kaleva.fi,tapahtumat.koillissanomat.fi,tapahtumat.lapinkansa.fi,tapahtumat.pyhajokiseutu.fi,tapahtumat.raahenseutu.fi,tapahtumat.rantalakeus.fi,tapahtumat.siikajokilaakso.fi#@#.ad-popup -+canonsupports.com#@#.box_ads -+8field.net,deployhappiness.com,dmitrysotnikov.wordpress.com,faravirusi.com,freedom-shift.net,kotan.link,lovepanky.com,markekaizen.jp,netafull.net,photopoint.com.ua,posh-samples.com#@#.category-ad:not(html):not(body) -+naver.com#@#.head_ad -+mypillow.com#@#[href^="http://mypillow.com/"] > img -+mypillow.com#@#[href^="http://www.mypillow.com/"] > img ++clien.net#@#.ad_banner ++labartt.com#@#.advert-detail ++tubefilter.com#@#.mainAd ++cadlinecommunity.co.uk#@#.sidebar_advert +mystore.com#@#[href^="https://mystore.com/"] > img -+herbanomic.com#@#[href^="https://www.herbanomic.com/"] > img ++noqreport.com#@#[href^="https://noqreport.com/"] > img +mystore.com#@#[href^="https://www.mystore.com/"] > img -+zstacklife.com#@#[href^="https://zstacklife.com/"] img -+sweetdeals.com#@#a[href*="https://www.sweetdeals.com/"] img -+legacy.com#@#a[href^="http://pubads.g.doubleclick.net/"] -+xbdeals.net#@#a[href^="https://click.linksynergy.com/"] +play.google.com#@#div[aria-label="Ads"] -+||090a7ee361.com^ -+||0c4bc6060b.com^ ++||0111d594c7.com^ ++||028708717f.com^ ++||08c395a4b7.com^ ++||0a81d7e23a.com^ ++||0d68d359dc.com^ ++||0ec9b365fd.com^ ++||0eijh8996i.com^ ++||0i0i0i0.com^ ++||1111supjavcom.xyz^ ++||123feb4327.com^ ++||123movies.to^ ++||19bk5lo5q2.com^ ++||1gldnstrofhkybypdsknubjobaleestranre24.com^ ++||1hx60gjebbfr.com^ ++||1links.ga^ ++||1links1.ga^ ++||1xdtscudjemp.com^ ++||24s1b0et1.de^ ++||25obpfr.de^ ++||269b2f0e19.com^ +||26b7f00b9f.com^ -+||3daed168ad.com^ -+||41fcd2b939.com^ ++||277ryf6nabi0.com^ ++||2932cceca4.com^ ++||2b28c0583e.com^ ++||2baa52126b.com^ ++||2e3f31faae.com^ ++||2jmis11eq.de^ ++||2m3gdt0gc.de^ ++||2mlh2fw7z62i.com^ ++||2qgsjjy89k.com^ ++||2rlgdkf7s.de^ ++||2rr7y7gd2qrm.com^ ++||2track.info^ ++||3-mobiappu.com^ ++||3221dkf7m2.com^ ++||349c3c0859.com^ ++||39irqwnzlv.com^ ++||3b1e3ebd27.com^ ++||3fdcd25c24.com^ ++||3sk7d418al8u.com^ ++||441a8a5527.com^ ++||45eijvhgj2.com^ ++||49n7wqynho5u.top^ ++||4c03e217f8.com^ ++||4dfdf752cc.com^ ++||4tnui5r06j62.com^ ++||50bcea469a.com^ ++||532xcxypmpnp.com^ ++||543993d.com^ ++||5886316040.com^ ++||5b955d4c78.com^ ++||5c3a967126.com^ ++||5c8877b0af.com^ +||5e00bd6c36.com^ -+||5fcc5e7d92.com^ -+||63c4861697.com^ ++||5nfc.net^ ++||5ovrmmmoubi71efvatfd.com^ ++||5vcl2z9la7.com^ ++||6244db039f.com^ ++||6740e9369b.com^ +||680566accf.com^ -+||7e1e8f3eba.com^ -+||81f49d8375.com^ -+||abjrtwawbfw.com^ ++||6fxtpu64lxyt.com^ ++||6qu5dcmyumtw.com^ ++||6snjvxkawrtolv2x.pro^ ++||709861d049.com^ ++||7a6a4e9e27.com^ ++||7fb60feaa4.com^ ++||84de26794f.com^ ++||888x.cyou^ ++||8bc4888880.com^ ++||8gs4unh05aq6.com^ ++||8mdphsb8fm.com^ ++||996f0a8.com^ ++||9a363a4900.com^ ++||9c3ac3307a.com^ ++||9c56fb6868.com^ ++||9d36cf3402.com^ ++||9kkf51ovqex1.com^ ++||9tumza4dp4o9.com^ ++||9xeqynu3gt7c.com^ ++||a07d30aaf0.com^ ++||aab-proxy-tests.top^ ++||aabproxytests.top^ ++||aaettsewpbyc.com^ ++||ab1n.net^ ++||abange.com^ ++||abbeyintervalfetched.com^ ++||abbeyleefeet.com^ ++||abbreviateprejudice.com^ ++||abburmyer.com^ ++||abclefabletor.com^ ++||abdittoan.com^ ++||abhorboring.com^ ++||abhorcarious.com^ ++||abilityviews.com^ ++||abjectionremarksdisarm.com^ ++||abkvgughrjhe.com^ ++||ablesasmetotr.monster^ ++||ablitleoor.com^ ++||aboardcarr.com^ ++||abolishcareful.com^ ++||abothe.com^ ++||abreastdevotion.com^ ++||abridgeoverwhelmfireball.com^ ++||abruptnesscarrier.com^ ++||absentallergyeyebrows.com^ ++||abskursin.com^ ++||abtyroguer.com^ ++||abyamaskor.com^ ++||acaupail.net^ ++||acc5a261f3.com^ ++||accidentaldark.com^ ++||accompanimentcouldsurprisingly.com^ ++||accomplishedgradual.com^ ++||accomplishmentailmentinsane.com^ ++||accomplishmenthalveharness.com^ ++||accordinglytongue.com^ ++||accustomparkedcrave.com^ ++||acdn01.vidox.net^ ++||aceekroo.net^ ++||acerbictierer.com^ ++||ackeyimerina.com^ +||aclytatcula.ga^ -+||acxoxbosblv.com^ -+||aephine.com^ -+||afgfjdivrf.com^ ++||acquaintedexpectations.com^ ++||acquiredescendthumb.com^ ++||acroterrecurse.com^ ++||addictionestimated.com^ ++||additionalvase.com^ ++||adherenceprosperous.com^ ++||adhunt.net^ ++||adjaco.com^ ++||adjoiningrolesuspicious.com^ ++||adlil.xyz^ ++||administrationpreviewfoolproof.com^ ++||admirableviolinniece.com^ ++||admireinkhousemaid.com^ ++||admittedfaults.com^ ++||adorablecaravandominion.com^ ++||ads2ads.net^ ++||adsemirate.com^ ++||advancedisco.com^ ++||advertatment.com^ ++||advisedlyremove.com^ ++||aefaldypulldoo.com^ ++||afaaugct.com^ ++||affabilityshelljumper.com^ ++||affairsquicker.com^ ++||affectionmimic.com^ ++||affluentlathe.com^ ++||afgham.com^ +||afriet.com^ ++||afterwardscaress.com^ ++||agakoffingan.com^ ++||agalarvitaran.com^ ++||agaomastaran.com^ ++||agavanilliteom.com^ ++||agazil.com^ ++||ageismvipery.com^ ++||agfompphv.com^ ++||agilespatter.com^ ++||agisdayra.com^ ++||agitatesuggestneighbouring.com^ +||agnescarved.website^ -+||airdempu.com^ -+||ajeyaxdcvogcx.com^ -+||aklienyxjhdn.com^ -+||alatedsoccers.com^ ++||agoaccuracy.com^ ++||agooxouy.net^ ++||agrothoo.net^ ++||agytmylvjkbac.com^ ++||ailseemp.net^ ++||aimaffability.com^ ++||ajevigie.com^ ++||akeaprhmebxfj.com^ ++||akilifox.com^ +||albumsliv.com^ -+||alinesappels.com^ -+||ambhiwnloxdqcg.com^ ++||alcogeltomfool.com^ ++||alertedstreaks.com^ ++||alhypnoom.com^ ++||alibifolksinspired.com^ ++||alienateaboard.com^ ++||aliveperjuryruby.com^ ++||alleviatediscoveryexpress.com^ ++||alleyoxide.com^ ++||alleypersonally.com^ ++||allowspeaker.com^ ++||aloftliquid.com^ ++||aloha-news.org^ ++||alovirs.com^ ++||alspearowa.com^ ++||altruisticcost.com ++||alulimprowess.com^ ++||amalakale.com^ ++||amattepush.com^ ++||ambeersporkies.com^ ++||ambuizeler.com^ ++||amendableobituaryalienate.com^ ++||amenitypassenger.com^ ++||amensatisfactorybrook.com^ ++||amgardevoirtor.com^ ++||amigodaymare.com^ ++||amlatiosa.com^ ++||amoddishor.com^ ++||amplefeed.pro^ ++||amrtbbnr.com^ ++||amuckstyvain.com^ ++||amulagaudish.cam^ ++||anaguahoagies.com^ ++||anchovymedieval.com^ ++||andbegant.one^ +||angarepbeeherd.com^ -+||apccrwpr.com^ ++||angelesfoldingpatsy.com^ ++||angeleslooking.com^ ++||angerdefinitionboredom.com^ ++||angersteerpad.com^ ++||anglezinccompassionate.com^ ++||anguishaboveboardfilm.com^ ++||annotationcoinboiled.com^ ++||annotationpushy.com^ ++||annotationsolely.com^ ++||annout.com^ ++||anomalousporch.com^ ++||answerroad.com^ ++||antecedentponderoverweight.com^ ++||antennaoverload.com^ ++||anticipatecommunitylag.com^ ++||antiqueminefield.com^ ++||antirobotsystem.com^ ++||antyoubelike.buzz^ ++||anubinbrewed.tech^ ++||anxioushatedconservation.com^ ++||anxioushomelessastray.com^ ++||apartblot.com^ ++||apatheticformingalbeit.com^ +||aperushmo.cam^ -+||aqdqlvdkrhvm.com^ -+||arshineensnarl.com^ -+||ationsuchasr.xyz^ -+||atteep.com^ -+||attemptgyrose.com^ -+||autcxfcdlev.com^ -+||avalanchemight.com^ -+||avjreajk.com^ ++||apparelchildplash.com^ ++||appealsunken.com^ ++||applandforbuddies.top^ ++||applaudcourageous.com^ ++||applaudliteratureconsultant.com^ ++||applicantpoachmeat.com^ ++||appreciationcallingregent.com^ ++||approachpair.com^ ++||approximatelylethal.com^ ++||apricotaimless.com^ ++||apronunwindcheckup.com^ ++||aralomomolachan.com^ ++||arautsod.com^ ++||arbourspankappetite.com^ ++||archeswethers.live^ ++||archivesheliumangeles.com^ ++||archivesleadership.com^ ++||arcquestioningjersey.com^ ++||arcticwashed.com^ ++||ardourineptlavender.com^ ++||ardsbergmiteon.com^ ++||ardspalkiator.com^ ++||areelektrosstor.com^ ++||areliux.cc^ ++||argentslv.digital^ ++||aricianvrocht.com^ ++||armamentfollowerdock.com^ ++||armpitappreciationeighty.com^ ++||arodvsmindxec.com^ ++||aroidsdefaced.com^ ++||arresttermsdoll.com^ ++||arshelmeton.com^ ++||arsnivyr.com^ ++||arsonunemployedcask.com^ ++||articlegarlandferment.com^ ++||articlepawn.com^ ++||artisticbitten.com^ ++||arwartortleer.com^ ++||arwhismura.com^ ++||aryguying.com^ ++||ashyhamburgertwice.com^ ++||ashyknob.com^ ++||asifgsyky.com^ ++||askedantipathyhappiness.com^ ++||asklinklanger.com^ ++||aslmyoxscfr.com^ ++||aspirantgobetweenvary.com^ ++||assemblefaultless.com^ ++||assembleservers.com^ ++||assertedhome.com^ ++||assistancespectacles.com^ ++||assistedloop.com^ ++||assortmenttiltaback.com^ ++||astespurra.com^ ++||astkyureman.com^ ++||astoecia.com^ ++||astogepian.com^ ++||astonishingbrightscalpel.com^ ++||astoundbeach.com^ ++||astraymeshbury.com^ ++||astscolipedeor.com^ ++||astumbreonon.com^ ++||asunderemulationcounterfeit.com^ ++||aswaystumbly.com^ ++||atableofcup.com^ ++||atdrilburr.com^ ++||atgallader.com^ ++||atgenesecton.com^ ++||athletethrong.com^ ++||atlasfledbeheld.com^ ++||atmosphericpenitentgate.com^ ++||atonementimmersedlacerate.com^ ++||atrepsywristy.com^ ++||attachedt.xyz^ ++||attemptingstated.com^ ++||attendedimitationsurrender.com^ ++||attentiongolanchampagne.com^ ++||attentionswhisperingkeynote.com^ ++||attentivepersist.com^ ++||attestationlived.com^ ++||attributedminded.com^ ++||attritioncuff.com^ ++||aubkikxiupnqgr.com^ ++||audiblyrang.com^ ++||audmrk.com^ ++||aujxjunasp.com^ ++||aukarosizox.com^ ++||auksisham.com^ ++||auksizox.com^ ++||aupteeds.net^ ++||auspiceguidance.com^ ++||auspiceguile.com^ ++||ausrjuwwohbbu.xyz^ ++||authoritiessteering.com^ ++||authorityasknimble.com^ ++||authorizeknee.com^ ++||avellingand.xyz^ ++||average-champion.pro^ ++||avhtaapxml.com^ ++||avickcarob.com^ ++||aviewrodlet.com^ ++||avppuqrudc.com^ +||avtkfjodkgkiqhr.com^ -+||b32e499621.com^ ++||avulsedcherty.com^ ++||awaitingharshlyweakness.com^ ++||awayfterth.one^ ++||awayteemage.com^ ++||awepierce.com^ ++||awhilemiracleeraser.com^ ++||axwxrnk5ydzy.com^ ++||azj57rjy.com^ ++||azn55btbp3a4.com^ ++||b1de17f978.com^ ++||b3ra6hmstrioek54er.com^ ++||b73uszzq3g9h.com^ ++||b7d0df7d47.com^ ++||b88f1c5cda.com^ +||b8e437d3a3.com^ -+||baledenseabbreviation.com^ -+||bandovincas.com^ -+||bathyalmalkin.com^ -+||bdfxakyhhiq.com^ ++||baakkleniank.com^ ++||backfirefever.com^ ++||badsats.com^ ++||badsips.com^ ++||badsways.com^ ++||bagsevitld.com^ ++||baikogru.net^ ++||balledalloy.com^ ++||balxetnlnqrna.com^ ++||bancmuriel.space^ ++||bandengeuaster.com^ ++||baniep.com^ ++||barnmonths.com^ ++||barotsetarente.com^ ++||basnn15.com^ ++||bastionthree.xyz^ ++||battepush.com^ ++||bazamodov.ru^ ++||bb6dcc7e45.com^ ++||bcb3da3ac8.com^ ++||bclikeqt.com^ +||be642e072e.com^ -+||beatenoxonium.com^ -+||behojxrdlfr.top^ -+||bhdsgvsuy.com^ -+||bienlyclatchy.website^ -+||blwavvijaugwing.com^ ++||beatifulapplabland.com^ ++||bechatotan.com^ ++||becuboneor.com^ ++||beddinginset.com^ ++||bedriddenbare.com^ ++||beestsiskins.com^ ++||begantotireo.xyz^ ++||begonegowked.com^ ++||behoppipan.com^ ++||belombrea.com^ ++||bembexpps.life^ ++||beneathallowing.com^ ++||beneficial-gather.pro^ ++||besetadvocacystrap.com^ ++||besheardefiler.com^ ++||besidesaffluentcurrently.com^ ++||bestadbid.com^ ++||bestcomadslive.com^ ++||bestcontentfacility.top^ ++||bestloans.tips^ ++||bestnewsoft.ru^ ++||besty-deals.com^ ++||beswarmfurless.cam^ ++||betaengine.org^ ++||betimbur.com^ ++||betjoltiktor.com^ ++||betklefkior.com^ ++||betmasquerainchan.com^ ++||betnoctowlor.com^ ++||betotodileon.com^ ++||bett2you.net^ ++||bett2you.org^ ++||bettin2you.com^ ++||bettingfingerprintgrade.com^ ++||bfwckgmgkaq.com^ ++||bhdrruliyfeoofx.com^ ++||bhoiprlwdld.com^ ++||biddingquarrel.com^ ++||bigneptunesept.com^ ++||bigsport.today^ ++||bilgebotchy.com^ ++||birtuwhaim.com^ ++||biskhoodoos.com^ ++||bitesizedtreat.pro^ ++||biwhamto.com^ ++||bjjtrxbpincj.xyz^ ++||bjwbmpkukmur.com^ ++||bkrpldhartngvh.com^ ++||blastidanergic.com^ ++||blastieliatris.com^ ++||blatwalm.com^ ++||blazeobservancebough.com^ ++||bleedingofficecontagion.com^ ++||blewtheleledm.one^ ++||blizzardstudyfavourite.com^ ++||blode-cpq.com^ ++||blogger2020.com^ ++||bloomcontaminatepreliminary.com^ ++||bluecuphoch.com^ ++||bluelinknow.com^ ++||boagloozee.com^ ++||boatheeh.com^ ++||bocciatillers.com^ ++||bokeden.com^ ++||boldudroned.com^ +||bookbannershop.com^ -+||briefcroakapprentice.com^ -+||c2fbd5c6ba.com^ -+||c986493e7d.com^ -+||chargerbeakers.com^ -+||chartlon.skin^ -+||chingmathecia.website^ -+||cixaxuyu.xyz^ ++||booknower.com^ ++||boorishregt.com^ ++||boringlying.com^ ++||borumis.com^ ++||boshaulr.net^ ++||bouncebidder.com^ ++||bouncingbalconysuperior.com^ ++||braidroll.com^ ++||brainsensueddusty.com^ ++||brancheschestnutsour.com^ ++||branddnewcode1.me^ ++||breakemyhoney.com^ ++||breakingfeedz.com^ ++||breathunwelcome.com^ ++||brereairsome.com^ ++||brfddmrfb.com^ ++||briesburlesk.com^ ++||bro1.biz^ ++||brocode1s.com^ ++||brocode2s.com^ ++||brocode3s.com^ ++||brocode4s.com^ ++||brodirect3s.com^ ++||brogetcode1s.com^ ++||brogetcode2s.com^ ++||brogetcode3s.cc^ ++||brogetcode4s.cc^ ++||brookycenacle.com^ ++||bropu2.com^ ++||browork3er.cc^ ++||browser-ya.pro^ ++||brumousheaf.com^ ++||brunchcreatesenses.com^ ++||bsjltmrejgnlk.com^ ++||btdirectnav.com^ ++||btdnav.com^ ++||btpremnav.com^ ++||btprmnav.com^ ++||btvhdscr.com^ ++||btxxxnav.com^ ++||buatorchel.com^ ++||bulium.com^ ++||bulsogle.net^ ++||buochxuvhmewc.com^ ++||bureauxcope.casa^ ++||bursulasnags.com^ ++||businessenviron.com^ ++||buycoughpermit.com^ ++||buylnk.com^ ++||bxwpekad.com^ ++||bycelebian.com^ ++||byluvdiscor.com^ ++||bymeowsticfemaletor.com^ ++||byyanmaor.com^ ++||c17b4e420d.com^ ++||c3daf7c22c.com^ ++||c86970797a.com^ ++||cadbitff.com^ ++||cadetrigourlegitimate.com^ ++||cairalei.com^ ++||calxespatin.com^ ++||camouque.net^ ++||candielzenaga.com^ ++||cantateremiss.com^ ++||capeantiquariandecision.com^ ++||carcelshatches.com^ ++||carpenterexplorerdemolition.com^ ++||carrellsubdit.com^ ++||carvyre.com^ ++||casulatoyon.com^ ++||cattlepilot.com^ ++||cavuredears.com^ ++||cbfadomkpsngfhg.xyz^ ++||cbkhucmudcsepoi.com^ ++||cbmseahfxf.com^ ++||cdakuvuwekpvm.com^ ++||cdn12359286.ahacdn.me^ ++||cdn28786515.ahacdn.me^ ++||cdn44221613.ahacdn.me^ ++||celign.com^ ++||cematuran.com^ ++||cenaclesuccoth.com^ ++||centpopped.com^ ++||cerfoillycea.website^ ++||cevocoxuhu.com^ ++||cfclhaqhjdtw.com^ ++||chaerel.com^ ++||chainerunca.com^ ++||chainsap.net^ ++||chainwalladsery.com^ ++||chambersthanweed.com^ ++||chargenews.com^ ++||chaussizers.cam^ ++||chautchy.net^ ++||chazanscapita.com^ ++||cheatingbelievesseem.com^ ++||cheerlessfunnelconcealed.com^ ++||chemitug.net^ ++||chimamanndgaocozmi.com^ ++||chimarssensory.com^ ++||chokefirmbeauty.com^ ++||chopperarena.com^ ++||chutneemunite.com^ ++||chyjobopse.pro^ ++||cieetphiwwbbueu.com^ ++||ciihjhyfoddflhy.xyz^ ++||cimoghuk.net^ ++||cituasacrals.website^ ++||ckhvmkurkifon.com^ ++||cladp.com^ ++||claggeduniter.com^ ++||clcknipop.com^ ++||click2soft.ru^ +||clickallow.net^ -+||condoledownright.com^ -+||configurationluxuriantinclination.com^ -+||crechelisere.com^ ++||clickaslu.com^ ++||clickbicom^ ++||clickbytes.ru^ ++||clicktracklink.com^ ++||clickurlik.com^ ++||cliviasnoonlit.com^ ++||clkofafcbk.com^ ++||clothrestedbroadsheet.com^ ++||cluitluw.com^ ++||clunkskiaat.com^ ++||clutchlilts.com^ ++||cmhnyuwsgdlwv.com^ ++||cmtrsrlyyiche.com^ ++||cocklacock.com^ ++||coehornlandsat.com^ ++||coffeeuphold.com^ ++||colarak.com^ ++||colognegreece.com^ ++||colossalfutile.com^ ++||comadscity.com^ ++||comedyauto.com^ ++||comedyrent.com^ ++||comedyrepair.com^ ++||comfreeads.com^ ++||comicplanet.net^ ++||commencenumerals.com^ ++||commercial-i30.com^ ++||compareinflatefervent.com^ ++||compassionateblackthirst.com^ ++||comperesuccessive.com^ ++||complexionchagrinpregnancy.com^ ++||conatysystems.com^ ++||consciousremembrancetoad.com^ ++||consoupow.com^ ++||contradictionweeping.com^ ++||convdlink.com^ ++||conventforgotten.com^ ++||coolappland.com^ ++||coolappland1.com^ ++||coolappland2.com^ ++||coolappland3.com^ ++||coolappland4.com^ ++||coollycollegeexpertise.com^ ++||copeforcing.com^ ++||copyairthtnttg.com^ ++||corkysegment.com^ ++||cosetswaragi.website^ ++||costaquire.com^ ++||counct.com^ ++||countlesstrustworthylamb.com^ ++||countriesnews.com^ ++||countrysideinhale.com^ ++||courthouseworseflaw.com^ ++||coyerbarrets.com^ ++||cpatracker1.ml^ ++||cpm20.com^ ++||cqmtauistwdwu.com^ ++||crabereyren.website^ ++||crabsuperior.com^ ++||cracts.com^ ++||crajeon.com^ ++||creditspontaneousvicious.com^ +||creedalguilery.com^ ++||crlcdptjshitd.com^ ++||croplake.com^ ++||crossaeneus.com^ ++||crudelouisa.com^ ++||cruetychumpy.com^ ++||crummytoots.com^ ++||ctuklyeconnec.xyz^ ++||cubenliven.com^ ++||cubimates.com^ ++||cuddly-membership.pro^ ++||culainstrades.com^ ++||culettswonken.com^ ++||cupseshupse.com^ +||curacaohaloing.website^ -+||cxhjpcrvxd.com^ -+||d7739252ca.com^ -+||dailyc24.com^ ++||curlyhomes.com^ ++||currencyoffuture.com^ ++||cvpvwiody.com^ ++||cxhmxuyeqitmy.com^ ++||cxrjjwsh.com^ ++||cyjgpvecdjntmko.com^ ++||d576de5d7d.com^ ++||d7d38597d6.com^ ++||d8b6aa51fe.com^ ++||da03ab7249.com^ ++||dadsans.com^ ++||daf58a0948.com^ ++||daglatuw.com^ ++||daipeept.net^ ++||daischerendragkur.ga^ ++||daizoode.com^ +||dalarorganic.casa^ -+||davixrpi.com^ -+||desadu.com^ ++||dalrekso.net^ ++||dandyblondewinding.com^ ++||daphnidepoch.com^ ++||darkerillegimateillegimateshade.com^ ++||darkoccasion.pro^ ++||darneluretic.com^ ++||dartrealization.com^ ++||darvorn.com^ ++||data-px.services^ ++||databasestelevision.com^ ++||dating2you.org^ ++||dating4you.org^ ++||dauaskjyfoy.com^ ++||dayznews.biz^ ++||dbaujmgikas.com^ ++||dbdda435.com^ ++||dbutilovetr.xyz^ ++||dcceb78f4a.com^ ++||ddedfearin.buzz^ ++||dearwbdikfecdvc.com^ ++||decism.com^ ++||deeheede.com^ ++||defendergracelessown.com^ ++||defilt.com^ ++||degeronium.com^ ++||deityate.com^ ++||dejectioncontainingproceeding.com^ ++||dejectionminus.com^ ++||delightfulhandle.com^ ++||deliverydom.com^ ++||deliverymod.com^ ++||deliverysapgoblet.com^ ++||delmarviato.com^ ++||demetercowpeas.com^ ++||desabrator.com^ ++||descow.com^ ++||detachedringer.com^ ++||detaph.com^ ++||detectmus.com^ ++||deuror.com^ +||dfbvccwdlsl.com^ -+||dhtbkgcn.top^ ++||dfpbnfapwcfap.com^ ++||dfpstitialtag.com^ ++||dhbxsgdu.com^ ++||diamondemploymentcorpulent.com^ ++||dictatepantry.com^ ++||dievel.com^ ++||dihkstwa.com^ ++||diryleme.pro^ ++||disbarbaryon.com^ +||disbow.com^ -+||dismissedjollyhypocrite.com^ -+||djidbagbacgfgbgdaace.ru^ -+||dkrvagvsqwcx.com^ -+||dopnyvhgusxml.com^ -+||dotsenhanced.com^ -+||dqupwlanxmjhtx.com^ -+||duranigaulic.com^ -+||dvqsngks.top^ -+||edlilu.com^ -+||egoron.com^ ++||disqualifybatesclung.com^ ++||disreputablegenuinelyhonorary.com^ ++||divill.com^ ++||djdecsdwjdgemj.com^ ++||dlytxpktmythilv.com^ ++||dmefzwha.com^ ++||dmnhiwojcy.com^ ++||dnavexch.com^ ++||dnavtbt.com^ ++||dngqrlcxesropm.xyz^ ++||dnrmvpdhmaacsa.com^ ++||doaipomer.com^ ++||doctorhousing.com^ ++||dogolurkr.com^ ++||domankeyan.com^ ++||domccktop.com^ ++||domestich.xyz^ ++||doogroaw.net^ ++||dosamurottom.com^ ++||doubleonclick.com^ ++||downloadfiletorrent.ru^ ++||dpdnav.com^ ++||dpvdyqohhsel.com^ ++||dqerrjwnodks.com^ ++||draile.com^ ++||drainlot.com^ ++||dreambooknews.com^ ++||drjgjngf.com^ ++||drkness.net^ ++||drufmhivrcehs.com^ ++||druggechinook.com^ ++||dsnvlhacqili.com^ ++||dsoodbye.xyz^ ++||dspsuper.com^ ++||dtx.click^ ++||ducapelacunas.cam^ ++||ducmiptu.net^ ++||duddlegaslike.com^ ++||duginamis.com^ ++||dukeendorsement.com^ ++||dumpviolencetank.com^ ++||duoletare.com^ ++||dupelipperan.com^ ++||durhou.com^ ++||dushorgy.com^ ++||dutyoffendsmear.com^ ++||dvl8xapgpqgc1.cloudfront.net^ ++||dwarfroughly.com^ ++||dwugpwfgi.com^ ++||dxmjyxksvc.com^ ++||dy5t1b0a29j1v.cloudfront.net^ ++||dyiigakxgutnqp.com^ ++||e2e76d25ce.com^ ++||e9d46e21e9.com^ ++||eacry.com^ ++||eagernessstrongergreet.com^ ++||earlapssmalm.com^ ++||easelgivedolly.com^ ++||ebelmqvrrnc.com^ ++||ebookspaniardglossary.com^ ++||econtinue.xyz^ ++||ecunarw.com^ ++||edition25.com^ ++||ednewsbd.com^ ++||edownloadfile.me^ ++||edshook.xyz^ ++||eephilru.com^ ++||eereegly.com^ ++||eetsooso.net^ ++||effortfranzbloodless.com^ +||egpuvrhfhekup.com^ -+||elicitsfoozle.com^ -+||en-continue.site^ -+||enationmaleos.website^ -+||eraserindecent.com^ -+||etbglfmpuqurhys.com^ -+||evgywgur.com -+||ewcgnifqlm.com^ -+||exchak.com^ -+||f6c456a438.com^ ++||egyptpolarity.com^ ++||ejapwfpftwvl.com^ ++||ektmvpwa.top^ ++||elbertmemoria.com^ ++||elgdkzio.com^ ++||ellcurvth.com^ ++||eltvcpeftopmaa.com^ ++||enemieshemisphere.com^ ++||englandrelent.com^ ++||entailresponded.com^ ++||entriflingw.xyz^ ++||eoweridus.com^ ++||epagogerepines.com^ ++||epfqjcdqom.com^ ++||epwilkkchcsoxw.com^ ++||equabilitythereupon.com^ ++||equesk.com^ ++||equipshello.com^ ++||erstartirrel.buzz^ ++||esathyaspsu.xyz^ ++||eschewssheols.com^ ++||esefurthere.buzz^ ++||etapescaisse.com^ ++||etjbedubcx.com^ ++||etxrowowxcdchv.com^ ++||euosicjxjv.com^ ++||eussianeduke.xyz^ ++||evists.com^ ++||evushuco.com^ ++||ewaglongoo.com^ ++||ewaqlimkfmb.com^ ++||ewknbagvcqpc.com^ ++||ewrqhlkvkbqqhgk.com^ ++||exaltationinsufficientintentional.com^ ++||exceptexchange.com^ ++||excitedpercussive.com^ ++||exclas.com^ ++||exclusivelydepict.com^ ++||excursionhomemadeimmortal.com^ ++||exopthassar.com^ ++||expiredemure.com^ ++||explac.com^ ++||eyeballdisk.com^ ++||eyenider.com^ ++||eyhadgone.one^ ++||ezyenrwcmo.com^ ++||f19013235f.com^ ++||fa9123763f.com^ ++||faculaekrapina.com^ ++||faestara.com^ +||falconattendance.com^ -+||fanjetrecoil.com^ -+||ferdictivesone.xyz^ -+||filetedlawines.com^ ++||fanzinetautens.com^ ++||fapmeth.com^ ++||fascinatedgreetedgerminate.com^ ++||faskoleb.com^ ++||fast2click.ru^ ++||fastdownload1.com^ ++||fastestbesets.com^ ++||fastmtn.com^ ++||faultspiano.com^ ++||fb332fdc0d.com^ ++||fbmedia-ckl.com^ ++||fddf7d58ea.com^ ++||feathersaloof.com^ ++||februarynip.com^ ++||felonsenforth.cam^ ++||feltlonelyand.xyz^ ++||feltyborning.com^ ++||femefaih.com^ ++||feroffer.com^ ++||fettedwheys.com^ ++||fh259by01r25.com^ ++||fhisladyloveh.xyz^ ++||fhytsxjre.com^ ++||fidcwpfarvtlvc.com^ ++||fidgetsnovena.com^ ++||fiftis.com^ ++||figuis.com^ ++||fiinann.com^ ++||filehosttds.ru^ ++||fileqn.pw^ ++||files-re-bornes.ga^ ++||files-re-bornes.gq^ ++||filetaker.ru^ ++||fin.ovh^ ++||finance2you.org^ ++||finningsumbul.com^ ++||fireextinguisherroastcontributor.com^ ++||firelnk.com^ +||firumuti.xyz^ -+||fiweurwmpgiln.com^ -+||flapnaperer.com^ -+||fragba.com^ -+||funkerpep.com^ -+||fustinrepure.com^ -+||fvvhebchwuym.com^ -+||fwhmftvi.com^ -+||gangstermoleanywhere.com^ -+||garaupedata.com^ -+||gascmsldqd.com^ -+||gatheringtherealiases.com^ -+||giauubytjjfx.com^ -+||gillotjugful.com^ ++||fittingcentermonday.com^ ++||fjklmfhhmsoebjg.com^ ++||fjnyuldhkdft.com^ ++||flakesrental.com^ ++||flongssecos.com^ ++||flushhouseholdvisited.com^ ++||fluskcheir.com^ ++||flylikeaguy.com^ ++||flymob.com^ ++||fmxepkeyvklgyv.com^ ++||foamidsputt.com^ ++||foramoongussor.com^ ++||forgivenessimpact.com^ ++||formingcunninghump.com^ ++||forognal.com^ ++||fortaillowon.com^ ++||foundedphase.com^ ++||fovykaxo.pro^ ++||fowlsfunctions.com^ ++||fpxkqwdoaxuln.com^ ++||frecketbouser.com^ ++||freeadvfit.com^ ++||friendshipmale.com^ ++||friskbiscuit.com^ ++||frstlead.com^ ++||frwslristg.com^ ++||ftlvwmap.com^ ++||fuelcompatibleblaspheme.com^ ++||fuiincik.com^ ++||funnysack.com^ ++||fusulaedisrate.com^ ++||fykdxpdnhy.com^ ++||fyxmkofspvog.top^ ++||g1sysa.com^ ++||g5rillh2awn8.com^ ++||gadgetforester.com^ ++||gaiteshu.net^ ++||gaizipol.com^ ++||gakdgwrwc.com^ ++||galeaeevovae.com^ ++||galoshanseis.com^ ++||games-tuz.site^ ++||gaming-adult.com^ ++||ganemur.com^ ++||gaogwbdr.com^ ++||garior.com^ ++||gaspbandy.com^ ++||gccadrqbswqrxij.com^ ++||gdvadiyvxo.com^ ++||gedkfwnfn.com^ ++||gedutsou.com^ ++||gemorul.com^ ++||genbalar.com^ ++||generationscloveinappropriate.com^ ++||genued.com^ ++||geriod.com^ ++||get-my-prize-n1w.live^ ++||get-things-done.net^ ++||get2nesoft1.ru^ ++||getadx.com^ ++||getapo.com^ ++||getconatyclub.com^ ++||getcong.com^ ++||getfiletds.ru^ ++||getherefwu.xyz^ ++||getmari.com^ ++||getnewsfirst.com^ ++||getsurv2you.net^ ++||getsurv2you.org ++||getsurv2you.org^ ++||gettine.com^ ++||getyoursoft.ru^ ++||getyousoft.ru^ ++||gevmrjok.com^ ++||ghazismsplurt.com^ ++||ghlyrecome.xyz^ ++||ghmofgpoyafnref.xyz^ ++||ghrkrddtyeieins.com^ ++||gianwho.com^ ++||gigabitadex.com^ ++||gillynn.com^ ++||givemecarforbuying.com^ ++||givemysoft.ru^ ++||gjonfartyb.com^ ++||gkhklauk.com^ +||gkngokwjmykp.xyz^ -+||greatvpnoffers.com^ -+||gulliblecontextsteed.com^ ++||glassesoftruth.com^ ++||glecmaim.net^ ++||glekrush.com^ ++||glestpeoples.buzz^ ++||gloaphoo.net^ ++||glossisobelhay.com^ ++||gloudsel.net^ ++||gloxeept.com^ ++||gnarlgp.com^ ++||gnciikwdvdrbg.com^ ++||gnkpvpjjeyrhx.com^ ++||goashais.com^ ++||gogiersan.com^ ++||goingtoothachemagician.com^ ++||goldalternateattributed.com^ ++||goods2you.net^ ++||gororn.com^ ++||gotakemedia1.ru^ ++||gotonewsoftik.ru^ ++||governessmagnituderecoil.com^ ++||grabthisstream-now.com^ ++||graduateelbows.com^ ++||gramrebecca.com^ ++||grandchildfee.com^ ++||graungie.net^ ++||gravelspell.com^ ++||graviccroons.com^ ++||greatappland.com^ ++||greenlinknow.com^ ++||greenpaperlist.com^ ++||grepeiros.com^ ++||gripehealth.com^ ++||gripelive.com^ ++||gripemail.com^ ++||gripetravel.com^ ++||grjywdbqepxhcc.com^ ++||groajert.com^ ++||grobsoap.net^ ++||groodsuy.com^ ++||groomoub.com^ ++||grosseaffiche.com^ ++||groulrie.com^ ++||growebads.com^ ++||grtaanmdu.com^ ++||gsinspiring.xyz^ ++||gsrdsvdxrcud.top^ ++||guistspregna.xyz^ ++||gumsleash.com^ ++||gupffyba.com^ ++||gurynyce.com^ +||gutiumhypoxic.website^ -+||halkie.com^ -+||haspswashrag.com^ -+||hecticpassenger.com^ -+||hemiolajobson.website^ -+||hernialbriefer.com^ -+||hisxeywwpquys.top^ ++||h8brccv4zf5h.com^ ++||hagcmdhrfmwo.com^ ++||haijosho.net^ ++||haiveegi.com^ ++||hakeyelled.website^ ++||halchludwig.com^ ++||handsomedisadvantageglued.com^ ++||harshlygiraffediscover.com^ ++||hashishfot.com^ ++||hasnoconve.one^ ++||hasslepasta.com^ ++||hatefulredheadstone.com^ ++||hatsplexor.com^ ++||hausic.com^ ++||hauufhgezl.com^ ++||havenattackedevolve.com^ ++||hbifcosrltbx.com^ ++||hbolaajfjayrcoo.com^ ++||hbpvkvkkxb.com^ ++||hdqlvyidlehfk.com^ ++||hdvhmdred.com^ ++||heewuque.com^ ++||hefeltlonely.one^ ++||heiqirelle.com^ ++||heisvjafjhbdktx.com^ ++||helesandoral.com^ ++||hellomybeuty.com^ ++||hemasejereeds.com^ ++||hemispherekitchenafforded.com^ ++||herheads.xyz^ ++||hermichermicfurnished.com^ ++||hetairagalapee.tech^ ++||hey-brazil.com^ ++||hey-brazil.net^ ++||hey-brazil.org^ ++||hfuostp.com^ ++||hfvamxbcfccycm.com^ ++||hgtcfbqjtuesggc.com^ ++||hicpm5.com^ ++||hiddenseet.com^ ++||hideheartburndelightful.com^ ++||higheurest.com^ ++||hightopnewstoday.com^ ++||hildry.com^ ++||historicalcarawayammonia.com^ ++||hitlnk.com^ +||hjmreljsqhq.com^ -+||hlrdkyfusroglf.com^ -+||hnyjqhxmd.com^ -+||hpqhqvko.com^ -+||hrptaxegfly.com^ ++||hjxfsrvm.com^ ++||hlooojak.com^ ++||hmafhczsos.com^ ++||hmbxsalezde.com^ ++||hmychtanrj.com^ ++||hoakxhmnat.com^ ++||hoanaijo.com^ ++||hockledscissel.com^ ++||holitt.com^ ++||honeyledger.cam^ ++||honorableinitiative.pro^ ++||hopghpfa.com^ ++||hortitedigress.com^ ++||hosierypressed.com^ ++||hotchedbearhug.com^ ++||hotnews1.me^ ++||houldthinkhi.buzz^ ++||hoursesite.com^ ++||hovcxcvriualrk.com^ ++||hppvkbfcuq.com^ ++||hpvhxydnsa.com^ ++||hqoadthspnju.com^ ++||hspjthms.com^ ++||hsuleekkg.com^ ++||hudggknrylp.com^ ++||huldeeelfwife.com^ ++||humpdecompose.com^ +||huntingarroyo.website^ -+||hurodgoykosp.com^ -+||i-main.site^ -+||iigufwdogfhvau.com^ -+||indeedrefines.com^ -+||iqtdhnfhsop.com^ -+||jazygesforeday.website^ -+||jbkhpkpgfuuwbs.com^ -+||jemock.com^ -+||jfjujflqyekt.com^ ++||hvdvuyakjt.com^ ++||hwqfdydekapllb.com^ ++||hwuwoxtnb.com^ ++||hxgpxocxr.top^ ++||hydricsamba.com^ ++||hyyaofjnidwiyg.com^ ++||i8bco.com^ ++||ibikini.cyou^ ++||iboitxfetut.com^ ++||ideatehimawan.com^ ++||idesce.com^ ++||idiasmural.com^ ++||idubwaamuklsdxb.com^ ++||ie3wisa4.com^ ++||ieqolrpujoc.com^ ++||ifvexcnm.com^ ++||iguare.com^ ++||ihsarnaut.store^ ++||ihzuephjxb.com^ ++||ijhkjlcqeipygg.com^ ++||illegiblebounceoff.com^ ++||illigh.com^ ++||ilo134ulih.com^ ++||ilokanomidpit.com^ ++||ilukbynqpbevqtn.com^ ++||ilxhsgd.com^ ++||img-pushup.wtf^ ++||immise.com^ ++||imonetizeinst.pw^ ++||impavidcircean.com^ ++||imperiiablach.com^ ++||impril.com^ ++||improvesufficientlyfurther.com^ ++||improviserelenthousing.com^ ++||imwinnerkur.com^ ++||inampharosa.com^ ++||inbvxbojt.com^ ++||incomprehensibleacrid.com^ ++||indelible-awareness.pro^ ++||indelibleweird.pro^ ++||inexperiencedfuture.pro^ ++||inextricableaugmentcompelling.com^ ++||infectedobnoxiousfavorite.com^ ++||inflameemanent.cam^ ++||influencer2020.com^ ++||inhile.com^ ++||inhonedgean.com^ ++||inosinetimpana.com^ ++||inpage-push.net^ ++||inquiriescape.com^ ++||inservinea.com^ ++||insqpqmocdsb.com^ ++||instancetonsil.com^ ++||instilseshin.com^ ++||instructorstudied.com^ ++||instylekuman.com^ ++||insureabatis.com^ ++||interesteddeterminedeurope.com^ ++||interpretchimneyrounded.com^ ++||intersads.com^ ++||intimidatekerneljames.com^ ++||intnative.com^ ++||invaderannihilationperky.com^ ++||invibravaa.com^ ++||invitewingorphan.com^ ++||iolenproces.asia^ ++||iononetravoy.com^ ++||iovgoexkassuwy.com^ ++||ipewadbdsfjnuv.com^ ++||iringtgandm.one^ ++||iroble.com^ ++||ironerrooser.com^ ++||irreparablechained.com^ ++||irvopridf.com^ ++||irxlgeoiylt.com^ ++||isocolaparoles.com^ ++||itbraixenr.com^ ++||itemgnat.com^ ++||ithmehecr.xyz^ ++||itinerarycarter.com^ ++||itlatiaser.com^ ++||itpatratr.com^ ++||itroggenrolaa.com^ ++||itseedotor.com^ ++||itthatsheis.one^ ++||itweedler.com^ ++||itzekromom.com^ ++||iumlidwsvpm.com^ ++||iwfwgathfp.com^ ++||ixjrwczv.com^ ++||iysyjkpbgymv.com^ ++||jackpottransfercharacter.com^ ++||jaggiertridii.com^ ++||janufa.com^ ++||japhapee.net^ ++||jbpoujrth.com^ ++||jeffstrategic.com^ ++||jennyblockademark.com^ ++||jesaifie.com^ ++||jestbiases.com^ ++||jetgatem.com^ ++||jeuqlahm.com^ ++||jevtguexebyt.com^ ++||jezailjazzmen.com^ ++||jgqskdjkorwvh.xyz^ ++||jharaltincted.com^ ++||jigado.com^ ++||jjmdavj.com^ ++||jkunsukpfjd.com^ ++||jlawxfdyafr.com^ ++||jmmunnojlcwgsrt.com^ ++||jn69.work^ ++||jnepptcdwjxpu.com^ ++||jnshrxjpiekpl.com^ ++||joorijet.net^ ++||joowkijejv.com^ ++||jorbfstarn.com^ +||jotocyxe.xyz^ -+||jqwsipnedxavqg.com^ -+||jsdelvr.com^ -+||jumbalsmouser.com^ -+||jvxtrsavw.com^ -+||kenailush.com^ -+||kjlbxpxu.top^ -+||kvhfff.top^ -+||kvhttt.top^ -+||kvkddd.top^ -+||leftmajority.com^ -+||lensesunduke.website^ -+||lgnlctutsjou.top^ -+||livetalisay.com^ -+||logniz.com^ -+||lowlilyamex.com^ -+||lunacanful.com^ ++||journalismdived.com^ ++||joygaskin.com^ ++||jrbjnsbeao.com^ ++||jscjuyvl.com^ ++||judiciousbloke.com^ ++||jugcontainer.com^ ++||juoymkmbfmq.com^ ++||juristarx.cam^ ++||jvcadyusbcajl.com^ ++||kabobitacism.com^ ++||kakstitotako.com^ ++||kantiwl.com^ ++||kastafor.com^ ++||kauloufa.net^ ++||kauzishy.com^ ++||kcepfyzuna.com^ ++||kelopronto.com^ ++||keraclya.com^ ++||kerattogeist.com^ ++||kerezomahep.xyz^ ++||kerkorur.com^ ++||keyrolan.com^ ++||kfqlhhaowyj.com^ ++||khellinturkish.com^ ++||khjpgjuakmjik.com^ ++||kidskinnucleus.com^ ++||kikabothi.com^ ++||kikoosso.net^ ++||kimsacka.net^ ++||kinebuilder.com^ ++||kinogogly.pro^ ++||kittga.com^ ++||knockoutantipathy.com^ ++||knucklecivichereafter.com^ ++||koabausu.com^ ++||koboldsgolds.com^ ++||kokotrokot.com^ ++||komkerefljf.com^ ++||koqndqsjvvqiqm.com^ ++||kotowsbarites.com^ ++||kqvjxmyojvvft.com^ ++||krisydark.com^ ++||ktdowtedr.com^ ++||kuntlgsdinwp.com^ ++||kwbtootugsx.com^ ++||kwtnhdrmbx.com^ ++||kykelped.com^ ++||kyriod.com^ ++||l1nkk.ga^ ++||labsappland.com^ ++||lahemal.com^ ++||landforgreatapp.com^ ++||laraliaethnol.com^ ++||lardedinial.com^ ++||larumscandiel.com^ ++||latrinehelves.com^ ++||laugue.com^ ++||lavatoryhitschoolmaster.com^ ++||lawnoutlinechin.com^ ++||layingprocuregather.com^ ++||learntjubilee.com^ ++||leasecount.com^ ++||lechihah.com^ ++||legerikath.com^ ++||legrea.com^ ++||lehtymns.com^ ++||leisurelydepended.com^ ++||lengvtxpfoyi.com^ ++||lerrdoriak.com^ ++||lesrepresws.one^ ++||lessalle.com^ ++||letchooz.net^ ++||lgcofbuwuy.com^ ++||lgqxbjnhwru.top^ ++||liirtchf.com^ ++||lijtfkmmiisrli.xyz^ ++||linkrotation.ru^ ++||linksoftbox.ru^ ++||linnechaya.com^ ++||listenmolly.com^ ++||literpeore.com^ ++||littleneptunenews.com^ ++||littlmarsnews22.com^ ++||livorbarbes.com^ ++||lkpmprksau.com^ ++||llinkneww.ga^ ++||lmaruhavf.com^ ++||lmepychqzfpqlw.com^ ++||loastees.net^ ++||loazezoo.net^ ++||locold.com^ ++||loddingtoto.one^ ++||loolowhy.com^ ++||lorageiros.com^ ++||loralana.com^ ++||loraqefnohna.com^ ++||lorryinnercorrespond.com^ ++||loshrhaphae.com^ ++||loud-tower.pro^ ++||lowleafeontor.com^ ++||lphkquhbxakveo.com^ ++||lplimjxiyx.com^ ++||ltengronsa.com^ ++||ludicroussignify.com^ ++||lufbogazixz.com^ ++||luiisstldqvg.com^ ++||lukpush.com^ ++||lumeritix.com^ ++||luminous-iron.pro^ ++||luydark.com^ ++||lvpedtxfyur.com^ ++||lwullghht.com^ ++||lydianapkin.com^ ++||lyingdownt.xyz^ ++||m8ppac2on0xy.com^ ++||macouwou.com^ ++||maculedfalls.com^ ++||maghzenslumpy.com^ ++||magnificentflametemperature.com^ ++||maharbandi.tech^ ++||maiglair.net^ ++||mail.ezexfzek.com^ ++||mainnewsfuse.com^ +||makarswrig.com^ -+||mantledonager.com^ -+||mapaupotting.com^ -+||matterbadgerpsychic.com^ -+||mayalaze.xyz^ ++||malbal.club^ ++||mamparagallnut.com^ ++||mamtaurs.net^ ++||mansernema.com^ ++||manysoftlink.ru^ ++||marlpitbucku.com^ ++||massacreintentionalmemorize.com^ ++||masticsvorlage.website^ ++||mathematicallowertoward.com^ ++||matrix-news.net^ ++||matrix-news.org^ ++||maximus-time.com^ ++||maximus-time.net^ ++||maxprofitcontrol.com^ ++||maylnk.com^ ++||maynnjpdtifyoa.com^ ++||mbnot.com^ ++||mctotpcjwxali.com^ ++||meagplin.com^ ++||medadelem.xyz^ ++||medicinepriest.com^ ++||meegliwu.net^ ++||meet4you.net^ ++||mefyxfvhevtmews.com^ ++||megbuzzedaid.com^ ++||mekiroki.com^ ++||mekiroki.org^ ++||mekstolande.com^ ++||mentionedannulmentsuperstition.com^ ++||meridieswobber.com^ ++||merosgramash.com^ +||meshagreeable.com^ ++||metalbow.com^ ++||methineeutopia.com^ ++||mfmejnhte.com^ ++||mgayxlhrdiwi.com^ ++||mgksgxavfhx.com^ ++||mhadsd.com^ +||miixtocmpfjwlw.com^ ++||mineblok.ru^ ++||mintmanunmanly.com^ ++||mintsdrouket.com^ ++||miragederbend.com^ +||mishishoka.pro^ -+||missionarymargaret.com^ -+||mtaahmem.xyz^ -+||naturalcatchief.buzz^ -+||negativehorriblecrumple.com^ -+||ngpdamiursig.com^ -+||noawhaub.net^ -+||normanstaximan.com^ -+||oaptukeh.net^ -+||obnarium.com^ -+||occuse.com^ ++||misreputyso.xyz^ ++||miteredgasbags.com^ ++||mksovmhlxfnd.com^ ++||mkzqqhaakt.com^ ++||mluxmbgfxdcvp.com^ ++||mmatiybntjtq.com^ ++||mndsrv.com^ ++||moakaumo.com^ ++||moatauly.net^ ++||mobdel2.com^ ++||mobiflyc.com^ ++||mobiflyd.com^ ++||mobifoth.com^ ++||mobiledevel.com^ ++||mobpushup.com^ ++||mobstitial.com^ ++||modichytdc.com^ ++||modslaucher.download^ ++||monkyank.com^ ++||monocotwhorry.com^ ++||monthsrecoup.com^ ++||moorpanfenian.com^ ++||mordieuweeshee.com^ ++||mortypush.com^ ++||mosked.com^ ++||motherhoodlimiteddetest.com^ ++||motivationrejoice.com^ ++||motivessuggest.com^ ++||mpkwleyxkmt.com^ ++||mployeesihi.xyz^ ++||mpucqijsspv.com^ ++||mrfevale.com^ ++||mrtbbnr.com^ ++||mrtbbnrdip.com^ ++||mucinyak.com^ ++||muleyyanky.website^ ++||mumuendakuthyfo.xyz^ ++||munpractical.buzz^ ++||musmentportal.com^ ++||mutux.cfd^ ++||muzdownloads.ru^ ++||mvdwjofacq.com^ ++||mxiumroqnv.xyz^ ++||mxwgzxfn.com^ ++||my.audmrk.com^ ++||my83s1kw3u.com^ ++||myimagetracking.com^ ++||mykennettnow.com^ ++||mynotads.com^ ++||myqsmtptylicju.com^ ++||myrotations.ru^ ++||myrtleheathenmontleymontley.com^ ++||mysleepds.com^ ++||mysoftbox.ru^ ++||mysoftrotate.ru^ ++||mysweetteam.com^ ++||nadbxteuih.com^ ++||naewynn.com^ ++||nallytohe.xyz^ ++||namelymutiny.com^ ++||nanouwho.com^ ++||nasalsnonego.com^ ++||natapea.com^ ++||ndbegantoti.xyz^ ++||nddqijavkbdvyn.com^ ++||nebbishbraeman.com^ ++||negligentresponded.com^ ++||negotiationmajestic.com^ ++||nestleexperiment.com^ ++||netflopin.com^ ++||netstam.com^ ++||new-park-hunt.ml^ ++||newadsfit.com^ ++||newadslab.com^ ++||newadsshop.com^ ++||newhigee.net^ ++||newlywedblew.com^ ++||newprofitcontrol.com^ ++||news-central.io^ ++||news-central.org^ ++||news-host.net^ ++||newsoftboxi1.ru^ ++||newtdslink.ru^ ++||nezutwdmzvrkv.com^ ++||nfrpxmmb.com^ ++||nhdddxvwpmriirk.com^ ++||nipjutux.com^ ++||nkepulqeetn.com^ ++||nlhmeeybhxohqfh.com^ ++||nnewllink.ga^ ++||noahparroty.com^ ++||noelsdoc.cam^ ++||noiseeastern.com^ ++||noksauxi.com^ ++||nomeuspagrus.com^ ++||nonfattoplike.com^ ++||nonspewpa.com^ ++||nonwarmarge.website^ ++||nooncommentary.com^ ++||nosselphloxes.com^ ++||notadsworld.com^ ++||notcotal.com^ ++||notifications-news.com^ ++||notifsendback.com^ ++||notifsworld.com^ ++||notifyoutspoken.com^ ++||noucoush.net^ ++||nova-files-trustics.ml^ ++||noxiousrecklesssuspected.com^ ++||nozzorli.com^ ++||nqycceat.com^ ++||ntafihnubwg.com^ ++||nttogetherefwukou.xyz^ ++||ntucotbh.com^ ++||nucadwobsvwxw.com^ ++||nuclearscalp.com^ ++||nufuglou.net^ ++||nuggetschou.com^ ++||nuglizesi.pro^ ++||nums1.link^ ++||nuvzuha.com^ ++||nvane.com^ ++||nvkvrqlkglwn.com^ ++||nxtpsh.top^ ++||nygwcwsvnu.com^ ++||nymphacebids.com^ ++||nyqlwjjghhgsqeg.com^ ++||oaboudsi.com^ ++||oajagroax.com^ ++||oalsauwy.net^ ++||oaphooftaus.com^ ++||oastalra.net^ ++||objectedsheetrobin.com^ ++||obscus.com^ ++||observativus.com^ ++||obsessivepetsbean.com^ ++||obsore.com^ ++||obssiyjiachvh.xyz^ ++||oclopxjiykqfj.com^ ++||oebwcdrmpx.com^ ++||oedspoiletkni.xyz^ ++||oerljdvj.com^ ++||offalakazaman.com^ ++||offchatotor.com^ ++||offmachopor.com^ ++||ofmscgesmjmo.com^ ++||ofslakotha.com^ ++||ofthecathedral.xyz^ ++||oglprcjlenlkke.com^ ++||oherhome.xyz^ ++||ohnkitviv.com^ ++||oigduusrva.com^ ++||oiurlcdmlsb.com^ ++||olatumal.com^ ++||omanala.com^ ++||omasatra.com^ ++||omazeiros.com^ ++||omchimcharchan.com^ ++||omclacrv.com^ ++||omclyzyapf.com^ ++||omding.com^ ++||omggxbcdqj.com^ ++||omlktdqrzwrtn.com^ ++||ommeowthor.com^ ++||omnidokingon.com^ ++||onaugan.com^ ++||onclarck.com^ ++||onclickrev.com^ ++||onclickserver.com^ ++||ondeerlingan.com^ ++||oneclck.net^ ++||onecomedyservices.com^ ++||onelivetra.com^ ++||oneqanatclub.com^ ++||ongastlya.com^ ++||onkavst.com^ ++||onlinenothome.com^ ++||onlyry.net^ ++||onshowit.com^ ++||onsnivyr.com^ ++||onsolrockon.com^ ++||onwasrv.com^ ++||oodroglu.net^ ++||oolsouch.net^ ++||opclauncheran.com^ ++||opootsoa.net^ ++||opshuckleor.com^ ++||optidownloader.com^ ++||orctosqrfit.com^ ++||orhyhgjyjjmofy.com^ ++||ormxitgmvprvhxd.com^ ++||orvilletourer.guru^ ++||or||greemeek.net^ ++||osfsffcovoaxgmc.com^ ++||ositic.com^ ++||osshydreigonan.com^ ++||othandhadb.xyz^ ++||otheyrami.xyz^ ++||otireofhisl.one^ ++||otozoumcampine.com^ ++||oucuftuthy.com^ ++||ouhavebe.xyz^ ++||oumtoujo.net^ ++||oupe71eiun.com^ ++||ourcoolposts.com^ ++||ourteeko.com^ ++||outaipoma.com^ ++||outpushcutworm.cam^ ++||outseylor.com^ +||outsoarcarouba.com^ -+||ovwbobnyy.com^ -+||passworddrunkenheating.com^ ++||outyanmegaom.com^ ++||ouzekomtok.com^ ++||overgalladean.com^ ++||overmewer.com^ ++||overonixa.com^ ++||overthetopexad.com^ ++||overzoruaon.com^ ++||overzubatan.com^ ++||ovfratlkxerv.xyz^ ++||ovqcmbbxppqquc.com^ ++||ovxlcwqkrxpv.com^ ++||ownsattrib.life^ ++||oxhlhmiklsa.com^ ++||oxtdafetnjuf.com^ ++||oyavrbvqnmnfw.com^ ++||ozdfhysr.com^ ++||ozooltik.com^ ++||p59othersq.com^ ++||p64gk2yhba0p.com^ ++||padsdel2.com^ ++||padsdelivery.com^ ++||padsdown.com^ ++||pageantbagauspice.com^ ++||paifemouchoa.com^ ++||paintversion.com^ ++||paiwaupseto.com^ ++||palama2.co^ ++||pallorvain.com^ ++||paniskbourdon.com^ ++||panyinadiin.xyz^ ++||pappibottoms.website^ ++||parank.com^ ++||parishleft.com^ ++||parmackdormice.com^ ++||parumal.com^ ++||pasaltair.com^ ++||pascaf.com^ ++||passingcelebrate.com^ ++||paunct.com^ ++||paurozel.net^ ++||pazzfun.com^ ++||pbniuvctybu.com^ ++||peanic.com^ ++||peggedperfins.com^ ++||pelagicmismate.com^ ++||pentalime.com^ ++||peopledarwin.com^ ++||perehodny.ru^ ++||perhaw.com^ +||pernkcpymuyshbd.xyz^ -+||perukesoorial.com^ -+||pheval.com^ -+||phontomsasa.cfd^ -+||plmtshagffgvdnf.top^ -+||pmjrvjanbawam.com^ ++||persesgnetum.com^ ++||pertyvaluationia.monster^ ++||pervertmine.com^ ++||petalslars.com^ ++||petrifacius.com^ ++||petwoodfustet.com^ ++||pgdbkorisfr.com^ ++||pgynmmahny.com^ ++||phdxfvcyhyl.com^ ++||phee1oci.com^ ++||phenotypebest.com^ ++||phenotypeco.com^ ++||phenotypepro.com^ ++||pholtust.com^ ++||phouwhou.com^ ++||phulaque.com^ ++||phuttrice.com^ ++||pickinnimiety.com^ ++||pietyinputinsult.com^ ++||pinwalerompers.com^ ++||pioneersuspectedjury.com^ ++||pipeschannels.com^ ++||pjwwvpcgbvbyyka.com^ ++||pkaafjeokqc.com^ ++||plaincobloaf.com^ ++||plex4rtb.com^ ++||plkatdmeje.com^ ++||plkjljrabdt.com^ ++||plutonactg.com^ ++||pnpjhsgomjrx.com^ +||pnpvxlbrft.com^ -+||poptube.fun^ -+||poseph.com^ -+||potlikivmpaugt.com^ -+||pubasks.com^ -+||pwabtouhw.com^ -+||qlowivucwh.com^ -+||qmnemxade.com^ ++||poocomug.com^ ++||popruexo.com^ ++||popuzothe.com^ ++||popxperts.com^ ++||porcelainfurtherties.com^ ++||portentprepack.website^ ++||positive-news.net^ ++||positive-news.org^ ++||potorootests.com^ ++||poutauge.net^ ++||ppcpnvwskrdnev.com^ ++||pqnnjjpzarpb.com^ ++||prawnsimply.com^ ++||precedentadministrator.com^ ++||precipitationsloganhazard.com^ ++||predominantleave.com^ ++||prelandtest01.com^ ++||premiumredir.ru^ ++||prerogativefranticinfractructure.com^ ++||prestoris.com^ ++||previv.com^ ++||prhzxq.com^ ++||prickjuvenileturnstile.com^ ++||prizerspirned.com^ ++||problemsendeavourbending.com^ ++||professionalsly.com^ ++||promisecurtainscurrency.com^ ++||propellerads.tech^ ++||prospecttunaante.com^ ++||prostotds.ru^ ++||prowlcouple.com^ ++||pruneslustremind.com^ ++||prutnonny.com^ ++||prutosom.com^ ++||prytrainer.com^ ++||psalisverbate.com^ ++||pseepsoo.com^ ++||psidsucm.com^ ++||psilroum.com^ ++||psoageph.com^ ++||psoorsen.com^ ++||ptbehnrtk.com^ ++||ptecedagly.pro^ ++||ptinouth.com^ ++||pu5hk1n2020.com^ ++||publja.com^ ++||puffwigtaxin.com^ ++||pukekotautog.com^ ++||pumpmulticultural.com^ ++||pupidaetoluyls.com^ ++||pursuitnauseousinvalid.com^ ++||push-news-info.com^ ++||push-news.org^ ++||pushalk.com^ ++||pushamir.com^ ++||pushbeakercelebrate.com^ ++||pushdelone.com^ ++||pushkav.com^ ++||pushlapush.com^ ++||pushlarr.com^ ++||pushlemm.com^ ++||pushlnk.com^ ++||pushnewsnow.com^ ++||pushorg.com^ ++||pushsight.com^ ++||pushzolo.com^ ++||putbid.net^ ++||puzatron.site^ ++||puzzlepursued.com^ ++||pvxfkublrecbtjb.xyz^ ++||pwidonnctmdc.com^ ++||pwmyqojtdwhqqr.com^ ++||qanatn.com^ ++||qarewien.com^ ++||qcdwodgn.com^ ++||qhdeseiqcc.com^ ++||qhovrbepxmunqy.com^ ++||qimrcqxkqwbtn.com^ ++||qinvaris.com^ ++||qkdbufas.com^ ++||qkycbbarwyuef.com^ ++||qlguovhtwxnpkd.com^ ++||qmbaabdsyg.com^ ++||qmomtjuteluq.com^ ++||qmuonbdoqb.com^ ++||qoqnxufwkjl.com^ ++||qpanxedipedrqtu.com^ +||qpwtovicespr.com^ -+||recoverhatred.com^ -+||redouthicks.com^ ++||qqjfwixfiubkc.com^ ++||qqrxvafepbjclcd.com^ ++||qrctbsfk.com^ ++||qrovihmhxbnnm.com^ ++||qsdsejarkznkqa.com^ ++||quackdamaging.com^ ++||qubenwwxlspyki.com^ ++||queerfezzy.com^ ++||quiaresp.com^ ++||qwgbxvmtuejv.com^ ++||qwofxnddafhuouy.com^ ++||qygloltexvuno.com^ ++||qyiweuvlm.com^ ++||qymyoribjnp.com^ ++||rabidamoral.com^ ++||rablinhiphape.com^ ++||raggedselsyn.com^ ++||raicabuy.net^ ++||rainyautumnnews.com^ ++||rapid-sugar.pro^ ++||rarath.com^ ++||rascalsgiantry.com^ ++||rasorescampout.com^ ++||ratingberglet.com^ ++||ratize.com^ ++||ravalamin.com^ ++||rawxgnuwolda.com^ ++||raylnk.com^ ++||rcmijosajeu.com^ ++||rdgtvgmtauro.com^ ++||reagend.com^ ++||realpopbid.com^ ++||reclineburp.com^ ++||recurseagin.com^ ++||redirnewsoft.ru^ ++||redistedi.com^ ++||redonetype.com^ ++||reedschandler.com^ ++||refeas.com^ +||refilmsreeper.website^ -+||reinstandpointdumbest.com^ -+||rfeidvpm.com^ -+||rihosaphe.com^ -+||rkujsnsbo.top^ -+||roesdwaibly.com^ ++||refrainskiereatable.com^ ++||regadsacademy.com^ ++||regadspro.com^ ++||regadsworld.com^ ++||regimehabitwarfare.com^ ++||regizm.com^ ++||rehearsallung.com^ ++||rehearsevicinity.com^ ++||relationshipregard.com^ ++||reluraun.com^ ++||remeyr.com^ ++||removedispel.com^ ++||repappcloud.com^ ++||respondenemy.com^ ++||restakewigan.com^ ++||restrictionsempty.com^ ++||resultedmundconceal.com^ ++||revenuebosom.com^ ++||revolutioninsinuate.com^ ++||rewriteshamerefuge.com^ ++||reykijnoac.com^ ++||rgpvgoej.com^ ++||rgyxispegu.xyz^ ++||rhbuvnmlyxwsaom.com^ ++||rhendam.com^ ++||ricinusdagomba.com^ ++||ridsilry.net^ ++||rimediapush.com^ ++||riolenproce.xyz^ ++||ripeevent.com^ ++||ripefly.com^ ++||ripevibratevilla.com^ ++||risausso.com^ ++||rjw4obbw.com^ ++||rkfswfjgixoglq.com^ ++||rkovfnjqsewafk.com^ ++||rmndme.com^ ++||rndchandelureon.com^ ++||rnkgupvykgm.com^ ++||roaptesh.com^ ++||robohobox.com^ ++||robustcutlery.com^ ++||rocketlinks.ru.com^ ++||rockstartpush.com^ ++||rockstartpush.net^ ++||rocoloagrotis.fun^ ++||rodirgix.com^ ++||roduster.com^ ++||roinduk.com^ ++||rongseavy.com^ ++||rooksreused.website^ ++||roosteem.net^ ++||rosytotal.pro^ ++||rotateme.ru^ ++||rotatemysoft.ru^ ++||rotationlinks.ru^ ++||rouar.com^ ++||rouinfernapean.com^ ++||rouonixon.com^ ++||rouwhoor.com^ ++||rovamucm.com^ ++||rowlnk.com^ ++||rpmsophiashoe.com^ ++||rpncbvynmbe.com^ ++||rsationhesa.one^ +||rswfhkmhcl.com^ -+||rxupmdvnlard.com^ -+||scldqmjsho.com^ -+||scrapethrillmostly.com^ -+||sdgkffgbbddk.com^ -+||seedattentiontestify.com^ -+||semgfavce.com^ ++||rtb1bid.com^ ++||rtbbnrdip.com^ ++||rtbdnav.com^ ++||rtbpopd.com^ ++||rtbtraffic.com^ ++||rtbtrail.com^ ++||rtftdivompumee.com^ ++||rtrgt.com^ ++||rtrgt2.com^ ++||ruffstemmer.casa^ ++||ruftodru.net^ ++||rugefinu.net^ ++||rulovar.com^ ++||rushpushy.com^ ++||russiaroman.com^ ++||ruxsuqwfwx.com^ ++||rvbsugxblak.com^ ++||rwrunurmhly.com^ ++||rxjfsewuypfcco.com^ ++||rycsuisa.com^ ++||ryntmyhahy.com^ ++||rypojufqbgxd.com^ ++||s9jp9xogfz.com^ ++||sabaothamsonia.com^ ++||saidflightmusician.com^ ++||saikeela.net^ ++||saipel.com^ ++||salishcoenact.com^ ++||saltantpipped.live^ ++||samuelgirlism.com^ ++||sarinfalun.com^ ++||saurug.com^ ++||saushoag.net^ ++||savefromad.net^ ++||sawedhindgut.com^ ++||sawyerbravery.com^ ++||saylnk.com^ ++||sb89347.com^ ++||sbscrma.com^ ++||scarl.shop^ ++||scenicpursley.com^ ++||schecy.com^ ++||schloopfateful.com^ ++||schokh.com^ ++||schtickshalier.cam^ ++||scoureroutcry.cam^ ++||screenov.site^ ++||scrogrearm.com^ ++||scrollhandful.com^ ++||sdcrnfjo.com^ ++||seatsrehearseinitial.com^ ++||secludegerman.com^ ++||sectordisturb.com^ ++||seekoflol.com^ ++||sekikyurlnsgc.com^ ++||selfemployedbalconycane.com^ ++||selvil.com^ ++||semalinkar.com^ ++||semsicou.net^ ++||sentbarn.com^ ++||sentimentalconflict.pro^ ++||setopsdata.com^ ++||seveelumus.com^ ++||severegaze.com^ ++||sfvrvgkwl.com^ ++||sgsincentlyse.xyz^ ++||shapta.com^ ++||sharedfragileproduced.com^ ++||sheeftee.net^ ++||sheerdaulpusher.com^ ++||sheetchi.net^ ++||sheschemetraitor.com^ ++||shiftclang.com^ ++||shinglelatitude.com^ ++||shinyshock.pro^ ++||shoecamep.one^ ++||shoop4.com^ ++||shootoax.com^ ++||shopshoist.com^ ++||shoreeds.com^ ++||shoreexi.net^ ++||shortfailshared.com^ ++||show-review.com^ ++||showishsinus.com^ ++||shrovedwags.casa^ ++||shutkeufuchgbo.com^ ++||sh|ptewauta.net^ ++||sibrdmvnu.com^ +||sienns.com^ -+||singingdrawback.com^ -+||slavre.com^ -+||snonoz.com^ ++||sigerait.net^ ++||sihvhvlcfrbb.com^ ++||silverundergofold.com^ ++||simplebrutedigestive.com^ ++||simplicitystoppercolonel.com^ ++||simplisticpitch.pro^ ++||sinmgaepu3or9a61w.com^ ++||sinwebads.com^ ++||siolmkejst.com^ ++||siyphtwvj.com^ ++||skillsombineu.xyz^ ++||skylookneeded.guru^ ++||sleevedcaelum.com^ ++||slgynezaygkjqi.com^ ++||slietap.com^ ++||slowdn.net^ ++||sltvhyjthx.com^ ++||smentbradsh.xyz^ ++||sniggerhousehold.com^ ++||snlynotquite.buzz^ ++||snobdomobeyeo.com^ ++||snortedbincom^ ++||snxjvwxbqiy.com^ ++||soccup.com^ ++||softboxik1.ru^ ++||softboxis2.ru^ ++||softboxtds.ru^ ++||softclicks.ru^ ++||softmediya.ru^ ++||softovikget.ru^ ++||softperehod.ru^ ++||solodar.ru^ ++||solumn.com^ ++||solvingcue.com^ ++||somdielgutta.com^ ++||sonumal.com^ +||sorrilytoon.com^ -+||sparrygodhood.com^ -+||spnbjuisyi.com^ -+||sqsiddqvq.com^ ++||soulfulinevitable.pro^ ++||sousefulhea.buzz^ ++||souvamoo.net^ ++||souwhair.com^ ++||spaceshipads.com^ ++||spapua.com^ ++||specialityharmoniousgypsy.com^ ++||specificationmadamdetriment.com^ ++||specimenspeekzone.com^ ++||spellingunacceptable.com^ ++||spiuft.com^ ++||sportevents.news^ ++||sprm4xcn.top^ ++||spybuildsoccasional.com^ ++||squalmtupelos.com^ ++||squebe.com^ ++||srique.com^ ++||ssepwmjmtnqsn.com^ +||sshopee.beauty^ ++||ssqyuvavse.com^ ++||sstewwlrgycbq.com^ +||ssyajuhvf.com^ -+||swmmkckpa.xyz^ ++||stadiumembezzlementoil.com^ ++||stambashimmy.com^ ++||standardscaldexcessive.com^ ++||statelyexpertwere.com^ ++||statisticsdemandeddeficit.com^ ++||staygg.com^ ++||steadyrevulsioncorky.com^ ++||steamlargelyjustified.com^ ++||steep-opening.com^ ++||steepedgoofed.com^ ++||stepmotherincomingpluck.com^ ++||stickertable.com^ ++||stilaikr.com^ ++||stoaphalti.com^ ++||stoaxugi.com^ ++||stockingsbeanspowerless.com^ ++||stocktangle.com^ ++||stogerde.com^ ++||stolefocusconstituent.com^ ++||storners.com^ ++||storylnk.com^ ++||stossfussily.com^ ++||streamtoclick.com^ ++||strenuousside.com^ ++||stressfulconsumerdumbest.com^ ++||subtractrelative.com^ ++||suburbincriminatesubdue.com^ ++||success-news.net^ ++||success-news.org^ ++||successivebaby.com^ ++||sulfitevariola.com^ ++||sunbowskraal.com^ ++||superadbid.com^ ++||superbisle.com^ ++||superintendfancystrangely.com^ ++||superiortds.ru^ ++||suppoc.com^ ++||surestmiswire.com^ ++||surv2you.com^ ++||surv2you.net^ ++||surv2you.org^ ++||survey2you.com^ ++||survey2you.net^ ++||survey2you.org^ ++||survey4you.co^ ++||svkmxwssih.com^ ++||svsjfwwgatdxqr.com^ ++||svvcudoocwud.com^ ++||swampgillspersonnel.com^ ++||swedecornysupper.com^ ++||swiftpedigreebike.com^ ++||swndtvvwq.com^ ++||swocqrwtdpir.com^ ++||swrirjtk.com^ ++||swrlmutuscoj.com^ ++||syenitetatler.tech^ ++||symbolultrasound.com^ ++||syncommisty.com^ ++||syntonyretalk.com^ +||sysdmt.com^ ++||systil.com^ ++||syynstsrb.com^ ++||tablequantity.com^ ++||tadadamads.com^ ++||tadamads.com^ ++||taigasquarl.com^ ++||taizigly.net^ ++||takeallsoft.ru^ ++||takelnk.com^ ++||takenewsoft.ru^ ++||takepalpablenuisance.com^ ++||takhiza.com^ ++||tallyhoquires.com^ ++||tammyknurl.com^ ++||tankastapia.com^ ++||tassagohecatic.com^ ++||taxedborley.com^ ++||tayloroutgain.com^ ++||tayqxhiugetm.top^ ++||tds1k.ru^ ++||tdsrotate.ru^ ++||tdsrotations.ru^ ++||teaser.red^ +||teemingaymoro.com^ ++||teethaur.com^ ++||telamongobi.com^ ++||tempterbothroi.com^ ++||tepidneebor.com^ ++||terminargal.com^ ++||terminusdeeper.com^ ++||terrificlukewarm.com^ ++||testsite34.com^ ++||tetrantreverer.com^ ++||teurop.com^ ++||tfsihjmtrjnopxu.com^ ++||tgajkmoylonqew.com^ ++||tgandmotiv.xyz^ ++||tgracefulc.one^ ++||thaged.com^ ++||thalrjdulkbopbv.com^ ++||thatobjective.pro^ ++||theconatyclub.com^ ++||thefreeadv.com^ ++||thereuponcanadian.com^ ++||thesesooey.com^ ++||thibetamylum.com^ ++||thinbi.com^ ++||thinkseducation.com^ ++||thirtmarie.website^ ++||thisbestreward.com^ ++||thjjurggthdu.com^ ++||thooruwee.com^ ++||thorgeergiwi.com^ ++||thraxgawks.guru^ ++||throughdfp.com^ ++||thursailso.com^ ++||tickmatureparties.com^ ++||tidingscooked.com^ +||tiffybetween.website^ -+||timessmalldraught.com^ -+||tlrtjgnaumgayk.com^ -+||toibmodlefjb.xyz^ -+||tragency-clesburg.icu^ ++||tillwscycyrn.com^ ++||timecrom.com^ ++||timerseeming.com^ ++||tincalsamiably.website^ ++||tintersloggish.com^ ++||titlin.com^ ++||tm5kpprikka.com^ ++||tmmkhspf.xyz^ ++||tnwhzxhnifwukt.com^ ++||todaysbestsellers.com^ ++||toeahenter.com^ ++||toggerymilieux.com^ ++||tomawilea.com^ ++||tomponcainite.com^ ++||toninjaska.com^ ++||tooviolatesymptom.com^ ++||topadbid.com^ ++||topbestscoreapp.com^ ++||toplinkz.ru^ ++||topmusicalcomedy.com^ ++||topnewadsgroup.com^ ++||topsoftlinks.ru^ ++||torigh.com^ ++||torrent-pug.site^ ++||torrent-repa.site^ ++||torrentuser.ru^ ++||tosuicunea.com^ ++||totalwowfeed.com^ ++||towerycacara.com^ ++||townervirgas.casa^ ++||tozoruaon.com^ ++||tpedsyyj.com^ ++||tpnygytjdqvq.com^ ++||tprzachf.com^ ++||tqgplpmbkoxeg.com^ ++||tqwloexv.com^ ++||tracedexplore.com^ ++||tracks20.com^ ++||tracksystem.online^ ++||trafficportsrv.com^ ++||translatecomicloss.com^ ++||trecurlik.com^ +||treeoutcry.com^ -+||tyjuphiaht.com^ -+||uiqakwjmugofbuu.com^ -+||uveillfxkpisfw.com^ -+||uwcwninhrpt.com^ -+||uyooouxjcngyuvc.com^ -+||victoriouspastimeculture.com^ ++||tretmumbel.com^ ++||trewnhiok.com^ ++||trianglesquidmetropolitan.com^ ++||triedecu.com^ ++||trixyapieces.com^ ++||trumphjardon.com^ ++||tsatwushcyiihh.com^ ++||tssandycateup.com^ ++||ttvfddlipb.com^ ++||tuckedhoroscopeforms.com^ ++||tuitionpancake.com^ ++||tujourda.net^ ++||tunted.com^ ++||turgh.com^ ++||turnwayleucin.com^ ++||tuzaanotto.com^ ++||tylocinpechan.com^ ++||tyluslandmil.com^ ++||tyromasghosted.com^ ++||uajcsutweohuab.com^ ++||uawcuelnjioc.com^ ++||uchkzmzehr.com^ ++||udookrou.com^ ++||udraokrou.com^ ++||ufaexpert.com^ ++||ufmnrbbm.com^ ++||uh3ye6ux.com^ ++||uhhotaillmoa.com^ ++||uihxtyagqysh.com^ ++||uj0g7.com^ ++||ujeejoan.net^ ++||ujyuenxiovjqh.com^ ++||ukectivetrai.one^ ++||ulathana.com^ ++||uleubyvjcttuqf.xyz^ ++||ulukdliketobeparto.xyz^ ++||unazumarillan.com^ ++||unbearablemessyammunition.com^ ++||unbeltsmoringa.com^ ++||uncinalmystes.com^ ++||uncise.com^ ++||undergiveto54.com^ ++||underwearglossary.com^ ++||unhabi.com^ ++||unhkhtpkax.com^ ++||unhorseaa.com^ ++||unimportant-vehicle.pro^ ++||unkoygvvxunt.xyz^ ++||unlrhnnan.com^ ++||unrotomon.com^ ++||unsigilyphor.com^ ++||untiledhaldu.com^ ++||untrendenam.com^ ++||untruerbelili.com^ ++||unwartortlean.com^ ++||updateinfo2022.icu^ ++||upeyganpell.website^ ++||upgliscorom.com^ ++||uplucarioon.com^ ++||uponhariyamar.com^ ++||uppardjets.com^ ++||uppsyduckan.com^ ++||upregisteelon.com^ ++||upshiftelates.com^ ++||uptolink.ru^ ++||upwate.com^ ++||upwelf.com^ ++||urechar.com^ ++||urgdom.com^ ++||urmavite.com^ ++||urusesdetrain.com^ ++||usantaetian.com^ ++||usedunderstood.com^ ++||uselnk.com^ ++||usinesmycete.xyz^ ++||usingswhoring.com^ ++||ustujuvo.com^ ++||usuage.com^ ++||usualaurated.com^ ++||utsukbrewst.website^ ++||utxfajlxjbkmue.com^ ++||uuknlfqi.com^ ++||uwhuglup.net^ ++||vaccine.phee1oci.com^ ++||vaeesspot.com^ ++||vailedapetaly.com^ ++||valpeiros.com^ ++||vamsoupowoa.com^ ++||variousinvoluntary.com^ ++||vashoagn.com^ ++||vassspot.com^ ++||vawulu.xyz^ ++||vbshybwwkywkhsw.com^ ++||veechirrup.com^ ++||veesspot.com^ ++||vehese.com^ ++||veinnotionmariner.com^ ++||vendgrusian.com^ ++||venkrana.com^ ++||vertelvnqxtgtu.com^ ++||vfyxjsclor.com^ ++||vhhotfndosn.com^ ++||vi69.work^ ++||viafurfrouchan.com^ ++||viahollow.com^ ++||viaphioner.com^ ++||vickovules.com^ ++||vigllnztz.com^ ++||vilith.com^ ++||vimohustu.com^ ++||vipcaptcha.live^ ++||virgonicer.com^ ++||virus.newadsclicks.com^ ++||vissregion.com^ ++||vitritehelves.com^ ++||vjzlgtnaov.com^ ++||vkbwvaibwcl.com^ +||vkgpnmrlexfws.com^ -+||vowrnpkfw.com^ -+||vulgartaivert.website^ -+||vvmjmkqvwesdcmt.xyz^ ++||vlrgltldc.com^ ++||vneffwecka.com^ ++||vnrkbnmoow.com^ ++||voeunblk.com^ ++||voicermortise.com^ ++||volatintptr.com^ ++||voldarinis.com^ ++||vooodkabelochkaa.com^ ++||vpbceulnfbx.com^ ++||vqkfkmexle.com^ ++||vrreequip.com^ ++||vuftouks.com^ ++||vxaawgfjbmdx.com^ ++||vzigttqgqx.com^ ++||wadauthy.net^ ++||waeshana.com^ ++||wafdistpicea.com^ ++||wahehegryde.com^ ++||waistcoatswimsuitham.com^ ++||walruscheers.com^ ++||wanestitch.com^ ++||warmlyusher.com^ ++||waryboot.pro^ ++||wastedperk.com^ ++||wastefulmeanwhileboss.com^ ++||watchlivesports4k.club^ ++||watchmytopapp.top^ ++||waterproofmanipulativereunion.com^ ++||wbidder2.com^ ++||wbvhtujbgo.com^ ++||wealop.com^ ++||webhit-now.com^ ++||webregadvertising.com^ +||webytom^ -+||wkpwymwacp.com^ ++||wesicuros.com^ ++||wheehiba.net^ ++||wheresmoropus.com^ ++||whethy.com^ ++||whihauve.net^ ++||whilot.com^ ++||whisperofisaak.com^ ++||wholehugestories.com^ ++||whompsranch.com^ ++||whuqpbeddwiqp.com^ ++||wideeyedlady.pro^ ++||winnerkur.com^ ++||winnersolutions.net^ ++||wintoyouprizes.info^ ++||wirratailage.com^ ++||witnessfeast.com^ ++||wivesdandyemulation.com^ ++||wjjjmruwucuibfj.com^ ++||wkyfgxxabvu.xyz^ ++||wledconsi.xyz^ ++||wmgtr.com^ ++||wolqundera.com^ ++||woncrawford.com^ ++||wondefulapplend.com^ ++||wonderlandads.com^ ++||woodbeesdainty.com^ ++||wopsedoaltuwipp.com^ ++||wopsedoaltuwn.com^ ++||wopsedoaltuwo.com^ ++||worldsportlife.com^ ++||wornie.com^ ++||wotmyjkdit.com^ ++||wowebahugoo.com^ ++||wowlnk.com^ +||wqedkddqge.com^ -+||wyphawhity.com^ -+||xjgdxfro.com^ -+||xstjtdwuxxs.com^ -+||xyosnsyydrfrjd.com^ -+||ynvyuhsdtfuht.xyz^ -+||ytzihf.com^ -+||zepare.com^ -+||znqip.net^ -+||goload.click^$third-party -+||0265331.com^$popup -+||abateall.com^$popup ++||wrigin.com^ ++||wriqus.com^ ++||wtdmegpwqivufcw.com^ ++||wuihplrxyhht.com^ ++||wumpeeps.net^ ++||wvaqoykha.com^ ++||wypetoggles.com^ ++||wzbngjhjak.com^ ++||x9socptyr.com^ ++||xcnqpwbeqanijjb.com^ ++||xdeqhxqu.com^ ++||xduufkgoprmdjq.com^ ++||xeekymvkxov.com^ ++||xegluwate.com^ ++||xerxyeprhbe.com^ ++||xfvgkboh.com^ ++||xgalaxi.online^ ++||xgzyfpmfkxa.com^ ++||xjzyxlesdcq.com^ ++||xlplssgki.com^ ++||xmlterra.com^ ++||xmsflzmygw.com^ ++||xmykvlmvbghko.com^ ++||xnnfchykwvgjmoh.com^ ++||xoktditxsmr.xyz^ ++||xotwqnjinpnaul.com^ ++||xpyqoxxnrwookj.com^ ++||xrdkktrdgkvcpn.com^ ++||xtkyesxcnyra.com^ ++||xwkuycrtwjirp.com^ ++||xxafjfesudkfuov.com^ ++||xxxvjmp.com^ ++||xyleticfrette.com^ ++||xylocscvup.com^ ++||yacurlik.com^ ++||yahorokoz.com^ ++||yakqgvuxijveh.com^ ++||yarerescalin.com^ ++||yboourdyi.com^ ++||yealnk.com^ ++||yearlylight.com^ ++||yechtlyexhgx.com^ ++||yeiydrlkojywhf.com^ ++||yeqinu.xyz^ ++||yfhlghhkb.com^ ++||ygsuopiwclywtxf.com^ ++||yieldpartners.com^ ++||yinhana.com^ ++||yjbauton.com^ ++||yljyjadlx.com^ ++||yllanorin.com^ ++||yonabrar.com^ ++||youlamedia.com^ ++||your-great-chance.com^ ++||youractualblog.com^ ++||youractualwords.com^ ++||yourbestappever.top^ ++||yourtopnews.com^ ++||yowledwarm.website^ ++||yoyadsdom.com^ ++||yqrqvledioqssnt.xyz^ ++||yrkycfjq.com^ ++||yssqseskiwfomhf.com^ ++||ytscphljcyjxcww.com^ ++||yttompthree.com^ ++||ywasnothyc.buzz^ ++||ywguxlwjbxnj.com^ ++||yxcubjqi.com^ ++||yxoedtdpgqjmpry.com^ ++||yxxdasgqajjssm.com^ ++||yydwkkxhjb.com^ ++||yygmslrwkwggh.com^ ++||zagtertda.com^ ++||zatnoh.com^ ++||zatuzwydzhteaj.com^ ++||zaubanel.com^ ++||zbnfhsk.com^ ++||zebcqbxbtw.com^ ++||zedsapp.com^ ++||zeinssibby.com^ ++||zesty-beer.pro^ ++||zeydsapps.com^ ++||zeypreland.com^ ++||zigachogra.com^ ++||zigzaggodmotheragain.com^ ++||zirdrax.com^ ++||zjwwhcdop.com^ ++||zkczzltlhp6y.com^ ++||zoawufoy.net^ ++||zoopaweb.com^ ++||zothucypti.pro^ ++||zouneeto.net^ ++||zprelandappslab.com^ ++||zprelandings.com^ ++||zsbwoqpcxj.com^ ++||zumzumar.com^ ++||zwqpqrtpjt.com^ ++||zycaphede.com^ ++||zygrophochi.com^ ++||adstoo.com^$third-party ++||biggboss16.de^$third-party ++||bitspush.io^$third-party ++||blzz.xyz^$third-party ++||clean-1-clean.club^$third-party ++||free3dgame.xyz^$third-party ++||jobbio.com^$third-party ++||lfjack.com^$script,third-party ++||musody.com^$third-party ++||putlockertv.com^$third-party ++||realhumandeals.com^$third-party ++||resetoff.pl^$third-party ++||rubyblu.com^$third-party ++||themediagrid.com^$third-party ++||triplelift.com^$third-party ++||webshark.pl^$third-party ++||xandr.com^$third-party ++||xgpub.com^$third-party ++/(https?:\/\/)\w{30,}\.me\/\w{30,}\./$script,third-party ++||2track.info^$popup ++||49n7wqynho5u.top^$popup ++||8wtkfxiss1o2.com^$popup ++||achieve-superprizes.life^$popup +||aclytatcula.ga^$popup ++||adblockerapp.net^$popup ++||adjoincomprise.com^$popup +||adsandcomputer.com^$popup -+||althef.com^$popup -+||artisticbuoyemphasize.com^$popup -+||asdasdad.net^$popup -+||awasrqp.xyz^$popup -+||bbcrgate.com^$popup ++||aglaulou.com^$popup ++||alightbornbell.com^$popup ++||andbegant.one^$popup ++||anmdr.link^$popup ++||articlepawn.com^$popup ++||azentace.com^$popup ++||b0oie4xjeb4ite.com^$popup ++||bastionthree.xyz^$popup ++||bbccn.org^$popup +||bestbonusprize.life^$popup ++||betfairpk.com^$popup ++||bluelinknow.com^$popup ++||blzz.xyz^$popup +||boshustaty.pro^$popup -+||cauthaushoas.com^$popup -+||clarifysuper.com^$popup -+||dailyc24.com^$popup -+||dartg665moetyor.com^$popup -+||dealingdisarrayanniversary.com^$popup -+||directionssecondary.com^$popup -+||directuklyecon.pics^$popup -+||eegeeglou.com^$popup -+||ejectbagsindefinite.com^$popup ++||c43a3cd8f99413891.com^$popup ++||catsnbootsncats2020.com^$popup ++||cgeckmydirect.biz^$popup ++||check-this-match.com^$popup ++||clean-1-clean.club^$popup ++||clickmobad.net^$popup ++||coaxterminal.com^$popup ++||coolmethod2theupdates.life^$popup ++||culainstrades.com^$popup ++||cvastico.com^$popup ++||data-px.services^$popup ++||diaperhumanpurify.com^$popup ++||dictatepantry.com^$popup ++||disreputablegenuinelyhonorary.com^$popup ++||download-file.org^$popup ++||dspsuper.com^$popup ++||dtx.click^$popup ++||easelgivedolly.com^$popup ++||enemieshemisphere.com^$popup ++||entry-system.xyz^$popup ++||estivaltodayz.com^$popup ++||exaltationinsufficientintentional.com^$popup ++||ezadblocker.com^$popup ++||fastmtn.com^$popup ++||fbmedia-ckl.com^$popup ++||fearless-middle.pro^$popup ++||feetihost.click^$popup ++||fenacheaverage.com^$popup ++||finance-hot-news.com^$popup ++||findprizesplace.life^$popup +||flowerself.xyz^$popup -+||followpractice.social^$popup -+||forecastsinglegait.com^$popup -+||g33ktr4ck.com^$popup -+||gasylicyg1e8n6po.com^$popup -+||get2m5sgstohne.com^$popup ++||formulacountess.com^$popup ++||g2afse.com^$popup ++||garmentsdraught.com^$popup +||gettopple.com^$popup -+||girls2date.club^$popup -+||goodvpnoffers.com^$popup -+||greatvpnoffers.com^$popup -+||guro2.com^$popup -+||hehighursoo.com^$popup -+||hsrvv.com^$popup ++||governessmagnituderecoil.com^$popup ++||grabclix.com^$popup ++||grabthisstream-now.com^$popup ++||greenlinknow.com^$popup ++||gripelive.com^$popup ++||grunoaph.net^$popup ++||harshlygiraffediscover.com^$popup ++||heartbiddsp.monster^$popup ++||heglosuty.com^$popup ++||helixmoonz.com^$popup ++||hermichermicfurnished.com^$popup ++||herthyptal.com^$popup ++||hopghpfa.com^$popup ++||howtolosebellyfat.shop^$popup ++||huskydesigner.pro^$popup ++||igubet.link^$popup +||imperturbablechoreinterrogation.com^$popup -+||isohuntx.com/vpn/$popup -+||jutprolificlax.com^$popup -+||kc8vo2l73b7j.top^$popup -+||lanceabuse.com^$popup ++||incomprehensibleacrid.com^$popup ++||interesteddeterminedeurope.com^$popup ++||intimidatekerneljames.com^$popup ++||invaderannihilationperky.com^$popup ++||ja2n2u30a6rgyd.com^$popup ++||jads.co^$popup ++||kindleloving.com^$popup ++||knockoutantipathy.com^$popup ++||kuzyvyni.pro^$popup +||launchreliantcleaver.com^$popup ++||limpingfish.pro^$popup ++||lite-1x742136.top^$popup ++||lkojioq.net^$popup ++||lobimax.com^$popup ++||lplimjxiyx.com^$popup ++||luckyforbet.com^$popup ++||massacreintentionalmemorize.com^$popup ++||meteorclashbailey.com^$popup +||miraclenecklace.com^$popup -+||missionarymargaret.com^$popup -+||mkjsqrpmxqdf.com^$popup -+||noerwe5gianfor19e4st.com^$popup -+||obnarium.com^$popup -+||okayfreemanknot.com^$popup -+||onlinefinanceworld.com^$popup -+||pickupfaxmultitude.com^$popup -+||plantpreventioncrab.com^$popup -+||qamwm5o8dlgijte.com^$popup -+||r3f.technology^$popup -+||rog4.com^$popup -+||saltycarboninsulting.com^$popup -+||sex-and-flirt.com^$popup -+||simplysemblance.com^$popup -+||slaydesperatelyimmensely.com^$popup -+||smg8oo4njst45oene.com^$popup ++||monkyank.com^$popup ++||motherhoodlimiteddetest.com^$popup ++||motivessuggest.com^$popup ++||mutux.cfd^$popup ++||news-host.net^$popup ++||noaon2.com^$popup ++||nonspewpa.com^$popup ++||notifications-news.com^$popup ++||notifsendback.com^$popup ++||oalsauwy.net^$popup ++||obituaryfuneral.com^$popup ++||oblongseller.com^$popup ++||oncertaino.xyz^$popup ++||onclickprediction.com^$popup ++||oneqanatclub.com^$popup ++||outaipoma.com^$popup ++||ovdimin.buzz^$popup ++||palama2.co^$popup ++||pamper.buzz^$popup ++||payvclick.com^$popup ++||peeredgerman.com^$popup ++||pelagicmismate.com^$popup ++||pitcatet.live^$popup ++||plainmarshyaltered.com^$popup ++||platitudezeal.com^$popup ++||ponti-pzk.com^$popup ++||post-redirecting.com^$popup ++||prawnsimply.com^$popup ++||precedentadministrator.com^$popup ++||preventionbitten.com^$popup ++||profitablegatetocontent.com^$popup ++||pursuitnauseousinvalid.com^$popup ++||push-news-info.com^$popup ++||pvclouds.com^$popup ++||quarrelaimless.com^$popup ++||realfinanceblogcenter.com^$popup ++||ripevibratevilla.com^$popup ++||romanceally.com^$popup ++||rulefloor.com^$popup ++||seatsrehearseinitial.com^$popup ++||selfemployedbalconycane.com^$popup ++||sheschemetraitor.com^$popup ++||shortfailshared.com^$popup ++||silverundergofold.com^$popup ++||skouns.club^$popup +||smotherlameoven.com^$popup -+||soundelktemper.com^$popup -+||spacecloudstore.com^$popup -+||studiocustomers.com^$popup -+||tabledownstairsprovocative.com^$popup -+||trackytrack02.com^$popup -+||turnipobjection.com^$popup ++||solvingcue.com^$popup ++||specialityharmoniousgypsy.com^$popup ++||speedsupermarketdonut.com^$popup ++||spellingunacceptable.com^$popup ++||spiuft.com^$popup ++||st-rdirect.com^$popup ++||staaqwe.com^$popup ++||steamlargelyjustified.com^$popup ++||sunsetpersuadeaffectionately.com^$popup ++||sweaty-garage.pro^$popup ++||tffkroute.com^$popup ++||toshelmeton.com^$popup ++||tracks20.com^$popup ++||tracksystem.online^$popup ++||tuitionpancake.com^$popup ++||ulukdliketobeparto.xyz^$popup ++||updateinfo2022.icu^$popup ++||utationforh.buzz^$popup ++||utndln.com^$popup ++||veinnotionmariner.com^$popup ++||wadmargincling.com^$popup +||waredscots.casa^$popup -+||znqip.net^$popup -+||googleapis.com/sfpride/sponsors/$domain=sfpride.org -+||jam.hearstapps.com/js/renderer.js -+||xxxhd.cc/ads/$popup -+||snipersex.com/banners/ -+||0xtracker.com/assets/advertising/ ++||watchadsfree.com^$popup ++||watchlivesports4k.club^$popup ++||webhit-now.com^$popup ++||welfarefit.com^$popup ++||whairtoa.com^$popup ++||woodbeesdainty.com^$popup ++||wytyphoji.pro^$popup ++||xlviirdr.com^$popup ++||yy8fgl2bdv.com^$popup ++||zaglushkaaa.com^$popup ++||clipxn.com^$third-party ++||in3x.net^$third-party ++||bestdatinghere.life^$popup ++||datingshall.life^$popup ++||gayfinder.life^$popup ++||hotplay-games.life^$popup ++||hotplays-cams.life^$popup ++||lncredlbiedate.com^$popup ++||adsales.snidigital.com^ ++||akamaized.net/mr/popunder.js ++||mantisadnetwork.com/recommend.min.js ++||scriptadmin.com/scripts/popunder.js ++||toplist.raidrush.ws^$third-party ++||primeroll.go2affise.com^ ++||d12dky1jzngacn.cloudfront.net^ ++||d12ylqdkzgcup5.cloudfront.net^ ++||d13vul5n9pqibl.cloudfront.net^ ++||d1bci271z7i5pg.cloudfront.net^ ++||d1g2nud28z4vph.cloudfront.net^ ++||d1hgdmbgioknig.cloudfront.net^ ++||d1jwpd11ofhd5g.cloudfront.net^ ++||d1sowp9ayjro6j.cloudfront.net^ ++||d2byenqwec055q.cloudfront.net^ ++||d2jp87c2eoduan.cloudfront.net^ ++||d33fc9uy0cnxl9.cloudfront.net^ ++||d3evio1yid77jr.cloudfront.net^ ++||d3ohee25hhsn8j.cloudfront.net^ ++||d3rkkddryl936d.cloudfront.net^ ++||d3sdg6egu48sqx.cloudfront.net^ ++||d3tfz9q9zlwk84.cloudfront.net^ ++||d7gse3go4026a.cloudfront.net^ ++||d91i6bsb0ef59.cloudfront.net^ ++||dktr03lf4tq7h.cloudfront.net^ ++||dm62uysn32ppt.cloudfront.net^ ++||dtmm9h2satghl.cloudfront.net^ ++||dtu2kitmpserg.cloudfront.net^ ++||dy5t1b0a29j1v.cloudfront.net^ ++||cctv.lol/show/$popup ++||iqbroker.com/lp/*?aff=$popup ++||nutaku.net/signup/landing/$popup,third-party ++||tracking.keyxel.com^$popup ++||byxxxporn.com/300x250.html ++||drtladv.com^ ++||camonster.com/landing/$popup,third-party ++||crpop.livejasmin.com^$popup ++||amcdn.co.za/scripts/javascript/dfp.js ++||apkmaven.io/sw.js +||cdn.http.anno.channel4.com/m/1/$media,domain=uktvplay.co.uk ++||cdn.manga9.co^ +||data.angel.digital/images/b/$image -+||hortidaily.com/b/ -+||megashare.website/js/safe.ob.min.js -+||observerbd.com/ad/ -+||sundayworld.co.za/wp-content/uploads/*/home-page-take-over- -+||triangletribune.com/cache/sql/fba/ -+||trumparea.com/_adz/ -+||xtb.com^$third-party,domain=cool-etv.net -+||yahoo.com/m/gemini_api/ -+||routeumber.com^$popup,domain=hltv.org -+/^https?:\/\/.*\.(jpg|jpeg|gif|png|svg|ico|js|txt|css|srt|vtt)/$popup,domain=0123movie.ru|123-movies.ninja|123movies-official.site|123movies.net|123movies.tc|123movies2022.org|123moviesfree4u.com|123movieshub.tc|123moviesme.online|123proxy.biz|123series.ru|1movieshd.com|2umovies.me|2umovies.pro|4anime.gg|4hdmovie.com|4stream.gg|5movies.fm|720pstream.tv|9anime.to|9xmovies.homes|adblockstrtape.link|adf.ly|animefreak.vip|animekisa.cc|animepahe.com|animesonline.cz|animesultra.com|asianembed.io|audaciousdefaulthouse.com|bato.to|batotoo.com|batotwo.com|bflix.ru|bflix.to|buffstreams.tv|bunnycdn.ru|clicknupload.to|clipconverter.cc|cloudvideo.tv|cmovies.online|cmovies.vc|dailyuploads.net|databasegdriveplayer.co|divicast.com|dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.video|dood.watch|dood.ws|doodcdn.com|dopebox.to|dramacool.pk|eplayvid.com|eplayvid.net|eplsite.uk|europixhd.net|exey.io|extreme-down.plus|fcdn.stream|files.im|filmestorrents.net|filmyzilla.beauty|filmyzilla.directory|filmyzilla.makeup|flashx.net|flixhq.ru|flixtor.video|fmovies.app|fmovies.ps|fmovies.pub|fmovies.to|fmovies.world|fplayer.info|gdtot.nl|go-stream.site|gogoanime.run|gogoanimes.to|gogomovies.to|gogoplay1.com|gomovies.cyou|gomoviz.xyz|gospeljingle.com|gowatchseries.live|gowatchseries.online|hds-streaming-hd.com|hexupload.net|hindilinks4u.cam|hindilinks4u.nl|housecardsummerbutton.com|hulkstreams.com|hurawatch.at|hurawatch.it|jackstream.net|jackstreams.com|jujutsukaisen-manga.online|jujutsukaisenonline.net|kimoitv.com|kiss-anime.org|kissanime-ru.ws|kissanime2.org|kissasians.org|lookmoviess.com|manhuascan.com|manhuascan.me|mcubd.host|meomeo.pw|mixdrop.co|mixdrop.sx|mkvcage.site|mkvhub.tech|mlbstream.me|mlsbd.shop|mlwbd.host|movierulz.cam|movies2watch.tv|movies7.to|moviesbaba.life|moviesin.co|moviesrulz.net|moviestars.to|moviesverse.mobi|mp3fromyou.tube|mp4upload.com|myflixer.ac|myflixer.it|myflixer.pw|myflixer.ru|myflixer.site|myflixer.to|myflixer.today|myflixer.ws|myflixertv.to|mystream.to|nbastream.nu|nflstream.io|ngomik.net|nhlstream.nu|nkiri.com|olympicstreams.me|pahe.ph|paidnaija.com|playemulator.online|player.cineflixtv.com|primewire.today|prmovies.bz|prmovies.cam|prmovies.net|prmovies.org|prmovies.pics|projectfreetv.one|projectfreetv.watch|projectfreetv2.com|putlocker-website.com|putlocker.vc|putlocker68.com|putlockers.fm|putlockers.gs|redirect-ads.com|reputationsheriffkennethsand.com|sdmoviespoint.online|series9.la|seriestv.watch|sflix.to|shadowrangers.live|shingekinokyojin.tv|skidrow-games.com|skidrowcodex.net|soap2day.md|soap2day.video|soap2dayto.org|sockshare.ac|solarmovies.movie|speedvideo.net|sportsbay.watch|ssoap2day.to|steampiay.cc|stemplay.cc|streamani.net|streamsb.net|streamsport.icu|streamta.pe|streamtape.cc|streamtape.com|streamtape.net|streamz.ws|streamzz.to|strikeout.cc|strikeout.nu|strtape.cloud|strtape.site|strtape.tech|strtapeadblock.me|strtpe.link|tapecontent.net|telerium.net|toonanime.cc|turkish123.com|un-block-voe.net|upbam.org|uploadmaza.com|upornia.com|uprot.net|upstream.to|upvid.co|usagoals.sx|v-o-e-unblock.com|vidbam.org|vidembed.cc|videovard.sx|vidnext.net|vido.fun|vidsrc.me|vipbox.lc|vipleague.im|vipleague.st|vipleague.tv|viprow.me|viprow.nu|vipstand.se|voe-un-block.com|voe-unblock.com|voe.bar|voe.sx|voeun-block.net|voeunbl0ck.com|voeunblck.com|voeunblk.com|voeunblock3.com|vumoo.to|vumoo.vip|watchseries.ninja|watchseries.pub|watchserieshd.bz|watchserieshd.tv|watchserieshd.watch|watchseriess.net|watchseriesstream.com|wawacity.work|yesmovies.id|yesmovies.mn|ymovies.to|yomovies.cam|yomovies.nl|yomovies.pl|yomovies.pm|youflix.site|youtube4kdownloader.com|yseries.tv|ytanime.tv|yts-subs.com|yts.movie|ștream2watch.com -+||dads-banging-teens.com/polished- -+||fuckmelikethereisnotomorrow.com/b/ -+||hclips.com/bsducwhws/ -+||hdzog.com/bfycjtajaoa/ -+||hotmovs.com/fzzgbzhfm/ -+||imhentai.xxx/js/slider.js -+||milfz.club/qpvtishridusvt.php -+||porn555.com/stejjirxo/ -+||pornforrelax.com/kiadtgyzi/ -+||pornj.com/gghozqaiic/ -+||puporn.com/tpswmiflfmh/ -+||see.xxx/ipseedoxu/ -+||shemalez.com/jfceqdszpsh/ -+||teens-fucking-matures.com/shrill- -+||thegay.com/ckakmlui/ -+||thegay.com/psyttioschbs/ -+||thegay.com/xcgspnprfzd/ -+||thegay.porn/hksdxivygl/ -+||tubepornclassic.com/oavmjqmhlqy/ -+||tuberel.com/wpazbnhli/ -+||txxx.com/mucaepcd/ -+||upornia.com/ptasrjjp/ -+||upornia.com/wzvxeouxubor/ -+||voyeurhit.com/ffpqvfaczp/ -+peacemakeronline.com###above_top_banner -+livescore.com###ad-holder-gad-news-article-item -+wtechnews.com###aniBox -+addictivetips.com###at_popup_modal ++||eentent.streampiay.me^ ++||fentent.streampiay.me^ ++||filemoon.*/js/baf.js ++||ip-secrets.com/img/nv ++||leet365.cc/ggg.js ++||marketscreener.com/content_openx.php ++||openstack.org/api/public/v1/sponsored-projects? ++||pressablecdn.com/wp-content/uploads/Site-Skin_update.gif$domain=bikebiz.com ++||qontent.powvibeo.me^ ++||sbfull.com/assets/jquery/jquery-3.2.min.js? ++||smallseotools.com/webimages/*.gif ++||sontent.powvibeo.me^ ++||srware.net/iron/assets/img/av/ ++||techonthenet.com/defaults/primary ++||vhanime.com/js/popgogo.js ++||vidstream.pro/E/$script ++||walmart.ca/api/bsp/ads/ ++||xda-developers.com/app/plugins/xda-kco-affiliate/ ++||zillastream.com/api/spots/ ++||breitbart.com/t/assets/js/prebid ++/^https?:\/\/.*\/sw\.js\?[a-zA-Z0-9%]{50,}/$script,~third-party ++||eentent.streampiay.me^$popup ++||fentent.streampiay.me^$popup ++||qontent.powvibeo.me^$popup ++||rx.link^$popup,domain=uploadgig.com ++||sontent.powvibeo.me^$popup ++||ytsyifys.com/go.$popup ++/^https?:\/\/.*\.(jpg|jpeg|gif|png|svg|ico|js|txt|css|srt|vtt|webp)/$popup,domain=0123movie.ru|123-movies.ninja|123movies-official.site|123movies.net|123movies.tc|123movies2022.org|123moviesfree4u.com|123movieshub.tc|123moviesme.online|123proxy.biz|123series.ru|1movieshd.com|2umovies.me|2umovies.pro|4anime.gg|4hdmovie.com|4stream.gg|5movies.fm|720pstream.tv|9anime.to|9xmovies.homes|adblockstrtape.link|adf.ly|animefreak.vip|animekisa.cc|animepahe.com|animesonline.cz|animesultra.com|asianembed.io|audaciousdefaulthouse.com|bato.to|batotoo.com|batotwo.com|bflix.ru|bflix.to|bigclatterhomesguideservice.com|buffstreams.tv|bunnycdn.ru|clicknupload.to|clipconverter.cc|cloudvideo.tv|cmovies.online|cmovies.vc|dailyuploads.net|databasegdriveplayer.co|divicast.com|dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.video|dood.watch|dood.ws|doodcdn.com|dopebox.to|dramacool.pk|eplayvid.com|eplayvid.net|eplsite.uk|europixhd.net|exey.io|extreme-down.plus|fcdn.stream|files.im|filmestorrents.net|filmyzilla.beauty|filmyzilla.directory|filmyzilla.makeup|flashx.net|flixhq.ru|flixtor.video|fmovies.app|fmovies.ps|fmovies.pub|fmovies.to|fmovies.world|fplayer.info|fraudclatterflyingcar.com|gdtot.nl|go-stream.site|gogoanime.run|gogoanimes.to|gogomovies.to|gogoplay1.com|gomovies.cyou|gomoviz.xyz|gospeljingle.com|gowatchseries.live|gowatchseries.online|hds-streaming-hd.com|hexupload.net|hindilinks4u.cam|hindilinks4u.nl|housecardsummerbutton.com|hulkstreams.com|hurawatch.at|hurawatch.it|jackstream.net|jackstreams.com|jujutsukaisen-manga.online|jujutsukaisenonline.net|kimoitv.com|kiss-anime.org|kissanime-ru.ws|kissanime2.org|kissasians.org|lookmoviess.com|manhuascan.com|manhuascan.me|mcubd.host|meomeo.pw|mixdrop.co|mixdrop.sx|mkvcage.site|mkvhub.tech|mlbstream.me|mlsbd.shop|mlwbd.host|movierulz.cam|movies2watch.tv|movies7.to|moviesbaba.life|moviesin.co|moviesrulz.net|moviestars.to|moviesverse.mobi|mp3fromyou.tube|mp4upload.com|myflixer.ac|myflixer.it|myflixer.pw|myflixer.ru|myflixer.site|myflixer.to|myflixer.today|myflixer.ws|myflixertv.to|mystream.to|nbastream.nu|nflstream.io|ngomik.net|nhlstream.nu|nkiri.com|nswgame.com|olympicstreams.me|pahe.ph|paidnaija.com|playemulator.online|player.cineflixtv.com|primewire.today|prmovies.bz|prmovies.cam|prmovies.net|prmovies.org|prmovies.pics|projectfreetv.one|projectfreetv.watch|projectfreetv2.com|putlocker-website.com|putlocker.digital|putlocker.vc|putlocker68.com|putlockers.fm|putlockers.gs|racaty.net|realfinanceblogcenter.com|redirect-ads.com|reputationsheriffkennethsand.com|sdmoviespoint.online|series9.la|seriestv.watch|sflix.to|shadowrangers.live|shingekinokyojin.tv|skidrow-games.com|skidrowcodex.net|soap2day.md|soap2day.video|soap2dayto.org|sockshare.ac|solarmovies.movie|speedvideo.net|sportsbay.watch|ssoap2day.to|steampiay.cc|stemplay.cc|streamani.net|streamsb.net|streamsport.icu|streamta.pe|streamtape.cc|streamtape.com|streamtape.net|streamz.ws|streamzz.to|strikeout.cc|strikeout.nu|strtape.cloud|strtape.site|strtape.tech|strtapeadblock.me|strtpe.link|tapecontent.net|telerium.net|tinycat-voe-fashion.com|toonanime.cc|turkish123.com|un-block-voe.net|upbam.org|uploadmaza.com|upornia.com|uprot.net|upstream.to|uptodatefinishconferenceroom.com|upvid.co|usagoals.sx|v-o-e-unblock.com|vidbam.org|vidembed.cc|videovard.sx|vidnext.net|vido.fun|vidsrc.me|vipbox.lc|vipleague.im|vipleague.st|vipleague.tv|viprow.me|viprow.nu|vipstand.se|voe-un-block.com|voe-unblock.com|voe.bar|voe.sx|voeun-block.net|voeunbl0ck.com|voeunblck.com|voeunblk.com|voeunblock3.com|vumoo.to|vumoo.vip|watchseries.ninja|watchseries.pub|watchserieshd.bz|watchserieshd.tv|watchserieshd.watch|watchseriess.net|watchseriesstream.com|wawacity.work|yesmovies.id|yesmovies.mn|ymovies.to|yomovies.cam|yomovies.nl|yomovies.pl|yomovies.pm|youflix.site|youtube4kdownloader.com|yseries.tv|ytanime.tv|yts-subs.com|yts.movie|ștream2watch.com ++/rass7.*.js^$script,domain=hdzog.com ++||bigdick.tube/istusxhres/ ++||bigdick.tube/tpnxa/ ++||cc2.camcaps.io/v*/ ++||cdn.narutoon.com^ ++||fakings.com/tools/get_banner.php ++||fapnado.com/api/spots/ ++||fapnado.xxx/bump/ ++||freelivesex.tv/imgs/ad/ ++||gamcore.com/ajax/abc? ++||gay4porn.com/ai/ ++||girlsofdesire.org/blr2.php ++||hclips.com/rmrhdryzrx/ ++||hot-sex-tube.com/sp.js ++||inporn.com/bnmozfsq/ ++||javenglish.net/tcads.js ++||koushoku.org/proxy? ++||mylistcrawler.com/wp-content/plugins/elfsight-popup-cc/ ++||nigged.com/tools/get_banner.php ++||nudepatch.net/dynbak.min.js ++||nudepatch.net/edaea0fd3b2c.js ++||tubepornclassic.com/icwlzitfi/ ++||warashi-asian-pornstars.fr/wapdb-img/ep/ ++||x.vipergirls.to^ ++||xiaoshenke.net/js/ads_pt.js? ++||xmilf.com/fjwucyfpo/ ++.com./$popup,domain=pornhub.com ++fortune.com###Leaderboard0 ++motortrend.com###MT_Articles_300x250_top ++djchuang.com###amazon3 +timesnownews.com###atf -+dcnewsnow.com###bestreviews-widget -+theneworleanstribune.com###block-15 ++cityandstateny.com###atlas-module ++gulte.com###awt_landing ++bing.com###bepfo.popup[style^="visibility: visible"] +sharylattkisson.com###block-17 ++infoplease.com###block-ipmiddlewaread ++romania-insider.com###block-nodepagebelowlatespress ++romania-insider.com###block-nodepagebelowtrendingcontent +brobible.com###bro-leaderboard -+icon-icons.com###bsa-placeholder-search -+kbb.com###contentFor_kbbAdsSimplifiedNativeAd -+apotelyt.com###cuHaba-2 ++timesofindia.indiatimes.com###c_wdt_sports_rhs_atf_ad_1 ++miniwebtool.com###contain300-2 ++naturalnewsblogs.com###content > div > .textwidget > [class] ++lordz.io###crossPromotion ++digit.in###cubewrapid ++mostlyblogging.com,sonyalpharumors.com###custom_html-15 ++msn.com###displayAdCard +sashares.co.za###elementor-popup-modal-89385 -+fanlesstech.com###footer-1 -+peacemakeronline.com###front_mid_right > center -+planetradio.co.uk###inline-01 -+planetradio.co.uk###inline-02 -+planetradio.co.uk###inline-03 -+icon-icons.com###istockphoto-placeholder -+peacemakeronline.com###latest_news > center -+peacemakeronline.com###middle_banner_section ++clocktab.com###fv_left-side ++screengeek.net###layoutContainer ++ugstandard.com###leader-wrap ++fixya.com###leaderboardContainer ++kitco.com###left_square ++lordz.io###lordz-io_300x250 ++lordz.io###lordz-io_300x250_2 ++lordz.io###lordz-io_728x90 ++themeforest.net###market-banner +sportskeeda.com###mob3-cnx-container-bottom -+coveteur.com###native_1 -+coveteur.com###native_2 ++offliberty.io###offgoo +ckk.ai###orquidea-slideup -+elevationmap.net###publift_home_billboard -+protocol.com###sHome_0_0_3_0_0_5_1_0_2 ++helpnetsecurity.com###parent_hmb_advanced_234821 ++helpnetsecurity.com###parent_hmb_desktop_241602 ++sporcle.com###quiz-right-rail-unit-2 ++neoseeker.com###section-pagetop +searchenginejournal.com###sej-pop-wrapper -+995thewolf.com,newcountry963.com###simpleimage-3 -+hot933hits.com###simpleimage-5 -+hilltimes.com###sp-mini-box ++gephardtdaily.com###simple-sticky-footer-container ++thedriven.io###solarchoice_banner_1 +techmeme.com###sponsorposts -+tokder.org###ssss -+medicinehatnews.com###stickyleaderboard ++bostonglobe.com###sticky_container.width_full ++eurogamer.net,rockpapershotgun.com###sticky_leaderboard +cyclingtips.com###takeover -+macmillanthesaurus.com###topslot_container -+trumparea.com###udmvid ++radiosurvivor.com,thewashingtonstandard.com###text-13 ++sporcle.com###top-unit ++walterfootball.com###top_S ++macmillandictionary.com,macmillanthesaurus.com,oxfordlearnersdictionaries.com###topslot_container +gumtree.com.au###view-item-page__leaderboard-wrapper ++walterfootball.com###wf_brow_box ++xda-developers.com###xda_alert_bar ++marketscreener.com###zppMiddle2 +androidauthority.com##.--qc ++greatandhra.com##.AdinHedare ++interestingengineering.com##.BigAdBorder_isPremium__RXPuj ++cnbc.com##.BoxRail-styles-makeit-ad--lyuQB +swarajyamag.com##.CrIrA +realityblurb.com##.Desktop-Sticky -+nba.com##.DisplayAd_genericAd__22Dlg ++gadgetsnow.com##.FkG8A ++naturalnews.com##.HNXEAFMIWBQP ++gadgetsnow.com##.I26at ++naturalnews.com##.INGHZXMVDCUF +nationalgeographic.com##.LinkedImage ++medievalists.net##.Mnet_TopLeft_970x250 +metservice.com##.Mrec-min-height +tvtv.us##.MuiPaper-root.jss12 -+sciencealert.com##.Purch_Y_C_0_1-container -+behance.net##.StockRail-rail-oox ++naturalnews.com##.PCUMLBEXSWOV ++hulu.com##.PauseAdCreative-wrap ++naturalnews.com##.SXVGONQABPCH ++britannicaenglish.com##.WordFromSponsor_content_enToar ++naijachoice.com.ng##.\38 c1b103c17b06562bc3b58d73a814726 +swarajyamag.com##._1eNH8 -+gadgets.ndtv.com,gadgets360.com##._ad -+trendstorys.com##.a-wrap -+sciencealert.com##.ad-desktop\:block ++soundguys.com##._7b ++soundguys.com##._Ed ++fastfoodnutrition.org##.a_leader ++fastfoodnutrition.org##.a_rect +ians.in##.add-inner -+trumparea.com##.advertisement-list ++junauza.com##.adv-hd ++9anime.to##.adx +sharylattkisson.com##.after-entry.widget-area -+antimusic.com##.am-center ++domainnamewire.com##.after-header +americafirstreport.com##.ameri-before-content -+thepostemail.com##.amp-wp-b194b9a -+icon-icons.com##.apu -+renonr.com##.below-header-widgets ++thinkcomputers.org##.apPluginContainer ++eurogamer.net##.apester_block ++adn.com,businessoffashion.com##.arcad-feature ++releasestv.com##.ast-above-header-wrap ++gulte.com##.awt_side_sticky ++themanual.com##.b-sticky-leaderboard ++iol.co.za##.bDEZXQ ++news.net##.banner-wr ++dissentmagazine.org##.bc_random_banner +distractify.com,radaronline.com##.biKvh -+nypost.com##.billboard-overlay -+thescore1260.com##.block-content > a[href*="sweetdealscumulus.com"] -+indysmix.com,wzpl.com##.block-content > a[href^="https://sweetjack.com/local"] ++ehftv.com##.blackPlayer +blogto.com##.blogto-sticky-banner ++nilechronicles.com##.bn-lg-sidebar +standardmedia.co.ke##.border-thick-branding +fctables.com##.box-width > .hidden-xs +retailgazette.co.uk##.boxzilla-popup-advert ++vaughn.live##.browsePageAbvs300x600 ++business2community.com##.busin-coinzilla-after-content ++business2community.com##.busin-news-placement-2nd-paragraph ++abbaspc.net##.buttonPress-116 +tuko.co.ke##.c-adv +legit.ng##.c-adv--video-placeholder +backpacker.com,betamtb.com,betternutrition.com,cleaneatingmag.com,climbing.com,gymclimber.com,outsideonline.com,oxygenmag.com,pelotonmagazine.com,rockandice.com,skimag.com,trailrunnermag.com,triathlete.com,vegetariantimes.com,velonews.com,womensrunning.com,yogajournal.com##.c-thinbanner -+renonr.com##.category-sponsored-content -+thegoodchoice.ca##.cb-box -+nytimes.com##.css-142l3g4 -+stylist.co.uk##.css-17xu4dw -+myfitnesspal.com##.css-kllxo3 -+myfitnesspal.com##.css-lhxzbui -+myfitnesspal.com##.css-oex058 -+myfitnesspal.com##.css-pummgu -+stylist.co.uk##.css-rybqcx -+unmineablesbest.com##.ct_ipd728x90 -+apotelyt.com##.cuFita-Con ++carbuzz.com##.cb-video-ad-block ++coinspeaker.com##.clickout-banner-native_table_box ++lightnovelreader.org##.cm-rk-970 ++boldsky.com,drivespark.com,filmibeat.com,gizbot.com,goodreturns.in,nativeplanet.com,oneindia.com##.cmscontent-right1 ++thepostmillennial.com##.col.text-center ++atalayar.com##.column-content > .megabanner +total-croatia-news.com##.custombanner -+etherscan.com##.d-lg-inline-block-alt ++bleepingcomputer.com##.cz-toa-wrapp +wuxiaworld.site##.dcads -+nytimes.com##.e1xxpj0j1.css-4vtjtj -+itwire.com##.eb-init ++sgcarmart##.dealer_banner ++dongknows.com##.dkt-amz-deals ++scotsman.com##.dmpu-item ++thenationonlineng.net##.dorvekp-post-bottom ++techspot.com##.downText ++etherscan.io##.dxddkdcp7wz ++ticketmaster.com##.eCKbVA +dailyfetched.com##.elementor-element-4e695da ++thecountersignal.com##.elementor-element-8d2cc6c +lego.com##.emotion-cache-1tunmxn -+triangletribune.com##.fba_links ++marcadores247.com##.es_top_banner ++pixabay.com##.external-media ++foodbeast.com##.fdbst-ad-placement ++libhunt.com##.flex.mt-5.boxed ++purexbox.com,pushsquare.com##.for-mobile.below-article ++coinweek.com##.g-389 ++pokernews.com##.gameCards ++golfchannel.com##.gc-mps-ad +pcworld.co.nz##.gemini-loaded -+heic2jpg.com,jpg2png.com,png2jpg.com,webptojpeg.com,wordtojpeg.com##.ha -+heic2jpg.com,jpg2png.com,png2jpg.com,webptojpeg.com,wordtojpeg.com##.header__right ++flickr.com##.getty-search-view ++greatandhra.com##.great_andhra_main_local_rotator1 ++tvcancelrenew.com##.h-72 ++target.com##.h-position-fixed-bottom ++thehits.co.nz##.header__main +48hills.org##.hills-adlabel -+myabandonware.com##.i528 -+cultofmac.com##.important ++artandeducation.net##.homepage__banner ++motherjones.com##.incontent-promo ++katv.com##.index-module_adAfterContent__1cww ++katv.com##.index-module_adBeforeContent__LLBk ++kijiji.ca##.inline-banner ++startpage.com##.internxt-promo ++ticketmaster.com##.jTNWic ++marketingweek.com##.jobs-lists ++linuxhandbook.com##.kg-bookmark-card +tuko.co.ke##.l-adv-branding__top +onmsft.com##.largerectangle +tech-latest.com##.lates-art-top -+thepcguild.com##.leader -+coveteur.com##.leaderboar_promo ++sgcarmart.com##.leadbadv ++bluesnews.com##.leaderboard-gutter +medpagetoday.com##.leaderboard-region ++dailyegyptian.com,northernstar.info,theprospectordaily.com##.leaderboardwrap +mdisk.me##.liveBox -+si.com##.m-detail--feature-spacer +motor1.com##.m1_largeMPU -+coinlean.com##.mb-3 -+ghanaweb.com##.med_rec_lg_min ++sporcle.com##.main-content-unit-wrapper ++naturalnewsblogs.com##.main-holder > #sidebar > [class] > ul ++wccftech.com##.mb-11 +compoundsemiconductor.net##.mega-bar -+mondoweiss.net##.mondo-ads-widget ++gadgetsnow.com##.mercwapper ++kitco.com##.mining-banner-container ++putlockers.do##.mobile-btn ++dfir.training##.moduleid-307 ++dfir.training##.moduleid-347 ++dfir.training##.moduleid-358 +flickr.com##.moola-search-div.main +news.sky.com##.mpu-1 ++mapquest.com##.mq-bizLocs-container +koreaherald.com##.mythiell-mid-container -+chaseyoursport.com##.new-adv +pcgamesn.com##.nn_mobile_mpu2_wrapper -+pcgamesn.com##.nn_mobile_mpu_wrapper -+realtytoday.com##.page-bottom -+realtytoday.com##.page-middle ++publishedreporter.com##.no-bg-box-model ++miniwebtool.com##.normalvideo ++forum.xda-developers.com##.notices--thnoticesplus_topbar ++otakuusamagazine.com##.otaku_big_ad ++departures.com##.paid-banner ++artasiapacific.com##.partner_container ++apkmb.com##.personalizadas +compoundsemiconductor.net##.popular__section-newsx ++redketchup.io##.potato_sticky ++redketchup.io##.potato_viewer ++pixabay.com##.present-gtty-item ++astrology.com##.primis-video-module-horoscope +tweaktown.com##.product_box -+coveteur.com##.promo-placeholder ++eetimes.eu##.promotion-block-wrapper +actionnetwork.com##.promotion-table ++planetrugby.com##.ps-block-a +gonintendo.com##.pt-5 +happymod.com##.pvpbar_ad +n4g.com##.pw-leaderboard-desk -+dexerto.com##.py-2 ++theverge.com##.px-20 > .hidden.mx-auto +rappler.com##.rappler-ad-container ++timesofindia.indiatimes.com##.relatedVideoWrapper ++jetphotos.com##.result--adv ++news.net##.right-banner-wr > .right +medpagetoday.com##.right-rail-panel -+apotelyt.com##.sdbrUnit-Flex100 -+etherscan.com##.showcase-banner-text -+bxr.com##.sidebar_promo -+wncv.com##.simple-image -+nutritioninsight.com,packaginginsights.com##.squarblk ++smartasset.com##.riklam-container ++atalayar.com##.rotulo-publi ++kotaku.com##.sc-6zn1bq-0 ++fortune.com##.sc-efBctP ++okmagazine.com##.sc-jffIyK ++radiotimes.com##.schedule__row-list-item-advert ++stockhouse.com##.sh-ad ++themeforest.net##.shared-global_footer-cross_sell_component__root ++startpage.com##.shopping-ads ++indiatoday.in##.shopping__widget ++thepointsguy.com##.showBb ++domainnamewire.com,repeatreplay.com##.sidebar-primary ++naturalnewsblogs.com##.sidebar_widgets > .widget > [class] ++sifted.eu##.sifted_advert_block ++greatandhra.com##.sortable-item_top_add123 ++newsroom.co.nz##.sponsor-logos2 ++coinpaprika.com##.sponsored-buttons ++investing.com##.sponsoredArticle ++salixos.org##.sponsors-container ++timesofindia.indiatimes.com##.sports_ad_wrapper ++libhunt.com##.sprd +searchenginejournal.com##.sss_sslo ++rugbyonslaught.com##.sticky-add ++washingtonpost.com##.sticky-promo +theweathernetwork.com##.style_adslot__tgw4w +politico.com##.styles_house-ad-cover__3Fvyy -+ucompares.com##.tablepress-id-46 -+ghanaweb.com##.takeover -+bookriot.com##.tbr-promo -+pakobserver.net##.tdi_121 ++techyv.com##.td-header-header ++sporcle.com##.temp-unit ++dexerto.com##.text-center.min-h-\[20rem\] +upi.com##.text-center.mt-5 ++putlockers.do##.textb ++vaughn.live##.theMvnAbvsLowerThird ++msn.com##.title-ad-single ++nybooks.com##.toast-cta ++dexerto.com##.top-10 ++freedomleaf.com##.top-ab ++smartasset.com##.top-banner-ctr +eurointegration.com.ua##.topban_r -+packaginginsights.com##.verticlblk -+koreabiomed.com##.view-aside -+985kissfm.net,bxr.com,catcountry951.com,nashfm1065.com,power923.com,wncv.com,wskz.com##.widget_simpleimage ++cambridge-news.co.uk##.topbox-cls-placeholder ++tutorialink.com##.tutorialink-ad1 ++tutorialink.com##.tutorialink-ad2 ++tutorialink.com##.tutorialink-ad3 ++tutorialink.com##.tutorialink-ad4 ++pokernews.com##.virgutis ++valueresearchonline.com##.vr-adv-container ++vaughn.live##.vs_v9_LTabvsLowerThirdWrapper ++vaughn.live##.vs_v9_LTabvsLower_beta ++wral.com##.vw3Klj ++wccftech.com##.wccf_video_tag ++tutorialink.com##.widget_ti_add_widget +gg.deals##.with-banner +sharylattkisson.com##.wp-block-media-text.alignwide ++techyv.com##.wpb_raw_code +windowsreport.com##.wr-marketing-cta-alt -+theseotools.net##.xd_top_box -+titantv.com##.yRDh6z2_d0DkfsT3 -+antimusic.com##.zerg ++bbc.co.uk##[amp-access="toggles.ads.enabled"] ++bloomberg.com##[class*="ad-div"] +barandbench.com##[class*="ad-slot"] -+kbb.com##[data-lean-auto="flexible-native-2"] ++independentespanol.com##[class^="TopBanner"] ++gab.com##[data-comment="gab-ad-comment"] ++jeffdornik.com##[data-image-info] +duplichecker.com##[data-pagespeed-url-hash] -+conservativeplaybook.com##[href="https://ourgoldguy.com/contact/"] -+newslogic.in##[href^="https://4i1n.short.gy/"] ++jeffdornik.com##[data-pin-url] ++axios.com##[data-vars-category="sidebar_promo"] ++builtbybit.com##[data-xf-click^="fong-adsmanager"] ++barrettsportsmedia.com##[href="https://www.jimcutler.com"] ++greatandhra.com,kitploit.com,mc-market.org##[href^="https://bit.ly/"] img +emailnator.com##[href^="https://go.nordvpn.net/aff_c"] ++coinpaprika.com##[href^="https://go2nft.io"] ++everybithelps.io##[href^="https://shop.ledger.com/"] +wuxiaworld.site##[id^="wuxia-"] ++forum.lowyat.net##[style^="height:100px;padding:5px"] ++elitepvpers.com##[width="729"] ++elitepvpers.com##[width="966"] +presearch.com##[x-data*="kAdFirst"] -+linuxjournal.com##a[href*="&utm_campaign="] -+97rock.com,wedg.com##a[href*="716jobfair.com"] -+tractorbynet.com##a[href][target="_blank"] > img[class^="attachment-large"] -+graphic.com.gh##a[href^="/adverts/"] -+wjbc.com##a[href^="http://sweetdeals.com/bloomington/deals"] -+997wpro.com,lite105.com##a[href^="http://www.enjoyri.com/"] ++imgpile.com,linuxjournal.com,threatpost.com##a[href*="&utm_campaign="] ++osradar.com##a[href="http://insiderapps.com/"] ++inquirer.net##a[href^="http://ruby.inquirer.net/"] ++speedsolving.com##a[href^="http://www.kewbz.co.uk"] > img +1280wnam.com##a[href^="http://www.milwaukeezoo.org/visit/animals/"] -+warm98.com##a[href^="http://www.salvationarmycincinnati.org"] -+warm98.com##a[href^="https://giving.cincinnatichildrens.org/donate"] -+997wpro.com##a[href^="https://seascapeinc.com/"] -+wbnq.com,wbwn.com,wjbc.com##a[href^="https://stjude.org/radio/"] ++moddroid.co##a[href^="https://doodoo.love/"] ++douploads.net##a[href^="https://href.li/?"] ++dailyuploads.net##a[href^="https://ninjapcsoft.com/"] +glory985.com##a[href^="https://sweetbidsflo.irauctions.com/listing/0"] +vnkb.com##a[href^="https://vnkb.com/e/"] +1280wnam.com##a[href^="https://wistatefair.com/fair/tickets/"] -+tristateswolf.com##a[href^="https://www.alleganycofair.org/"] -+wjbc.com##a[href^="https://www.farmweeknow.com/rfd_radio/"] -+magic1069.com##a[href^="https://www.fetchahouse.com/"] -+wgrr.com##a[href^="https://www.mccabelumber.com/"] -+wbnq.com,wbwn.com,wjbc.com##a[href^="https://www.menards.com/main/home.html"] -+jox2fm.com,joxfm.com##a[href^="https://www.milb.com/"] -+lite105.com##a[href^="https://www.pellabranch.com/"] -+foxcincinnati.com##a[href^="https://www.safeauto.com"] -+foxcincinnati.com,warm98.com##a[href^="https://www.waltzbusiness.com/"] -+searchenginereports.net##a[title="Ad"] ++kroger.com##a[title^="Advertisement:"] ++naijachoice.com.ng##center > .background ++mangas-raw.com##center > div[style] ++builtbybit.com##center[style="margin-top: 20px"] +inverse.com##div.zz ++arkadium.com##div[class^="Ad-adContainer"] +timesnownews.com##div[class^="ArticleShow-staticAdCaller-"] ++dsearch.com##div[class^="PreAd_"] ++chloeting.com##div[class^="StickyFooterAds__Wrapper"] ++scotsman.com##div[class^="TopBanner"] +sfchronicle.com##div[class^="ad-module-"] +timesnownews.com##div[class^="bottomStickyAd-"] ++avclub.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,qz.com,theinventory.com,theonion.com,theroot.com,thetakeout.com##div[class^="bxm4mm-"] +tech-latest.com##div[class^="lates-content"] -+unmineablesbest.com##div[class^="uk-visible@"] ++localjewishnews.com##div[class^="local-feed-banner-ads"] +999thehawk.com##div[data-alias="Sweetjack"] -+competenetwork.com##div[id^="compe-"] +memedroid.com##div[id^="freestar-ad-"] -+forbesafrica.com##div[id^="incontentAd"] -+canberratimes.com.au,examiner.com.au,theland.com.au##div[id^="leaderboard-"] -+realtalk933.com##div[id^="realt-"] -+theroanoketribune.org##div[id^="thero-"] -+nashfm100.com##div[onclick*="https://deucepub.com/"] -+vice.com##div[style="height: 250px;"] ++lyricsfreak.com##div[lazy-ad] ++nikaraw.com##div[style*="height: 250px"] +fctables.com##div[style^="background:#e3e3e3;position:fixed"] -+gamerdvr.com##div[style^="min-height:"] ++elitepvpers.com##div[style^="font-size:11px;"] +tvtv.us##div[style^="z-index: 1100; position: fixed;"] -+unmineablesbest.com##ins[style^="display:inline-block;width:300px;height:250px;"] -+news24online.com##mybot +opensubtitles.org##tr[style="height:115px;text-align:center;margin:0px;padding:0px;background-color:#DFEBF9;"] -+adspyglass.com##HTML -+wlevradio.com##a[href^="https://omny.fm/shows/just-start-the-conversation"] -+yahoo.com##a[data-test-id="large-image-ad"] -+msn.com##.galleryPage_eoabNativeAd-DS-EntryPoint1-1 ++zalando.be,zalando.ch,zalando.co.uk,zalando.cz,zalando.de,zalando.dk,zalando.ee,zalando.es,zalando.fi,zalando.fr,zalando.ie,zalando.it,zalando.lv,zalando.no,zalando.pl,zalando.se,zalando.si##.noqro0oc_jFfn2AAKrdMo ++zalando.be,zalando.ch,zalando.co.uk,zalando.cz,zalando.de,zalando.dk,zalando.ee,zalando.es,zalando.fi,zalando.fr,zalando.ie,zalando.it,zalando.lv,zalando.no,zalando.pl,zalando.se,zalando.si##.weHhRC > .Saptwy ++zalando.be,zalando.ch,zalando.co.uk,zalando.cz,zalando.de,zalando.dk,zalando.ee,zalando.es,zalando.fi,zalando.fr,zalando.ie,zalando.it,zalando.lv,zalando.no,zalando.pl,zalando.se,zalando.si##div[class$="lRlpGv"] ++zalando.be,zalando.ch,zalando.co.uk,zalando.cz,zalando.de,zalando.dk,zalando.ee,zalando.es,zalando.fi,zalando.fr,zalando.ie,zalando.it,zalando.lv,zalando.no,zalando.pl,zalando.se,zalando.si#?#.Uxq3DH:-abp-has(span:-abp-contains(/Gesponsert|Gesponsord|Patrocinado|Sponset|Sponsitud|Sponsored|Sponsoreret|Sponsorēts|Sponsorizzato|Sponsorisé|Sponsoroitu|Sponsorowane|Sponsrad|Sponzorirano|Sponzorováno/)) +msn.com##[id^="native_ad_"] -+digg.com#?#article.relative:-abp-has(div:-abp-contains(SPONSORED)) ++u.gg#?#.video-guide:-abp-has(.content-section_header:-abp-contains(Sponsored Content)) ++engadget.com#?#[class^="Py"]:-abp-has([data-ylk]:-abp-contains(Sponsored)) ++imgur.com#?#a.Post-item:-abp-has(div.Post-item-external-ad) ++fortune.com#?#.homepage:-abp-has(> div[id^="InStream"]) ++inverse.com#?#div > p + div:-abp-has(amp-ad) ++instagram.com#?#div[style="max-height: inherit; max-width: inherit;"]:-abp-has(span:-abp-contains(Paid partnership with )) ++instagram.com#?#div[style="max-height: inherit; max-width: inherit; display: none !important;"]:-abp-has(span:-abp-contains(Paid partnership)) ++alternativeto.net#?#div[class^="AppList"]:-abp-has([class^="AppListItem_sponsored"]) ++instagram.com#?#div[style="max-height: inherit; max-width: inherit; display: none !important;"]:-abp-has(span:-abp-contains(Paid partnership with )) ++instagram.com#?#article[role="presentation"] > div[style]:-abp-has(span:-abp-contains(/Gesponsert|Sponsored|Geborg|Sponzorováno|Sponsoreret|Χορηγούμενη|Publicidad|Sponsoroitu|Sponsorisé|Bersponsor|Sponsorizzato|広告|광고|Ditaja|Sponset|Gesponsord|Sponsorowane|Patrocinado|Реклама|Sponsrad|ได้รับการสนับสนุน|May Sponsor|Sponsorlu|赞助内容|贊助|প্রযোজিত|પ્રાયોજિત|स्पॉन्सर्ड|Sponzorirano|ಪ್ರಾಯೋಜಿತ|സ്‌പോൺസർ ചെയ്‌തത്|पुरस्‍कृत|प्रायोजित|ਪ੍ਰਾਯੋਜਿਤ|මුදල් ගෙවා ප්‍රචාරය කරන ලදි|Sponzorované|விளம்பரதாரர்கள்|స్పాన్సర్ చేసింది|Được tài trợ|Спонсорирано|Commandité|Sponsorizat|Спонзорисано/)) ++just-eat.co.uk,just-eat.es,just-eat.ie,justeat.it#?#a[data-test-id]:-abp-has(span:-abp-contains(/Promoted|Patrocinado|Sponsorizzato/)) ++just-eat.dk,just-eat.fr,lieferando.at,lieferando.de,pyszne.pl,takeaway.com#?#div[data-qa]:-abp-has(span:-abp-contains(/Спонсорирано|Gesponsert|Gesponsord|Sponsored|Sponsoreret|Sponsorisé|Sponsorizzato|Sponsorowane/)) +nationalgeographic.com#?#.FrameBackgroundFull--grey:-abp-has(.ad-wrapper) ++limetorrents.lol#?#table:first-of-type:-abp-contains(Sponsored Links) ++limetorrents.lol#?#.downloadareabig:-abp-has([title^="An‌on‌ymous Download"]) +regex101.com#?#div > header + div > div + div:-abp-contains(Sponsors) -+seattleweekly.com#?#.marketplace-row-item-wrapper:-abp-has(.sponsored) -+1001tracklists.com#?#a[onclick^='gaLnkTr'] ++shopee.co.id,shopee.ph#?#.col-xs-2-4:-abp-has(div[data-sqe="ad"]) ++shopee.co.id,shopee.ph#?#.item-card-list__item-card-wrapper:-abp-has(div[data-sqe="ad"]) ++target.com#?#.ProductRecsLink-sc-4mw94v-0:-abp-has(p:-abp-contains(sponsored)) ++wikiprocedure.com#?##mw-content-text > div:-abp-contains(/^Advertisement$/) ++zalando.be,zalando.ch,zalando.co.uk,zalando.cz,zalando.de,zalando.dk,zalando.ee,zalando.es,zalando.fi,zalando.fr,zalando.ie,zalando.it,zalando.lv,zalando.no,zalando.pl,zalando.se,zalando.si#?#.DvypSJ:-abp-has(span:-abp-contains(/Gesponsert|Gesponsord|Patrocinado|Sponset|Sponsitud|Sponsored|Sponsoreret|Sponsorēts|Sponsorizzato|Sponsorisé|Sponsoroitu|Sponsorowane|Sponsrad|Sponzorirano|Sponzorováno/)) ++bestbuy.com#?#[id^="atwb-ninja-carousel"] +virtuagirlgirls.com###DynamicBackgroundWrapper -+hotmovs.com##.app-banners -+porndictator.com,submityourflicks.com##.aside > div ++fakings.com,nigged.com###banners_footer ++whentai.com###modalegames +rat.xxx##.b-spot ++buondua.com##.b1a05af5ade94f4004a7f9ca27d9eeffb ++buondua.com##.b2b4677020d78f744449757a8d9e94f28 ++buondua.com##.b489c672a2974fbd73005051bdd17551f ++cumlouder.com##.banner-frame ++pornoreino.com##.bottom-bang ++porn-plus.com##.bottom_player_a ++tiktits.com##.callback-bt +forced-tube.net,hqasianporn.org##.coverup -+teenpornvideo.fun##.full-ave -+mywebcamsluts.com##.media_spot ++rat.xxx,zbporn.tv##.cs-holder ++hdtube.porn,pornid.xxx##.cs-under-player ++amateur-vids.eu,mature.community,mature.mom,mature.sexy,mature.studio,milf.community,milf.mom,milf.plus,milf.sexy##.happy-footer ++eurogirlsescort.com##.js-stt-click +rat.xxx##.mob-nat-spot -+nablog.org##.promo-archive-all -+nablog.org##.promo-single-3-2sidebars -+freemovies.tv##.publis-bottom -+onlytik.com##.temporary-real-extra-block ++fapnado.xxx##.pause-ad-pullup ++7mmtv.sx##.player-overlay ++cliniqueregain.com##.player-promo ++sexvid.porn,sexvid.pro,sexvid.xxx##.player-sponsor ++cyberleaks.to##.responsive_banner ++pornoreino.com##.right-side ++elephanttube.world,pornid.xxx##.rsidebar-spots-holder +rat.xxx,zbporn.tv##.top-spot -+porngames.club##[href^="https://meetandfuck.site/"] -+porngames.club##[href^="https://www.familyporngames.games/"] -+youjizz.com,youporngay.com##[img][src*="blob:"] -+tophentai.biz##[src*="hentaileads/"] -+@@||franklymedia.com/*/300x150_WBNQ_TEXT.png$image,domain=wbnq.com -+@@||texasmonthly.com/wp-content/plugins/txmo-header-bidding/dist/js/txmo-prebid.js -+@@||admanager.clubzebra.se^$image,domain=ripshusvagnar.se -+@@||innervision.co.jp/var/ezwebin_site/storage/images/ad/$image,~third-party -+@@||pubads.g.doubleclick.net/gampad/$image,domain=topper.com.br ++ok.xxx##.top_spot ++bdsmx.tube##.video-info > section ++zbporn.com,zbporn.tv##.view-aside-block ++bdsmx.tube##.wrapper > section ++fapnado.xxx##.zpot-horizontal ++fapnado.xxx##.zpot-vertical ++pornhub.com,redtube.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporn.com,youporngay.com##[href*="base64"] ++totsantcugat.info##[href^="https://totsantcugat.info/wp-content/"] ++pornhub.com,redtube.com,tube8.com,tube8.es,tube8.fr,youjizz.com,youporn.com,youporngay.com##[style*="blob:"]:not(video) ++imx.to##a[href^="https://camonster.com/"] ++bdsmx.tube##article > section ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com##div[class^="after-boxes"] ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com##div[class^="beside-video"] ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com##div[class^="native-boxes"] ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com##div[class^="related-boxes-footer"] ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com##div[class^="textovka"] ++pornhub.com,youporngay.com##div[onclick*="bp1.com"] ++pornhub.com,tube8.com,tube8.es,tube8.fr,xvideos.com,youjizz.com,youporngay.com##img[src*="blob:" i]:not(video) ++porndoe.com,tube8.es,tube8.fr,youjizz.com,youporngay.com##video[autoplay] ++porndoe.com,redtube.com##video[autoplay][src*="blob:" i] ++porndoe.com,redtube.com##video[autoplay][src*="data:" i] ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com#?#.order-1:-abp-has(> div[class^="inside-list-boxes"]) ++darknessporn.com,familyporner.com,pisshamster.com,punishworld.com,xanimu.com#?#.order-2:-abp-has(.duration-ad) ++pornhub.com#?#.sectionWrapper:-abp-has(> #bottomVideos > .wrapVideoBlock) ++pornhub.com#?#:-abp-properties(height: 300px; width: 315px;) ++pornhub.com,youporn.com#?#:-abp-properties(float: right; margin-top: 30px; width: 50%;) ++@@||dailylol.com/wp-content/uploads/$image,~third-party ++@@||letocard.fr/wp-content/uploads/$image,~third-party ++@@||shreemaruticourier.com/banners/$~third-party ++@@||v.fwmrm.net/ad/g/1$domain=uktv.co.uk|vevo.com ++@@||megaup.net/*.gif$image,~third-party ++@@||ad.smartmediarep.com/NetInsight/video/smr$domain=programs.sbs.co.kr ++@@||musictrack.jp/a/ad/banner_member.jpg ++@@||point.rakuten.co.jp/img/crossuse/top_ad/$~third-party ++@@||suntory.co.jp/beer/kinmugi/css2020/ad.css? ++@@||suntory.co.jp/beer/kinmugi/img/ad/$image,~third-party +@@||tpc.googlesyndication.com/simgad/$image,domain=topper.com.br -+@@|data:text^$popup,domain=box.com|clker.com|labcorp.com ++@@||ads.doordash.com^$popup ++@@||ads.elevateplatform.co.uk^$popup ++@@||ads.lollipod.de^$popup +! *** customfilterlists:easylist-minified-manual.txt *** +###resultsAdsTop +###resultsAdsBottom @@ -73545,10 +78890,10 @@ diff --git a/components/resources/adblocking/exceptionrules.txt b/components/res new file mode 100644 --- /dev/null +++ b/components/resources/adblocking/exceptionrules.txt -@@ -0,0 +1,5661 @@ +@@ -0,0 +1,5871 @@ +[Adblock Plus 2.0] -+! Checksum: 9DXdjNbuN2ynPZzhQQyaXw -+! Version: 202208220921 ++! Checksum: kcp+Tvpzws3D5zT7g+Wkdg ++! Version: 202210250741 +! Title: Allow nonintrusive advertising (minimal) +! Expires: 1 days +! Homepage: https://acceptableads.com/ @@ -73564,12 +78909,13 @@ new file mode 100644 +@@||aaxdetect.com/pxusr.gif +@@||contextual.media.net/bidexchange.js +@@||aaxdetect.com^$subdocument -+@@||aaxads.com^$document,domain=~fortune.com|~chefsimon.com -+@@||aaxads.com^$domain=~fortune.com|~chefsimon.com -+@@||assistpub.com^$document,domain=~fantasypros.com -+@@||assistpub.com^$domain=~fantasypros.com -+@@||c.amazon-adsystem.com/aax2/apstag.js$domain=altafiber.net|libero.it|livecharts.co.uk|crosswordsolver.org|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|brightgram.com|americansongwriter.com|rare.us|texags.com|cyclonefanatic.com|usssa.com|recyclingcenternear.me|ndnation.com|hockeydb.com|cartermatt.com|neopets.com|emulatorgames.net|dailymail.co.uk|decorhomeideas.com|stattrek.com|nursestudy.net|grammarhow.com|cbr.com|collider.com|androidpolice.com|xda-developers.com|infofamouspeople.com|californiabeaches.com|housingapartments.org|steelernation.com|ultraboardgames.com|everythingreptiles.com|myswissalps.com|h1bdata.info|delfi.lt|programcreek.com|homeinspectioninsider.com|iplocation.net|makeuseof.com|thegamer.com|gamerant.com|steelernation.com|reve-islam.com|pngtosvg.com|phrases.org.uk|areavibes.com|detroitsportsnation.com|motorverso.com|victoriamgclub.com|jpost.com|codegrepper.com|miroir-mag.fr|removeandreplace.com|mapleleafshotstove.com|bigblueinteractive.com|7littlewordsanswers.com|affordablehousingonline.com|uscollegeinternational.com|scitechdaily.com|voetbalnederland.nl|livefutbol.com|eliteguias.com|dodgersnation.com|cultofmac.com|mjsbigblog.com|crosswordbuzz.com|aconsciousrethink.com|projectpractical.com|chromeunboxed.com|hyggehous.com|camping-experten.de|collegefactual.com|guidemusulman.com|diyphotography.net|themag.co.uk|hollywoodmask.com|scrabblecheat.com|inmate-lookup.org|drivingtest.ca|lapatilla.com|diyphotography.net|gardenista.com|tractorbynet.com|fedsmith.com|scholarship-positions.com|mapsus.net|text-compare.com|scamadviser.com|socialsecurityofficenear.me|corporateofficeheadquarters.org|10fastfingers.com|personality-database.com|weather-us.com|ratemyfishtank.com|communitycollegereview.com|latimescrosswordanswers.com|allhiphop.com|dailythemedcrosswordanswers.com|gadgetstouse.com|hotexamples.com|lifewithjanet.com|childcarecenter.us|democraticunderground.com|paraphrasing-tool.com|govsalaries.com|ineskohl.info|uscho.com|remodelista.com|singletrackworld.com|phonesdata.com|itexamanswers.net|names.org|hometownlocator.com|clickspeedtest.com|rpgbot.net|sportcoaching.co.nz|klinikbewertungen.de|goodcalculators.com|fangraphs.com|ipaddress.com|perfect-english-grammar.com|npinumberlookup.org|realmenuprices.com|softgenius.co|tigernet.com|akinator.com|swingcompleto.com|imagecolorpicker.com|live-tennis.eu|fifarosters.com|taxifarefinder.com|grabjobs.co|onlinedoctranslator.com|askanydifference.com|gardenloversclub.com|delftstack.com|youpdf.com|15track.com|manuals.plus|mybendbroadband.com|myworld.breezeline.com|cincinnatibell.net|thegolfnewsnet.com|boardingschoolreview.com|privateschoolreview.com|publicschoolreview.com|malagahoy.es|lainformacion.com|20minutos.es|larazon.es|pink.rs|famousbirthdays.com|my.juno.com|my.netzero.net|linuxize.com|thecalculatorsite.com|alfa.lt|alio.lt|basketnews.lt|draugas.lt|ieskok.lt|inbox.lt|supermama.lt|bb.lv|jauns.lv|dissapore.com|movieplayer.it|androidwaves.com|play2048.co|broadwayworld.com|thehockeywriters.com|simplypsychology.org|smallbiztrends.com|gm-trucks.com|thewindowsclub.com|barnfinds.com|westernjournal.com|nichegamer.com|yardbarker.com|dogtime.com|cheapism.com|autoscout24.com|autoscout24.nl|time.com|timeanddate.com|pistonheads.com|cargurus.ca|novi.ba|foot01.com|matchendirect.fr|sportsport.ba|nasdaq.com|forwhatitsearth.com|hypegalore.com|populareverything.com|thegossipgeek.com|foodtalkdaily.com|listenonrepeat.com|autoscout24.it|autoscout24.at|cargurus.com|milkyway.listenonrepeat.com|planet.fr|lespac.com|gigafile.nu|1001cocktails.com|gamekult.com|beaute-test.com|cnetfrance.fr|lesnumeriques.com|aufeminin.com|doctissimo.fr|marmiton.org|besthealthmag.ca|birdsandblooms.com|thehealthy.com|readersdigest.ca|selection.ca|familyhandyman.com|rd.com|tasteofhome.com|hughesnetinternet.com|hughesnet.com|windstream.net|wowway.net|portal.tds.net|armstrongmywire.com|suddenlink.net|searchandnews.com|mediacomtoday.com|sparklight.com|myworld.atlanticbb.com|my.gvtc.com|mygrande.com|hawaiiantel.net|upstyledaily.com|ac-illust.com|photo-ac.com|historycollection.com|multiplayer.it|autotrader.ca|autohebdo.net|lespac.net|pastemagazine.com|abovethelaw.com|legalinsurrection.com|hometalk.com|dailytimewaste.com|dotabuff.com|phonearena.com|delfi.ee|autogidas.lt|domoplius.lt|ve.lt|idrlabs.com|discuss.com.hk|price.com.hk|uwants.com|autoscout24.de|askamanager.org|lawinsider.com|tattle.life|appunwrapper.com|gradecalculator.com|goodnewsnetwork.org|dontpayfull.com|tamaratattles.com|wuxiaworld.com|centurylink.net|xgn.nl|xgn.es|lonny.com|livingly.com|stylebistro.com|mabelandmoxie.com|zimbio.com|itsrosy.com|parentsdome.com|toocool2betrue.com|themoneytime.com|travelerdoor.com|apartmenttherapy.com|ballotpedia.org|powerlineblog.com|lucianne.com|realclearpolitics.com|allsides.com|legalinsurrection.com|abovethelaw.com|natlawreview.com|untappedcities.com|decisiondeskhq.com|anncoulter.com|thecollegefix.com|realcleardefense.com|medcitynews.com|realclearscience.com|grabien.com|ricksfreeautorepairadvice.com|6sqft.com|pulse2.com|elections-daily.com|realclearpolicy.com|sportsoverdose.com|fathomaway.com|jocial.com|prod.uhrs.playmsn.com|fantasypros.com|theappear.com|timesofisrael.com|quora.com|dailymotion.com|c-stage.aaxads.com -+@@||c.amazon-adsystem.com/cdn/prod/config$domain=altafiber.net|livecharts.co.uk|crosswordsolver.org|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|brightgram.com|americansongwriter.com|rare.us|texags.com|usssa.com|recyclingcenternear.me|ndnation.com|hockeydb.com|cartermatt.com|neopets.com|emulatorgames.net|dailymail.co.uk|decorhomeideas.com|stattrek.com|nursestudy.net|grammarhow.com|cbr.com|collider.com|androidpolice.com|xda-developers.com|californiabeaches.com|housingapartments.org|steelernation.com|ultraboardgames.com|everythingreptiles.com|myswissalps.com|h1bdata.info|delfi.lt|programcreek.com|homeinspectioninsider.com|iplocation.net|makeuseof.com|thegamer.com|gamerant.com|steelernation.com|reve-islam.com|pngtosvg.com|phrases.org.uk|areavibes.com|detroitsportsnation.com|motorverso.com|victoriamgclub.com|codegrepper.com|miroir-mag.fr|removeandreplace.com|mapleleafshotstove.com|bigblueinteractive.com|7littlewordsanswers.com|affordablehousingonline.com|nypost.com|uscollegeinternational.com|scitechdaily.com|voetbalnederland.nl|livefutbol.com|eliteguias.com|dodgersnation.com|cultofmac.com|mjsbigblog.com|crosswordbuzz.com|aconsciousrethink.com|projectpractical.com|chromeunboxed.com|hyggehous.com|camping-experten.de|collegefactual.com|guidemusulman.com|diyphotography.net|themag.co.uk|hollywoodmask.com|scrabblecheat.com|inmate-lookup.org|drivingtest.ca|lapatilla.com|diyphotography.net|gardenista.com|tractorbynet.com|fedsmith.com|scholarship-positions.com|mapsus.net|text-compare.com|scamadviser.com|socialsecurityofficenear.me|corporateofficeheadquarters.org|10fastfingers.com|personality-database.com|weather-us.com|ratemyfishtank.com|communitycollegereview.com|latimescrosswordanswers.com|allhiphop.com|dailythemedcrosswordanswers.com|gadgetstouse.com|hotexamples.com|lifewithjanet.com|childcarecenter.us|democraticunderground.com|paraphrasing-tool.com|govsalaries.com|ineskohl.info|uscho.com|remodelista.com|singletrackworld.com|phonesdata.com|itexamanswers.net|names.org|hometownlocator.com|clickspeedtest.com|rpgbot.net|sportcoaching.co.nz|klinikbewertungen.de|goodcalculators.com|fangraphs.com|ipaddress.com|perfect-english-grammar.com|npinumberlookup.org|realmenuprices.com|softgenius.co|tigernet.com|akinator.com|swingcompleto.com|imagecolorpicker.com|live-tennis.eu|fifarosters.com|taxifarefinder.com|grabjobs.co|onlinedoctranslator.com|askanydifference.com|gardenloversclub.com|delftstack.com|youpdf.com|15track.com|manuals.plus|mybendbroadband.com|myworld.breezeline.com|cincinnatibell.net|thegolfnewsnet.com|boardingschoolreview.com|privateschoolreview.com|publicschoolreview.com|malagahoy.es|lainformacion.com|20minutos.es|larazon.es|pink.rs|famousbirthdays.com|my.juno.com|my.netzero.net|linuxize.com|thecalculatorsite.com|alfa.lt|alio.lt|basketnews.lt|draugas.lt|ieskok.lt|inbox.lt|supermama.lt|bb.lv|jauns.lv|dissapore.com|movieplayer.it|androidwaves.com|play2048.co|broadwayworld.com|thehockeywriters.com|simplypsychology.org|smallbiztrends.com|gm-trucks.com|thewindowsclub.com|barnfinds.com|westernjournal.com|nichegamer.com|yardbarker.com|dogtime.com|cheapism.com|autoscout24.com|autoscout24.nl|time.com|timeanddate.com|pistonheads.com|cargurus.ca|novi.ba|foot01.com|matchendirect.fr|sportsport.ba|nasdaq.com|forwhatitsearth.com|hypegalore.com|populareverything.com|thegossipgeek.com|foodtalkdaily.com|listenonrepeat.com|autoscout24.it|autoscout24.at|cargurus.com|milkyway.listenonrepeat.com|planet.fr|lespac.com|gigafile.nu|1001cocktails.com|gamekult.com|beaute-test.com|cnetfrance.fr|lesnumeriques.com|aufeminin.com|doctissimo.fr|marmiton.org|besthealthmag.ca|birdsandblooms.com|thehealthy.com|readersdigest.ca|selection.ca|familyhandyman.com|rd.com|tasteofhome.com|hughesnetinternet.com|hughesnet.com|windstream.net|wowway.net|portal.tds.net|armstrongmywire.com|suddenlink.net|searchandnews.com|mediacomtoday.com|sparklight.com|myworld.atlanticbb.com|my.gvtc.com|mygrande.com|hawaiiantel.net|upstyledaily.com|ac-illust.com|photo-ac.com|historycollection.com|multiplayer.it|autotrader.ca|autohebdo.net|lespac.net|pastemagazine.com|abovethelaw.com|legalinsurrection.com|hometalk.com|dailytimewaste.com|dotabuff.com|phonearena.com|delfi.ee|autogidas.lt|domoplius.lt|ve.lt|idrlabs.com|discuss.com.hk|price.com.hk|uwants.com|autoscout24.de|askamanager.org|lawinsider.com|tattle.life|appunwrapper.com|gradecalculator.com|goodnewsnetwork.org|dontpayfull.com|tamaratattles.com|wuxiaworld.com|centurylink.net|xgn.nl|xgn.es|lonny.com|livingly.com|stylebistro.com|mabelandmoxie.com|zimbio.com|itsrosy.com|parentsdome.com|toocool2betrue.com|themoneytime.com|travelerdoor.com|apartmenttherapy.com|ballotpedia.org|powerlineblog.com|lucianne.com|realclearpolitics.com|allsides.com|legalinsurrection.com|abovethelaw.com|natlawreview.com|untappedcities.com|decisiondeskhq.com|anncoulter.com|thecollegefix.com|realcleardefense.com|medcitynews.com|realclearscience.com|grabien.com|ricksfreeautorepairadvice.com|6sqft.com|pulse2.com|elections-daily.com|realclearpolicy.com|sportsoverdose.com|fathomaway.com|jocial.com|prod.uhrs.playmsn.com|fantasypros.com|theappear.com|timesofisrael.com|dailymotion.com|c-stage.aaxads.com ++@@||aaxads.com^$document,domain=~chefsimon.com ++@@||aaxads.com^$domain=~chefsimon.com ++@@||assistpub.com^$document ++@@||assistpub.com^ ++@@||c.amazon-adsystem.com/aax2/apstag.js$domain=fr.mappy.com|courttv.com|simplemost.com|dontwasteyourmoney.com|researchgate.net|10news.com|3newsnow.com|abc15.com|abc2news.com|abcactionnews.com|fox13now.com|fox17online.com|fox47news.com|fox4now.com|katc.com|kbzk.com|kgun9.com|kjrh.com|koaa.com|kpax.com|kristv.com|krtv.com|ksby.com|kshb.com|ktnv.com|ktvq.com|kxxv.com|lex18.com|news5cleveland.com|newschannel5.com|thedelite.com|tmj4.com|turnto23.com|wcpo.com|wkbw.com|wmar2news.com|wptv.com|wrtv.com|wtkr.com|wtvr.com|wtxl.com|wxyz.com|nutrition-charts.com|coloringpagesonly.com|sunrise-sunset.org|whatnowatlanta.com|comicbookrealm.com|online-python.com|homesteadsurvivalsite.com|luciding.com|motivationandlove.com|logosbynick.com|titlecaseconverter.com|tabletopjoab.com|dailykillersudoku.com|qualitydogresources.com|tiremeetsroad.com|itnwwe.com|apnatoronto.com|localpuppybreeders.com|instrumentationtools.com|learncpp.com|wikibioworth.com|programmingr.com|generatormix.com|chipandco.com|colorcodes.io|myotakuworld.com|beatlesbible.com|cakedecorist.com|findnicknames.com|thepointcalculator.com|singlemothers.us|itsolutionstuff.com|ilovedogscute.com|theproductiveengineer.net|fedsdatacenter.com|studybreaks.com|experthomereport.com|notesfromtheporch.com|shtfpreparedness.com|offgridpermaculture.com|wheelssize.com|greenlivingtribe.com|crosswordeg.com|oursportscentral.com|divinedaolibrary.com|chemicalaid.com|sqlserverguides.com|dailythemedcrosswordanswers.net|lovecookingdaily.com|elderguru.com|nonphoneworkathome.com|france-hotel-guide.com|campergrid.com|sbxl.com|rqeeqa.com|ignisnatura.org|pedigreedatabase.com|dreamglossary.com|linuxtechi.com|diysolarshack.com|groundedlifetravel.com|cubsinsider.com|onlinepersonalitytests.org|saltwateraquariumblog.com|bornagainboating.com|thecoastnews.com|nerdbot.com|franchisesports.co.uk|howtoforge.com|perfectdogbreeds.com|healthtipsnow.net|boiteachansons.net|msfsaddons.com|lettersformats.com|wikiaccounting.com|dailycrochet.com|wordscapescheat.com|datasciencemadesimple.com|totalmotorcycle.com|costcoinsider.com|parkingaccess.com|charbelnemnom.com|refrigeratorsreviewed.com|badgerandblade.com|marrieddivorce.com|emprendiendohistorias.com|tracfoneusermanual.net|tckpublishing.com|silverlininglessons.com|asvabpracticetestonline.com|wordstodescribe.com|lyrical-nonsense.com|fantasynerds.com|animalfate.com|lettersinenglish.com|sportfishingbuddy.com|overseasattractions.com|egriz.com|nilsenreport.ca|askthebuilder.com|diydoctor.org.uk|favoredleather.com|autoservicecosts.com|whatispiping.com|scuffedentertainment.com|35mmc.com|parlerdamour.fr|365thingsinhouston.com|centraldesermones.com|aboutchromebooks.com|topwoodworkingadvice.com|spelling-words-well.com|millo.co|thecleverbusiness.com|yourdailyglobe.com|biznewske.com|analyzemath.com|aa1car.com|nutsandboltsspeedtraining.com|yummyindiankitchen.com|codewithmukesh.com|triviawell.com|miracomosehace.com|technorms.com|r-graph-gallery.com|celebritydig.com|scamcharge.com|accountinguide.com|textfixer.com|materialsix.com|roofonline.com|birthdaywishes.expert|goldpriceoz.com|informatique-mania.com|somosmamas.com.ar|rentalhousingdeals.com|acessaber.com.br|squarefootagearea.com|altcodeunicode.com|exrx.net|journeydogtraining.com|pdfwordconvert.com|dataoverhaulers.com|thedisinsider.com|commercialdriverhq.com|fanstranslations.com|havredailynews.com|yardblogger.com|houseplanshelper.com|environmental-conscience.com|hacktheminotaur.com|indifferentlanguages.com|artprompts.org|myenglishteacher.eu|my-package-tracking.com|countertopspecialty.com|it-connect.fr|ourfitpets.com|brighthubeducation.com|defkey.com|flgardening.com|happybirthdaymsg.com|dicasinteligentes.com.br|tutorialgateway.org|weeklyhoroscope.com|escapefan.com|icebreakers.ws|toutoupourlechien.com|happyvagabonds.com|archisoup.com|aginghealthytoday.com|charactercounter.com|esportsearnings.com|freejobalert.com|homeguideguru.com|thecabindiary.com|streetsmartkitchen.com|vitux.com|officetuts.net|feelingvegas.com|thepythoncode.com|electrical4u.net|codycrossanswers.org|salaryaftertax.com|shuttlefare.com|practicequiz.com|orchideria.com|truthorfiction.com|softwaretestingmaterial.com|wordscapeshelp.com|kifarunix.com|labex-cortex.com|bestcateringprices.com|knifeup.com|h-supertools.com|alexusrenee.com|sportfishingbc.com|windows101tricks.com|zwivel.com|mamapedia.com|asacannes.com|classicrockhistory.com|williamsonhomepage.com|tvinsider.com|whats-on-netflix.com|thedailybeast.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|rodeosusa.com|houstoncasemanagers.com|bobcutmag.com|wow4u.com|cookitonce.com|dazepuzzle.com|kylonpowell.com|carserviceland.com|crispyfoodidea.com|phonedealstoday.com|mma.uno|keepinspiring.me|mobileinternist.com|unscramblewords.com|frugalhotspot.com|romapress.net|livetheglory.com|chicitysports.com|fishkeepingworld.com|walkthroughs.net|cultaholic.com|pathofex.com|teamcolorcodes.com|metalwani.com|bulbagarden.net|osrsguide.com|tulamama.com|hometips.com|breatheheavy.com|wordunscrambler.com|racetothewh.com|oneminuteenglish.org|marsja.se|decortweaks.com|jaynestars.com|allclash.com|wordcrazeanswers.com|siccode.com|madbackyard.com|greekmythology.com|thepersonage.com|blogofdoom.com|tarotforum.net|codycrossanswers.com|momdot.com|theilluminerdi.com|codycrossanswers.net|thewebdev.info|raspberrytips.com|thelawnreview.com|excelhow.net|roadtrailrun.com|thepricer.org|games4esl.com|dailyactor.com|livinginacontainer.com|quizerry.com|michaelsaves.com|hailvarsity.com|funsubstance.com|insidepacksports.com|nurseteachings.com|verseoftheday.com|sweepsadvantage.com|jpost.com|closerweekly.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|thehockeywriters.com|apartmenttherapy.com|bleedingcool.com|aiptcomics.com|ginx.tv|futbolenvivomexico.com|fortune.com|grandtournation.com|infos-geek.com|notinerd.com|auralcrave.com|ifly.com|liverampup.com|dantri.com.vn|videocardz.com|clutchfans.net|mamanly.com|futbolenvivochile.com|tarotalmabarrios.com|goodhomeautomation.com|exploreclarion.com|guiasteam.com|rccgonline.org|sicem365.com|il.8to18.com|minecraftlist.org|irishsportsdaily.com|smartandroid.fr|skinnyandtasty.com|mots-croises.ch|altafiber.net|libero.it|livecharts.co.uk|crosswordsolver.org|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|brightgram.com|americansongwriter.com|rare.us|texags.com|cyclonefanatic.com|usssa.com|recyclingcenternear.me|ndnation.com|hockeydb.com|cartermatt.com|neopets.com|emulatorgames.net|dailymail.co.uk|decorhomeideas.com|stattrek.com|nursestudy.net|grammarhow.com|cbr.com|collider.com|androidpolice.com|xda-developers.com|infofamouspeople.com|californiabeaches.com|housingapartments.org|steelernation.com|ultraboardgames.com|everythingreptiles.com|myswissalps.com|h1bdata.info|delfi.lt|programcreek.com|homeinspectioninsider.com|iplocation.net|makeuseof.com|thegamer.com|gamerant.com|steelernation.com|reve-islam.com|pngtosvg.com|phrases.org.uk|areavibes.com|detroitsportsnation.com|motorverso.com|victoriamgclub.com|jpost.com|codegrepper.com|miroir-mag.fr|removeandreplace.com|mapleleafshotstove.com|bigblueinteractive.com|7littlewordsanswers.com|affordablehousingonline.com|uscollegeinternational.com|scitechdaily.com|voetbalnederland.nl|livefutbol.com|eliteguias.com|dodgersnation.com|cultofmac.com|mjsbigblog.com|crosswordbuzz.com|aconsciousrethink.com|projectpractical.com|chromeunboxed.com|hyggehous.com|camping-experten.de|collegefactual.com|guidemusulman.com|diyphotography.net|themag.co.uk|hollywoodmask.com|scrabblecheat.com|inmate-lookup.org|drivingtest.ca|lapatilla.com|diyphotography.net|gardenista.com|tractorbynet.com|fedsmith.com|scholarship-positions.com|mapsus.net|text-compare.com|scamadviser.com|socialsecurityofficenear.me|corporateofficeheadquarters.org|10fastfingers.com|personality-database.com|weather-us.com|ratemyfishtank.com|communitycollegereview.com|latimescrosswordanswers.com|allhiphop.com|dailythemedcrosswordanswers.com|gadgetstouse.com|hotexamples.com|lifewithjanet.com|childcarecenter.us|democraticunderground.com|paraphrasing-tool.com|govsalaries.com|ineskohl.info|uscho.com|remodelista.com|singletrackworld.com|phonesdata.com|itexamanswers.net|names.org|hometownlocator.com|clickspeedtest.com|rpgbot.net|sportcoaching.co.nz|klinikbewertungen.de|goodcalculators.com|fangraphs.com|ipaddress.com|perfect-english-grammar.com|npinumberlookup.org|realmenuprices.com|softgenius.co|tigernet.com|akinator.com|swingcompleto.com|imagecolorpicker.com|live-tennis.eu|fifarosters.com|taxifarefinder.com|grabjobs.co|onlinedoctranslator.com|askanydifference.com|gardenloversclub.com|delftstack.com|youpdf.com|15track.com|manuals.plus|mybendbroadband.com|myworld.breezeline.com|cincinnatibell.net|thegolfnewsnet.com|boardingschoolreview.com|privateschoolreview.com|publicschoolreview.com|malagahoy.es|lainformacion.com|20minutos.es|larazon.es|pink.rs|famousbirthdays.com|my.juno.com|my.netzero.net|linuxize.com|thecalculatorsite.com|alfa.lt|alio.lt|basketnews.lt|draugas.lt|ieskok.lt|inbox.lt|supermama.lt|bb.lv|jauns.lv|dissapore.com|movieplayer.it|androidwaves.com|play2048.co|broadwayworld.com|thehockeywriters.com|simplypsychology.org|smallbiztrends.com|gm-trucks.com|thewindowsclub.com|barnfinds.com|westernjournal.com|nichegamer.com|yardbarker.com|dogtime.com|cheapism.com|autoscout24.com|autoscout24.nl|time.com|timeanddate.com|pistonheads.com|cargurus.ca|novi.ba|foot01.com|matchendirect.fr|sportsport.ba|nasdaq.com|forwhatitsearth.com|hypegalore.com|populareverything.com|thegossipgeek.com|foodtalkdaily.com|listenonrepeat.com|autoscout24.it|autoscout24.at|cargurus.com|milkyway.listenonrepeat.com|planet.fr|lespac.com|gigafile.nu|1001cocktails.com|gamekult.com|beaute-test.com|cnetfrance.fr|lesnumeriques.com|aufeminin.com|doctissimo.fr|marmiton.org|besthealthmag.ca|birdsandblooms.com|thehealthy.com|readersdigest.ca|selection.ca|familyhandyman.com|rd.com|tasteofhome.com|hughesnetinternet.com|hughesnet.com|windstream.net|wowway.net|portal.tds.net|armstrongmywire.com|suddenlink.net|searchandnews.com|mediacomtoday.com|sparklight.com|myworld.atlanticbb.com|my.gvtc.com|mygrande.com|hawaiiantel.net|upstyledaily.com|ac-illust.com|photo-ac.com|historycollection.com|multiplayer.it|autotrader.ca|autohebdo.net|lespac.net|pastemagazine.com|abovethelaw.com|legalinsurrection.com|hometalk.com|dailytimewaste.com|dotabuff.com|phonearena.com|delfi.ee|autogidas.lt|domoplius.lt|ve.lt|idrlabs.com|discuss.com.hk|price.com.hk|uwants.com|autoscout24.de|askamanager.org|lawinsider.com|tattle.life|appunwrapper.com|gradecalculator.com|goodnewsnetwork.org|dontpayfull.com|tamaratattles.com|wuxiaworld.com|centurylink.net|xgn.nl|xgn.es|lonny.com|livingly.com|stylebistro.com|mabelandmoxie.com|zimbio.com|itsrosy.com|parentsdome.com|toocool2betrue.com|themoneytime.com|travelerdoor.com|apartmenttherapy.com|ballotpedia.org|powerlineblog.com|lucianne.com|realclearpolitics.com|allsides.com|legalinsurrection.com|abovethelaw.com|natlawreview.com|untappedcities.com|decisiondeskhq.com|anncoulter.com|thecollegefix.com|realcleardefense.com|medcitynews.com|realclearscience.com|grabien.com|ricksfreeautorepairadvice.com|6sqft.com|pulse2.com|elections-daily.com|realclearpolicy.com|sportsoverdose.com|fathomaway.com|jocial.com|prod.uhrs.playmsn.com|fantasypros.com|theappear.com|timesofisrael.com|quora.com|dailymotion.com|c-stage.aaxads.com ++@@||c.amazon-adsystem.com/cdn/prod/config$domain=courttv.com|simplemost.com|dontwasteyourmoney.com|researchgate.net|10news.com|3newsnow.com|abc15.com|abc2news.com|abcactionnews.com|fox13now.com|fox17online.com|fox47news.com|fox4now.com|katc.com|kbzk.com|kgun9.com|kjrh.com|koaa.com|kpax.com|kristv.com|krtv.com|ksby.com|kshb.com|ktnv.com|ktvq.com|kxxv.com|lex18.com|news5cleveland.com|newschannel5.com|thedelite.com|tmj4.com|turnto23.com|wcpo.com|wkbw.com|wmar2news.com|wptv.com|wrtv.com|wtkr.com|wtvr.com|wtxl.com|wxyz.com|nutrition-charts.com|coloringpagesonly.com|sunrise-sunset.org|whatnowatlanta.com|comicbookrealm.com|online-python.com|homesteadsurvivalsite.com|luciding.com|motivationandlove.com|logosbynick.com|titlecaseconverter.com|tabletopjoab.com|dailykillersudoku.com|qualitydogresources.com|tiremeetsroad.com|itnwwe.com|apnatoronto.com|localpuppybreeders.com|instrumentationtools.com|learncpp.com|wikibioworth.com|programmingr.com|generatormix.com|chipandco.com|colorcodes.io|myotakuworld.com|beatlesbible.com|cakedecorist.com|findnicknames.com|thepointcalculator.com|singlemothers.us|itsolutionstuff.com|ilovedogscute.com|theproductiveengineer.net|fedsdatacenter.com|studybreaks.com|experthomereport.com|notesfromtheporch.com|shtfpreparedness.com|offgridpermaculture.com|wheelssize.com|greenlivingtribe.com|crosswordeg.com|oursportscentral.com|divinedaolibrary.com|chemicalaid.com|sqlserverguides.com|dailythemedcrosswordanswers.net|lovecookingdaily.com|elderguru.com|nonphoneworkathome.com|france-hotel-guide.com|campergrid.com|sbxl.com|rqeeqa.com|ignisnatura.org|pedigreedatabase.com|dreamglossary.com|linuxtechi.com|diysolarshack.com|groundedlifetravel.com|cubsinsider.com|onlinepersonalitytests.org|saltwateraquariumblog.com|bornagainboating.com|thecoastnews.com|nerdbot.com|franchisesports.co.uk|howtoforge.com|perfectdogbreeds.com|healthtipsnow.net|boiteachansons.net|msfsaddons.com|lettersformats.com|wikiaccounting.com|dailycrochet.com|wordscapescheat.com|datasciencemadesimple.com|totalmotorcycle.com|costcoinsider.com|parkingaccess.com|charbelnemnom.com|refrigeratorsreviewed.com|badgerandblade.com|marrieddivorce.com|emprendiendohistorias.com|tracfoneusermanual.net|tckpublishing.com|silverlininglessons.com|asvabpracticetestonline.com|wordstodescribe.com|lyrical-nonsense.com|fantasynerds.com|animalfate.com|lettersinenglish.com|sportfishingbuddy.com|overseasattractions.com|egriz.com|nilsenreport.ca|askthebuilder.com|diydoctor.org.uk|favoredleather.com|autoservicecosts.com|whatispiping.com|scuffedentertainment.com|35mmc.com|parlerdamour.fr|365thingsinhouston.com|centraldesermones.com|aboutchromebooks.com|topwoodworkingadvice.com|spelling-words-well.com|millo.co|thecleverbusiness.com|yourdailyglobe.com|biznewske.com|analyzemath.com|aa1car.com|nutsandboltsspeedtraining.com|yummyindiankitchen.com|codewithmukesh.com|triviawell.com|miracomosehace.com|technorms.com|r-graph-gallery.com|celebritydig.com|scamcharge.com|accountinguide.com|textfixer.com|materialsix.com|roofonline.com|birthdaywishes.expert|goldpriceoz.com|informatique-mania.com|somosmamas.com.ar|rentalhousingdeals.com|acessaber.com.br|squarefootagearea.com|altcodeunicode.com|exrx.net|journeydogtraining.com|pdfwordconvert.com|dataoverhaulers.com|thedisinsider.com|commercialdriverhq.com|fanstranslations.com|havredailynews.com|yardblogger.com|houseplanshelper.com|environmental-conscience.com|hacktheminotaur.com|indifferentlanguages.com|artprompts.org|myenglishteacher.eu|my-package-tracking.com|countertopspecialty.com|it-connect.fr|ourfitpets.com|brighthubeducation.com|defkey.com|flgardening.com|happybirthdaymsg.com|dicasinteligentes.com.br|tutorialgateway.org|weeklyhoroscope.com|escapefan.com|icebreakers.ws|toutoupourlechien.com|happyvagabonds.com|archisoup.com|aginghealthytoday.com|charactercounter.com|esportsearnings.com|freejobalert.com|homeguideguru.com|thecabindiary.com|streetsmartkitchen.com|vitux.com|officetuts.net|feelingvegas.com|thepythoncode.com|electrical4u.net|codycrossanswers.org|salaryaftertax.com|shuttlefare.com|practicequiz.com|orchideria.com|truthorfiction.com|softwaretestingmaterial.com|wordscapeshelp.com|kifarunix.com|labex-cortex.com|bestcateringprices.com|knifeup.com|h-supertools.com|alexusrenee.com|sportfishingbc.com|windows101tricks.com|zwivel.com|mamapedia.com|asacannes.com|classicrockhistory.com|williamsonhomepage.com|tvinsider.com|whats-on-netflix.com|thedailybeast.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|rodeosusa.com|houstoncasemanagers.com|bobcutmag.com|wow4u.com|cookitonce.com|dazepuzzle.com|kylonpowell.com|carserviceland.com|crispyfoodidea.com|phonedealstoday.com|mma.uno|keepinspiring.me|mobileinternist.com|unscramblewords.com|frugalhotspot.com|romapress.net|livetheglory.com|chicitysports.com|fishkeepingworld.com|walkthroughs.net|cultaholic.com|pathofex.com|teamcolorcodes.com|metalwani.com|bulbagarden.net|osrsguide.com|tulamama.com|hometips.com|breatheheavy.com|wordunscrambler.com|racetothewh.com|oneminuteenglish.org|marsja.se|decortweaks.com|jaynestars.com|allclash.com|wordcrazeanswers.com|siccode.com|madbackyard.com|greekmythology.com|thepersonage.com|blogofdoom.com|tarotforum.net|codycrossanswers.com|momdot.com|theilluminerdi.com|codycrossanswers.net|thewebdev.info|raspberrytips.com|thelawnreview.com|excelhow.net|roadtrailrun.com|thepricer.org|games4esl.com|dailyactor.com|livinginacontainer.com|quizerry.com|michaelsaves.com|hailvarsity.com|funsubstance.com|insidepacksports.com|nurseteachings.com|verseoftheday.com|sweepsadvantage.com|jpost.com|closerweekly.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|thehockeywriters.com|apartmenttherapy.com|bleedingcool.com|aiptcomics.com|ginx.tv|futbolenvivomexico.com|fortune.com|grandtournation.com|infos-geek.com|notinerd.com|auralcrave.com|ifly.com|liverampup.com|dantri.com.vn|videocardz.com|clutchfans.net|mamanly.com|futbolenvivochile.com|tarotalmabarrios.com|goodhomeautomation.com|exploreclarion.com|guiasteam.com|rccgonline.org|sicem365.com|il.8to18.com|minecraftlist.org|irishsportsdaily.com|smartandroid.fr|skinnyandtasty.com|mots-croises.ch|cyclonefanatic.com|altafiber.net|livecharts.co.uk|crosswordsolver.org|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|brightgram.com|americansongwriter.com|rare.us|texags.com|usssa.com|recyclingcenternear.me|ndnation.com|hockeydb.com|cartermatt.com|neopets.com|emulatorgames.net|dailymail.co.uk|decorhomeideas.com|stattrek.com|nursestudy.net|grammarhow.com|cbr.com|collider.com|androidpolice.com|xda-developers.com|californiabeaches.com|housingapartments.org|steelernation.com|ultraboardgames.com|everythingreptiles.com|myswissalps.com|h1bdata.info|delfi.lt|programcreek.com|homeinspectioninsider.com|iplocation.net|makeuseof.com|thegamer.com|gamerant.com|steelernation.com|reve-islam.com|pngtosvg.com|phrases.org.uk|areavibes.com|detroitsportsnation.com|motorverso.com|victoriamgclub.com|codegrepper.com|miroir-mag.fr|removeandreplace.com|mapleleafshotstove.com|bigblueinteractive.com|7littlewordsanswers.com|affordablehousingonline.com|nypost.com|uscollegeinternational.com|scitechdaily.com|voetbalnederland.nl|livefutbol.com|eliteguias.com|dodgersnation.com|cultofmac.com|mjsbigblog.com|crosswordbuzz.com|aconsciousrethink.com|projectpractical.com|chromeunboxed.com|hyggehous.com|camping-experten.de|collegefactual.com|guidemusulman.com|diyphotography.net|themag.co.uk|hollywoodmask.com|scrabblecheat.com|inmate-lookup.org|drivingtest.ca|lapatilla.com|diyphotography.net|gardenista.com|tractorbynet.com|fedsmith.com|scholarship-positions.com|mapsus.net|text-compare.com|scamadviser.com|socialsecurityofficenear.me|corporateofficeheadquarters.org|10fastfingers.com|personality-database.com|weather-us.com|ratemyfishtank.com|communitycollegereview.com|latimescrosswordanswers.com|allhiphop.com|dailythemedcrosswordanswers.com|gadgetstouse.com|hotexamples.com|lifewithjanet.com|childcarecenter.us|democraticunderground.com|paraphrasing-tool.com|govsalaries.com|ineskohl.info|uscho.com|remodelista.com|singletrackworld.com|phonesdata.com|itexamanswers.net|names.org|hometownlocator.com|clickspeedtest.com|rpgbot.net|sportcoaching.co.nz|klinikbewertungen.de|goodcalculators.com|fangraphs.com|ipaddress.com|perfect-english-grammar.com|npinumberlookup.org|realmenuprices.com|softgenius.co|tigernet.com|akinator.com|swingcompleto.com|imagecolorpicker.com|live-tennis.eu|fifarosters.com|taxifarefinder.com|grabjobs.co|onlinedoctranslator.com|askanydifference.com|gardenloversclub.com|delftstack.com|youpdf.com|15track.com|manuals.plus|mybendbroadband.com|myworld.breezeline.com|cincinnatibell.net|thegolfnewsnet.com|boardingschoolreview.com|privateschoolreview.com|publicschoolreview.com|malagahoy.es|lainformacion.com|20minutos.es|larazon.es|pink.rs|famousbirthdays.com|my.juno.com|my.netzero.net|linuxize.com|thecalculatorsite.com|alfa.lt|alio.lt|basketnews.lt|draugas.lt|ieskok.lt|inbox.lt|supermama.lt|bb.lv|jauns.lv|dissapore.com|movieplayer.it|androidwaves.com|play2048.co|broadwayworld.com|thehockeywriters.com|simplypsychology.org|smallbiztrends.com|gm-trucks.com|thewindowsclub.com|barnfinds.com|westernjournal.com|nichegamer.com|yardbarker.com|dogtime.com|cheapism.com|autoscout24.com|autoscout24.nl|time.com|timeanddate.com|pistonheads.com|cargurus.ca|novi.ba|foot01.com|matchendirect.fr|sportsport.ba|nasdaq.com|forwhatitsearth.com|hypegalore.com|populareverything.com|thegossipgeek.com|foodtalkdaily.com|listenonrepeat.com|autoscout24.it|autoscout24.at|cargurus.com|milkyway.listenonrepeat.com|planet.fr|lespac.com|gigafile.nu|1001cocktails.com|gamekult.com|beaute-test.com|cnetfrance.fr|lesnumeriques.com|aufeminin.com|doctissimo.fr|marmiton.org|besthealthmag.ca|birdsandblooms.com|thehealthy.com|readersdigest.ca|selection.ca|familyhandyman.com|rd.com|tasteofhome.com|hughesnetinternet.com|hughesnet.com|windstream.net|wowway.net|portal.tds.net|armstrongmywire.com|suddenlink.net|searchandnews.com|mediacomtoday.com|sparklight.com|myworld.atlanticbb.com|my.gvtc.com|mygrande.com|hawaiiantel.net|upstyledaily.com|ac-illust.com|photo-ac.com|historycollection.com|multiplayer.it|autotrader.ca|autohebdo.net|lespac.net|pastemagazine.com|abovethelaw.com|legalinsurrection.com|hometalk.com|dailytimewaste.com|dotabuff.com|phonearena.com|delfi.ee|autogidas.lt|domoplius.lt|ve.lt|idrlabs.com|discuss.com.hk|price.com.hk|uwants.com|autoscout24.de|askamanager.org|lawinsider.com|tattle.life|appunwrapper.com|gradecalculator.com|goodnewsnetwork.org|dontpayfull.com|tamaratattles.com|wuxiaworld.com|centurylink.net|xgn.nl|xgn.es|lonny.com|livingly.com|stylebistro.com|mabelandmoxie.com|zimbio.com|itsrosy.com|parentsdome.com|toocool2betrue.com|themoneytime.com|travelerdoor.com|apartmenttherapy.com|ballotpedia.org|powerlineblog.com|lucianne.com|realclearpolitics.com|allsides.com|legalinsurrection.com|abovethelaw.com|natlawreview.com|untappedcities.com|decisiondeskhq.com|anncoulter.com|thecollegefix.com|realcleardefense.com|medcitynews.com|realclearscience.com|grabien.com|ricksfreeautorepairadvice.com|6sqft.com|pulse2.com|elections-daily.com|realclearpolicy.com|sportsoverdose.com|fathomaway.com|jocial.com|prod.uhrs.playmsn.com|fantasypros.com|theappear.com|timesofisrael.com|dailymotion.com|c-stage.aaxads.com ++@@||c.amazon-adsystem.com/bao-csm/aps-comm/aps_csm.js$xmlhttprequest,domain=hailvarsity.com +@@||redditad.com^$domain=reddit.com +@@||redditad.com^$domain=reddit.com,document +@@||related.speedtest.net^$domain=speedtest.net @@ -73615,6 +78961,8 @@ new file mode 100644 +@@||related.firstpost.com^$domain=firstpost.com,document +@@||related.seattletimes.com^$domain=seattletimes.com +@@||related.seattletimes.com^$domain=seattletimes.com,document ++@@||related.techhive.com^$domain=techhive.com ++@@||related.techhive.com^$domain=techhive.com,document +@@||topics.247wallst.com^$domain=247wallst.com +@@||topics.247wallst.com^$domain=247wallst.com,document +@@||aax.koutsompolio.gr^$domain=koutsompolio.gr @@ -73663,8 +79011,8 @@ new file mode 100644 +@@||related.charlieintel.com^$domain=charlieintel.com,document +@@||related.fortniteintel.com^$domain=fortniteintel.com +@@||related.fortniteintel.com^$domain=fortniteintel.com,document -+@@||aax.softonic.com^$domain=sft-staging.com|softonic.com|filehippo.com|filehippo.de|filehippo.jp|filehippo.pl|softoniclabs.com|toucharger.com -+@@||aax.softonic.com^$domain=sft-staging.com|softonic.com|filehippo.com|filehippo.de|filehippo.jp|filehippo.pl|softoniclabs.com|toucharger.com,document ++@@||aax.softonic.com^$domain=softonic.com.tr|softonic.vn|softonic.ru|softonic.pl|softonic.nl|softonic.com.br|softonic.kr|softonic.jp|softonic.cn|sft-staging.com|softonic.com|filehippo.com|filehippo.de|filehippo.jp|filehippo.pl|softoniclabs.com|toucharger.com ++@@||aax.softonic.com^$domain=softonic.com.tr|softonic.vn|softonic.ru|softonic.pl|softonic.nl|softonic.com.br|softonic.kr|softonic.jp|softonic.cn|sft-staging.com|softonic.com|filehippo.com|filehippo.de|filehippo.jp|filehippo.pl|softoniclabs.com|toucharger.com,document +@@||related.motorsport.com^$domain=motorsport.com|rideapart.com +@@||related.motorsport.com^$domain=motorsport.com|rideapart.com,document +@@||related.allestoringen.*^$document,subdocument,domain=allestoringen.be|allestoringen.nl @@ -73673,6 +79021,9 @@ new file mode 100644 +@@||fallback.autoscout24.*$domain=autoscout24.at|autoscout24.nl|autoscout24.com|autoscout24.it|autoscout24.fr|autoscout24.pl,document +@@||related.timesofindia.indiatimes.com^$domain=timesofindia.indiatimes.com +@@||related.timesofindia.indiatimes.com^$domain=timesofindia.indiatimes.com,document ++@@||related.pcworld.com^$domain=pcworld.com,document ++@@||related.pcworld.com^$domain=pcworld.com ++@@||abr.lngtd.com/display.html^$document,subdocument,domain=curseforge.com +@@||s-cdn.phonearena.com/js/prebidjs/prebid*_main_config.js$domain=phonearena.com +@@||thunderdom-v1.sftapi.com^$script,xmlhttprequest,third-party,domain=sft-staging.com|softonic.com|softoniclabs.com|ghacks.net|filehippo.com +@@||thunderdom-v1.sftapi.com/px.gif?ch=1&rn=*$domain=windowsreport.com|toucharger.com|lelogicielgratuit.com|sft-staging.com|softonic.com|softoniclabs.com|ghacks.net|filehippo.com @@ -73758,8 +79109,8 @@ new file mode 100644 +@@||related.wetteronline.at^$domain=wetteronline.at,document +@@||related.musescore.com^$domain=musescore.com +@@||related.musescore.com^$domain=musescore.com,document -+@@||aax-related.sourceforge.net^$domain=slashdot.org -+@@||aax-related.sourceforge.net^$domain=slashdot.org,document ++@@||aax-related.sourceforge.net^$domain=sourceforge.net|slashdot.org ++@@||aax-related.sourceforge.net^$domain=sourceforge.net|slashdot.org,document +@@||related.buonissimo.it^$domain=buonissimo.it +@@||related.buonissimo.it^$domain=buonissimo.it,document +@@||related.dilei.it^$domain=dilei.it @@ -73812,6 +79163,7 @@ new file mode 100644 +@@||lib.pgmcdn.com/dark-matter-$script,domain=billboard.com +@@||lib.pgmcdn.com/clarity-$script,domain=hollywoodreporter.com +@@||linuxize.assistpub.com^$document,subdocument,domain=linuxize.com ++@@||uwants.com.assistpub.com^$document,subdocument,domain=uwants.com +@@||ads.talkscreativity.com/assets/publisher/ittelefoninonet/init.js$domain=telefonino.net +@@||ads.talkscreativity.com/assets/engine/*/engine.min.js$domain=telefonino.net +@@||global.proper.io/payloads/*.js$domain=notalwaysright.com @@ -73819,7 +79171,7 @@ new file mode 100644 +@@||cdn.ziffstatic.com/pg^$domain=mashable.com|pcmag.com +@@^wp-content/plugins/*/observer-lazy-load-ads.js^$script,domain=searchenginejournal.com +autoscout24.nl,mein-schoener-garten.de,twinfinite.net,resetera.com,sharemods.com,blic.rs,arstechnica.com,filehorse.com,telefonino.net,spikeybits.com,speedtest.net,247wallst.com,reddit.com,dvdsreleasedates.com,gamepress.gg,seattletimes.com,ccm.net,boredpanda.com,novini.bg,footballfancast.com,mediafire.com,magazinedelledonne.it,www.motorsport.com,convertunits.com,hollywoodreporter.com,fr.shopping.rakuten.com,inquisitr.com,Rideapart.com,Insideevs.com,Insideevs.fr,Insideevs.it,Motor1.com,omnifurgone.it,en.softonic.com,titantv.com,allthetests.com,majorgeeks.com,searchenginejournal.com,Omnimoto.it,ebay-kleinanzeigen.de,washingtontimes.com,stuff.co.nz,sammobile.com,songsterr.com,thestudentroom.co.uk,charlieintel.com,fortniteintel.com,biggeekdad.com,index.hr,bolavip.com,gamepur.com,dotesports.com,pleated-jeans.com,billboard.com,allkpop.com,legacy.com,mashable.com,musescore.com,ultimate-guitar.com,lacuerda.net,ezgif.com#@#iframe[id^="google_ads_frame"] -+ratemyfishtank.com,apkcombo.com,mein-schoener-garten.de,twinfinite.net,resetera.com,sharemods.com,blic.rs,arstechnica.com,filehorse.com,telefonino.net,spikeybits.com,speedtest.net,247wallst.com,reddit.com,dvdsreleasedates.com,gamepress.gg,seattletimes.com,ccm.net,boredpanda.com,novini.bg,footballfancast.com,mediafire.com,magazinedelledonne.it,www.motorsport.com,convertunits.com,hollywoodreporter.com,fr.shopping.rakuten.com,inquisitr.com,Rideapart.com,Insideevs.com,Insideevs.fr,Insideevs.it,Motor1.com,omnifurgone.it,en.softonic.com,titantv.com,allthetests.com,majorgeeks.com,searchenginejournal.com,Omnimoto.it,ebay-kleinanzeigen.de,washingtontimes.com,stuff.co.nz,sammobile.com,Songsterr.com,thestudentroom.co.uk,charlieintel.com,fortniteintel.com,biggeekdad.com,index.hr,bolavip.com,gamepur.com,dotesports.com,pleated-jeans.com,billboard.com,allkpop.com,legacy.com,mashable.com,musescore.com,ultimate-guitar.com,lacuerda.net,ezgif.com#@#.adsbygoogle ++15track.com,ratemyfishtank.com,apkcombo.com,mein-schoener-garten.de,twinfinite.net,resetera.com,sharemods.com,blic.rs,arstechnica.com,filehorse.com,telefonino.net,spikeybits.com,speedtest.net,247wallst.com,reddit.com,dvdsreleasedates.com,gamepress.gg,seattletimes.com,ccm.net,boredpanda.com,novini.bg,footballfancast.com,mediafire.com,magazinedelledonne.it,www.motorsport.com,convertunits.com,hollywoodreporter.com,fr.shopping.rakuten.com,inquisitr.com,Rideapart.com,Insideevs.com,Insideevs.fr,Insideevs.it,Motor1.com,omnifurgone.it,en.softonic.com,titantv.com,allthetests.com,majorgeeks.com,searchenginejournal.com,Omnimoto.it,ebay-kleinanzeigen.de,washingtontimes.com,stuff.co.nz,sammobile.com,Songsterr.com,thestudentroom.co.uk,charlieintel.com,fortniteintel.com,biggeekdad.com,index.hr,bolavip.com,gamepur.com,dotesports.com,pleated-jeans.com,billboard.com,allkpop.com,legacy.com,mashable.com,musescore.com,ultimate-guitar.com,lacuerda.net,ezgif.com#@#.adsbygoogle +twinfinite.net,resetera.com,sharemods.com,blic.rs,arstechnica.com,filehorse.com,telefonino.net,spikeybits.com,speedtest.net,247wallst.com,reddit.com,dvdsreleasedates.com,gamepress.gg,seattletimes.com,ccm.net,boredpanda.com,novini.bg,footballfancast.com,mediafire.com,magazinedelledonne.it,www.motorsport.com,convertunits.com,hollywoodreporter.com,fr.shopping.rakuten.com,inquisitr.com,Rideapart.com,Insideevs.com,Insideevs.fr,Insideevs.it,Motor1.com,omnifurgone.it,en.softonic.com,titantv.com,allthetests.com,majorgeeks.com,searchenginejournal.com,Omnimoto.it,ebay-kleinanzeigen.de,washingtontimes.com,stuff.co.nz,sammobile.com,Songsterr.com,thestudentroom.co.uk,charlieintel.com,fortniteintel.com,biggeekdad.com,index.hr,bolavip.com,gamepur.com,dotesports.com,pleated-jeans.com,billboard.com,allkpop.com,legacy.com,mashable.com,musescore.com,ultimate-guitar.com,lacuerda.net,ezgif.com#@#.adsbygoogle > [id^="aswift_"] +twinfinite.net,resetera.com,sharemods.com,blic.rs,arstechnica.com,filehorse.com,telefonino.net,spikeybits.com,speedtest.net,247wallst.com,reddit.com,dvdsreleasedates.com,gamepress.gg,seattletimes.com,ccm.net,boredpanda.com,novini.bg,footballfancast.com,mediafire.com,magazinedelledonne.it,www.motorsport.com,convertunits.com,hollywoodreporter.com,fr.shopping.rakuten.com,inquisitr.com,Rideapart.com,Insideevs.com,Insideevs.fr,Insideevs.it,Motor1.com,omnifurgone.it,en.softonic.com,titantv.com,allthetests.com,majorgeeks.com,searchenginejournal.com,Omnimoto.it,ebay-kleinanzeigen.de,washingtontimes.com,stuff.co.nz,sammobile.com,Songsterr.com,thestudentroom.co.uk,charlieintel.com,fortniteintel.com,biggeekdad.com,index.hr,bolavip.com,gamepur.com,dotesports.com,pleated-jeans.com,billboard.com,allkpop.com,legacy.com,mashable.com,musescore.com,ultimate-guitar.com,lacuerda.net,ezgif.com#@#div > .adsbygoogle +@@||pagead2.googlesyndication.com/pagead/$script,domain=mein-schoener-garten.de|ezgif.com|twinfinite.net|resetera.com|sharemods.com|blic.rs|arstechnica.com|filehorse.com|telefonino.net|spikeybits.com|lacuerda.net|speedtest.net|247wallst.com|reddit.com|dvdsreleasedates.com|gamepress.gg|seattletimes.com|ccm.net|boredpanda.com|novini.bg|footballfancast.com|mediafire.com|magazinedelledonne.it|www.motorsport.com|convertunits.com|hollywoodreporter.com|fr.shopping.rakuten.com|inquisitr.com|Rideapart.com|Insideevs.com|Insideevs.fr|Insideevs.it|Motor1.com|omnifurgone.it|en.softonic.com|titantv.com|allthetests.com|majorgeeks.com|searchenginejournal.com|Omnimoto.it|ebay-kleinanzeigen.de|washingtontimes.com|stuff.co.nz|sammobile.com|Songsterr.com|thestudentroom.co.uk|charlieintel.com|fortniteintel.com|biggeekdad.com|index.hr|bolavip.com|gamepur.com|dotesports.com|pleated-jeans.com|billboard.com|allkpop.com|legacy.com|mashable.com|musescore.com|ultimate-guitar.com @@ -73846,14 +79198,15 @@ new file mode 100644 +@@^ads/dynamicAds.js$~third-party,script,domain=macworld.es|pcworld.es|webwereld.nl|digitalartsonline.co.uk|techadvisor.co.uk|macworld.co.uk +@@^ads/afterImgAds.js$~third-party,script,domain=digitalartsonline.co.uk +@@||gateway.reddit.com/desktopapi/*/comments_page_ads^$domain=reddit.com -+@@||stpd.cloud/assets/hb^$script,domain=ezgif.com|cplusplus.com|lexulous.com ++@@||stpd.cloud/assets/hb^$script,domain=kochenmituns.com|ezgif.com|cplusplus.com|lexulous.com ++@@||stpd.cloud/saas^$script,domain=ezgif.com +@@||cdn.appconsent.io^$script,domain=basketusa.com +@@||indexww.com/ht^$third-party,domain=wetteronline.de|wetteronline.at|wetteronline.ch +@@||st.wetteronline.*/mdr/p_adplace/*/js/showAds.js$script,domain=wetteronline.de|wetteronline.at|wetteronline.ch +@@||st.wetteronline.*/mdr/p_adplace/*/js/wodasHeader.js$script,domain=wetteronline.de|wetteronline.at|wetteronline.ch +@@||st.wetteronline.*/mdr/p_adplace/*/js/wodasHeaderDfp_www.js$script,domain=wetteronline.de|wetteronline.at|wetteronline.ch +@@||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$domain=hockeybuzz.com -+@@||console.adgrid.io/adgrid-build^$domain=motor1.com ++@@||console.adgrid.io/adgrid-build^$domain=motorsport.com|motor1.com +||tra.scds.pmdstatic.net/adblock-check/1/main.js$domain=gala.fr +@@^g1/global/a/dfp/jquery.lazyload-ad.js^$~third-party,domain=pcworld.pl +@@||static.timesofisrael.com/*/prebid/prebid_wrapper-desktop.js^$script,domain=timesofisrael.com @@ -73878,49 +79231,59 @@ new file mode 100644 +@@||prebid.reworldmediafactory.com/*/script.min.js^$script,domain=melty.fr|lacremedugaming.fr +@@||prebid.reworldmediafactory.com/prebid.js^$script,domain=melty.fr|lacremedugaming.fr +@@||cars.com/*/js/vendor/prebid*.js^$domain=cars.com -+@@||googletagservices.com/tag/js/gpt.js^$domain=milanuncios.com -+@@||d*.cloudfront.net/ads-code^$script,domain=stocktwits.com|infozport.com|vaughn.live|random-generator.org.uk|letter-generator.org.uk|free-browser-games.online|dating-profile-generator.org.uk|character-generator.org.uk|poem-generator.org.uk|plot-generator.org.uk|name-generator.org.uk|yardbarker.com|song-lyrics-generator.org.uk ++@@||googletagservices.com/tag/js/gpt.js^$domain=stuff.co.nz|milanuncios.com ++@@||d*.cloudfront.net/ads-code^$script,domain=asianhobbyist.com|themorningtribune.com|cheeseheadtv.com|stocktwits.com|infozport.com|vaughn.live|random-generator.org.uk|letter-generator.org.uk|free-browser-games.online|dating-profile-generator.org.uk|character-generator.org.uk|poem-generator.org.uk|plot-generator.org.uk|name-generator.org.uk|yardbarker.com|song-lyrics-generator.org.uk +@@||d*.cloudfront.net/header-tags^$script,domain=stocktwits.com|infozport.com|tellyreviews.com|cheeseheadtv.com|ringtv.com|vaughn.live|free-browser-games.online +@@||*.andbeyond.media/prod-global-*.js^$domain=indiatimes.com|moneycontrol.com|indianexpress.com|udn.com|mingpao.com|hk01.com|anandabazar.com|ulifestyle.com.hk|detik.com|republicworld.com|thestar.com.my|baby-kingdom.com|bloombergquint.com|weekendhk.com|hket.com|cnbcindonesia.com|gmanetwork.com|abplive.com|popdaily.com.tw|businesstoday.com.tw|malaymail.com|andhrajyothy.com|nst.com.my|bdnews24.com|cnnindonesia.com|sanook.com|sina.com.hk|eenadu.net|cna.com.tw|bharian.com.my|thairath.co.th|financialexpress.com|prajavani.net|sethlui.com|cmoney.tw|thekdaily.com|haibunda.com|gempak.com|ntnews.com|stheadline.com|lowyat.net|liputan6.com|merdeka.com|mababy.com|astroawani.com|malaysiakini.com|beautifulnara.com|tempo.co|sakshi.com|kapanlagi.com|newspointapp.com|thecatcity.com|spotboye.com|autocarindia.com|line.me|bakewithshivesh.com +@@||m2d.m2.ai^*.js$script,domain=emulatorgames.net|boredpanda.com -+@@||m2d.m2.ai/v/*js^script,domain=cartermatt.com ++@@||m2d.m2.ai/v/*js^$script,domain=cartermatt.com +@@||c.pubguru.net/pg.*.home.cat.js^$script,domain=cartermatt.com +@@||keytarget.adnet.lt/stable/keytarget-*.min.js^$domain=jauns.lv|inbox.lt|bb.lv +@@||b.adbox.lv/emiter/bx_placement.js^$domain=inbox.lt +@@||b.adbox.lv/bxlib/js/emiter.js^$domain=inbox.lt +@@||b.adbox.lv/bxlib/js/loader.js^$domain=inbox.lt +@@||ad.doubleclick.net/ddm/$image,domain=reddit.com -+@@||ezojs.com/ezoic/sa.min.js^$domain=personality-database.com|fangraphs.com|latimescrosswordanswers.com|scamadviser.com|allhiphop.com|socialsecurityofficenear.me|festivalnet.com|youpdf.com|thetrendspotter.net ++@@||ezojs.com/ezoic/sa.min.js^$domain=nutrition-charts.com|coloringpagesonly.com|sunrise-sunset.org|whatnowatlanta.com|comicbookrealm.com|online-python.com|homesteadsurvivalsite.com|luciding.com|motivationandlove.com|logosbynick.com|titlecaseconverter.com|tabletopjoab.com|dailykillersudoku.com|qualitydogresources.com|tiremeetsroad.com|itnwwe.com|apnatoronto.com|localpuppybreeders.com|instrumentationtools.com|learncpp.com|wikibioworth.com|programmingr.com|generatormix.com|chipandco.com|colorcodes.io|myotakuworld.com|beatlesbible.com|cakedecorist.com|findnicknames.com|thepointcalculator.com|singlemothers.us|itsolutionstuff.com|ilovedogscute.com|theproductiveengineer.net|fedsdatacenter.com|studybreaks.com|experthomereport.com|notesfromtheporch.com|shtfpreparedness.com|offgridpermaculture.com|wheelssize.com|greenlivingtribe.com|crosswordeg.com|oursportscentral.com|divinedaolibrary.com|chemicalaid.com|sqlserverguides.com|dailythemedcrosswordanswers.net|lovecookingdaily.com|elderguru.com|nonphoneworkathome.com|france-hotel-guide.com|campergrid.com|sbxl.com|rqeeqa.com|ignisnatura.org|pedigreedatabase.com|dreamglossary.com|linuxtechi.com|diysolarshack.com|groundedlifetravel.com|cubsinsider.com|onlinepersonalitytests.org|saltwateraquariumblog.com|bornagainboating.com|thecoastnews.com|nerdbot.com|franchisesports.co.uk|howtoforge.com|perfectdogbreeds.com|healthtipsnow.net|boiteachansons.net|msfsaddons.com|lettersformats.com|wikiaccounting.com|dailycrochet.com|wordscapescheat.com|datasciencemadesimple.com|totalmotorcycle.com|costcoinsider.com|parkingaccess.com|charbelnemnom.com|refrigeratorsreviewed.com|badgerandblade.com|marrieddivorce.com|emprendiendohistorias.com|tracfoneusermanual.net|tckpublishing.com|silverlininglessons.com|asvabpracticetestonline.com|wordstodescribe.com|lyrical-nonsense.com|fantasynerds.com|animalfate.com|lettersinenglish.com|sportfishingbuddy.com|overseasattractions.com|egriz.com|nilsenreport.ca|askthebuilder.com|diydoctor.org.uk|favoredleather.com|autoservicecosts.com|whatispiping.com|scuffedentertainment.com|35mmc.com|parlerdamour.fr|365thingsinhouston.com|centraldesermones.com|aboutchromebooks.com|topwoodworkingadvice.com|spelling-words-well.com|millo.co|thecleverbusiness.com|yourdailyglobe.com|biznewske.com|analyzemath.com|aa1car.com|nutsandboltsspeedtraining.com|yummyindiankitchen.com|codewithmukesh.com|triviawell.com|miracomosehace.com|technorms.com|r-graph-gallery.com|celebritydig.com|scamcharge.com|accountinguide.com|textfixer.com|materialsix.com|roofonline.com|birthdaywishes.expert|goldpriceoz.com|informatique-mania.com|somosmamas.com.ar|rentalhousingdeals.com|acessaber.com.br|squarefootagearea.com|altcodeunicode.com|exrx.net|journeydogtraining.com|pdfwordconvert.com|dataoverhaulers.com|thedisinsider.com|commercialdriverhq.com|fanstranslations.com|havredailynews.com|yardblogger.com|houseplanshelper.com|environmental-conscience.com|hacktheminotaur.com|indifferentlanguages.com|artprompts.org|myenglishteacher.eu|my-package-tracking.com|countertopspecialty.com|it-connect.fr|ourfitpets.com|brighthubeducation.com|defkey.com|flgardening.com|happybirthdaymsg.com|dicasinteligentes.com.br|tutorialgateway.org|weeklyhoroscope.com|escapefan.com|icebreakers.ws|toutoupourlechien.com|happyvagabonds.com|archisoup.com|aginghealthytoday.com|charactercounter.com|esportsearnings.com|freejobalert.com|homeguideguru.com|thecabindiary.com|streetsmartkitchen.com|vitux.com|officetuts.net|feelingvegas.com|thepythoncode.com|electrical4u.net|codycrossanswers.org|salaryaftertax.com|shuttlefare.com|practicequiz.com|orchideria.com|truthorfiction.com|softwaretestingmaterial.com|wordscapeshelp.com|kifarunix.com|labex-cortex.com|bestcateringprices.com|knifeup.com|h-supertools.com|alexusrenee.com|sportfishingbc.com|windows101tricks.com|zwivel.com|mamapedia.com|asacannes.com|classicrockhistory.com|williamsonhomepage.com|rodeosusa.com|houstoncasemanagers.com|bobcutmag.com|wow4u.com|cookitonce.com|dazepuzzle.com|kylonpowell.com|carserviceland.com|crispyfoodidea.com|phonedealstoday.com|mma.uno|keepinspiring.me|mobileinternist.com|unscramblewords.com|frugalhotspot.com|romapress.net|livetheglory.com|chicitysports.com|fishkeepingworld.com|walkthroughs.net|cultaholic.com|pathofex.com|teamcolorcodes.com|metalwani.com|bulbagarden.net|osrsguide.com|tulamama.com|hometips.com|breatheheavy.com|wordunscrambler.com|racetothewh.com|oneminuteenglish.org|marsja.se|decortweaks.com|jaynestars.com|allclash.com|wordcrazeanswers.com|siccode.com|madbackyard.com|greekmythology.com|thepersonage.com|blogofdoom.com|tarotforum.net|codycrossanswers.com|momdot.com|theilluminerdi.com|codycrossanswers.net|thewebdev.info|raspberrytips.com|thelawnreview.com|excelhow.net|roadtrailrun.com|thepricer.org|games4esl.com|dailyactor.com|livinginacontainer.com|quizerry.com|michaelsaves.com|nurseteachings.com|verseoftheday.com|sweepsadvantage.com|aiptcomics.com|ginx.tv|futbolenvivomexico.com|grandtournation.com|infos-geek.com|notinerd.com|auralcrave.com|ifly.com|liverampup.com|dantri.com.vn|videocardz.com|smartandroid.fr|skinnyandtasty.com|mots-croises.ch|personality-database.com|fangraphs.com|latimescrosswordanswers.com|scamadviser.com|allhiphop.com|socialsecurityofficenear.me|festivalnet.com|youpdf.com|thetrendspotter.net +@@/wp-content/themes/*/client/build/js/ad-loader.bundle.min.js^$script,domain=thehill.com +@@||nc.pubpowerplatform.io^$domain=infofamouspeople.com|mapsus.net +@@||imasdk.googleapis.com/js/sdkloader/ima3.js^$domain=infofamouspeople.com|gamestry.com|mapsus.net -+@@||securepubads.g.doubleclick.net/pagead/ppub_config^$domain=mapsus.net ++@@||securepubads.g.doubleclick.net/pagead/ppub_config^$domain=retailmenot.com|mapsus.net +@@||tags.newdreamglobal.com/admanager/newglobal.sdk.min.js^$domain=lapatilla.com +@@||tags.newdreamglobal.com/admanager/prebid*.js^$domain=lapatilla.com +@@||tags.newdreamglobal.com/admanager/cfg/*.js^$domain=lapatilla.com +@@||related.speedtest.net^$domain=xn--allestrungen-9ib.de +@@||related.speedtest.net^$domain=xn--allestrungen-9ib.de,document -+@@||ads.pubmatic.com/AdServer/js/pwt/*/pwt.js^$domain=cargurus.com|timesofindia.indiatimes.com|bostonglobe.com ++@@||ads.pubmatic.com/AdServer/js/pwt/*/pwt.js^$domain=researchgate.net|libero.it|cargurus.com|timesofindia.indiatimes.com|bostonglobe.com +@@||tagan.adlightning.com/*/op.js^$domain=dailymail.co.uk -+@@||static-cdn.spot.im/production/ads/tags/*/ads/ads.js$domain=dailymail.co.uk|nypost.com -+@@||static-cdn.spot.im/production/ads/tags^$domain=lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com ++@@||static-cdn.spot.im/production/ads/tags/*/ads/ads.js$domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|dailymail.co.uk|nypost.com ++@@||static-cdn.spot.im/production/ads/tags^$domain=jpost.com|closerweekly.com|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com ++@@||static-cdn.spot.im/production/*.js$domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|thehockeywriters.com|apartmenttherapy.com|bleedingcool.com ++@@||static-cdn.spot.im/production/ads/tags/v*/ads/ads.css$stylesheet,domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com +@@||publisher-assets.spot.im/ad/event-tracking/pixel-ads-google-adsense.html$domain=dailymail.co.uk|nypost.com -+@@||player.spotim.market/prebidlink/*/wrapper_hb_*$domain=lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|dailymail.co.uk|nypost.com -+@@||player.spotim.market/prebidlink/*/hb*$domain=lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|dailymail.co.uk|nypost.com ++@@||player.spotim.market/prebidlink/*/wrapper_hb_*$domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|jpost.com|closerweekly.com|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|dailymail.co.uk|nypost.com ++@@||player.spotim.market/prebidlink/*/hb*$domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|jpost.com|closerweekly.com|lifeandstylemag.com|complex.com|fansided.com|maariv.co.il|dailycaller.com|closerweekly.com|dailymail.co.uk|nypost.com ++@@||player.spotim.market/prebidlink/*.js$domain=tvinsider.com|whats-on-netflix.com|uproxx.com|barstoolsports.com|netflixlife.com|muscleandfitness.com|comingsoon.net|soapoperadigest.com|justjaredjr.com|realclearpolitics.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|jpost.com|closerweekly.com|primerahora.com|waaytv.com|georgetakei.com|comingsoon.net|elnuevodia.com|sny.tv|celebdirtylaundry.com|thehockeywriters.com|apartmenttherapy.com|bleedingcool.com +@@/wp-content/themes/nypost-*/static/js/nyp-show-ads.js*$domain=nypost.com +@@||cdn.adapex.io/hb/aaw.*js^$domain=jpost.com -+@@||d3lcz8vpax4lo2.cloudfront.net/header-tags/*.js^$domain=breakers.tv|vaughn.live ++@@||d3lcz8vpax4lo2.cloudfront.net/*.js^$domain=nichegamer.com|birthdaymessages.net|breakers.tv|vaughn.live ++@@||d2na2p72vtqyok.cloudfront.net/aniview-script/*.js$script,domain=nichegamer.com +@@/public/build/valnet-header-ads.6dadb86b.js$script,domain=cbr.com|collider.com|androidpolice.com|xda-developers.com|makeuseof.com|thegamer.com|gamerant.com +@@||adsninja.ca/adsninja_client.js$domain=cbr.com|collider.com|androidpolice.com|xda-developers.com|makeuseof.com|thegamer.com|gamerant.com +@@||lib.tashop.co/*/adengine.js^$domain=wantedinrome.com|brightgram.com|stack.com|pointstreak.com|senpai.gg|fanrecap.com|tipsybartender.com +@@||cmp.osano.com/*/osano.js^$domain=stocktwits.com +||grid.bidswitch.net/hbjson^$domain=curseforge.com -+||htlb.casalemedia.com/openrtb/pbjs^$domain=curseforge.com ++||htlb.casalemedia.com/openrtb/pbjs^$domain=hockeydb.com|curseforge.com +||prebid.media.net/rtb/prebid^$domain=curseforge.com|u.gg|woot.com|top.gg|discogs.com +@@||images.neopets.com/css/ad.css^$stylesheet,domain=neopets.com +@@||ads.sportslocalmedia.com/slm.prebid.cmath.js$domain=cmath.fr +@@||ads.sportslocalmedia.com/slmadshb.js$domain=cmath.fr +@@||micro.rubiconproject.com/prebid/dynamic/*.js$script,domain=time.com ++@@||s.pubmine.com^$image,script,xmlhttprequest,domain=testadsymteam.wordpress.com ++@@||c0.pubmine.com^$script,subdocument,domain=testadsymteam.wordpress.com ++@@||d2f0uviei09pxb.cloudfront.net/ads-code/*.js$script,domain=weather-and-climate.com|sheffieldforum.co.uk|activityvillage.co.uk|scales-chords.com|holdtoreset.com|convert-my-image.com|fitnessvigil.com|holisticzine.com|birthdayfrenzy.com|wedessence.com|fashionhance.com|mysticurious.com|catappy.com|giftinglory.com|arthearty.com|beautisecrets.com|craftcue.com|thrillspire.com|helpsavenature.com|dancepoise.com|motaclarity.co.uk|wheelzine.com|birdeden.com|spiritualray.com|aptparenting.com|eduzenith.com|historyplex.com|biologywise.com|herhaleness.com|dogappy.com|besteveralbums.com|sportsaspire.com|lovebondings.com|entertainism.com|plentifun.com|melodyful.com|partyjoys.com|socialmettle.com|bodytomy.com|menwit.com|thoughtfultattoos.com ++@@||*/porpoiseant/fads.js^$domain=removeandreplace.com|goodhomeautomation.com|gm-trucks.com|gadgetstouse.com|govsalaries.com|ifly.com|nursestudy.net|areavibes.com|15track.com|lifewithjanet.com|fangraphs.com|manuals.plus|delftstack.com|vymaps.com|play2048.co|thetrendspotter.net|programcreek.com|barnfinds.com|imagecolorpicker.com|live-tennis.eu|collegefactual.com|scamadviser.com|iplocation.net|h1bdata.info|nutrition-charts.com|coloringpagesonly.com|sunrise-sunset.org|whatnowatlanta.com|comicbookrealm.com|online-python.com|homesteadsurvivalsite.com|luciding.com|motivationandlove.com|logosbynick.com|titlecaseconverter.com|tabletopjoab.com|dailykillersudoku.com|qualitydogresources.com|tiremeetsroad.com|itnwwe.com|apnatoronto.com|localpuppybreeders.com|instrumentationtools.com|learncpp.com|wikibioworth.com|programmingr.com|generatormix.com|chipandco.com|colorcodes.io|myotakuworld.com|beatlesbible.com|cakedecorist.com|findnicknames.com|thepointcalculator.com|singlemothers.us|itsolutionstuff.com|ilovedogscute.com|theproductiveengineer.net|fedsdatacenter.com|studybreaks.com|experthomereport.com|notesfromtheporch.com|shtfpreparedness.com|offgridpermaculture.com|wheelssize.com|greenlivingtribe.com|crosswordeg.com|oursportscentral.com|divinedaolibrary.com|chemicalaid.com|sqlserverguides.com|dailythemedcrosswordanswers.net|lovecookingdaily.com|elderguru.com|nonphoneworkathome.com|france-hotel-guide.com|campergrid.com|sbxl.com|rqeeqa.com|ignisnatura.org|pedigreedatabase.com|dreamglossary.com|linuxtechi.com|diysolarshack.com|groundedlifetravel.com|cubsinsider.com|onlinepersonalitytests.org|saltwateraquariumblog.com|bornagainboating.com|thecoastnews.com|nerdbot.com|franchisesports.co.uk|howtoforge.com|perfectdogbreeds.com|healthtipsnow.net|boiteachansons.net|msfsaddons.com|lettersformats.com|wikiaccounting.com|dailycrochet.com|wordscapescheat.com|datasciencemadesimple.com|totalmotorcycle.com|costcoinsider.com|parkingaccess.com|charbelnemnom.com|refrigeratorsreviewed.com|badgerandblade.com|marrieddivorce.com|emprendiendohistorias.com|tracfoneusermanual.net|tckpublishing.com|silverlininglessons.com|asvabpracticetestonline.com|wordstodescribe.com|lyrical-nonsense.com|fantasynerds.com|animalfate.com|lettersinenglish.com|sportfishingbuddy.com|overseasattractions.com|egriz.com|nilsenreport.ca|askthebuilder.com|diydoctor.org.uk|favoredleather.com|autoservicecosts.com|whatispiping.com|scuffedentertainment.com|35mmc.com|parlerdamour.fr|365thingsinhouston.com|centraldesermones.com|aboutchromebooks.com|topwoodworkingadvice.com|spelling-words-well.com|millo.co|thecleverbusiness.com|yourdailyglobe.com|biznewske.com|analyzemath.com|aa1car.com|nutsandboltsspeedtraining.com|yummyindiankitchen.com|codewithmukesh.com|triviawell.com|miracomosehace.com|technorms.com|r-graph-gallery.com|celebritydig.com|scamcharge.com|accountinguide.com|textfixer.com|materialsix.com|roofonline.com|birthdaywishes.expert|goldpriceoz.com|informatique-mania.com|somosmamas.com.ar|rentalhousingdeals.com|acessaber.com.br|squarefootagearea.com|altcodeunicode.com|exrx.net|journeydogtraining.com|pdfwordconvert.com|dataoverhaulers.com|thedisinsider.com|commercialdriverhq.com|fanstranslations.com|havredailynews.com|yardblogger.com|houseplanshelper.com|environmental-conscience.com|hacktheminotaur.com|indifferentlanguages.com|artprompts.org|myenglishteacher.eu|my-package-tracking.com|countertopspecialty.com|it-connect.fr|ourfitpets.com|brighthubeducation.com|defkey.com|flgardening.com|happybirthdaymsg.com|dicasinteligentes.com.br|tutorialgateway.org|weeklyhoroscope.com|escapefan.com|icebreakers.ws|toutoupourlechien.com|happyvagabonds.com|archisoup.com|aginghealthytoday.com|charactercounter.com|esportsearnings.com|freejobalert.com|homeguideguru.com|thecabindiary.com|streetsmartkitchen.com|vitux.com|officetuts.net|feelingvegas.com|thepythoncode.com|electrical4u.net|codycrossanswers.org|salaryaftertax.com|shuttlefare.com|practicequiz.com|orchideria.com|truthorfiction.com|softwaretestingmaterial.com|wordscapeshelp.com|kifarunix.com|labex-cortex.com|bestcateringprices.com|knifeup.com|h-supertools.com|alexusrenee.com|sportfishingbc.com|windows101tricks.com|zwivel.com|mamapedia.com|asacannes.com|classicrockhistory.com|williamsonhomepage.com|linuxize.com|ginx.tv|broadwayworld.com|grammarhow.com|rodeosusa.com|houstoncasemanagers.com|bobcutmag.com|wow4u.com|cookitonce.com|dazepuzzle.com|kylonpowell.com|carserviceland.com|crispyfoodidea.com|phonedealstoday.com|mma.uno|keepinspiring.me|mobileinternist.com|unscramblewords.com|frugalhotspot.com|romapress.net|livetheglory.com|chicitysports.com|fishkeepingworld.com|walkthroughs.net|cultaholic.com|pathofex.com|teamcolorcodes.com|metalwani.com|bulbagarden.net|osrsguide.com|tulamama.com|hometips.com|breatheheavy.com|wordunscrambler.com|racetothewh.com|oneminuteenglish.org|marsja.se|decortweaks.com|jaynestars.com|allclash.com|wordcrazeanswers.com|siccode.com|madbackyard.com|greekmythology.com|thepersonage.com|blogofdoom.com|tarotforum.net|codycrossanswers.com|momdot.com|theilluminerdi.com|codycrossanswers.net|thewebdev.info|raspberrytips.com|thelawnreview.com|excelhow.net|roadtrailrun.com|thepricer.org|games4esl.com|dailyactor.com|livinginacontainer.com|quizerry.com|michaelsaves.com|thewindowsclub.com|thecalculatorsite.com|simplypsychology.org|videocardz.com ++@@||*/porpoiseant/banger.js^$domain=removeandreplace.com|goodhomeautomation.com|gm-trucks.com|gadgetstouse.com|govsalaries.com|ifly.com|nursestudy.net|areavibes.com|15track.com|lifewithjanet.com|fangraphs.com|manuals.plus|delftstack.com|vymaps.com|play2048.co|thetrendspotter.net|programcreek.com|barnfinds.com|imagecolorpicker.com|live-tennis.eu|collegefactual.com|scamadviser.com|iplocation.net|h1bdata.info|nutrition-charts.com|coloringpagesonly.com|sunrise-sunset.org|whatnowatlanta.com|comicbookrealm.com|online-python.com|homesteadsurvivalsite.com|luciding.com|motivationandlove.com|logosbynick.com|titlecaseconverter.com|tabletopjoab.com|dailykillersudoku.com|qualitydogresources.com|tiremeetsroad.com|itnwwe.com|apnatoronto.com|localpuppybreeders.com|instrumentationtools.com|learncpp.com|wikibioworth.com|programmingr.com|generatormix.com|chipandco.com|colorcodes.io|myotakuworld.com|beatlesbible.com|cakedecorist.com|findnicknames.com|thepointcalculator.com|singlemothers.us|itsolutionstuff.com|ilovedogscute.com|theproductiveengineer.net|fedsdatacenter.com|studybreaks.com|experthomereport.com|notesfromtheporch.com|shtfpreparedness.com|offgridpermaculture.com|wheelssize.com|greenlivingtribe.com|crosswordeg.com|oursportscentral.com|divinedaolibrary.com|chemicalaid.com|sqlserverguides.com|dailythemedcrosswordanswers.net|lovecookingdaily.com|elderguru.com|nonphoneworkathome.com|france-hotel-guide.com|campergrid.com|sbxl.com|rqeeqa.com|ignisnatura.org|pedigreedatabase.com|dreamglossary.com|linuxtechi.com|diysolarshack.com|groundedlifetravel.com|cubsinsider.com|onlinepersonalitytests.org|saltwateraquariumblog.com|bornagainboating.com|thecoastnews.com|nerdbot.com|franchisesports.co.uk|howtoforge.com|perfectdogbreeds.com|healthtipsnow.net|boiteachansons.net|msfsaddons.com|lettersformats.com|wikiaccounting.com|dailycrochet.com|wordscapescheat.com|datasciencemadesimple.com|totalmotorcycle.com|costcoinsider.com|parkingaccess.com|charbelnemnom.com|refrigeratorsreviewed.com|badgerandblade.com|marrieddivorce.com|emprendiendohistorias.com|tracfoneusermanual.net|tckpublishing.com|silverlininglessons.com|asvabpracticetestonline.com|wordstodescribe.com|lyrical-nonsense.com|fantasynerds.com|animalfate.com|lettersinenglish.com|sportfishingbuddy.com|overseasattractions.com|egriz.com|nilsenreport.ca|askthebuilder.com|diydoctor.org.uk|favoredleather.com|autoservicecosts.com|whatispiping.com|scuffedentertainment.com|35mmc.com|parlerdamour.fr|365thingsinhouston.com|centraldesermones.com|aboutchromebooks.com|topwoodworkingadvice.com|spelling-words-well.com|millo.co|thecleverbusiness.com|yourdailyglobe.com|biznewske.com|analyzemath.com|aa1car.com|nutsandboltsspeedtraining.com|yummyindiankitchen.com|codewithmukesh.com|triviawell.com|miracomosehace.com|technorms.com|r-graph-gallery.com|celebritydig.com|scamcharge.com|accountinguide.com|textfixer.com|materialsix.com|roofonline.com|birthdaywishes.expert|goldpriceoz.com|informatique-mania.com|somosmamas.com.ar|rentalhousingdeals.com|acessaber.com.br|squarefootagearea.com|altcodeunicode.com|exrx.net|journeydogtraining.com|pdfwordconvert.com|dataoverhaulers.com|thedisinsider.com|commercialdriverhq.com|fanstranslations.com|havredailynews.com|yardblogger.com|houseplanshelper.com|environmental-conscience.com|hacktheminotaur.com|indifferentlanguages.com|artprompts.org|myenglishteacher.eu|my-package-tracking.com|countertopspecialty.com|it-connect.fr|ourfitpets.com|brighthubeducation.com|defkey.com|flgardening.com|happybirthdaymsg.com|dicasinteligentes.com.br|tutorialgateway.org|weeklyhoroscope.com|escapefan.com|icebreakers.ws|toutoupourlechien.com|happyvagabonds.com|archisoup.com|aginghealthytoday.com|charactercounter.com|esportsearnings.com|freejobalert.com|homeguideguru.com|thecabindiary.com|streetsmartkitchen.com|vitux.com|officetuts.net|feelingvegas.com|thepythoncode.com|electrical4u.net|codycrossanswers.org|salaryaftertax.com|shuttlefare.com|practicequiz.com|orchideria.com|truthorfiction.com|softwaretestingmaterial.com|wordscapeshelp.com|kifarunix.com|labex-cortex.com|bestcateringprices.com|knifeup.com|h-supertools.com|alexusrenee.com|sportfishingbc.com|windows101tricks.com|zwivel.com|mamapedia.com|asacannes.com|classicrockhistory.com|williamsonhomepage.com|linuxize.com|ginx.tv|broadwayworld.com|grammarhow.com|rodeosusa.com|houstoncasemanagers.com|bobcutmag.com|wow4u.com|cookitonce.com|dazepuzzle.com|kylonpowell.com|carserviceland.com|crispyfoodidea.com|phonedealstoday.com|mma.uno|keepinspiring.me|mobileinternist.com|unscramblewords.com|frugalhotspot.com|romapress.net|livetheglory.com|chicitysports.com|fishkeepingworld.com|walkthroughs.net|cultaholic.com|pathofex.com|teamcolorcodes.com|metalwani.com|bulbagarden.net|osrsguide.com|tulamama.com|hometips.com|breatheheavy.com|wordunscrambler.com|racetothewh.com|oneminuteenglish.org|marsja.se|decortweaks.com|jaynestars.com|allclash.com|wordcrazeanswers.com|siccode.com|madbackyard.com|greekmythology.com|thepersonage.com|blogofdoom.com|tarotforum.net|codycrossanswers.com|momdot.com|theilluminerdi.com|codycrossanswers.net|thewebdev.info|raspberrytips.com|thelawnreview.com|excelhow.net|roadtrailrun.com|thepricer.org|games4esl.com|dailyactor.com|livinginacontainer.com|quizerry.com|michaelsaves.com|thewindowsclub.com|thecalculatorsite.com|simplypsychology.org|videocardz.com ++@@||pixel.adsafeprotected.com/services/pub^$domain=retailmenot.com +! @@||totalmedia2.ynet.co.il/gpt/gpt_script_yns_ynv.js$script,domain=vesty.co.il +! test for samsung internet +@@||securepubads.g.doubleclick.net/gampad/ads^*%26aax_pub% @@ -73966,27 +79329,41 @@ new file mode 100644 +@@||ads.yieldmo.com/exchange/prebid^$xmlhttprequest,domain=aol.com +@@||media.net^$document,domain=aol.com +@@||media.net^$third-party,domain=aol.com ++||s.go-mpulse.net/boomerang/5GX6Z-TSK3U-2BF75-P7PTZ-QMLZM$domain=foxnews.com ++||static.foxnews.com/static/strike/scripts/libs/prebid.js$domain=foxnews.com ++@@||cdn.adgtw.orangeads.fr/prebid/*ora.js$script,domain=orange.fr +aol.com#@#div[data-google-query-id] +! aax testing +@@||aaxwall.com^ -+@@||c.amazon-adsystem.com/aax2/apstag.js$domain=cartermatt.com|rayanworld.com|iranianuk.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|comicsands.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|fanrecap.com|brightgram.com|tipsybartender.com|senpai.gg|wantedinrome.com|gameskinny.com|hockeydb.com|naidunia.com|ndnation.com|playbill.com|popmatters.com|rankonesport.com|reviewjournal.com|scoopduck.com|senpai.gg|sfasawmill.com|sicem365.com|spacecoastdaily.com|teamsnap.com|terrapintimes.com|texags.com|theinfatuation.com|tigerbait.com|timesofindia.indiatimes.com|todayshomeowner.com|topminecraftservers.org|tourneymachine.com|trackwrestling.com|uhnd.com|uscscoop.com|wearesc.com|foxnews.com|bostonglobe.com|basketsession.com|cmath.fr|montceau-news.com|welovetennis.fr|grabjobs.co|jailexchange.com|thetrendspotter.net|softgenius.co|vymaps.com|howtopronounce.com -+@@||c.amazon-adsystem.com/cdn/prod/config$domain=cartermatt.com|rayanworld.com|iranianuk.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|comicsands.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|fanrecap.com|brightgram.com|tipsybartender.com|senpai.gg|wantedinrome.com|gameskinny.com|hockeydb.com|naidunia.com|ndnation.com|playbill.com|popmatters.com|rankonesport.com|reviewjournal.com|scoopduck.com|senpai.gg|sfasawmill.com|sicem365.com|spacecoastdaily.com|teamsnap.com|terrapintimes.com|texags.com|theinfatuation.com|tigerbait.com|timesofindia.indiatimes.com|todayshomeowner.com|topminecraftservers.org|tourneymachine.com|trackwrestling.com|uhnd.com|uscscoop.com|wearesc.com|bostonglobe.com|basketsession.com|cmath.fr|montceau-news.com|welovetennis.fr|grabjobs.co|jailexchange.com|thetrendspotter.net|softgenius.co|vymaps.com|howtopronounce.com ++@@||c.amazon-adsystem.com/aax2/apstag.js$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com|retailmenot.com|blackfriday.com|dealsofamerica.com|theblackfriday.com|kochenmituns.com|linuxcapable.com|ign.com|dailydot.com|9to5mac.com|arkadium.com|archdaily.com|nicovideo.jp|cartermatt.com|rayanworld.com|iranianuk.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|comicsands.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|fanrecap.com|brightgram.com|tipsybartender.com|senpai.gg|wantedinrome.com|gameskinny.com|hockeydb.com|naidunia.com|ndnation.com|playbill.com|popmatters.com|rankonesport.com|reviewjournal.com|scoopduck.com|senpai.gg|sfasawmill.com|sicem365.com|spacecoastdaily.com|teamsnap.com|terrapintimes.com|texags.com|theinfatuation.com|tigerbait.com|timesofindia.indiatimes.com|todayshomeowner.com|topminecraftservers.org|tourneymachine.com|trackwrestling.com|uhnd.com|uscscoop.com|wearesc.com|foxnews.com|bostonglobe.com|basketsession.com|cmath.fr|montceau-news.com|welovetennis.fr|grabjobs.co|jailexchange.com|thetrendspotter.net|softgenius.co|vymaps.com|howtopronounce.com ++@@||c.amazon-adsystem.com/cdn/prod/config$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com|retailmenot.com|blackfriday.com|dealsofamerica.com|theblackfriday.com|kochenmituns.com|linuxcapable.com|ign.com|dailydot.com|9to5mac.com|arkadium.com|archdaily.com|nicovideo.jp|cartermatt.com|rayanworld.com|iranianuk.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|comicsands.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|fanrecap.com|brightgram.com|tipsybartender.com|senpai.gg|wantedinrome.com|gameskinny.com|hockeydb.com|naidunia.com|ndnation.com|playbill.com|popmatters.com|rankonesport.com|reviewjournal.com|scoopduck.com|senpai.gg|sfasawmill.com|sicem365.com|spacecoastdaily.com|teamsnap.com|terrapintimes.com|texags.com|theinfatuation.com|tigerbait.com|timesofindia.indiatimes.com|todayshomeowner.com|topminecraftservers.org|tourneymachine.com|trackwrestling.com|uhnd.com|uscscoop.com|wearesc.com|bostonglobe.com|basketsession.com|cmath.fr|montceau-news.com|welovetennis.fr|grabjobs.co|jailexchange.com|thetrendspotter.net|softgenius.co|vymaps.com|howtopronounce.com +@@||hbid.ams3.cdn.digitaloceanspaces.com/user_js/*.js$domain=movieplayer.it +@@||hbid.ams3.cdn.digitaloceanspaces.com/prebid_*.js$domain=movieplayer.it -+@@||static.foxnews.com/static/strike/scripts/libs/prebid.js$domain=foxnews.com ++||static.foxnews.com/static/isa/app/lib/new-relic/script.fn.js$script,domain=foxnews.com +@@||d2na2p72vtqyok.cloudfront.net/client-embed/*.js$script,domain=ringtv.com|moviequotesandmore.com -+@@||d2f0uviei09pxb.cloudfront.net/ads-code/*.js$script,domain=psychologenie.com|homequicks.com|quotabulary.com|gardenerdy.com|tastessence.com|competition-finder.com|breakers.tv|vaughn.live|avftt.co.uk|owlstalk.co.uk|tellyreviews.com ++@@||d2f0uviei09pxb.cloudfront.net/ads-code/*.js$script,domain=sciencestruck.com|marketingwit.com|penlighten.com|petponder.com|opinionfront.com|themeparktourist.com|psychologenie.com|homequicks.com|quotabulary.com|gardenerdy.com|tastessence.com|competition-finder.com|breakers.tv|vaughn.live|avftt.co.uk|owlstalk.co.uk|tellyreviews.com +@@||tagan.adlightning.com/*/op.js^$domain=engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com -+@@||static-cdn.spot.im/production/ads/tags/*/ads/ads.js^$domain=engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com ++@@||static-cdn.spot.im/production/ads/tags/*/ads/*.js^$domain=ign.com|dailydot.com|9to5mac.com|arkadium.com|archdaily.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com ++@@||static-cdn.spot.im/production/ads/tags/*/ads/ads.css^$domain=ign.com|dailydot.com|9to5mac.com|arkadium.com|archdaily.com +@@||publisher-assets.spot.im/ad/event-tracking/pixel-ads-google-adsense.html^$domain=engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com -+@@||player.spotim.market/prebidlink/*/wrapper_hb_*.js^$domain=engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com -+@@||player.spotim.market/prebidlink/*/hbw_master_*.js^$domain=engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com -+@@||static-cdn.spot.im/production/ads/tags/*/ads-independent/ads-independent.js^$domain=dailymail.co.uk ++@@||player.spotim.market/prebidlink/*/wrapper_hb_*.js^$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com ++@@||player.spotim.market/prebidlink/*/hbw_master_*.js^$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com|engadget.com|villages-news.com|percolately.com|kitco.com|intouchweekly.com|huffpost.com|newsweek.com|pcmag.com|pagesix.com|justjared.com|usmagazine.com|metro.co.uk|soaphub.com ++@@||player.spotim.market/prebidlink/*.js^$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com|ign.com|dailydot.com|9to5mac.com|arkadium.com|archdaily.com ++@@||static-cdn.spot.im/production/ads/tags/*^$domain=perezhilton.com|soapoperaspy.com|popsci.com|arrowheadaddict.com|vvng.com|risingapple.com|victoriabuzz.com ++@@||static-cdn.spot.im/production/ads/tags/*/ads-independent/ads-independent.js^$domain=dailydot.com|dailymail.co.uk +@@||c.pubguru.net/pg.cartermatt.article.js$domain=cartermatt.com +@@||player.ex.co/player^$domain=cartermatt.com +@@||static.doubleclick.net/instream/ad_status.js$domain=cartermatt.com +@@||zergnet.com/zerg.js^$domain=cartermatt.com +@@||m2d.m2.ai/v/pg-*$domain=cartermatt.com ++@@||ads.nicovideo.jp/bannertext?bannerid=90980&frameId=&zoneid=1145^$document,subdocument,other,domain=news.nicovideo.jp ++@@||ads.nicovideo.jp^$domain=nicovideo.jp ++@@||cdn.ziffstatic.com/pg^$domain=offers.com|dealsofamerica.com|retailmenot.com|bestblackfriday.com|blackfriday.com|dealsofamerica.com|theblackfriday.com ++@@||cdn.nsstatic.net/ns/*.js$domain=dealsofamerica.com|bestblackfriday.com ++@@||z.moatads.com/addthismoatframe568911941483/moatframe.js$domain=bestblackfriday.com ++@@||securepubads.g.doubleclick.net/pagead/ppub_config^$domain=offers.com|dealsofamerica.com|bestblackfriday.com|blackfriday.com|theblackfriday.com|techbargains.com ++@@||cdn.confiant-integrations.net/*/gpt_and_prebid/config.js$script,domain=fr.mappy.com ++@@||cdn.confiant-integrations.net/gptprebidnative/*/wrap.js$script,domain=fr.mappy.com +cartermatt.com#@#div[id^="zergnet-widget"] +foxnews.com#@#.ad-h-250 +foxnews.com#@#.ad-w-300 @@ -73997,12 +79374,23 @@ new file mode 100644 +bostonglobe.com#@#.stick_1200--tablet +vymaps.com#@#.e-ad +howtopronounce.com,vymaps.com#@#.ezoic-ad-adaptive -+howtopronounce.com,vymaps.com#@#[id^="google_ads_iframe"] -+howtopronounce.com,vymaps.com#@#[id^="div-gpt-ad"] ++researchgate.net,howtopronounce.com,vymaps.com#@#[id^="google_ads_iframe"] ++nicovideo.jp,ign.com,dailydot.com,9to5mac.com,arkadium.com,archdaily.com,howtopronounce.com,vymaps.com#@#[id^="div-gpt-ad"] ++nicovideo.jp,ign.com,dailydot.com,9to5mac.com,arkadium.com,archdaily.com#@#div[id^="div-gpt-"] +howtopronounce.com,vymaps.com#@#.ezoic-ad +howtopronounce.com,vymaps.com#@#.adtester-container +howtopronounce.com,vymaps.com#@#.ezo_ad +howtopronounce.com,vymaps.com#@#[data-ez-name] ++master.www.dev.tmz.com#@##ad-footer ++master.www.dev.tmz.com#@##bt-ad-header ++nicovideo.jp#@##footer-ad ++nicovideo.jp#@##middle-ad ++nicovideo.jp#@##ad_728_90 ++nicovideo.jp#@##top_ads_box ++retailmenot.com#@#div[data-adunit] ++researchgate.net#@#.rg-ad ++researchgate.net#@#.lite-page-ad ++nicovideo.jp#@##side_ads +! +natlawreview.com,legalinsurrection.com,lucianne.com##div[id^="stickypbModalinner"] +toocool2betrue.com#@##RTK_5T1k @@ -74041,14 +79429,16 @@ new file mode 100644 +planetminecraft.com#@##box_300btf +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@##dfp-ad-1 +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@##dfp-ad-2 -+altafiber.net,free-browser-games.online,owlstalk.co.uk,avftt.co.uk,cheeseheadtv.com,ringtv.com,themorningtribune.com,tellyreviews.com,vaughn.live,competition-finder.com,random-generator.org.uk,letter-generator.org.uk,wowway.net,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,dating-profile-generator.org.uk,character-generator.org.uk,poem-generator.org.uk,plot-generator.org.uk,name-generator.org.uk,yardbarker.com,song-lyrics-generator.org.uk,bjpenn.com#@##div-insticator-ad-1 -+free-browser-games.online,owlstalk.co.uk,cheeseheadtv.com,ringtv.com,themorningtribune.com,vaughn.live,random-generator.org.uk,letter-generator.org.uk,dating-profile-generator.org.uk,character-generator.org.uk,poem-generator.org.uk,plot-generator.org.uk,name-generator.org.uk,yardbarker.com,song-lyrics-generator.org.uk,bjpenn.com#@##div-insticator-ad-2 -+infozport.com,tellyreviews.com#@##div-insticator-ad-9 -+altafiber.net,stocktwits.com,tellyreviews.com,cheeseheadtv.com,ringtv.com,vaughn.live,wowway.net,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,yardbarker.com,bjpenn.com#@##insticator-container -+free-browser-games.online,psychologenie.com,homequicks.com,quotabulary.com,gardenerdy.com,tastessence.com#@##div-insticator-ad-3 -+free-browser-games.online,psychologenie.com,homequicks.com,quotabulary.com,gardenerdy.com,tastessence.com#@##div-insticator-ad-4 -+stocktwits.com#@##div-insticator-ad-5 -+stocktwits.com#@##div-insticator-ad-6 ++birthdaymessages.net,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,cyclonefanatic.com,altafiber.net,stocktwits.com,tellyreviews.com,cheeseheadtv.com,ringtv.com,vaughn.live,wowway.net,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,yardbarker.com,bjpenn.com#@##insticator-container ++nichegamer.com#@#.insticator-ads ++weather-and-climate.com#@#.div-insticator-ad ++birthdaymessages.net,weather-and-climate.com,sheffieldforum.co.uk,activityvillage.co.uk,scales-chords.com,holdtoreset.com,besteveralbums.com,asianhobbyist.com,breakers.tv,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,cyclonefanatic.com.altafiber.net,free-browser-games.online,owlstalk.co.uk,avftt.co.uk,cheeseheadtv.com,ringtv.com,themorningtribune.com,tellyreviews.com,vaughn.live,competition-finder.com,random-generator.org.uk,letter-generator.org.uk,wowway.net,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,dating-profile-generator.org.uk,character-generator.org.uk,poem-generator.org.uk,plot-generator.org.uk,name-generator.org.uk,yardbarker.com,song-lyrics-generator.org.uk,bjpenn.com#@##div-insticator-ad-1 ++birthdaymessages.net,weather-and-climate.com,sheffieldforum.co.uk,activityvillage.co.uk,holdtoreset.com,besteveralbums.com,asianhobbyist.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,cyclonefanatic.com,free-browser-games.online,owlstalk.co.uk,cheeseheadtv.com,ringtv.com,themorningtribune.com,vaughn.live,random-generator.org.uk,letter-generator.org.uk,dating-profile-generator.org.uk,character-generator.org.uk,poem-generator.org.uk,plot-generator.org.uk,name-generator.org.uk,yardbarker.com,song-lyrics-generator.org.uk,bjpenn.com#@##div-insticator-ad-2 ++birthdaymessages.net,weather-and-climate.com,holdtoreset.com,convert-my-image.com,fitnessvigil.com,holisticzine.com,birthdayfrenzy.com,wedessence.com,fashionhance.com,mysticurious.com,catappy.com,giftinglory.com,arthearty.com,beautisecrets.com,craftcue.com,thrillspire.com,helpsavenature.com,dancepoise.com,wheelzine.com,birdeden.com,spiritualray.com,aptparenting.com,eduzenith.com,historyplex.com,biologywise.com,herhaleness.com,dogappy.com,asianhobbyist.com,ringtv.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,free-browser-games.online,psychologenie.com,homequicks.com,quotabulary.com,gardenerdy.com,tastessence.com#@##div-insticator-ad-3 ++birthdaymessages.net,sheffieldforum.co.uk,scales-chords.com,holdtoreset.com,fitnessvigil.com,holisticzine.com,birthdayfrenzy.com,wedessence.com,fashionhance.com,mysticurious.com,catappy.com,giftinglory.com,arthearty.com,beautisecrets.com,craftcue.com,thrillspire.com,helpsavenature.com,dancepoise.com,wheelzine.com,birdeden.com,spiritualray.com,aptparenting.com,eduzenith.com,historyplex.com,biologywise.com,herhaleness.com,dogappy.com,themorningtribune.com,avftt.co.uk,competition-finder.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,free-browser-games.online,psychologenie.com,homequicks.com,quotabulary.com,gardenerdy.com,tastessence.com#@##div-insticator-ad-4 ++nichegamer.com,weather-and-climate.com,sheffieldforum.co.uk,scales-chords.com,fitnessvigil.com,holisticzine.com,birthdayfrenzy.com,wedessence.com,fashionhance.com,mysticurious.com,catappy.com,giftinglory.com,arthearty.com,beautisecrets.com,craftcue.com,thrillspire.com,helpsavenature.com,dancepoise.com,wheelzine.com,birdeden.com,spiritualray.com,aptparenting.com,eduzenith.com,historyplex.com,biologywise.com,herhaleness.com,dogappy.com,themorningtribune.com,breakers.tv,competition-finder.com,tastessence.com,psychologenie.com,gardenerdy.com,homequicks.com,quotabulary.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,stocktwits.com#@##div-insticator-ad-5 ++nichegamer.com,weather-and-climate.com,fitnessvigil.com,holisticzine.com,birthdayfrenzy.com,wedessence.com,fashionhance.com,mysticurious.com,catappy.com,giftinglory.com,arthearty.com,beautisecrets.com,craftcue.com,thrillspire.com,helpsavenature.com,dancepoise.com,wheelzine.com,birdeden.com,spiritualray.com,aptparenting.com,eduzenith.com,historyplex.com,biologywise.com,herhaleness.com,dogappy.com,besteveralbums.com,breakers.tv,competition-finder.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,stocktwits.com#@##div-insticator-ad-6 ++motaclarity.co.uk,wheelzine.com,birdeden.com,spiritualray.com,aptparenting.com,eduzenith.com,historyplex.com,biologywise.com,herhaleness.com,dogappy.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,infozport.com,tellyreviews.com#@##div-insticator-ad-9 +wowway.net#@##sc_home_header_banner +wowway.net#@##sc_home_news_banner +wowway.net#@##sc_home_recommended_banner @@ -74060,24 +79450,25 @@ new file mode 100644 +mashable.com#@##sticky-spacer +legacy.com#@#.BannerAd +legacy.com#@#.GalleryViewerAdSuppress -+texags.com,timesofindia.indiatimes.com,tractorbynet.com,childcarecenter.us,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,cars.com,besthealthmag.ca,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.MediumRectangleAdPanel ++infos-geek.com,notinerd.com,auralcrave.com,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,texags.com,timesofindia.indiatimes.com,tractorbynet.com,childcarecenter.us,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,cars.com,besthealthmag.ca,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.MediumRectangleAdPanel +legacy.com#@#.NGOLocalFooterAd +legacy.com#@#.ObitBottomWideAd +legacy.com#@#.PremiumObitAdBar +legacy.com#@#.aa_Table +searchenginejournal.com#@#.absolute-banner +nxstrib.com,go-vip.net#@#.acm_ad_zones -+larazon.es,time.com,abovethelaw.com,greenbot.com,myrecipes.com,instyle.com,foodandwine.com,streetinsider.com,foxnews.com,gtplanet.net,xn--allestrungen-9ib.de,allestoerungen.de,allestoerungen.ch,allestoerungen.at,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,avclub.com,billboard.com,clickhole.com,deadspin.com,gizmodo.com,hollywoodreporter.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,seattletimes.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad ++macwelt.de,larazon.es,time.com,abovethelaw.com,greenbot.com,myrecipes.com,instyle.com,foodandwine.com,streetinsider.com,foxnews.com,gtplanet.net,xn--allestrungen-9ib.de,allestoerungen.de,allestoerungen.ch,allestoerungen.at,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,avclub.com,billboard.com,clickhole.com,deadspin.com,gizmodo.com,hollywoodreporter.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,seattletimes.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad +abovethelaw.com#@##sticky-footer-ad +abovethelaw.com#@#.sticky-footer-ad +abovethelaw.com#@##div-id-for-middle-300x250 +abovethelaw.com#@##div-id-for-top-300x250 -+xn--allestrungen-9ib.de,downdetector.ca,abovethelaw.com,downdetector.mx,downdetector.com#@#.ad.leaderboard ++downdetector.com.au,allestoringen.nl,downdetector.co.nz,xn--allestrungen-9ib.de,downdetector.ca,abovethelaw.com,downdetector.mx,downdetector.com#@#.ad.leaderboard +xn--allestrungen-9ib.de,allestoerungen.de,allestoerungen.ch,allestoerungen.at,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr#@##ad-leaderboard +pcmag.com,xn--allestrungen-9ib.de,allestoerungen.de,allestoerungen.ch,allestoerungen.at,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr#@#.bottom-ad +rpgbot.net#@#.bottomad -+texags.com#@#.bottomAd -+texags.com#@#.topAd ++insidepacksports.com,sicem365.com,irishsportsdaily.com,texags.com#@#.bottomAd ++insidepacksports.com,economictimes.indiatimes.com,sicem365.com,irishsportsdaily.com,texags.com#@#.topAd ++economictimes.indiatimes.com#@#.topArtAd +cbr.com,collider.com,androidpolice.com,xda-developers.com,makeuseof.com,gamerant.com,thegamer.com#@#.adsninja-ad-zone +cbr.com,collider.com,androidpolice.com,xda-developers.com,makeuseof.com,gamerant.com,thegamer.com#@#.ad-zone +cbr.com,collider.com,androidpolice.com,xda-developers.com,makeuseof.com,gamerant.com,thegamer.com#@#.ad-zone-container @@ -74094,15 +79485,18 @@ new file mode 100644 +dev2.foxnews.com,dev.foxnews.com#@#.ad-w-300 +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-billboard +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-bottom -+ac-illust.com,capebretonpost.com,journalpioneer.com,saltwire.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com#@#.ad-center ++minecraftlist.org,ac-illust.com,capebretonpost.com,journalpioneer.com,saltwire.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com#@#.ad-center ++15track.com#@#.adscenter +jauns.lv,time.com,foxnews.com,billboard.com,hollywoodreporter.com#@#.ad-container -+chron.com,chron.assistpub.com,sft-staging.com,softonic.com#@#.ad-content ++motaclarity.co.uk,chron.com,chron.assistpub.com,sft-staging.com,softonic.com#@#.ad-content ++motaclarity.co.uk#@#.ad-item ++motaclarity.co.uk#@#.ad-label +247wallst.com#@#.ad-div +247wallst.com##.ad-div.sidebar-div.stickLoop.boxD +mein-schoener-garten.de#@#.ad-entity-container +askmen.com#@#.ad-gpt +apkcombo.com,epicstream.com,billboard.com#@#.ad-holder -+agame.com#@#.ad-leaderboard ++il.8to18.com,agame.com#@#.ad-leaderboard +speedtest.net#@#.ad-left +speedtest.net#@#.pure-u-custom-ad-rectangle +speedtest.net#@#.pure-u-custom-ad-skyscraper @@ -74115,8 +79509,8 @@ new file mode 100644 +theblaze.com,biggeekdad.com#@#.ad-tag +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-top +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-top-banner -+dcnewsnow.com,cultofmac.com,heraldo.es,thehill.com,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,nxstrib.com,go-vip.net,hellhorror.com,avclub.com,clickhole.com,deadspin.com,forbes.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-unit -+dcnewsnow.com,thehill.com,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,nxstrib.com,go-vip.net#@#.ad-unit--leaderboard ++wtaj.com,qcnews.com,fox56news.com,ktalnews.com,dcnewsnow.com,cultofmac.com,heraldo.es,thehill.com,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,nxstrib.com,go-vip.net,hellhorror.com,avclub.com,clickhole.com,deadspin.com,forbes.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-unit ++wtaj.com,qcnews.com,fox56news.com,ktalnews.com,dcnewsnow.com,thehill.com,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,nxstrib.com,go-vip.net#@#.ad-unit--leaderboard +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.ad-wide +firstpost.com#@#.ad728x90 +twinfinite.net#@#.adDiv @@ -74152,17 +79546,18 @@ new file mode 100644 +hannity.com#@#.banner_ad +xgn.es,xgn.nl,capebretonpost.com,journalpioneer.com,theguardian.pe.ca#@#.billboard-ad +247wallst.com,capebretonpost.com,journalpioneer.com,saltwire.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com,xlrforum.com#@#.box-ad -+timesofindia.indiatimes.com,tractorbynet.com,free-browser-games.online,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,cars.com,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.adv_left -+timesofindia.indiatimes.com,cars.com,thehealthy.com,besthealthmag.ca,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.browse-banner_ad -+cars.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com#@#.googleAdSense ++techhive.com,timesofindia.indiatimes.com,tractorbynet.com,free-browser-games.online,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,cars.com,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.adv_left ++techhive.com,timesofindia.indiatimes.com,cars.com,thehealthy.com,besthealthmag.ca,wuxiaworld.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com,foxnews.com,familyeducation.com,pcmag.com,gtplanet.net,hellhorror.com,factsherald.com,frontpage.pch.com,reelgood.com,checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,koutsompolio.gr#@#.browse-banner_ad ++techhive.com,cars.com,autoscout24.de,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,allrecipes.com,health.com,midwestliving.com,myrecipes.com,foodandwine.com,cookinglight.com,ygorganization.com#@#.googleAdSense ++webwereld.nl#@#.googleAd +arsdev.net,arstechnica.com#@#.cns-ads-stage +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.contained-ad-container +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.contained-ad-shaft +avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.contained-ad-wrapper +gelderlander.nl,destentor.nl,tubantia.nl,ed.nl,bd.nl,bndestem.nl,pzc.nl,pastemagazine.com,ad.nl,avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#.dfp -+virgilio.it,dilei.it,quifinanza.it,billboard.com,boredpanda.com,hollywoodreporter.com,seattletimes.com#@#.dfp-ad ++siviaggia.it,virgilio.it,dilei.it,quifinanza.it,billboard.com,boredpanda.com,hollywoodreporter.com,seattletimes.com#@#.dfp-ad +cars.com,stuff.co.nz#@#.display-ad -+cars.com,seattletimes.com#@#.footer-ad ++nichegamer.com,thedailybeast.com,besteveralbums.com,cars.com,seattletimes.com#@#.footer-ad +titantv.com#@#.gAd +ghacks.net#@#.ghacks-ad +hannity.com#@#.google_ad @@ -74174,6 +79569,8 @@ new file mode 100644 +comingsoon.net,gamerevolution.com,titantv.com#@#.leaderboard +ndnation.com,goodhousekeeping.com,elledecor.com,bicycling.com,crfashionbook.com,oprahdaily.com,prevention.com,seventeen.com,shondaland.com,thepioneerwoman.com,veranda.com,cosmopolitan.com,capebretonpost.com,journalpioneer.com,saltwire.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com#@#.leaderboard-ad +comingsoon.net#@#.leaderboard-ad-container ++time.com#@##leaderboard-ad-1 ++time.com#@##rightrail-ad-1 +motorsport.com#@#.ms-ap +twinfinite.net,wegotthiscovered.com,themarysue.com,progameguides.com,progameguides.assistpub.com,dotesports.com,gamepur.com,notalwaysright.com#@#.proper-ad-unit +twinfinite.net#@#.primis-player @@ -74196,8 +79593,10 @@ new file mode 100644 +factsherald.com,charlieintel.com,fortniteintel.com#@#.td-header-ad-wrap +boredpanda.com,comingsoon.net#@#.text-ad +rpgbot.net,sakshi.com,republika.co.id,clutchpoints.com,sinarharian.com.my,doyouremember.com,thestatesman.com,clubhouse.swingu.com,teluguone.com,telugu360.com,dailyexpress.com.my,spurstalk.com,euronews.com,lahorenews.tv,thepalmierireport.com,worldtimeserver.com,philstar.com,interaksyon.com,interaksyon.philstar.com,themalaysianreserve.com,thestonkmarket.com,sis2sis.com,newsonyx.com,conservativehome.com,rightsideoutpost.com,thesaurus.net,propatriotnews.com,thegatewaypundit.com,player.one,latintimes.com,ibtimes.co.uk,thelibertyloft.com,thesource.com,joebidenisnotmypresident.news,harianaceh.co.id,dkoding.in,beckernews.com,1tamilcrow.com,manoramaonline.com,allhiphop.com,americanlookout.com,asianage.com,deccanchronicle.com,weregeek.com,healthbuzzline.com,vikatan.com,thescoop.us,tamilcrowstab.com,prousanews.com,ibtimes.com,conservativeplaylist.com,conservativebrief.com,medicaldaily.com,dailytruthreport.com,wingsnation.com,allwrestling.com,planb.mx,grabien.com,hindi.filmibeat.com,krishijagran.com,khaleejtimes.com,canucksarmy.com,hockeyfights.com,puckpedia.com,cmujer.com.mx,descubro.mx,telugu.nativeplanet.com,tamil.nativeplanet.com,mykhel.com,hindi.nativeplanet.com,careerindia.com,boldsky.com,malayalam.filmibeat.com,malayalam.nativeplanet.com,indiawest.com,cryptoglobe.com,codinginfinite.com,codeconquest.com,screengeek.net,enanyang.my,protrumpnews.com,thehindubusinessline.com,gizbot.com,thephoblographer.com,siasat.com,theaviationist.com,dunyanews.tv,wegotthiscovered.com,americanthinker.com,gulte.com,telugu.greatandhra.com,welovetrump.com,tamiltwistya.com,manilatimes.net,noqreport.com,blackenterprise.com,dunya.com.pk,telugu.filmibeat.com,issuu.com,worldtimeserver.com,yucatan.com.mx,drivespark.com,studyfinds.org,prajavani.net,noahreport.com,goodreturns.in,pythonforbeginners.com,oneindia.com,heroichollywood.com,oilersnation.com,rollingout.com,tamil.filmibeat.com,wnd.com,myjoyonline.com,altpress.com,hiphoplately.com,dailyfaceoff.com,tupaki.com,adomonline.com,bitcoinist.com,order-order.com,hancinema.net,deccanherald.com,100percentfedup.com,alabamanow.com,natchezdemocrat.com,nbc-2.com,sportsmole.co.uk,lfg.co,abc-7.com,leasticoulddo.com,joblo.com,mixi.media,prowrestling.com,timesofsandiego.com,wimp.com#@#.vuukle-ads -+altafiber.net,recyclingcenternear.me,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,hindustantimes.com,cbr.com,collider.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,makeuseof.com,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,codegrepper.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,personality-database.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,gardenista.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,remodelista.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,uwants.com,price.com.hk,discuss.com.hk,iranianuk.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,thegolfnewsnet.com,manuals.plus,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,melty.fr,lacremedugaming.fr,natlawreview.com,legalinsurrection.com,ac-illust.com,photo-ac.com,historycollection.com,6sqft.com,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,ballotpedia.org,powerlineblog.com,allsides.com,fantasypros.com,slashdot.org,xb.sf.net,c-stage.aaxads.com,slashdot.org,sourceforge.net,rateyourmusic.com,mensagenscomamor.com,horoscopovirtual.com.br,eusemfronteiras.com,wetteronline.de,wetteronline.ch,wetteronline.at,sakshi.com,republika.co.id,clutchpoints.com,sinarharian.com.my,doyouremember.com,thestatesman.com,clubhouse.swingu.com,teluguone.com,telugu360.com,dailyexpress.com.my,spurstalk.com,euronews.com,wetteronline.de,theblaze.com,lahorenews.tv,thepalmierireport.com,worldtimeserver.com,philstar.com,interaksyon.com,interaksyon.philstar.com,themalaysianreserve.com,thestonkmarket.com,sis2sis.com,newsonyx.com,conservativehome.com,rightsideoutpost.com,thesaurus.net,familyeducation.com,propatriotnews.com,thegatewaypundit.com,player.one,latintimes.com,ibtimes.co.uk,thelibertyloft.com,thesource.com,joebidenisnotmypresident.news,harianaceh.co.id,dkoding.in,beckernews.com,1tamilcrow.com,manoramaonline.com,allhiphop.com,americanlookout.com,asianage.com,deccanchronicle.com,weregeek.com,healthbuzzline.com,vikatan.com,thescoop.us,tamilcrowstab.com,prousanews.com,ibtimes.com,conservativeplaylist.com,conservativebrief.com,medicaldaily.com,dailytruthreport.com,pcmag.com,wingsnation.com,allwrestling.com,planb.mx,grabien.com,hindi.filmibeat.com,krishijagran.com,khaleejtimes.com,canucksarmy.com,hockeyfights.com,puckpedia.com,cmujer.com.mx,descubro.mx,telugu.nativeplanet.com,tamil.nativeplanet.com,mykhel.com,hindi.nativeplanet.com,careerindia.com,boldsky.com,malayalam.filmibeat.com,malayalam.nativeplanet.com,indiawest.com,cryptoglobe.com,codinginfinite.com,codeconquest.com,screengeek.net,enanyang.my,protrumpnews.com,thehindubusinessline.com,gizbot.com,thephoblographer.com,siasat.com,theaviationist.com,dunyanews.tv,wegotthiscovered.com,americanthinker.com,gulte.com,telugu.greatandhra.com,welovetrump.com,tamiltwistya.com,manilatimes.net,noqreport.com,blackenterprise.com,dunya.com.pk,telugu.filmibeat.com,issuu.com,worldtimeserver.com,yucatan.com.mx,drivespark.com,studyfinds.org,prajavani.net,noahreport.com,goodreturns.in,pythonforbeginners.com,oneindia.com,heroichollywood.com,oilersnation.com,rollingout.com,tamil.filmibeat.com,wnd.com,myjoyonline.com,altpress.com,hiphoplately.com,dailyfaceoff.com,tupaki.com,adomonline.com,bitcoinist.com,djhungama.net,famously-dead.com,famouslyarrested.com,famouslyscandalous.com,gamrreview.com,lolcounter.com,rodalenews.com,timesofindia.com,weathernationtv.com,webmaster-source.com,timesofindia.indiatimes.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com,xn--allestrungen-9ib.de,allestoerungen.ch,order-order.com,hancinema.net,deccanherald.com,100percentfedup.com,alabamanow.com,natchezdemocrat.com,allestoerungen.at,allestoerungen.de,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,nbc-2.com,sportsmole.co.uk,lfg.co,abc-7.com,leasticoulddo.com,aax.demo.oriel.io,agame.com,allkpop.com,boredpanda.com,capebretonpost.com,convertunits.com,cplusplus.com,firstpost.com,footballfancast.com,footballtransfertavern.com,fortniteintel.com,fr.shopping.rakuten.com,homesteadingtoday.com,intermediair.nl,joblo.com,journalpioneer.com,koutsompolio.gr,lacuerda.net,mashable.com,mediafire.com,michigan-sportsman.com,mixi.media,novini.bg,pch.com,pminteg.fr,prowrestling.com,saltwire.com,seattletimes.com,speedtest.net,sportal.bg,sportalbg.dev.smakmedia.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com,timesofsandiego.com,titantv.com,washingtontimes.com,wimp.com#@#[id^="div-gpt-ad"] -+altafiber.net,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,hindustantimes.com,cbr.com,collider.com,makeuseof.com,codegrepper.com,allpeoplequilt.com,cookinglight.com,uwants.com,price.com.hk,iranianuk.com,thegolfnewsnet.com,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,health.com,dailypaws.com,hellogiggles.com,midwestliving.com,discuss.com.hk,ew.com,people.com,melty.fr,lacremedugaming.fr,timeanddate.com,natlawreview.com,legalinsurrection.com,untappedcities.com,ac-illust.com,photo-ac.com,allrecipes.com,myrecipes.com,foodandwine.com,marthastewart.com,realsimple.com,peopleenespanol.com,eatingwell.com,shape.com,instyle.com,travelandleisure.com,parents.com,historycollection.com,6sqft.com,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,ballotpedia.org,powerlineblog.com,allsides.com,fantasypros.com,slashdot.org,xb.sf.net,c-stage.aaxads.com,slashdot.org,sourceforge.net,rateyourmusic.com,mensagenscomamor.com,horoscopovirtual.com.br,eusemfronteiras.com,wetteronline.de,wetteronline.ch,wetteronline.at,sakshi.com,republika.co.id,clutchpoints.com,sinarharian.com.my,doyouremember.com,thestatesman.com,clubhouse.swingu.com,teluguone.com,telugu360.com,dailyexpress.com.my,spurstalk.com,euronews.com,wetteronline.de,theblaze.com,lahorenews.tv,thepalmierireport.com,worldtimeserver.com,philstar.com,interaksyon.com,interaksyon.philstar.com,themalaysianreserve.com,thestonkmarket.com,sis2sis.com,newsonyx.com,conservativehome.com,rightsideoutpost.com,thesaurus.net,familyeducation.com,propatriotnews.com,thegatewaypundit.com,player.one,latintimes.com,ibtimes.co.uk,thelibertyloft.com,thesource.com,joebidenisnotmypresident.news,harianaceh.co.id,dkoding.in,beckernews.com,1tamilcrow.com,manoramaonline.com,allhiphop.com,americanlookout.com,asianage.com,deccanchronicle.com,weregeek.com,healthbuzzline.com,vikatan.com,thescoop.us,tamilcrowstab.com,prousanews.com,ibtimes.com,conservativeplaylist.com,conservativebrief.com,medicaldaily.com,dailytruthreport.com,pcmag.com,wingsnation.com,allwrestling.com,planb.mx,grabien.com,hindi.filmibeat.com,krishijagran.com,khaleejtimes.com,canucksarmy.com,hockeyfights.com,puckpedia.com,cmujer.com.mx,descubro.mx,telugu.nativeplanet.com,tamil.nativeplanet.com,mykhel.com,hindi.nativeplanet.com,careerindia.com,boldsky.com,malayalam.filmibeat.com,malayalam.nativeplanet.com,indiawest.com,cryptoglobe.com,codinginfinite.com,codeconquest.com,screengeek.net,enanyang.my,protrumpnews.com,thehindubusinessline.com,gizbot.com,thephoblographer.com,siasat.com,theaviationist.com,dunyanews.tv,wegotthiscovered.com,americanthinker.com,gulte.com,telugu.greatandhra.com,welovetrump.com,tamiltwistya.com,manilatimes.net,noqreport.com,blackenterprise.com,dunya.com.pk,telugu.filmibeat.com,issuu.com,worldtimeserver.com,yucatan.com.mx,drivespark.com,studyfinds.org,prajavani.net,noahreport.com,goodreturns.in,pythonforbeginners.com,oneindia.com,heroichollywood.com,oilersnation.com,rollingout.com,tamil.filmibeat.com,wnd.com,myjoyonline.com,altpress.com,hiphoplately.com,dailyfaceoff.com,tupaki.com,adomonline.com,bitcoinist.com,djhungama.net,famously-dead.com,famouslyarrested.com,famouslyscandalous.com,gamrreview.com,lolcounter.com,rodalenews.com,timesofindia.com,weathernationtv.com,webmaster-source.com,timesofindia.indiatimes.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com,xn--allestrungen-9ib.de,allestoerungen.ch,order-order.com,hancinema.net,deccanherald.com,100percentfedup.com,alabamanow.com,natchezdemocrat.com,allestoerungen.at,allestoerungen.de,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,nbc-2.com,sportsmole.co.uk,lfg.co,abc-7.com,leasticoulddo.com,aax.demo.oriel.io,agame.com,allkpop.com,boredpanda.com,capebretonpost.com,convertunits.com,cplusplus.com,firstpost.com,footballfancast.com,footballtransfertavern.com,fortniteintel.com,fr.shopping.rakuten.com,homesteadingtoday.com,intermediair.nl,joblo.com,journalpioneer.com,koutsompolio.gr,lacuerda.net,mashable.com,mediafire.com,michigan-sportsman.com,mixi.media,novini.bg,pch.com,pminteg.fr,prowrestling.com,saltwire.com,seattletimes.com,speedtest.net,sportal.bg,sportalbg.dev.smakmedia.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com,timesofsandiego.com,titantv.com,washingtontimes.com,wimp.com#@#div[id^="div-gpt-"] ++tvinsider.com,whats-on-netflix.com,uproxx.com,barstoolsports.com,netflixlife.com,muscleandfitness.com,comingsoon.net,soapoperadigest.com,justjaredjr.com,realclearpolitics.com,primerahora.com,waaytv.com,georgetakei.com,comingsoon.net,elnuevodia.com,sny.tv,celebdirtylaundry.com,rodeosusa.com,houstoncasemanagers.com,bobcutmag.com,wow4u.com,cookitonce.com,dazepuzzle.com,kylonpowell.com,carserviceland.com,crispyfoodidea.com,phonedealstoday.com,mma.uno,keepinspiring.me,mobileinternist.com,unscramblewords.com,frugalhotspot.com,romapress.net,livetheglory.com,chicitysports.com,fishkeepingworld.com,walkthroughs.net,cultaholic.com,pathofex.com,teamcolorcodes.com,metalwani.com,bulbagarden.net,osrsguide.com,tulamama.com,hometips.com,breatheheavy.com,wordunscrambler.com,racetothewh.com,oneminuteenglish.org,marsja.se,decortweaks.com,jaynestars.com,allclash.com,wordcrazeanswers.com,siccode.com,madbackyard.com,greekmythology.com,thepersonage.com,blogofdoom.com,tarotforum.net,codycrossanswers.com,momdot.com,theilluminerdi.com,codycrossanswers.net,thewebdev.info,raspberrytips.com,thelawnreview.com,excelhow.net,roadtrailrun.com,thepricer.org,games4esl.com,dailyactor.com,livinginacontainer.com,quizerry.com,michaelsaves.com,nurseteachings.com,verseoftheday.com,sweepsadvantage.com,primerahora.com,waaytv.com,georgetakei.com,comingsoon.net,elnuevodia.com,sny.tv,celebdirtylaundry.com,thehockeywriters.com,apartmenttherapy.com,bleedingcool.com,aiptcomics.com,ginx.tv,futbolenvivomexico.com,grandtournation.com,jpost.com,villages-news.com,infos-geek.com,notinerd.com,auralcrave.com,newsweek.com,ifly.com,liverampup.com,dantri.com.vn,videocardz.com,livecharts.co.uk,crosswordsolver.org,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,clutchfans.net,mamanly.com,futbolenvivochile.com,tarotalmabarrios.com,goodhomeautomation.com,exploreclarion.com,guiasteam.com,rccgonline.org,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,altafiber.net,recyclingcenternear.me,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,hindustantimes.com,cbr.com,collider.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,makeuseof.com,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,codegrepper.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,personality-database.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,gardenista.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,remodelista.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,uwants.com,price.com.hk,discuss.com.hk,iranianuk.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,thegolfnewsnet.com,manuals.plus,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,melty.fr,lacremedugaming.fr,natlawreview.com,legalinsurrection.com,ac-illust.com,photo-ac.com,historycollection.com,6sqft.com,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,ballotpedia.org,powerlineblog.com,allsides.com,fantasypros.com,slashdot.org,xb.sf.net,c-stage.aaxads.com,slashdot.org,sourceforge.net,rateyourmusic.com,mensagenscomamor.com,horoscopovirtual.com.br,eusemfronteiras.com,wetteronline.de,wetteronline.ch,wetteronline.at,sakshi.com,republika.co.id,clutchpoints.com,sinarharian.com.my,doyouremember.com,thestatesman.com,clubhouse.swingu.com,teluguone.com,telugu360.com,dailyexpress.com.my,spurstalk.com,euronews.com,wetteronline.de,theblaze.com,lahorenews.tv,thepalmierireport.com,worldtimeserver.com,philstar.com,interaksyon.com,interaksyon.philstar.com,themalaysianreserve.com,thestonkmarket.com,sis2sis.com,newsonyx.com,conservativehome.com,rightsideoutpost.com,thesaurus.net,familyeducation.com,propatriotnews.com,thegatewaypundit.com,player.one,latintimes.com,ibtimes.co.uk,thelibertyloft.com,thesource.com,joebidenisnotmypresident.news,harianaceh.co.id,dkoding.in,beckernews.com,1tamilcrow.com,manoramaonline.com,allhiphop.com,americanlookout.com,asianage.com,deccanchronicle.com,weregeek.com,healthbuzzline.com,vikatan.com,thescoop.us,tamilcrowstab.com,prousanews.com,ibtimes.com,conservativeplaylist.com,conservativebrief.com,medicaldaily.com,dailytruthreport.com,pcmag.com,wingsnation.com,allwrestling.com,planb.mx,grabien.com,hindi.filmibeat.com,krishijagran.com,khaleejtimes.com,canucksarmy.com,hockeyfights.com,puckpedia.com,cmujer.com.mx,descubro.mx,telugu.nativeplanet.com,tamil.nativeplanet.com,mykhel.com,hindi.nativeplanet.com,careerindia.com,boldsky.com,malayalam.filmibeat.com,malayalam.nativeplanet.com,indiawest.com,cryptoglobe.com,codinginfinite.com,codeconquest.com,screengeek.net,enanyang.my,protrumpnews.com,thehindubusinessline.com,gizbot.com,thephoblographer.com,siasat.com,theaviationist.com,dunyanews.tv,wegotthiscovered.com,americanthinker.com,gulte.com,telugu.greatandhra.com,welovetrump.com,tamiltwistya.com,manilatimes.net,noqreport.com,blackenterprise.com,dunya.com.pk,telugu.filmibeat.com,issuu.com,worldtimeserver.com,yucatan.com.mx,drivespark.com,studyfinds.org,prajavani.net,noahreport.com,goodreturns.in,pythonforbeginners.com,oneindia.com,heroichollywood.com,oilersnation.com,rollingout.com,tamil.filmibeat.com,wnd.com,myjoyonline.com,altpress.com,hiphoplately.com,dailyfaceoff.com,tupaki.com,adomonline.com,bitcoinist.com,djhungama.net,famously-dead.com,famouslyarrested.com,famouslyscandalous.com,gamrreview.com,lolcounter.com,rodalenews.com,timesofindia.com,weathernationtv.com,webmaster-source.com,timesofindia.indiatimes.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com,xn--allestrungen-9ib.de,allestoerungen.ch,order-order.com,hancinema.net,deccanherald.com,100percentfedup.com,alabamanow.com,natchezdemocrat.com,allestoerungen.at,allestoerungen.de,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,nbc-2.com,sportsmole.co.uk,lfg.co,abc-7.com,leasticoulddo.com,aax.demo.oriel.io,agame.com,allkpop.com,boredpanda.com,capebretonpost.com,convertunits.com,cplusplus.com,firstpost.com,footballfancast.com,footballtransfertavern.com,fortniteintel.com,fr.shopping.rakuten.com,homesteadingtoday.com,intermediair.nl,joblo.com,journalpioneer.com,koutsompolio.gr,lacuerda.net,mashable.com,mediafire.com,michigan-sportsman.com,mixi.media,novini.bg,pch.com,pminteg.fr,prowrestling.com,saltwire.com,seattletimes.com,speedtest.net,sportal.bg,sportalbg.dev.smakmedia.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com,timesofsandiego.com,titantv.com,washingtontimes.com,wimp.com#@#[id^="div-gpt-ad"] ++nutrition-charts.com,coloringpagesonly.com,sunrise-sunset.org,whatnowatlanta.com,comicbookrealm.com,online-python.com,homesteadsurvivalsite.com,luciding.com,motivationandlove.com,logosbynick.com,titlecaseconverter.com,tabletopjoab.com,dailykillersudoku.com,qualitydogresources.com,tiremeetsroad.com,itnwwe.com,apnatoronto.com,localpuppybreeders.com,instrumentationtools.com,learncpp.com,wikibioworth.com,programmingr.com,generatormix.com,chipandco.com,colorcodes.io,myotakuworld.com,beatlesbible.com,cakedecorist.com,findnicknames.com,thepointcalculator.com,singlemothers.us,itsolutionstuff.com,ilovedogscute.com,theproductiveengineer.net,fedsdatacenter.com,studybreaks.com,experthomereport.com,notesfromtheporch.com,shtfpreparedness.com,offgridpermaculture.com,wheelssize.com,greenlivingtribe.com,crosswordeg.com,oursportscentral.com,divinedaolibrary.com,chemicalaid.com,sqlserverguides.com,dailythemedcrosswordanswers.net,lovecookingdaily.com,elderguru.com,nonphoneworkathome.com,france-hotel-guide.com,campergrid.com,sbxl.com,rqeeqa.com,ignisnatura.org,pedigreedatabase.com,dreamglossary.com,linuxtechi.com,diysolarshack.com,groundedlifetravel.com,cubsinsider.com,onlinepersonalitytests.org,saltwateraquariumblog.com,bornagainboating.com,thecoastnews.com,nerdbot.com,franchisesports.co.uk,howtoforge.com,perfectdogbreeds.com,healthtipsnow.net,boiteachansons.net,msfsaddons.com,lettersformats.com,wikiaccounting.com,dailycrochet.com,wordscapescheat.com,datasciencemadesimple.com,totalmotorcycle.com,costcoinsider.com,parkingaccess.com,charbelnemnom.com,refrigeratorsreviewed.com,badgerandblade.com,marrieddivorce.com,emprendiendohistorias.com,tracfoneusermanual.net,tckpublishing.com,silverlininglessons.com,asvabpracticetestonline.com,wordstodescribe.com,lyrical-nonsense.com,fantasynerds.com,animalfate.com,lettersinenglish.com,sportfishingbuddy.com,overseasattractions.com,egriz.com,nilsenreport.ca,askthebuilder.com,diydoctor.org.uk,favoredleather.com,autoservicecosts.com,whatispiping.com,scuffedentertainment.com,35mmc.com,parlerdamour.fr,365thingsinhouston.com,centraldesermones.com,aboutchromebooks.com,topwoodworkingadvice.com,spelling-words-well.com,millo.co,thecleverbusiness.com,yourdailyglobe.com,biznewske.com,analyzemath.com,aa1car.com,nutsandboltsspeedtraining.com,yummyindiankitchen.com,codewithmukesh.com,triviawell.com,miracomosehace.com,technorms.com,r-graph-gallery.com,celebritydig.com,scamcharge.com,accountinguide.com,textfixer.com,materialsix.com,roofonline.com,birthdaywishes.expert,goldpriceoz.com,informatique-mania.com,somosmamas.com.ar,rentalhousingdeals.com,acessaber.com.br,squarefootagearea.com,altcodeunicode.com,exrx.net,journeydogtraining.com,pdfwordconvert.com,dataoverhaulers.com,thedisinsider.com,commercialdriverhq.com,fanstranslations.com,havredailynews.com,yardblogger.com,houseplanshelper.com,environmental-conscience.com,hacktheminotaur.com,indifferentlanguages.com,artprompts.org,myenglishteacher.eu,my-package-tracking.com,countertopspecialty.com,it-connect.fr,ourfitpets.com,brighthubeducation.com,defkey.com,flgardening.com,happybirthdaymsg.com,dicasinteligentes.com.br,tutorialgateway.org,weeklyhoroscope.com,escapefan.com,icebreakers.ws,toutoupourlechien.com,happyvagabonds.com,archisoup.com,aginghealthytoday.com,charactercounter.com,esportsearnings.com,freejobalert.com,homeguideguru.com,thecabindiary.com,streetsmartkitchen.com,vitux.com,officetuts.net,feelingvegas.com,thepythoncode.com,electrical4u.net,codycrossanswers.org,salaryaftertax.com,shuttlefare.com,practicequiz.com,orchideria.com,truthorfiction.com,softwaretestingmaterial.com,wordscapeshelp.com,kifarunix.com,labex-cortex.com,bestcateringprices.com,knifeup.com,h-supertools.com,alexusrenee.com,sportfishingbc.com,windows101tricks.com,zwivel.com,mamapedia.com,asacannes.com,classicrockhistory.com,williamsonhomepage.com#@#[id^="div-gpt-ad"] ++chromeunboxed.com,exploreclarion.com#@#.code-block ++tvinsider.com,whats-on-netflix.com,uproxx.com,barstoolsports.com,netflixlife.com,muscleandfitness.com,comingsoon.net,soapoperadigest.com,justjaredjr.com,realclearpolitics.com,primerahora.com,waaytv.com,georgetakei.com,comingsoon.net,elnuevodia.com,sny.tv,celebdirtylaundry.com,primerahora.com,waaytv.com,georgetakei.com,comingsoon.net,elnuevodia.com,sny.tv,celebdirtylaundry.com,thehockeywriters.com,apartmenttherapy.com,bleedingcool.com,jpost.com,villages-news.com,newsweek.com,sicem365.com,irishsportsdaily.com,altafiber.net,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,hindustantimes.com,cbr.com,collider.com,makeuseof.com,codegrepper.com,allpeoplequilt.com,cookinglight.com,uwants.com,price.com.hk,iranianuk.com,thegolfnewsnet.com,mybendbroadband.com,myworld.breezeline.com,cincinnatibell.net,health.com,dailypaws.com,hellogiggles.com,midwestliving.com,discuss.com.hk,ew.com,people.com,melty.fr,lacremedugaming.fr,timeanddate.com,natlawreview.com,legalinsurrection.com,untappedcities.com,ac-illust.com,photo-ac.com,allrecipes.com,myrecipes.com,foodandwine.com,marthastewart.com,realsimple.com,peopleenespanol.com,eatingwell.com,shape.com,instyle.com,travelandleisure.com,parents.com,historycollection.com,6sqft.com,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,ballotpedia.org,powerlineblog.com,allsides.com,fantasypros.com,slashdot.org,xb.sf.net,c-stage.aaxads.com,slashdot.org,sourceforge.net,rateyourmusic.com,mensagenscomamor.com,horoscopovirtual.com.br,eusemfronteiras.com,wetteronline.de,wetteronline.ch,wetteronline.at,sakshi.com,republika.co.id,clutchpoints.com,sinarharian.com.my,doyouremember.com,thestatesman.com,clubhouse.swingu.com,teluguone.com,telugu360.com,dailyexpress.com.my,spurstalk.com,euronews.com,wetteronline.de,theblaze.com,lahorenews.tv,thepalmierireport.com,worldtimeserver.com,philstar.com,interaksyon.com,interaksyon.philstar.com,themalaysianreserve.com,thestonkmarket.com,sis2sis.com,newsonyx.com,conservativehome.com,rightsideoutpost.com,thesaurus.net,familyeducation.com,propatriotnews.com,thegatewaypundit.com,player.one,latintimes.com,ibtimes.co.uk,thelibertyloft.com,thesource.com,joebidenisnotmypresident.news,harianaceh.co.id,dkoding.in,beckernews.com,1tamilcrow.com,manoramaonline.com,allhiphop.com,americanlookout.com,asianage.com,deccanchronicle.com,weregeek.com,healthbuzzline.com,vikatan.com,thescoop.us,tamilcrowstab.com,prousanews.com,ibtimes.com,conservativeplaylist.com,conservativebrief.com,medicaldaily.com,dailytruthreport.com,pcmag.com,wingsnation.com,allwrestling.com,planb.mx,grabien.com,hindi.filmibeat.com,krishijagran.com,khaleejtimes.com,canucksarmy.com,hockeyfights.com,puckpedia.com,cmujer.com.mx,descubro.mx,telugu.nativeplanet.com,tamil.nativeplanet.com,mykhel.com,hindi.nativeplanet.com,careerindia.com,boldsky.com,malayalam.filmibeat.com,malayalam.nativeplanet.com,indiawest.com,cryptoglobe.com,codinginfinite.com,codeconquest.com,screengeek.net,enanyang.my,protrumpnews.com,thehindubusinessline.com,gizbot.com,thephoblographer.com,siasat.com,theaviationist.com,dunyanews.tv,wegotthiscovered.com,americanthinker.com,gulte.com,telugu.greatandhra.com,welovetrump.com,tamiltwistya.com,manilatimes.net,noqreport.com,blackenterprise.com,dunya.com.pk,telugu.filmibeat.com,issuu.com,worldtimeserver.com,yucatan.com.mx,drivespark.com,studyfinds.org,prajavani.net,noahreport.com,goodreturns.in,pythonforbeginners.com,oneindia.com,heroichollywood.com,oilersnation.com,rollingout.com,tamil.filmibeat.com,wnd.com,myjoyonline.com,altpress.com,hiphoplately.com,dailyfaceoff.com,tupaki.com,adomonline.com,bitcoinist.com,djhungama.net,famously-dead.com,famouslyarrested.com,famouslyscandalous.com,gamrreview.com,lolcounter.com,rodalenews.com,timesofindia.com,weathernationtv.com,webmaster-source.com,timesofindia.indiatimes.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com,xn--allestrungen-9ib.de,allestoerungen.ch,order-order.com,hancinema.net,deccanherald.com,100percentfedup.com,alabamanow.com,natchezdemocrat.com,allestoerungen.at,allestoerungen.de,allestoringen.be,allestoringen.nl,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.ru,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,nbc-2.com,sportsmole.co.uk,lfg.co,abc-7.com,leasticoulddo.com,aax.demo.oriel.io,agame.com,allkpop.com,boredpanda.com,capebretonpost.com,convertunits.com,cplusplus.com,firstpost.com,footballfancast.com,footballtransfertavern.com,fortniteintel.com,fr.shopping.rakuten.com,homesteadingtoday.com,intermediair.nl,joblo.com,journalpioneer.com,koutsompolio.gr,lacuerda.net,mashable.com,mediafire.com,michigan-sportsman.com,mixi.media,novini.bg,pch.com,pminteg.fr,prowrestling.com,saltwire.com,seattletimes.com,speedtest.net,sportal.bg,sportalbg.dev.smakmedia.com,thechronicleherald.ca,theguardian.pe.ca,thetelegram.com,timesofsandiego.com,titantv.com,washingtontimes.com,wimp.com#@#div[id^="div-gpt-"] +fanrecap.com,historycollection.com#@#.td-adspot-title +fanrecap.com#@#.td-a-ad +historycollection.com#@#.side-ads @@ -74219,8 +79618,7 @@ new file mode 100644 +ktla.com,woodtv.com,fox8.com,kxan.com,kdvr.com,wgntv.com,koin.com,kron4.com,localsyr.com,fox2now.com,keloland.com,wkbn.com,wfla.com,fox59.com,wavy.com,wane.com,wwlp.com,wpri.com,myfox8.com,wkrn.com,wivb.com,fox5sandiego.com,wtnh.com,wjhl.com,khon2.com,krqe.com,whnt.com,fox4kc.com,newsnationnow.com,kfor.com,8newsnow.com,abc27.com,rochesterfirst.com,cbs17.com,mytwintiers.com,news10.com,ksn.com,who13.com,fox21news.com,wric.com,wkrg.com,wbtw.com,wspa.com,ksnt.com,wboy.com,fox40.com,kget.com,wsav.com,wearecentralpa.com,nwahomepage.com,wcia.com,everythinglubbock.com,tristatehomepage.com,valleycentral.com,mystateline.com,wlns.com,wnct.com,pahomepage.com,kark.com,counton2.com,cbs4indy.com,kxnet.com,fox46.com,wearegreenbay.com,wtrf.com,ktsm.com,wgno.com,myarklamiss.com,ozarksfirst.com,wgnradio.com,fox16.com,klfy.com,wjbf.com,centralillinoisproud.com,cw39.com,mypanhandle.com,mysterywire.com,localdvm.com,cbs42.com,myhighplains.com,fourstateshomepage.com,wytv.com,yourcentralvalley.com,ketk.com,wjtv.com,mywabashvalley.com,wvnstv.com,bigcountryhomepage.com,wowktv.com,wfxrtv.com,ourquadcities.com,conchovalleyhomepage.com,brproud.com,binghamtonhomepage.com,borderreport.com,arklatexhomepage.com,wrbl.com,mychamplainvalley.com,fox44news.com,cw33.com,westernslopenow.com,wdhn.com,upmatters.com,foxlexington.com,yourbasin.com,wiproud.com,informnny.com,phl17.com,cenlanow.com,yourbigsky.com,channel4000.com,wreg.com,nxstrib.com,go-vip.net#@#div[id^="acm-ad-tag-"] +searchenginejournal.com#@#div[id^="SEJ_300x250_"] +natlawreview.com,thehill.com,avclub.com,clickhole.com,deadspin.com,gizmodo.com,jalopnik.com,jezebel.com,kotaku.com,lifehacker.com,splinternews.com,theinventory.com,theonion.com,theroot.com,thetakeout.com#@#div[id^="dfp-ad-"] -+time.com,usssa.com,senpai.gg,seattletimes.com,economictimes.indiatimes.com,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,fanrecap.com,tipsybartender.com,ratemyfishtank.com,techadvisor.com,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,uwants.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,supermama.lt,inbox.lt,thehockeywriters.com,my.juno.com,my.netzero.net,fantasypros.com,dogtime.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,cargurus.com,movieplayer.it,pistonheads.com,dissapore.com,aufeminin.com,cargurus.ca,cars.com,virgilio.it,libero.it,ac-illust.com,photo-ac.com,multiplayer.it,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,xgn.es,xgn.nl,livingly.com,lonny.com,stylebistro.com,mabelandmoxie.com,zimbio.com,itsrosy.com,macworld.com,pcworld.pl,virgilio.it,dilei.it,quifinanza.it,viedemerde.fr,ezgif.com,timesofindia.indiatimes.com,agame.com,boredpanda.com,convertunits.com,firstpost.com,forbes.com,intermediair.nl,pcmag.com#@#[id^="google_ads_iframe"] -+livecharts.co.uk,crosswordsolver.org,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com#@#[id^="div-gpt-ad"] ++pcwelt.de,webwereld.nl,cartermatt.com,thedailybeast.com,macwelt.de,20minutos.es,techhive.com,pcworld.com,thehockeywriters.com,apartmenttherapy.com,bleedingcool.com,sportsaspire.com,lovebondings.com,entertainism.com,plentifun.com,melodyful.com,partyjoys.com,socialmettle.com,bodytomy.com,menwit.com,thoughtfultattoos.com,sciencestruck.com,marketingwit.com,penlighten.com,petponder.com,opinionfront.com,themeparktourist.com,iranianuk.com,timeanddate.com,nasdaq.com,gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com,ezgif.com,firstpost.com,minecraftlist.org,time.com,usssa.com,senpai.gg,seattletimes.com,economictimes.indiatimes.com,wordplays.com,autoblog.com,kitco.com,boston.com,comicsands.com,fanrecap.com,tipsybartender.com,ratemyfishtank.com,techadvisor.com,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,uwants.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,supermama.lt,inbox.lt,thehockeywriters.com,my.juno.com,my.netzero.net,fantasypros.com,dogtime.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com,cargurus.com,movieplayer.it,pistonheads.com,dissapore.com,aufeminin.com,cargurus.ca,cars.com,virgilio.it,libero.it,ac-illust.com,photo-ac.com,multiplayer.it,centurylink.net,windstream.net,hughesnet.com,wowway.net,tds.net,armstrongmywire.com,suddenlink.net,searchandnews.com,mediacomtoday.com,sparklight.com,myworld.atlanticbb.com,my.gvtc.com,mygrande.com,hawaiiantel.net,xgn.es,xgn.nl,livingly.com,lonny.com,stylebistro.com,mabelandmoxie.com,zimbio.com,itsrosy.com,macworld.com,pcworld.pl,virgilio.it,dilei.it,quifinanza.it,viedemerde.fr,ezgif.com,timesofindia.indiatimes.com,agame.com,boredpanda.com,convertunits.com,firstpost.com,forbes.com,intermediair.nl,pcmag.com#@#[id^="google_ads_iframe"] +reddit.com#@#div[id^="overlay-sidebar-atf-"] +reddit.com#@#div[id^="overlay-sidebar-btf-"] +reddit.com#@#div[id^="sidebar-atf-"] @@ -74229,8 +79627,7 @@ new file mode 100644 +nasdaq.com#@#div[id^="js-dfp-"] +pcmag.com#@#iframe[id][marginheight="0"] +androidpolice.com,xda-developers.com#@#iframe[src^="https://tpc.googlesyndication.com/"] -+iranianuk.com,timeanddate.com,nasdaq.com,gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com,ezgif.com,firstpost.com#@#[id^="google_ads_iframe"] -+cars.com,virgilio.it,libero.it,gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com,ezgif.com#@#[name^="google_ads_iframe"] ++techhive.com,techadvisor.com,cars.com,virgilio.it,libero.it,gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com,ezgif.com#@#[name^="google_ads_iframe"] +gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com#@#.ytp-ad-progress-list +gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com#@#div[id^="jwplayer_"] +gstage.postmedia.digital,gdev.postmedia.digital,dexerto.com#@#.dex-adlabel @@ -74248,6 +79645,7 @@ new file mode 100644 +motor1.com#@#.m1_largeMPU +checkmategaming.com,checkmategaming.assistpub.com,charliekirk.com,charliekirk.assistpub.com,chess.com,chess.assistpub.com,chron.com,chron.assistpub.com#@#.adBanner +chron.com,chron.assistpub.com#@#.adModule ++thedailybeast.com#@#.AdModule +heraldo.es#@#.module1colAds +abovethelaw.com,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad__container +nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad__high-impact @@ -74293,7 +79691,7 @@ new file mode 100644 +nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital###ad-9:not([data-ad-acceptable]) +gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,filehippo.pl,filehippo.jp,filehippo.de,filehippo.com,nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad__label +gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad__placeholder -+gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad-refresh ++fantasypros.com,gstage.postmedia.digital,gdev.postmedia.digital,gcp-aa-499-lfpress.gdev.postmedia.digital,gcp-rc-830-nationalpost.gstage.postmedia.digital,gcp-rc-823-financialpost.gstage.postmedia.digital,gcp-rc-823-nationalpost.gstage.postmedia.digital,gcp-rc-830-financialpost.gstage.postmedia.digital,gcp-rc-830-lfpress.gstage.postmedia.digital,nationalpost.com,financialpost.com,lfpress.com,lfpress.assistpub.com,stage.postmedia.digital,dev.postmedia.digital#@#.ad-refresh +famousbirthdays.com#@#.ad-row +gamepress.gg#@#.top-ad-desktop +theblaze.com,gamepur.com,chess.com#@#.banner_slot @@ -74308,13 +79706,23 @@ new file mode 100644 +chess.com#@##main-ad +economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com#@#.adsbg300 +economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com#@##bottomAd -+powerlineblog.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com#@##topAd ++courttv.com,powerlineblog.com,economictimes.indiatimes.com,m.economictimes.com,related.economictimes.com#@##topAd +hockeydb.com#@##topad +powerlineblog.com#@##post-ad -+lfg.co,leasticoulddo.com,chess.assistpub.com,chess.com#@#.sidebar-ad ++thedailybeast.com#@#.FooterAd ++thedailybeast.com#@#.GoogleAd ++thedailybeast.com#@#.PageTopAd ++thedailybeast.com#@#.SimpleAd ++thedailybeast.com#@#.Sizer ++thedailybeast.com,lfg.co,leasticoulddo.com,chess.assistpub.com,chess.com#@#.sidebar-ad ++motaclarity.co.uk#@#.sidebar-ads +chess.assistpub.com,chess.com#@#.index-content-ad-wrapper +motorsport.com#@#.ms-apb-dmpu +timesofindia.indiatimes.com#@#.ad-widget ++timesofindia.indiatimes.com#@#._3xsKP ++timesofindia.indiatimes.com#@#._3JJMX ++timesofindia.indiatimes.com#@#.addblock ++timesofindia.indiatimes.com#@#.rgt_ad +djhungama.net,famously-dead.com,famouslyarrested.com,famouslyscandalous.com,gamrreview.com,lolcounter.com,rodalenews.com,timesofindia.com,weathernationtv.com,webmaster-source.com#@#.ad1 +theblaze.com,thegreggjarrett.com,charliekirk.com,charliekirk.assistpub.com#@#div[id^="rc-widget-"] +checkmategaming.com,checkmategaming.assistpub.com#@#.right-ad @@ -74334,13 +79742,18 @@ new file mode 100644 +searchenginejournal.com#@#.img-mmax-100 +searchenginejournal.com#@#.sss_slot +pch.com#@#[class^="div-gpt-ad"] ++pch.com#@#article.ad +hellhorror.com#@#.c-ad ++onlinedoctranslator.com#@#.ads-wrap +thegreggjarrett.com#@#.ads-wrapper +thegreggjarrett.com#@#.ads_code +thedirect.com#@#.pw-ph-sky +thedirect.com#@#.pw-ph-leaderboard +thedirect.com#@#.ads_container +opex360.com,opex360.assistpub.com#@##header-ads ++videocardz.com#@##header-ad ++videocardz.com#@##vc-maincontainer-midad ++videocardz.com#@##vc-maincontainer-ad +basketusa.com,basketusa.assistpub.com#@#.ad-desktop +basketusa.com,basketusa.assistpub.com#@#.ad-medium +typing.com#@#.js-skyscraper-ad @@ -74348,9 +79761,9 @@ new file mode 100644 +menshealth.com,menshealth.assistpub.com,delish.com,delish.assistpub.com,typing.com#@#.advert--square +cars.com#@#.cubeAd +procyclingstats.com#@#.top-cont -+woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,coolmath.com,travelandleisure.com,parents.com#@#.ad-wrapper -+woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,travelandleisure.com,parents.com#@#.mobile-ad -+procyclingstats.com,woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,travelandleisure.com,parents.com#@#.desktop-ad ++motaclarity.co.uk,woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,coolmath.com,travelandleisure.com,parents.com#@#.ad-wrapper ++gamepress.gg,woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,travelandleisure.com,parents.com#@#.mobile-ad ++gamepress.gg,procyclingstats.com,woodmagazine.com,ew.com,people.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,travelandleisure.com,parents.com#@#.desktop-ad +woodmagazine.com,time.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,people.com,bhg.com,southernliving.com,travelandleisure.com,parents.com,ew.com#@#.tablet-ad +woodmagazine.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,parents.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,people.com,bhg.com,southernliving.com,ew.com,ghacks.net,travelandleisure.com#@#.ad-title +woodmagazine.com,ew.com,people.com,allrecipes.com,hellogiggles.com,health.com,shape.com,midwestliving.com,realsimple.com,marthastewart.com,dailypaws.com,myrecipes.com,eatingwell.com,instyle.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,peopleenespanol.com,travelandleisure.com,parents.com#@#.ad-sticky-container @@ -74359,12 +79772,13 @@ new file mode 100644 +crfashionbook.com,elle.com,elledecor.com,esquire.com,goodhousekeeping.com,harpersbazaar.com,popularmechanics.com,prevention.com,runnersworld.com,seventeen.com,shondaland.com,townandcountrymag.com,thepioneerwoman.com,veranda.com,womenshealthmag.com,cosmopolitan.com,womansday.com,runnersworld.com,redbookmag.com,oprahdaily.com,marieclaire.com,countryliving.com,bicycling.com,bestproducts.com,housebeautiful.com,menshealth.com,menshealth.assistpub.com,delish.com,delish.assistpub.com#@#.listicle--ad-rail +countryliving.com,elle.com,bestproducts.com,bicycling.com,shondaland.com,veranda.com,cosmopolitan.com,thepioneerwoman.com,redbookmag.com,menshealth.com,housebeautiful.com,harpersbazaar.com,elledecor.com,oprahdaily.com,popularmechanics.com,prevention.com,runnersworld.com,seventeen.com,townandcountrymag.com,womansday.com,womenshealthmag.com,esquire.com,delish.com,goodhousekeeping.com#@##gpt-leaderboard-ad +windowsreport.com#@#div[data-insertion] ++gamepress.gg#@#.feed-ad +abovethelaw.com,downdetector.ae,downdetector.ca,downdetector.cl,downdetector.co.nz,downdetector.co.uk,downdetector.co.za,downdetector.com,downdetector.com.ar,downdetector.com.au,downdetector.com.br,downdetector.com.co,downdetector.cz,downdetector.dk,downdetector.ec,downdetector.es,downdetector.fi,downdetector.fr,downdetector.gr,downdetector.hk,downdetector.hr,downdetector.hu,downdetector.id,downdetector.ie,downdetector.in,downdetector.it,downdetector.jp,downdetector.mx,downdetector.my,downdetector.no,downdetector.pe,downdetector.ph,downdetector.pk,downdetector.pl,downdetector.pt,downdetector.ro,downdetector.se,downdetector.sg,downdetector.sk,downdetector.web.tr,downdetector.ru,allestoringen.nl,allestoerungen.at,allestoringen.be,allestoerungen.ch,allestoerungen.de,xn--allestrungen-9ib.de#@#.leaderboard.ad +jsoneditoronline.org#@#.ad-panel +resetera.com#@#.samCodeUnit +fantasypros.com,viedemerde.fr#@#.sticky-ad +viedemerde.fr#@#.optidigital-ad-center -+techadvisor.com,discuss.com.hk,time.com,macworld.com,techhive.com,pcworld.com,autotrader.ca,rd.com,familyhandyman.com,selection.ca,readersdigest.ca,birdsandblooms.com,besthealthmag.ca,techconnect.com#@#.ad-placement ++pcwelt.de,webwereld.nl,macwelt.de,techadvisor.com,discuss.com.hk,time.com,macworld.com,techhive.com,pcworld.com,autotrader.ca,rd.com,familyhandyman.com,selection.ca,readersdigest.ca,birdsandblooms.com,besthealthmag.ca,techconnect.com#@#.ad-placement +familyeducation.com#@##bannerad +infoplease.com#@##block-ipleaderboardad +infoplease.com#@##block-ipabovethefold @@ -74389,16 +79803,17 @@ new file mode 100644 +insidermonkey.com#@##ad-horizontal-top +insidermonkey.com#@#.ad-horizontal-top-wrapper +insidermonkey.com#@##sidebar-ad-1 -+buonissimo.it,libero.it#@##admpubottom ++insidermonkey.com#@##sidebar-ad-2 ++virgilio.it,buonissimo.it,libero.it#@##admpubottom +virgilio.it,libero.it#@##admpumiddle -+siviaggia.it,virgilio.it,dilei.it,quifinanza.it,libero.it#@##adwallpaper ++supereva.it,buonissimo.it,siviaggia.it,virgilio.it,dilei.it,quifinanza.it,libero.it#@##adwallpaper +virgilio.it,libero.it#@##adbox1 +virgilio.it,libero.it#@##adbox2 +virgilio.it,libero.it#@##adtophp +elledecor.com,bicycling.com,crfashionbook.com,oprahdaily.com,prevention.com,seventeen.com,shondaland.com,thepioneerwoman.com,veranda.com,cosmopolitan.com#@#.breaker-ad +virgilio.it#@##adslider -+buonissimo.it,virgilio.it#@##admputop -+buonissimo.it,virgilio.it#@#.admputop ++quifinanza.it,supereva.it,siviaggia.it,dilei.it,buonissimo.it,virgilio.it#@##admputop ++supereva.it,buonissimo.it,virgilio.it#@#.admputop +virgilio.it#@#.adv-cont +siviaggia.it,dilei.it,quifinanza.it#@##adleaderboard +autosport.com#@#.ms-apb @@ -74418,10 +79833,10 @@ new file mode 100644 +gamefragger.com,animemojo.com,toonado.com#@##adBTF300x250 +gamefragger.com,animemojo.com,toonado.com#@##adATF728x90 +gamefragger.com,animemojo.com,toonado.com#@##adATF300x250 -+buonissimo.it#@##admpubottom2 ++libero.it,virgilio.it,buonissimo.it#@##admpubottom2 +ghacks.net#@#.category-sponsored +bndestem.nl,gelderlander.nl,ad.nl,bd.nl,ed.nl,tubantia.nl,pzc.nl,destentor.nl#@#.advertising-container-top -+virgilio.it,supereva.it,siviaggia.it#@##cont-wallpaper ++quifinanza.it,dilei.it,virgilio.it,supereva.it,siviaggia.it#@##cont-wallpaper +multiplayer.it,virgilio.it,supereva.it,libero.it#@#.adv +virgilio.it#@#.hp_300x250 +virgilio.it#@#.hp_970x90 @@ -74444,9 +79859,9 @@ new file mode 100644 +gala.fr#@#[data-ads-core] +gala.fr#@#.bannerAds +gala.fr#@#.coreAdsPlacer -+techadvisor.com,photo.gala.fr#@#.ad-placeholder ++webwereld.nl,techadvisor.com,photo.gala.fr#@#.ad-placeholder +wetteronline.de#@##woFooterBillboard -+allrecipes.com,midwestliving.com,dailypaws.com,parents.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,bhg.com#@#.sister-ads ++marthastewart.com,allrecipes.com,midwestliving.com,dailypaws.com,parents.com,foodandwine.com,cookinglight.com,allpeoplequilt.com,bhg.com#@#.sister-ads +cars.com,cookinglight.com,southernliving.com#@#.native-ad +livefutbol.com,gamestar.com,people.com#@#.ADBox +livefutbol.com,gamestar.com,people.com#@#.AD_area @@ -74461,11 +79876,11 @@ new file mode 100644 +marmiton.org#@#.af-label-ads +marmiton.org#@#.BeOpWidget +greenbot.com,pcworld.com,gamestar.com,techhive.com#@#.adunit -+techadvisor.com,tractorbynet.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,autoscout24.nl,autoscout24.it,autoscout24.at,techhive.com,pcworld.com,autoscout24.de,macworld.com#@#.ad-banner ++infos-geek.com,notinerd.com,auralcrave.com,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,tractorbynet.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,autoscout24.nl,autoscout24.it,autoscout24.at,autoscout24.de,macworld.com#@#.ad-banner +autoscout24.com,autoscout24.nl,autoscout24.it,autoscout24.at,autoscout24.de#@#.cl-ad-inpager -+techadvisor.com,techhive.com,pcworld.com,fantasypros.com,macworld.com#@#.ad-footer ++pcwelt.de,macwelt.de,techadvisor.com,techhive.com,pcworld.com,fantasypros.com,macworld.com#@#.ad-footer +techadvisor.com,techhive.com,pcworld.com,macworld.com#@#.ad-overlay -+techadvisor.com,techhive.com,pcworld.com,macworld.com#@#.page-ad ++pcwelt.de,macwelt.de,techadvisor.com,techhive.com,pcworld.com,macworld.com#@#.page-ad +speedmeter.de,macwelt.de,pcwelt.de,speed.io#@##ad_layer +speedmeter.de,macwelt.de,pcwelt.de,speed.io#@##ad_mpu +speedmeter.de,macwelt.de,pcwelt.de,speed.io#@##ad_sky @@ -74492,9 +79907,10 @@ new file mode 100644 +fantasypros.com#@#.ad-728 +fantasypros.com#@#.ad-300 +fantasypros.com#@#.ad-160 -+pcworld.com#@#.ad-1 -+pcworld.com#@#.img_ad -+pcworld.com#@#.advertiser ++techhive.com,techadvisor.com#@##adunit ++techhive.com,techadvisor.com,pcworld.com#@#.ad-1 ++techhive.com,techadvisor.com,pcworld.com#@#.img_ad ++techhive.com,fantasypros.com,techadvisor.com,pcworld.com#@#.advertiser +livingly.com,lonny.com,stylebistro.com,mabelandmoxie.com,zimbio.com,itsrosy.com#@#.embeddedAd +livingly.com,lonny.com,stylebistro.com,mabelandmoxie.com,zimbio.com,itsrosy.com#@#.tile-ad +tvstanici.net#@#.adsbyvli @@ -74531,6 +79947,7 @@ new file mode 100644 +bestproducts.com,bicycling.com,countryliving.com,elle.com,elledecor.com,esquire.com,goodhousekeeping.com,harpersbazaar.com,housebeautiful.com,oprahdaily.com,popularmechanics.com,prevention.com,redbookmag.com,runnersworld.com,seventeen.com,shondaland.com,townandcountrymag.com,thepioneerwoman.com,veranda.com,womansday.com,womenshealthmag.com,cosmopolitan.com,delish.com,menshealth.com##.text_ads +autotrader.ca#@#.jw-ad +autotrader.ca#@#.jw-ad-media-container ++pcwelt.de,techadvisor.com,macwelt.de,techhive.com#@#.jwPlayer--floatingContainer +photo-ac.com#@#.section-ads +pastemagazine.com#@#.header-top-ad +pastemagazine.com#@##top_leaderboard @@ -74544,7 +79961,8 @@ new file mode 100644 +reddit.com#@#shreddit-comments-page-ad +reddit.com#@#article.Post:-abp-has(a[rel="nofollow noopener sponsored"]) +cars.com#@#.news-ad -+techadvisor.fr,fantasypros.com,lesnumeriques.com,beaute-test.com,cars.com#@#div[data-google-query-id] ++techhive.com,techadvisor.com,techadvisor.fr,fantasypros.com,lesnumeriques.com,beaute-test.com,cars.com#@#div[data-google-query-id] ++techhive.com,techadvisor.com#@#a[href^="https://www.googleadservices.com/pagead/aclk?"] +lesnumeriques.com#@##ad-banner_atf-label +lesnumeriques.com#@#.mvp-widget-ad +techadvisor.fr,cars.com#@#a[href^="https://adclick.g.doubleclick.net/"] @@ -74555,6 +79973,7 @@ new file mode 100644 +pistonheads.com#@#.ad-contain-top +pistonheads.com#@#.adslot +economictimes.indiatimes.com#@#.adSlot ++thedailybeast.com#@#.AdSlot +financialpost.com,nationalpost.com,doctissimo.fr,aufeminin.com,marmiton.org,beaute-test.com#@#div[data-ad] +autosport.com,motorsport.com#@#.ms-hapb +matchendirect.fr#@##tux728x90 @@ -74576,13 +79995,13 @@ new file mode 100644 +my.juno.com#@##scienceTile +my.juno.com#@##usWorldTile +dotesports.com,gamepur.com#@##top-sticky-sidebar-wrapper -+livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,singletrackworld.com,clickspeedtest.com,goodcalculators.com,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,gardenista.com,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,personality-database.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,remodelista.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.ezoic-ad -+uscollegeinternational.com,scitechdaily.com,collegefactual.com,gardenista.com,tractorbynet.com,10fastfingers.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,remodelista.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#span[id^="ezoic-pub-ad-placeholder-"] -+livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.adtester-container -+collegefactual.com,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.ezo_ad -+livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,personality-database.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#[data-ez-name] -+livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,thecalculatorsite.com,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,personality-database.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,10fastfingers.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,simplypsychology.org,gm-trucks.com,barnfinds.com,linuxize.com,thehockeywriters.com#@#.ezoic-ad-adaptive -+tractorbynet.com,personality-database.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com#@#div[id^="ezoic-pub-ad-"] ++nutrition-charts.com,coloringpagesonly.com,sunrise-sunset.org,whatnowatlanta.com,comicbookrealm.com,online-python.com,homesteadsurvivalsite.com,luciding.com,motivationandlove.com,logosbynick.com,titlecaseconverter.com,tabletopjoab.com,dailykillersudoku.com,qualitydogresources.com,tiremeetsroad.com,itnwwe.com,apnatoronto.com,localpuppybreeders.com,instrumentationtools.com,learncpp.com,wikibioworth.com,programmingr.com,generatormix.com,chipandco.com,colorcodes.io,myotakuworld.com,beatlesbible.com,cakedecorist.com,findnicknames.com,thepointcalculator.com,singlemothers.us,itsolutionstuff.com,ilovedogscute.com,theproductiveengineer.net,fedsdatacenter.com,studybreaks.com,experthomereport.com,notesfromtheporch.com,shtfpreparedness.com,offgridpermaculture.com,wheelssize.com,greenlivingtribe.com,crosswordeg.com,oursportscentral.com,divinedaolibrary.com,chemicalaid.com,sqlserverguides.com,dailythemedcrosswordanswers.net,lovecookingdaily.com,elderguru.com,nonphoneworkathome.com,france-hotel-guide.com,campergrid.com,sbxl.com,rqeeqa.com,ignisnatura.org,pedigreedatabase.com,dreamglossary.com,linuxtechi.com,diysolarshack.com,groundedlifetravel.com,cubsinsider.com,onlinepersonalitytests.org,saltwateraquariumblog.com,bornagainboating.com,thecoastnews.com,nerdbot.com,franchisesports.co.uk,howtoforge.com,perfectdogbreeds.com,healthtipsnow.net,boiteachansons.net,msfsaddons.com,lettersformats.com,wikiaccounting.com,dailycrochet.com,wordscapescheat.com,datasciencemadesimple.com,totalmotorcycle.com,costcoinsider.com,parkingaccess.com,charbelnemnom.com,refrigeratorsreviewed.com,badgerandblade.com,marrieddivorce.com,emprendiendohistorias.com,tracfoneusermanual.net,tckpublishing.com,silverlininglessons.com,asvabpracticetestonline.com,wordstodescribe.com,lyrical-nonsense.com,fantasynerds.com,animalfate.com,lettersinenglish.com,sportfishingbuddy.com,overseasattractions.com,egriz.com,nilsenreport.ca,askthebuilder.com,diydoctor.org.uk,favoredleather.com,autoservicecosts.com,whatispiping.com,scuffedentertainment.com,35mmc.com,parlerdamour.fr,365thingsinhouston.com,centraldesermones.com,aboutchromebooks.com,topwoodworkingadvice.com,spelling-words-well.com,millo.co,thecleverbusiness.com,yourdailyglobe.com,biznewske.com,analyzemath.com,aa1car.com,nutsandboltsspeedtraining.com,yummyindiankitchen.com,codewithmukesh.com,triviawell.com,miracomosehace.com,technorms.com,r-graph-gallery.com,celebritydig.com,scamcharge.com,accountinguide.com,textfixer.com,materialsix.com,roofonline.com,birthdaywishes.expert,goldpriceoz.com,informatique-mania.com,somosmamas.com.ar,rentalhousingdeals.com,acessaber.com.br,squarefootagearea.com,altcodeunicode.com,exrx.net,journeydogtraining.com,pdfwordconvert.com,dataoverhaulers.com,thedisinsider.com,commercialdriverhq.com,fanstranslations.com,havredailynews.com,yardblogger.com,houseplanshelper.com,environmental-conscience.com,hacktheminotaur.com,indifferentlanguages.com,artprompts.org,myenglishteacher.eu,my-package-tracking.com,countertopspecialty.com,it-connect.fr,ourfitpets.com,brighthubeducation.com,defkey.com,flgardening.com,happybirthdaymsg.com,dicasinteligentes.com.br,tutorialgateway.org,weeklyhoroscope.com,escapefan.com,icebreakers.ws,toutoupourlechien.com,happyvagabonds.com,archisoup.com,aginghealthytoday.com,charactercounter.com,esportsearnings.com,freejobalert.com,homeguideguru.com,thecabindiary.com,streetsmartkitchen.com,vitux.com,officetuts.net,feelingvegas.com,thepythoncode.com,electrical4u.net,codycrossanswers.org,salaryaftertax.com,shuttlefare.com,practicequiz.com,orchideria.com,truthorfiction.com,softwaretestingmaterial.com,wordscapeshelp.com,kifarunix.com,labex-cortex.com,bestcateringprices.com,knifeup.com,h-supertools.com,alexusrenee.com,sportfishingbc.com,windows101tricks.com,zwivel.com,mamapedia.com,asacannes.com,classicrockhistory.com,williamsonhomepage.com,rodeosusa.com,houstoncasemanagers.com,bobcutmag.com,wow4u.com,cookitonce.com,dazepuzzle.com,kylonpowell.com,carserviceland.com,crispyfoodidea.com,phonedealstoday.com,mma.uno,keepinspiring.me,mobileinternist.com,unscramblewords.com,frugalhotspot.com,romapress.net,livetheglory.com,chicitysports.com,fishkeepingworld.com,walkthroughs.net,cultaholic.com,pathofex.com,teamcolorcodes.com,metalwani.com,bulbagarden.net,osrsguide.com,tulamama.com,hometips.com,breatheheavy.com,wordunscrambler.com,racetothewh.com,oneminuteenglish.org,marsja.se,decortweaks.com,jaynestars.com,allclash.com,wordcrazeanswers.com,siccode.com,madbackyard.com,greekmythology.com,thepersonage.com,blogofdoom.com,tarotforum.net,codycrossanswers.com,momdot.com,theilluminerdi.com,codycrossanswers.net,thewebdev.info,raspberrytips.com,thelawnreview.com,excelhow.net,roadtrailrun.com,thepricer.org,games4esl.com,dailyactor.com,livinginacontainer.com,quizerry.com,michaelsaves.com,phonesdata.com,nurseteachings.com,verseoftheday.com,sweepsadvantage.com,aiptcomics.com,ginx.tv,futbolenvivomexico.com,grandtournation.com,names.org,infos-geek.com,notinerd.com,auralcrave.com,ifly.com,liverampup.com,dantri.com.vn,videocardz.com,clutchfans.net,mamanly.com,futbolenvivochile.com,tarotalmabarrios.com,goodhomeautomation.com,exploreclarion.com,rpgbot.net,guiasteam.com,rccgonline.org,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,singletrackworld.com,clickspeedtest.com,goodcalculators.com,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,gardenista.com,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,personality-database.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,remodelista.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.ezoic-ad ++infos-geek.com,notinerd.com,auralcrave.com,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,uscollegeinternational.com,scitechdaily.com,collegefactual.com,gardenista.com,tractorbynet.com,10fastfingers.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,remodelista.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#span[id^="ezoic-pub-ad-placeholder-"] ++nutrition-charts.com,coloringpagesonly.com,sunrise-sunset.org,whatnowatlanta.com,comicbookrealm.com,online-python.com,homesteadsurvivalsite.com,luciding.com,motivationandlove.com,logosbynick.com,titlecaseconverter.com,tabletopjoab.com,dailykillersudoku.com,qualitydogresources.com,tiremeetsroad.com,itnwwe.com,apnatoronto.com,localpuppybreeders.com,instrumentationtools.com,learncpp.com,wikibioworth.com,programmingr.com,generatormix.com,chipandco.com,colorcodes.io,myotakuworld.com,beatlesbible.com,cakedecorist.com,findnicknames.com,thepointcalculator.com,singlemothers.us,itsolutionstuff.com,ilovedogscute.com,theproductiveengineer.net,fedsdatacenter.com,studybreaks.com,experthomereport.com,notesfromtheporch.com,shtfpreparedness.com,offgridpermaculture.com,wheelssize.com,greenlivingtribe.com,crosswordeg.com,oursportscentral.com,divinedaolibrary.com,chemicalaid.com,sqlserverguides.com,dailythemedcrosswordanswers.net,lovecookingdaily.com,elderguru.com,nonphoneworkathome.com,france-hotel-guide.com,campergrid.com,sbxl.com,rqeeqa.com,ignisnatura.org,pedigreedatabase.com,dreamglossary.com,linuxtechi.com,diysolarshack.com,groundedlifetravel.com,cubsinsider.com,onlinepersonalitytests.org,saltwateraquariumblog.com,bornagainboating.com,thecoastnews.com,nerdbot.com,franchisesports.co.uk,howtoforge.com,perfectdogbreeds.com,healthtipsnow.net,boiteachansons.net,msfsaddons.com,lettersformats.com,wikiaccounting.com,dailycrochet.com,wordscapescheat.com,datasciencemadesimple.com,totalmotorcycle.com,costcoinsider.com,parkingaccess.com,charbelnemnom.com,refrigeratorsreviewed.com,badgerandblade.com,marrieddivorce.com,emprendiendohistorias.com,tracfoneusermanual.net,tckpublishing.com,silverlininglessons.com,asvabpracticetestonline.com,wordstodescribe.com,lyrical-nonsense.com,fantasynerds.com,animalfate.com,lettersinenglish.com,sportfishingbuddy.com,overseasattractions.com,egriz.com,nilsenreport.ca,askthebuilder.com,diydoctor.org.uk,favoredleather.com,autoservicecosts.com,whatispiping.com,scuffedentertainment.com,35mmc.com,parlerdamour.fr,365thingsinhouston.com,centraldesermones.com,aboutchromebooks.com,topwoodworkingadvice.com,spelling-words-well.com,millo.co,thecleverbusiness.com,yourdailyglobe.com,biznewske.com,analyzemath.com,aa1car.com,nutsandboltsspeedtraining.com,yummyindiankitchen.com,codewithmukesh.com,triviawell.com,miracomosehace.com,technorms.com,r-graph-gallery.com,celebritydig.com,scamcharge.com,accountinguide.com,textfixer.com,materialsix.com,roofonline.com,birthdaywishes.expert,goldpriceoz.com,informatique-mania.com,somosmamas.com.ar,rentalhousingdeals.com,acessaber.com.br,squarefootagearea.com,altcodeunicode.com,exrx.net,journeydogtraining.com,pdfwordconvert.com,dataoverhaulers.com,thedisinsider.com,commercialdriverhq.com,fanstranslations.com,havredailynews.com,yardblogger.com,houseplanshelper.com,environmental-conscience.com,hacktheminotaur.com,indifferentlanguages.com,artprompts.org,myenglishteacher.eu,my-package-tracking.com,countertopspecialty.com,it-connect.fr,ourfitpets.com,brighthubeducation.com,defkey.com,flgardening.com,happybirthdaymsg.com,dicasinteligentes.com.br,tutorialgateway.org,weeklyhoroscope.com,escapefan.com,icebreakers.ws,toutoupourlechien.com,happyvagabonds.com,archisoup.com,aginghealthytoday.com,charactercounter.com,esportsearnings.com,freejobalert.com,homeguideguru.com,thecabindiary.com,streetsmartkitchen.com,vitux.com,officetuts.net,feelingvegas.com,thepythoncode.com,electrical4u.net,codycrossanswers.org,salaryaftertax.com,shuttlefare.com,practicequiz.com,orchideria.com,truthorfiction.com,softwaretestingmaterial.com,wordscapeshelp.com,kifarunix.com,labex-cortex.com,bestcateringprices.com,knifeup.com,h-supertools.com,alexusrenee.com,sportfishingbc.com,windows101tricks.com,zwivel.com,mamapedia.com,asacannes.com,classicrockhistory.com,williamsonhomepage.com,rodeosusa.com,houstoncasemanagers.com,bobcutmag.com,wow4u.com,cookitonce.com,dazepuzzle.com,kylonpowell.com,carserviceland.com,crispyfoodidea.com,phonedealstoday.com,mma.uno,keepinspiring.me,mobileinternist.com,unscramblewords.com,frugalhotspot.com,romapress.net,livetheglory.com,chicitysports.com,fishkeepingworld.com,walkthroughs.net,cultaholic.com,pathofex.com,teamcolorcodes.com,metalwani.com,bulbagarden.net,osrsguide.com,tulamama.com,hometips.com,breatheheavy.com,wordunscrambler.com,racetothewh.com,oneminuteenglish.org,marsja.se,decortweaks.com,jaynestars.com,allclash.com,wordcrazeanswers.com,siccode.com,madbackyard.com,greekmythology.com,thepersonage.com,blogofdoom.com,tarotforum.net,codycrossanswers.com,momdot.com,theilluminerdi.com,codycrossanswers.net,thewebdev.info,raspberrytips.com,thelawnreview.com,excelhow.net,roadtrailrun.com,thepricer.org,games4esl.com,dailyactor.com,livinginacontainer.com,quizerry.com,michaelsaves.com,nurseteachings.com,verseoftheday.com,sweepsadvantage.com,aiptcomics.com,ginx.tv,futbolenvivomexico.com,grandtournation.com,infos-geek.com,notinerd.com,auralcrave.com,ifly.com,liverampup.com,dantri.com.vn,videocardz.com,clutchfans.net,mamanly.com,futbolenvivochile.com,tarotalmabarrios.com,goodhomeautomation.com,exploreclarion.com,guiasteam.com,rccgonline.org,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.adtester-container ++infos-geek.com,notinerd.com,auralcrave.com,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,collegefactual.com,tractorbynet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.ezo_ad ++nutrition-charts.com,coloringpagesonly.com,sunrise-sunset.org,whatnowatlanta.com,comicbookrealm.com,online-python.com,homesteadsurvivalsite.com,luciding.com,motivationandlove.com,logosbynick.com,titlecaseconverter.com,tabletopjoab.com,dailykillersudoku.com,qualitydogresources.com,tiremeetsroad.com,itnwwe.com,apnatoronto.com,localpuppybreeders.com,instrumentationtools.com,learncpp.com,wikibioworth.com,programmingr.com,generatormix.com,chipandco.com,colorcodes.io,myotakuworld.com,beatlesbible.com,cakedecorist.com,findnicknames.com,thepointcalculator.com,singlemothers.us,itsolutionstuff.com,ilovedogscute.com,theproductiveengineer.net,fedsdatacenter.com,studybreaks.com,experthomereport.com,notesfromtheporch.com,shtfpreparedness.com,offgridpermaculture.com,wheelssize.com,greenlivingtribe.com,crosswordeg.com,oursportscentral.com,divinedaolibrary.com,chemicalaid.com,sqlserverguides.com,dailythemedcrosswordanswers.net,lovecookingdaily.com,elderguru.com,nonphoneworkathome.com,france-hotel-guide.com,campergrid.com,sbxl.com,rqeeqa.com,ignisnatura.org,pedigreedatabase.com,dreamglossary.com,linuxtechi.com,diysolarshack.com,groundedlifetravel.com,cubsinsider.com,onlinepersonalitytests.org,saltwateraquariumblog.com,bornagainboating.com,thecoastnews.com,nerdbot.com,franchisesports.co.uk,howtoforge.com,perfectdogbreeds.com,healthtipsnow.net,boiteachansons.net,msfsaddons.com,lettersformats.com,wikiaccounting.com,dailycrochet.com,wordscapescheat.com,datasciencemadesimple.com,totalmotorcycle.com,costcoinsider.com,parkingaccess.com,charbelnemnom.com,refrigeratorsreviewed.com,badgerandblade.com,marrieddivorce.com,emprendiendohistorias.com,tracfoneusermanual.net,tckpublishing.com,silverlininglessons.com,asvabpracticetestonline.com,wordstodescribe.com,lyrical-nonsense.com,fantasynerds.com,animalfate.com,lettersinenglish.com,sportfishingbuddy.com,overseasattractions.com,egriz.com,nilsenreport.ca,askthebuilder.com,diydoctor.org.uk,favoredleather.com,autoservicecosts.com,whatispiping.com,scuffedentertainment.com,35mmc.com,parlerdamour.fr,365thingsinhouston.com,centraldesermones.com,aboutchromebooks.com,topwoodworkingadvice.com,spelling-words-well.com,millo.co,thecleverbusiness.com,yourdailyglobe.com,biznewske.com,analyzemath.com,aa1car.com,nutsandboltsspeedtraining.com,yummyindiankitchen.com,codewithmukesh.com,triviawell.com,miracomosehace.com,technorms.com,r-graph-gallery.com,celebritydig.com,scamcharge.com,accountinguide.com,textfixer.com,materialsix.com,roofonline.com,birthdaywishes.expert,goldpriceoz.com,informatique-mania.com,somosmamas.com.ar,rentalhousingdeals.com,acessaber.com.br,squarefootagearea.com,altcodeunicode.com,exrx.net,journeydogtraining.com,pdfwordconvert.com,dataoverhaulers.com,thedisinsider.com,commercialdriverhq.com,fanstranslations.com,havredailynews.com,yardblogger.com,houseplanshelper.com,environmental-conscience.com,hacktheminotaur.com,indifferentlanguages.com,artprompts.org,myenglishteacher.eu,my-package-tracking.com,countertopspecialty.com,it-connect.fr,ourfitpets.com,brighthubeducation.com,defkey.com,flgardening.com,happybirthdaymsg.com,dicasinteligentes.com.br,tutorialgateway.org,weeklyhoroscope.com,escapefan.com,icebreakers.ws,toutoupourlechien.com,happyvagabonds.com,archisoup.com,aginghealthytoday.com,charactercounter.com,esportsearnings.com,freejobalert.com,homeguideguru.com,thecabindiary.com,streetsmartkitchen.com,vitux.com,officetuts.net,feelingvegas.com,thepythoncode.com,electrical4u.net,codycrossanswers.org,salaryaftertax.com,shuttlefare.com,practicequiz.com,orchideria.com,truthorfiction.com,softwaretestingmaterial.com,wordscapeshelp.com,kifarunix.com,labex-cortex.com,bestcateringprices.com,knifeup.com,h-supertools.com,alexusrenee.com,sportfishingbc.com,windows101tricks.com,zwivel.com,mamapedia.com,asacannes.com,classicrockhistory.com,williamsonhomepage.com,rodeosusa.com,houstoncasemanagers.com,bobcutmag.com,wow4u.com,cookitonce.com,dazepuzzle.com,kylonpowell.com,carserviceland.com,crispyfoodidea.com,phonedealstoday.com,mma.uno,keepinspiring.me,mobileinternist.com,unscramblewords.com,frugalhotspot.com,romapress.net,livetheglory.com,chicitysports.com,fishkeepingworld.com,walkthroughs.net,cultaholic.com,pathofex.com,teamcolorcodes.com,metalwani.com,bulbagarden.net,osrsguide.com,tulamama.com,hometips.com,breatheheavy.com,wordunscrambler.com,racetothewh.com,oneminuteenglish.org,marsja.se,decortweaks.com,jaynestars.com,allclash.com,wordcrazeanswers.com,siccode.com,madbackyard.com,greekmythology.com,thepersonage.com,blogofdoom.com,tarotforum.net,codycrossanswers.com,momdot.com,theilluminerdi.com,codycrossanswers.net,thewebdev.info,raspberrytips.com,thelawnreview.com,excelhow.net,roadtrailrun.com,thepricer.org,games4esl.com,dailyactor.com,livinginacontainer.com,quizerry.com,michaelsaves.com,nurseteachings.com,verseoftheday.com,sweepsadvantage.com,aiptcomics.com,ginx.tv,futbolenvivomexico.com,grandtournation.com,infos-geek.com,notinerd.com,auralcrave.com,ifly.com,liverampup.com,dantri.com.vn,videocardz.com,clutchfans.net,mamanly.com,futbolenvivochile.com,tarotalmabarrios.com,goodhomeautomation.com,exploreclarion.com,guiasteam.com,rccgonline.org,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,affordablehousingonline.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,hyggehous.com,camping-experten.de,collegefactual.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,drivingtest.ca,diyphotography.net,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,corporateofficeheadquarters.org,10fastfingers.com,personality-database.com,weather-us.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#[data-ez-name] ++nutrition-charts.com,coloringpagesonly.com,sunrise-sunset.org,whatnowatlanta.com,comicbookrealm.com,online-python.com,homesteadsurvivalsite.com,luciding.com,motivationandlove.com,logosbynick.com,titlecaseconverter.com,tabletopjoab.com,dailykillersudoku.com,qualitydogresources.com,tiremeetsroad.com,itnwwe.com,apnatoronto.com,localpuppybreeders.com,instrumentationtools.com,learncpp.com,wikibioworth.com,programmingr.com,generatormix.com,chipandco.com,colorcodes.io,myotakuworld.com,beatlesbible.com,cakedecorist.com,findnicknames.com,thepointcalculator.com,singlemothers.us,itsolutionstuff.com,ilovedogscute.com,theproductiveengineer.net,fedsdatacenter.com,studybreaks.com,experthomereport.com,notesfromtheporch.com,shtfpreparedness.com,offgridpermaculture.com,wheelssize.com,greenlivingtribe.com,crosswordeg.com,oursportscentral.com,divinedaolibrary.com,chemicalaid.com,sqlserverguides.com,dailythemedcrosswordanswers.net,lovecookingdaily.com,elderguru.com,nonphoneworkathome.com,france-hotel-guide.com,campergrid.com,sbxl.com,rqeeqa.com,ignisnatura.org,pedigreedatabase.com,dreamglossary.com,linuxtechi.com,diysolarshack.com,groundedlifetravel.com,cubsinsider.com,onlinepersonalitytests.org,saltwateraquariumblog.com,bornagainboating.com,thecoastnews.com,nerdbot.com,franchisesports.co.uk,howtoforge.com,perfectdogbreeds.com,healthtipsnow.net,boiteachansons.net,msfsaddons.com,lettersformats.com,wikiaccounting.com,dailycrochet.com,wordscapescheat.com,datasciencemadesimple.com,totalmotorcycle.com,costcoinsider.com,parkingaccess.com,charbelnemnom.com,refrigeratorsreviewed.com,badgerandblade.com,marrieddivorce.com,emprendiendohistorias.com,tracfoneusermanual.net,tckpublishing.com,silverlininglessons.com,asvabpracticetestonline.com,wordstodescribe.com,lyrical-nonsense.com,fantasynerds.com,animalfate.com,lettersinenglish.com,sportfishingbuddy.com,overseasattractions.com,egriz.com,nilsenreport.ca,askthebuilder.com,diydoctor.org.uk,favoredleather.com,autoservicecosts.com,whatispiping.com,scuffedentertainment.com,35mmc.com,parlerdamour.fr,365thingsinhouston.com,centraldesermones.com,aboutchromebooks.com,topwoodworkingadvice.com,spelling-words-well.com,millo.co,thecleverbusiness.com,yourdailyglobe.com,biznewske.com,analyzemath.com,aa1car.com,nutsandboltsspeedtraining.com,yummyindiankitchen.com,codewithmukesh.com,triviawell.com,miracomosehace.com,technorms.com,r-graph-gallery.com,celebritydig.com,scamcharge.com,accountinguide.com,textfixer.com,materialsix.com,roofonline.com,birthdaywishes.expert,goldpriceoz.com,informatique-mania.com,somosmamas.com.ar,rentalhousingdeals.com,acessaber.com.br,squarefootagearea.com,altcodeunicode.com,exrx.net,journeydogtraining.com,pdfwordconvert.com,dataoverhaulers.com,thedisinsider.com,commercialdriverhq.com,fanstranslations.com,havredailynews.com,yardblogger.com,houseplanshelper.com,environmental-conscience.com,hacktheminotaur.com,indifferentlanguages.com,artprompts.org,myenglishteacher.eu,my-package-tracking.com,countertopspecialty.com,it-connect.fr,ourfitpets.com,brighthubeducation.com,defkey.com,flgardening.com,happybirthdaymsg.com,dicasinteligentes.com.br,tutorialgateway.org,weeklyhoroscope.com,escapefan.com,icebreakers.ws,toutoupourlechien.com,happyvagabonds.com,archisoup.com,aginghealthytoday.com,charactercounter.com,esportsearnings.com,freejobalert.com,homeguideguru.com,thecabindiary.com,streetsmartkitchen.com,vitux.com,officetuts.net,feelingvegas.com,thepythoncode.com,electrical4u.net,codycrossanswers.org,salaryaftertax.com,shuttlefare.com,practicequiz.com,orchideria.com,truthorfiction.com,softwaretestingmaterial.com,wordscapeshelp.com,kifarunix.com,labex-cortex.com,bestcateringprices.com,knifeup.com,h-supertools.com,alexusrenee.com,sportfishingbc.com,windows101tricks.com,zwivel.com,mamapedia.com,asacannes.com,classicrockhistory.com,williamsonhomepage.com,rodeosusa.com,houstoncasemanagers.com,bobcutmag.com,wow4u.com,cookitonce.com,dazepuzzle.com,kylonpowell.com,carserviceland.com,crispyfoodidea.com,phonedealstoday.com,mma.uno,keepinspiring.me,mobileinternist.com,unscramblewords.com,frugalhotspot.com,romapress.net,livetheglory.com,chicitysports.com,fishkeepingworld.com,walkthroughs.net,cultaholic.com,pathofex.com,teamcolorcodes.com,metalwani.com,bulbagarden.net,osrsguide.com,tulamama.com,hometips.com,breatheheavy.com,wordunscrambler.com,racetothewh.com,oneminuteenglish.org,marsja.se,decortweaks.com,jaynestars.com,allclash.com,wordcrazeanswers.com,siccode.com,madbackyard.com,greekmythology.com,thepersonage.com,blogofdoom.com,tarotforum.net,codycrossanswers.com,momdot.com,theilluminerdi.com,codycrossanswers.net,thewebdev.info,raspberrytips.com,thelawnreview.com,excelhow.net,roadtrailrun.com,thepricer.org,games4esl.com,dailyactor.com,livinginacontainer.com,quizerry.com,michaelsaves.com,nurseteachings.com,verseoftheday.com,sweepsadvantage.com,aiptcomics.com,smallbiztrends.com,ginx.tv,futbolenvivomexico.com,grandtournation.com,infos-geek.com,notinerd.com,auralcrave.com,ifly.com,liverampup.com,dantri.com.vn,videocardz.com,collegefactual.com,clutchfans.net,mamanly.com,futbolenvivochile.com,tarotalmabarrios.com,goodhomeautomation.com,exploreclarion.com,guiasteam.com,rccgonline.org,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,livecharts.co.uk,crosswordsolver.org,recyclingcenternear.me,decorhomeideas.com,decorhomeideas.com,stattrek.com,nursestudy.net,grammarhow.com,californiabeaches.com,housingapartments.org,steelernation.com,ultraboardgames.com,everythingreptiles.com,myswissalps.com,h1bdata.info,thecalculatorsite.com,programcreek.com,homeinspectioninsider.com,iplocation.net,steelernation.com,reve-islam.com,pngtosvg.com,phrases.org.uk,areavibes.com,detroitsportsnation.com,motorverso.com,victoriamgclub.com,miroir-mag.fr,removeandreplace.com,mapleleafshotstove.com,bigblueinteractive.com,7littlewordsanswers.com,uscollegeinternational.com,scitechdaily.com,dodgersnation.com,cultofmac.com,mjsbigblog.com,crosswordbuzz.com,aconsciousrethink.com,projectpractical.com,chromeunboxed.com,personality-database.com,guidemusulman.com,diyphotography.net,themag.co.uk,hollywoodmask.com,scrabblecheat.com,inmate-lookup.org,tractorbynet.com,fedsmith.com,scholarship-positions.com,text-compare.com,10fastfingers.com,dailythemedcrosswordanswers.com,gadgetstouse.com,hotexamples.com,lifewithjanet.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,singletrackworld.com,phonesdata.com,itexamanswers.net,names.org,hometownlocator.com,clickspeedtest.com,rpgbot.net,sportcoaching.co.nz,klinikbewertungen.de,goodcalculators.com,fangraphs.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,softgenius.co,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com,manuals.plus,simplypsychology.org,gm-trucks.com,barnfinds.com,linuxize.com,thehockeywriters.com#@#.ezoic-ad-adaptive ++infos-geek.com,notinerd.com,auralcrave.com,ifly.com,dantri.com.vn,smartandroid.fr,skinnyandtasty.com,mots-croises.ch,tractorbynet.com,personality-database.com,childcarecenter.us,democraticunderground.com,paraphrasing-tool.com,govsalaries.com,ineskohl.info,uscho.com,ipaddress.com,perfect-english-grammar.com,npinumberlookup.org,realmenuprices.com,tigernet.com,akinator.com,swingcompleto.com,imagecolorpicker.com,live-tennis.eu,fifarosters.com,taxifarefinder.com,latimescrosswordanswers.com,scamadviser.com,allhiphop.com,socialsecurityofficenear.me,festivalnet.com,grabjobs.co,onlinedoctranslator.com,askanydifference.com,gardenloversclub.com,delftstack.com,youpdf.com,jailexchange.com,thetrendspotter.net,15track.com#@#div[id^="ezoic-pub-ad-"] +softgenius.co#@#.e-ad +thehockeywriters.com,play2048.co,broadwayworld.com,simplypsychology.org,smallbiztrends.com,gm-trucks.com,thewindowsclub.com,barnfinds.com,linuxize.com,thecalculatorsite.com#@#.ads-top +timeanddate.com#@##ad300 @@ -74622,7 +80041,7 @@ new file mode 100644 +legacy.com#@##display-right-inview-1 +legacy.com#@##display-right-inview-2 +infofamouspeople.com,mapsus.net#@#.adsbypubpower -+techadvisor.fr,techadvisor.com#@#.sidebar__module--ad ++pcworld.es,macworld.es,webwereld.nl,techadvisor.fr,techadvisor.com#@#.sidebar__module--ad +techadvisor.com#@#.leaderBoardHolder +tractorbynet.com#@#.ad_global_header +gardenista.com#@#.grid-ad @@ -74632,7 +80051,7 @@ new file mode 100644 +drivingtest.ca#@##quads-ad1 +drivingtest.ca#@#.quads-ad3 +drivingtest.ca#@##quads-ad3 -+drivingtest.ca#@#.quads-location ++smallbiztrends.com,drivingtest.ca#@#.quads-location +time.com#@#.article-small-sidebar > .sticky-container:-abp-has(div[id^="ad-"]) +musescore.com#@##ad_cs_12219747_300_250 +musescore.com#@##ad_cs_12219747_728_90 @@ -74664,7 +80083,8 @@ new file mode 100644 +jpost.com#@#.divConnatix +jpost.com#@#.line-left-side-before-and-after-container +jpost.com#@#.line-one-row-before-and-after-container -+mail1.libero.it,mail1.virgilio.it#@##adv_center ++jpost.com#@#.right-side-banner ++mail1.libero.it,virgilio.it#@##adv_center +delfi.lt#@#.ad-marker +democraticunderground.com#@#.largeleaderboard-container +abovethelaw.com#@#.ad--billboard @@ -74676,6 +80096,9 @@ new file mode 100644 +hindustantimes.com#@#.adHeight270 +hindustantimes.com#@#.desktopAd +hindustantimes.com#@#.right-top-ad ++hindustantimes.com#@##adslot1 ++hindustantimes.com#@##adslot2 ++hindustantimes.com#@##adslot3 +hindustantimes.com#@##adslot4 +hindustantimes.com#@##adslot5 +hindustantimes.com#@##adslot6 @@ -74684,11 +80107,46 @@ new file mode 100644 +timesofindia.indiatimes.com#@#.paisa-wrapper +timesofindia.indiatimes.com#@#.adplaceholder +timesofindia.indiatimes.com#@#div[data-aff-type] -+sapere.virgilio.it#@##admpufoot -+sapere.virgilio.it#@##admpudyn1 ++quifinanza.it,siviaggia.it,dilei.it,supereva.it,virgilio.it#@##admpufoot ++quifinanza.it,siviaggia.it,buonissimo.it,dilei.it,libero.it,virgilio.it#@##admpudyn1 ++quifinanza.it,siviaggia.it,buonissimo.it,dilei.it,libero.it,virgilio.it#@##admpudyn2 ++quifinanza.it,siviaggia.it,dilei.it,buonissimo.it,virgilio.it#@##admpudyn3 ++siviaggia.it,dilei.it,virgilio.it#@##admpudyn4 ++virgilio.it#@##admasthead ++virgilio.it#@##admputop2 ++virgilio.it#@##adleaderboard ++dilei.it,virgilio.it#@##admpumiddle2 +live-tennis.eu#@#.copyright +wantedinrome.com#@#.ad_center +wantedinrome.co#@#.adBlock ++minecraftlist.org#@#.stickywrapper ++minecraftlist.org#@#.sidebarad ++minecraftlist.org#@#.ad-border ++il.8to18.com#@#.ad-unit-wrapper ++il.8to18.com#@#.ad-top-leaderboard ++il.8to18.com#@#.ad-rail ++bostonglobe.com#@##sticky_container.width_full ++fortune.com#@##Homepage-InStream3 ++fortune.com#@##Homepage-InStream2 ++fortune.com#@##Homepage-InStream1 ++fortune.com#@##Homepage-InStream0 ++fortune.com#@##RightRailFlex_Articles0 ++fortune.com#@#div[class*="Ad-"] ++fortune.com#@##Leaderboard0 ++fortune.com#@#.homepage:-abp-has(> div[id^="InStream"]) ++larazon.es#@#.ad-parent-class ++20minutos.es#@#.axds ++libero.it#@#.lancio_promo ++quifinanza.it,siviaggia.it,dilei.it#@#.widget_promo_box_widget ++libero.it#@#.mpu-left-bk ++libero.it#@##adtop ++footballtransfertavern.com#@##snack_ldb ++sheffieldforum.co.uk#@#div[data-role="sidebarAd"] ++apkcombo.com#@#[data-m-ad-id] ++apkcombo.com#@#[data-d-ad-id] ++nichegamer.com#@#.menu-ad ++ezgif.com#@#div[style$="min-height:90px;display:block"] ++courttv.com#@#.ad-space +! Additional detection +musescore.com##.pub_728x90 +musescore.com##.pub_300x250m @@ -74698,6 +80156,7 @@ new file mode 100644 +searchenginejournal.com###nng +searchenginejournal.com###loop_parent +dailyfaceoff.com,sindonews.com,kickoff.com,mediaite.com,the-star.co.ke,to10.gr,rogerebert.com,diariolibre.com,chunkbase.com,vanguardngr.com,isaechia.it,canoncitydailyrecord.com,deals.iheartcvs.com,eptrail.com,wiscassetnewspaper.com,journal-advocate.com,blogs.mercurynews.com,coloradodaily.com,siliconvalley.com,broomfieldenterprise.com,coloradohometownweekly.com,burlington-record.com,diariodocentrodomundo.com.br,songlyrics.com,vringe.com,webtribune.rs,listverse.com,jamaica-star.com,411mania.com,pokellector.com,jornada.com.mx,insideevs.com,gossip.it,bmwblog.com,idownloadblog.com,motor1.com,discordbotlist.com,officialcharts.com,rnz.de,jamaicaobserver.com,dlisted.com,petapixel.com,erienewsnow.com,nodq.com,wweek.com,psu.com,hiphoplately.com,theplaylist.net,timesofmalta.com,apkmirror.com,thefootballbrainiacs.com,ringtv.com,fedsmith.com,penbaypilot.com,kprofiles.com,mopo.de,nikonrumors.com,cracknewz.com,leicarumors.com,americanlookout.com,photorumors.com,pentaxrumors.com,wrestlinginc.com,lingojam.com,pann-choa.blogspot.com,signalscv.com,theprp.com,premiumtimesng.com,fifarosters.com,k-gen.fr,naibuzz.com,phonemore.com,hawaiitribune-herald.com,asianjunkie.com,gerio.cat,frequencycheck.com,ffxiv.gamerescape.com,steelersdepot.com###post-list .advertisement ++macworld.com###gpt-leaderboard-1 +! FT-1489 +@@||forbes.com^$generichide +forbes.com##.fbs-ad--mobile-medianet-wrapper @@ -74812,34 +80271,35 @@ new file mode 100644 +@@||ssl-images-amazon.com/images/*/browser-scripts/DA-$script,domain=amazon.cn|amazon.co.jp|amazon.in +@@||ssl-images-amazon.com^*/dacx/sf/$subdocument,domain=amazon.co.uk|amazon.com|amazon.de +@@||ssl-images-amazon.com^*/dacx/sf/sf-$subdocument,domain=amazon.co.jp|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn -+@@||ssl-images-amazon.com^*/sf/DAsf-$script,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn -+@@||ssl-images-amazon.com^*/ape/sf/desktop/DAsf-$script,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@/gp/ad-feedback/lazyLoad/handler/feedback-link-handler.html?$script,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-form-handler.html$domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-link-handler.html$domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||images-*.ssl-images-amazon.com/images/G/*/productAds/ad_feedback_icon_$image,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-sp-form-handler.html$domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||images-*.ssl-images-amazon.com/images/G/*/ad-feedback/info_icon_*$image,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||m.media-amazon.com/images^$image,domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+||m.media-amazon.com/images/G/*/csm/showads.*.js$domain=amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||images-*.ssl-images-amazon.com/images^$domain=amazon.sg|amazon.pl|amazon.eg ++@@||ssl-images-amazon.com^*/sf/DAsf-$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn ++@@||ssl-images-amazon.com^*/ape/sf/desktop/DAsf-$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@/gp/ad-feedback/lazyLoad/handler/feedback-link-handler.html?$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-form-handler.html$domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-link-handler.html$domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||images-*.ssl-images-amazon.com/images/G/*/productAds/ad_feedback_icon_$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/gp/aq-feedback/lazyLoad/handler/af-sp-form-handler.html$domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||images-*.ssl-images-amazon.com/images/G/*/ad-feedback/info_icon_*$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||m.media-amazon.com/images^$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++||m.media-amazon.com/images/G/*/csm/showads.*.js$domain=amazon.sg|amazon.pl|amazon.eg|amazon.co.jp|amazon.co.uk|amazon.com|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg +! -+@@||ssl-images-amazon.com^*/ape/sf/whitelisted/desktop/$subdocument,document,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||d1lxz4vuik53pc.cloudfront.net/*/inner.html$subdocument,document,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||d1lxz4vuik53pc.cloudfront.net/*/inner-host.min.js$domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||cloudfront.net/transcode/storyTeller/$media,domain=amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.mx|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/e/xsp/getAdj?*&slot=auto-$script,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/e/xsp/imp?$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/x/px/$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/s/iu3^$subdocument,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/bao-csm/forensics/a9-tq-forensics.min.js$script,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||ssl-images-amazon.com^*/ape/sf/whitelisted/desktop/$subdocument,document,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||d1lxz4vuik53pc.cloudfront.net/*/inner.html$subdocument,document,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||d1lxz4vuik53pc.cloudfront.net/*/inner-host.min.js$domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||cloudfront.net/transcode/storyTeller/$media,domain=amazon.sg|amazon.pl|amazon.eg|amazon.ae|amazon.ca|amazon.cn|amazon.co.jp|amazon.co.uk|amazon.com|amazon.com.au|amazon.com.mx|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/e/xsp/getAdj?*&slot=auto-$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/e/xsp/imp?$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/x/px/$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/s/iu3^$subdocument,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/bao-csm/forensics/a9-tq-forensics.min.js$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg +@@||amazon-adsystem.com/iu3$subdocument,third-party -+@@||amazon-adsystem.com/x/px/$xmlhttprequest,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||ssl-images-amazon.com/*/ape/la/desktop/ApeDLA-$script,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||m.media-amazon.com/images/*^ape_al=true^$script,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/e/xsp/imp?$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/x/px/?$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon.*/x/c/*$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg -+@@||amazon-adsystem.com/x/c/*$image,domain=amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/x/px/$xmlhttprequest,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||ssl-images-amazon.com/*/ape/la/desktop/ApeDLA-$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||m.media-amazon.com/images/*^ape_al=true^$script,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/e/xsp/imp?$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/x/px/?$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon.*/x/c/*$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg ++@@||amazon-adsystem.com/x/c/*$image,domain=amazon.sg|amazon.pl|amazon.eg|amazon.com|amazon.co.jp|amazon.co.uk|amazon.de|amazon.es|amazon.fr|amazon.in|amazon.it|amazon.ca|amazon.cn|amazon.com.mx|amazon.com.au|amazon.ae|amazon.sa|amazon.com.br|amazon.nl|amazon.sg +!:partner_token=Google +!:partner_id=1771032db7d723d7 +!:type=partner @@ -75754,6 +81214,7 @@ new file mode 100644 +!A55 +@@||szukaj.onet.pl^$elemhide +@@||google.com/uds/$script,subdocument,document,domain=szukaj.onet.pl ++@@||google.com/afs/ads/i/iframe.html$subdocument,domain=szukaj.onet.pl +@@||google.com/ads$domain=szukaj.onet.pl +!A56 +@@||interia.pl^$elemhide @@ -78419,6 +83880,70 @@ new file mode 100644 +@@||whatnextinfo.com^$elemhide,~third-party +@@||google.com/uds/$script,subdocument,document,domain=alldaycomforts.com|answersme.net|exploretoday.co|findquickly.net|givemeanswers.net|seekinfofast.com|whatnextinfo.com +@@||google.com/ads$domain=alldaycomforts.com|answersme.net|exploretoday.co|findquickly.net|givemeanswers.net|seekinfofast.com|whatnextinfo.com ++!A184 ++@@||thehealthfeed.com^$elemhide,~third-party ++@@||google.com/uds/$script,subdocument,document,domain=thehealthfeed.com ++@@||google.com/ads$domain=thehealthfeed.com ++!A185 ++@@||arknights.wikiru.jp^$elemhide,~third-party ++@@||azurlane.wikiru.jp^$elemhide,~third-party ++@@||bluearchive.wikiru.jp^$elemhide,~third-party ++@@||dealcado.com^$elemhide,~third-party ++@@||geniecourse.com^$elemhide,~third-party ++@@||gigazine.net^$elemhide,~third-party ++@@||hanihoh.com^$elemhide,~third-party ++@@||hello-work.info^$elemhide,~third-party ++@@||iscle.com^$elemhide,~third-party ++@@||ixagno.blog.fc2.com^$elemhide,~third-party ++@@||jetsodeals.com^$elemhide,~third-party ++@@||neutralx0.net^$elemhide,~third-party ++@@||recruit.net^$elemhide,~third-party ++@@||rentcado.com^$elemhide,~third-party ++@@||sushida.net^$elemhide,~third-party ++@@||typingerz.com^$elemhide,~third-party ++@@||typingx0.net^$elemhide,~third-party ++@@||web-jong.com^$elemhide,~third-party ++@@||google.com/uds/$script,subdocument,document,domain=arknights.wikiru.jp|azurlane.wikiru.jp|bluearchive.wikiru.jp|dealcado.com|geniecourse.com|gigazine.net|hanihoh.com|hello-work.info|iscle.com|ixagno.blog.fc2.com|jetsodeals.com|neutralx0.net|recruit.net|rentcado.com|sushida.net|typingerz.com|typingx0.net|web-jong.com ++@@||google.com/ads$domain=arknights.wikiru.jp|azurlane.wikiru.jp|bluearchive.wikiru.jp|dealcado.com|geniecourse.com|gigazine.net|hanihoh.com|hello-work.info|iscle.com|ixagno.blog.fc2.com|jetsodeals.com|neutralx0.net|recruit.net|rentcado.com|sushida.net|typingerz.com|typingx0.net|web-jong.com ++!A186 ++@@||alfalfalfa.com^$elemhide,~third-party ++@@||gpoint.co.jp^$elemhide,~third-party ++@@||itojisan.xyz^$elemhide,~third-party ++@@||kakomonn.com^$elemhide,~third-party ++@@||google.com/uds/$script,subdocument,document,domain=alfalfalfa.com|gpoint.co.jp|itojisan.xyz|kakomonn.com ++@@||google.com/ads$domain=alfalfalfa.com|gpoint.co.jp|itojisan.xyz|kakomonn.com ++!A187 ++@@||afs.googlesyndication.com^*adsense/search/*ads.js ++@@||afs.googlesyndication.com^*adsense/domains/*caf.js ++@@||afs.googlesyndication.com^*afs/ads? ++@@||afs.googlesyndication.com^*afs/ads?$elemhide ++@@||afs.googlesyndication.com^*afs/ads?*&client=pub-*&output=uds_ads_only ++@@||afs.googlesyndication.com^*afs/ads?*&client=pub-*&output=uds_ads_only$elemhide ++@@||afs.googlesyndication.com/afs/ads/i/iframe.html ++!A188 ++@@||2cpu.co.kr^$elemhide,~third-party ++@@||etoland.co.kr^$elemhide,~third-party ++@@||fnnews.com^$elemhide,~third-party ++@@||hlight.kr^$elemhide,~third-party ++@@||hobrothertv.tistory.com^$elemhide,~third-party ++@@||issuein.org^$elemhide,~third-party ++@@||ivancity.com^$elemhide,~third-party ++@@||m.edaily.co.kr^$elemhide,~third-party ++@@||m.wowtv.co.kr^$elemhide,~third-party ++@@||m.ygosu.com^$elemhide,~third-party ++@@||rgo4.com^$elemhide,~third-party ++@@||thebestlife.co.kr^$elemhide,~third-party ++@@||xportsnews.com^$elemhide,~third-party ++@@||ygosu.com^$elemhide,~third-party ++@@||google.com/uds/$script,subdocument,document,domain=2cpu.co.kr|etoland.co.kr|fnnews.com|hlight.kr|hobrothertv.tistory.com|issuein.org|ivancity.com|m.edaily.co.kr|m.wowtv.co.kr|m.ygosu.com|rgo4.com|thebestlife.co.kr|xportsnews.com|ygosu.com ++@@||google.com/ads$domain=2cpu.co.kr|etoland.co.kr|fnnews.com|hlight.kr|hobrothertv.tistory.com|issuein.org|ivancity.com|m.edaily.co.kr|m.wowtv.co.kr|m.ygosu.com|rgo4.com|thebestlife.co.kr|xportsnews.com|ygosu.com ++!A189 ++@@||akumencari.com^$elemhide,~third-party ++@@||onlaindabbyeon.com^$elemhide,~third-party ++@@||sorularcevaplar.net^$elemhide,~third-party ++@@||szukamznajduje.com^$elemhide,~third-party ++@@||google.com/uds/$script,subdocument,document,domain=akumencari.com|onlaindabbyeon.com|sorularcevaplar.net|szukamznajduje.com ++@@||google.com/ads$domain=akumencari.com|onlaindabbyeon.com|sorularcevaplar.net|szukamznajduje.com +!:partner_token=Verizon Media +!:partner_id=627d41fb6de11f94 +!:type=partner @@ -78883,21 +84408,21 @@ new file mode 100644 +!:type=partner +!:forum=https://adblockplus.org/forum/viewtopic.php?f=12&t=80476 +! WdH Media ads -+@@||tpc.googlesyndication.com/sodar^$script,subdocument,document,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||googleads.g.doubleclick.net/pagead/ads^$subdocument,document,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/pagead^*^show_ads_impl$xmlhttprequest,script,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/pagead/js^$xmlhttprequest,script,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/pagead/gen_204^$xmlhttprequest,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/pcs/activeview^$ping,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/pagead/sodar^$domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||*/px.gif?ch=1&rn=*$domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+||*/px.gif?ch=2&rn=*$domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||pagead2.googlesyndication.com/getconfig/sodar^$xmlhttprequest,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||adservice.google.de/adsid/integrator.js^$script,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+@@||quantcast.mgr.consensu.org/tcfv2/cmp2.js^$script,domain=manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar -+manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar#@#.adsbygoogle -+manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar#@#.native.ad -+manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar##ins.adsbygoogle-noablate:nth-of-type(2) ++@@||tpc.googlesyndication.com/sodar^$script,subdocument,document,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||googleads.g.doubleclick.net/pagead/ads^$subdocument,document,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/pagead^*^show_ads_impl$xmlhttprequest,script,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/pagead/js^$xmlhttprequest,script,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/pagead/gen_204^$xmlhttprequest,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/pcs/activeview^$ping,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/pagead/sodar^$domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||*/px.gif?ch=1&rn=*$domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++||*/px.gif?ch=2&rn=*$domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||pagead2.googlesyndication.com/getconfig/sodar^$xmlhttprequest,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||adservice.google.de/adsid/integrator.js^$script,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++@@||quantcast.mgr.consensu.org/tcfv2/cmp2.js^$script,domain=usermanuals.au|manual.nz|qollanmalar.uz|kullanimkilavuzu.com.tr|udhezimet.al|xn--80apbinjhb8d.xn--d1alf|xn--y9ah5af0a9a4a.xn--y9a3aq|xn--l2bmcno7cen.xn--i1b6b1a6a2e|manualpdf.co.il|manualpdf.ge|xn--80aweql3c59aea5q.xn--80ao21a|manual.hn|manual.cr|juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar ++usermanuals.au,manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar#@#.adsbygoogle ++usermanuals.au,manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar#@#.native.ad ++usermanuals.au,manual.nz,qollanmalar.uz,kullanimkilavuzu.com.tr,udhezimet.al,xn--80apbinjhb8d.xn--d1alf,xn--y9ah5af0a9a4a.xn--y9a3aq,xn--l2bmcno7cen.xn--i1b6b1a6a2e,manualpdf.co.il,manualpdf.ge,xn--80aweql3c59aea5q.xn--80ao21a,manual.hn,manual.cr,juhend.ee,uputstvo.rs,prirocnikpdf.si,xn--vg1b14l6tk.xn--3e0b707e,manual.bo,manualpdf.cl,manualpdf.in,manual.sv,rokasgramataspdf.lv,vadovaspdf.lt,manual.pa,manual.md,manuales.mx,manuales.com.co,manual.gt,manual.do,manual.ec,manual.pe,manual.com.ve,manualscat.com,manuals.ca,manualpdf.com.br,manua.ls,xn--80adah2aybmok5f.bg,xn----2lbcmca4cdtsdb1c.gr,xn--80aaexjatkpdggghih8b1a2yhv.com.ua,handleidi.ng,bedienungsanleitu.ng,manualsearcher.com,manualpdf.es,manualeduso.it,manualpdf.pt,manualspdf.ru,modesdemploi.fr,bruksanvisni.ng,instrukcjaobslugipdf.pl,manualdeinstructiuni.ro,bruksanvisningpdf.no,kayttooh.je,pdfmanualer.dk,petunjuk.co.id,manualypdf.cz,huang-dan.vn,prirucnici.hr,prirucky.sk,hasznalati-utasitasok.hu,manualpdf.us,manuals.co.uk,manual.ar##ins.adsbygoogle-noablate:nth-of-type(2) +! test +@@||g.doubleclick.net/pagead/html/*/zrt_lookup.html$subdocument,document,domain=juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar +@@||adservice.google.*/adsid/$domain=juhend.ee|uputstvo.rs|prirocnikpdf.si|xn--vg1b14l6tk.xn--3e0b707e|manual.bo|manualpdf.cl|manualpdf.in|manual.sv|rokasgramataspdf.lv|vadovaspdf.lt|manual.pa|manual.md|manuales.mx|manuales.com.co|manual.gt|manual.do|manual.ec|manual.pe|manual.com.ve|manualscat.com|manuals.ca|manualpdf.com.br|manua.ls|xn--80adah2aybmok5f.bg|xn----2lbcmca4cdtsdb1c.gr|xn--80aaexjatkpdggghih8b1a2yhv.com.ua|handleidi.ng|bedienungsanleitu.ng|manualsearcher.com|manualpdf.es|manualeduso.it|manualpdf.pt|manualspdf.ru|modesdemploi.fr|bruksanvisni.ng|instrukcjaobslugipdf.pl|manualdeinstructiuni.ro|bruksanvisningpdf.no|kayttooh.je|pdfmanualer.dk|petunjuk.co.id|manualypdf.cz|huang-dan.vn|prirucnici.hr|prirucky.sk|hasznalati-utasitasok.hu|manualpdf.us|manuals.co.uk|manual.ar @@ -78923,6 +84448,33 @@ new file mode 100644 +elperiodico.com#@#.following-ad-container +elperiodico.com#@#.following-ad +elperiodico.com#@#.adv-header ++!:partner_token=AdPushup ++!:partner_id=dbbec511a00713f9 ++!:type=partner ++!:forum=https://adblockplus.org/forum/viewtopic.php?f=12&t=47740 ++! AdRecover ads ++@@||delivery.adrecover.com^$document,subdocument,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||delivery.adrecover.com^*/adRecover.js$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||feedback.adrecover.com^$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||delivery.adrecover.com/allow.jpg$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++||delivery.adrecover.com/block.jpg$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||g.doubleclick.net/pcs/click?$popup,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||g.doubleclick.net/pcs/view?$image,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||g.doubleclick.net/gampad/ads?$script,xmlhttprequest,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||pagead2.googlesyndication.com/pagead/*/show_ads_impl$script,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js^$script,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||pagead2.googlesyndication.com/pagead/$script,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||g.doubleclick.net/pagead/ads^*client=ca-pub-8655001720710332^$subdocument,document,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||g.doubleclick.net/pagead/ads^*client=ca-pub-3191894791526522^$subdocument,document,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||googlesyndication.com/simgad/$image,domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||googlesyndication.com/pagead/js/*/client/ext/m_window_focus_non_hydra.js$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||googlesyndication.com/pagead/js/*/abg_lite.js$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++@@||adservice.google.*/adsid/integrator.js$domain=mobrog.com|javatpoint.com|tutorialspoint.com ++mobrog.com,javatpoint.com,tutorialspoint.com#@#._ap_adrecover_ad ++mobrog.com,javatpoint.com,tutorialspoint.com#@#.img_ad ++javatpoint.com#@##right ++mobrog.com,javatpoint.com#@#._ap_apex_ad ++tutorialspoint.com#@#.google-bottom-ads +!:partner_token=Taboola +!:partner_id=25a5b2915c0c608d +!:type=partner @@ -79087,6 +84639,7 @@ new file mode 100644 +@@||ads.yap.yahoo.com/*/getAds$script,domain=mail.aol.com +@@||ads.yap.yahoo.com/*/beacon.do$domain=aol.com +@@||jill.fc.yahoo.com/v2/ads/js^$script,third-party,domain=aol.ca|aol.co.uk|aol.de|alpo.mail.aol.com|mail.aol.com|aol.com ++@@||webc2s-oao.pubgw.yahoo.com/jac/v2/ads/js^$script,domain=aol.ca|aol.co.uk|aol.de|alpo.mail.aol.com|mail.aol.com|aol.com +@@||jac.yahoosandbox.com^*/sandbox.html$subdocument,document,domain=mail.aol.com +aol.com#@#.ad-code +mail.aol.com#@#.searchResultAd @@ -79131,6 +84684,8 @@ new file mode 100644 +op.gg#@#.life-owner +op.gg#@#.vm-placement +nexusmods.com#@#.agroup ++9gag.com#@##jsid-ad-container-post_above_comment ++9gag.com#@#.salt-container +!:partner_token=MGID Inc. +!:partner_id=2c0d4acbb6c459cd +!:type=partner @@ -79152,9 +84707,9 @@ new file mode 100644 +!:forum=https://adblockplus.org/forum/viewtopic.php?f=12&t=75009 +! Adpone ads mobile +@@?unblockia=true$document -+@@?unblockia=true$domain=sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com -+@@||r.unblockia.com/r?$subdocument,document,domain=sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com -+@@||unblockia.com^$third-party,script,xmlhttprequest,domain=sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com ++@@?unblockia=true$domain=latercera.com|ambito.com|appdividend.com|minutouno.com|steamlists.com|whatismyip.com|lacuarta.com|xatakandroid.com|petitfute.com|news247.gr|sabah.com.tr|directoalpaladar.com|rpp.pe|mindmegette.hu|xatakamovil.com|elperiodico.com|forvo.com|life.hu|sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com ++@@||r.unblockia.com/r?$subdocument,document,domain=latercera.com|ambito.com|appdividend.com|minutouno.com|steamlists.com|whatismyip.com|lacuarta.com|xatakandroid.com|petitfute.com|news247.gr|sabah.com.tr|directoalpaladar.com|rpp.pe|mindmegette.hu|xatakamovil.com|elperiodico.com|forvo.com|life.hu|sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com ++@@||unblockia.com^$third-party,script,xmlhttprequest,domain=latercera.com|ambito.com|appdividend.com|minutouno.com|steamlists.com|whatismyip.com|lacuarta.com|xatakandroid.com|petitfute.com|news247.gr|sabah.com.tr|directoalpaladar.com|rpp.pe|mindmegette.hu|xatakamovil.com|elperiodico.com|forvo.com|life.hu|sport.es|xataka.com|eleconomista.es|jutarnji.hr|origo.hu|3djuegos.com|lrytas.lt|libertaddigital.com|applesfera.com|automateexcel.com|vidaextra.com|progameguides.com|jeanmarcmorandini.com|detik.com|sensacine.com|gpucheck.com|as.com +!:partner_token=Outbrain +!:partner_id=808f66397a00a3bb +!:type=partner @@ -155183,7 +160738,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -940,7 +944,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -939,7 +943,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -155206,7 +160761,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -2651,6 +2655,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -2741,6 +2745,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -155219,7 +160774,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b void RenderFrameHostImpl::ExecuteJavaScript(const std::u16string& javascript, JavaScriptResultCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); -@@ -10163,7 +10173,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( +@@ -10301,7 +10311,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( GetProcess()->CreateURLLoaderFactory(std::move(default_factory_receiver), std::move(params)); @@ -155241,7 +160796,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -387,6 +391,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -412,6 +416,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -155397,10 +160952,10 @@ diff --git a/extensions/browser/extension_event_histogram_value.h b/extensions/b #ifndef EXTENSIONS_BROWSER_EXTENSION_EVENT_HISTOGRAM_VALUE_H_ #define EXTENSIONS_BROWSER_EXTENSION_EVENT_HISTOGRAM_VALUE_H_ -@@ -517,6 +521,15 @@ enum HistogramValue { - ENTERPRISE_REMOTE_APPS_ON_REMOTE_APP_LAUNCHED = 495, +@@ -518,6 +522,15 @@ enum HistogramValue { INPUT_METHOD_PRIVATE_ON_CARET_BOUNDS_CHANGED = 496, PASSWORDS_PRIVATE_ON_PASSWORD_MANAGER_AUTH_TIMEOUT = 497, + PASSWORDS_PRIVATE_ON_INSECURE_CREDENTIALS_CHANGED = 498, + + // Adblock's below: + ADBLOCK_PRIVATE_AD_BLOCKED = 995, @@ -155427,10 +160982,16 @@ diff --git a/extensions/browser/extension_function_histogram_value.h b/extension #ifndef EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_ #define EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_ -@@ -1768,6 +1772,30 @@ enum HistogramValue { - WMDESKSPRIVATE_DELETESAVEDDESK = 1705, - WMDESKSPRIVATE_RECALLSAVEDDESK = 1706, - FILEMANAGERPRIVATE_GETDLPBLOCKEDCOMPONENTS = 1707, +@@ -1786,6 +1790,37 @@ enum HistogramValue { + AUTOTESTPRIVATE_REMOVEFUSEBOXTEMPDIR = 1723, + AUTOTESTPRIVATE_GETTHROUGHPUTTRACKERDATA = 1724, + ENTERPRISE_REMOTEAPPS_SORTLAUNCHER = 1725, ++<<<<<<< HEAD ++======= ++ PASSWORDSPRIVATE_SHOWADDSHORTCUTDIALOG = 1726, ++ ACTION_GETBADGETEXTCOLOR = 1727, ++ ACTION_SETBADGETEXTCOLOR = 1728, ++ AUTOTESTPRIVATE_REMOVECOMPONENTEXTENSION = 1729, + + // Adblock's below: + ADBLOCKPRIVATE_SETENABLED = 5000, @@ -155455,6 +161016,7 @@ diff --git a/extensions/browser/extension_function_histogram_value.h b/extension + ADBLOCKPRIVATE_GETSESSIONBLOCKEDADSCOUNT = 5019, + ADBLOCKPRIVATE_GETCUSTOMFILTERS = 5020, + ++>>>>>>> b6e42af3ffff6... Squashed commits // Last entry: Add new entries above, then run: // tools/metrics/histograms/update_extension_histograms.py ENUM_BOUNDARY @@ -155472,10 +161034,10 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common module extensions.mojom; -@@ -267,6 +271,7 @@ enum APIPermissionID { - kOffscreen = 240, - kSidePanel = 241, +@@ -269,6 +273,7 @@ enum APIPermissionID { kDownloadsUi = 242, + kWebRequestAuthProvider = 243, + kChromeOSTelemetryNetworkInformation = 244, + kAdblockPrivate = 999, // Add new entries at the end of the enum and be sure to update the @@ -155655,7 +161217,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin --- a/third_party/blink/public/mojom/frame/frame.mojom +++ b/third_party/blink/public/mojom/frame/frame.mojom @@ -1,6 +1,10 @@ - // Copyright 2019 The Chromium Authors. All rights reserved. + // Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// @@ -155665,7 +161227,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -711,6 +715,10 @@ interface LocalFrame { +@@ -730,6 +734,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -155690,13 +161252,13 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -126,6 +130,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -129,6 +133,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); + // Inserts the given CSS source code as a style sheet in the document and + // validates it have only expected rules. -+ BLINK_EXPORT WebStyleSheetKey InsertAbpElemhideStylesheet( ++ WebStyleSheetKey InsertAbpElemhideStylesheet( + const WebString& source_code, + const WebStyleSheetKey* = nullptr, + WebCssOrigin = WebCssOrigin::kAuthor, @@ -155719,7 +161281,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa #include "third_party/blink/public/web/web_document.h" #include "base/memory/scoped_refptr.h" -@@ -244,6 +248,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -248,6 +252,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -155778,7 +161340,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc @@ -1,6 +1,10 @@ - // Copyright 2021 The Chromium Authors. All rights reserved. + // Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// @@ -155815,7 +161377,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h @@ -1,6 +1,10 @@ - // Copyright 2021 The Chromium Authors. All rights reserved. + // Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// @@ -155847,7 +161409,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur #include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h" #include -@@ -449,7 +453,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( +@@ -450,7 +454,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( OnComplete(network::URLLoaderCompletionStatus(net::ERR_ABORTED)); return; } @@ -155961,10 +161523,10 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums --> - +@@ -33995,6 +33998,12 @@ Called by update_extension_histograms.py.--> + + + + @@ -155974,10 +161536,16 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums -@@ -35642,6 +35651,27 @@ Called by update_extension_histograms.py.--> - - - +@@ -35802,6 +35811,34 @@ Called by update_extension_histograms.py.--> + + + ++<<<<<<< HEAD ++======= ++ ++ ++ ++ + + + @@ -155999,18 +161567,19 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums + + + ++>>>>>>> b6e42af3ffff6... Squashed commits -@@ -36274,6 +36304,7 @@ Called by update_extension_permission.py.--> - - +@@ -36436,6 +36473,7 @@ Called by update_extension_permission.py.--> + + + -@@ -97086,6 +97117,8 @@ Full version information for the fingerprint enum values: +@@ -97869,6 +97907,8 @@ Full version information for the fingerprint enum values: diff --git a/build/patches/00JIT-site-settings--win-fixup-.patch b/build/patches/00JIT-site-settings--win-fixup-.patch index a9a1db30..95d15485 100644 --- a/build/patches/00JIT-site-settings--win-fixup-.patch +++ b/build/patches/00JIT-site-settings--win-fixup-.patch @@ -23,7 +23,7 @@ Subject: JIT site settings (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3764,6 +3764,25 @@ +@@ -3793,6 +3793,25 @@ Not allowed to autoplay @@ -64,7 +64,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1030,4 +1030,26 @@ +@@ -1014,4 +1014,26 @@ @@ -94,7 +94,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -103,6 +103,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -101,6 +101,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_FILE_SYSTEM_WRITE = r.SITE_SETTINGS.createChild('filesystem'); r.SITE_SETTINGS_LOCAL_FONTS = r.SITE_SETTINGS.createChild('localFonts'); r.SITE_SETTINGS_AUTOPLAY = r.SITE_SETTINGS.createChild('autoplay'); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -97,4 +97,5 @@ export interface SettingsRoutes { +@@ -95,4 +95,5 @@ export interface SettingsRoutes { SYSTEM: Route; TRIGGERED_RESET_DIALOG: Route; SITE_SETTINGS_AUTOPLAY: Route; @@ -126,7 +126,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chro --- a/chrome/browser/resources/settings/site_settings/constants.ts +++ b/chrome/browser/resources/settings/site_settings/constants.ts @@ -43,6 +43,7 @@ export enum ContentSettingsTypes { - WINDOW_PLACEMENT = 'window-placement', + WINDOW_MANAGEMENT = 'window-placement', ZOOM_LEVELS = 'zoom-levels', AUTOPLAY = 'autoplay', + JAVASCRIPT_JIT = 'javascript-jit', @@ -147,7 +147,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -231,4 +231,9 @@ +@@ -258,4 +258,9 @@ icon="settings:federated-identity-api" label="$i18n{siteSettingsFederatedIdentityApi}"> @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2130,6 +2130,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, +@@ -2143,6 +2143,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsAutoplayAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_AUTOPLAY_ALLOWED_EXCEPTIONS}, {"siteSettingsAutoplayBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_AUTOPLAY_BLOCKED_EXCEPTIONS}, {"siteSettingsAutoplayMidSentence", IDS_SITE_SETTINGS_TYPE_AUTOPLAY}, @@ -228,7 +228,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -116,6 +116,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -115,6 +115,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { "file-system-access-handles-data"}, {ContentSettingsType::FEDERATED_IDENTITY_API, "federated-identity-api"}, {ContentSettingsType::AUTOPLAY, "autoplay"}, @@ -236,7 +236,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b // Add new content settings here if a corresponding Javascript string // representation for it is not required, for example if the content setting -@@ -152,7 +153,6 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -151,7 +152,6 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::FILE_SYSTEM_LAST_PICKED_DIRECTORY, nullptr}, {ContentSettingsType::DISPLAY_CAPTURE, nullptr}, {ContentSettingsType::FEDERATED_IDENTITY_SHARING, nullptr}, @@ -244,7 +244,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b {ContentSettingsType::HTTP_ALLOWED, nullptr}, {ContentSettingsType::FORMFILL_METADATA, nullptr}, {ContentSettingsType::FEDERATED_IDENTITY_ACTIVE_SESSION, nullptr}, -@@ -446,6 +446,7 @@ const std::vector& GetVisiblePermissionCategories() { +@@ -435,6 +435,7 @@ const std::vector& GetVisiblePermissionCategories() { } base_types->push_back(ContentSettingsType::AUTOPLAY); @@ -255,7 +255,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -621,7 +621,12 @@ void ContentSettingsRegistry::Init() { +@@ -608,7 +608,12 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit", diff --git a/build/patches/00Logcat-crash-reports-UI--win-fixup-.patch b/build/patches/00Logcat-crash-reports-UI--win-fixup-.patch index 8722df13..002c9bfe 100644 --- a/build/patches/00Logcat-crash-reports-UI--win-fixup-.patch +++ b/build/patches/00Logcat-crash-reports-UI--win-fixup-.patch @@ -29,7 +29,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra } CrashesDOMHandler::~CrashesDOMHandler() { -@@ -285,6 +290,7 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( +@@ -277,6 +282,7 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( } std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id) const { @@ -37,7 +37,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra // get crash file path std::string info_file_path = upload_list_->GetFilePathByLocalId(local_id); if (info_file_path.empty()) { -@@ -332,13 +338,14 @@ std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id) +@@ -324,13 +330,14 @@ std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id) if (result) { return zip_file_name.value(); } @@ -53,7 +53,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra if (!file_name.empty()) { upload_list_->RequestSingleUploadAsync(local_id); -@@ -346,6 +353,7 @@ void CrashesDOMHandler::RequestSingleUploadCallback(const std::string& local_id, +@@ -338,6 +345,7 @@ void CrashesDOMHandler::RequestSingleUploadCallback(const std::string& local_id, web_contents_->GetController().LoadURL( net::FilePathToFileURL(file_path), {}, {}, {}); } @@ -61,7 +61,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra } void CrashesDOMHandler::HandleRequestNewExtraction( -@@ -370,6 +378,7 @@ void CrashesDOMHandler::HandleRequestClearAll( +@@ -362,6 +370,7 @@ void CrashesDOMHandler::HandleRequestClearAll( } void CrashesDOMHandler::ClearAll() { @@ -69,7 +69,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra // get android crash report dir base::FilePath cache_dir; base::android::GetCacheDirectory(&cache_dir); -@@ -383,6 +392,7 @@ void CrashesDOMHandler::ClearAll() { +@@ -375,6 +384,7 @@ void CrashesDOMHandler::ClearAll() { // remove all files, don't care for result base::DeleteFile(full_name); } diff --git a/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch b/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch index 4ecf1edc..462157fd 100644 --- a/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch +++ b/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.CallbackController; import org.chromium.base.supplier.ObservableSupplier; -@@ -347,6 +350,12 @@ public class StatusBarColorController +@@ -370,6 +373,12 @@ public class StatusBarColorController boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color); ApiCompatibilityUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); ApiCompatibilityUtils.setStatusBarColor(mWindow, color); diff --git a/build/patches/00Remove-EV-certificates--win-fixup-.patch b/build/patches/00Remove-EV-certificates--win-fixup-.patch index 9f74b7d6..9e1eb82a 100644 --- a/build/patches/00Remove-EV-certificates--win-fixup-.patch +++ b/build/patches/00Remove-EV-certificates--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Remove EV certificates (win fixup) diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc --- a/net/cert/ev_root_ca_metadata.cc +++ b/net/cert/ev_root_ca_metadata.cc -@@ -67,7 +67,7 @@ EVRootCAMetadata* EVRootCAMetadata::GetInstance() { +@@ -65,7 +65,7 @@ EVRootCAMetadata* EVRootCAMetadata::GetInstance() { return g_ev_root_ca_metadata.Pointer(); } diff --git a/build/patches/00Remove-binary-blob-integrations--win-fixup-.patch b/build/patches/00Remove-binary-blob-integrations--win-fixup-.patch index 249406b6..92c532d2 100644 --- a/build/patches/00Remove-binary-blob-integrations--win-fixup-.patch +++ b/build/patches/00Remove-binary-blob-integrations--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Remove binary blob integrations (win fixup) 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 -@@ -465,7 +465,7 @@ void GCMClientImpl::StartGCM() { +@@ -463,7 +463,7 @@ void GCMClientImpl::StartGCM() { void GCMClientImpl::InitializeMCSClient() { DCHECK(network_connection_tracker_); @@ -18,7 +18,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc std::vector endpoints; endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -660,7 +660,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, +@@ -658,7 +658,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, int interval_ms) { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); DCHECK(mcs_client_); @@ -27,7 +27,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc mcs_client_->AddHeartbeatInterval(scope, interval_ms); } -@@ -672,7 +672,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { +@@ -670,7 +670,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { void GCMClientImpl::StartCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -36,7 +36,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc // Make sure no checkin is in progress. if (checkin_request_) -@@ -755,7 +755,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { +@@ -753,7 +753,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { void GCMClientImpl::SchedulePeriodicCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); diff --git a/build/patches/00Remove-signin-and-sync-integrations--win-fixup-.patch b/build/patches/00Remove-signin-and-sync-integrations--win-fixup-.patch index 2cbc52ff..b6bf3096 100644 --- a/build/patches/00Remove-signin-and-sync-integrations--win-fixup-.patch +++ b/build/patches/00Remove-signin-and-sync-integrations--win-fixup-.patch @@ -16,15 +16,15 @@ Subject: Remove signin and sync integrations (win fixup) .../ui/webui/signin/profile_picker_handler.cc | 5 +- components/signin/public/android/BUILD.gn | 1 - .../identitymanager/IdentityManager.java | 21 +- - .../identity_manager/identity_manager.cc | 472 ++---------------- + .../identity_manager/identity_manager.cc | 468 ++---------------- .../identity_manager/identity_manager.h | 47 +- .../identity_manager_builder.cc | 3 + - 16 files changed, 47 insertions(+), 604 deletions(-) + 16 files changed, 46 insertions(+), 601 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4261,8 +4261,6 @@ static_library("browser") { +@@ -4282,8 +4282,6 @@ static_library("browser") { "sharing_hub/sharing_hub_service_factory.h", "signin/signin_promo.cc", "signin/signin_promo.h", @@ -33,7 +33,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "signin/signin_ui_util.cc", "signin/signin_ui_util.h", "speech/chrome_speech_recognition_service.cc", -@@ -6947,12 +6945,6 @@ static_library("browser") { +@@ -6999,12 +6997,6 @@ static_library("browser") { "signin/signin_ui_delegate_impl_dice.cc", "signin/signin_ui_delegate_impl_dice.h", ] @@ -179,7 +179,7 @@ diff --git a/chrome/browser/signin/signin_ui_util.cc b/chrome/browser/signin/sig diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -3583,12 +3583,6 @@ static_library("ui") { +@@ -3607,12 +3607,6 @@ static_library("ui") { "webui/signin/signin_ui_error.h", "webui/signin/signin_utils_desktop.cc", "webui/signin/signin_utils_desktop.h", @@ -308,7 +308,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_customization_handler.cc b/c diff --git a/chrome/browser/ui/webui/signin/profile_customization_ui.cc b/chrome/browser/ui/webui/signin/profile_customization_ui.cc --- a/chrome/browser/ui/webui/signin/profile_customization_ui.cc +++ b/chrome/browser/ui/webui/signin/profile_customization_ui.cc -@@ -102,10 +102,11 @@ ProfileCustomizationUI::ProfileCustomizationUI(content::WebUI* web_ui) +@@ -101,10 +101,11 @@ ProfileCustomizationUI::ProfileCustomizationUI(content::WebUI* web_ui) "profileCustomizationInDialogDesign", base::FeatureList::IsEnabled(kSyncPromoAfterSigninIntercept)); const GURL& url = web_ui->GetWebContents()->GetVisibleURL(); @@ -324,7 +324,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_customization_ui.cc b/chrome diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/browser/ui/webui/signin/profile_picker_handler.cc --- a/chrome/browser/ui/webui/signin/profile_picker_handler.cc +++ b/chrome/browser/ui/webui/signin/profile_picker_handler.cc -@@ -943,6 +943,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( +@@ -942,6 +942,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( const base::Value::List& args) { AllowJavascript(); CHECK_EQ(1U, args.size()); @@ -332,7 +332,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/b absl::optional profile_color = args[0].GetIfInt(); #if BUILDFLAG(IS_CHROMEOS_LACROS) SelectAccountLacrosInternal("", profile_color); -@@ -958,6 +959,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( +@@ -957,6 +958,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( #else NOTERACHED(); #endif @@ -340,7 +340,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/b } #if BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -1050,9 +1052,6 @@ void ProfilePickerHandler::OnSwitchToProfileCompleteOpenCustomization( +@@ -1049,9 +1051,6 @@ void ProfilePickerHandler::OnSwitchToProfileCompleteOpenCustomization( BeginFirstWebContentsProfiling(browser, profile_picked_time_on_startup_); } @@ -353,7 +353,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/b diff --git a/components/signin/public/android/BUILD.gn b/components/signin/public/android/BUILD.gn --- a/components/signin/public/android/BUILD.gn +++ b/components/signin/public/android/BUILD.gn -@@ -64,7 +64,6 @@ generate_jni("jni_headers") { +@@ -65,7 +65,6 @@ generate_jni("jni_headers") { "java/src/org/chromium/components/signin/base/CoreAccountInfo.java", "java/src/org/chromium/components/signin/base/GoogleServiceAuthError.java", "java/src/org/chromium/components/signin/identitymanager/AccountTrackerService.java", @@ -421,7 +421,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s diff --git a/components/signin/public/identity_manager/identity_manager.cc b/components/signin/public/identity_manager/identity_manager.cc --- a/components/signin/public/identity_manager/identity_manager.cc +++ b/components/signin/public/identity_manager/identity_manager.cc -@@ -31,7 +31,6 @@ +@@ -30,7 +30,6 @@ #include "base/android/jni_string.h" #include "base/metrics/histogram_functions.h" #include "components/signin/internal/identity_manager/profile_oauth2_token_service_delegate.h" @@ -429,7 +429,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com #endif #if BUILDFLAG(ENABLE_DICE_SUPPORT) -@@ -45,179 +44,31 @@ +@@ -44,179 +43,31 @@ namespace signin { @@ -611,7 +611,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } CoreAccountId IdentityManager::GetPrimaryAccountId(ConsentLevel consent) const { -@@ -225,7 +76,7 @@ CoreAccountId IdentityManager::GetPrimaryAccountId(ConsentLevel consent) const { +@@ -224,7 +75,7 @@ CoreAccountId IdentityManager::GetPrimaryAccountId(ConsentLevel consent) const { } bool IdentityManager::HasPrimaryAccount(ConsentLevel consent) const { @@ -620,7 +620,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } std::unique_ptr -@@ -235,9 +86,7 @@ IdentityManager::CreateAccessTokenFetcherForAccount( +@@ -234,9 +85,7 @@ IdentityManager::CreateAccessTokenFetcherForAccount( const ScopeSet& scopes, AccessTokenFetcher::TokenCallback callback, AccessTokenFetcher::Mode mode) { @@ -631,7 +631,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } std::unique_ptr -@@ -248,10 +97,7 @@ IdentityManager::CreateAccessTokenFetcherForAccount( +@@ -247,10 +96,7 @@ IdentityManager::CreateAccessTokenFetcherForAccount( const ScopeSet& scopes, AccessTokenFetcher::TokenCallback callback, AccessTokenFetcher::Mode mode) { @@ -643,7 +643,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } std::unique_ptr -@@ -263,108 +109,68 @@ IdentityManager::CreateAccessTokenFetcherForClient( +@@ -262,161 +108,108 @@ IdentityManager::CreateAccessTokenFetcherForClient( const ScopeSet& scopes, AccessTokenFetcher::TokenCallback callback, AccessTokenFetcher::Mode mode) { @@ -762,17 +762,6 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com + return AccountInfo(); } - std::unique_ptr -@@ -373,62 +179,47 @@ IdentityManager::CreateUbertokenFetcherForAccount( - UbertokenFetcher::CompletionCallback callback, - gaia::GaiaSource source, - scoped_refptr url_loader_factory) { -- return std::make_unique( -- account_id, token_service_.get(), std::move(callback), source, -- url_loader_factory); -+ return nullptr; - } - AccountsInCookieJarInfo IdentityManager::GetAccountsInCookieJar() const { std::vector signed_in_accounts; std::vector signed_out_accounts; @@ -833,7 +822,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } // static -@@ -446,235 +237,72 @@ void IdentityManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -434,235 +227,72 @@ void IdentityManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { } DiagnosticsProvider* IdentityManager::GetDiagnosticsProvider() { @@ -1077,7 +1066,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com } void IdentityManager::OnFetchAccessTokenComplete( -@@ -683,65 +311,27 @@ void IdentityManager::OnFetchAccessTokenComplete( +@@ -671,65 +301,27 @@ void IdentityManager::OnFetchAccessTokenComplete( const ScopeSet& scopes, GoogleServiceAuthError error, base::Time expiration_time) { @@ -1146,7 +1135,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.cc b/com diff --git a/components/signin/public/identity_manager/identity_manager.h b/components/signin/public/identity_manager/identity_manager.h --- a/components/signin/public/identity_manager/identity_manager.h +++ b/components/signin/public/identity_manager/identity_manager.h -@@ -436,7 +436,7 @@ class IdentityManager : public KeyedService, +@@ -426,7 +426,7 @@ class IdentityManager : public KeyedService, // Returns account consistency method for this profile. AccountConsistencyMethod GetAccountConsistency() { @@ -1155,7 +1144,7 @@ diff --git a/components/signin/public/identity_manager/identity_manager.h b/comp } #if BUILDFLAG(IS_ANDROID) -@@ -680,51 +680,6 @@ class IdentityManager : public KeyedService, +@@ -670,51 +670,6 @@ class IdentityManager : public KeyedService, // AccountTrackerService callbacks: void OnAccountUpdated(const AccountInfo& info); void OnAccountRemoved(const AccountInfo& info); diff --git a/build/patches/00Restore-Search-Ready-Omnibox-flag--win-fixup-.patch b/build/patches/00Restore-Search-Ready-Omnibox-flag--win-fixup-.patch index c57b508d..998b486b 100644 --- a/build/patches/00Restore-Search-Ready-Omnibox-flag--win-fixup-.patch +++ b/build/patches/00Restore-Search-Ready-Omnibox-flag--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Restore Search Ready Omnibox flag (win fixup) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8979,9 +8979,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9187,9 +9187,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPervasiveSystemAccentColorDescription, kOsWin, SINGLE_VALUE_TYPE(switches::kPervasiveSystemAccentColor)}, #endif diff --git a/build/patches/00Revert-flags--remove-num-raster-thre--win-fixup-.patch b/build/patches/00Revert-flags--remove-num-raster-thre--win-fixup-.patch index f11fae05..1eab90a7 100644 --- a/build/patches/00Revert-flags--remove-num-raster-thre--win-fixup-.patch +++ b/build/patches/00Revert-flags--remove-num-raster-thre--win-fixup-.patch @@ -9,7 +9,7 @@ Subject: Revert flags: remove num-raster-thre (win fixup) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -357,6 +357,7 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { +@@ -359,6 +359,7 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { "single-fullscreen,single-on-top,underlay"}, }; @@ -17,7 +17,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kNumRasterThreadsChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kNumRasterThreadsOne, blink::switches::kNumRasterThreads, "1"}, -@@ -365,6 +366,7 @@ const FeatureEntry::Choice kNumRasterThreadsChoices[] = { +@@ -367,6 +368,7 @@ const FeatureEntry::Choice kNumRasterThreadsChoices[] = { "3"}, {flag_descriptions::kNumRasterThreadsFour, blink::switches::kNumRasterThreads, "4"}}; diff --git a/build/patches/00Revert-the-removal-to-block-autoplay--win-fixup-.patch b/build/patches/00Revert-the-removal-to-block-autoplay--win-fixup-.patch index 3a19c267..1c4da8f6 100644 --- a/build/patches/00Revert-the-removal-to-block-autoplay--win-fixup-.patch +++ b/build/patches/00Revert-the-removal-to-block-autoplay--win-fixup-.patch @@ -22,7 +22,7 @@ Subject: Revert the removal to block autoplay (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3745,6 +3745,25 @@ +@@ -3774,6 +3774,25 @@ Control how your browsing history is used to personalize Search and more @@ -63,7 +63,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1008,4 +1008,26 @@ +@@ -992,4 +992,26 @@ @@ -93,8 +93,8 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -102,6 +102,7 @@ function addPrivacyChildRoutes(r: Partial) { - r.SITE_SETTINGS.createChild('windowPlacement'); +@@ -100,6 +100,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS.createChild('windowManagement'); r.SITE_SETTINGS_FILE_SYSTEM_WRITE = r.SITE_SETTINGS.createChild('filesystem'); r.SITE_SETTINGS_LOCAL_FONTS = r.SITE_SETTINGS.createChild('localFonts'); + r.SITE_SETTINGS_AUTOPLAY = r.SITE_SETTINGS.createChild('autoplay'); @@ -104,7 +104,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -96,4 +96,5 @@ export interface SettingsRoutes { +@@ -94,4 +94,5 @@ export interface SettingsRoutes { SYNC_ADVANCED: Route; SYSTEM: Route; TRIGGERED_RESET_DIALOG: Route; @@ -126,7 +126,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chro +++ b/chrome/browser/resources/settings/site_settings/constants.ts @@ -42,6 +42,7 @@ export enum ContentSettingsTypes { VR = 'vr', - WINDOW_PLACEMENT = 'window-placement', + WINDOW_MANAGEMENT = 'window-placement', ZOOM_LEVELS = 'zoom-levels', + AUTOPLAY = 'autoplay', @@ -146,7 +146,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -226,4 +226,9 @@ +@@ -253,4 +253,9 @@ category="[[contentSettingsTypesEnum_.LOCAL_FONTS]]" icon="settings:local-fonts" label="$i18n{fonts}"> @@ -210,7 +210,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2123,6 +2123,13 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2136,6 +2136,13 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { void AddSiteSettingsStrings(content::WebUIDataSource* html_source, Profile* profile) { static constexpr webui::LocalizedString kLocalizedStrings[] = { @@ -227,7 +227,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -115,6 +115,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -114,6 +114,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::FILE_SYSTEM_ACCESS_CHOOSER_DATA, "file-system-access-handles-data"}, {ContentSettingsType::FEDERATED_IDENTITY_API, "federated-identity-api"}, @@ -235,7 +235,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b // Add new content settings here if a corresponding Javascript string // representation for it is not required, for example if the content setting -@@ -126,7 +127,6 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -125,7 +126,6 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::APP_BANNER, nullptr}, {ContentSettingsType::SITE_ENGAGEMENT, nullptr}, {ContentSettingsType::DURABLE_STORAGE, nullptr}, @@ -243,7 +243,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b {ContentSettingsType::IMPORTANT_SITE_INFO, nullptr}, {ContentSettingsType::PERMISSION_AUTOBLOCKER_DATA, nullptr}, {ContentSettingsType::ADS_DATA, nullptr}, -@@ -445,6 +445,8 @@ const std::vector& GetVisiblePermissionCategories() { +@@ -434,6 +434,8 @@ const std::vector& GetVisiblePermissionCategories() { base_types->push_back(ContentSettingsType::ADS); } diff --git a/build/patches/00Timezone-customization--win-fixup-.patch b/build/patches/00Timezone-customization--win-fixup-.patch index a5b6efa9..fcffa0cd 100644 --- a/build/patches/00Timezone-customization--win-fixup-.patch +++ b/build/patches/00Timezone-customization--win-fixup-.patch @@ -23,7 +23,7 @@ Subject: Timezone customization (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3783,6 +3783,25 @@ +@@ -3812,6 +3812,25 @@ Not allowed to Javascript JIT @@ -64,7 +64,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1052,4 +1052,26 @@ +@@ -1036,4 +1036,26 @@ @@ -94,7 +94,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -104,6 +104,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -102,6 +102,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_LOCAL_FONTS = r.SITE_SETTINGS.createChild('localFonts'); r.SITE_SETTINGS_AUTOPLAY = r.SITE_SETTINGS.createChild('autoplay'); r.SITE_SETTINGS_JAVASCRIPT_JIT = r.SITE_SETTINGS.createChild('javascript-jit'); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -98,4 +98,5 @@ export interface SettingsRoutes { +@@ -96,4 +96,5 @@ export interface SettingsRoutes { TRIGGERED_RESET_DIALOG: Route; SITE_SETTINGS_AUTOPLAY: Route; SITE_SETTINGS_JAVASCRIPT_JIT: Route; @@ -147,7 +147,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -236,4 +236,9 @@ +@@ -263,4 +263,9 @@ icon="settings:javascript-jit" label="$i18n{siteSettingsJavascriptJIT}"> @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2137,6 +2137,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, +@@ -2150,6 +2150,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsJavascriptJITAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT_JIT_ALLOWED_EXCEPTIONS}, {"siteSettingsJavascriptJITBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT_JIT_BLOCKED_EXCEPTIONS}, {"siteSettingsJavascriptJITMidSentence", IDS_SITE_SETTINGS_TYPE_JAVASCRIPT_JIT}, @@ -228,7 +228,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -117,6 +117,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -116,6 +116,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::FEDERATED_IDENTITY_API, "federated-identity-api"}, {ContentSettingsType::AUTOPLAY, "autoplay"}, {ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit"}, @@ -239,7 +239,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -673,7 +673,7 @@ void ContentSettingsRegistry::Init() { +@@ -660,7 +660,7 @@ void ContentSettingsRegistry::Init() { CONTENT_SETTING_ASK, // custom timezone, default UTC CONTENT_SETTING_BLOCK), // random WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, diff --git a/build/patches/00Viewport-Protection--win-fixup-.patch b/build/patches/00Viewport-Protection--win-fixup-.patch index 1b8d9f53..cf0dfdea 100644 --- a/build/patches/00Viewport-Protection--win-fixup-.patch +++ b/build/patches/00Viewport-Protection--win-fixup-.patch @@ -23,7 +23,7 @@ Subject: Viewport Protection (win fixup) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -3840,6 +3840,25 @@ +@@ -3869,6 +3869,25 @@ Not allowed to use WebRTC @@ -64,7 +64,7 @@ diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resou diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1118,4 +1118,26 @@ +@@ -1102,4 +1102,26 @@ @@ -94,7 +94,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -107,6 +107,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -105,6 +105,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override'); r.SITE_SETTINGS_WEBGL = r.SITE_SETTINGS.createChild('webgl'); r.SITE_SETTINGS_WEBRTC = r.SITE_SETTINGS.createChild('webrtc'); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/settings_routes.ts b/chrome/browser/resources/settings/settings_routes.ts --- a/chrome/browser/resources/settings/settings_routes.ts +++ b/chrome/browser/resources/settings/settings_routes.ts -@@ -101,4 +101,5 @@ export interface SettingsRoutes { +@@ -99,4 +99,5 @@ export interface SettingsRoutes { SITE_SETTINGS_TIMEZONE_OVERRIDE: Route; SITE_SETTINGS_WEBGL: Route; SITE_SETTINGS_WEBRTC: Route; @@ -147,7 +147,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -251,4 +251,9 @@ +@@ -278,4 +278,9 @@ icon="settings:webrtc" label="$i18n{siteSettingsWebRTC}"> @@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2158,6 +2158,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, +@@ -2171,6 +2171,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsWebRTCAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_WEBRTC_ALLOWED_EXCEPTIONS}, {"siteSettingsWebRTCBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_WEBRTC_BLOCKED_EXCEPTIONS}, {"siteSettingsWebRTCMidSentence", IDS_SITE_SETTINGS_WEBRTC_TITLE}, @@ -228,7 +228,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -120,6 +120,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -119,6 +119,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"}, {ContentSettingsType::WEBGL, "webgl"}, {ContentSettingsType::WEBRTC, "webrtc"}, @@ -239,7 +239,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -722,7 +722,7 @@ void ContentSettingsRegistry::Init() { +@@ -681,7 +681,7 @@ void ContentSettingsRegistry::Init() { ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, diff --git a/build/patches/00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch b/build/patches/00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch index 35867194..b962f4b9 100644 --- a/build/patches/00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch +++ b/build/patches/00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch @@ -29,18 +29,18 @@ Subject: ungoogled-chr no special hosts/domains (add fixup) chrome/common/BUILD.gn | 2 - .../url_loader_throttle_provider_impl.cc | 7 - chrome/test/BUILD.gn | 1 - - components/google/core/common/google_util.cc | 150 +----------------- + components/google/core/common/google_util.cc | 151 +----------------- components/google/core/common/google_util.h | 14 +- .../search_engines/search_terms_data.cc | 4 +- components/search_provider_logos/BUILD.gn | 2 - .../logo_service_impl.cc | 16 +- components/url_matcher/url_util.cc | 83 ---------- - 32 files changed, 20 insertions(+), 442 deletions(-) + 32 files changed, 20 insertions(+), 443 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1014,10 +1014,6 @@ static_library("browser") { +@@ -1022,10 +1022,6 @@ static_library("browser") { "page_load_metrics/observers/foreground_duration_ukm_observer.h", "page_load_metrics/observers/formfill_page_load_metrics_observer.cc", "page_load_metrics/observers/formfill_page_load_metrics_observer.h", @@ -51,7 +51,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1923,7 +1919,6 @@ static_library("browser") { +@@ -1935,7 +1931,6 @@ static_library("browser") { allow_circular_includes_from = [ "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -59,7 +59,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/profiling_host", # TODO(crbug.com/1335199): break this dep when favicon is in its own target -@@ -1942,7 +1937,6 @@ static_library("browser") { +@@ -1954,7 +1949,6 @@ static_library("browser") { public_deps = [ "//base", @@ -67,7 +67,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/common", "//chrome/common:buildflags", "//chrome/common:constants", -@@ -7631,8 +7625,6 @@ static_library("browser") { +@@ -7692,8 +7686,6 @@ static_library("browser") { "supervised_user/supervised_user_constants.h", "supervised_user/supervised_user_denylist.cc", "supervised_user/supervised_user_denylist.h", @@ -110,7 +110,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2646,7 +2646,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2675,7 +2675,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -118,7 +118,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -4550,12 +4549,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -4580,12 +4579,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -131,7 +131,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (auto* throttle_manager = subresource_filter::ContentSubresourceFilterThrottleManager:: FromNavigationHandle(*handle)) { -@@ -5051,11 +5044,11 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5087,11 +5080,11 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( profile->GetPrefs()->GetInteger(prefs::kForceYouTubeRestrict), profile->GetPrefs()->GetString(prefs::kAllowedDomainsForApps), false /*-> allow_userscript, don't care */}; @@ -149,10 +149,10 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -786,7 +786,6 @@ static_library("extensions") { +@@ -783,7 +783,6 @@ static_library("extensions") { + "//chrome/browser/browsing_data:constants", "//chrome/browser/devtools", "//chrome/browser/favicon", - "//chrome/browser/first_party_sets", - "//chrome/browser/google", "//chrome/browser/image_decoder", "//chrome/browser/media/router", @@ -182,7 +182,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc -@@ -284,15 +284,6 @@ void SetupInitialPrefsFromInstallPrefs( +@@ -285,15 +285,6 @@ void SetupInitialPrefsFromInstallPrefs( // -- Platform-specific functions -- @@ -257,7 +257,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -571,7 +571,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -572,7 +572,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -269,7 +269,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -99,9 +99,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { +@@ -101,9 +101,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { // This must happen on the same sequence as the tasks to enable/disable // metrics reporting. Otherwise, this may run while disabling metrics // reporting if the user quickly enables and disables metrics reporting. @@ -279,9 +279,9 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/ } #if BUILDFLAG(IS_ANDROID) -@@ -311,7 +308,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { - local_state_, enabled_state_provider_.get(), GetRegistryBackupKey(), +@@ -314,7 +311,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { user_data_dir, startup_visibility, + metrics::EntropyProviderType::kDefault, base::BindRepeating(&PostStoreMetricsClientInfo), - base::BindRepeating(&GoogleUpdateSettings::LoadMetricsClientInfo), + metrics::MetricsStateManager::LoadClientInfoCallback(), @@ -461,7 +461,7 @@ diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -418,7 +418,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -419,7 +419,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if !BUILDFLAG(IS_ANDROID) GlobalErrorServiceFactory::GetInstance(); #endif @@ -486,7 +486,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -404,7 +404,6 @@ static_library("ui") { +@@ -409,7 +409,6 @@ static_library("ui") { "//chrome/browser/breadcrumbs", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -497,7 +497,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -489,11 +489,6 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(Profile* profile) { +@@ -511,11 +511,6 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -564,7 +564,7 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5724,7 +5724,6 @@ test("unit_tests") { +@@ -5785,7 +5785,6 @@ test("unit_tests") { "//chrome/browser/favicon", "//chrome/browser/feature_guide/notifications:unit_tests", "//chrome/browser/first_party_sets", @@ -594,7 +594,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co } std::string GetGoogleCountryCode(const GURL& google_homepage_url) { -@@ -83,155 +82,12 @@ bool IsYoutubeDomainUrl(const GURL& url, SubdomainPermission subdomain_permissio +@@ -83,156 +82,12 @@ bool IsYoutubeDomainUrl(const GURL& url, SubdomainPermission subdomain_permissio } bool IsGoogleAssociatedDomainUrl(const GURL& url) { // disabled on Bromite @@ -615,6 +615,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - ".googlevideo.com", - ".gstatic.com", - ".litepages.googlezip.net", +- ".youtubekids.com", - ".ytimg.com", - }; - const std::string host = url.host(); diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index ba3823bd..56966884 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -84,7 +84,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2411,9 +2411,9 @@ +@@ -2497,9 +2497,9 @@ "expiry_milestone": 115 }, { @@ -126,9 +126,9 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -63,6 +63,11 @@ const base::Feature kUseGles2ForOopR { +@@ -64,6 +64,11 @@ BASE_FEATURE(kUseGles2ForOopR, #endif - }; + ); + +// Use android AImageReader when playing videos with MediaPlayer. @@ -142,13 +142,13 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h --- a/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h @@ -17,6 +17,7 @@ namespace features { - GPU_EXPORT extern const base::Feature kUseGles2ForOopR; + GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR); // All features in alphabetical order. The features should be documented +GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer; // alongside the definition of their values in the .cc file. #if BUILDFLAG(IS_ANDROID) - GPU_EXPORT extern const base::Feature kAndroidSurfaceControl; + GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl); diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc @@ -177,7 +177,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt -@@ -17,6 +17,7 @@ depth_stencil_renderbuffer_resize_emulation +@@ -16,6 +16,7 @@ depth_stencil_renderbuffer_resize_emulation disable_2d_canvas_auto_flush disable_accelerated_av1_decode disable_accelerated_av1_encode @@ -188,7 +188,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -640,6 +640,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -626,6 +626,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) @@ -231,27 +231,27 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -750,6 +750,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", - // Note: Has no effect if kMediaDrmPreprovisioning feature is disabled. - const base::Feature kMediaDrmPreprovisioningAtStartup{ - "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -853,6 +853,10 @@ BASE_FEATURE(kMediaDrmPreprovisioning, + BASE_FEATURE(kMediaDrmPreprovisioningAtStartup, + "MediaDrmPreprovisioningAtStartup", + base::FEATURE_ENABLED_BY_DEFAULT); +// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD) +const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enable picture in picture web api for android. - const base::Feature kPictureInPictureAPI{"PictureInPictureAPI", + BASE_FEATURE(kPictureInPictureAPI, diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -232,6 +232,7 @@ MEDIA_EXPORT extern const base::Feature kForceHardwareAudioDecoders; - MEDIA_EXPORT extern const base::Feature kAllowNonSecureOverlays; - MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture; - MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense; +@@ -58,6 +58,7 @@ MEDIA_EXPORT extern const char kWaveOutBuffers[]; + MEDIA_EXPORT extern const char kEnableProtectedVideoBuffers[]; + MEDIA_EXPORT extern const char kForceProtectedVideoOutputBuffers[]; + MEDIA_EXPORT extern const char kDisableAudioInput[]; +MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput; - MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning; - MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup; - MEDIA_EXPORT extern const base::Feature kCanPlayHls; + MEDIA_EXPORT extern const char kUseOverlaysForVideo[]; + MEDIA_EXPORT extern const char kMinVideoDecoderOutputBufferSize[]; + MEDIA_EXPORT extern const char kAudioCapturerWithEchoCancellation[]; -- 2.25.1 diff --git a/build/patches/AV1-codec-support.patch b/build/patches/AV1-codec-support.patch index cf466d53..c60c61e0 100644 --- a/build/patches/AV1-codec-support.patch +++ b/build/patches/AV1-codec-support.patch @@ -32,19 +32,19 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn } configs += [ ":libaom_config" ] -@@ -259,6 +259,8 @@ static_library("libaom") { +@@ -257,6 +257,8 @@ static_library("libaom") { if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" || cpu_arch_full == "arm-neon-cpu-detect") { deps += [ ":libaom_intrinsics_neon" ] + # will detect CPU + sources += aom_ports_arm_sources } - if (is_android) { - deps += [ "//third_party/android_ndk:cpu_features" ] + if (current_cpu == "arm64" || current_cpu == "arm") { + # This is needed by all arm boards due to aom_arm_cpu_caps() diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni --- a/third_party/libaom/libaom_srcs.gni +++ b/third_party/libaom/libaom_srcs.gni -@@ -673,6 +673,11 @@ aom_rc_interface_sources = [ +@@ -635,6 +635,11 @@ aom_rc_interface_sources = [ "//third_party/libaom/source/libaom/test/yuv_video_source.h", ] diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index 0777dec3..4a188a91 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -10,17 +10,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 6 +++++- chrome/browser/flag_descriptions.cc | 5 +++++ chrome/browser/flag_descriptions.h | 3 +++ - chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++ + chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++ chrome/browser/flags/android/chrome_feature_list.h | 1 + .../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 + .../chromium/chrome/browser/flags/ChromeFeatureList.java | 3 +++ net/android/java/src/org/chromium/net/X509Util.java | 5 +++++ - 10 files changed, 31 insertions(+), 1 deletion(-) + 10 files changed, 32 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -225,6 +225,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -226,6 +226,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -955,6 +956,8 @@ public abstract class ChromeActivity +@@ -951,6 +952,8 @@ public abstract class ChromeActivity UpdateMenuItemHelper.getInstance().onStart(); ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeCachedFlags.getInstance().cacheNativeFlags(); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java -@@ -77,6 +77,7 @@ public class ChromeCachedFlags { +@@ -78,6 +78,7 @@ public class ChromeCachedFlags { add(ChromeFeatureList.sAndroidAuxiliarySearch); add(ChromeFeatureList.sAnonymousUpdateChecks); add(ChromeFeatureList.sAppMenuMobileSiteOption); @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/Chrom diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3595,7 +3595,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3695,7 +3695,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kExtensionsOnChromeUrlsDescription, kOsAll, SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, #endif // ENABLE_EXTENSIONS @@ -61,9 +61,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc + flag_descriptions::kAllowUserCertificatesName, + flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)}, - {"osk-resizes-visual-viewport", - flag_descriptions::kEnableOskResizesVisualViewportName, - flag_descriptions::kEnableOskResizesVisualViewportDescription, kOsAndroid, + {"osk-resizes-visual-viewport-by-default", + flag_descriptions::kEnableOskResizesVisualViewportByDefaultName, + flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -95,7 +95,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -150,6 +150,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -149,6 +149,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedNoViewCache, &feed::kFeedReplaceAll, &feed::kInterestFeedContentSuggestions, @@ -103,16 +103,17 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &feed::kInterestFeedV1ClicksAndViewsConditionalUpload, &feed::kInterestFeedV2, &feed::kInterestFeedV2Autoplay, -@@ -462,6 +463,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{ - "AdaptiveButtonInTopToolbarCustomizationV2", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -467,6 +468,10 @@ BASE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2, + "AdaptiveButtonInTopToolbarCustomizationV2", + base::FEATURE_ENABLED_BY_DEFAULT); -+const base::Feature kAllowUserCertificates = { -+ "AllowUserCertificates", base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kAllowUserCertificates, ++ "AllowUserCertificates", ++ base::FEATURE_DISABLED_BY_DEFAULT); + - const base::Feature kAddToHomescreenIPH{"AddToHomescreenIPH", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kAddToHomescreenIPH, + "AddToHomescreenIPH", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h @@ -122,8 +123,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser +extern const base::Feature kAllowUserCertificates; // Alphabetical: - extern const base::Feature kAdaptiveButtonInTopToolbar; - extern const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2; + BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbar); + BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java @@ -146,7 +147,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -637,6 +638,8 @@ public abstract class ChromeFeatureList { +@@ -646,6 +647,8 @@ public abstract class ChromeFeatureList { public static final String FEED_REPLACE_ALL = "FeedReplaceAll"; /* Alphabetical: */ diff --git a/build/patches/Add-English-only-search-engine.patch b/build/patches/Add-English-only-search-engine.patch index 1dfa6be3..178432f1 100644 --- a/build/patches/Add-English-only-search-engine.patch +++ b/build/patches/Add-English-only-search-engine.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -136,6 +136,27 @@ +@@ -137,6 +137,27 @@ "id": 1 }, diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index fb4c2158..91e83aa1 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -8,15 +8,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 4 ++++ chrome/browser/flag_descriptions.cc | 4 ++++ chrome/browser/flag_descriptions.h | 3 +++ - net/base/features.cc | 3 +++ + net/base/features.cc | 4 ++++ net/base/features.h | 2 ++ net/url_request/url_request_http_job.cc | 4 ++++ - 6 files changed, 20 insertions(+) + 6 files changed, 21 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8863,6 +8863,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9071,6 +9071,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kRequestDesktopSiteExceptionsName, flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1661,6 +1661,10 @@ const char kHttpsOnlyModeDescription[] = +@@ -1710,6 +1710,10 @@ const char kHttpsOnlyModeDescription[] = "Adds a setting under chrome://settings/security to opt-in to HTTPS-First " "Mode."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -927,6 +927,9 @@ extern const char kHideShelfControlsInTabletModeDescription[]; +@@ -957,6 +957,9 @@ extern const char kHideShelfControlsInTabletModeDescription[]; extern const char kHttpsOnlyModeName[]; extern const char kHttpsOnlyModeDescription[]; @@ -57,28 +57,29 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -113,6 +113,9 @@ const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData", - const base::Feature kEncryptedClientHello{"EncryptedClientHello", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -73,6 +73,10 @@ BASE_FEATURE(kEncryptedClientHello, + "EncryptedClientHello", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kIsCleartextPermitted{"IsCleartextPermitted", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kIsCleartextPermitted, ++ "IsCleartextPermitted", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kNetworkQualityEstimator, + "NetworkQualityEstimator", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -29,6 +29,8 @@ NET_EXPORT extern const base::Feature kAvoidH2Reprioritization; +@@ -29,6 +29,8 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAvoidH2Reprioritization); // origin requests are restricted to contain at most the source origin. - NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin; + NET_EXPORT BASE_DECLARE_FEATURE(kCapReferrerToOriginOnCrossOrigin); +NET_EXPORT extern const base::Feature kIsCleartextPermitted; + // Support for altering the parameters used for DNS transaction timeout. See // ResolveContext::SecureTransactionTimeout(). - NET_EXPORT extern const base::Feature kDnsTransactionDynamicTimeouts; + NET_EXPORT BASE_DECLARE_FEATURE(kDnsTransactionDynamicTimeouts); diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index b2c56394..2879c8cc 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -273,6 +273,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -284,6 +284,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); #endif @@ -95,8 +95,8 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc 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 -@@ -76,6 +76,12 @@ - +@@ -81,6 +81,12 @@ + + @@ -183,16 +183,16 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -162,6 +162,8 @@ - #include "printing/buildflags/buildflags.h" +@@ -165,6 +165,8 @@ #include "rlz/buildflags/buildflags.h" + #include "third_party/abseil-cpp/absl/types/optional.h" +#include "chrome/browser/net/proxy_service_factory.h" + #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1042,6 +1044,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1013,6 +1015,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { chrome::enterprise_util::RegisterLocalStatePrefs(registry); component_updater::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -204,13 +204,13 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -162,7 +162,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { - SetValue( - proxy_config::prefs::kProxy, - std::make_unique(ProxyConfigDictionary::CreateFixedServers( -- proxy_server, bypass_list)), -+ proxy_server, bypass_list, false)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); +@@ -159,7 +159,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { + command_line()->GetSwitchValueASCII(switches::kProxyBypassList); + SetValue(proxy_config::prefs::kProxy, + base::Value(ProxyConfigDictionary::CreateFixedServers( +- proxy_server, bypass_list)), ++ proxy_server, bypass_list, false)), + WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); } } diff --git a/chrome/browser/resources/proxy_config.css b/chrome/browser/resources/proxy_config.css @@ -637,8 +637,8 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -282,6 +282,8 @@ static_library("ui") { - "webui/metrics_handler.h", +@@ -287,6 +287,8 @@ static_library("ui") { + "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", + "webui/proxy_config_ui.cc", @@ -649,7 +649,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -59,6 +59,7 @@ +@@ -61,6 +61,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -657,8 +657,8 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" #include "chrome/browser/ui/webui/signin_internals_ui.h" -@@ -785,6 +786,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - return &NewWebUI; +@@ -798,6 +799,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; + if (url.host_piece() == chrome::kChromeUIProxyConfigHost) @@ -1156,7 +1156,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -134,6 +134,8 @@ extern const char kChromeUIMemoryInternalsHost[]; +@@ -134,6 +134,8 @@ extern const char kChromeUIMetricsInternalsHost[]; extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; @@ -1188,8 +1188,8 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro } // namespace -@@ -78,6 +80,14 @@ bool ProxyConfigDictionary::HasBypassList() const { - return dict_.FindKey(kProxyBypassList); +@@ -76,6 +78,14 @@ bool ProxyConfigDictionary::HasBypassList() const { + return dict_.Find(kProxyBypassList); } +bool ProxyConfigDictionary::HasReverseBypass() const { @@ -1200,34 +1200,35 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro + return value->GetBool(); +} + - const base::Value& ProxyConfigDictionary::GetDictionary() const { + const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const { return dict_; } -@@ -85,29 +95,30 @@ const base::Value& ProxyConfigDictionary::GetDictionary() const { +@@ -83,13 +93,13 @@ const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const { // static - base::Value ProxyConfigDictionary::CreateDirect() { + base::Value::Dict ProxyConfigDictionary::CreateDirect() { return CreateDictionary(ProxyPrefs::MODE_DIRECT, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static - base::Value ProxyConfigDictionary::CreateAutoDetect() { + base::Value::Dict ProxyConfigDictionary::CreateAutoDetect() { return CreateDictionary(ProxyPrefs::MODE_AUTO_DETECT, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static - base::Value ProxyConfigDictionary::CreatePacScript(const std::string& pac_url, - bool pac_mandatory) { +@@ -97,16 +107,17 @@ base::Value::Dict ProxyConfigDictionary::CreatePacScript( + const std::string& pac_url, + bool pac_mandatory) { return CreateDictionary(ProxyPrefs::MODE_PAC_SCRIPT, pac_url, pac_mandatory, - std::string(), std::string()); + std::string(), std::string(), false); } // static - base::Value ProxyConfigDictionary::CreateFixedServers( + base::Value::Dict ProxyConfigDictionary::CreateFixedServers( const std::string& proxy_server, - const std::string& bypass_list) { + const std::string& bypass_list, @@ -1239,32 +1240,32 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro } else { return CreateDirect(); } -@@ -116,7 +127,7 @@ base::Value ProxyConfigDictionary::CreateFixedServers( +@@ -115,7 +126,7 @@ base::Value::Dict ProxyConfigDictionary::CreateFixedServers( // static - base::Value ProxyConfigDictionary::CreateSystem() { + base::Value::Dict ProxyConfigDictionary::CreateSystem() { return CreateDictionary(ProxyPrefs::MODE_SYSTEM, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static -@@ -125,7 +136,8 @@ base::Value ProxyConfigDictionary::CreateDictionary( +@@ -124,7 +135,8 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary( const std::string& pac_url, bool pac_mandatory, const std::string& proxy_server, - const std::string& bypass_list) { + const std::string& bypass_list, + bool reverse_bypass) { - base::Value dict(base::Value::Type::DICTIONARY); - dict.SetKey(kProxyMode, base::Value(ProxyModeToString(mode))); + base::Value::Dict dict; + dict.Set(kProxyMode, base::Value(ProxyModeToString(mode))); if (!pac_url.empty()) { -@@ -134,8 +146,10 @@ base::Value ProxyConfigDictionary::CreateDictionary( +@@ -133,8 +145,10 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary( } if (!proxy_server.empty()) - dict.SetKey(kProxyServer, base::Value(proxy_server)); + dict.Set(kProxyServer, base::Value(proxy_server)); - if (!bypass_list.empty()) + if (!bypass_list.empty()) { - dict.SetKey(kProxyBypassList, base::Value(bypass_list)); + dict.Set(kProxyBypassList, base::Value(bypass_list)); + dict.SetKey(kProxyReverseBypass, base::Value(reverse_bypass)); + } return dict; @@ -1279,37 +1280,37 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox bool HasBypassList() const; + bool HasReverseBypass() const; - const base::Value& GetDictionary() const; + const base::Value::Dict& GetDictionary() const; @@ -50,7 +51,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary { - static base::Value CreatePacScript(const std::string& pac_url, - bool pac_mandatory); - static base::Value CreateFixedServers(const std::string& proxy_server, -- const std::string& bypass_list); -+ const std::string& bypass_list, + static base::Value::Dict CreatePacScript(const std::string& pac_url, + bool pac_mandatory); + static base::Value::Dict CreateFixedServers(const std::string& proxy_server, +- const std::string& bypass_list); ++ const std::string& bypass_list, + bool reverse_bypass); - static base::Value CreateSystem(); + static base::Value::Dict CreateSystem(); // Encodes the proxy server as "=://". @@ -66,7 +68,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary { - const std::string& pac_url, - bool pac_mandatory, - const std::string& proxy_server, -- const std::string& bypass_list); -+ const std::string& bypass_list, + const std::string& pac_url, + bool pac_mandatory, + const std::string& proxy_server, +- const std::string& bypass_list); ++ const std::string& bypass_list, + bool reverse_bypass); - base::Value dict_; + base::Value::Dict dict_; }; diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc --- a/components/proxy_config/proxy_policy_handler.cc +++ b/components/proxy_config/proxy_policy_handler.cc -@@ -264,7 +264,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, - ProxyConfigDictionary::CreateFixedServers( - server->GetString(), bypass_list && bypass_list->is_string() - ? bypass_list->GetString() -- : std::string())); -+ : std::string(), false)); +@@ -263,7 +263,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, + set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers( + server->GetString(), bypass_list && bypass_list->is_string() + ? bypass_list->GetString() +- : std::string())); ++ : std::string(), false)); } break; } diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index e6a7f02d..16533c38 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -40,14 +40,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/settings/SettingsActivity.java | 4 + .../HistoricalTabModelObserver.java | 8 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- - .../tab_restore/HistoricalTabSaverImpl.java | 16 +- + .../tab_restore/HistoricalTabSaverImpl.java | 17 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + .../browser/tabmodel/TabPersistentStore.java | 9 + .../webapps/WebappIntentDataProvider.java | 14 ++ chrome/browser/about_flags.cc | 4 + - .../browser/android/historical_tab_saver.cc | 21 ++- + .../browser/android/historical_tab_saver.cc | 22 ++- .../chrome_autocomplete_provider_client.cc | 7 + .../chrome_autocomplete_provider_client.h | 1 + .../host_content_settings_map_factory.cc | 20 ++- @@ -82,7 +82,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../omnibox/browser/base_search_provider.cc | 2 +- components/omnibox/browser/search_provider.cc | 4 +- .../host_content_settings_map_factory.cc | 1 + - 63 files changed, 680 insertions(+), 74 deletions(-) + 63 files changed, 682 insertions(+), 74 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -91,7 +91,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -663,6 +663,7 @@ chrome_java_resources = [ +@@ -661,6 +661,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", @@ -110,7 +110,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -961,6 +962,7 @@ chrome_java_sources = [ +@@ -964,6 +965,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -236,7 +236,7 @@ new file mode 100644 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 -@@ -57,6 +57,7 @@ import org.chromium.base.task.PostTask; +@@ -58,6 +58,7 @@ import org.chromium.base.task.PostTask; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -244,7 +244,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; -@@ -1899,8 +1900,9 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1830,6 +1831,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -286,9 +286,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.banners.AppMenuVerbiage; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; -@@ -100,6 +101,10 @@ import java.util.ArrayList; + import org.chromium.chrome.browser.bookmarks.BookmarkModel; +@@ -101,6 +102,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -299,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -560,6 +565,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -562,6 +567,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -313,7 +313,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -620,7 +632,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -640,7 +652,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -329,8 +329,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App + item.setVisible(!isIncognito); } if (item.getItemId() == R.id.menu_group_tabs) { - // Disable incognito group tabs when a re-authentication screen is shown. -@@ -862,7 +882,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate + item.setVisible(isMenuGroupTabsVisible); +@@ -880,7 +900,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate // is not persisted when adding to the homescreen. // * If creating shortcuts it not supported by the current home screen. return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme @@ -352,7 +352,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -374,6 +375,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -364,6 +365,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { boolean hasSaveImage = false; mShowEphemeralTabNewLabel = null; @@ -362,7 +362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -392,6 +396,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -382,6 +386,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); } } @@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); } -@@ -416,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -406,7 +411,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -382,7 +382,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -66,31 +66,6 @@ public class CustomTabActivityLifecycleUmaTracker implements PauseResumeWithNati +@@ -68,31 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { @@ -424,8 +424,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; -@@ -172,6 +173,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat + import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; +@@ -176,6 +177,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat downloadItemVisible = false; openInChromeItemVisible = false; } @@ -448,7 +448,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -847,7 +850,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -855,7 +858,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -500,7 +500,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -33,6 +33,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener; +@@ -35,6 +35,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; @@ -508,9 +508,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -@@ -73,6 +74,12 @@ import org.chromium.url.GURL; - import java.io.Serializable; +@@ -77,6 +78,12 @@ import java.io.Serializable; import java.util.List; + import java.util.concurrent.atomic.AtomicReference; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.base.ContextUtils; @@ -521,7 +521,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** * Combines and manages the different UI components of browsing history. */ -@@ -504,7 +511,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -551,7 +558,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve return mRootView; } @@ -603,7 +603,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -82,7 +82,8 @@ public class RecentTabsManager implements AccountsChangeObserver { +@@ -81,7 +81,8 @@ public class RecentTabsManager implements AccountsChangeObserver { */ public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile, Context context, Runnable showHistoryManager) { @@ -802,7 +802,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -15,6 +15,8 @@ import java.util.ArrayList; +@@ -14,6 +14,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -811,7 +811,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** * A tab model observer for managing bulk closures. */ -@@ -47,7 +49,8 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -41,7 +43,8 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty()) return; if (tabs.size() == 1) { @@ -821,17 +821,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -59,8 +62,9 @@ public class HistoricalTabModelObserver implements TabModelObserver { - * identical to what occurred prior to {@link ChromeFeatureList.BULK_TAB_RESTORE}. - */ - private void legacyCreateHistoricalTabs(List tabs) { -+ boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); - for (Tab tab : tabs) { -- mHistoricalTabSaver.createHistoricalTab(tab); -+ mHistoricalTabSaver.createHistoricalTab(tab, is_always_incognito); - } +@@ -49,6 +52,7 @@ public class HistoricalTabModelObserver implements TabModelObserver { } + private void buildGroupsAndCreateClosure(List tabs) { ++ boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); + HashMap idToGroup = new HashMap<>(); + List entries = new ArrayList<>(); + +@@ -72,7 +76,7 @@ public class HistoricalTabModelObserver implements TabModelObserver { + entries.add(historicalGroup); + idToGroup.put(groupId, historicalGroup); + } +- ++ fix me! + mHistoricalTabSaver.createHistoricalBulkClosure(entries); + } + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java @@ -847,7 +853,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -29,6 +29,8 @@ import java.util.Arrays; +@@ -27,6 +27,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -856,7 +862,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** * Creates historical entries in TabRestoreService. */ -@@ -62,10 +64,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -60,10 +62,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // HistoricalTabSaver implementation. @Override @@ -869,7 +875,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } @Override -@@ -106,7 +108,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -115,7 +117,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // If there is only a single valid tab remaining save it individually. if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) { @@ -878,20 +884,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -128,10 +130,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { - CollectionUtil.integerListToIntArray(perTabGroupId), allTabs.toArray(new Tab[0])); +@@ -140,11 +142,12 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { + CollectionUtil.integerListToIntArray(savedStateVersions)); } - private void createHistoricalTabInternal(Tab tab) { + private void createHistoricalTabInternal(Tab tab, boolean is_always_incognito) { RecordHistogram.recordEnumeratedHistogram("Tabs.RecentlyClosed.HistoricalSaverCloseType", HistoricalSaverCloseType.TAB, HistoricalSaverCloseType.COUNT); -- HistoricalTabSaverImplJni.get().createHistoricalTab(tab); -+ HistoricalTabSaverImplJni.get().createHistoricalTab(tab, is_always_incognito); + HistoricalTabSaverImplJni.get().createHistoricalTab( +- tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version()); ++ tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version(), ++ is_always_incognito); } /** -@@ -139,7 +141,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -152,7 +155,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. */ private boolean shouldSave(Tab tab) { @@ -900,15 +908,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // {@link GURL#getScheme()} is not available in unit tests. if (mIgnoreUrlSchemesForTesting) return true; -@@ -217,7 +219,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -225,7 +228,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { -- void createHistoricalTab(Tab tab); -+ void createHistoricalTab(Tab tab, boolean is_always_incognito); - void createHistoricalGroup(TabModel model, String title, Tab[] tabs); - void createHistoricalBulkClosure( - TabModel model, int[] groupIds, String[] titles, int[] perTabGroupId, Tab[] tabs); +- void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion); ++ void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion, boolean is_always_incognito); + void createHistoricalGroup(TabModel model, String title, Tab[] tabs, + ByteBuffer[] byteBuffers, int[] savedStationsVersions); + void createHistoricalBulkClosure(TabModel model, int[] groupIds, String[] titles, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java @@ -984,7 +992,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -747,6 +749,13 @@ public class TabPersistentStore { +@@ -757,6 +759,13 @@ public class TabPersistentStore { } } } @@ -1046,7 +1054,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4762,6 +4762,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4886,6 +4886,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -1060,7 +1068,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc --- a/chrome/browser/android/historical_tab_saver.cc +++ b/chrome/browser/android/historical_tab_saver.cc -@@ -25,6 +25,11 @@ +@@ -26,6 +26,11 @@ #include "components/sessions/core/tab_restore_service.h" #include "content/public/browser/web_contents.h" @@ -1072,16 +1080,17 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and using base::android::JavaParamRef; using base::android::ScopedJavaLocalRef; -@@ -35,7 +40,7 @@ namespace { - // Defined in TabGroupModelFilter.java - constexpr int kInvalidGroupId = -1; +@@ -38,7 +43,8 @@ constexpr int kInvalidGroupId = -1; --void CreateHistoricalTab(TabAndroid* tab_android) { -+void CreateHistoricalTab(TabAndroid* tab_android, bool is_always_incognito) { + void CreateHistoricalTab( + TabAndroid* tab_android, +- WebContentsStateByteBuffer web_contents_state_byte_buffer) { ++ WebContentsStateByteBuffer web_contents_state_byte_buffer, ++ bool is_always_incognito) { if (!tab_android) { return; } -@@ -45,9 +50,14 @@ void CreateHistoricalTab(TabAndroid* tab_android) { +@@ -49,9 +55,14 @@ void CreateHistoricalTab( return; } @@ -1098,22 +1107,28 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -190,8 +200,9 @@ std::unique_ptr ScopedWebContents::CreateForTab( - // static - static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -243,14 +254,15 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, -- const JavaParamRef& jtab_android) { -- CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android)); -+ const JavaParamRef& jtab_android, -+ jboolean is_always_incognito) { -+ CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android), is_always_incognito); + const JavaParamRef& jtab_android, + const JavaParamRef& state, +- jint saved_state_version) { ++ jint saved_state_version, ++ bool is_always_incognito) { + void* data = env->GetDirectBufferAddress(state); + int size = env->GetDirectBufferCapacity(state); + + WebContentsStateByteBuffer web_contents_state = + WebContentsStateByteBuffer(data, size, (int)saved_state_version); + CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android), +- std::move(web_contents_state)); ++ std::move(web_contents_state), is_always_incognito); } // static diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -299,6 +299,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager() +@@ -310,6 +310,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager() return IdentityManagerFactory::GetForProfile(profile_); } @@ -1130,7 +1145,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h -@@ -78,6 +78,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { +@@ -80,6 +80,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { const override; signin::IdentityManager* GetIdentityManager() const override; bool IsOffTheRecord() const override; @@ -1187,7 +1202,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3758,6 +3758,12 @@ const char kOfflinePagesLivePageSharingDescription[] = +@@ -3907,6 +3907,12 @@ const char kOfflinePagesLivePageSharingDescription[] = "Enables to share current loaded page as offline page by saving as MHTML " "first."; @@ -1197,36 +1212,37 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti + "Enables autosave of offline page, as automatic switching in case " + "the device goes offline."; + - const char kPageInfoDiscoverabilityTimeoutsName[] = - "Page info discoverability timeouts"; - const char kPageInfoDiscoverabilityTimeoutsDescription[] = + const char kPageInfoHistoryName[] = "Page info history"; + const char kPageInfoHistoryDescription[] = + "Enable a history sub page to the page info menu, and a button to forget " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2141,6 +2141,9 @@ extern const char kNotificationPermissionRationaleDescription[]; +@@ -2227,6 +2227,9 @@ extern const char kNotificationPermissionRationaleDescription[]; extern const char kOfflinePagesLivePageSharingName[]; extern const char kOfflinePagesLivePageSharingDescription[]; +extern const char kOfflinePagesAutoSaveFeatureName[]; +extern const char kOfflinePagesAutoSaveFeatureDescription[]; + - extern const char kPageInfoDiscoverabilityTimeoutsName[]; - extern const char kPageInfoDiscoverabilityTimeoutsDescription[]; + extern const char kPageInfoHistoryName[]; + extern const char kPageInfoHistoryDescription[]; diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -545,8 +545,8 @@ const base::Feature kCCTNewDownloadTab{"CCTNewDownloadTab", - const base::Feature kCCTIncognito{"CCTIncognito", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -570,9 +570,9 @@ BASE_FEATURE(kCCTNewDownloadTab, --const base::Feature kCCTIncognitoAvailableToThirdParty{ -- "CCTIncognitoAvailableToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT}; -+const base::Feature kCCTIncognitoAvailableToThirdParty{ // Enabled by default in Bromite -+ "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kCCTPackageNameRecording{"CCTPackageNameRecording", - base::FEATURE_ENABLED_BY_DEFAULT}; +-BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, ++BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, // Enabled by default in Bromite + "CCTIncognitoAvailableToThirdParty", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); + + BASE_FEATURE(kCCTPackageNameRecording, + "CCTPackageNameRecording", diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc @@ -1551,7 +1567,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -226,6 +226,7 @@ +@@ -229,6 +229,7 @@ #include "components/feed/core/shared_prefs/pref_names.h" #if BUILDFLAG(IS_ANDROID) @@ -1559,7 +1575,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/explore_sites/history_statistics_reporter.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" -@@ -1416,6 +1417,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1390,6 +1391,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); video_tutorials::RegisterPrefs(registry); @@ -1567,9 +1583,9 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse + registry->RegisterBooleanPref(prefs::kAlwaysIncognitoEnabled, + /*default_value=*/false); + HistoryTabHelper::RegisterProfilePrefs(registry); - #else // BUILDFLAG(IS_ANDROID) - autofill_assistant::AutofillAssistant::RegisterProfilePrefs(registry); + #else // BUILDFLAG(IS_ANDROID) AppShortcutManager::RegisterProfilePrefs(registry); + browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry); diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn @@ -1717,7 +1733,7 @@ new file mode 100644 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -3437,6 +3437,12 @@ const char kShowCaretBrowsingDialog[] = +@@ -3458,6 +3458,12 @@ const char kShowCaretBrowsingDialog[] = const char kLacrosLaunchSwitch[] = "lacros_launch_switch"; #endif @@ -1733,7 +1749,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1214,6 +1214,8 @@ extern const char kDiscountConsentShowInterestIn[]; +@@ -1219,6 +1219,8 @@ extern const char kDiscountConsentShowInterestIn[]; #if BUILDFLAG(IS_ANDROID) extern const char kWebXRImmersiveArEnabled[]; @@ -1742,7 +1758,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h #endif #if !BUILDFLAG(IS_ANDROID) -@@ -1251,6 +1253,10 @@ extern const char kPrivacyGuideViewed[]; +@@ -1256,6 +1258,10 @@ extern const char kPrivacyGuideViewed[]; extern const char kCorsNonWildcardRequestHeadersSupport[]; @@ -1756,7 +1772,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -117,10 +117,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -1769,7 +1785,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -154,7 +156,9 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -157,7 +159,9 @@ PrefProvider::PrefProvider(PrefService* prefs, content_settings_prefs_.insert(std::make_pair( info->type(), std::make_unique( info->type(), prefs_, &pref_change_registrar_, @@ -1850,9 +1866,9 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc -@@ -44,6 +44,9 @@ const base::Feature kOfflineIndicatorFeature{"OfflineIndicator", - const base::Feature kOfflinePagesNetworkStateLikelyUnknown{ - "OfflinePagesNetworkStateLikelyUnknown", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -52,6 +52,9 @@ BASE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown, + "OfflinePagesNetworkStateLikelyUnknown", + base::FEATURE_DISABLED_BY_DEFAULT); +const base::Feature kOfflinePagesAutoSaveFeature{ + "OfflinePagesAutoSaveEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -1863,10 +1879,10 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h --- a/components/offline_pages/core/offline_page_feature.h +++ b/components/offline_pages/core/offline_page_feature.h -@@ -21,6 +21,7 @@ extern const base::Feature kOfflinePagesDescriptiveFailStatusFeature; - extern const base::Feature kOfflineIndicatorFeature; - extern const base::Feature kOnTheFlyMhtmlHashComputationFeature; - extern const base::Feature kOfflinePagesNetworkStateLikelyUnknown; +@@ -21,6 +21,7 @@ BASE_DECLARE_FEATURE(kOfflinePagesDescriptiveFailStatusFeature); + BASE_DECLARE_FEATURE(kOfflineIndicatorFeature); + BASE_DECLARE_FEATURE(kOnTheFlyMhtmlHashComputationFeature); + BASE_DECLARE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown); +extern const base::Feature kOfflinePagesAutoSaveFeature; // The parameter name used to find the experiment tag for prefetching offline @@ -1885,7 +1901,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -125,6 +125,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -128,6 +128,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual signin::IdentityManager* GetIdentityManager() const = 0; virtual bool IsOffTheRecord() const = 0; @@ -1896,10 +1912,10 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -272,7 +272,7 @@ bool BaseSearchProvider::CanSendRequest( +@@ -273,7 +273,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( } - // Don't run if in incognito mode. + // Don't make a suggest request if in incognito mode. - if (client->IsOffTheRecord()) { + if (client->IsOffTheRecord() && client->IsAlwaysIncognitoEnabled() == false) { return false; @@ -1908,7 +1924,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -836,7 +836,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { +@@ -832,7 +832,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { // keyword input to a keyword suggest server, if any.) const TemplateURL* default_url = providers_.GetDefaultProviderURL(); const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 48161fa2..1c4a2ce5 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -@@ -89,6 +89,12 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -84,6 +84,12 @@ public class BookmarkActionBar extends SelectableListToolbar } else if (menuItem.getItemId() == R.id.search_menu_id) { mDelegate.openSearchUI(); return true; @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } SelectionDelegate selectionDelegate = mDelegate.getSelectionDelegate(); -@@ -140,6 +146,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -135,6 +141,8 @@ public class BookmarkActionBar extends SelectableListToolbar void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -207,7 +207,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -149,6 +157,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -144,6 +152,8 @@ public class BookmarkActionBar extends SelectableListToolbar super.showNormalView(); if (mDelegate == null) { @@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -178,6 +188,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -173,6 +183,8 @@ public class BookmarkActionBar extends SelectableListToolbar @Override public void onFolderStateSet(BookmarkId folder) { mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); @@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import android.text.TextUtils; import android.util.Pair; -@@ -46,6 +59,32 @@ import java.util.HashMap; +@@ -45,6 +58,32 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the * bookmark model stored in native. -@@ -737,6 +776,209 @@ public class BookmarkBridge { +@@ -526,6 +565,209 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } @@ -492,7 +492,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. -@@ -1285,6 +1527,39 @@ public class BookmarkBridge { +@@ -1074,6 +1316,39 @@ class BookmarkBridge { depthList.add(depth); } @@ -532,7 +532,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList>(); for (int i = 0; i < left.length; i++) { -@@ -1356,6 +1631,9 @@ public class BookmarkBridge { +@@ -1145,6 +1420,9 @@ class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, List bookmarksList); @@ -545,7 +545,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -66,6 +66,16 @@ public interface BookmarkDelegate { +@@ -79,6 +79,16 @@ public interface BookmarkDelegate { */ void openSearchUI(); @@ -565,7 +565,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -36,6 +36,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils; +@@ -37,6 +37,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils; import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate; @@ -574,7 +574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.components.favicon.LargeIconBridge; import org.chromium.url.GURL; -@@ -58,6 +60,8 @@ public class BookmarkManager +@@ -60,6 +62,8 @@ public class BookmarkManager private ComponentName mOpenBookmarkComponentName; private ViewGroup mMainView; private BookmarkModel mBookmarkModel; @@ -583,7 +583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -352,6 +356,14 @@ public class BookmarkManager +@@ -356,6 +360,14 @@ public class BookmarkManager mNativePage = nativePage; } @@ -598,7 +598,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet -@@ -532,6 +544,16 @@ public class BookmarkManager +@@ -552,6 +564,16 @@ public class BookmarkManager } } @@ -704,7 +704,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1875,6 +1875,13 @@ static_library("browser") { +@@ -1887,6 +1887,13 @@ static_library("browser") { ] } @@ -718,7 +718,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -2906,6 +2913,8 @@ static_library("browser") { +@@ -2919,6 +2926,8 @@ static_library("browser") { "autofill/manual_filling_controller.h", "autofill/manual_filling_controller_impl.cc", "autofill/manual_filling_controller_impl.h", @@ -727,7 +727,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "autofill/manual_filling_utils.cc", "autofill/manual_filling_utils.h", "autofill/manual_filling_view_interface.h", -@@ -3587,8 +3596,6 @@ static_library("browser") { +@@ -3602,8 +3611,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -739,7 +739,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8880,6 +8880,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9088,6 +9088,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, #endif @@ -1251,7 +1251,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6615,6 +6615,11 @@ const char kDisableLacrosTtsSupportDescription[] = +@@ -6836,6 +6836,11 @@ const char kVcControlsUiDescription[] = #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -1266,9 +1266,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3821,6 +3821,9 @@ extern const char kDisableLacrosTtsSupportName[]; - extern const char kDisableLacrosTtsSupportDescription[]; - #endif // BUILDFLAG(IS_CHROMEOS_ASH) +@@ -3942,6 +3942,9 @@ extern const char kDisableLacrosTtsSupportDescription[]; + extern const char kVcControlsUiName[]; + extern const char kVcControlsUiDescription[]; +extern const char kBookmarksExportUseSafName[]; +extern const char kBookmarksExportUseSafDescription[]; @@ -1279,7 +1279,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -184,6 +184,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -182,6 +182,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCastDeviceFilter, &kClearOmniboxFocusAfterNavigation, &kCloseTabSuggestions, @@ -1287,9 +1287,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kCriticalPersistedTabData, &kCommerceCoupons, &kCCTBackgroundTab, -@@ -987,6 +988,10 @@ const base::Feature kWebApkInstallService{"WebApkInstallService", - const base::Feature kWebApkTrampolineOnInitialIntent{ - "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -1156,6 +1157,10 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, + "WebApkTrampolineOnInitialIntent", + base::FEATURE_ENABLED_BY_DEFAULT); +// disabled by default because of an issue on Android 6.0 +const base::Feature kBookmarksExportUseSaf{"BookmarksExportUseSaf", @@ -1301,20 +1301,20 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -172,6 +172,7 @@ extern const base::Feature kTabSwitcherOnReturn; - extern const base::Feature kTabToGTSAnimation; - extern const base::Feature kTestDefaultDisabled; - extern const base::Feature kTestDefaultEnabled; -+extern const base::Feature kBookmarksExportUseSaf; - extern const base::Feature kToolbarMicIphAndroid; - extern const base::Feature kToolbarPhoneOptimizations; - extern const base::Feature kToolbarScrollAblationAndroid; +@@ -171,6 +171,7 @@ BASE_DECLARE_FEATURE(kTabSwitcherOnReturn); + BASE_DECLARE_FEATURE(kTabToGTSAnimation); + BASE_DECLARE_FEATURE(kTestDefaultDisabled); + BASE_DECLARE_FEATURE(kTestDefaultEnabled); ++BASE_DECLARE_FEATURE(kBookmarksExportUseSaf); + BASE_DECLARE_FEATURE(kToolbarMicIphAndroid); + BASE_DECLARE_FEATURE(kToolbarPhoneOptimizations); + BASE_DECLARE_FEATURE(kToolbarScrollAblationAndroid); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -612,6 +612,7 @@ public abstract class ChromeFeatureList { - public static final String USE_CHIME_ANDROID_SDK = "UseChimeAndroidSdk"; - public static final String USE_CLIENT_CONFIG_IPH = "UseClientConfigIPH"; +@@ -620,6 +620,7 @@ public abstract class ChromeFeatureList { + public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = + "UseLibunwindstackNativeUnwinderAndroid"; public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar"; @@ -1323,7 +1323,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc --- a/chrome/browser/importer/profile_writer.cc +++ b/chrome/browser/importer/profile_writer.cc -@@ -105,12 +105,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page, +@@ -106,12 +106,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page, HistoryServiceFactory::GetForProfile(profile_, ServiceAccessType::EXPLICIT_ACCESS) ->AddPagesWithDetails(page, visit_source); @@ -1338,7 +1338,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer } void ProfileWriter::AddHomepage(const GURL& home_page) { -@@ -131,6 +133,16 @@ void ProfileWriter::AddBookmarks( +@@ -132,6 +134,16 @@ void ProfileWriter::AddBookmarks( return; BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_); @@ -1381,7 +1381,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -100,6 +100,8 @@ public final class ChromePreferenceKeys { +@@ -113,6 +113,8 @@ public final class ChromePreferenceKeys { public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url"; public static final String BOOKMARKS_LAST_USED_PARENT = "enhanced_bookmark_last_used_parent_folder"; @@ -1390,8 +1390,8 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * Whether Chrome is set as the default browser. -@@ -1027,6 +1029,7 @@ public final class ChromePreferenceKeys { - ASSISTANT_VOICE_SEARCH_ENABLED, +@@ -1049,6 +1051,7 @@ public final class ChromePreferenceKeys { + AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, @@ -1429,7 +1429,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -402,6 +402,9 @@ static_library("common_lib") { +@@ -401,6 +401,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1656,8 +1656,8 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -205,6 +205,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog - void* params); +@@ -210,6 +210,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog + const GURL* caller = nullptr); bool HasMultipleFileTypeChoices(); + virtual void ShowToast(const std::string& message) = 0; @@ -1668,7 +1668,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc -@@ -140,6 +140,12 @@ void SelectFileDialogImpl::SelectFileImpl( +@@ -142,6 +142,12 @@ void SelectFileDialogImpl::SelectFileImpl( owning_window->GetJavaObject()); } @@ -1684,9 +1684,9 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/s diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h --- a/ui/shell_dialogs/select_file_dialog_android.h +++ b/ui/shell_dialogs/select_file_dialog_android.h -@@ -57,6 +57,8 @@ class SelectFileDialogImpl : public SelectFileDialog { - gfx::NativeWindow owning_window, - void* params) override; +@@ -58,6 +58,8 @@ class SelectFileDialogImpl : public SelectFileDialog { + void* params, + const GURL* caller) override; + void ShowToast(const std::string& message) override; + diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index e828f043..81b52d17 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -431,6 +441,18 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -433,6 +443,18 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -196,7 +196,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4821,6 +4821,21 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Show original diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 30baa8f4..37da3fb0 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -187,6 +190,9 @@ found in the LICENSE file. +@@ -190,6 +193,9 @@ found in the LICENSE file. @@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife 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 -@@ -223,6 +223,8 @@ import java.util.HashSet; +@@ -224,6 +224,8 @@ import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs * are accessible via a chrome specific tab switching UI. -@@ -2183,6 +2185,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2342,6 +2343,11 @@ public abstract class ChromeActivity return true; } @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3523,6 +3523,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index fff72247..5cd603aa 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -521,6 +521,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { +@@ -525,6 +525,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) @@ -40,7 +40,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = { {"mode", "always-none"}}; const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = { -@@ -4266,7 +4282,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4376,7 +4392,11 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsLinux | kOsWin, FEATURE_VALUE_TYPE(features::kSystemNotifications)}, #endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH) @@ -65,7 +65,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/metrics/histogram_functions.h" -@@ -327,6 +329,15 @@ AutocompleteController::AutocompleteController( +@@ -338,6 +340,15 @@ AutocompleteController::AutocompleteController( is_cros_launcher_(is_cros_launcher), search_service_worker_signal_sent_(false), template_url_service_(provider_client_->GetTemplateURLService()) { @@ -105,7 +105,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/feature_list.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -681,6 +682,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -677,6 +678,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { diff --git a/build/patches/Add-flag-for-save-data-header.patch b/build/patches/Add-flag-for-save-data-header.patch index 5d10d01e..0a97d121 100644 --- a/build/patches/Add-flag-for-save-data-header.patch +++ b/build/patches/Add-flag-for-save-data-header.patch @@ -8,14 +8,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.cc | 4 ++++ chrome/browser/flag_descriptions.h | 3 +++ .../browser/loader/browser_initiated_resource_request.cc | 8 ++++++++ - services/network/public/cpp/features.cc | 5 +++++ - services/network/public/cpp/features.h | 3 ++- - 6 files changed, 26 insertions(+), 2 deletions(-) + services/network/public/cpp/features.cc | 4 ++++ + services/network/public/cpp/features.h | 2 ++ + 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4862,7 +4862,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4986,7 +4986,10 @@ const FeatureEntry kFeatureEntries[] = { {"force-text-direction", flag_descriptions::kForceTextDirectionName, flag_descriptions::kForceTextDirectionDescription, kOsAll, MULTI_VALUE_TYPE(kForceTextDirectionChoices)}, @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1230,6 +1230,10 @@ const char kDeprecateAltBasedSixPackDescription[] = +@@ -1261,6 +1261,10 @@ const char kDeprecateAltBasedSixPackDescription[] = "Show deprecation notifications and disable functionality for Alt based " "six pack deprecations. The Search based versions continue to work."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -644,6 +644,9 @@ extern const char kDeprecateAltClickDescription[]; +@@ -659,6 +659,9 @@ extern const char kDeprecateAltClickDescription[]; extern const char kDeprecateAltBasedSixPackName[]; extern const char kDeprecateAltBasedSixPackDescription[]; @@ -84,30 +84,28 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -20,6 +20,11 @@ namespace features { - const base::Feature kExpectCTReporting{"ExpectCTReporting", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -20,6 +20,10 @@ BASE_FEATURE(kExpectCTReporting, + "ExpectCTReporting", + base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kEnableSaveDataHeader, ++ "EnableSaveDataHeader", ++ base::FEATURE_DISABLED_BY_DEFAULT); + -+// Enable save-data header separately (without enabled data reduction service). -+const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader", -+ base::FEATURE_DISABLED_BY_DEFAULT}; -+ - const base::Feature kNetworkErrorLogging{"NetworkErrorLogging", - base::FEATURE_ENABLED_BY_DEFAULT}; - + BASE_FEATURE(kNetworkErrorLogging, + "NetworkErrorLogging", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -45,7 +45,8 @@ COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kMdnsResponderGeneratedNameListing; +@@ -52,6 +52,8 @@ extern const base::Feature kIPv6Probing; COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kOpaqueResponseBlockingV01; -- -+COMPONENT_EXPORT(NETWORK_CPP) -+extern const base::Feature kEnableSaveDataHeader; + extern const base::FeatureParam kPlatformProvidedTrustTokenIssuance; + ++COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader); ++ COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kTrustTokens; + BASE_DECLARE_FEATURE(kWebSocketReassembleShortMessages); -- 2.25.1 diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 5ad56e6e..2ee91813 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1010,6 +1010,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { +@@ -1040,6 +1040,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { switches::kForceDisplayColorProfile, "hdr10"}, }; @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kMemlogModeChoices[] = { {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode, -@@ -4809,6 +4814,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4933,6 +4938,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidPictureInPictureAPIName, flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid, FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)}, @@ -46,7 +46,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1815,6 +1815,10 @@ const char kUnthrottledNestedTimeoutDescription[] = +@@ -1875,6 +1875,10 @@ const char kUnthrottledNestedTimeoutDescription[] = "websites abusing the API will still eventually have their setTimeouts " "clamped."; @@ -60,7 +60,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1014,6 +1014,9 @@ extern const char kLogJsConsoleMessagesDescription[]; +@@ -1050,6 +1050,9 @@ extern const char kLogJsConsoleMessagesDescription[]; extern const char kUnthrottledNestedTimeoutName[]; extern const char kUnthrottledNestedTimeoutDescription[]; diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 19ee5e01..b61f63fe 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3548,6 +3548,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3648,6 +3648,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebRtcRemoteEventLogName, flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)}, @@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1332,6 +1332,11 @@ const char kEnablePenetratingImageSelectionDescription[] = +@@ -1363,6 +1363,11 @@ const char kEnablePenetratingImageSelectionDescription[] = "Enables image options to be surfaced in the context menu for nodes " "covered by transparent overlays."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -729,6 +729,9 @@ extern const char kEnablePortalsDescription[]; +@@ -744,6 +744,9 @@ extern const char kEnablePortalsDescription[]; extern const char kEnablePortalsCrossOriginName[]; extern const char kEnablePortalsCrossOriginDescription[]; @@ -57,16 +57,16 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -283,11 +283,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", +@@ -303,11 +303,7 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, // when in background. - const base::Feature kResumeBackgroundVideo { - "resume-background-video", + BASE_FEATURE(kResumeBackgroundVideo, + "resume-background-video", -#if BUILDFLAG(IS_ANDROID) -- base::FEATURE_ENABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT -#else - base::FEATURE_DISABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT -#endif - }; + ); // When enabled, MediaCapabilities will check with GPU Video Accelerator -- diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 6dc765d4..e23eae47 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5851,6 +5851,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6037,6 +6037,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName, flag_descriptions::kReaderModeInCCTDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3438,6 +3438,10 @@ const char kCCTRealTimeEngagementSignalsDescription[] = +@@ -3578,6 +3578,10 @@ const char kCCTRealTimeEngagementSignalsDescription[] = "Enables sending real-time engagement signals (e.g. scroll) through " "CustomTabsCallback."; @@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -795,6 +795,9 @@ extern const char kEnableWasmLazyCompilationName[]; +@@ -807,6 +807,9 @@ extern const char kEnableWasmLazyCompilationName[]; extern const char kEnableWasmLazyCompilationDescription[]; extern const char kEnableWasmTieringName[]; @@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/socket/datagram_client_socket.h" -@@ -4084,8 +4085,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { +@@ -3727,8 +3728,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { if (last_ipv6_probe_time_.is_null() || (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() > kIPv6ProbePeriodMs) { @@ -128,9 +128,9 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -36,6 +36,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; - const base::Feature kThrottleDelayable{"ThrottleDelayable", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -38,6 +38,10 @@ BASE_FEATURE(kThrottleDelayable, + "ThrottleDelayable", + base::FEATURE_ENABLED_BY_DEFAULT); +// Enable IPv6 ping probes to RIPE DNS. +const base::Feature kIPv6Probing{"IPv6Probing", @@ -142,14 +142,14 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -18,6 +18,8 @@ extern const base::Feature kExpectCTReporting; - COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kNetworkErrorLogging; +@@ -48,6 +48,8 @@ COMPONENT_EXPORT(NETWORK_CPP) + extern const base::FeatureParam + kTrustTokenOperationsRequiringOriginTrial; COMPONENT_EXPORT(NETWORK_CPP) +extern const base::Feature kIPv6Probing; +COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kReporting; + extern const base::FeatureParam kPlatformProvidedTrustTokenIssuance; + COMPONENT_EXPORT(NETWORK_CPP) - extern const base::Feature kThrottleDelayable; -- 2.25.1 diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index 86ad9866..34ff0d26 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3522,6 +3522,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3622,6 +3622,9 @@ const FeatureEntry kFeatureEntries[] = { {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, @@ -28,7 +28,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3817,6 +3817,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support"; +@@ -3961,6 +3961,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support"; const char kPhotoPickerVideoSupportDescription[] = "Enables video files to be shown in the Photo Picker dialog"; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2188,6 +2188,9 @@ extern const char kQueryTilesNTPDescription[]; +@@ -2271,6 +2271,9 @@ extern const char kQueryTilesNTPDescription[]; extern const char kQueryTilesOnStartName[]; extern const char kQueryTilesOnStartDescription[]; extern const char kQueryTilesSingleTierName[]; diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 5563f80d..5ad7f1f5 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7244,6 +7244,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7468,6 +7468,10 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)}, #endif @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6242,6 +6242,9 @@ extern const char kLacrosScreenCoordinatesDescription[]; +@@ -6453,6 +6453,9 @@ extern const char kLacrosScreenCoordinatesDescription[]; #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS) @@ -46,7 +46,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3814,6 +3814,8 @@ extern const char kWebUITabStripTabDragIntegrationName[]; +@@ -3932,6 +3932,8 @@ extern const char kWebUITabStripTabDragIntegrationName[]; extern const char kWebUITabStripTabDragIntegrationDescription[]; #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH) @@ -69,9 +69,9 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -121,6 +121,10 @@ const base::Feature kBackForwardCacheMemoryControls { +@@ -130,6 +130,10 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, #endif - }; + ); +// Enables vibration; an user gesture will still be required if enabled. +const base::Feature kVibration{"Vibration", @@ -83,7 +83,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -337,6 +337,8 @@ CONTENT_EXPORT extern const base::FeatureParam +@@ -322,6 +322,8 @@ CONTENT_EXPORT extern const base::FeatureParam kCompositorLockTimeout; #endif // BUILDFLAG(IS_ANDROID) @@ -91,7 +91,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co + #if BUILDFLAG(IS_MAC) - CONTENT_EXPORT extern const base::Feature kDeviceMonitorMac; + CONTENT_EXPORT BASE_DECLARE_FEATURE(kDeviceMonitorMac); diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h @@ -140,7 +140,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1786,6 +1786,10 @@ +@@ -1827,6 +1827,10 @@ name: "OrientationEvent", status: {"Android": "stable"}, }, diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 02dd2082..e077ce79 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,10 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1558,6 +1558,11 @@ config("default_warnings") { - # TODO(https://crbug.com/1363759): Evaluate and possibly enable. - cflags += [ "-Wno-deprecated-copy-with-user-provided-copy" ] - } +@@ -1580,6 +1580,11 @@ config("default_warnings") { + # TODO(crbug.com/1352183) Evaluate and possibly enable. + "-Wno-bitfield-constant-conversion", + ] + if (skip_clangd_unsupported_options) { + cflags -= [ + "-Wno-deprecated-builtins", diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index c327a4cf..b177fcee 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -181,7 +181,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc b/c diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -410,10 +410,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -411,10 +411,7 @@ void ChromeBrowserMainExtraPartsProfiles:: LacrosFirstRunServiceFactory::GetInstance(); #endif LanguageModelManagerFactory::GetInstance(); @@ -196,9 +196,9 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -503,6 +503,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - web_contents); - } +@@ -491,6 +491,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + PolicyAuditorBridge::CreateForWebContents(web_contents); + PluginObserverAndroid::CreateForWebContents(web_contents); video_tutorials::VideoTutorialTabHelper::CreateForWebContents(web_contents); + LastTabStandingTrackerTabHelper::CreateForWebContents(web_contents); #else @@ -250,15 +250,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -34,6 +34,7 @@ import org.chromium.components.browser_ui.settings.ManagedPreferencesUtils; - import org.chromium.components.browser_ui.settings.SettingsUtils; +@@ -35,6 +35,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; + import org.chromium.components.browser_ui.settings.TextMessagePreference; import org.chromium.components.content_settings.ContentSettingValues; import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.SessionModel; import org.chromium.components.embedder_support.util.Origin; import org.chromium.content_public.browser.BrowserContextHandle; import org.chromium.content_public.browser.ContentFeatureList; -@@ -526,6 +527,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -537,6 +538,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment } } @@ -270,7 +270,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -918,6 +924,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -955,6 +961,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment if (contentType == mHighlightedPermission) { switchPreference.setBackgroundColor(mHighlightColor); } @@ -292,7 +292,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c import org.chromium.components.location.LocationUtils; import org.chromium.content_public.browser.BrowserContextHandle; import org.chromium.url.GURL; -@@ -54,7 +55,8 @@ public class WebsitePreferenceBridge { +@@ -55,7 +56,8 @@ public class WebsitePreferenceBridge { @CalledByNative private static void insertPermissionInfoIntoList(@ContentSettingsType int type, @@ -302,7 +302,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (type == ContentSettingsType.MEDIASTREAM_CAMERA || type == ContentSettingsType.MEDIASTREAM_MIC) { for (PermissionInfo info : list) { -@@ -63,7 +65,7 @@ public class WebsitePreferenceBridge { +@@ -64,7 +66,7 @@ public class WebsitePreferenceBridge { } } } @@ -314,7 +314,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -120,7 +120,8 @@ typedef void (*InfoListInsertionFunction)( +@@ -122,7 +122,8 @@ typedef void (*InfoListInsertionFunction)( const base::android::JavaRef&, const base::android::JavaRef&, const base::android::JavaRef&, @@ -324,7 +324,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid void GetOrigins(JNIEnv* env, const JavaParamRef& jbrowser_context_handle, -@@ -162,7 +163,7 @@ void GetOrigins(JNIEnv* env, +@@ -164,7 +165,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -333,7 +333,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid } // Add any origins which have a default content setting value (thus skipped -@@ -184,7 +185,7 @@ void GetOrigins(JNIEnv* env, +@@ -186,7 +187,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -345,7 +345,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -600,6 +600,11 @@ +@@ -606,6 +606,11 @@ URL truncated @@ -553,7 +553,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1130,6 +1130,8 @@ void PageInfo::PresentSitePermissions() { +@@ -1168,6 +1168,8 @@ void PageInfo::PresentSitePermissions() { permission_info.source = info.source; permission_info.is_one_time = (info.metadata.session_model == content_settings::SessionModel::OneTime); @@ -771,7 +771,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc -@@ -40,6 +40,14 @@ void PermissionPromptAndroid::Accept() { +@@ -41,6 +41,14 @@ void PermissionPromptAndroid::Accept() { delegate_->Accept(); } @@ -958,7 +958,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -252,6 +252,20 @@ PermissionContextBase::CreatePermissionRequest( +@@ -226,6 +226,20 @@ PermissionContextBase::CreatePermissionRequest( std::move(delete_callback)); } @@ -979,7 +979,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -443,7 +457,8 @@ void PermissionContextBase::PermissionDecided( +@@ -405,7 +419,8 @@ void PermissionContextBase::PermissionDecided( const GURL& embedding_origin, BrowserPermissionCallback callback, ContentSetting content_setting, @@ -989,7 +989,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -451,9 +466,9 @@ void PermissionContextBase::PermissionDecided( +@@ -413,9 +428,9 @@ void PermissionContextBase::PermissionDecided( content_setting); bool persist = content_setting != CONTENT_SETTING_DEFAULT; @@ -1001,7 +1001,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } content::BrowserContext* PermissionContextBase::browser_context() const { -@@ -503,11 +518,26 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -465,11 +480,26 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, ContentSetting content_setting, bool is_one_time) { @@ -1029,7 +1029,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } UpdateTabContext(id, requesting_origin, -@@ -528,6 +558,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -490,6 +520,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1045,7 +1045,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -536,6 +575,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -498,6 +537,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, content_settings::ContentSettingConstraints constraints = { base::Time(), is_one_time ? content_settings::SessionModel::OneTime : content_settings::SessionModel::Durable}; @@ -1057,7 +1057,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -141,6 +141,14 @@ class PermissionContextBase : public KeyedService, +@@ -139,6 +139,14 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1072,7 +1072,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -161,6 +169,11 @@ class PermissionContextBase : public KeyedService, +@@ -159,6 +167,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1084,7 +1084,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -193,6 +206,14 @@ class PermissionContextBase : public KeyedService, +@@ -191,6 +204,14 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback) const; @@ -1099,7 +1099,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi ContentSettingsType content_settings_type() const { return content_settings_type_; } -@@ -219,7 +240,8 @@ class PermissionContextBase : public KeyedService, +@@ -217,7 +238,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, BrowserPermissionCallback callback, ContentSetting content_setting, @@ -1126,7 +1126,7 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -30,6 +30,18 @@ PermissionRequest::PermissionRequest( +@@ -31,6 +31,18 @@ PermissionRequest::PermissionRequest( permission_decided_callback_(std::move(permission_decided_callback)), delete_callback_(std::move(delete_callback)) {} @@ -1145,7 +1145,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -237,17 +249,35 @@ std::u16string PermissionRequest::GetMessageTextFragment() const { +@@ -235,17 +247,35 @@ std::u16string PermissionRequest::GetMessageTextFragment() const { } #endif @@ -1210,7 +1210,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -97,10 +107,10 @@ class PermissionRequest { +@@ -106,10 +116,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1223,7 +1223,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -138,6 +148,9 @@ class PermissionRequest { +@@ -147,6 +157,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1236,7 +1236,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -156,7 +156,7 @@ void PermissionRequestManager::AddRequest( +@@ -148,7 +148,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1245,7 +1245,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -232,7 +232,7 @@ void PermissionRequestManager::AddRequest( +@@ -224,7 +224,7 @@ void PermissionRequestManager::AddRequest( if (auto_approval_origin) { if (url::Origin::Create(request->requesting_origin()) == auto_approval_origin.value()) { @@ -1254,14 +1254,16 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -491,12 +491,13 @@ void PermissionRequestManager::Accept() { - for (requests_iter = requests_.begin(); requests_iter != requests_.end(); - requests_iter++) { +@@ -541,14 +541,15 @@ void PermissionRequestManager::Accept() { + (*requests_iter)->request_type(), + PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, - /*is_one_time=*/false); + /*is_one_time=*/false, + content_settings::LifetimeMode::Always); } + + NotifyRequestDecided(PermissionAction::GRANTED); FinalizeCurrentRequests(PermissionAction::GRANTED); } @@ -1270,15 +1272,17 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -504,12 +505,22 @@ void PermissionRequestManager::AcceptThisTime() { - for (requests_iter = requests_.begin(); requests_iter != requests_.end(); - requests_iter++) { +@@ -559,7 +560,8 @@ void PermissionRequestManager::AcceptThisTime() { + (*requests_iter)->request_type(), + PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, - /*is_one_time=*/true); + /*is_one_time=*/true, + mode); } - FinalizeCurrentRequests(PermissionAction::GRANTED_ONCE); + + NotifyRequestDecided(PermissionAction::GRANTED_ONCE); +@@ -567,6 +569,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1294,16 +1298,16 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -529,7 +540,7 @@ void PermissionRequestManager::Deny() { +@@ -586,7 +597,7 @@ void PermissionRequestManager::Deny() { std::vector::iterator requests_iter; for (requests_iter = requests_.begin(); requests_iter != requests_.end(); requests_iter++) { -- PermissionDeniedIncludingDuplicates(*requests_iter); -+ PermissionDeniedIncludingDuplicates(*requests_iter, is_one_time, lifetime_option); - } - FinalizeCurrentRequests(PermissionAction::DENIED); - } -@@ -894,25 +905,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest( +- StorePermissionActionForUMA((*requests_iter)->requesting_origin(), ++ StorePermissionActionForUMA((*requests_iter, is_one_time, lifetime_option)->requesting_origin(), + (*requests_iter)->request_type(), + PermissionAction::DENIED); + PermissionDeniedIncludingDuplicates(*requests_iter); +@@ -967,25 +978,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1335,7 +1339,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } void PermissionRequestManager::CancelledIncludingDuplicates( -@@ -1092,7 +1103,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { +@@ -1187,7 +1198,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { void PermissionRequestManager::DoAutoResponseForTesting() { switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1347,7 +1351,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h --- a/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h -@@ -136,8 +136,10 @@ class PermissionRequestManager +@@ -141,8 +141,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept() override; @@ -1359,7 +1363,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; bool WasCurrentRequestAlreadyDisplayed() override; -@@ -274,9 +276,12 @@ class PermissionRequestManager +@@ -303,9 +305,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 85261de1..4b5d9fea 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -41,10 +41,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -184,6 +188,9 @@ found in the LICENSE file. - +@@ -187,6 +191,9 @@ found in the LICENSE file. + + @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re 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 -@@ -76,6 +76,8 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan +@@ -77,6 +77,8 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -2197,6 +2199,8 @@ public class ChromeTabbedActivity extends ChromeActivity getTabModelSelector().closeAllTabs(), /*isIncognito=*/false); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(), -@@ -2249,6 +2253,28 @@ public class ChromeTabbedActivity extends ChromeActivity folderList, List depthList); BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller); @@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -614,6 +614,7 @@ public class BookmarkUtils { +@@ -648,6 +648,7 @@ public class BookmarkUtils { List topLevelFolders = new ArrayList<>(); BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId(); BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId(); @@ -217,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkId othersNodeId = bookmarkModel.getOtherFolderId(); List specialFoldersIds = -@@ -639,6 +640,9 @@ public class BookmarkUtils { +@@ -673,6 +674,9 @@ public class BookmarkUtils { if (bookmarkModel.isFolderVisible(mobileNodeId)) { topLevelFolders.add(mobileNodeId); } @@ -350,7 +350,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3612,6 +3612,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Track prices @@ -570,7 +570,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -666,7 +666,7 @@ bool BookmarkModel::HasBookmarks() { +@@ -670,7 +670,7 @@ bool BookmarkModel::HasBookmarks() { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -579,7 +579,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) { -@@ -920,6 +920,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -926,6 +926,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { bookmark_bar_node_ = details->bb_node(); other_node_ = details->other_folder_node(); mobile_node_ = details->mobile_folder_node(); @@ -675,7 +675,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -57,7 +57,8 @@ void LoadBookmarks(const base::FilePath& path, +@@ -58,7 +58,8 @@ void LoadBookmarks(const base::FilePath& path, std::string sync_metadata_str; BookmarkCodec codec; codec.Decode(*root, details->bb_node(), details->other_folder_node(), diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 5942c76e..c51926e0 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -48,6 +48,9 @@ found in the LICENSE file. +@@ -51,6 +51,9 @@ found in the LICENSE file. @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re 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 -@@ -2223,6 +2223,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2448,6 +2448,11 @@ public abstract class ChromeActivity return true; } @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -538,6 +538,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -540,6 +540,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isChromeScheme, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isChromeScheme); -@@ -1168,6 +1169,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1202,6 +1203,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate stopPriceTrackingMenuItem.setVisible(false); } @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App 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 -@@ -220,6 +220,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -228,6 +228,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isChromeScheme); diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index a8f9e543..842b04c5 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -414,6 +414,7 @@ public final class ChromePreferenceKeys { +@@ -430,6 +430,7 @@ public final class ChromePreferenceKeys { AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM; public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; @@ -61,7 +61,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -66,6 +66,7 @@ public class LegacyChromePreferenceKeys { +@@ -67,6 +67,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, @@ -72,7 +72,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -368,7 +368,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -376,7 +376,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, // OmniboxSuggestionsDropdownEmbedder implementation @Override public boolean isTablet() { @@ -100,10 +100,10 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -119,22 +119,6 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con - mToolbar = toolbar; - mToolbarContainer.setPostInitializationDependencies( - mToolbar, constraintsSupplier, tabSupplier); +@@ -138,22 +138,6 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con + mToolbarContainer.setPostInitializationDependencies(mToolbar, constraintsSupplier, + tabSupplier, compositorInMotionSupplier, + browserStateBrowserControlsVisibilityDelegate, isVisible); - - View toolbarView = findViewById(R.id.toolbar); - assert toolbarView != null; @@ -135,7 +135,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn disallowed_extension_deps_ = [ # Components should largely not depend on //extensions. Since // extensions # is not a component target and is linked with //chrome, depending on most -@@ -673,7 +673,7 @@ test("components_unittests") { +@@ -671,7 +671,7 @@ test("components_unittests") { # On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -144,7 +144,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps = [ "//chrome/*" ] assert_no_deps += disallowed_extension_deps_ } -@@ -974,7 +974,7 @@ if (!is_ios) { +@@ -950,7 +950,7 @@ if (!is_ios) { # dependency. On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -217,7 +217,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn -@@ -372,6 +372,8 @@ android_library("ui_no_recycler_view_java") { +@@ -374,6 +374,8 @@ android_library("ui_no_recycler_view_java") { deps = [ ":ui_java_resources", ":ui_utils_java", diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index a6b840fe..b5cb5daa 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -28,15 +28,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi 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 -@@ -39,6 +39,7 @@ import androidx.lifecycle.LifecycleRegistry; - +@@ -40,6 +40,7 @@ import androidx.lifecycle.LifecycleRegistry; + import org.chromium.base.BuildInfo; import org.chromium.base.CallbackController; import org.chromium.base.CommandLine; +import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1316,8 +1317,10 @@ public class ChromeTabbedActivity extends ChromeActivity<resetlink>reset sync

<resetlink>reset sync

IMAGE diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index c79f2117..27a2baef 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -134,7 +134,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -425,6 +425,7 @@ public final class ChromePreferenceKeys { +@@ -441,6 +441,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL = "Chrome.Homepage.PartnerCustomizedDefaultGurl"; @@ -145,14 +145,14 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -71,6 +71,7 @@ public class LegacyChromePreferenceKeys { +@@ -72,6 +72,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, + ChromePreferenceKeys.HOMEPAGE_NTP_IS_HOMEPAGE, ChromePreferenceKeys.INCOGNITO_SHORTCUT_ADDED, ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION, - ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH, + ChromePreferenceKeys.LEGACY_FIRST_RUN_AND_BACKUP_SIGNIN_COMPLETE, diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -195,7 +195,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -384,6 +384,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[]; +@@ -388,6 +388,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[]; extern const char kUsedPolicyCertificates[]; #endif // BUILDFLAG(IS_CHROMEOS) extern const char kShowHomeButton[]; diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index c71147b4..5155a89d 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -141,6 +141,7 @@ +@@ -142,6 +142,7 @@ #include "components/segmentation_platform/public/features.h" #include "components/send_tab_to_self/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" @@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/shared_highlighting/core/common/shared_highlighting_features.h" #include "components/signin/core/browser/dice_account_reconcilor_delegate.h" #include "components/signin/public/base/signin_buildflags.h" -@@ -8967,6 +8968,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9175,6 +9176,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)}, @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3320,6 +3320,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] = +@@ -3461,6 +3461,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] = "Skips starting the service worker and run the fetch handler if the fetch " "handler is recognized as skippable."; @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1885,6 +1885,9 @@ extern const char kReduceUserAgentMinorVersionDescription[]; +@@ -1969,6 +1969,9 @@ extern const char kReduceUserAgentMinorVersionDescription[]; extern const char kReduceUserAgentPlatformOsCpuName[]; extern const char kReduceUserAgentPlatformOsCpuDescription[]; diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index ce14eaa3..1845ef7c 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -38,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -89,6 +89,9 @@ android_library("java") { +@@ -92,6 +92,9 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java", "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java", ] @@ -222,7 +222,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -682,6 +682,20 @@ void ContentSettingsRegistry::Init() { +@@ -669,6 +669,20 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::PERSISTENT, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -258,7 +258,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -205,7 +205,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -206,7 +206,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( content_type == ContentSettingsType::AUTOPLAY || content_type == ContentSettingsType::MIXEDSCRIPT || content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || @@ -268,7 +268,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -217,6 +218,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( +@@ -218,6 +219,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url); FilterRulesForType(timezone_override_rules, outermost_main_frame_url); FilterRulesForType(autoplay_rules, outermost_main_frame_url); @@ -327,7 +327,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h --- a/components/content_settings/core/common/content_settings_types.h +++ b/components/content_settings/core/common/content_settings_types.h -@@ -276,6 +276,8 @@ enum class ContentSettingsType : int32_t { +@@ -277,6 +277,8 @@ enum class ContentSettingsType : int32_t { // site instead of the mobile one. REQUEST_DESKTOP_SITE, @@ -436,7 +436,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -244,6 +244,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -246,6 +246,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -450,7 +450,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -490,25 +497,6 @@ static String ExtractWebGLContextCreationError( +@@ -492,25 +499,6 @@ static String ExtractWebGLContextCreationError( const Platform::GraphicsInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -476,7 +476,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -576,6 +564,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -578,6 +566,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::ContextType context_type, Platform::GraphicsInfo* graphics_info) { diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 8ff8ae38..3d71d55e 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -92,6 +92,9 @@ android_library("java") { +@@ -95,6 +95,9 @@ android_library("java") { sources += [ "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java", ] @@ -218,7 +218,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -696,6 +696,20 @@ void ContentSettingsRegistry::Init() { +@@ -683,6 +683,20 @@ void ContentSettingsRegistry::Init() { /*show_into_info_page*/ true, /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBGL, /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBGL_MID_SENTENCE); @@ -254,7 +254,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -206,7 +206,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -207,7 +207,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( content_type == ContentSettingsType::MIXEDSCRIPT || content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || content_type == ContentSettingsType::TIMEZONE_OVERRIDE || @@ -264,7 +264,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -219,6 +220,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( +@@ -220,6 +221,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( FilterRulesForType(timezone_override_rules, outermost_main_frame_url); FilterRulesForType(autoplay_rules, outermost_main_frame_url); FilterRulesForType(webgl_rules, outermost_main_frame_url); @@ -323,7 +323,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h --- a/components/content_settings/core/common/content_settings_types.h +++ b/components/content_settings/core/common/content_settings_types.h -@@ -278,6 +278,8 @@ enum class ContentSettingsType : int32_t { +@@ -279,6 +279,8 @@ enum class ContentSettingsType : int32_t { WEBGL, diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 0b07d026..02071495 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -5,9 +5,9 @@ Subject: Allow building without enable_reporting License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../browser/devtools/protocol/network_handler.cc | 2 ++ - .../net/cross_origin_embedder_policy_reporter.cc | 4 +++- - .../net/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- - content/browser/net/reporting_service_proxy.cc | 3 +++ + .../cross_origin_embedder_policy_reporter.cc | 3 +++ + .../cross_origin_opener_policy_reporter.cc | 16 +++++++--------- + .../browser/network/reporting_service_proxy.cc | 3 +++ .../renderer_host/render_frame_host_impl.cc | 6 ------ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + @@ -19,12 +19,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../blink/renderer/core/frame/local_frame.h | 6 +++--- .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- - 15 files changed, 48 insertions(+), 24 deletions(-) + 15 files changed, 48 insertions(+), 23 deletions(-) diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1289,6 +1289,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1291,6 +1291,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -32,7 +32,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; base::queue queue; -@@ -1306,6 +1307,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1308,6 +1309,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { } return urls; } @@ -40,12 +40,12 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow } // namespace -diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/content/browser/net/cross_origin_embedder_policy_reporter.cc ---- a/content/browser/net/cross_origin_embedder_policy_reporter.cc -+++ b/content/browser/net/cross_origin_embedder_policy_reporter.cc +diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/content/browser/network/cross_origin_embedder_policy_reporter.cc +--- a/content/browser/network/cross_origin_embedder_policy_reporter.cc ++++ b/content/browser/network/cross_origin_embedder_policy_reporter.cc @@ -4,6 +4,7 @@ - #include "content/browser/net/cross_origin_embedder_policy_reporter.h" + #include "content/browser/network/cross_origin_embedder_policy_reporter.h" +#include "net/base/features.h" #include "base/strings/string_piece.h" @@ -59,19 +59,18 @@ diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/cont base::Value::Dict body_to_pass; for (const auto& pair : body) { body_to_pass.Set(pair.first, pair.second); -@@ -123,7 +125,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify( - kType, *endpoint, context_url_, reporting_source_, +@@ -124,6 +126,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify( network_anonymization_key_, /*user_agent=*/absl::nullopt, std::move(body_to_pass)); -- } + } +#endif } } -diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/content/browser/net/cross_origin_opener_policy_reporter.cc ---- a/content/browser/net/cross_origin_opener_policy_reporter.cc -+++ b/content/browser/net/cross_origin_opener_policy_reporter.cc -@@ -17,25 +17,17 @@ +diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/content/browser/network/cross_origin_opener_policy_reporter.cc +--- a/content/browser/network/cross_origin_opener_policy_reporter.cc ++++ b/content/browser/network/cross_origin_opener_policy_reporter.cc +@@ -18,25 +18,17 @@ #include "services/network/public/mojom/network_context.mojom.h" #include "services/network/public/mojom/source_location.mojom.h" #include "url/origin.h" @@ -98,7 +97,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten constexpr char kType[] = "type"; // Report attribute values: -@@ -44,6 +36,7 @@ constexpr char kDispositionReporting[] = "reporting"; +@@ -45,6 +37,7 @@ constexpr char kDispositionReporting[] = "reporting"; constexpr char kTypeFromResponse[] = "navigation-from-response"; constexpr char kTypeToResponse[] = "navigation-to-response"; @@ -106,7 +105,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { switch (coop_value) { case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone: -@@ -61,6 +54,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { +@@ -62,6 +55,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { return "restrict-properties-plus-coep"; } } @@ -114,7 +113,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) { FrameTreeNode* opener = -@@ -232,6 +226,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -233,6 +227,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( network::mojom::SourceLocationPtr source_location, const std::string& reported_window_url, const std::string& initial_popup_url) const { @@ -122,7 +121,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten // Cross-Origin-Opener-Policy-Report-Only is not required to provide // endpoints. if (!coop_.report_only_reporting_endpoint) -@@ -279,12 +274,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -280,12 +275,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( storage_partition_->GetNetworkContext()->QueueReport( "coop", endpoint, context_url_, reporting_source_, network_anonymization_key_, absl::nullopt, std::move(body)); @@ -137,7 +136,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten body.Set(kDisposition, is_report_only ? kDispositionReporting : kDispositionEnforce); body.Set(kEffectivePolicy, -@@ -293,6 +290,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( +@@ -294,6 +291,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( "coop", endpoint, context_url_, reporting_source_, network_anonymization_key_, /*user_agent=*/absl::nullopt, std::move(body)); @@ -145,9 +144,9 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten } } // namespace content -diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/net/reporting_service_proxy.cc ---- a/content/browser/net/reporting_service_proxy.cc -+++ b/content/browser/net/reporting_service_proxy.cc +diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browser/network/reporting_service_proxy.cc +--- a/content/browser/network/reporting_service_proxy.cc ++++ b/content/browser/network/reporting_service_proxy.cc @@ -11,6 +11,7 @@ #include "base/memory/ref_counted.h" #include "base/unguessable_token.h" @@ -174,7 +173,7 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -12209,12 +12209,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -12373,12 +12373,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( base::Value::Dict body; if (!reason.empty()) body.Set("reason", reason); @@ -209,7 +208,7 @@ diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/b diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc b/content/public/common/content_switch_dependent_feature_overrides.cc --- a/content/public/common/content_switch_dependent_feature_overrides.cc +++ b/content/public/common/content_switch_dependent_feature_overrides.cc -@@ -7,6 +7,7 @@ +@@ -8,6 +8,7 @@ #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "net/base/features.h" @@ -236,7 +235,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -462,10 +462,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -461,10 +461,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const absl::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, const absl::optional& user_agent, @@ -252,7 +251,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1096,7 +1096,6 @@ mojom("mojom") { +@@ -1120,7 +1120,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -263,7 +262,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1065,6 +1065,7 @@ interface NetworkContext { +@@ -1064,6 +1064,7 @@ interface NetworkContext { // provided |network_isolation_key|. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -271,7 +270,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1078,6 +1079,7 @@ interface NetworkContext { +@@ -1077,6 +1078,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // |network_isolation_key|. @@ -290,7 +289,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h" #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" -@@ -2357,9 +2358,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const { +@@ -2307,9 +2308,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const { return base::UnguessableToken::Null(); } @@ -316,7 +315,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" #include "third_party/blink/public/common/frame/frame_ad_evidence.h" -@@ -590,9 +590,9 @@ class CORE_EXPORT LocalFrame final +@@ -593,9 +593,9 @@ class CORE_EXPORT LocalFrame final } SmoothScrollSequencer& GetSmoothScrollSequencer(); diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 1775d738..3d211b33 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1215,6 +1215,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1226,6 +1226,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3609,7 +3615,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3627,7 +3633,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { // Audio only stream is allowed to play when in background. // TODO: We should check IsBackgroundOptimizationCandidate here. But we need // to move the logic of checking video frames out of that function. @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -193,6 +193,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -195,6 +195,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/patches/Ask-user-before-closing-all-tabs.patch b/build/patches/Ask-user-before-closing-all-tabs.patch index 258f63b9..17693e02 100644 --- a/build/patches/Ask-user-before-closing-all-tabs.patch +++ b/build/patches/Ask-user-before-closing-all-tabs.patch @@ -10,16 +10,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -523,8 +523,8 @@ const base::Feature kCastDeviceFilter{"CastDeviceFilter", - const base::Feature kClearOmniboxFocusAfterNavigation{ - "ClearOmniboxFocusAfterNavigation", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -543,8 +543,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation, + base::FEATURE_DISABLED_BY_DEFAULT); --const base::Feature kCloseTabSuggestions{"CloseTabSuggestions", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+const base::Feature kCloseTabSuggestions{"CloseTabSuggestions", // Enabled by default in Bromite -+ base::FEATURE_ENABLED_BY_DEFAULT}; // ^ + BASE_FEATURE(kCloseTabSuggestions, +- "CloseTabSuggestions", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "CloseTabSuggestions", // Enabled by default in Bromite ++ base::FEATURE_ENABLED_BY_DEFAULT); // ^ - const base::Feature kCriticalPersistedTabData{ - "CriticalPersistedTabData", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kCriticalPersistedTabData, + "CriticalPersistedTabData", -- 2.25.1 diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index c0fdf205..c7bdae5a 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -48,7 +48,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir 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 -@@ -507,7 +507,9 @@ double AudioContext::baseLatency() const { +@@ -508,7 +508,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 0c808ff8..a210ea1e 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -674,4 +674,20 @@ bool ExecutionContext::RequireTrustedTypes() const { +@@ -670,4 +670,20 @@ bool ExecutionContext::RequireTrustedTypes() const { return require_safe_types_; } @@ -47,7 +47,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -392,6 +392,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverSet& ContextLifecycleObserverSet(); @@ -69,7 +69,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -548,6 +548,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -552,6 +552,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -148,7 +148,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h --- a/third_party/blink/renderer/core/loader/worker_fetch_context.h +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h -@@ -61,6 +61,7 @@ class WorkerFetchContext final : public BaseFetchContext { +@@ -62,6 +62,7 @@ class WorkerFetchContext final : public BaseFetchContext { bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -159,7 +159,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/thi diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc -@@ -101,6 +101,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { +@@ -102,6 +102,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { request_url.ProtocolIsInHTTPFamily(); } @@ -190,7 +190,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc scoped_refptr ExtractBlobHandle( Request* request, ExceptionState& exception_state) { -@@ -220,6 +244,13 @@ ScriptPromise BackgroundFetchManager::fetch( +@@ -221,6 +245,13 @@ ScriptPromise BackgroundFetchManager::fetch( exception_state); } @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc -@@ -275,6 +275,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { +@@ -276,6 +276,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { return false; } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 60474da1..c9ee3332 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -39,9 +39,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.c diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/history_utils.cc --- a/chrome/browser/history/history_utils.cc +++ b/chrome/browser/history/history_utils.cc -@@ -21,6 +21,7 @@ bool CanAddURLToHistory(const GURL& url) { - url.SchemeIs(content::kChromeDevToolsScheme) || +@@ -22,6 +22,7 @@ bool CanAddURLToHistory(const GURL& url) { url.SchemeIs(content::kChromeUIScheme) || + url.SchemeIs(content::kChromeUIUntrustedScheme) || url.SchemeIs(content::kViewSourceScheme) || + url.SchemeIs(url::kTraceScheme) || url.SchemeIs(chrome::kChromeNativeScheme) || @@ -81,7 +81,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib return url::FindAndCompareScheme(utf8_input, scheme, nullptr); } -@@ -571,7 +576,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( +@@ -573,7 +578,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( // For the view-source and blob schemes, we should emphasize the host of the // URL qualified by the view-source or blob prefix. if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) || @@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1025,6 +1025,8 @@ component("net") { +@@ -1030,6 +1030,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -270,7 +270,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h diff --git a/url/url_util.cc b/url/url_util.cc --- a/url/url_util.cc +++ b/url/url_util.cc -@@ -45,6 +45,7 @@ struct SchemeRegistry { +@@ -46,6 +46,7 @@ struct SchemeRegistry { std::vector standard_schemes = { {kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, {kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, @@ -278,7 +278,7 @@ diff --git a/url/url_util.cc b/url/url_util.cc // Yes, file URLs can have a hostname, so file URLs should be handled as // "standard". File URLs never have a port as specified by the SchemeType // field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file -@@ -88,6 +89,7 @@ struct SchemeRegistry { +@@ -89,6 +90,7 @@ struct SchemeRegistry { kAboutScheme, kJavaScriptScheme, kDataScheme, diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 5c6a2db2..c4c310f6 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -29,16 +29,16 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -@@ -32,6 +32,7 @@ import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.url.GURL; +@@ -27,6 +27,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectableListT + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import java.util.List; +import java.util.HashSet; /** * Main action bar of bookmark UI. It is responsible for displaying title and buttons -@@ -137,6 +138,17 @@ public class BookmarkActionBar extends SelectableListToolbar - new TabDelegate(true), mDelegate.getModel()); +@@ -132,6 +133,17 @@ public class BookmarkActionBar extends SelectableListToolbar + /*openInNewTab=*/true, /*incognito=*/true); selectionDelegate.clearSelection(); return true; + } else if (menuItem.getItemId() == R.id.select_all_menu_id) { @@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } assert false : "Unhandled menu click."; -@@ -146,6 +158,7 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -141,6 +153,7 @@ public class BookmarkActionBar extends SelectableListToolbar void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.import_menu_id).setVisible(false); getMenu().findItem(R.id.export_menu_id).setVisible(false); getMenu().findItem(R.id.search_menu_id).setVisible(false); -@@ -157,6 +170,7 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -152,6 +165,7 @@ public class BookmarkActionBar extends SelectableListToolbar super.showNormalView(); if (mDelegate == null) { @@ -71,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.import_menu_id).setVisible(false); getMenu().findItem(R.id.export_menu_id).setVisible(false); getMenu().findItem(R.id.search_menu_id).setVisible(false); -@@ -188,6 +202,7 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -183,6 +197,7 @@ public class BookmarkActionBar extends SelectableListToolbar @Override public void onFolderStateSet(BookmarkId folder) { mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index 20acb443..42b801d2 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -62,14 +62,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -372,6 +372,7 @@ android_library("chrome_java") { - "//chrome/browser/download/android:java", - "//chrome/browser/download/android:java_resources", - "//chrome/browser/enterprise/util:java", -+ "//chrome/browser/endpoint_fetcher:java", - "//chrome/browser/feature_engagement:java", - "//chrome/browser/feature_guide/notifications:java", - "//chrome/browser/feed/android:java", +@@ -401,6 +401,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/download/android:java", + "//chrome/browser/download/android:java_resources", + "//chrome/browser/enterprise/util:java", ++ "//chrome/browser/endpoint_fetcher:java", + "//chrome/browser/feature_engagement:java", + "//chrome/browser/feature_guide/notifications:java", + "//chrome/browser/feed/android:java", diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni @@ -81,7 +81,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_unmask_prompt.xml", -@@ -643,6 +644,7 @@ chrome_java_resources = [ +@@ -641,6 +642,7 @@ chrome_java_resources = [ "java/res/values/values.xml", "java/res/xml/about_chrome_preferences.xml", "java/res/xml/account_management_preferences.xml", @@ -92,7 +92,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -905,6 +905,8 @@ chrome_java_sources = [ +@@ -908,6 +908,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -435,7 +435,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod 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 -@@ -12253,6 +12253,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -12468,6 +12468,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -555,10 +555,10 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -1736,6 +1736,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1753,6 +1753,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { + // Just initialize the policy prefs service here. Variations seed fetching // will be initialized when the app enters foreground mode. variations_service->set_policy_pref_service(profile->GetPrefs()); - + // force AdBlock updater initialisation + g_browser_process->adblock_updater(); + @@ -593,7 +593,7 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -@@ -273,6 +273,14 @@ public class CachedFeatureFlags { +@@ -278,6 +278,14 @@ public class CachedFeatureFlags { ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL)); } @@ -608,7 +608,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f /** * Caches flags that must take effect on startup but are set via native code. */ -@@ -519,5 +527,7 @@ public class CachedFeatureFlags { +@@ -524,5 +532,7 @@ public class CachedFeatureFlags { @NativeMethods interface Natives { boolean isNetworkServiceWarmUpEnabled(); @@ -678,7 +678,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -2350,6 +2350,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2383,6 +2383,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; // capture devices without prompt. const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -702,7 +702,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -274,8 +274,8 @@ +@@ -282,8 +282,8 @@ This site shows intrusive or misleading ads diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index d204ec05..6bbba2f2 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -24,13 +24,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../endpoint_fetcher_android.cc | 52 +++- .../endpoint_fetcher/EndpointFetcher.java | 22 +- .../EndpointHeaderResponse.java | 31 +++ - .../flags/android/chrome_feature_list.cc | 4 + + .../flags/android/chrome_feature_list.cc | 5 + .../flags/android/chrome_feature_list.h | 1 + .../browser/flags/ChromeFeatureList.java | 1 + .../strings/android_chrome_strings.grd | 23 +- .../endpoint_fetcher/endpoint_fetcher.cc | 102 +++++++- .../endpoint_fetcher/endpoint_fetcher.h | 22 +- - 23 files changed, 896 insertions(+), 53 deletions(-) + 23 files changed, 897 insertions(+), 53 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java @@ -49,7 +49,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -2183,6 +2183,9 @@ if (enable_java_templates) { +@@ -2242,6 +2242,9 @@ if (enable_java_templates) { if (defined(testonly) && testonly) { defines += [ "_IS_FOR_TEST" ] } @@ -62,7 +62,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -811,6 +811,9 @@ chrome_java_sources = [ +@@ -814,6 +814,9 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java", "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java", "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java", @@ -1250,7 +1250,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -263,6 +263,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNewWindowAppMenu, &kNotificationPermissionVariant, &kPageAnnotationsService, @@ -1258,31 +1258,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kBookmarksImprovedSaveFlow, &kBookmarksRefresh, &kBackGestureRefactorAndroid, -@@ -727,6 +728,9 @@ const base::Feature kIncognitoReauthenticationForAndroid{ - const base::Feature kIncognitoScreenshot{"IncognitoScreenshot", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -810,6 +811,10 @@ BASE_FEATURE(kIncognitoScreenshot, + "IncognitoScreenshot", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kInlineUpdateFlow{"InlineUpdateFlow", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kInlineUpdateFlow, ++ "InlineUpdateFlow", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - const base::Feature kInfobarScrollOptimization{ - "InfobarScrollOptimization", base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kInfobarScrollOptimization, + "InfobarScrollOptimization", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -101,6 +101,7 @@ extern const base::Feature kGridTabSwitcherForTablets; - extern const base::Feature kHandleMediaIntents; - extern const base::Feature kImmersiveUiMode; - extern const base::Feature kIncognitoReauthenticationForAndroid; -+extern const base::Feature kInlineUpdateFlow; - extern const base::Feature kIncognitoScreenshot; - extern const base::Feature kInfobarScrollOptimization; - extern const base::Feature kImprovedA2HS; +@@ -102,6 +102,7 @@ BASE_DECLARE_FEATURE(kHandleMediaIntents); + BASE_DECLARE_FEATURE(kImmersiveUiMode); + BASE_DECLARE_FEATURE(kIncognitoReauthenticationForAndroid); + BASE_DECLARE_FEATURE(kIncognitoScreenshot); ++BASE_DECLARE_FEATURE(kInlineUpdateFlow); + BASE_DECLARE_FEATURE(kInfobarScrollOptimization); + BASE_DECLARE_FEATURE(kImprovedA2HS); + BASE_DECLARE_FEATURE(kInstanceSwitcher); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -383,6 +383,7 @@ public abstract class ChromeFeatureList { +@@ -387,6 +387,7 @@ public abstract class ChromeFeatureList { "IncognitoReauthenticationForAndroid"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization"; @@ -1293,7 +1294,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1896,6 +1896,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1888,6 +1888,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1306,7 +1307,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3531,7 +3537,10 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

@@ -1318,7 +1319,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -3542,6 +3551,18 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Android version is unsupported diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 9f124f9b..debd5515 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -46,7 +46,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { - assert(current_toolchain != android_secondary_abi_toolchain) - } +@@ -51,7 +51,7 @@ chrome_jni_registration_header = + chrome_jni_for_test_registration_header = "$root_build_dir/gen/chrome/browser/android/chrome_jni_for_test_registration.h" --_default_package = "org.chromium.chrome" -+_default_package = "org.bromite.bromite" - if (android_channel != "default" && android_channel != "stable") { - # android-binary-size trybot may checks if an internal Chrome variant's - # AndroidManifest is as expected by ensuring the differences between its + if (current_toolchain == default_toolchain) { +- _default_package = "org.chromium.chrome" ++ _default_package = "org.bromite.bromite" + if (use_stable_package_name_for_trichrome) { + _default_package += ".stable" + } else if (android_channel != "default" && android_channel != "stable") { -- 2.25.1 diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index da023ff2..44a9ebb3 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -14,11 +14,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html content/common/user_agent.cc | 9 +-------- content/public/common/content_features.cc | 2 +- services/network/public/cpp/client_hints.cc | 1 + - services/network/public/cpp/features.cc | 4 ++-- + services/network/public/cpp/features.cc | 2 +- third_party/blink/common/client_hints/client_hints.cc | 1 + .../blink/common/client_hints/enabled_client_hints.cc | 4 +++- third_party/blink/common/features.cc | 4 ++-- - 10 files changed, 19 insertions(+), 18 deletions(-) + 10 files changed, 18 insertions(+), 17 deletions(-) diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc @@ -37,8 +37,8 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc -@@ -462,7 +462,8 @@ void AddPrefersColorSchemeHeader(net::HttpRequestHeaders* headers, - is_dark_mode ? "dark" : "light"); +@@ -478,7 +478,8 @@ void AddPrefersReducedMotionHeader(net::HttpRequestHeaders* headers, + : network::kPrefersReducedMotionNoPreference); } -bool IsValidURLForClientHints(const url::Origin& origin) { @@ -50,7 +50,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1025,6 +1025,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1024,6 +1024,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -84,19 +84,19 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -230,7 +230,7 @@ const base::Feature kCrashReporting{"CrashReporting", - // Enables support for the `Critical-CH` response header. +@@ -248,7 +248,7 @@ BASE_FEATURE(kCrashReporting, // https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch - const base::Feature kCriticalClientHint{"CriticalClientHint", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kCriticalClientHint, + "CriticalClientHint", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Enable debugging the issue crbug.com/1201355 - const base::Feature kDebugHistoryInterventionNoUserActivation{ + BASE_FEATURE(kDebugHistoryInterventionNoUserActivation, diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc --- a/services/network/public/cpp/client_hints.cc +++ b/services/network/public/cpp/client_hints.cc -@@ -97,6 +97,7 @@ const DecodeMap& GetDecodeMap() { +@@ -105,6 +105,7 @@ const DecodeMap& GetDecodeMap() { absl::optional> ParseClientHintsHeader(const std::string& header) { @@ -107,21 +107,19 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -179,8 +179,8 @@ const base::Feature kWebSocketReassembleShortMessages{ +@@ -197,7 +197,7 @@ BASE_FEATURE(kWebSocketReassembleShortMessages, // Enable support for ACCEPT_CH H2/3 frame as part of Client Hint Reliability. // See: // https://tools.ietf.org/html/draft-davidben-http-client-hint-reliability-02#section-4.3 --const base::Feature kAcceptCHFrame{"AcceptCHFrame", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+const base::Feature kAcceptCHFrame{"AcceptCHFrame", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite +-BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default - const base::Feature kSCTAuditingRetryReports{"SCTAuditingRetryReports", - base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kSCTAuditingRetryReports, + "SCTAuditingRetryReports", diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party/blink/common/client_hints/client_hints.cc --- a/third_party/blink/common/client_hints/client_hints.cc +++ b/third_party/blink/common/client_hints/client_hints.cc -@@ -111,6 +111,7 @@ const size_t kWebEffectiveConnectionTypeMappingCount = +@@ -113,6 +113,7 @@ const size_t kWebEffectiveConnectionTypeMappingCount = std::size(kWebEffectiveConnectionTypeMapping); bool IsClientHintSentByDefault(network::mojom::WebClientHintsType type) { @@ -140,7 +138,7 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi switch (type) { case WebClientHintsType::kUA: case WebClientHintsType::kUAArch: -@@ -127,7 +128,7 @@ bool IsOriginTrialEnabled(const GURL& url, +@@ -138,7 +139,7 @@ bool IsOriginTrialEnabled(const GURL& url, } // namespace bool EnabledClientHints::IsEnabled(const WebClientHintsType type) const { @@ -149,7 +147,7 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi } void EnabledClientHints::SetIsEnabled(const WebClientHintsType type, -@@ -156,6 +157,7 @@ void EnabledClientHints::SetIsEnabled( +@@ -167,6 +168,7 @@ void EnabledClientHints::SetIsEnabled( std::vector EnabledClientHints::GetEnabledHints() const { std::vector hints; @@ -160,23 +158,23 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -499,7 +499,7 @@ const base::Feature kAudioWorkletThreadRealtimePriority{ - const base::Feature kLightweightNoStatePrefetch { - "LightweightNoStatePrefetch", +@@ -552,7 +552,7 @@ BASE_FEATURE(kAudioWorkletThreadRealtimePriority, + BASE_FEATURE(kLightweightNoStatePrefetch, + "LightweightNoStatePrefetch", #if BUILDFLAG(IS_ANDROID) -- base::FEATURE_ENABLED_BY_DEFAULT -+ base::FEATURE_DISABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT ++ base::FEATURE_DISABLED_BY_DEFAULT #else - base::FEATURE_DISABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT #endif -@@ -1000,7 +1000,7 @@ const base::Feature kForceMajorVersionInMinorPositionInUserAgent{ - +@@ -1090,7 +1090,7 @@ BASE_FEATURE(kForceMajorVersionInMinorPositionInUserAgent, // Enable `sec-ch-device-memory` client hint. - const base::Feature kClientHintsDeviceMemory{"ClientHintsDeviceMemory", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kClientHintsDeviceMemory, + "ClientHintsDeviceMemory", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Enable `sec-ch-dpr` client hint. - const base::Feature kClientHintsDPR{"ClientHintsDPR", + BASE_FEATURE(kClientHintsDPR, -- 2.25.1 diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 14a28c92..19c8aa72 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -41,8 +41,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -85,6 +85,10 @@ android_library("java") { - "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", +@@ -88,6 +88,10 @@ android_library("java") { + "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", "java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java" ] + sources += [ @@ -763,7 +763,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -42,6 +42,7 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -43,6 +43,7 @@ import org.chromium.content_public.browser.ContentFeatureList; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -771,7 +771,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Shows the permissions and other settings for a particular website. -@@ -169,7 +170,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -172,7 +173,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment case ContentSettingsType.CLIPBOARD_READ_WRITE: return "clipboard_permission_list"; default: @@ -780,7 +780,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -494,7 +495,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -505,7 +506,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment private void setupContentSettingsPreferences() { mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder(); @@ -790,7 +790,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference preference = new ChromeSwitchPreference(getStyledContext()); preference.setKey(getPreferenceKey(type)); -@@ -908,16 +910,22 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -945,16 +947,22 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment private void setupContentSettingsPreference(Preference preference, @ContentSettingValues @Nullable Integer value, boolean isEmbargoed) { @@ -818,7 +818,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c switchPreference.setOnPreferenceChangeListener(this); @ContentSettingsType int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); -@@ -1179,7 +1187,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1216,7 +1224,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment } mSite.setContentSetting(browserContextHandle, type, permission); @@ -929,7 +929,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -265,6 +265,10 @@ public final class Website implements Serializable { +@@ -282,6 +282,10 @@ public final class Website implements WebsiteEntry { /*isEmbargoed=*/false); setContentSettingException(type, exception); } @@ -943,7 +943,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -89,7 +89,7 @@ public class WebsitePermissionsFetcher { +@@ -92,7 +92,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.USB_GUARD: return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: @@ -955,7 +955,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -227,7 +227,7 @@ public class WebsitePreferenceBridge { +@@ -248,7 +248,7 @@ public class WebsitePreferenceBridge { case ContentSettingsType.TIMEZONE_OVERRIDE: return true; default: @@ -976,7 +976,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. #if BUILDFLAG(IS_ANDROID) #include "media/base/android/media_drm_bridge.h" -@@ -693,7 +695,10 @@ void ContentSettingsRegistry::Register( +@@ -680,7 +682,10 @@ void ContentSettingsRegistry::Register( Platforms platforms, ContentSettingsInfo::IncognitoBehavior incognito_behavior, ContentSettingsInfo::StorageBehavior storage_behavior, @@ -988,7 +988,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. // Ensure that nothing has been registered yet for the given type. DCHECK(!website_settings_registry_->Get(type)); -@@ -702,7 +707,9 @@ void ContentSettingsRegistry::Register( +@@ -689,7 +694,9 @@ void ContentSettingsRegistry::Register( website_settings_registry_->Register( type, name, std::move(default_value), sync_status, WebsiteSettingsInfo::NOT_LOSSY, scoping_type, platforms, @@ -1173,7 +1173,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -24,6 +24,7 @@ +@@ -25,6 +25,7 @@ #include "components/browsing_data/content/local_storage_helper.h" #include "components/content_settings/browser/page_specific_content_settings.h" #include "components/content_settings/browser/ui/cookie_controls_controller.h" @@ -1181,7 +1181,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/content_settings_utils.h" #include "components/content_settings/core/browser/host_content_settings_map.h" -@@ -164,6 +165,15 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, +@@ -167,6 +168,15 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, return true; } @@ -1197,7 +1197,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. const bool is_incognito = web_contents->GetBrowserContext()->IsOffTheRecord(); #if BUILDFLAG(IS_ANDROID) // Special geolocation DSE settings apply only on Android, so make sure it -@@ -1112,7 +1122,18 @@ void PageInfo::PresentSitePermissions() { +@@ -1150,7 +1160,18 @@ void PageInfo::PresentSitePermissions() { PermissionInfo permission_info; HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); diff --git a/build/patches/Disable-AGSA-by-default.patch b/build/patches/Disable-AGSA-by-default.patch index 0434657e..c15ab412 100644 --- a/build/patches/Disable-AGSA-by-default.patch +++ b/build/patches/Disable-AGSA-by-default.patch @@ -22,30 +22,30 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -380,7 +380,6 @@ android_library("chrome_java") { - "//chrome/browser/first_run/android:java", - "//chrome/browser/flags:java", - "//chrome/browser/fullscreen/android:java", -- "//chrome/browser/gsa:java", - "//chrome/browser/history_clusters:java", - "//chrome/browser/history_clusters:java_resources", - "//chrome/browser/image_descriptions:java", -@@ -1017,7 +1016,6 @@ robolectric_binary("chrome_junit_tests") { - "//chrome/browser/flags:flags_junit_tests", - "//chrome/browser/flags:java", - "//chrome/browser/fullscreen/android:java", -- "//chrome/browser/gsa:java", - "//chrome/browser/history_clusters:java", - "//chrome/browser/image_descriptions:java", - "//chrome/browser/image_editor/public:java", -@@ -1542,7 +1540,6 @@ android_library("chrome_test_java") { - "//chrome/browser/first_run/android:java", - "//chrome/browser/flags:java", - "//chrome/browser/fullscreen/android:java", -- "//chrome/browser/gsa:java", - "//chrome/browser/history_clusters:java", - "//chrome/browser/image_descriptions:javatests", - "//chrome/browser/incognito:incognito_java_tests", +@@ -409,7 +409,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/first_run/android:java", + "//chrome/browser/flags:java", + "//chrome/browser/fullscreen/android:java", +- "//chrome/browser/gsa:java", + "//chrome/browser/history_clusters:java", + "//chrome/browser/history_clusters:java_resources", + "//chrome/browser/image_descriptions:java", +@@ -1004,7 +1003,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/flags:flags_junit_tests", + "//chrome/browser/flags:java", + "//chrome/browser/fullscreen/android:java", +- "//chrome/browser/gsa:java", + "//chrome/browser/history_clusters:java", + "//chrome/browser/image_descriptions:java", + "//chrome/browser/image_editor/public:java", +@@ -1522,7 +1520,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/first_run/android:java", + "//chrome/browser/flags:java", + "//chrome/browser/fullscreen/android:java", +- "//chrome/browser/gsa:java", + "//chrome/browser/history_clusters:java", + "//chrome/browser/image_descriptions:javatests", + "//chrome/browser/incognito:incognito_java_tests", diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java --- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.profiles.Profile; -@@ -261,8 +260,6 @@ public class IntentHandler { +@@ -265,8 +264,6 @@ public class IntentHandler { private static int sReferrerId; private static String sPendingIncognitoUrl; @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static final String PACKAGE_GMAIL = "com.google.android.gm"; private static final String PACKAGE_PLUS = "com.google.android.apps.plus"; private static final String PACKAGE_HANGOUTS = "com.google.android.talk"; -@@ -492,8 +489,6 @@ public class IntentHandler { +@@ -496,8 +493,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.history.HistoryManagerUtils; import org.chromium.chrome.browser.init.AsyncInitializationActivity; import org.chromium.chrome.browser.init.ProcessInitializationHandler; -@@ -373,8 +369,6 @@ public abstract class ChromeActivity +@@ -374,8 +370,6 @@ public abstract class ChromeActivity private LaunchCauseMetrics mLaunchCauseMetrics; @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv // TODO(972867): Pull MenuOrKeyboardActionController out of ChromeActivity. private List mMenuActionHandlers = new ArrayList<>(); -@@ -1176,10 +1170,6 @@ public abstract class ChromeActivity +@@ -1172,10 +1166,6 @@ public abstract class ChromeActivity @Override public void onStopWithNative() { @@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv super.onStopWithNative(); } -@@ -1271,23 +1261,6 @@ public abstract class ChromeActivity +@@ -1267,23 +1257,6 @@ public abstract class ChromeActivity .recordUserFontPrefOnStartup(); }); @@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.lens.LensController; import org.chromium.chrome.browser.lens.LensEntryPoint; import org.chromium.chrome.browser.lens.LensIntentParams; -@@ -997,12 +996,6 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -987,12 +986,6 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { LensMetrics.LensSupportStatus.ACTIVITY_NOT_ACCESSIBLE); return false; } @@ -262,15 +262,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -706,7 +706,7 @@ const base::Feature kDuetTabStripIntegrationAndroid{ - "DuetTabStripIntegrationAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -785,7 +785,7 @@ BASE_FEATURE(kDuetTabStripIntegrationAndroid, - const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kExperimentsForAgsa, + "ExperimentsForAgsa", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kExploreSites, "ExploreSites", base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kExploreSites{"ExploreSites", - base::FEATURE_DISABLED_BY_DEFAULT}; diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java @@ -281,12 +281,12 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f - .put(ChromeFeatureList.EXPERIMENTS_FOR_AGSA, true) + .put(ChromeFeatureList.EXPERIMENTS_FOR_AGSA, false) .put(ChromeFeatureList.FEED_LOADING_PLACEHOLDER, false) - .put(ChromeFeatureList.GRID_TAB_SWITCHER_FOR_TABLETS, false) + .put(ChromeFeatureList.GRID_TAB_SWITCHER_FOR_TABLETS, true) .put(ChromeFeatureList.IMMERSIVE_UI_MODE, false) diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -142,7 +142,6 @@ android_library("java") { +@@ -146,7 +146,6 @@ android_library("java") { "//chrome/browser/device:java", "//chrome/browser/feature_engagement:java", "//chrome/browser/flags:java", @@ -294,7 +294,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//chrome/browser/history_clusters:java", "//chrome/browser/language/android:java", "//chrome/browser/lens:java", -@@ -430,7 +429,6 @@ robolectric_library("junit") { +@@ -440,7 +439,6 @@ robolectric_library("junit") { "//chrome/browser/commerce/merchant_viewer/android:java", "//chrome/browser/device:java", "//chrome/browser/flags:java", diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 67ce1531..f3f90487 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -58,7 +58,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java -@@ -829,6 +829,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -899,6 +899,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa structure.setChildCount(0); return; } diff --git a/build/patches/Disable-AsyncDNS-by-default.patch b/build/patches/Disable-AsyncDNS-by-default.patch index 552f3272..a14d8c24 100644 --- a/build/patches/Disable-AsyncDNS-by-default.patch +++ b/build/patches/Disable-AsyncDNS-by-default.patch @@ -13,19 +13,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -86,12 +86,8 @@ const base::Feature kAppShimNewCloseBehavior{"AppShimNewCloseBehavior", +@@ -98,12 +98,8 @@ BASE_FEATURE(kAppShimNewCloseBehavior, // Enables the built-in DNS resolver. - const base::Feature kAsyncDns { -- "AsyncDns", + BASE_FEATURE(kAsyncDns, +- "AsyncDns", -#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) -- base::FEATURE_ENABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT -#else -- base::FEATURE_DISABLED_BY_DEFAULT +- base::FEATURE_DISABLED_BY_DEFAULT -#endif -+ "AsyncDns", // Bromite guard for this feature to be always disabled -+ base::FEATURE_DISABLED_BY_DEFAULT // ^ - }; ++ "AsyncDns", // Bromite guard for this feature to be always disabled ++ FEATURE_DISABLED_BY_DEFAULT // ^ + ); #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ -- diff --git a/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch b/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch index 08c2b8ca..4e56f62d 100644 --- a/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch +++ b/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -742,7 +742,7 @@ const base::Feature kMediaDrmPersistentLicense{ - // MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs +@@ -844,7 +844,7 @@ BASE_FEATURE(kMediaDrmPersistentLicense, // which will trigger provisioning process after MediaDrmBridge is created. - const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kMediaDrmPreprovisioning, + "MediaDrmPreprovisioning", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Determines if MediaDrmOriginIdManager should attempt to pre-provision origin // IDs at startup (whenever a profile is loaded). Also used by tests that diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch index 35a5d3d9..c91ef77a 100644 --- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch +++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3060,6 +3060,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3091,6 +3091,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* source_origin, const url::Origin* destination_origin, const url::Origin* reporting_origin) { @@ -95,7 +95,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -493,18 +493,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, +@@ -495,18 +495,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, if (!visit_id) return; @@ -118,7 +118,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc +++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc -@@ -63,7 +63,7 @@ namespace privacy_sandbox { +@@ -66,7 +66,7 @@ namespace privacy_sandbox { void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( @@ -130,7 +130,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components/privacy_sandbox/privacy_sandbox_settings.cc --- a/components/privacy_sandbox/privacy_sandbox_settings.cc +++ b/components/privacy_sandbox/privacy_sandbox_settings.cc -@@ -67,8 +67,7 @@ PrivacySandboxSettings::PrivacySandboxSettings( +@@ -68,8 +68,7 @@ PrivacySandboxSettings::PrivacySandboxSettings( : delegate_(std::move(delegate)), host_content_settings_map_(host_content_settings_map), cookie_settings_(cookie_settings), @@ -140,7 +140,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components DCHECK(pref_service_); DCHECK(host_content_settings_map_); DCHECK(cookie_settings_); -@@ -88,7 +87,8 @@ PrivacySandboxSettings::PrivacySandboxSettings( +@@ -94,7 +93,8 @@ PrivacySandboxSettings::PrivacySandboxSettings( PrivacySandboxSettings::~PrivacySandboxSettings() = default; @@ -150,7 +150,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components // Topics API calculation should be prevented if the user has blocked 3PC // cookies, as there will be no context specific check. const auto cookie_controls_mode = -@@ -113,7 +113,8 @@ bool PrivacySandboxSettings::IsTopicsAllowedForContext( +@@ -119,7 +119,8 @@ bool PrivacySandboxSettings::IsTopicsAllowedForContext( IsPrivacySandboxEnabledForContext(url, top_frame_origin); } @@ -160,7 +160,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components const auto& blocked_topics = pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics); -@@ -181,9 +182,8 @@ base::Time PrivacySandboxSettings::TopicsDataAccessibleSince() const { +@@ -187,9 +188,8 @@ base::Time PrivacySandboxSettings::TopicsDataAccessibleSince() const { bool PrivacySandboxSettings::IsAttributionReportingAllowed( const url::Origin& top_frame_origin, @@ -172,17 +172,17 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components } bool PrivacySandboxSettings::MaySendAttributionReport( -@@ -277,7 +277,8 @@ void PrivacySandboxSettings::ClearFledgeJoiningAllowedSettings( +@@ -278,7 +278,8 @@ void PrivacySandboxSettings::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettings::IsFledgeJoiningAllowed( - const url::Origin& top_frame_origin) const { + const url::Origin& top_frame_origin) const { // disabled in Bromite + if ((true)) return false; - DictionaryPrefUpdate scoped_pref_update( + ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); - auto* pref_data = scoped_pref_update.Get(); -@@ -335,7 +336,9 @@ bool PrivacySandboxSettings::IsPrivateAggregationAllowed( + auto& pref_data = scoped_pref_update.Get(); +@@ -334,7 +335,9 @@ bool PrivacySandboxSettings::IsPrivateAggregationAllowed( top_frame_origin); } @@ -193,7 +193,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components // If the delegate is restricting access the Privacy Sandbox is disabled. if (delegate_->IsPrivacySandboxRestricted()) return false; -@@ -350,7 +353,7 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabled() const { +@@ -349,7 +352,7 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabled() const { // settings is available. if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) { // For Privacy Sandbox Settings 3, APIs are disabled in incognito. @@ -202,7 +202,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components return false; if (should_override_setting_for_local_testing) { -@@ -368,7 +371,8 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabled() const { +@@ -367,7 +370,8 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabled() const { return pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabled); } @@ -212,7 +212,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components // Only apply the decision to the appropriate preference. if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) { pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled); -@@ -377,7 +381,8 @@ void PrivacySandboxSettings::SetPrivacySandboxEnabled(bool enabled) { +@@ -376,7 +380,8 @@ void PrivacySandboxSettings::SetPrivacySandboxEnabled(bool enabled) { } } @@ -222,7 +222,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components // The PrivacySandboxSettings is only involved in Trust Token access // decisions when the Release 3 flag is enabled. if (!base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) -@@ -432,9 +437,9 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabledForContext( +@@ -441,9 +446,9 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabledForContext( content_settings::CookieSettings::QueryReason::kPrivacySandbox); } @@ -238,7 +238,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components diff --git a/components/privacy_sandbox/privacy_sandbox_settings.h b/components/privacy_sandbox/privacy_sandbox_settings.h --- a/components/privacy_sandbox/privacy_sandbox_settings.h +++ b/components/privacy_sandbox/privacy_sandbox_settings.h -@@ -220,7 +220,6 @@ class PrivacySandboxSettings : public KeyedService { +@@ -227,7 +227,6 @@ class PrivacySandboxSettings : public KeyedService { scoped_refptr cookie_settings_; raw_ptr pref_service_; PrefChangeRegistrar pref_change_registrar_; diff --git a/build/patches/Disable-NTP-remote-suggestions-by-default.patch b/build/patches/Disable-NTP-remote-suggestions-by-default.patch index 55691bec..3b5e5697 100644 --- a/build/patches/Disable-NTP-remote-suggestions-by-default.patch +++ b/build/patches/Disable-NTP-remote-suggestions-by-default.patch @@ -25,23 +25,23 @@ diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/c diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc --- a/components/ntp_snippets/features.cc +++ b/components/ntp_snippets/features.cc -@@ -38,7 +38,7 @@ const base::Feature* const kAllFeatures[] = { - &kOptionalImagesEnabledFeature}; +@@ -40,7 +40,7 @@ const base::Feature* const kAllFeatures[] = { - const base::Feature kArticleSuggestionsFeature{ -- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "NTPArticleSuggestions", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kArticleSuggestionsFeature, + "NTPArticleSuggestions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kRemoteSuggestionsEmulateM58FetchingSchedule{ - "RemoteSuggestionsEmulateM58FetchingSchedule", -@@ -68,7 +68,7 @@ const char kNotificationsDailyLimit[] = "daily_limit"; - const char kNotificationsIgnoredLimitParam[] = "ignored_limit"; + BASE_FEATURE(kRemoteSuggestionsEmulateM58FetchingSchedule, + "RemoteSuggestionsEmulateM58FetchingSchedule", +@@ -72,7 +72,7 @@ const char kNotificationsIgnoredLimitParam[] = "ignored_limit"; - const base::Feature kKeepPrefetchedContentSuggestions{ -- "KeepPrefetchedContentSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "KeepPrefetchedContentSuggestions", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kKeepPrefetchedContentSuggestions, + "KeepPrefetchedContentSuggestions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kOptionalImagesEnabledFeature{ - "NTPRemoteSuggestionsOptionalImages", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kOptionalImagesEnabledFeature, + "NTPRemoteSuggestionsOptionalImages", -- 2.25.1 diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 0f269007..8d39381a 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -4,36 +4,35 @@ Subject: Disable PrivacyGuide License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/common/chrome_features.cc | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) + chrome/common/chrome_features.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -444,8 +444,8 @@ const base::Feature kHaTSDesktopDevToolsIssuesCSP{ +@@ -500,8 +500,8 @@ BASE_FEATURE(kHaTSDesktopDevToolsIssuesCSP, // Enables or disables the Happiness Tracking System for Desktop Privacy Guide. - const base::Feature kHappinessTrackingSurveysForDesktopPrivacyGuide{ -- "HappinessTrackingSurveysForDesktopPrivacyGuide", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ "HappinessTrackingSurveysForDesktopPrivacyGuide", // must be disabled -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kHappinessTrackingSurveysForDesktopPrivacyGuide, +- "HappinessTrackingSurveysForDesktopPrivacyGuide", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "HappinessTrackingSurveysForDesktopPrivacyGuide", // must be disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite const base::FeatureParam kHappinessTrackingSurveysForDesktopPrivacyGuideTime{ &kHappinessTrackingSurveysForDesktopPrivacyGuide, "settings-time", -@@ -777,11 +777,11 @@ const base::Feature kPredictivePrefetchingAllowedOnAllConnectionTypes{ - const base::Feature kPrerenderFallbackToPreconnect{ - "PrerenderFallbackToPreconnect", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -910,11 +910,11 @@ BASE_FEATURE(kPrerenderFallbackToPreconnect, + "PrerenderFallbackToPreconnect", + base::FEATURE_ENABLED_BY_DEFAULT); --const base::Feature kPrivacyGuide2{"PrivacyGuide2", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+const base::Feature kPrivacyGuide2{"PrivacyGuide2", // always disabled -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite +-BASE_FEATURE(kPrivacyGuide2, "PrivacyGuide2", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kPrivacyGuide2, "PrivacyGuide2", base::FEATURE_DISABLED_BY_DEFAULT); // always disabled in Bromite --const base::Feature kPrivacyGuideAndroid{"PrivacyGuideAndroid", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+const base::Feature kPrivacyGuideAndroid{"PrivacyGuideAndroid", // always disabled -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kPrivacyGuideAndroid, +- "PrivacyGuideAndroid", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "PrivacyGuideAndroid", // always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite // Enables or disables push subscriptions keeping Chrome running in the // background when closed. diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index acbce0fd..7327525e 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -28,18 +28,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 6 +++ chrome/browser/flag_descriptions.cc | 8 ++++ chrome/browser/flag_descriptions.h | 6 +++ - net/base/features.cc | 6 +++ + net/base/features.cc | 8 ++++ net/base/features.h | 6 +++ net/http/http_network_session.cc | 1 + net/quic/quic_stream_factory.cc | 35 ++++++++++++++++- net/socket/ssl_client_socket_impl.cc | 59 ++++++++++++++++++++++++++++ net/socket/ssl_client_socket_impl.h | 2 + - 9 files changed, 128 insertions(+), 1 deletion(-) + 9 files changed, 130 insertions(+), 1 deletion(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4897,6 +4897,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5021,6 +5021,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName, flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll, FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)}, @@ -55,7 +55,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1015,6 +1015,14 @@ const char kEnableTLS13EarlyDataDescription[] = +@@ -1036,6 +1036,14 @@ const char kEnableTLS13EarlyDataDescription[] = "during the handshake when resuming a connection to a compatible TLS 1.3 " "server."; @@ -73,7 +73,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -580,6 +580,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[]; +@@ -592,6 +592,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[]; extern const char kEnableTLS13EarlyDataName[]; extern const char kEnableTLS13EarlyDataDescription[]; @@ -89,35 +89,37 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -110,6 +110,12 @@ const base::Feature kUseDnsHttpsSvcbAlpn{"UseDnsHttpsSvcbAlpn", - const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -69,6 +69,14 @@ BASE_FEATURE(kEnableTLS13EarlyData, + "EnableTLS13EarlyData", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kDisableTLSResumption{"DisableTLSResumption", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kDisableTLSResumption, ++ "DisableTLSResumption", ++ base::FEATURE_ENABLED_BY_DEFAULT); + -+const base::Feature kLogTLSResumption{"LogTLSResumption", -+ base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kLogTLSResumption, ++ "LogTLSResumption", ++ base::FEATURE_DISABLED_BY_DEFAULT); + - const base::Feature kEncryptedClientHello{"EncryptedClientHello", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kEncryptedClientHello, + "EncryptedClientHello", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -170,6 +170,12 @@ NET_EXPORT extern const base::Feature kUseDnsHttpsSvcbAlpn; +@@ -91,6 +91,12 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseDnsHttpsSvcbAlpn); // Enables TLS 1.3 early data. - NET_EXPORT extern const base::Feature kEnableTLS13EarlyData; + NET_EXPORT BASE_DECLARE_FEATURE(kEnableTLS13EarlyData); +// Disables TLS resumption. -+NET_EXPORT extern const base::Feature kDisableTLSResumption; ++NET_EXPORT BASE_DECLARE_FEATURE(kDisableTLSResumption); + +// Log TLS resumption. -+NET_EXPORT extern const base::Feature kLogTLSResumption; ++NET_EXPORT BASE_DECLARE_FEATURE(base::Feature kLogTLSResumption); + // Enables the TLS Encrypted ClientHello feature. // https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-13 - NET_EXPORT extern const base::Feature kEncryptedClientHello; + NET_EXPORT BASE_DECLARE_FEATURE(kEncryptedClientHello); diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc @@ -132,7 +134,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc --- a/net/quic/quic_stream_factory.cc +++ b/net/quic/quic_stream_factory.cc -@@ -73,6 +73,7 @@ +@@ -72,6 +72,7 @@ #include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h" #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h" #include "third_party/boringssl/src/include/openssl/aead.h" @@ -140,7 +142,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -246,6 +247,38 @@ quic::ParsedQuicVersion SelectQuicVersion( +@@ -245,6 +246,38 @@ quic::ParsedQuicVersion SelectQuicVersion( } // namespace @@ -179,7 +181,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc // Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many // consumers are using it currently. When the last reference is freed, the // QuicCryptoClientConfigHandle informs the owning QuicStreamFactory, moves it -@@ -2254,7 +2287,7 @@ QuicStreamFactory::CreateCryptoConfigHandle( +@@ -2249,7 +2282,7 @@ QuicStreamFactory::CreateCryptoConfigHandle( sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index fcd6bdc3..68703eae 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -44,30 +44,30 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service. diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -747,8 +747,8 @@ const base::Feature kPermissionAuditing{"PermissionAuditing", - +@@ -883,8 +883,8 @@ BASE_FEATURE(kPermissionAuditing, // Enables using the prediction service for permission prompts. We will keep // this feature in order to allow us to update the holdback chance via finch. --const base::Feature kPermissionPredictions{"PermissionPredictions", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+const base::Feature kPermissionPredictions{"PermissionPredictions", // always disabled -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kPermissionPredictions, +- "PermissionPredictions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "PermissionPredictions", // always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite // The holdback chance is 30% but it can also be configured/updated // through finch if needed. -@@ -759,7 +759,7 @@ const base::FeatureParam kPermissionPredictionsHoldbackChance( - +@@ -896,7 +896,7 @@ const base::FeatureParam kPermissionPredictionsHoldbackChance( // Enables using the prediction service for geolocation permission prompts. - const base::Feature kPermissionGeolocationPredictions{ -- "PermissionGeolocationPredictions", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "PermissionGeolocationPredictions", base::FEATURE_DISABLED_BY_DEFAULT}; // always disabled in Bromite + BASE_FEATURE(kPermissionGeolocationPredictions, + "PermissionGeolocationPredictions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // always disabled in Bromite const base::FeatureParam kPermissionGeolocationPredictionsHoldbackChance( diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc --- a/components/optimization_guide/core/hints_fetcher.cc +++ b/components/optimization_guide/core/hints_fetcher.cc -@@ -176,6 +176,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( +@@ -174,6 +174,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( optimization_guide::proto::RequestContext request_context, const std::string& locale, HintsFetchedCallback hints_fetched_callback) { @@ -78,7 +78,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc --- a/components/optimization_guide/core/hints_manager.cc +++ b/components/optimization_guide/core/hints_manager.cc -@@ -360,6 +360,7 @@ void HintsManager::Shutdown() { +@@ -352,6 +352,7 @@ void HintsManager::Shutdown() { OptimizationGuideDecision HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision( OptimizationTypeDecision optimization_type_decision) { @@ -86,7 +86,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op switch (optimization_type_decision) { case OptimizationTypeDecision::kAllowedByOptimizationFilter: case OptimizationTypeDecision::kAllowedByHint: -@@ -1271,6 +1272,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( +@@ -1263,6 +1264,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( proto::OptimizationType optimization_type, OptimizationMetadata* optimization_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -99,72 +99,75 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc --- a/components/optimization_guide/core/optimization_guide_features.cc +++ b/components/optimization_guide/core/optimization_guide_features.cc -@@ -77,16 +77,16 @@ bool IsSupportedLocaleForFeature(const std::string locale, - +@@ -78,17 +78,17 @@ bool IsSupportedLocaleForFeature(const std::string locale, // Enables the syncing of the Optimization Hints component, which provides // hints for what optimizations can be applied on a page load. --const base::Feature kOptimizationHints{"OptimizationHints", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+const base::Feature kOptimizationHints{"OptimizationHints", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kOptimizationHints, +- "OptimizationHints", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "OptimizationHints", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite // Enables fetching from a remote Optimization Guide Service. - const base::Feature kRemoteOptimizationGuideFetching{ -- "OptimizationHintsFetching", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "OptimizationHintsFetching", base::FEATURE_DISABLED_BY_DEFAULT}; // disabled by default in Bromite + BASE_FEATURE(kRemoteOptimizationGuideFetching, + "OptimizationHintsFetching", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default in Bromite - const base::Feature kRemoteOptimizationGuideFetchingAnonymousDataConsent{ -- "OptimizationHintsFetchingAnonymousDataConsent", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ "OptimizationHintsFetchingAnonymousDataConsent", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kRemoteOptimizationGuideFetchingAnonymousDataConsent, +- "OptimizationHintsFetchingAnonymousDataConsent", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "OptimizationHintsFetchingAnonymousDataConsent", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite // Enables performance info in the context menu and fetching from a remote // Optimization Guide Service. -@@ -96,15 +96,15 @@ const base::Feature kContextMenuPerformanceInfoAndRemoteHintFetching{ - +@@ -99,15 +99,15 @@ BASE_FEATURE(kContextMenuPerformanceInfoAndRemoteHintFetching, // Enables the prediction of optimization targets. - const base::Feature kOptimizationTargetPrediction{ -- "OptimizationTargetPrediction", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "OptimizationTargetPrediction", base::FEATURE_DISABLED_BY_DEFAULT}; // disabled by default in Bromite + BASE_FEATURE(kOptimizationTargetPrediction, + "OptimizationTargetPrediction", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default in Bromite // Enables the downloading of models. - const base::Feature kOptimizationGuideModelDownloading { - "OptimizationGuideModelDownloading", + BASE_FEATURE(kOptimizationGuideModelDownloading, + "OptimizationGuideModelDownloading", #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) -- base::FEATURE_ENABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT -#else // BUILD_WITH_TFLITE_LIB - base::FEATURE_DISABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT +#else // BUILD_WITH_TFLITE_LIB -+ base::FEATURE_DISABLED_BY_DEFAULT // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT // guard this #endif // !BUILD_WITH_TFLITE_LIB - }; - -@@ -134,7 +134,7 @@ const base::Feature kPageEntitiesModelResetOnShutdown{ + ); +@@ -144,7 +144,7 @@ BASE_FEATURE(kPageEntitiesModelResetOnShutdown, // Enables push notification of hints. - const base::Feature kPushNotifications{"OptimizationGuidePushNotifications", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; // guard this + BASE_FEATURE(kPushNotifications, + "OptimizationGuidePushNotifications", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this // This feature flag does not turn off any behavior, it is only used for // experiment parameters. -@@ -146,12 +146,12 @@ const base::Feature kOptimizationGuideMetadataValidation{ - "OptimizationGuideMetadataValidation", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -159,14 +159,14 @@ BASE_FEATURE(kOptimizationGuideMetadataValidation, - const base::Feature kPageTopicsBatchAnnotations{ -- "PageTopicsBatchAnnotations", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "PageTopicsBatchAnnotations", base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kPageVisibilityBatchAnnotations{ - "PageVisibilityBatchAnnotations", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPageTopicsBatchAnnotations, + "PageTopicsBatchAnnotations", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kPageVisibilityBatchAnnotations, + "PageVisibilityBatchAnnotations", + base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kUseLocalPageEntitiesMetadataProvider{ -- "UseLocalPageEntitiesMetadataProvider", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "UseLocalPageEntitiesMetadataProvider", base::FEATURE_DISABLED_BY_DEFAULT}; // guard this + BASE_FEATURE(kUseLocalPageEntitiesMetadataProvider, + "UseLocalPageEntitiesMetadataProvider", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - const base::Feature kPageContentAnnotationsValidation{ - "PageContentAnnotationsValidation", base::FEATURE_DISABLED_BY_DEFAULT}; -@@ -390,7 +390,7 @@ size_t MaxURLKeyedHintCacheSize() { + BASE_FEATURE(kPageContentAnnotationsValidation, + "PageContentAnnotationsValidation", +@@ -408,7 +408,7 @@ size_t MaxURLKeyedHintCacheSize() { bool ShouldPersistHintsToDisk() { return GetFieldTrialParamByFeatureAsBool(kOptimizationHints, @@ -238,46 +241,46 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -66,12 +66,12 @@ const base::Feature kPermissionChipRequestTypeSensitive{ +@@ -85,12 +85,12 @@ BASE_FEATURE(kPermissionChipRequestTypeSensitive, // When enabled, use the value of the `service_url` FeatureParam as the url // for the Web Permission Predictions Service. - const base::Feature kPermissionPredictionServiceUseUrlOverride{ -- "kPermissionPredictionServiceUseUrlOverride", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ "kPermissionPredictionServiceUseUrlOverride", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kPermissionPredictionServiceUseUrlOverride, +- "kPermissionPredictionServiceUseUrlOverride", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "kPermissionPredictionServiceUseUrlOverride", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - const base::Feature kPermissionOnDeviceNotificationPredictions{ -- "PermissionOnDeviceNotificationPredictions", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ "PermissionOnDeviceNotificationPredictions", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite + BASE_FEATURE(kPermissionOnDeviceNotificationPredictions, +- "PermissionOnDeviceNotificationPredictions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "PermissionOnDeviceNotificationPredictions", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - const base::Feature kPermissionOnDeviceGeolocationPredictions{ - "PermissionOnDeviceGeolocationPredictions", + BASE_FEATURE(kPermissionOnDeviceGeolocationPredictions, + "PermissionOnDeviceGeolocationPredictions", diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -30,7 +30,7 @@ const base::Feature kShoppingUserSegmentFeature{ - const base::Feature kSegmentationPlatformFeedSegmentFeature{ - "SegmentationPlatformFeedSegmentFeature", +@@ -35,7 +35,7 @@ BASE_FEATURE(kSegmentationPlatformSearchUser, + BASE_FEATURE(kSegmentationPlatformFeedSegmentFeature, + "SegmentationPlatformFeedSegmentFeature", #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) -- base::FEATURE_ENABLED_BY_DEFAULT -+ base::FEATURE_DISABLED_BY_DEFAULT - }; +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); #else - base::FEATURE_DISABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT); + #endif diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -206,7 +206,7 @@ const base::Feature kMixedContentAutoupgrade{"AutoupgradeMixedContent", - const base::Feature kNavigationPredictor { - "NavigationPredictor", +@@ -216,7 +216,7 @@ BASE_FEATURE(kMixedContentAutoupgrade, + BASE_FEATURE(kNavigationPredictor, + "NavigationPredictor", #if BUILDFLAG(IS_ANDROID) -- base::FEATURE_ENABLED_BY_DEFAULT -+ base::FEATURE_DISABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT ++ base::FEATURE_DISABLED_BY_DEFAULT #else - base::FEATURE_DISABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT #endif -- 2.25.1 diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index 84c9d0d2..6404a087 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -875,7 +875,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -876,7 +876,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { * displayed. */ private boolean triggerPromo(boolean intentWithEffect) { @@ -19,7 +19,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) { return false; } -@@ -910,8 +910,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -911,8 +911,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { preferenceManager.writeBoolean( ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true); } diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index bb092d81..ce2845bb 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -12,42 +12,39 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../browser/flags/android/chrome_feature_list.cc | 2 +- - .../embedder_support/origin_trials/features.cc | 3 ++- + .../embedder_support/origin_trials/features.cc | 2 +- .../render_view_context_menu_base.cc | 3 --- .../aggregatable_report_sender.cc | 15 +++++++-------- .../attribution_reporting/attribution_host.cc | 1 + .../attribution_report_network_sender.cc | 15 ++++++++------- - .../attribution_storage_sql.cc | 2 +- + .../attribution_storage_sql.cc | 4 +++- content/browser/storage_partition_impl.cc | 7 +------ content/public/browser/navigation_controller.cc | 1 - third_party/blink/common/features.cc | 2 +- .../platform/runtime_enabled_features.json5 | 7 +++++++ - 11 files changed, 29 insertions(+), 29 deletions(-) + 11 files changed, 30 insertions(+), 29 deletions(-) diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -511,7 +511,7 @@ const base::Feature kAppMenuMobileSiteOption{"AppMenuMobileSiteOption", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -530,7 +530,7 @@ BASE_FEATURE(kAppMenuMobileSiteOption, - const base::Feature kAppToWebAttribution{"AppToWebAttribution", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; // guard this + BASE_FEATURE(kAppToWebAttribution, + "AppToWebAttribution", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this - const base::Feature kBackgroundThreadPool{"BackgroundThreadPool", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kBackgroundThreadPool, + "BackgroundThreadPool", diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc --- a/components/embedder_support/origin_trials/features.cc +++ b/components/embedder_support/origin_trials/features.cc -@@ -17,8 +17,9 @@ const base::Feature kOriginTrialsSampleAPIThirdPartyAlternativeUsage{ - "OriginTrialsSampleAPIThirdPartyAlternativeUsage", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -19,6 +19,6 @@ BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage, -+// When disabled, the API cannot be enabled by tokens. - const base::Feature kConversionMeasurementAPIAlternativeUsage{ - "ConversionMeasurementAPIAlternativeUsage", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kConversionMeasurementAPIAlternativeUsage, + "ConversionMeasurementAPIAlternativeUsage", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); } // namespace embedder_support diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc @@ -107,7 +104,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc --- a/content/browser/attribution_reporting/attribution_report_network_sender.cc +++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc -@@ -112,13 +112,8 @@ void AttributionReportNetworkSender::SendReport( +@@ -110,13 +110,8 @@ void AttributionReportNetworkSender::SendReport( network::SimpleURLLoader::RETRY_ON_NAME_NOT_RESOLVED; simple_url_loader_ptr->SetRetryOptions(/*max_retries=*/1, retry_mode); @@ -123,7 +120,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se } void AttributionReportNetworkSender::OnReportSent( -@@ -127,6 +122,12 @@ void AttributionReportNetworkSender::OnReportSent( +@@ -125,6 +120,12 @@ void AttributionReportNetworkSender::OnReportSent( bool is_debug_report, ReportSentCallback sent_callback, scoped_refptr headers) { @@ -139,19 +136,28 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc --- a/content/browser/attribution_reporting/attribution_storage_sql.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc -@@ -416,7 +416,7 @@ DestinationLimitResult GetDestinationLimitResult( +@@ -422,6 +422,8 @@ DestinationLimitResult GetDestinationLimitResult( } } --bool g_run_in_memory = false; +bool g_run_in_memory = true; - ++ } // namespace + // static +@@ -433,7 +435,7 @@ bool AttributionStorageSql::DeleteStorageForTesting( + AttributionStorageSql::AttributionStorageSql( + const base::FilePath& user_data_directory, + std::unique_ptr delegate) +- : path_to_database_(user_data_directory.empty() ++ : path_to_database_(user_data_directory.empty() || g_run_in_memory + ? base::FilePath() + : DatabasePath(user_data_directory)), + delegate_(std::move(delegate)), diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1315,12 +1315,7 @@ void StoragePartitionImpl::Initialize( +@@ -1353,12 +1353,7 @@ void StoragePartitionImpl::Initialize( bucket_manager_ = std::make_unique(this); @@ -179,12 +185,12 @@ diff --git a/content/public/browser/navigation_controller.cc b/content/public/br diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -107,7 +107,7 @@ const base::Feature kBlockingDownloadsInAdFrameWithoutUserActivation{ - +@@ -106,7 +106,7 @@ BASE_FEATURE(kBlockingDownloadsInAdFrameWithoutUserActivation, // Controls whether the Conversion Measurement API infrastructure is enabled. - const base::Feature kConversionMeasurement{"ConversionMeasurement", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kConversionMeasurement, + "ConversionMeasurement", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Controls whether LCP calculations should exclude low-entropy images. If // enabled, then the associated parameter sets the cutoff, expressed as the diff --git a/build/patches/Disable-crash-reporting.patch b/build/patches/Disable-crash-reporting.patch index c4e1a222..e86b509c 100644 --- a/build/patches/Disable-crash-reporting.patch +++ b/build/patches/Disable-crash-reporting.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -224,8 +224,8 @@ const base::Feature kCooperativeScheduling{"CooperativeScheduling", - +@@ -241,8 +241,8 @@ BASE_FEATURE(kCooperativeScheduling, // Enables crash reporting via Reporting API. // https://www.w3.org/TR/reporting/#crash-report --const base::Feature kCrashReporting{"CrashReporting", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+const base::Feature kCrashReporting{"CrashReporting", // disabled by default on Bromite -+ base::FEATURE_DISABLED_BY_DEFAULT}; // ^ + BASE_FEATURE(kCrashReporting, +- "CrashReporting", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "CrashReporting", // disabled by default on Bromite ++ base::FEATURE_DISABLED_BY_DEFAULT); // ^ // Enables support for the `Critical-CH` response header. // https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch diff --git a/build/patches/Disable-feeds-support-by-default.patch b/build/patches/Disable-feeds-support-by-default.patch index ddf4008c..56d160d0 100644 --- a/build/patches/Disable-feeds-support-by-default.patch +++ b/build/patches/Disable-feeds-support-by-default.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java --- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java +++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java -@@ -42,13 +42,7 @@ public final class FeedFeatures { +@@ -48,13 +48,7 @@ public final class FeedFeatures { * the user is signed in and confirms it's not a child profile. */ public static boolean isWebFeedUIEnabled() { @@ -26,7 +26,7 @@ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/fe + return false; } - /** + public static boolean shouldUseWebFeedAwarenessIPH() { diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java @@ -42,20 +42,21 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc --- a/components/feed/feed_feature_list.cc +++ b/components/feed/feed_feature_list.cc -@@ -16,12 +16,12 @@ - namespace feed { +@@ -18,13 +18,13 @@ namespace feed { - const base::Feature kInterestFeedContentSuggestions{ -- "InterestFeedContentSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "InterestFeedContentSuggestions", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kInterestFeedContentSuggestions, + "InterestFeedContentSuggestions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // InterestFeedV2 takes precedence over InterestFeedContentSuggestions. // InterestFeedV2 is cached in ChromeCachedFlags. If the default value here is // changed, please update the cached one's default value in CachedFeatureFlags. - const base::Feature kInterestFeedV2{"InterestFeedV2", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kInterestFeedV2, + "InterestFeedV2", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kInterestFeedV2Autoplay{"InterestFeedV2Autoplay", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kInterestFeedV2Autoplay, + "InterestFeedV2Autoplay", -- 2.25.1 diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index 5c9d95a6..3aad3597 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -30,10 +30,10 @@ diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/ "java/src/org/chromium/android_webview/services/ComponentUpdaterSafeModeUtils.java", "java/src/org/chromium/android_webview/services/ComponentsProviderPathUtil.java", "java/src/org/chromium/android_webview/services/ComponentsProviderService.java", -@@ -118,7 +117,6 @@ android_library("services_java") { - "java/src/org/chromium/android_webview/services/SafeModeContentProvider.java", +@@ -119,7 +118,6 @@ android_library("services_java") { "java/src/org/chromium/android_webview/services/SafeModeService.java", "java/src/org/chromium/android_webview/services/ServicesStatsHelper.java", + "java/src/org/chromium/android_webview/services/StartupFeatureMetadataHolder.java", - "java/src/org/chromium/android_webview/services/VariationsSeedHolder.java", "java/src/org/chromium/android_webview/services/VariationsSeedServer.java", ] @@ -53,19 +53,19 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/s diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/browser/metrics/chrome_browser_sampling_trials.cc --- a/chrome/browser/metrics/chrome_browser_sampling_trials.cc +++ b/chrome/browser/metrics/chrome_browser_sampling_trials.cc -@@ -52,6 +52,8 @@ void CreateFallbackSamplingTrial(const std::string& trial_name, - const std::string& feature_name, - const int sampled_in_rate_per_mille, - base::FeatureList* feature_list) { +@@ -54,6 +54,8 @@ void CreateFallbackSamplingTrial( + const std::string& feature_name, + const int sampled_in_rate_per_mille, + base::FeatureList* feature_list) { + if ((true)) + return; scoped_refptr trial( base::FieldTrialList::FactoryGetFieldTrial( - trial_name, /*total_probability=*/1000, "Default", -@@ -90,6 +92,8 @@ void CreateFallbackSamplingTrial(const std::string& trial_name, - // field trial controlling the sampling feature. - void CreateFallbackUkmSamplingTrial(bool is_stable_channel, - base::FeatureList* feature_list) { + trial_name, /*total_probability=*/1000, "Default", entropy_provider)); +@@ -93,6 +95,8 @@ void CreateFallbackUkmSamplingTrial( + const base::FieldTrial::EntropyProvider& entropy_provider, + bool is_stable_channel, + base::FeatureList* feature_list) { + if ((true)) + return; static const char kSampledGroup_Stable[] = "Sampled_NoSeed_Stable"; @@ -74,7 +74,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc --- a/components/ukm/ukm_recorder_impl.cc +++ b/components/ukm/ukm_recorder_impl.cc -@@ -210,6 +210,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map, +@@ -206,6 +206,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map, UkmRecorderImpl::UkmRecorderImpl() : sampling_seed_(static_cast(base::RandUint64())) { @@ -145,12 +145,12 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari diff --git a/components/variations/net/omnibox_http_headers.cc b/components/variations/net/omnibox_http_headers.cc --- a/components/variations/net/omnibox_http_headers.cc +++ b/components/variations/net/omnibox_http_headers.cc -@@ -21,7 +21,7 @@ const char kOmniboxOnDeviceSuggestionsHeader[] = - // Whether to enable reporting the header. Included as a quick escape hatch in +@@ -22,7 +22,7 @@ const char kOmniboxOnDeviceSuggestionsHeader[] = // case of crashes. - const base::Feature kReportOmniboxOnDeviceSuggestionsHeader{ -- "ReportOmniboxOnDeviceSuggestionsHeader", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "ReportOmniboxOnDeviceSuggestionsHeader", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kReportOmniboxOnDeviceSuggestionsHeader, + "ReportOmniboxOnDeviceSuggestionsHeader", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); std::string GetHeaderValue() { const std::string group = @@ -215,7 +215,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -176,13 +176,6 @@ Vector CopyInitiatorOriginTrials( +@@ -173,13 +173,6 @@ Vector CopyInitiatorOriginTrials( WebVector CopyInitiatorOriginTrials( const Vector& initiator_origin_trial_features) { WebVector result; diff --git a/build/patches/Disable-idle-detection.patch b/build/patches/Disable-idle-detection.patch index 057afc0b..2dad020b 100644 --- a/build/patches/Disable-idle-detection.patch +++ b/build/patches/Disable-idle-detection.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -444,7 +444,7 @@ const base::Feature kIdentityInCanMakePaymentEventFeature{ +@@ -479,7 +479,7 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_ENABLED_BY_DEFAULT); + // This is intended as a kill switch for the Idle Detection feature. To enable // this feature, the experimental web platform features flag should be set, // or the site should obtain an Origin Trial token. - const base::Feature kIdleDetection{"IdleDetection", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; +-BASE_FEATURE(kIdleDetection, "IdleDetection", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kIdleDetection, "IdleDetection", base::FEATURE_DISABLED_BY_DEFAULT); // A feature flag for the memory-backed code cache. - const base::Feature kInMemoryCodeCache{"InMemoryCodeCache", + BASE_FEATURE(kInMemoryCodeCache, -- 2.25.1 diff --git a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch index f4710eee..52e406b6 100644 --- a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch +++ b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc -@@ -367,7 +367,7 @@ const base::Feature kSiteSearchStarterPack{"OmniboxSiteSearchStarterPack", +@@ -434,7 +434,7 @@ BASE_FEATURE(kSiteSearchStarterPack, // Experiment to introduce new security indicators for HTTPS. - const base::Feature kUpdatedConnectionSecurityIndicators{ - "OmniboxUpdatedConnectionSecurityIndicators", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kUpdatedConnectionSecurityIndicators, + "OmniboxUpdatedConnectionSecurityIndicators", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); // Feature used to default typed navigations to use HTTPS instead of HTTP. // This only applies to navigations that don't have a scheme such as diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index 7e91ba03..f6a47d78 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc --- a/chrome/browser/media/router/media_router_feature.cc +++ b/chrome/browser/media/router/media_router_feature.cc -@@ -53,26 +53,15 @@ const base::Feature kGlobalMediaControlsCastStartStop{ +@@ -59,26 +59,15 @@ BASE_FEATURE(kGlobalMediaControlsCastStartStop, #endif // !BUILDFLAG(IS_ANDROID) @@ -45,7 +45,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse #if !BUILDFLAG(IS_ANDROID) if (!base::FeatureList::IsEnabled(kMediaRouter)) return false; -@@ -100,7 +89,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) { +@@ -106,7 +95,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) { return allowed; } return true; @@ -54,7 +54,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse #if !BUILDFLAG(IS_ANDROID) void RegisterLocalStatePrefs(PrefRegistrySimple* registry) { -@@ -113,7 +102,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -119,7 +108,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { PrefRegistry::PUBLIC); registry->RegisterBooleanPref( @@ -66,7 +66,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -419,7 +419,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -411,7 +411,7 @@ void ProfileImpl::RegisterProfilePrefs( #endif registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); diff --git a/build/patches/Disable-offline-pages-in-CCT.patch b/build/patches/Disable-offline-pages-in-CCT.patch index 787e915e..911ccb3b 100644 --- a/build/patches/Disable-offline-pages-in-CCT.patch +++ b/build/patches/Disable-offline-pages-in-CCT.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc -@@ -36,7 +36,7 @@ const base::Feature kOfflinePagesDescriptivePendingStatusFeature{ - "OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -42,7 +42,7 @@ BASE_FEATURE(kOfflinePagesDescriptivePendingStatusFeature, - const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{ -- "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kOfflinePagesInDownloadHomeOpenInCctFeature, + "OfflinePagesInDownloadHomeOpenInCct", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kOfflineIndicatorFeature{"OfflineIndicator", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kOfflineIndicatorFeature, + "OfflineIndicator", -- 2.25.1 diff --git a/build/patches/Disable-plugins-enumeration.patch b/build/patches/Disable-plugins-enumeration.patch index c543afb6..8e515f83 100644 --- a/build/patches/Disable-plugins-enumeration.patch +++ b/build/patches/Disable-plugins-enumeration.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1965,9 +1965,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -1920,9 +1920,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index dfcde7d0..2daf1a38 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -286,7 +286,7 @@ diff --git a/chrome/app/android/chrome_main_delegate_android.cc b/chrome/app/and diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -336,8 +336,6 @@ static_library("browser") { +@@ -338,8 +338,6 @@ static_library("browser") { "complex_tasks/task_tab_helper.h", "component_updater/autofill_regex_remover.cc", "component_updater/autofill_regex_remover.h", @@ -295,7 +295,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "component_updater/chrome_component_updater_configurator.cc", "component_updater/chrome_component_updater_configurator.h", "component_updater/chrome_origin_trials_component_installer.cc", -@@ -350,8 +348,6 @@ static_library("browser") { +@@ -352,8 +350,6 @@ static_library("browser") { "component_updater/component_updater_utils.h", "component_updater/crl_set_component_installer.cc", "component_updater/crl_set_component_installer.h", @@ -304,7 +304,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "component_updater/first_party_sets_component_installer.cc", "component_updater/first_party_sets_component_installer.h", "component_updater/mei_preload_component_installer.cc", -@@ -1117,8 +1113,6 @@ static_library("browser") { +@@ -1125,8 +1121,6 @@ static_library("browser") { "permissions/adaptive_quiet_notification_permission_ui_enabler.h", "permissions/chrome_permissions_client.cc", "permissions/chrome_permissions_client.h", @@ -313,7 +313,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "permissions/crowd_deny_preload_data.cc", "permissions/crowd_deny_preload_data.h", "permissions/crowd_deny_safe_browsing_request.cc", -@@ -1503,15 +1497,6 @@ static_library("browser") { +@@ -1515,15 +1509,6 @@ static_library("browser") { "renderer_host/chrome_navigation_ui_data.h", "renderer_preferences_util.cc", "renderer_preferences_util.h", @@ -329,7 +329,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "resource_coordinator/resource_coordinator_parts.cc", "resource_coordinator/resource_coordinator_parts.h", "resource_coordinator/session_restore_policy.cc", -@@ -2245,11 +2230,8 @@ static_library("browser") { +@@ -2260,11 +2245,8 @@ static_library("browser") { "//components/reporting/util:status_macros", "//components/reporting/util:status_proto", "//components/reporting/util:task_runner_context", @@ -341,7 +341,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/web_ui", -@@ -3230,12 +3212,6 @@ static_library("browser") { +@@ -3243,12 +3225,6 @@ static_library("browser") { "profiles/profile_manager_android.cc", "profiles/profile_manager_android.h", "query_tiles/android/tile_provider_factory.cc", @@ -354,7 +354,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "safe_browsing/android/password_reuse_controller_android.cc", "safe_browsing/android/password_reuse_controller_android.h", "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc", -@@ -3718,8 +3694,6 @@ static_library("browser") { +@@ -3731,8 +3707,6 @@ static_library("browser") { "download/download_commands.h", "download/download_crx_util.cc", "download/download_crx_util.h", @@ -363,7 +363,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "download/download_dir_policy_handler.cc", "download/download_dir_policy_handler.h", "download/download_dir_util.cc", -@@ -8196,8 +8170,6 @@ static_library("test_support") { +@@ -8257,8 +8231,6 @@ static_library("test_support") { "//components/reporting/util:status_macros", "//components/reporting/util:status_proto", "//components/reporting/util:task_runner_context", @@ -463,7 +463,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro #include "components/sessions/core/session_id_generator.h" #include "components/subresource_filter/content/browser/ruleset_service.h" #include "components/translate/core/browser/translate_download_manager.h" -@@ -406,8 +404,6 @@ void BrowserProcessImpl::StartTearDown() { +@@ -408,8 +406,6 @@ void BrowserProcessImpl::StartTearDown() { metrics_services_manager_.reset(); intranet_redirect_detector_.reset(); @@ -487,7 +487,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro subresource_filter::RulesetService* BrowserProcessImpl::subresource_filter_ruleset_service() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1275,23 +1263,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { +@@ -1279,23 +1267,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { } void BrowserProcessImpl::CreateSafeBrowsingService() { @@ -535,7 +535,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -638,10 +638,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -641,10 +641,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies")); network::mojom::NetworkContext* safe_browsing_context = nullptr; @@ -551,7 +551,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -111,6 +111,7 @@ +@@ -113,6 +113,7 @@ #include "chrome/browser/profiling_host/chrome_browser_main_extra_parts_profiling.h" #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h" #include "chrome/browser/renderer_preferences_util.h" @@ -559,7 +559,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/safe_browsing/certificate_reporting_service.h" #include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h" -@@ -118,6 +119,7 @@ +@@ -120,6 +121,7 @@ #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h" #include "chrome/browser/safe_browsing/url_lookup_service_factory.h" @@ -567,7 +567,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/search/search.h" #include "chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.h" #include "chrome/browser/sharing/sms/sms_remote_fetcher.h" -@@ -1015,9 +1017,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { +@@ -1025,9 +1027,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { class CertificateReportingServiceCertReporter : public SSLCertReporter { public: explicit CertificateReportingServiceCertReporter( @@ -578,7 +578,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch CertificateReportingServiceCertReporter( const CertificateReportingServiceCertReporter&) = delete; -@@ -1029,11 +1029,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter { +@@ -1039,11 +1039,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter { // SSLCertReporter implementation void ReportInvalidCertificateChain( const std::string& serialized_report) override { @@ -590,7 +590,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch }; #if BUILDFLAG(ENABLE_EXTENSIONS) -@@ -1285,14 +1283,6 @@ void MaybeAddThrottle( +@@ -1295,14 +1293,6 @@ void MaybeAddThrottle( throttles->push_back(std::move(maybe_throttle)); } @@ -605,16 +605,16 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch void MaybeAddThrottles( std::vector> additional, std::vector>* combined) { -@@ -2376,7 +2366,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2394,7 +2384,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( } #elif BUILDFLAG(IS_POSIX) #if BUILDFLAG(IS_ANDROID) - bool enable_crash_reporter = true; + bool enable_crash_reporter = false; - #else + #elif BUILDFLAG(IS_CHROMEOS) bool enable_crash_reporter = false; if (crash_reporter::IsCrashpadEnabled()) { -@@ -4651,6 +4641,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -4681,6 +4671,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -622,15 +622,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // g_browser_process->safe_browsing_service() may be null in unittests. safe_browsing::SafeBrowsingUIManager* ui_manager = g_browser_process->safe_browsing_service() -@@ -4666,6 +4657,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -4696,6 +4687,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( std::make_unique( handle)); } +#endif - // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch - // of lacros-chrome is complete. -@@ -4900,7 +4892,9 @@ void ChromeContentBrowserClient::OverridePageVisibilityState( + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: +@@ -4936,7 +4928,9 @@ void ChromeContentBrowserClient::OverridePageVisibilityState( void ChromeContentBrowserClient::InitOnUIThread() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -640,7 +640,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // Initialize `network_contexts_parent_directory_`. base::FilePath user_data_dir; -@@ -6099,6 +6093,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -6132,6 +6126,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( const std::vector& allowlist_domains) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -648,7 +648,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // Should not bypass safe browsing check if the check is for enterprise // lookup. if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled) -@@ -6119,6 +6114,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -6152,6 +6147,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( } return safe_browsing_url_checker_delegate_; @@ -658,7 +658,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } safe_browsing::RealTimeUrlLookupServiceBase* -@@ -6126,24 +6124,28 @@ ChromeContentBrowserClient::GetUrlLookupService( +@@ -6159,24 +6157,28 @@ ChromeContentBrowserClient::GetUrlLookupService( content::BrowserContext* browser_context, bool is_enterprise_lookup_enabled, bool is_consumer_lookup_enabled) { @@ -691,7 +691,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -918,9 +918,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -922,9 +922,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { // Parts are deleted in the reverse order they are added. std::vector extra_parts_; @@ -706,7 +706,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chr diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc --- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc +++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc -@@ -133,6 +133,7 @@ +@@ -131,6 +131,7 @@ namespace { @@ -714,7 +714,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b // Helper method for ExposeInterfacesToRenderer() that checks the latest // SafeBrowsing pref value on the UI thread before hopping over to the IO // thread. -@@ -174,6 +175,7 @@ void MaybeCreateSafeBrowsingForRenderer( +@@ -172,6 +173,7 @@ void MaybeCreateSafeBrowsingForRenderer( allowlist_domains), std::move(receiver))); } @@ -1033,7 +1033,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc --- a/chrome/browser/download/download_item_model.cc +++ b/chrome/browser/download/download_item_model.cc -@@ -34,7 +34,9 @@ +@@ -35,7 +35,9 @@ #include "chrome/browser/enterprise/connectors/connectors_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/safe_browsing/download_protection/deep_scanning_request.h" @@ -1042,8 +1042,8 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow +#endif #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/grit/chromium_strings.h" -@@ -44,9 +46,11 @@ + #include "chrome/browser/signin/identity_manager_factory.h" +@@ -46,9 +48,11 @@ #include "components/download/public/common/download_item.h" #include "components/safe_browsing/buildflags.h" #include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h" @@ -1052,10 +1052,10 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" #include "components/safe_browsing/core/common/features.h" +#endif - #include "components/vector_icons/vector_icons.h" - #include "content/public/browser/browser_task_traits.h" - #include "content/public/browser/browser_thread.h" -@@ -62,7 +66,9 @@ + #include "components/signin/public/base/consent_level.h" + #include "components/signin/public/identity_manager/account_info.h" + #include "components/signin/public/identity_manager/identity_manager.h" +@@ -67,7 +71,9 @@ using download::DownloadItem; using MixedContentStatus = download::DownloadItem::MixedContentStatus; @@ -1065,7 +1065,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow using ReportThreatDetailsResult = safe_browsing::PingManager::ReportThreatDetailsResult; using TailoredVerdict = safe_browsing::ClientDownloadResponse::TailoredVerdict; -@@ -100,9 +106,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data { +@@ -105,9 +111,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data { // for the file type. absl::optional should_prefer_opening_in_browser_; @@ -1077,7 +1077,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow // Whether the download is currently being revived. bool is_being_revived_; -@@ -150,7 +158,9 @@ DownloadItemModelData* DownloadItemModelData::GetOrCreate( +@@ -155,7 +163,9 @@ DownloadItemModelData* DownloadItemModelData::GetOrCreate( DownloadItemModelData::DownloadItemModelData() : should_show_in_shelf_(true), was_ui_notified_(false), @@ -1087,7 +1087,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow is_being_revived_(false) {} #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -472,6 +482,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { +@@ -490,6 +500,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { data->should_prefer_opening_in_browser_ = preference; } @@ -1095,7 +1095,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const { const DownloadItemModelData* data = DownloadItemModelData::Get(download_); return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS; -@@ -482,6 +493,7 @@ void DownloadItemModel::SetDangerLevel( +@@ -500,6 +511,7 @@ void DownloadItemModel::SetDangerLevel( DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); data->danger_level_ = danger_level; } @@ -1103,7 +1103,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow download::DownloadItem::MixedContentStatus DownloadItemModel::GetMixedContentStatus() const { -@@ -701,9 +713,6 @@ bool DownloadItemModel::IsCommandEnabled( +@@ -719,9 +731,6 @@ bool DownloadItemModel::IsCommandEnabled( // filename. Don't base an "Always open" decision based on it. Also // exclude extensions. return download_->CanOpenDownload() && @@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download } } -@@ -458,10 +455,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(const GURL& url, +@@ -450,10 +447,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(const GURL& url, bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension( const base::FilePath& file_name) { base::FilePath::StringType extension = file_name.Extension(); @@ -1191,9 +1191,9 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download/download_stats.cc --- a/chrome/browser/download/download_stats.cc +++ b/chrome/browser/download/download_stats.cc -@@ -9,7 +9,9 @@ - #include "base/notreached.h" +@@ -10,7 +10,9 @@ #include "build/build_config.h" + #include "components/download/public/common/download_content.h" #include "components/profile_metrics/browser_profile_type.h" +#if defined(FULL_SAFE_BROWSING) #include "components/safe_browsing/content/browser/download/download_stats.h" @@ -1201,7 +1201,7 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download void RecordDownloadCount(ChromeDownloadCountTypes type) { base::UmaHistogramEnumeration("Download.CountsChrome", type, -@@ -28,8 +30,10 @@ void RecordDangerousDownloadWarningShown( +@@ -29,8 +31,10 @@ void RecordDangerousDownloadWarningShown( bool has_user_gesture) { base::UmaHistogramEnumeration("Download.ShowedDownloadWarning", danger_type, download::DOWNLOAD_DANGER_TYPE_MAX); @@ -1212,7 +1212,7 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download } void RecordOpenedDangerousConfirmDialog( -@@ -41,6 +45,7 @@ void RecordOpenedDangerousConfirmDialog( +@@ -42,6 +46,7 @@ void RecordOpenedDangerousConfirmDialog( void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, const std::string& mime_type_string) { @@ -1220,14 +1220,14 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download base::RecordAction(base::UserMetricsAction("Download.Open")); base::UmaHistogramEnumeration("Download.OpenMethod", open_method, DOWNLOAD_OPEN_METHOD_LAST_ENTRY); -@@ -49,6 +54,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, - mime_type_string, /*record_content_subcategory=*/false); +@@ -61,6 +66,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, + } base::UmaHistogramEnumeration("Download.Open.ContentType", download_content, download::DownloadContent::MAX); +#endif } - void RecordDatabaseAvailability(bool is_available) { + void RecordDownloadOpenButtonPressed(bool is_download_completed) { diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc --- a/chrome/browser/download/download_target_determiner.cc +++ b/chrome/browser/download/download_target_determiner.cc @@ -1294,7 +1294,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow // If no mime type or explicitly specified a name, don't replace file // extension. -@@ -917,6 +927,7 @@ DownloadTargetDeterminer::Result +@@ -920,6 +930,7 @@ DownloadTargetDeterminer::Result return CONTINUE; } @@ -1302,7 +1302,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow // First determine the danger level assuming that the user doesn't have any // prior visits to the referrer recoreded in history. The resulting danger // level would be ALLOW_ON_USER_GESTURE if the level depends on the visit -@@ -953,6 +964,7 @@ DownloadTargetDeterminer::Result +@@ -956,6 +967,7 @@ DownloadTargetDeterminer::Result // invalid, then assume the referrer has not been visited before. if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; @@ -1310,7 +1310,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow return CONTINUE; } -@@ -960,6 +972,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( +@@ -963,6 +975,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( bool visited_referrer_before) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_); @@ -1318,7 +1318,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow safe_browsing::RecordDownloadFileTypeAttributes( safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel( virtual_path_.BaseName(), download_->GetURL(), -@@ -971,6 +984,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( +@@ -974,6 +987,7 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone( if (danger_level_ != DownloadFileType::NOT_DANGEROUS && danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; @@ -1326,7 +1326,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow DoLoop(); } -@@ -1069,7 +1083,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( +@@ -1072,7 +1086,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( << " Intermediate:" << intermediate_path_.AsUTF8Unsafe() << " Confirmation reason:" << static_cast(confirmation_reason_) << " Danger type:" << danger_type_ @@ -1336,7 +1336,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow << " Result:" << static_cast(result); std::unique_ptr target_info(new DownloadTargetInfo); -@@ -1081,7 +1097,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( +@@ -1084,7 +1100,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf( ? DownloadItem::TARGET_DISPOSITION_PROMPT : DownloadItem::TARGET_DISPOSITION_OVERWRITE); target_info->danger_type = danger_type_; @@ -1346,7 +1346,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow target_info->intermediate_path = intermediate_path_; target_info->mime_type = mime_type_; target_info->is_filetype_handled_safely = is_filetype_handled_safely_; -@@ -1175,54 +1193,11 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const { +@@ -1177,54 +1195,11 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const { DownloadItem::TARGET_DISPOSITION_PROMPT); } @@ -1402,7 +1402,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow } absl::optional -@@ -1236,6 +1211,7 @@ DownloadTargetDeterminer::GetLastDownloadBypassTimestamp() const { +@@ -1238,6 +1213,7 @@ DownloadTargetDeterminer::GetLastDownloadBypassTimestamp() const { EventType::DANGEROUS_DOWNLOAD_BYPASS) : absl::nullopt; } @@ -1501,7 +1501,7 @@ diff --git a/chrome/browser/download/download_target_info.h b/chrome/browser/dow diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc --- a/chrome/browser/download/download_ui_model.cc +++ b/chrome/browser/download/download_ui_model.cc -@@ -37,7 +37,9 @@ +@@ -39,7 +39,9 @@ using download::DownloadItem; using offline_items_collection::FailState; @@ -1511,7 +1511,7 @@ diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/downl namespace { -@@ -463,12 +465,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() { +@@ -465,12 +467,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() { void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {} @@ -1662,7 +1662,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/br diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -1263,21 +1263,9 @@ WebstorePrivateGetExtensionStatusFunction::Run() { +@@ -1277,21 +1277,9 @@ WebstorePrivateGetExtensionStatusFunction::Run() { GetExtensionStatus::Params::Create(args())); EXTENSION_FUNCTION_VALIDATE(params); @@ -1735,7 +1735,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss void DoSafeBrowsingCheckOnUIThread( content::GlobalRenderFrameHostId frame_id, std::unique_ptr item, -@@ -420,6 +427,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) { +@@ -422,6 +429,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) { NOTREACHED(); return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock; } @@ -1743,7 +1743,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss std::string GenerateLastPickedDirectoryKey(const std::string& id) { return id.empty() ? kDefaultLastPickedDirectoryKey -@@ -1202,6 +1210,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess( +@@ -1204,6 +1212,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess( frame_id, std::move(callback))); } @@ -1751,7 +1751,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks( std::unique_ptr item, content::GlobalRenderFrameHostId frame_id, -@@ -1223,6 +1232,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks( +@@ -1225,6 +1234,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks( }, base::SequencedTaskRunnerHandle::Get(), std::move(callback)))); } @@ -1759,15 +1759,15 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss void ChromeFileSystemAccessPermissionContext:: DidConfirmSensitiveDirectoryAccess( -@@ -1237,6 +1247,7 @@ void ChromeFileSystemAccessPermissionContext:: +@@ -1239,6 +1249,7 @@ void ChromeFileSystemAccessPermissionContext:: if (!should_block) { // If attempting to save a file with a dangerous extension, prompt the user // to make them confirm they actually want to save the file. +#if defined(FULL_SAFE_BROWSING) - if (dialog_type == ui::SelectFileDialog::SELECT_SAVEAS_FILE) { + if (user_action == UserAction::kSave) { safe_browsing::DownloadFileType::DangerLevel danger_level = safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel( -@@ -1256,6 +1267,7 @@ void ChromeFileSystemAccessPermissionContext:: +@@ -1258,6 +1269,7 @@ void ChromeFileSystemAccessPermissionContext:: return; } } @@ -1787,7 +1787,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss #include "third_party/blink/public/mojom/file_system_access/file_system_access_manager.mojom-forward.h" #include "third_party/blink/public/mojom/permissions/permission_status.mojom.h" @@ -88,10 +89,6 @@ class ChromeFileSystemAccessPermissionContext - ui::SelectFileDialog::Type dialog_type, + UserAction user_action, content::GlobalRenderFrameHostId frame_id, base::OnceCallback callback) override; - void PerformAfterWriteChecks( @@ -1820,7 +1820,7 @@ diff --git a/chrome/browser/lookalikes/lookalike_url_controller_client.cc b/chro diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -881,9 +881,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { +@@ -895,9 +895,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { metrics_service_->RegisterMetricsProvider( std::make_unique()); @@ -1833,7 +1833,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc --- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc +++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc -@@ -137,9 +137,6 @@ void TrialComparisonCertVerifierController::SendTrialReport( +@@ -130,9 +130,6 @@ void TrialComparisonCertVerifierController::SendTrialReport( std::string serialized_report; if (!report.Serialize(&serialized_report)) return; @@ -1846,7 +1846,7 @@ diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/c diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -922,21 +922,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const { +@@ -963,21 +963,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const { safe_browsing::PasswordProtectionService* ChromePasswordManagerClient::GetPasswordProtectionService() const { @@ -1869,7 +1869,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b } #endif // defined(ON_FOCUS_PING_ENABLED) -@@ -948,14 +940,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( +@@ -989,14 +981,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( bool password_field_exists, uint64_t reused_password_hash, const std::string& domain) { @@ -1883,8 +1883,8 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b - password_type, matching_reused_credentials, password_field_exists); #if !BUILDFLAG(IS_ANDROID) - // TODO(crbug.com/1351484): Hook this to the extension service in the next CL. -@@ -963,11 +947,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( + // If the webpage is not an extension page, do nothing. +@@ -1036,11 +1020,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( } void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() { @@ -1896,7 +1896,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b } #if !BUILDFLAG(IS_ANDROID) -@@ -1592,6 +1571,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( +@@ -1671,6 +1650,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( is_enabled = false; } @@ -1904,7 +1904,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing // warnings until user interaction. If the current page has a delayed warning, // it'll have a user interaction observer attached. Disable password -@@ -1602,6 +1582,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( +@@ -1681,6 +1661,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( observer->OnPasswordSaveOrAutofillDenied(); is_enabled = false; } @@ -1915,15 +1915,15 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc --- a/chrome/browser/permissions/chrome_permissions_client.cc +++ b/chrome/browser/permissions/chrome_permissions_client.cc -@@ -18,7 +18,6 @@ +@@ -19,7 +19,6 @@ #include "chrome/browser/engagement/important_sites_util.h" #include "chrome/browser/metrics/ukm_background_recorder_service.h" #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h" -#include "chrome/browser/permissions/contextual_notification_permission_ui_selector.h" + #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" #include "chrome/browser/permissions/permission_actions_history_factory.h" #include "chrome/browser/permissions/permission_decision_auto_blocker_factory.h" - #include "chrome/browser/permissions/permission_revocation_request.h" -@@ -292,19 +291,6 @@ permissions::IconId ChromePermissionsClient::GetOverrideIconId( +@@ -295,19 +294,6 @@ permissions::IconId ChromePermissionsClient::GetOverrideIconId( return PermissionsClient::GetOverrideIconId(request_type); } @@ -1946,7 +1946,7 @@ diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/br diff --git a/chrome/browser/permissions/chrome_permissions_client.h b/chrome/browser/permissions/chrome_permissions_client.h --- a/chrome/browser/permissions/chrome_permissions_client.h +++ b/chrome/browser/permissions/chrome_permissions_client.h -@@ -48,9 +48,6 @@ class ChromePermissionsClient : public permissions::PermissionsClient { +@@ -51,9 +51,6 @@ class ChromePermissionsClient : public permissions::PermissionsClient { GetUkmSourceIdCallback callback) override; permissions::IconId GetOverrideIconId( permissions::RequestType request_type) override; @@ -1977,15 +1977,15 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom } void PermissionRevocationRequest::OnSiteReputationReady( -@@ -172,6 +176,7 @@ void PermissionRevocationRequest::OnSiteReputationReady( - CrowdDenyPreloadData::SiteReputation::ABUSIVE_CONTENT || - site_reputation->notification_ux_quality() == - CrowdDenyPreloadData::SiteReputation::DISRUPTIVE_BEHAVIOR)) { +@@ -180,6 +184,7 @@ void PermissionRevocationRequest::OnSiteReputationReady( + default: + should_revoke_permission = false; + } +#if BUILDFLAG(FULL_SAFE_BROWSING) DCHECK(g_browser_process->safe_browsing_service()); - - if (g_browser_process->safe_browsing_service()) { -@@ -183,6 +188,7 @@ void PermissionRevocationRequest::OnSiteReputationReady( + if (should_revoke_permission && + g_browser_process->safe_browsing_service()) { +@@ -191,6 +196,7 @@ void PermissionRevocationRequest::OnSiteReputationReady( weak_factory_.GetWeakPtr(), site_reputation)); return; } @@ -1996,7 +1996,7 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc --- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc +++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc -@@ -99,8 +99,8 @@ bool QuietNotificationPermissionUiConfig::IsCrowdDenyTriggeringEnabled() { +@@ -89,8 +89,8 @@ bool QuietNotificationPermissionUiConfig::IsCrowdDenyTriggeringEnabled() { return false; return base::GetFieldTrialParamByFeatureAsBool( @@ -2018,7 +2018,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "build/chromecast_buildflags.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/about_flags.h" -@@ -1321,7 +1322,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1294,7 +1295,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, PushMessagingAppIdentifier::RegisterProfilePrefs(registry); QuietNotificationPermissionUiState::RegisterProfilePrefs(registry); RegisterBrowserUserPrefs(registry); @@ -2103,7 +2103,7 @@ diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -81,7 +81,6 @@ +@@ -82,7 +82,6 @@ #include "chrome/browser/privacy_sandbox/privacy_sandbox_settings_factory.h" #include "chrome/browser/profiles/renderer_updater_factory.h" #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" @@ -2111,7 +2111,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/safe_browsing/tailored_security/tailored_security_service_factory.h" #include "chrome/browser/search_engines/template_url_fetcher_factory.h" #include "chrome/browser/search_engines/template_url_service_factory.h" -@@ -357,7 +356,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -358,7 +357,6 @@ void ChromeBrowserMainExtraPartsProfiles:: CertDbInitializerFactory::GetInstance(); #endif #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) @@ -2119,7 +2119,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #endif #if !BUILDFLAG(IS_ANDROID) ChromeBrowsingDataLifetimeManagerFactory::GetInstance(); -@@ -587,7 +585,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -589,7 +587,9 @@ void ChromeBrowserMainExtraPartsProfiles:: } #endif TabRestoreServiceFactory::GetInstance(); @@ -2132,7 +2132,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -91,7 +91,6 @@ +@@ -92,7 +92,6 @@ #include "chrome/browser/push_messaging/push_messaging_service_factory.h" #include "chrome/browser/push_messaging/push_messaging_service_impl.h" #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" @@ -2140,7 +2140,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p #include "chrome/browser/sessions/exit_type_service.h" #include "chrome/browser/sharing/sharing_service_factory.h" #include "chrome/browser/signin/identity_manager_factory.h" -@@ -633,6 +632,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { +@@ -625,6 +624,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { mojo::PendingRemote pref_validation_delegate; @@ -2148,7 +2148,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p scoped_refptr safe_browsing_service( g_browser_process->safe_browsing_service()); if (safe_browsing_service.get()) { -@@ -644,7 +644,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { +@@ -636,7 +636,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { pref_validation_delegate.InitWithNewPipeAndPassReceiver()); } } @@ -2520,7 +2520,7 @@ diff --git a/chrome/browser/subresource_filter/chrome_content_subresource_filter diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -546,7 +546,6 @@ static_library("ui") { +@@ -553,7 +553,6 @@ static_library("ui") { "//components/renderer_context_menu", "//components/resources", "//components/safe_browsing/content/browser", @@ -2528,7 +2528,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/web_ui", "//components/safe_browsing/core/browser/db:database_manager", -@@ -4403,7 +4402,6 @@ static_library("ui") { +@@ -4437,7 +4436,6 @@ static_library("ui") { "views/download/bubble/download_dialog_view.h", "views/download/bubble/download_toolbar_button_view.cc", "views/download/bubble/download_toolbar_button_view.h", @@ -2564,7 +2564,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4864,9 +4846,6 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

<link>Make searches and browsing better</link> must be turned on @@ -2577,7 +2577,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -63,14 +63,18 @@ +@@ -61,14 +61,18 @@ #include "chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_key.h" @@ -2594,9 +2594,9 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/safe_browsing/trigger_creator.h" +#endif #include "chrome/browser/search_engines/template_url_service_factory.h" - #include "chrome/browser/segmentation_platform/segmentation_platform_service_factory.h" #include "chrome/browser/sessions/session_tab_helper_factory.h" -@@ -135,9 +139,11 @@ + #include "chrome/browser/ssl/chrome_security_blocking_page_factory.h" +@@ -132,9 +136,11 @@ #include "components/permissions/features.h" #include "components/permissions/permission_request_manager.h" #include "components/permissions/unused_site_permissions_service.h" @@ -2606,9 +2606,9 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/safe_browsing/core/common/features.h" +#endif #include "components/search/ntp_features.h" - #include "components/segmentation_platform/content/segmentation_platform_tab_helper.h" #include "components/site_engagement/content/site_engagement_helper.h" -@@ -418,6 +424,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + #include "components/site_engagement/content/site_engagement_service.h" +@@ -414,6 +420,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // See https://crbug.com/910288. resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents( web_contents); @@ -2616,14 +2616,14 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents( web_contents, HostContentSettingsMapFactory::GetForProfile(profile), safe_browsing::SafeBrowsingNavigationObserverManagerFactory:: -@@ -435,6 +442,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -431,6 +438,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { safe_browsing::TriggerCreator::MaybeCreateTriggersForWebContents( profile, web_contents); ReputationWebContentsObserver::CreateForWebContents(web_contents); +#endif SearchEngineTabHelper::CreateForWebContents(web_contents); SecurityStateTabHelper::CreateForWebContents(web_contents); - segmentation_platform::SegmentationPlatformTabHelper::CreateForWebContents( + if (site_engagement::SiteEngagementService::IsEnabled()) { diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc @@ -2778,7 +2778,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -920,7 +920,6 @@ if (is_android) { +@@ -931,7 +931,6 @@ if (is_android) { "//components/password_manager/content/browser:browser", "//components/policy:chrome_settings_proto_generated_compile", "//components/policy/core/browser:test_support", @@ -2786,7 +2786,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/common:interfaces", "//components/safe_browsing/content/renderer/phishing_classifier:phishing_classifier", "//components/safe_browsing/core/common/fbs:client_model", -@@ -1379,7 +1378,6 @@ if (!is_android) { +@@ -1406,7 +1405,6 @@ if (!is_android) { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -2794,7 +2794,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/password_protection:test_support", -@@ -5891,7 +5889,6 @@ test("unit_tests") { +@@ -5951,7 +5949,6 @@ test("unit_tests") { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -2805,7 +2805,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -643,7 +643,6 @@ test("components_unittests") { +@@ -641,7 +641,6 @@ test("components_unittests") { if (safe_browsing_mode == 1) { deps += [ "//components/safe_browsing/content/browser:unit_tests", @@ -2855,7 +2855,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -608,10 +608,7 @@ PermissionRequestManager::PermissionRequestManager( +@@ -680,10 +680,7 @@ PermissionRequestManager::PermissionRequestManager( view_(nullptr), tab_is_hidden_(web_contents->GetVisibility() == content::Visibility::HIDDEN), @@ -2865,8 +2865,8 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p - web_contents->GetBrowserContext())) {} + auto_response_for_test_(NONE) {} - void PermissionRequestManager::ScheduleShowBubble() { - base::RecordAction(base::UserMetricsAction("PermissionBubbleRequest")); + void PermissionRequestManager::DequeueRequestIfNeeded() { + // TODO(olesiamarukhno): Media requests block other media requests from diff --git a/components/safe_browsing/content/browser/BUILD.gn b/components/safe_browsing/content/browser/BUILD.gn --- a/components/safe_browsing/content/browser/BUILD.gn +++ b/components/safe_browsing/content/browser/BUILD.gn @@ -2894,15 +2894,15 @@ diff --git a/components/safe_browsing/content/common/file_type_policies.cc b/com diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc --- a/components/safe_browsing/core/common/features.cc +++ b/components/safe_browsing/core/common/features.cc -@@ -161,7 +161,7 @@ const base::Feature kSevenZipEvaluationEnabled{ - "SafeBrowsingSevenZipEvaluationEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -201,7 +201,7 @@ BASE_FEATURE(kSevenZipEvaluationEnabled, - const base::Feature kSuspiciousSiteTriggerQuotaFeature{ -- "SafeBrowsingSuspiciousSiteTriggerQuota", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "SafeBrowsingSuspiciousSiteTriggerQuota", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kSuspiciousSiteTriggerQuotaFeature, + "SafeBrowsingSuspiciousSiteTriggerQuota", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kThreatDomDetailsTagAndAttributeFeature{ - "ThreatDomDetailsTagAttributes", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kThreatDomDetailsTagAndAttributeFeature, + "ThreatDomDetailsTagAttributes", diff --git a/components/security_interstitials/content/captive_portal_blocking_page.cc b/components/security_interstitials/content/captive_portal_blocking_page.cc --- a/components/security_interstitials/content/captive_portal_blocking_page.cc +++ b/components/security_interstitials/content/captive_portal_blocking_page.cc @@ -3112,7 +3112,7 @@ diff --git a/content/browser/file_system_access/file_system_access_safe_move_hel diff --git a/content/public/browser/file_system_access_permission_context.h b/content/public/browser/file_system_access_permission_context.h --- a/content/public/browser/file_system_access_permission_context.h +++ b/content/public/browser/file_system_access_permission_context.h -@@ -113,12 +113,6 @@ class FileSystemAccessPermissionContext { +@@ -112,12 +112,6 @@ class FileSystemAccessPermissionContext { base::OnceCallback callback) = 0; enum class AfterWriteCheckResult { kAllow, kBlock }; @@ -3128,7 +3128,7 @@ diff --git a/content/public/browser/file_system_access_permission_context.h b/co diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn -@@ -473,11 +473,9 @@ source_set("weblayer_lib_base") { +@@ -477,11 +477,9 @@ source_set("weblayer_lib_base") { "//components/profile_metrics", "//components/reduce_accept_language/browser", "//components/safe_browsing/content/browser", @@ -3140,7 +3140,7 @@ diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", "//components/safe_browsing/core/browser/db:database_manager", "//components/safe_browsing/core/common", -@@ -621,8 +619,6 @@ source_set("weblayer_lib_base") { +@@ -625,8 +623,6 @@ source_set("weblayer_lib_base") { "browser/browser_controls_navigation_state_handler_delegate.h", "browser/browser_list_proxy.cc", "browser/browser_list_proxy.h", @@ -3152,7 +3152,7 @@ diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn --- a/weblayer/test/BUILD.gn +++ b/weblayer/test/BUILD.gn -@@ -247,7 +247,6 @@ test("weblayer_browsertests") { +@@ -251,7 +251,6 @@ test("weblayer_browsertests") { "//components/page_info/android", "//components/safe_browsing/android:safe_browsing_api_handler", "//components/safe_browsing/content/browser", diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 7fa38d3a..56e742e6 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -13,36 +13,36 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -416,7 +416,6 @@ android_library("chrome_java") { - "//chrome/browser/privacy_sandbox/android:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/safe_browsing/android:java", -- "//chrome/browser/safety_check/android:java", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/search_resumption:java", - "//chrome/browser/segmentation_platform:factory_java", -@@ -1049,8 +1048,6 @@ robolectric_binary("chrome_junit_tests") { - "//chrome/browser/privacy_guide/android:java", - "//chrome/browser/privacy_guide/android:junit", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/safety_check/android:java", -- "//chrome/browser/safety_check/android:junit", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/search_resumption:junit", - "//chrome/browser/segmentation_platform:factory_java", -@@ -1583,8 +1580,6 @@ android_library("chrome_test_java") { - "//chrome/browser/profiles/android:java", - "//chrome/browser/safe_browsing/android:java", - "//chrome/browser/safe_browsing/android:javatests", -- "//chrome/browser/safety_check/android:java", -- "//chrome/browser/safety_check/android:javatests", - "//chrome/browser/search_engines/android:java", - "//chrome/browser/selection/android:javatests", - "//chrome/browser/settings:java", +@@ -443,7 +443,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/privacy_sandbox/android:java", + "//chrome/browser/profiles/android:java", + "//chrome/browser/safe_browsing/android:java", +- "//chrome/browser/safety_check/android:java", + "//chrome/browser/search_engines/android:java", + "//chrome/browser/search_resumption:java", + "//chrome/browser/segmentation_platform:factory_java", +@@ -1034,8 +1033,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/privacy_guide/android:java", + "//chrome/browser/privacy_guide/android:junit", + "//chrome/browser/profiles/android:java", +- "//chrome/browser/safety_check/android:java", +- "//chrome/browser/safety_check/android:junit", + "//chrome/browser/search_engines/android:java", + "//chrome/browser/search_resumption:junit", + "//chrome/browser/segmentation_platform:factory_java", +@@ -1561,8 +1558,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/profiles/android:java", + "//chrome/browser/safe_browsing/android:java", + "//chrome/browser/safe_browsing/android:javatests", +- "//chrome/browser/safety_check/android:java", +- "//chrome/browser/safety_check/android:javatests", + "//chrome/browser/search_engines/android:java", + "//chrome/browser/selection/android:javatests", + "//chrome/browser/settings:java", diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -944,7 +944,6 @@ chrome_java_sources = [ +@@ -947,7 +947,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3333,7 +3333,6 @@ static_library("browser") { +@@ -3348,7 +3348,6 @@ static_library("browser") { "//chrome/browser/privacy_sandbox/android:jni_headers", "//chrome/browser/reading_list/android", "//chrome/browser/safe_browsing/android:safe_browsing_enums", diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index ff64dea8..464be5d0 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -11,12 +11,12 @@ the ChromeSmartSelection feature flag. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../contextualsearch/SelectionClientManager.java | 4 +++- - .../browser/flags/android/chrome_feature_list.cc | 4 ++++ + .../browser/flags/android/chrome_feature_list.cc | 5 +++++ .../browser/flags/android/chrome_feature_list.h | 1 + .../chrome/browser/flags/ChromeFeatureList.java | 1 + .../selection/SelectionPopupControllerImpl.java | 2 +- testing/variations/fieldtrial_testing_config.json | 15 +++++++++++++++ - 6 files changed, 25 insertions(+), 2 deletions(-) + 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -191,6 +191,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -189,6 +189,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTBrandTransparency, &kCCTClientDataHeader, &kCCTIncognito, @@ -50,31 +50,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kCCTIncognitoAvailableToThirdParty, &kCCTNewDownloadTab, &kCCTPackageNameRecording, -@@ -614,6 +615,9 @@ const base::Feature kChromeSharingHubLaunchAdjacent{ - const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -670,6 +671,10 @@ BASE_FEATURE(kChromeSurveyNextAndroid, + "ChromeSurveyNextAndroid", + base::FEATURE_ENABLED_BY_DEFAULT); -+const base::Feature kChromeSmartSelection{"ChromeSmartSelection", -+ base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kChromeSmartSelection, ++ "ChromeSmartSelection", ++ base::FEATURE_DISABLED_BY_DEFAULT); + - const base::Feature kCommandLineOnNonRooted{"CommandLineOnNonRooted", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kCommandLineOnNonRooted, + "CommandLineOnNonRooted", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -62,6 +62,7 @@ extern const base::Feature kCacheDeprecatedSystemLocationSetting; - extern const base::Feature kChromeNewDownloadTab; - extern const base::Feature kChromeShareLongScreenshot; - extern const base::Feature kChromeShareScreenshot; -+extern const base::Feature kChromeSmartSelection; - extern const base::Feature kChromeSharingHub; - extern const base::Feature kChromeSharingHubLaunchAdjacent; - extern const base::Feature kChromeSurveyNextAndroid; +@@ -63,6 +63,7 @@ BASE_DECLARE_FEATURE(kCacheDeprecatedSystemLocationSetting); + BASE_DECLARE_FEATURE(kChromeNewDownloadTab); + BASE_DECLARE_FEATURE(kChromeShareLongScreenshot); + BASE_DECLARE_FEATURE(kChromeShareScreenshot); ++BASE_DECLARE_FEATURE(kChromeSmartSelection); + BASE_DECLARE_FEATURE(kChromeSharingHub); + BASE_DECLARE_FEATURE(kChromeSharingHubLaunchAdjacent); + BASE_DECLARE_FEATURE(kChromeSurveyNextAndroid); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -258,6 +258,7 @@ public abstract class ChromeFeatureList { +@@ -255,6 +255,7 @@ public abstract class ChromeFeatureList { public static final String CCT_POST_MESSAGE_API = "CCTPostMessageAPI"; public static final String CCT_REAL_TIME_ENGAGEMENT_SIGNALS = "CCTRealTimeEngagementSignals"; public static final String CCT_REDIRECT_PRECONNECT = "CCTRedirectPreconnect"; @@ -85,7 +86,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -818,7 +818,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -822,7 +822,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper menu.removeItem(R.id.select_action_menu_share); } @@ -97,7 +98,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json -@@ -2536,6 +2536,21 @@ +@@ -2702,6 +2702,21 @@ ] } ], diff --git a/build/patches/Disable-some-signed-exchange-features.patch b/build/patches/Disable-some-signed-exchange-features.patch index 6c910149..061d5732 100644 --- a/build/patches/Disable-some-signed-exchange-features.patch +++ b/build/patches/Disable-some-signed-exchange-features.patch @@ -10,18 +10,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -896,12 +896,12 @@ const base::Feature kSharedArrayBufferOnDesktop{ - // Signed Exchange Reporting for distributors +@@ -1000,13 +1000,13 @@ BASE_FEATURE(kSharedArrayBufferOnDesktop, // https://www.chromestatus.com/feature/5687904902840320 - const base::Feature kSignedExchangeReportingForDistributors{ -- "SignedExchangeReportingForDistributors", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "SignedExchangeReportingForDistributors", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kSignedExchangeReportingForDistributors, + "SignedExchangeReportingForDistributors", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Origin-Signed HTTP Exchanges (for WebPackage Loading) // https://www.chromestatus.com/feature/5745285984681984 - const base::Feature kSignedHTTPExchange{"SignedHTTPExchange", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kSignedHTTPExchange, + "SignedHTTPExchange", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Delays RenderProcessHost shutdown by a few seconds to allow the subframe's // process to be potentially reused. This aims to reduce process churn in diff --git a/build/patches/Disable-support-for-RAR-files-inspection.patch b/build/patches/Disable-support-for-RAR-files-inspection.patch index 971b1947..565bf47c 100644 --- a/build/patches/Disable-support-for-RAR-files-inspection.patch +++ b/build/patches/Disable-support-for-RAR-files-inspection.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -@@ -97,7 +97,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, +@@ -95,7 +95,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, if (inspection_type == DownloadFileType::ZIP) { StartExtractZipFeatures(); } else if (inspection_type == DownloadFileType::RAR) { @@ -63,14 +63,14 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/ if (is_linux || is_win) { source_set("document_analyzer") { sources = [ -@@ -182,7 +150,6 @@ source_set("safe_browsing") { +@@ -184,7 +152,6 @@ source_set("safe_browsing") { ":archive_analyzer_results", ":binary_feature_extractor", ":download_type_util", - ":rar_analyzer", "//components/safe_browsing/core/common", + "//third_party/lzma_sdk/google:seven_zip_reader", ] - diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/services/file_util/safe_archive_analyzer.cc --- a/chrome/services/file_util/safe_archive_analyzer.cc +++ b/chrome/services/file_util/safe_archive_analyzer.cc @@ -79,10 +79,10 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/service #include "build/build_config.h" #include "chrome/common/safe_browsing/archive_analyzer_results.h" -#include "chrome/common/safe_browsing/rar_analyzer.h" + #include "chrome/common/safe_browsing/seven_zip_analyzer.h" #include "chrome/common/safe_browsing/zip_analyzer.h" - #if BUILDFLAG(IS_MAC) -@@ -46,8 +45,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, +@@ -47,9 +46,8 @@ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, AnalyzeRarFileCallback callback) { DCHECK(rar_file.IsValid()); @@ -92,5 +92,6 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/service - std::move(rar_file), std::move(temporary_file), &results); std::move(callback).Run(results); } + -- 2.25.1 diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch index 71660052..48ec9f0f 100644 --- a/build/patches/Disable-text-fragments-by-default.patch +++ b/build/patches/Disable-text-fragments-by-default.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -6081,6 +6081,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6276,6 +6276,11 @@ const FeatureEntry kFeatureEntries[] = { "")}, #endif @@ -37,9 +37,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2700,6 +2700,11 @@ +@@ -2796,6 +2796,11 @@ "owners": [ "alionadangla", "bwwilliams", "bling-flags@google.com"], - "expiry_milestone": 105 + "expiry_milestone": 110 }, + { + "name": "enable-text-fragment-anchor", @@ -47,12 +47,12 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js + "expiry_milestone": -1 + }, { - "name": "enable-payment-request-basic-card", - "owners": [ "web-payments-team@google.com" ], + "name": "enable-pci-guard-ui", + "owners": [ "jimmyxgong", "cros-peripherals@google.com" ], diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1387,6 +1387,10 @@ const char kEnableRestrictedWebApisDescription[] = +@@ -1418,6 +1418,10 @@ const char kEnableRestrictedWebApisDescription[] = "Enable the restricted web APIs for dev trial. This will be replaced with " "permission policies to control the capabilities afterwards."; @@ -60,22 +60,22 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti +const char kEnableTextFragmentAnchorDescription[] = + "Enables scrolling to text specified in URL's fragment."; + - const char kEnableUseZoomForDsfName[] = - "Use Blink's zoom for device scale factor."; - const char kEnableUseZoomForDsfDescription[] = + const char kEnableWebAuthenticationChromeOSAuthenticatorName[] = + "ChromeOS platform Web Authentication support"; + const char kEnableWebAuthenticationChromeOSAuthenticatorDescription[] = diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -767,6 +767,9 @@ extern const char +@@ -785,6 +785,9 @@ extern const char extern const char kEnableRestrictedWebApisName[]; extern const char kEnableRestrictedWebApisDescription[]; +extern const char kEnableTextFragmentAnchorName[]; +extern const char kEnableTextFragmentAnchorDescription[]; + - extern const char kEnableUseZoomForDsfName[]; - extern const char kEnableUseZoomForDsfDescription[]; - extern const char kEnableUseZoomForDsfChoiceDefault[]; + extern const char kEnableWebAuthenticationChromeOSAuthenticatorName[]; + extern const char kEnableWebAuthenticationChromeOSAuthenticatorDescription[]; + diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc @@ -91,10 +91,10 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -270,6 +270,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -269,6 +269,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() { + {wf::EnableSharedArrayBufferOnDesktop, features::kSharedArrayBufferOnDesktop}, {wf::EnableSharedAutofill, autofill::features::kAutofillSharedAutofill}, - {wf::EnableSubresourceWebBundles, features::kSubresourceWebBundles}, + {wf::EnableTextFragmentIdentifiers, blink::features::kTextFragmentAnchor}, {wf::EnableTouchDragAndContextMenu, features::kTouchDragAndContextMenu}, {wf::EnableUserActivationSameOriginVisibility, @@ -102,32 +102,32 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -449,6 +449,10 @@ const base::Feature kStopInBackground { - const base::Feature kDropInputEventsBeforeFirstPaint{ - "DropInputEventsBeforeFirstPaint", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -496,6 +496,10 @@ BASE_FEATURE(kDropInputEventsBeforeFirstPaint, + "DropInputEventsBeforeFirstPaint", + base::FEATURE_DISABLED_BY_DEFAULT); +// Enable text snippets in URL fragments. https://crbug.com/919204. +const base::Feature kTextFragmentAnchor{"TextFragmentAnchor", + base::FEATURE_DISABLED_BY_DEFAULT}; + // File handling icons. https://crbug.com/1218213 - const base::Feature kFileHandlingIcons{"FileHandlingIcons", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kFileHandlingIcons, + "FileHandlingIcons", diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -224,6 +224,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kResourceLoadViaDataPipe; - BLINK_COMMON_EXPORT extern const base::Feature kServiceWorkerUpdateDelay; - BLINK_COMMON_EXPORT extern const base::Feature kStopInBackground; - BLINK_COMMON_EXPORT extern const base::Feature kDropInputEventsBeforeFirstPaint; +@@ -608,6 +608,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrewarmDefaultFontFamilies); + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmStandard; + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmFixed; + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmSerif; +BLINK_COMMON_EXPORT extern const base::Feature kTextFragmentAnchor; - BLINK_COMMON_EXPORT extern const base::Feature kFileHandlingIcons; - BLINK_COMMON_EXPORT extern const base::Feature kAllowSyncXHRInPageDismissal; - BLINK_COMMON_EXPORT extern const base::Feature kPrefetchPrivacyChanges; + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmSansSerif; + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmCursive; + BLINK_COMMON_EXPORT extern const base::FeatureParam kPrewarmFantasy; 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 -@@ -4257,9 +4257,14 @@ void Document::SetURL(const KURL& url) { +@@ -4262,9 +4262,14 @@ void Document::SetURL(const KURL& url) { TRACE_EVENT1("navigation", "Document::SetURL", "url", new_url.GetString().Utf8()); @@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2545,10 +2545,9 @@ +@@ -2583,10 +2583,9 @@ }, { name: "TextFragmentIdentifiers", diff --git a/build/patches/Disable-third-party-origin-trials.patch b/build/patches/Disable-third-party-origin-trials.patch index 230ad8bc..d19040f5 100644 --- a/build/patches/Disable-third-party-origin-trials.patch +++ b/build/patches/Disable-third-party-origin-trials.patch @@ -60,7 +60,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -7323,7 +7323,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() { +@@ -7455,7 +7455,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() { void NavigationRequest::ForceEnableOriginTrials( const std::vector& trials) { DCHECK(!HasCommitted()); @@ -71,7 +71,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -474,10 +474,6 @@ void FillNavigationParamsRequest( +@@ -475,10 +475,6 @@ void FillNavigationParamsRequest( common_params.initiator_origin.value(); } @@ -82,7 +82,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra navigation_params->was_discarded = commit_params.was_discarded; navigation_params->document_ukm_source_id = commit_params.document_ukm_source_id; -@@ -510,12 +506,6 @@ void FillNavigationParamsRequest( +@@ -511,12 +507,6 @@ void FillNavigationParamsRequest( navigation_params->web_bundle_claimed_url = commit_params.web_bundle_claimed_url; @@ -95,7 +95,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra if (!commit_params.early_hints_preloaded_resources.empty()) { navigation_params->early_hints_preloaded_resources = WebVector(); for (const auto& resource : commit_params.early_hints_preloaded_resources) { -@@ -562,11 +552,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( +@@ -570,11 +560,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( info->url_request.GetURLRequestExtraData().get()); DCHECK(url_request_extra_data); @@ -107,7 +107,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra blink::NavigationDownloadPolicy download_policy; download_policy.ApplyDownloadFramePolicy( info->is_opener_navigation, info->url_request.HasUserGesture(), -@@ -584,7 +569,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( +@@ -592,7 +577,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( info->url_request.HasUserGesture(), info->url_request.HasTextFragmentToken(), info->should_check_main_world_content_security_policy, @@ -159,7 +159,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -163,13 +163,6 @@ constexpr base::FeatureParam kCacheInlineScriptCodeFixConfiguring{ +@@ -160,13 +160,6 @@ namespace { Vector CopyInitiatorOriginTrials( const WebVector& initiator_origin_trial_features) { Vector result; @@ -173,7 +173,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -182,18 +175,12 @@ WebVector CopyInitiatorOriginTrials( +@@ -179,18 +172,12 @@ WebVector CopyInitiatorOriginTrials( Vector CopyForceEnabledOriginTrials( const WebVector& force_enabled_origin_trials) { Vector result; @@ -192,7 +192,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -2580,10 +2567,6 @@ void DocumentLoader::CreateParserPostCommit() { +@@ -2663,10 +2650,6 @@ void DocumentLoader::CreateParserPostCommit() { OriginTrialFeature::kTouchEventFeatureDetection); } diff --git a/build/patches/Disable-various-metrics.patch b/build/patches/Disable-various-metrics.patch index 7e02cd7a..a65825ed 100644 --- a/build/patches/Disable-various-metrics.patch +++ b/build/patches/Disable-various-metrics.patch @@ -101,7 +101,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -64,7 +64,6 @@ +@@ -66,7 +66,6 @@ #include "chrome/browser/hid/chrome_hid_delegate.h" #include "chrome/browser/interstitials/enterprise_util.h" #include "chrome/browser/lifetime/browser_shutdown.h" @@ -109,7 +109,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/media/audio_service_util.h" #include "chrome/browser/media/router/media_router_feature.h" #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h" -@@ -4479,16 +4478,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -4509,16 +4508,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( content::NavigationHandle* handle) { std::vector> throttles; @@ -126,7 +126,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_SUPERVISED_USERS) MaybeAddThrottle( SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle), -@@ -4573,10 +4562,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -4603,10 +4592,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles); } @@ -140,21 +140,21 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -73,7 +73,7 @@ namespace internal { - // recording and reporting are enabled. If the feature is enabled, but no +@@ -74,7 +74,7 @@ namespace internal { // consent is given, then there will be no recording or reporting. - const base::Feature kMetricsReportingFeature{"MetricsReporting", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kMetricsReportingFeature, + "MetricsReporting", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_ANDROID) // Same as |kMetricsReportingFeature|, but this feature is associated with a -@@ -82,7 +82,7 @@ const base::Feature kMetricsReportingFeature{"MetricsReporting", - // the fix to not affect the overall sampling rate, this new feature was +@@ -84,7 +84,7 @@ BASE_FEATURE(kMetricsReportingFeature, // created. See crbug/1306481. - const base::Feature kPostFREFixMetricsReportingFeature{ -- "PostFREFixMetricsReporting", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "PostFREFixMetricsReporting", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kPostFREFixMetricsReportingFeature, + "PostFREFixMetricsReporting", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) // Name of the variations param that defines the sampling rate. @@ -197,8 +197,8 @@ diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/publ namespace ukm { --const base::Feature kUkmFeature = {"Ukm", base::FEATURE_ENABLED_BY_DEFAULT}; -+const base::Feature kUkmFeature = {"Ukm", base::FEATURE_DISABLED_BY_DEFAULT}; // disabled in Bromite +-BASE_FEATURE(kUkmFeature, "Ukm", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kUkmFeature, "Ukm", base::FEATURE_DISABLED_BY_DEFAULT); // disabled in Bromite UkmRecorder::UkmRecorder() = default; diff --git a/build/patches/Do-not-build-API-keys-infobar.patch b/build/patches/Do-not-build-API-keys-infobar.patch index 22fbdbd6..e3ae7ac1 100644 --- a/build/patches/Do-not-build-API-keys-infobar.patch +++ b/build/patches/Do-not-build-API-keys-infobar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1298,8 +1298,6 @@ static_library("ui") { +@@ -1307,8 +1307,6 @@ static_library("ui") { "singleton_tabs.h", "startup/automation_infobar_delegate.cc", "startup/automation_infobar_delegate.h", diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index ead8a879..bc23c212 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -97,7 +97,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; +@@ -99,7 +99,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin; import org.chromium.chrome.browser.share.ShareUtils; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager; import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController; -@@ -497,10 +496,6 @@ public class RootUiCoordinator +@@ -499,10 +498,6 @@ public class RootUiCoordinator } public void onAttachFragment(Fragment fragment) { @@ -44,17 +44,17 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s import org.chromium.chrome.browser.share.screenshot.ScreenshotCoordinator; import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge; import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator; -@@ -312,9 +311,6 @@ public class ChromeProvidedSharingOptionsProvider { +@@ -311,9 +310,6 @@ public class ChromeProvidedSharingOptionsProvider { || !ChromeFeatureList.isEnabled(ChromeFeatureList.SEND_TAB_TO_SELF_SIGNIN_PROMO)) { mOrderedFirstPartyOptions.add(createSendTabToSelfFirstPartyOption()); } - if (!mIsIncognito) { - mOrderedFirstPartyOptions.add(createQrCodeFirstPartyOption()); - } - if (mTabProvider.hasValue() && UserPrefs.get(profile).getBoolean(Pref.PRINTING_ENABLED)) { + if (mTabProvider.hasValue() && UserPrefs.get(mProfile).getBoolean(Pref.PRINTING_ENABLED)) { mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption()); } -@@ -457,21 +453,6 @@ public class ChromeProvidedSharingOptionsProvider { +@@ -456,21 +452,6 @@ public class ChromeProvidedSharingOptionsProvider { .build(); } diff --git a/build/patches/Do-not-link-with-libatomic.patch b/build/patches/Do-not-link-with-libatomic.patch index fa84031f..9d972ea0 100644 --- a/build/patches/Do-not-link-with-libatomic.patch +++ b/build/patches/Do-not-link-with-libatomic.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1559,7 +1559,7 @@ mixed_component("base") { +@@ -1561,7 +1561,7 @@ mixed_component("base") { # more robust check for this. if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) && host_toolchain != "//build/toolchain/cros:host") { diff --git a/build/patches/DoH-improvements.patch b/build/patches/DoH-improvements.patch index 8b289ee5..a67a4649 100644 --- a/build/patches/DoH-improvements.patch +++ b/build/patches/DoH-improvements.patch @@ -82,7 +82,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -3293,6 +3293,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { +@@ -2933,6 +2933,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { bool changed = dns_client_->SetConfigOverrides(std::move(overrides)); if (changed) { diff --git a/build/patches/Enable-Certificate-Transparency.patch b/build/patches/Enable-Certificate-Transparency.patch index 38d9e558..da6e77ce 100644 --- a/build/patches/Enable-Certificate-Transparency.patch +++ b/build/patches/Enable-Certificate-Transparency.patch @@ -12,17 +12,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.h | 3 +++ chrome/browser/net/system_network_context_manager.cc | 4 ---- chrome/browser/ssl/sct_reporting_service.cc | 5 +++++ - chrome/common/chrome_features.cc | 6 +++--- + chrome/common/chrome_features.cc | 2 +- net/http/transport_security_state.cc | 5 +++-- net/url_request/report_sender.cc | 3 ++- services/network/network_context.cc | 2 +- services/network/sct_auditing/sct_auditing_handler.cc | 2 ++ - 11 files changed, 29 insertions(+), 12 deletions(-) + 11 files changed, 27 insertions(+), 10 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8849,6 +8849,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9061,6 +9061,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebMidiDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWebMidi)}, #if BUILDFLAG(IS_ANDROID) @@ -37,19 +37,19 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -143,7 +143,7 @@ const base::Feature kWebUsbDeviceDetection{"WebUsbDeviceDetection", - #if BUILDFLAG(IS_ANDROID) +@@ -156,7 +156,7 @@ BASE_FEATURE(kWebUsbDeviceDetection, // Enables Certificate Transparency on Android. - const base::Feature kCertificateTransparencyAndroid{ -- "CertificateTransparencyAndroid", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "CertificateTransparencyAndroid", base::FEATURE_ENABLED_BY_DEFAULT}; // enabled by default in Bromite + BASE_FEATURE(kCertificateTransparencyAndroid, + "CertificateTransparencyAndroid", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); // enabled by default in Bromite #endif - const base::Feature kLargeFaviconFromGoogle{"LargeFaviconFromGoogle", + BASE_FEATURE(kLargeFaviconFromGoogle, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6652,6 +6652,10 @@ const char kAutofillCreditCardUploadDescription[] = +@@ -6869,6 +6869,10 @@ const char kAutofillCreditCardUploadDescription[] = #endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) @@ -63,7 +63,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3848,6 +3848,9 @@ extern const char kAutofillCreditCardUploadDescription[]; +@@ -3966,6 +3966,9 @@ extern const char kAutofillCreditCardUploadDescription[]; #endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) @@ -112,23 +112,19 @@ diff --git a/chrome/browser/ssl/sct_reporting_service.cc b/chrome/browser/ssl/sc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -838,9 +838,9 @@ const base::Feature kSchedulerConfiguration{"SchedulerConfiguration", - +@@ -996,7 +996,7 @@ BASE_FEATURE(kSchedulerConfiguration, // Controls whether SCT audit reports are queued and the rate at which they // should be sampled. Default sampling rate is 1/10,000 certificates. --#if BUILDFLAG(IS_ANDROID) --const base::Feature kSCTAuditing{"SCTAuditing", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+#if BUILDFLAG(IS_ANDROID) // SCT auditing -+const base::Feature kSCTAuditing{"SCTAuditing", // must be always -+ base::FEATURE_DISABLED_BY_DEFAULT}; // disabled in Bromite + #if BUILDFLAG(IS_ANDROID) +-BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_DISABLED_BY_DEFAULT); // SCT auditing must be always disabled in Bromite #else - const base::Feature kSCTAuditing{"SCTAuditing", - base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kSCTAuditing, "SCTAuditing", base::FEATURE_ENABLED_BY_DEFAULT); + #endif diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -338,6 +338,7 @@ class HSTSPreloadDecoder : public net::extras::PreloadDecoder { +@@ -337,6 +337,7 @@ class HSTSPreloadDecoder : public net::extras::PreloadDecoder { bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { #if !BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST) @@ -136,17 +132,18 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (g_hsts_source == nullptr) return false; #endif -@@ -383,11 +384,11 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { +@@ -383,12 +384,12 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { + // static + BASE_FEATURE(kDynamicExpectCTFeature, + "DynamicExpectCT", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // disabled in Bromite // static - const base::Feature TransportSecurityState::kDynamicExpectCTFeature{ -- "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT}; // disabled in Bromite - - // static - const base::Feature TransportSecurityState::kCertificateTransparencyEnforcement{ -- "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT}; // always enabled in Bromite + BASE_FEATURE(kCertificateTransparencyEnforcement, + "CertificateTransparencyEnforcement", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); // always enabled in Bromite void SetTransportSecurityStateSourceForTesting( const TransportSecurityStateSource* source) { @@ -166,7 +163,7 @@ diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2662,7 +2662,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2652,7 +2652,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( // TransportSecurityState. Since no requests have been made yet, safe to do // this even after the call to Build(). @@ -178,7 +175,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/network/sct_auditing/sct_auditing_handler.cc --- a/services/network/sct_auditing/sct_auditing_handler.cc +++ b/services/network/sct_auditing/sct_auditing_handler.cc -@@ -114,6 +114,7 @@ void SCTAuditingHandler::MaybeEnqueueReport( +@@ -113,6 +113,7 @@ void SCTAuditingHandler::MaybeEnqueueReport( if (mode_ == mojom::SCTAuditingMode::kDisabled) { return; } @@ -186,7 +183,7 @@ diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/ne // Only audit valid SCTs. This ensures that they come from a known log, have // a valid signature, and thus are expected to be public certificates. If -@@ -329,6 +330,7 @@ void SCTAuditingHandler::AddReporter( +@@ -327,6 +328,7 @@ void SCTAuditingHandler::AddReporter( if (mode_ == mojom::SCTAuditingMode::kDisabled) { return; } diff --git a/build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch b/build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch index f746c730..60ae3a9a 100644 --- a/build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch +++ b/build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc --- a/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc -@@ -37,7 +37,7 @@ const base::Feature kExternalNavigationDebugLogs{ +@@ -44,7 +44,7 @@ BASE_FEATURE(kExternalNavigationDebugLogs, - const base::Feature kIntentBlockExternalFormRedirectsNoGesture{ - "IntentBlockExternalFormRedirectsNoGesture", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, + "IntentBlockExternalFormRedirectsNoGesture", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kScaryExternalNavigationRefactoring{ - "ScaryExternalNavigationRefactoring", base::FEATURE_ENABLED_BY_DEFAULT}; + static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) { + return reinterpret_cast(kFeaturesExposedToJava[ordinal]); -- 2.25.1 diff --git a/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch b/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch index edf4570f..1f1506f4 100644 --- a/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch +++ b/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch @@ -11,27 +11,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -889,11 +889,7 @@ const base::Feature kSecurityKeyAttestationPrompt{ +@@ -1046,11 +1046,7 @@ BASE_FEATURE(kSecurityKeyAttestationPrompt, // browser_features, as they are only used on the browser side. - const base::Feature kSitePerProcess { - "SitePerProcess", + BASE_FEATURE(kSitePerProcess, + "SitePerProcess", -#if BUILDFLAG(IS_ANDROID) -- base::FEATURE_DISABLED_BY_DEFAULT +- base::FEATURE_DISABLED_BY_DEFAULT -#else - base::FEATURE_ENABLED_BY_DEFAULT + base::FEATURE_ENABLED_BY_DEFAULT -#endif - }; + ); #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/components/site_isolation/features.cc b/components/site_isolation/features.cc --- a/components/site_isolation/features.cc +++ b/components/site_isolation/features.cc -@@ -63,7 +63,7 @@ const base::Feature kSiteIsolationForOAuthSites{ - // kSitePerProcess won't be checked at all, and field trials won't activate +@@ -65,7 +65,7 @@ BASE_FEATURE(kSiteIsolationForOAuthSites, // either the control or the experiment group. - const base::Feature kSiteIsolationMemoryThresholds{ -- "SiteIsolationMemoryThresholds", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "SiteIsolationMemoryThresholds", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kSiteIsolationMemoryThresholds, + "SiteIsolationMemoryThresholds", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); const char kStrictSiteIsolationMemoryThresholdParamName[] = "strict_site_isolation_threshold_mb"; const char kPartialSiteIsolationMemoryThresholdParamName[] = diff --git a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch index a79012ff..fbb2b881 100644 --- a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch +++ b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4446,9 +4446,6 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4561,9 +4561,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSiteIsolationForPasswordSitesDescription, kOsAndroid, FEATURE_VALUE_TYPE( site_isolation::features::kSiteIsolationForPasswordSites)}, @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1415,7 +1415,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1425,7 +1425,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath()); registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0); registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -40,7 +40,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true); registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0); } -@@ -1429,7 +1429,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1439,7 +1439,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( // user policy in addition to the same named ones in Local State (which are // used for mapping the command-line flags). registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -71,14 +71,14 @@ diff --git a/components/site_isolation/site_isolation_policy.cc b/components/sit diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1000,7 +1000,7 @@ const base::Feature kStopVideoCaptureOnScreenLock{ - // Controls whether site isolation should use origins instead of scheme and +@@ -1113,7 +1113,7 @@ BASE_FEATURE(kStopVideoCaptureOnScreenLock, // eTLD+1. - const base::Feature kStrictOriginIsolation{"StrictOriginIsolation", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kStrictOriginIsolation, + "StrictOriginIsolation", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - // Enables subresource loading with Web Bundles. - const base::Feature kSubresourceWebBundles{"SubresourceWebBundles", + // Disallows window.{alert, prompt, confirm} if triggered inside a subframe that + // is not same origin with the main frame. -- 2.25.1 diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index fe0ba6a3..3f66e83b 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -13,8 +13,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1225,9 +1225,9 @@ - "expiry_milestone": 110 +@@ -1256,9 +1256,9 @@ + "expiry_milestone": 114 }, { - "name": "darken-websites-checkbox-in-themes-setting", @@ -29,12 +29,12 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc -@@ -18,7 +18,7 @@ const base::Feature kImprovedCookieControls{"ImprovedCookieControls", - // Enables auto dark feature in theme settings. +@@ -20,7 +20,7 @@ BASE_FEATURE(kImprovedCookieControls, #if BUILDFLAG(IS_ANDROID) - const base::Feature kDarkenWebsitesCheckboxInThemesSetting{ -- "DarkenWebsitesCheckboxInThemesSetting", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "DarkenWebsitesCheckboxInThemesSetting", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kDarkenWebsitesCheckboxInThemesSetting, + "DarkenWebsitesCheckboxInThemesSetting", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); constexpr base::FeatureParam kDarkenWebsitesCheckboxOptOut{ &kDarkenWebsitesCheckboxInThemesSetting, "opt_out", true}; #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch index f0f08a34..48078be5 100644 --- a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch +++ b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -333,6 +333,10 @@ config("compiler") { +@@ -330,6 +330,10 @@ config("compiler") { } } diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 8ea690b7..db3f824f 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -55,14 +55,14 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -478,6 +478,7 @@ android_library("chrome_java") { - "//components/autofill_assistant/android:public_dependencies_java", - "//components/autofill_assistant/android:public_java", - "//components/autofill_assistant/browser:proto_java", -+ "//components/android_autofill/browser:java", - "//components/background_task_scheduler:background_task_scheduler_java", - "//components/background_task_scheduler:background_task_scheduler_task_ids_java", - "//components/bookmarks/common/android:bookmarks_java", +@@ -505,6 +505,7 @@ if (current_toolchain == default_toolchain) { + "//components/autofill_assistant/android:public_dependencies_java", + "//components/autofill_assistant/android:public_java", + "//components/autofill_assistant/browser:proto_java", ++ "//components/android_autofill/browser:java", + "//components/background_task_scheduler:background_task_scheduler_java", + "//components/background_task_scheduler:background_task_scheduler_task_ids_java", + "//components/bookmarks/common/android:bookmarks_java", diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -286,9 +286,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java -@@ -32,6 +32,10 @@ import org.chromium.ui.dragdrop.DragAndDropBrowserDelegate; - import org.chromium.ui.dragdrop.DragStateTracker; - import org.chromium.ui.dragdrop.DropDataContentProvider; +@@ -32,6 +32,10 @@ import org.chromium.ui.dragdrop.DragStateTracker; + import org.chromium.ui.dragdrop.DropDataProviderImpl; + import org.chromium.ui.dragdrop.DropDataProviderUtils; +import android.util.SparseArray; +import android.view.autofill.AutofillValue; @@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr /** * Implementation of the abstract class {@link ViewAndroidDelegate} for Chrome. */ -@@ -214,4 +218,14 @@ public class TabViewAndroidDelegate extends ViewAndroidDelegate { +@@ -216,4 +220,14 @@ public class TabViewAndroidDelegate extends ViewAndroidDelegate { return intent; } } @@ -315,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2478,6 +2478,13 @@ static_library("browser") { +@@ -2494,6 +2494,13 @@ static_library("browser") { deps += [ "//chrome/browser/error_reporting" ] } @@ -410,7 +410,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -172,6 +172,9 @@ +@@ -168,6 +168,9 @@ #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h" #include "chrome/browser/video_tutorials/video_tutorial_tab_helper.h" #include "content/public/common/content_features.h" @@ -420,7 +420,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #else #include "chrome/browser/accuracy_tips/accuracy_service_factory.h" #include "chrome/browser/banners/app_banner_manager_desktop.h" -@@ -334,7 +337,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -330,7 +333,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { base::BindRepeating( &autofill::BrowserDriverInitHook, autofill::ChromeAutofillClient::FromWebContents(web_contents), @@ -668,7 +668,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc -@@ -793,7 +793,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange( +@@ -799,7 +799,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( const blink::WebFormControlElement& element) { diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index cf9eb970..ef27eb3b 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -15,47 +15,48 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -120,14 +120,14 @@ const base::Feature kSplitCacheByIncludeCredentials{ - "SplitCacheByIncludeCredentials", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -83,15 +83,15 @@ BASE_FEATURE(kSplitCacheByIncludeCredentials, - const base::Feature kSplitCacheByNetworkIsolationKey{ -- "SplitCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "SplitCacheByNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kSplitCacheByNetworkIsolationKey, + "SplitCacheByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kSplitHostCacheByNetworkIsolationKey{ -- "SplitHostCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "SplitHostCacheByNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kSplitHostCacheByNetworkIsolationKey, + "SplitHostCacheByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kPartitionConnectionsByNetworkIsolationKey{ - "PartitionConnectionsByNetworkIsolationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPartitionConnectionsByNetworkIsolationKey, + "PartitionConnectionsByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{ - "ForceIsolationInfoFrameOriginToTopLevelFrame", -@@ -135,19 +135,19 @@ const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{ + BASE_FEATURE(kForceIsolationInfoFrameOriginToTopLevelFrame, + "ForceIsolationInfoFrameOriginToTopLevelFrame", +@@ -99,19 +99,19 @@ BASE_FEATURE(kForceIsolationInfoFrameOriginToTopLevelFrame, - const base::Feature kPartitionHttpServerPropertiesByNetworkIsolationKey{ - "PartitionHttpServerPropertiesByNetworkIsolationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPartitionHttpServerPropertiesByNetworkIsolationKey, + "PartitionHttpServerPropertiesByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kPartitionSSLSessionsByNetworkIsolationKey{ - "PartitionSSLSessionsByNetworkIsolationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPartitionSSLSessionsByNetworkIsolationKey, + "PartitionSSLSessionsByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kPartitionExpectCTStateByNetworkIsolationKey{ - "PartitionExpectCTStateByNetworkIsolationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPartitionExpectCTStateByNetworkIsolationKey, + "PartitionExpectCTStateByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kPartitionNelAndReportingByNetworkIsolationKey{ - "PartitionNelAndReportingByNetworkIsolationKey", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPartitionNelAndReportingByNetworkIsolationKey, + "PartitionNelAndReportingByNetworkIsolationKey", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); - const base::Feature kEnableDoubleKeyNetworkAnonymizationKey{ - "EnableDoubleKeyNetworkAnonymizationKey", + BASE_FEATURE(kEnableDoubleKeyNetworkAnonymizationKey, + "EnableDoubleKeyNetworkAnonymizationKey", -- 2.25.1 diff --git a/build/patches/Enable-prefetch-privacy-changes-by-default.patch b/build/patches/Enable-prefetch-privacy-changes-by-default.patch index 5d203590..802afaf0 100644 --- a/build/patches/Enable-prefetch-privacy-changes-by-default.patch +++ b/build/patches/Enable-prefetch-privacy-changes-by-default.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -460,7 +460,7 @@ const base::Feature kAllowSyncXHRInPageDismissal{ - // Prefetch request properties are updated to be privacy-preserving. See +@@ -510,7 +510,7 @@ BASE_FEATURE(kAllowSyncXHRInPageDismissal, // crbug.com/988956. - const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kPrefetchPrivacyChanges, + "PrefetchPrivacyChanges", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); // Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this // format in the image decode cache. See crbug.com/919627 for details on the diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 3bdd1710..c3c91b16 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -19,18 +19,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 4 + chrome/browser/flag_descriptions.cc | 5 + chrome/browser/flag_descriptions.h | 3 + - .../flags/android/chrome_feature_list.cc | 4 + + .../flags/android/chrome_feature_list.cc | 5 + .../flags/android/chrome_feature_list.h | 1 + .../browser/flags/ChromeFeatureList.java | 1 + .../strings/android_chrome_strings.grd | 13 ++ - 13 files changed, 255 insertions(+) + 13 files changed, 256 insertions(+) create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -592,6 +592,7 @@ chrome_java_resources = [ +@@ -590,6 +590,7 @@ chrome_java_resources = [ "java/res/layout/signin_activity.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", @@ -41,7 +41,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -966,6 +966,7 @@ chrome_java_sources = [ +@@ -972,6 +972,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java", "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", @@ -52,7 +52,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -741,6 +741,24 @@ by a child template that "extends" this file. +@@ -753,6 +753,24 @@ by a child template that "extends" this file. android:process=":browser_restart_process"> @@ -311,7 +311,7 @@ new file mode 100644 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -6573,6 +6573,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6788,6 +6788,10 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_ANDROID) @@ -325,7 +325,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2661,6 +2661,11 @@ const char kIsolateOriginsDescription[] = +@@ -2783,6 +2783,11 @@ const char kIsolateOriginsDescription[] = "Requires dedicated processes for an additional set of origins, " "specified as a comma-separated list."; @@ -340,7 +340,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1504,6 +1504,9 @@ extern const char kIsolateOriginsDescription[]; +@@ -1573,6 +1573,9 @@ extern const char kIsolateOriginsDescription[]; extern const char kIsolationByDefaultName[]; extern const char kIsolationByDefaultDescription[]; @@ -353,7 +353,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -282,6 +282,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRelatedSearchesAlternateUx, &kRelatedSearchesInBar, &kRelatedSearchesSimplifiedUx, @@ -361,31 +361,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kRelatedSearchesUi, &kRequestDesktopSiteDefaults, &kRequestDesktopSiteDefaultsControl, -@@ -759,6 +760,9 @@ const base::Feature kNewInstanceFromDraggedLink{ - const base::Feature kNewTabPageTilesTitleWrapAround{ - "NewTabPageTilesTitleWrapAround", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -847,6 +848,10 @@ BASE_FEATURE(kNewTabPageTilesTitleWrapAround, + "NewTabPageTilesTitleWrapAround", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kSharedIntentUI{ -+ "SharedIntentUI", base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kSharedIntentUI, ++ "SharedIntentUI", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - const base::Feature kNewWindowAppMenu{"NewWindowAppMenu", - base::FEATURE_ENABLED_BY_DEFAULT}; - + BASE_FEATURE(kNewWindowAppMenu, + "NewWindowAppMenu", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -147,6 +147,7 @@ extern const base::Feature kRequestDesktopSiteDefaultsDowngrade; - extern const base::Feature kSearchEnginePromoExistingDevice; - extern const base::Feature kSearchEnginePromoExistingDeviceV2; - extern const base::Feature kSearchEnginePromoNewDevice; -+extern const base::Feature kSharedIntentUI; - extern const base::Feature kSearchReadyOmniboxFeature; - extern const base::Feature kSearchEnginePromoNewDeviceV2; - extern const base::Feature kShareButtonInTopToolbar; +@@ -114,6 +114,7 @@ BASE_DECLARE_FEATURE(kLensOnQuickActionSearchWidget); + BASE_DECLARE_FEATURE(kLocationBarModelOptimizations); + BASE_DECLARE_FEATURE(kNewInstanceFromDraggedLink); + BASE_DECLARE_FEATURE(kNewTabPageTilesTitleWrapAround); ++BASE_DECLARE_FEATURE(kSharedIntentUI); + BASE_DECLARE_FEATURE(kNewWindowAppMenu); + BASE_DECLARE_FEATURE(kNotificationPermissionVariant); + BASE_DECLARE_FEATURE(kOmahaMinSdkVersionAndroid); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -506,6 +506,7 @@ public abstract class ChromeFeatureList { +@@ -508,6 +508,7 @@ public abstract class ChromeFeatureList { public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts"; public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler"; public static final String READ_LATER = "ReadLater"; @@ -396,7 +397,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4867,6 +4867,19 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 3835e163..a7c40c92 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -27,7 +27,7 @@ Requires patch: Adds-support-for-writing-URIs.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 5 + + chrome/android/BUILD.gn | 4 + .../android/java/res/xml/main_preferences.xml | 5 + .../browser/download/DownloadUtils.java | 6 + .../init/ProcessInitializationHandler.java | 3 + @@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/web_ui_injection_host.h | 27 + .../strings/userscripts_strings.grdp | 54 ++ tools/gritsettings/resource_ids.spec | 6 + - 109 files changed, 9450 insertions(+), 2 deletions(-) + 109 files changed, 9449 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -226,25 +226,24 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -276,6 +276,10 @@ android_resources("chrome_app_java_resources") { - "//third_party/androidx:androidx_gridlayout_gridlayout_java", - "//third_party/androidx:androidx_preference_preference_java", - ] -+ -+ # this need to be into android_resources("chrome_app_java_resources") section because -+ # android:java_resources are packed *_percent.pak and placed in the executable folder -+ deps += [ "//components/user_scripts/android:java_resources" ] - } +@@ -303,6 +303,9 @@ if (current_toolchain == default_toolchain) { + "//third_party/androidx:androidx_gridlayout_gridlayout_java", + "//third_party/androidx:androidx_preference_preference_java", + ] ++ # this need to be into android_resources("chrome_app_java_resources") section because ++ # android:java_resources are packed *_percent.pak and placed in the executable folder ++ deps += [ "//components/user_scripts/android:java_resources" ] + } - if (enable_vr) { -@@ -581,6 +585,7 @@ android_library("chrome_java") { - "//components/ukm/android:java", - "//components/url_formatter/android:url_formatter_java", - "//components/user_prefs/android:java", -+ "//components/user_scripts/android:java", - "//components/variations:variations_java", - "//components/variations/android:variations_java", - "//components/version_info/android:version_constants_java", + if (enable_vr) { +@@ -609,6 +612,7 @@ if (current_toolchain == default_toolchain) { + "//components/ukm/android:java", + "//components/url_formatter/android:url_formatter_java", + "//components/user_prefs/android:java", ++ "//components/user_scripts/android:java", + "//components/variations:variations_java", + "//components/variations/android:variations_java", + "//components/version_info/android:version_constants_java", diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml @@ -323,7 +322,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3490,6 +3490,11 @@ static_library("browser") { +@@ -3505,6 +3505,11 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -338,7 +337,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -155,6 +155,7 @@ +@@ -156,6 +156,7 @@ #include "components/translate/core/browser/translate_ranker_impl.h" #include "components/translate/core/common/translate_util.h" #include "components/ui_devtools/switches.h" @@ -346,7 +345,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/version_info/version_info.h" #include "components/viz/common/features.h" #include "components/viz/common/switches.h" -@@ -7535,6 +7536,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7754,6 +7755,10 @@ const FeatureEntry kFeatureEntries[] = { chromeos::features::kClipboardHistoryNudgeSessionReset)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -360,7 +359,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -5049,7 +5049,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5085,7 +5085,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( chrome::mojom::DynamicParams dynamic_params = { profile->GetPrefs()->GetBoolean(prefs::kForceGoogleSafeSearch), profile->GetPrefs()->GetInteger(prefs::kForceYouTubeRestrict), @@ -373,7 +372,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6475,6 +6475,11 @@ const char kFollowingFeedSidepanelDescription[] = +@@ -6692,6 +6692,11 @@ const char kFollowingFeedSidepanelDescription[] = #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_CHROMEOS) @@ -388,7 +387,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3717,6 +3717,9 @@ extern const char kQuickCommandsDescription[]; +@@ -3835,6 +3835,9 @@ extern const char kQuickCommandsDescription[]; #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // defined (OS_FUCHSIA) @@ -401,7 +400,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -246,6 +246,7 @@ +@@ -251,6 +251,7 @@ #include "components/ntp_tiles/popular_sites_impl.h" #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/query_tiles/tile_service_prefs.h" @@ -409,7 +408,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/cart/cart_service.h" #include "chrome/browser/device_api/device_service_impl.h" -@@ -1350,6 +1351,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1323,6 +1324,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -431,7 +430,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -260,6 +260,8 @@ +@@ -261,6 +261,8 @@ #include "chrome/browser/enterprise/idle/idle_service_factory.h" #endif @@ -440,7 +439,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -618,6 +620,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -620,6 +622,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -451,7 +450,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -115,6 +115,8 @@ +@@ -116,6 +116,8 @@ #include "extensions/common/manifest.h" #endif @@ -460,7 +459,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1696,6 +1698,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1705,6 +1707,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, #endif #endif @@ -527,7 +526,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -92,6 +92,7 @@ +@@ -94,6 +94,7 @@ #include "components/security_interstitials/content/urls.h" #include "components/signin/public/base/signin_buildflags.h" #include "components/site_engagement/content/site_engagement_service.h" @@ -535,7 +534,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/content_client.h" -@@ -821,6 +822,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -834,6 +835,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; @@ -555,7 +554,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/ui/resources/webui_generated_resources.pak", ] deps = [ -@@ -128,6 +129,7 @@ template("chrome_extra_paks") { +@@ -129,6 +130,7 @@ template("chrome_extra_paks") { "//third_party/blink/public:devtools_inspector_resources", "//third_party/blink/public:resources", "//ui/resources", @@ -611,7 +610,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -576,6 +585,13 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -587,6 +596,13 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, registry); #endif @@ -625,7 +624,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); #endif -@@ -1545,7 +1561,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1556,7 +1572,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. @@ -640,7 +639,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1554,7 +1577,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1565,7 +1588,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. @@ -655,7 +654,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1563,7 +1593,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1574,7 +1604,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. @@ -673,7 +672,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc --- a/chrome/renderer/chrome_render_thread_observer.cc +++ b/chrome/renderer/chrome_render_thread_observer.cc -@@ -55,6 +55,8 @@ +@@ -57,6 +57,8 @@ #include "third_party/blink/public/web/web_security_policy.h" #include "third_party/blink/public/web/web_view.h" @@ -682,7 +681,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ #if BUILDFLAG(ENABLE_EXTENSIONS) #include "extensions/renderer/localization_peer.h" #endif -@@ -253,6 +255,7 @@ void ChromeRenderThreadObserver::SetInitialConfiguration( +@@ -259,6 +261,7 @@ void ChromeRenderThreadObserver::SetInitialConfiguration( void ChromeRenderThreadObserver::SetConfiguration( chrome::mojom::DynamicParamsPtr params) { *GetDynamicConfigParams() = std::move(*params); @@ -10471,7 +10470,7 @@ new file mode 100755 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -732,6 +732,12 @@ +@@ -738,6 +738,12 @@ "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{ "includes": [3720] }, diff --git a/build/patches/Fix-WebWorker-requestAnimationFrame.patch b/build/patches/Fix-WebWorker-requestAnimationFrame.patch index 1bdf8649..3acfcce5 100644 --- a/build/patches/Fix-WebWorker-requestAnimationFrame.patch +++ b/build/patches/Fix-WebWorker-requestAnimationFrame.patch @@ -11,17 +11,17 @@ See bugid 1236113 diff --git a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc --- a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc +++ b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc -@@ -7,7 +7,9 @@ - #include "base/trace_event/trace_event.h" +@@ -8,7 +8,9 @@ + #include "third_party/blink/renderer/core/execution_context/agent.h" #include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h" #include "third_party/blink/renderer/core/timing/worker_global_scope_performance.h" +#include "third_party/blink/renderer/core/workers/worker_global_scope.h" - #include "third_party/blink/renderer/platform/bindings/microtask.h" + #include "third_party/blink/renderer/platform/scheduler/public/event_loop.h" +#include "third_party/blink/renderer/platform/wtf/casting.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h" namespace blink { -@@ -62,7 +64,11 @@ void WorkerAnimationFrameProvider::BeginFrame(const viz::BeginFrameArgs& args) { +@@ -63,7 +65,11 @@ void WorkerAnimationFrameProvider::BeginFrame(const viz::BeginFrameArgs& args) { } } diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index f551c4d9..bfdd18f2 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -162,7 +162,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn --- a/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn -@@ -45,6 +45,7 @@ java_cpp_strings("java_pref_names_srcjar") { +@@ -46,6 +46,7 @@ java_cpp_strings("java_pref_names_srcjar") { "//components/safe_browsing/core/common/safe_browsing_prefs.cc", "//components/signin/public/base/signin_pref_names.cc", "//components/translate/core/browser/translate_pref_names.cc", @@ -173,7 +173,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -373,6 +373,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -365,6 +365,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -356,7 +356,7 @@ diff --git a/components/history/core/browser/expire_history_backend.h b/componen diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -156,7 +156,7 @@ const int kMaxRedirectCount = 32; +@@ -158,7 +158,7 @@ const int kMaxRedirectCount = 32; // The number of days old a history entry can be before it is considered "old" // and is deleted. @@ -365,7 +365,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. -@@ -1088,6 +1088,19 @@ void HistoryBackend::InitImpl( +@@ -1090,6 +1090,19 @@ void HistoryBackend::InitImpl( LOCAL_HISTOGRAM_TIMES("History.InitTime", TimeTicks::Now() - beginning_time); } @@ -410,7 +410,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his #include "components/history/core/browser/download_row.h" #include "components/history/core/browser/history_backend.h" #include "components/history/core/browser/history_backend_client.h" -@@ -1105,6 +1108,9 @@ void HistoryService::Cleanup() { +@@ -1126,6 +1129,9 @@ void HistoryService::Cleanup() { return; } @@ -420,7 +420,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his NotifyHistoryServiceBeingDeleted(); weak_ptr_factory_.InvalidateWeakPtrs(); -@@ -1169,6 +1175,33 @@ bool HistoryService::Init( +@@ -1190,6 +1196,33 @@ bool HistoryService::Init( return true; } @@ -475,7 +475,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1013,6 +1017,10 @@ class HistoryService : public KeyedService { +@@ -1024,6 +1028,10 @@ class HistoryService : public KeyedService { base::OnceClosure origin_queried_closure_for_testing_; diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch index 535cd330..a2496751 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -35,7 +35,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r 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 -@@ -283,6 +283,7 @@ +@@ -284,6 +284,7 @@ #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h" #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" @@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #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 "third_party/blink/renderer/core/page/spatial_navigation_controller.h" -@@ -355,6 +356,8 @@ +@@ -356,6 +357,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -52,7 +52,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& LiveDocumentSet(); -@@ -7065,6 +7068,64 @@ void Document::OnPrepareToStopParsing() { +@@ -7109,6 +7112,64 @@ void Document::OnPrepareToStopParsing() { MilestoneForDelayedAsyncScript::kFinishedParsing); } @@ -117,9 +117,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink void Document::FinishedParsing() { DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing()); DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading); -@@ -7124,6 +7185,10 @@ void Document::FinishedParsing() { - } - } +@@ -7160,6 +7221,10 @@ void Document::FinishedParsing() { + + frame->Loader().FinishedParsing(); + if (!IsPrefetchOnly()) { + injectScripts(); @@ -131,7 +131,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -1975,6 +1975,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -1993,6 +1993,9 @@ class CORE_EXPORT Document : public ContainerNode, // Called when the AXMode of an existing AXContext changes. void AXContextModeChanged(); @@ -166,8 +166,8 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc --- a/third_party/blink/renderer/core/html/html_script_element.cc +++ b/third_party/blink/renderer/core/html/html_script_element.cc -@@ -194,6 +194,11 @@ void HTMLScriptElement::setTextContent(const String& string) { - script_text_internal_slot_ = ParkableString(string.Impl()); +@@ -190,6 +190,11 @@ void HTMLScriptElement::setTextContent(const String& string) { + Node::setTextContent(string); } +void HTMLScriptElement::setTextDirect( diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 88969504..184a8d03 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -42,7 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -161,6 +161,7 @@ android_resources("java_resources") { +@@ -164,6 +164,7 @@ android_resources("java_resources") { "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-hdpi/permission_background_sync.png", "java/res/drawable-hdpi/permission_javascript.png", @@ -50,7 +50,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-hdpi/permission_popups.png", "java/res/drawable-hdpi/permission_protected_media.png", "java/res/drawable-hdpi/settings_sensors.png", -@@ -168,6 +169,7 @@ android_resources("java_resources") { +@@ -171,6 +172,7 @@ android_resources("java_resources") { "java/res/drawable-mdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-mdpi/permission_background_sync.png", "java/res/drawable-mdpi/permission_javascript.png", @@ -58,7 +58,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-mdpi/permission_popups.png", "java/res/drawable-mdpi/permission_protected_media.png", "java/res/drawable-mdpi/settings_sensors.png", -@@ -175,6 +177,7 @@ android_resources("java_resources") { +@@ -178,6 +180,7 @@ android_resources("java_resources") { "java/res/drawable-xhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xhdpi/permission_background_sync.png", "java/res/drawable-xhdpi/permission_javascript.png", @@ -66,7 +66,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-xhdpi/permission_popups.png", "java/res/drawable-xhdpi/permission_protected_media.png", "java/res/drawable-xhdpi/settings_sensors.png", -@@ -182,6 +185,7 @@ android_resources("java_resources") { +@@ -185,6 +188,7 @@ android_resources("java_resources") { "java/res/drawable-xxhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xxhdpi/permission_background_sync.png", "java/res/drawable-xxhdpi/permission_javascript.png", @@ -74,7 +74,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-xxhdpi/permission_popups.png", "java/res/drawable-xxhdpi/permission_protected_media.png", "java/res/drawable-xxhdpi/settings_sensors.png", -@@ -189,6 +193,7 @@ android_resources("java_resources") { +@@ -192,6 +196,7 @@ android_resources("java_resources") { "java/res/drawable-xxxhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xxxhdpi/permission_background_sync.png", "java/res/drawable-xxxhdpi/permission_javascript.png", @@ -238,7 +238,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -133,6 +133,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -136,6 +136,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment return "idle_detection_permission_list"; case ContentSettingsType.JAVASCRIPT: return "javascript_permission_list"; @@ -247,7 +247,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c case ContentSettingsType.POPUPS: return "popup_permission_list"; case ContentSettingsType.SOUND: -@@ -505,6 +507,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -516,6 +518,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpCookiesPreference(preference); } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); @@ -256,7 +256,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.NOTIFICATIONS) { setUpNotificationsPreference(preference, mSite.isEmbargoed(type)); } else if (type == ContentSettingsType.REQUEST_DESKTOP_SITE) { -@@ -1035,6 +1039,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1072,6 +1076,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */); } @@ -337,7 +337,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -218,6 +218,13 @@ public final class Website implements Serializable { +@@ -235,6 +235,13 @@ public final class Website implements WebsiteEntry { } else { RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings"); } @@ -354,7 +354,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -790,6 +790,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( +@@ -821,6 +821,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( case ContentSettingsType::COOKIES: case ContentSettingsType::FEDERATED_IDENTITY_API: case ContentSettingsType::JAVASCRIPT: @@ -375,7 +375,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen Location -@@ -473,6 +476,20 @@ +@@ -497,6 +500,20 @@ Block JavaScript for a specific site. @@ -399,7 +399,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -618,7 +618,7 @@ void ContentSettingsRegistry::Init() { +@@ -605,7 +605,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit", @@ -431,7 +431,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -122,6 +122,7 @@ ContentSettingsType kPermissionType[] = { +@@ -125,6 +125,7 @@ ContentSettingsType kPermissionType[] = { ContentSettingsType::AR, ContentSettingsType::IDLE_DETECTION, ContentSettingsType::FEDERATED_IDENTITY_API, @@ -439,7 +439,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. }; // Determines whether to show permission |type| in the Page Info UI. Only -@@ -155,6 +156,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, +@@ -158,6 +159,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, return true; } diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 801c396e..3b7380a9 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -806,14 +806,6 @@ public class TabPersistentStore { +@@ -816,14 +816,6 @@ public class TabPersistentStore { mTabsToMigrate.add(tab); } } else { @@ -30,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java -@@ -598,9 +598,6 @@ public class CriticalPersistedTabData extends PersistedTabData { +@@ -602,9 +602,6 @@ public class CriticalPersistedTabData extends PersistedTabData { if (getUrl() == null || getUrl().isEmpty()) { return false; } diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index 24d037bf..276bb428 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3986,9 +3986,9 @@ +@@ -4140,9 +4140,9 @@ "expiry_milestone": 110 }, { diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index a38cae48..3477b3a1 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -140,7 +140,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chro diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc -@@ -131,6 +131,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { +@@ -133,6 +133,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { if (external_storage_path.IsParent(path)) return true; @@ -157,7 +157,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -633,6 +633,7 @@ static_library("ui") { +@@ -639,6 +639,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -279,7 +279,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra bool system_crash_reporter = false; #if BUILDFLAG(IS_CHROMEOS) -@@ -234,14 +277,112 @@ void CrashesDOMHandler::UpdateUI() { +@@ -226,14 +269,112 @@ void CrashesDOMHandler::UpdateUI() { void CrashesDOMHandler::HandleRequestSingleCrashUpload( const base::Value::List& args) { @@ -398,7 +398,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra } } // namespace -@@ -253,7 +394,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( +@@ -245,7 +386,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( /////////////////////////////////////////////////////////////////////////////// CrashesUI::CrashesUI(content::WebUI* web_ui) : WebUIController(web_ui) { diff --git a/build/patches/Make-all-favicon-requests-on-demand.patch b/build/patches/Make-all-favicon-requests-on-demand.patch index 0a021776..1aa09278 100644 --- a/build/patches/Make-all-favicon-requests-on-demand.patch +++ b/build/patches/Make-all-favicon-requests-on-demand.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/core/favicon_database.cc --- a/components/favicon/core/favicon_database.cc +++ b/components/favicon/core/favicon_database.cc -@@ -509,6 +509,7 @@ FaviconBitmapID FaviconDatabase::AddFaviconBitmap( +@@ -505,6 +505,7 @@ FaviconBitmapID FaviconDatabase::AddFaviconBitmap( base::Time time, const gfx::Size& pixel_size) { DCHECK(icon_id); @@ -21,18 +21,18 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co sql::Statement statement(db_.GetCachedStatement( SQL_FROM_HERE, -@@ -561,8 +562,8 @@ bool FaviconDatabase::SetFaviconBitmap( +@@ -553,8 +554,8 @@ bool FaviconDatabase::SetFaviconBitmap( } else { statement.BindNull(0); } -- statement.BindInt64(1, time.ToDeltaSinceWindowsEpoch().InMicroseconds()); +- statement.BindTime(1, time); - statement.BindInt64(2, 0); + statement.BindInt64(1, 0); + statement.BindInt64(2, time.ToDeltaSinceWindowsEpoch().InMicroseconds()); statement.BindInt64(3, bitmap_id); return statement.Run(); -@@ -571,7 +572,7 @@ bool FaviconDatabase::SetFaviconBitmap( +@@ -563,7 +564,7 @@ bool FaviconDatabase::SetFaviconBitmap( bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, base::Time time) { DCHECK(bitmap_id); @@ -41,8 +41,8 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // If it is ON_DEMAND, reset last_requested to 0 and thus silently change the // type to ON_VISIT. sql::Statement statement( -@@ -581,7 +582,8 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, - statement.BindInt64(0, time.ToDeltaSinceWindowsEpoch().InMicroseconds()); +@@ -573,7 +574,8 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, + statement.BindTime(0, time); statement.BindInt64(1, 0); statement.BindInt64(2, bitmap_id); - return statement.Run(); diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index ea09ba17..3af6d815 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -78,6 +78,7 @@ +@@ -79,6 +79,7 @@ #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" #include "components/autofill_assistant/browser/features.h" @@ -38,7 +38,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/browser_sync/browser_sync_switches.h" #include "components/browser_ui/site_settings/android/features.h" #include "components/browsing_data/core/features.h" -@@ -5805,6 +5806,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5986,6 +5987,11 @@ const FeatureEntry kFeatureEntries[] = { reading_list::switches::kReadLaterReminderNotification)}, #endif @@ -65,7 +65,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1435,7 +1435,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1445,7 +1445,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -77,7 +77,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2793,6 +2793,10 @@ const char kTabToGTSAnimationAndroidDescription[] = +@@ -2920,6 +2920,10 @@ const char kTabToGTSAnimationAndroidDescription[] = "Allows users to see an animation when entering or leaving the " "Grid Tab Switcher on phones."; @@ -91,7 +91,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1569,6 +1569,9 @@ extern const char kTabGroupsUiImprovementsAndroidDescription[]; +@@ -1641,6 +1641,9 @@ extern const char kTabGroupsUiImprovementsAndroidDescription[]; extern const char kTabToGTSAnimationAndroidName[]; extern const char kTabToGTSAnimationAndroidDescription[]; @@ -116,7 +116,7 @@ diff --git a/chrome/browser/prefetch/prefetch_prefs.h b/chrome/browser/prefetch/ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -282,7 +282,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; +@@ -302,7 +302,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kSearchSuggestEnabled, @@ -185,7 +185,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/bookmark_metrics.h" #include "components/bookmarks/common/bookmark_pref_names.h" -@@ -440,11 +441,14 @@ bool DoesBookmarkContainWords(const std::u16string& title, +@@ -443,11 +444,14 @@ bool DoesBookmarkContainWords(const std::u16string& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -249,7 +249,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -321,7 +321,7 @@ void ContentSettingsRegistry::Init() { +@@ -308,7 +308,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::BACKGROUND_SYNC, "background-sync", @@ -258,7 +258,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. AllowlistedSchemes(), ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -@@ -421,7 +421,7 @@ void ContentSettingsRegistry::Init() { +@@ -408,7 +408,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. @@ -324,12 +324,12 @@ diff --git a/components/signin/internal/identity_manager/primary_account_manager diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -499,7 +499,7 @@ const char kIsolateOriginsFieldTrialParamName[] = "OriginsList"; - // the attribute. Note: At present, only iframes with origin-restricted +@@ -541,7 +541,7 @@ const char kIsolateOriginsFieldTrialParamName[] = "OriginsList"; // sandboxes are isolated. - const base::Feature kIsolateSandboxedIframes{"IsolateSandboxedIframes", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; + BASE_FEATURE(kIsolateSandboxedIframes, + "IsolateSandboxedIframes", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); const base::FeatureParam::Option isolated_sandboxed_iframes_grouping_types[] = { {IsolateSandboxedIframesGrouping::kPerSite, "per-site"}, diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index e2db9d0a..20d3db59 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -12,7 +12,7 @@ Support for tablet mode is also included. Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - cc/base/features.cc | 3 ++ + cc/base/features.cc | 4 ++ cc/base/features.h | 1 + cc/input/browser_controls_offset_manager.cc | 6 +++ cc/trees/layer_tree_host_impl.cc | 3 ++ @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 13 +++-- .../chrome/browser/ntp/RecentTabsPage.java | 22 ++++++-- - .../browser/searchwidget/SearchActivity.java | 12 ++++- + .../browser/searchwidget/SearchActivity.java | 13 ++++- .../browser/settings/SettingsActivity.java | 5 ++ .../StatusIndicatorCoordinator.java | 10 ++++ .../StatusIndicatorSceneLayer.java | 7 ++- @@ -57,16 +57,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.cc | 4 ++ chrome/browser/flag_descriptions.h | 3 ++ .../flags/android/cached_feature_flags.cc | 18 +++++++ - .../flags/android/chrome_feature_list.cc | 2 + + .../flags/android/chrome_feature_list.cc | 3 ++ .../browser/flags/CachedFeatureFlags.java | 19 +++++++ .../browser/flags/ChromeFeatureList.java | 4 ++ .../chrome/browser/ui/appmenu/AppMenu.java | 25 +++++++++ .../ui/appmenu/AppMenuHandlerImpl.java | 11 ++++ .../omnibox/LocationBarCoordinator.java | 9 +++- .../browser/omnibox/UrlBarCoordinator.java | 11 +++- - .../suggestions/AutocompleteCoordinator.java | 16 +++++- + .../suggestions/AutocompleteCoordinator.java | 20 +++++-- .../suggestions/AutocompleteMediator.java | 7 ++- - .../OmniboxSuggestionsDropdown.java | 23 +++++++- + .../OmniboxSuggestionsDropdown.java | 22 +++++++- .../OmniboxSuggestionsDropdownEmbedder.java | 4 ++ .../strings/android_chrome_strings.grd | 6 +++ chrome/browser/ui/android/toolbar/BUILD.gn | 1 + @@ -85,28 +85,29 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../accessibility/AccessibilitySettings.java | 16 ++++++ .../AccessibilitySettingsDelegate.java | 6 +++ .../render_widget_host_view_android.cc | 3 ++ - 73 files changed, 768 insertions(+), 56 deletions(-) + 73 files changed, 771 insertions(+), 59 deletions(-) diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -35,6 +35,9 @@ const base::Feature kSynchronizedScrolling = { - base::FEATURE_ENABLED_BY_DEFAULT}; - #endif +@@ -40,6 +40,10 @@ BASE_FEATURE(kAvoidRasterDuringElasticOverscroll, + "AvoidRasterDuringElasticOverscroll", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kMoveTopToolbarToBottom = { -+ "MoveTopToolbarToBottom", base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kMoveTopToolbarToBottom, ++ "MoveTopToolbarToBottom", ++ base::FEATURE_DISABLED_BY_DEFAULT); + - const base::Feature kRemoveMobileViewportDoubleTap{ - "RemoveMobileViewportDoubleTap", base::FEATURE_ENABLED_BY_DEFAULT}; - + BASE_FEATURE(kRemoveMobileViewportDoubleTap, + "RemoveMobileViewportDoubleTap", + base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/cc/base/features.h b/cc/base/features.h --- a/cc/base/features.h +++ b/cc/base/features.h -@@ -14,6 +14,7 @@ namespace features { - CC_BASE_EXPORT extern const base::Feature kAnimatedImageResume; - CC_BASE_EXPORT extern bool IsImpulseScrollAnimationEnabled(); - CC_BASE_EXPORT extern const base::Feature kSynchronizedScrolling; +@@ -20,6 +20,7 @@ CC_BASE_EXPORT BASE_DECLARE_FEATURE(kSynchronizedScrolling); + // that resets the scale at the end. When enabled, this aovids recomputing + // raster scale during elastic overscroll. + CC_BASE_EXPORT BASE_DECLARE_FEATURE(kAvoidRasterDuringElasticOverscroll); +CC_BASE_EXPORT extern const base::Feature kMoveTopToolbarToBottom; // When enabled, the double tap to zoom will be disabled when the viewport @@ -137,7 +138,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -4229,6 +4229,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -4253,6 +4253,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -150,7 +151,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -78,6 +78,9 @@ import org.chromium.components.prefs.PrefService; +@@ -85,6 +85,9 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.util.ColorUtils; @@ -159,8 +160,8 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ + /** The mediator implements the logic to interact with the surfaces and caller. */ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View.OnClickListener, - StartSurface.OnTabSelectingListener, BackPressHandler { -@@ -1028,6 +1031,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. + StartSurface.OnTabSelectingListener, BackPressHandler, +@@ -1095,6 +1098,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. } private void setTopMargin(int topMargin) { @@ -391,7 +392,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java -@@ -22,6 +22,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; +@@ -21,6 +21,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -400,7 +401,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * ViewBinder for TabListRecyclerView. -@@ -58,6 +60,8 @@ class TabListContainerViewBinder { +@@ -57,6 +59,8 @@ class TabListContainerViewBinder { params.topMargin = newTopMargin; view.requestLayout(); } else if (BOTTOM_CONTROLS_HEIGHT == propertyKey) { @@ -452,7 +453,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Field trial parameter for downsampling scaling factor. */ -@@ -194,6 +197,7 @@ class TabListRecyclerView +@@ -192,6 +195,7 @@ class TabListRecyclerView ? FINAL_FADE_IN_DURATION_MS : BASE_ANIMATION_DURATION_MS; @@ -460,7 +461,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser setAlpha(0); setVisibility(View.VISIBLE); mFadeInAnimator = ObjectAnimator.ofFloat(this, View.ALPHA, 1); -@@ -227,6 +231,11 @@ class TabListRecyclerView +@@ -225,6 +229,11 @@ class TabListRecyclerView } void setShadowVisibility(boolean shouldShowShadow) { @@ -472,7 +473,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (mShadowImageView == null) { Context context = getContext(); mShadowImageView = new ImageView(context); -@@ -239,7 +248,10 @@ class TabListRecyclerView +@@ -237,7 +246,10 @@ class TabListRecyclerView if (getParent() instanceof FrameLayout) { // Add shadow for grid tab switcher. FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( @@ -484,7 +485,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mShadowImageView.setLayoutParams(params); mShadowImageView.setTranslationY(mShadowTopOffset); FrameLayout parent = (FrameLayout) getParent(); -@@ -266,6 +278,10 @@ class TabListRecyclerView +@@ -264,6 +276,10 @@ class TabListRecyclerView void setShadowTopOffset(int shadowTopOffset) { mShadowTopOffset = shadowTopOffset; @@ -495,7 +496,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (mShadowImageView != null && getParent() instanceof FrameLayout) { // Since the shadow has no functionality, other than just existing visually, we can use -@@ -445,6 +461,7 @@ class TabListRecyclerView +@@ -443,6 +459,7 @@ class TabListRecyclerView mListener.finishedHiding(); } }); @@ -506,15 +507,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider - import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; - import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; +@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthController; + import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; +import org.chromium.chrome.browser.flags.CachedFeatureFlags; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; -@@ -414,11 +415,22 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -457,11 +458,22 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView updateTopControlsProperties(); mContainerViewModel.set( BOTTOM_CONTROLS_HEIGHT, browserControlsStateProvider.getBottomControlsHeight()); @@ -537,7 +538,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mContainerView = containerView; -@@ -535,6 +547,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -588,6 +600,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); mContainerViewModel.set(TOP_MARGIN, contentOffset); @@ -627,7 +628,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -243,6 +243,9 @@ import java.util.ArrayList; +@@ -244,6 +244,9 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; @@ -637,7 +638,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} * and associated classes. -@@ -747,6 +750,16 @@ public abstract class ChromeActivity +@@ -748,6 +751,16 @@ public abstract class ChromeActivity int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { controlContainer.initWithToolbar(toolbarLayoutId); @@ -657,19 +658,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java -@@ -107,6 +107,7 @@ public class ChromeCachedFlags { +@@ -111,6 +111,7 @@ public class ChromeCachedFlags { add(ChromeFeatureList.sInstanceSwitcher); add(ChromeFeatureList.sInstantStart); add(ChromeFeatureList.sInterestFeedV2); + add(ChromeFeatureList.sMoveTopToolbarToBottom); add(ChromeFeatureList.sNewWindowAppMenu); add(ChromeFeatureList.sOmniboxModernizeVisualUpdate); - add(ChromeFeatureList.sOptimizationGuidePushNotifications); + add(ChromeFeatureList.sOmniboxRemoveExcessiveRecycledViewClearCalls); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -79,6 +79,8 @@ import org.chromium.ui.base.EventOffsetHandler; - import org.chromium.ui.base.WindowAndroid; +@@ -83,6 +83,8 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.mojom.VirtualKeyboardMode; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -677,7 +678,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp import java.util.ArrayList; import java.util.HashSet; -@@ -298,6 +300,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -316,6 +318,10 @@ public class CompositorViewHolder extends FrameLayout WebContents webContents = mTabVisible.getWebContents(); if (webContents == null) return; EventForwarder forwarder = webContents.getEventForwarder(); @@ -764,7 +765,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.concurrent.Callable; -@@ -84,7 +85,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { +@@ -87,7 +88,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { mStartSurfaceSupplier = startSurfaceSupplier; mTabSwitcherSupplier = tabSwitcherSupplier; mTabStripLayoutHelperManager = new StripLayoutHelperManager(host.getContext(), this, @@ -816,7 +817,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -376,7 +376,7 @@ public class StripLayoutHelper implements StripLayoutTab.StripLayoutTabDelegate +@@ -375,7 +375,7 @@ public class StripLayoutHelper implements StripLayoutTab.StripLayoutTabDelegate // position 0 is on the left. Account for that in the offset calculation. boolean isRtl = LocalizationUtils.isLayoutRtl(); boolean useUnadjustedScrollOffset = isRtl != isLeft; @@ -1065,7 +1066,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java -@@ -49,6 +49,9 @@ import org.chromium.ui.vr.VrModeObserver; +@@ -51,6 +51,9 @@ import org.chromium.ui.vr.VrModeObserver; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1075,7 +1076,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow /** * A class that manages browser control visibility and positioning. */ -@@ -367,6 +370,14 @@ public class BrowserControlsManager +@@ -396,6 +399,14 @@ public class BrowserControlsManager return mTopControlContainerHeight; } @@ -1090,7 +1091,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow @Override public int getTopControlsMinHeight() { return mTopControlsMinHeight; -@@ -433,6 +444,8 @@ public class BrowserControlsManager +@@ -462,6 +473,8 @@ public class BrowserControlsManager @Override public float getTopVisibleContentOffset() { @@ -1262,7 +1263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -71,6 +71,11 @@ import org.chromium.ui.base.WindowDelegate; +@@ -76,6 +76,11 @@ import org.chromium.ui.base.WindowDelegate; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1274,24 +1275,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import java.lang.ref.WeakReference; /** Queries the user's default search engine and shows autocomplete suggestions. */ -@@ -182,6 +187,11 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -189,6 +194,12 @@ public class SearchActivity extends AsyncInitializationActivity mSearchBox = (SearchActivityLocationBarLayout) mContentView.findViewById( R.id.search_location_bar); - View anchorView = mContentView.findViewById(R.id.toolbar); + mAnchorView = mContentView.findViewById(R.id.toolbar); + if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) -+ anchorView.getLayoutParams(); ++ mAnchorView.getLayoutParams(); + layoutParams.gravity = Gravity.START | Gravity.BOTTOM; ++ mAnchorView.setLayoutParams(layoutParams); + } + updateAnchorViewLayout(); + OverrideUrlLoadingDelegate overrideUrlLoadingDelegate = - (String url, @PageTransition int transition, String postDataType, byte[] postData, - boolean incognito) -> { -@@ -195,7 +205,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -204,7 +215,7 @@ public class SearchActivity extends AsyncInitializationActivity getOnBackPressedDispatcher().addCallback(this, backPressManager.getCallback()); } // clang-format off -- mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, anchorView, -+ mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, anchorView, anchorView, +- mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, mAnchorView, ++ mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, anchorView, mAnchorView, mProfileSupplier, PrivacyPreferencesManagerImpl.getInstance(), mSearchBoxDataProvider, null, new WindowDelegate(getWindow()), getWindowAndroid(), /*activityTabSupplier=*/() -> null, getModalDialogManagerSupplier(), @@ -1364,7 +1366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -176,6 +176,9 @@ import org.chromium.url.GURL; +@@ -177,6 +177,9 @@ import org.chromium.url.GURL; import java.util.List; @@ -1374,7 +1376,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -665,7 +668,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -668,7 +671,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve mEphemeralTabCoordinatorSupplier); // clang-format off LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( @@ -1383,7 +1385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar PrivacyPreferencesManagerImpl.getInstance(), mLocationBarModel, mActionModeController.getActionModeCallback(), new WindowDelegate(mActivity.getWindow()), windowAndroid, mActivityTabProvider, -@@ -915,11 +918,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -925,11 +928,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1397,7 +1399,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener(mLayoutChangeListener); mLayoutChangeListener = null; } -@@ -1286,13 +1291,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -1309,13 +1314,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return mLocationBar.getOmniboxStub().isUrlBarFocused(); } @@ -1425,7 +1427,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController, mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector, mTabContentManager, mCompositorViewHolder, -@@ -1301,8 +1318,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -1324,8 +1341,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve mBottomControlsCoordinatorSupplier.set(new BottomControlsCoordinator(mActivity, mWindowAndroid, mLayoutManager, mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer, mFullscreenManager, @@ -1437,7 +1439,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } /** -@@ -2057,6 +2075,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2089,6 +2107,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1496,7 +1498,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7203,6 +7203,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7427,6 +7427,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWindowsScrollingPersonalityDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWindowsScrollingPersonality)}, @@ -1594,7 +1596,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1703,6 +1703,10 @@ const char kImprovedKeyboardShortcutsDescription[] = +@@ -1752,6 +1752,10 @@ const char kImprovedKeyboardShortcutsDescription[] = "Ensure keyboard shortcuts work consistently with international keyboard " "layouts and deprecate legacy shortcuts."; @@ -1608,7 +1610,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -954,6 +954,9 @@ extern const char kImprovedKeyboardShortcutsDescription[]; +@@ -984,6 +984,9 @@ extern const char kImprovedKeyboardShortcutsDescription[]; extern const char kCompositorThreadedScrollbarScrollingName[]; extern const char kCompositorThreadedScrollbarScrollingDescription[]; @@ -1661,26 +1663,27 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "base/metrics/field_trial_params.h" #include "base/no_destructor.h" #include "base/strings/string_piece_forward.h" -@@ -258,6 +259,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -258,6 +259,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kKitKatSupported, &kLensCameraAssistedSearch, &kLensOnQuickActionSearchWidget, -+ &features::kMoveTopToolbarToBottom, - &kMostRecentTabOnBackgroundCloseTab, ++ &kMoveTopToolbarToBottom, ++ &kMostRecentTabOnBackgroundCloseTab, &kNewInstanceFromDraggedLink, &kNewTabPageTilesTitleWrapAround, + &kNewWindowAppMenu, diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -@@ -103,6 +103,7 @@ public class CachedFeatureFlags { - .put(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, false) +@@ -107,6 +107,7 @@ public class CachedFeatureFlags { .put(ChromeFeatureList.TAB_GROUPS_FOR_TABLETS, false) + .put(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, false) .put(ChromeFeatureList.TAB_STRIP_IMPROVEMENTS, false) + .put(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM, false) .put(ChromeFeatureList.TAB_TO_GTS_ANIMATION, true) .put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false) .put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true) -@@ -208,6 +209,23 @@ public class CachedFeatureFlags { +@@ -213,6 +214,23 @@ public class CachedFeatureFlags { SharedPreferencesManager.getInstance().writeBoolean(preferenceName, isEnabledInNative); } @@ -1704,7 +1707,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f /** * Forces a feature to be enabled or disabled for testing. * -@@ -527,6 +545,7 @@ public class CachedFeatureFlags { +@@ -532,6 +550,7 @@ public class CachedFeatureFlags { @NativeMethods interface Natives { @@ -1715,16 +1718,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -424,6 +424,8 @@ public abstract class ChromeFeatureList { +@@ -429,6 +429,8 @@ public abstract class ChromeFeatureList { public static final String MESSAGES_FOR_ANDROID_SYNC_ERROR = "MessagesForAndroidSyncError"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MODAL_PERMISSION_DIALOG_VIEW = "ModalPermissionDialogView"; + public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = + "MoveTopToolbarToBottom"; public static final String METRICS_SETTINGS_ANDROID = "MetricsSettingsAndroid"; - public static final String MOST_RECENT_TAB_ON_BACKGROUND_CLOSE_TAB = - "MostRecentTabOnBackgroundCloseTab"; -@@ -700,6 +702,8 @@ public abstract class ChromeFeatureList { + public static final String NEW_INSTANCE_FROM_DRAGGED_LINK = "NewInstanceFromDraggedLink"; + public static final String NEW_TAB_PAGE_TILES_TITLE_WRAP_AROUND = +@@ -713,6 +715,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sInterestFeedV2 = new CachedFlag(INTEREST_FEED_V2, true); public static final CachedFlag sLensCameraAssistedSearch = new CachedFlag(LENS_CAMERA_ASSISTED_SEARCH, false); @@ -1820,7 +1823,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -85,6 +85,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -88,6 +88,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, private WindowDelegate mWindowDelegate; private WindowAndroid mWindowAndroid; private View mAutocompleteAnchorView; @@ -1828,7 +1831,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private LocationBarMediator mLocationBarMediator; private View mUrlBar; private View mDeleteButton; -@@ -141,7 +142,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -145,7 +146,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, * @param reportExceptionCallback A {@link Callback} to report exceptions. * @param backPressManager The {@link BackPressManager} for intercepting back press. */ @@ -1837,15 +1840,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ObservableSupplier profileObservableSupplier, PrivacyPreferencesManager privacyPreferencesManager, LocationBarDataProvider locationBarDataProvider, ActionMode.Callback actionModeCallback, -@@ -171,6 +172,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -177,6 +178,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, mActivityLifecycleDispatcher = activityLifecycleDispatcher; mActivityLifecycleDispatcher.register(this); mAutocompleteAnchorView = autocompleteAnchorView; + mContainerView = containerView; + Context context = mLocationBarLayout.getContext(); mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); - // TODO(crbug.com/1151513): Inject LocaleManager instance to LocationBarCoordinator instead -@@ -381,6 +383,11 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -389,6 +391,11 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, return mAutocompleteAnchorView; } @@ -1870,7 +1873,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Coordinates the interactions with the UrlBar text component. */ -@@ -217,7 +220,13 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc +@@ -231,7 +234,13 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc // to show or hide keyboard anyway. This may happen when we schedule keyboard hide, and // receive a second request to hide the keyboard instantly. if (showKeyboard) { @@ -1888,7 +1891,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -57,6 +57,8 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; +@@ -61,6 +61,8 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -1897,15 +1900,17 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -71,6 +73,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -75,8 +77,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC private final @NonNull AutocompleteMediator mMediator; private final @NonNull Supplier mModalDialogManagerSupplier; private @Nullable OmniboxSuggestionsDropdown mDropdown; +- private @NonNull ObserverList mScrollListenerList = +- new ObserverList<>(); + private final @NonNull OmniboxSuggestionsDropdownEmbedder mDropdownEmbedder; public AutocompleteCoordinator(@NonNull ViewGroup parent, @NonNull AutocompleteDelegate delegate, -@@ -92,6 +95,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -99,6 +100,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC PropertyModel listModel = new PropertyModel(SuggestionListProperties.ALL_KEYS); ModelList listItems = new ModelList(); @@ -1913,16 +1918,16 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow listModel.set(SuggestionListProperties.EMBEDDER, dropdownEmbedder); listModel.set(SuggestionListProperties.VISIBLE, false); listModel.set(SuggestionListProperties.SUGGESTION_MODELS, listItems); -@@ -140,7 +144,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -154,7 +156,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC public void inflate() { OmniboxSuggestionsDropdown dropdown; try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { -- dropdown = new OmniboxSuggestionsDropdown(context, locationBarDataProvider); -+ dropdown = new OmniboxSuggestionsDropdown(context, locationBarDataProvider, mDropdownEmbedder); +- dropdown = new OmniboxSuggestionsDropdown(context); ++ dropdown = new OmniboxSuggestionsDropdown(context, mDropdownEmbedder); } // Start with visibility GONE to ensure that show() is called. -@@ -211,6 +215,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -232,6 +234,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById( R.id.omnibox_results_container_stub)) .inflate(); @@ -1939,10 +1944,17 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mHolder = new SuggestionListViewHolder(container, dropdown); for (int i = 0; i < mCallbacks.size(); i++) { +@@ -458,4 +470,4 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC + listener.onSuggestionDropdownOverscrolledToTop(); + } + } +-} +\ No newline at end of file ++} diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -57,6 +57,9 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -58,6 +58,9 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; @@ -1952,7 +1964,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -969,7 +972,9 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, +@@ -1011,7 +1014,9 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, public void onSuggestionDropdownScroll() { if (mDropdownViewInfoListBuilder.hasFullyConcealedElements()) { mSuggestionsListScrolled = true; @@ -1966,7 +1978,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java -@@ -43,6 +43,9 @@ import org.chromium.ui.base.ViewUtils; +@@ -42,6 +42,9 @@ import org.chromium.ui.base.ViewUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1976,33 +1988,31 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ public class OmniboxSuggestionsDropdown extends RecyclerView { private static final long DEFERRED_INITIAL_SHRINKING_LAYOUT_FROM_IME_DURATION_MS = 300; -@@ -173,7 +176,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -208,7 +211,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + * Constructs a new list designed for containing omnibox suggestions. * @param context Context used for contained views. */ - public OmniboxSuggestionsDropdown( -- @NonNull Context context, @NonNull LocationBarDataProvider locationBarDataProvider) { -+ @NonNull Context context, @NonNull LocationBarDataProvider locationBarDataProvider, +- public OmniboxSuggestionsDropdown(@NonNull Context context) { ++ public OmniboxSuggestionsDropdown(@NonNull Context context, + @NonNull OmniboxSuggestionsDropdownEmbedder embedder) { super(context, null, android.R.attr.dropDownListViewStyle); setFocusable(true); setFocusableInTouchMode(true); -@@ -184,7 +188,7 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -218,13 +222,25 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + setItemAnimator(null); - mScrollListener = new SuggestionScrollListener(); - setOnScrollListener(mScrollListener); -- setLayoutManager(new LinearLayoutManager(context) { -+ LinearLayoutManager linearLayoutManager = (new LinearLayoutManager(context) { - @Override - public int scrollVerticallyBy( - int deltaY, RecyclerView.Recycler recycler, RecyclerView.State state) { -@@ -204,6 +208,19 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - : 0; + mLayoutScrollListener = new SuggestionLayoutScrollListener(context); +- setLayoutManager(mLayoutScrollListener); + + boolean shouldShowModernizeVisualUpdate = + OmniboxFeatures.shouldShowModernizeVisualUpdate(context); + final Resources resources = context.getResources(); int paddingBottom = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); + if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { + // reverse the layout so that the items are at the bottom (in reverse order) + // and anchored to the bottom edge -+ linearLayoutManager.setReverseLayout(true); ++ mLayoutScrollListener.setReverseLayout(true); + + if (!embedder.isTablet()) { + ViewGroup.MarginLayoutParams embedderParams = (ViewGroup.MarginLayoutParams) @@ -2011,11 +2021,11 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + embedderParams.bottomMargin; + } + } -+ setLayoutManager(linearLayoutManager); - ViewCompat.setPaddingRelative(this, paddingSide, 0, paddingSide, paddingBottom); ++ setLayoutManager(mLayoutScrollListener); + ViewCompat.setPaddingRelative(this, 0, 0, 0, paddingBottom); mStandardBgColor = shouldShowModernizeVisualUpdate -@@ -379,6 +396,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -442,6 +458,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { } private int calculateAnchorBottomRelativeToContent() { @@ -2057,7 +2067,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -162,6 +162,7 @@ android_library("java") { +@@ -164,6 +164,7 @@ android_library("java") { "//components/user_prefs/android:java", "//content/public/android:content_java", "//third_party/android_deps:material_design_java", @@ -2216,15 +2226,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java -@@ -39,6 +39,8 @@ class BottomControlsViewBinder { +@@ -40,6 +40,8 @@ class BottomControlsViewBinder { model.get(BottomControlsProperties.BOTTOM_CONTROLS_CONTAINER_HEIGHT_PX); } else if (BottomControlsProperties.Y_OFFSET == propertyKey) { view.sceneLayer.setYOffset(model.get(BottomControlsProperties.Y_OFFSET)); + } else if (BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET == propertyKey) { + view.sceneLayer.setTopControlsMinHeightOffset(model.get(BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET)); - } else if (BottomControlsProperties.ANDROID_VIEW_VISIBLE == propertyKey) { - view.root.setVisibility(model.get(BottomControlsProperties.ANDROID_VIEW_VISIBLE) - ? View.VISIBLE + } else if (BottomControlsProperties.ANDROID_VIEW_VISIBLE == propertyKey + || BottomControlsProperties.COMPOSITED_VIEW_VISIBLE == propertyKey) { + final boolean showAndroidView = diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java @@ -2281,8 +2291,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -43,6 +43,11 @@ import org.chromium.ui.base.ViewUtils; - import org.chromium.ui.resources.dynamics.ViewResourceAdapter; +@@ -48,6 +48,11 @@ import org.chromium.ui.resources.dynamics.ViewResourceAdapter; + import org.chromium.ui.util.TokenHolder; import org.chromium.ui.widget.OptimizedFrameLayout; +import android.view.Gravity; @@ -2293,7 +2303,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Layout for the browser controls (omnibox, menu, tab strip, etc..). */ -@@ -99,6 +104,12 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con +@@ -104,6 +109,12 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con @Override public void initWithToolbar(int toolbarLayoutId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { @@ -2491,7 +2501,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "cc/base/math_util.h" #include "cc/layers/layer.h" #include "cc/layers/surface_layer.h" -@@ -474,6 +475,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -479,6 +480,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = metadata.top_controls_height * metadata.top_controls_shown_ratio; diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 53735d00..b8307b2d 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -61,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2380,6 +2380,7 @@ static_library("browser") { +@@ -2396,6 +2396,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/serial:switches", "//services/device/public/cpp/usb", @@ -72,7 +72,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -215,6 +215,8 @@ +@@ -216,6 +216,8 @@ #include "ui/native_theme/native_theme_features.h" #include "ui/ui_features.h" @@ -81,7 +81,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "base/allocator/buildflags.h" #endif -@@ -3571,6 +3573,20 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3671,6 +3673,20 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebrtcUseMinMaxVEADimensionsName, flag_descriptions::kWebrtcUseMinMaxVEADimensionsDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kWebRtcUseMinMaxVEADimensions)}, @@ -105,7 +105,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -246,6 +246,7 @@ source_set("browser") { +@@ -247,6 +247,7 @@ source_set("browser") { "//third_party/libyuv", "//third_party/re2", "//third_party/sqlite", @@ -116,7 +116,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -203,6 +203,7 @@ +@@ -204,6 +204,7 @@ #include "url/gurl.h" #include "url/origin.h" @@ -124,7 +124,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" #include "content/browser/android/java_interfaces_impl.h" -@@ -3239,6 +3240,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3250,6 +3251,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -157,7 +157,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -455,6 +457,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -456,6 +458,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( if (!command_line.HasSwitch(switches::kDisableYUVImageDecoding) && base::FeatureList::IsEnabled( blink::features::kDecodeLossyWebPImagesToYUV)) { @@ -193,9 +193,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/metrics/histogram_functions.h" +#include "base/rand_util.h" #include "base/notreached.h" + #include "base/ranges/algorithm.h" #include "base/time/time.h" - #include "cc/animation/animation_host.h" -@@ -809,6 +810,15 @@ Document::Document(const DocumentInit& initializer, +@@ -820,6 +821,15 @@ Document::Document(const DocumentInit& initializer, ? MakeGarbageCollected(*this) : nullptr), data_(MakeGarbageCollected(GetExecutionContext())) { @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution)) script_runner_delayer_->Activate(); -@@ -2236,6 +2246,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2243,6 +2253,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -229,7 +229,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -510,6 +510,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -513,6 +513,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -240,7 +240,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ AtomicString visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -2301,6 +2305,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2332,6 +2336,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -253,7 +253,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ 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 -@@ -2123,6 +2123,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2053,6 +2053,7 @@ void Element::ClientQuads(Vector& quads) const { quads.push_back(element_layout_object->LocalToAbsoluteQuad( gfx::QuadF(element_layout_object->ObjectBoundingBox()))); } @@ -261,7 +261,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return; } -@@ -2130,6 +2131,11 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2060,6 +2061,11 @@ void Element::ClientQuads(Vector& quads) const { if (element_layout_object->IsBoxModelObject() || element_layout_object->IsBR()) element_layout_object->AbsoluteQuads(quads); @@ -273,7 +273,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ } DOMRectList* Element::getClientRects() { -@@ -2168,6 +2174,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2098,6 +2104,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { DCHECK(element_layout_object); GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -302,7 +302,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re @@ -1743,7 +1749,11 @@ gfx::RectF Range::BoundingRect() const { // If all rects are empty, return the first rect. - if (result.IsEmpty() && !quads.IsEmpty()) + if (result.IsEmpty() && !quads.empty()) - return quads.front().BoundingBox(); + result = quads.front().BoundingBox(); + @@ -523,12 +523,12 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re "//third_party/ced", + "//third_party/ungoogled:switches", "//third_party/emoji-segmenter", - "//third_party/harfbuzz-ng:hb_scoped_util", "//third_party/icu", + "//third_party/libyuv", diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -64,4 +64,16 @@ void WebRuntimeFeatures::EnableFluentScrollbars(bool enable) { +@@ -65,4 +65,16 @@ void WebRuntimeFeatures::EnableFluentScrollbars(bool enable) { ScrollbarThemeSettings::SetFluentScrollbarsEnabled(enable); } @@ -761,7 +761,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1418,6 +1418,15 @@ +@@ -1447,6 +1447,15 @@ // No plan to support complex UI for date/time INPUT types on Android. status: {"Android": "test", "default": "stable"}, }, diff --git a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch b/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch index d78a1c73..87465161 100644 --- a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch +++ b/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -267,6 +267,8 @@ std::vector ChromeAutocompleteProviderClient::GetBuiltinURLs() { +@@ -278,6 +278,8 @@ std::vector ChromeAutocompleteProviderClient::GetBuiltinURLs() { std::vector ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { std::vector builtins_to_provide; diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index c42f2ec1..c151e94e 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro #include "base/metrics/histogram_macros.h" #include "chrome/browser/favicon/favicon_utils.h" #include "chrome/browser/profiles/profile.h" -@@ -69,16 +70,20 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( +@@ -73,16 +74,20 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( NavigationEntry* entry) { // Don't autogenerate keywords for pages that are the result of form // submissions. @@ -66,7 +66,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro } // Don't autogenerate keywords for referrers that -@@ -86,10 +91,10 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( +@@ -90,10 +95,10 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( // b) have a path. // // If we relax the path constraint, we need to be sure to sanitize the path @@ -80,14 +80,14 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro return std::u16string(); } -@@ -116,22 +121,27 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( - - // Only accept messages from the main frame. - if (osdd_handler_receivers_.GetCurrentTargetFrame() != -- web_contents()->GetPrimaryMainFrame()) -+ web_contents()->GetPrimaryMainFrame()) { +@@ -114,22 +119,27 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( + const GURL& page_url, + const GURL& osdd_url) { + // Checks to see if we should generate a keyword based on the OSDD, and if +- // necessary uses TemplateURLFetcher to download the OSDD and create a ++ // necessary uses TemplateURLFetcher to download the OSDD and create a { + LOG(INFO) << "OpenSearch: frame mismatch on page " << page_url; - return; + // keyword. + } // Make sure that the page is the current page and other basic checks. @@ -112,7 +112,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro // If the current page is a form submit, find the last page that was not a // form submit and use its url to generate the keyword from. -@@ -141,8 +151,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -139,8 +149,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( (index > 0) && IsFormSubmit(entry); entry = controller.GetEntryAtIndex(index)) --index; @@ -124,7 +124,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro // Autogenerate a keyword for the autodetected case; in the other cases we'll // generate a keyword later after fetching the OSDD. -@@ -150,6 +162,12 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -148,6 +160,12 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( if (keyword.empty()) return; @@ -137,7 +137,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro auto* frame = web_contents()->GetPrimaryMainFrame(); mojo::Remote url_loader_factory; frame->CreateNetworkServiceDefaultFactory( -@@ -157,6 +175,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -155,6 +173,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( // Download the OpenSearch description document. If this is successful, a // new keyword will be created when done. @@ -145,7 +145,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro TemplateURLFetcherFactory::GetForProfile(profile)->ScheduleDownload( keyword, osdd_url, entry->GetFavicon().url, frame->GetLastCommittedOrigin(), url_loader_factory.get(), -@@ -198,11 +217,18 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( +@@ -196,11 +215,18 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( if (last_index <= 0) return; @@ -166,7 +166,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro TemplateURLService* url_service = TemplateURLServiceFactory::GetForProfile(profile); if (!url_service) -@@ -213,7 +239,6 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( +@@ -211,7 +237,6 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( return; } @@ -190,9 +190,9 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL(); if (!osdd_url.is_empty()) { + LOG(INFO) << "OpenSearch: found OSDD URL: " << osdd_url; - mojo::AssociatedRemote + mojo::Remote osdd_handler; - render_frame()->GetRemoteAssociatedInterfaces()->GetInterface( + render_frame()->GetBrowserInterfaceBroker()->GetInterface( diff --git a/components/search_engines/template_url_fetcher.cc b/components/search_engines/template_url_fetcher.cc --- a/components/search_engines/template_url_fetcher.cc +++ b/components/search_engines/template_url_fetcher.cc @@ -246,7 +246,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // regardless of |url| if the default search provider is managed by policy or // controlled by an extension. bool CanMakeDefault(const TemplateURL* url) const; -@@ -636,9 +639,6 @@ class TemplateURLService : public WebDataServiceConsumer, +@@ -646,9 +649,6 @@ class TemplateURLService : public WebDataServiceConsumer, // SetKeywordSearchTermsForURL is invoked. void UpdateKeywordSearchTermsForURL(const URLVisitedDetails& details); diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index a6cffde8..9c82688d 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -13,7 +13,7 @@ and fix the selection in the UI for the browser language diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -@@ -35,6 +35,10 @@ import java.util.Locale; +@@ -34,6 +34,10 @@ import java.util.Locale; public class AppLocaleUtils { private AppLocaleUtils(){}; @@ -24,7 +24,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse // Value of AppLocale preference when the system language is used. public static final String APP_LOCALE_USE_SYSTEM_LANGUAGE = null; -@@ -99,6 +103,22 @@ public class AppLocaleUtils { +@@ -98,6 +102,22 @@ public class AppLocaleUtils { return locale.toLanguageTag(); } @@ -68,7 +68,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -68,6 +68,7 @@ +@@ -69,6 +69,7 @@ #include "cc/base/switches.h" #include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h" #include "components/discardable_memory/service/discardable_shared_memory_manager.h" @@ -76,7 +76,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3173,8 +3174,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3175,8 +3176,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 134d8d0f..b0976ea5 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b @@ -413,7 +413,7 @@ static unsigned AvoidDownloadIfHigherDensityResourceIsInCache( KURL url = document->CompleteURL( StripLeadingAndTrailingHTMLSpaces(image_candidates[i]->Url())); - if (GetMemoryCache()->ResourceForURL( + if (MemoryCache::Get()->ResourceForURL( - url, document->Fetcher()->GetCacheIdentifier(url)) || + url, document->Fetcher()->GetCacheIdentifier(url, document->TopFrameOrigin())) || url.ProtocolIsData()) @@ -39,10 +39,10 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2216,7 +2216,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2252,7 +2252,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, Resource* cached_resource = document->Fetcher()->CachedResource(url); if (!cached_resource) { - cached_resource = GetMemoryCache()->ResourceForURL( + cached_resource = MemoryCache::Get()->ResourceForURL( - url, document->Fetcher()->GetCacheIdentifier(url)); + url, document->Fetcher()->GetCacheIdentifier(url, document->TopFrameOrigin())); } @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b Resource* cached_resource = document->Fetcher()->CachedResource(url); - if (!cached_resource) { + if (!cached_resource && document->TopFrameOrigin()) { - cached_resource = GetMemoryCache()->ResourceForURL( + cached_resource = MemoryCache::Get()->ResourceForURL( - url, document->Fetcher()->GetCacheIdentifier(url)); + url, document->Fetcher()->GetCacheIdentifier(url, + document->TopFrameOrigin())); @@ -67,10 +67,10 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -726,7 +726,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -729,7 +729,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { // content when style recalc is over and DOM mutation is allowed again. if (!url.IsNull()) { - Resource* resource = GetMemoryCache()->ResourceForURL( + Resource* resource = MemoryCache::Get()->ResourceForURL( - url, element_->GetDocument().Fetcher()->GetCacheIdentifier(url)); + url, element_->GetDocument().Fetcher()->GetCacheIdentifier(url, + element_->GetDocument().TopFrameOrigin())); @@ -80,7 +80,7 @@ diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_part diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc -@@ -197,7 +197,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, +@@ -198,7 +198,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, } bool MemoryCache::Contains(const Resource* resource) const { @@ -89,7 +89,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ return false; const auto resource_maps_it = -@@ -213,12 +213,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -214,12 +214,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h -@@ -112,9 +112,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, +@@ -116,9 +116,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, TypeStatistic other; }; @@ -116,7 +116,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t void Add(Resource*); void Remove(Resource*); -@@ -159,6 +157,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, +@@ -163,6 +161,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, base::MemoryPressureListener::MemoryPressureLevel) override; private: @@ -128,7 +128,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -652,7 +652,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -657,7 +657,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( if (!archive_ && factory.GetType() == ResourceType::kRaw) return nullptr; @@ -138,10 +138,10 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1111,7 +1112,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1116,7 +1117,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, resource = nullptr; } else { - resource = GetMemoryCache()->ResourceForURL( + resource = MemoryCache::Get()->ResourceForURL( - params.Url(), GetCacheIdentifier(params.Url())); + params.Url(), + GetCacheIdentifier(params.Url(), @@ -149,7 +149,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, -@@ -1319,7 +1322,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1324,7 +1327,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const FetchParameters& params, const ResourceFactory& factory) { const String cache_identifier = @@ -159,7 +159,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (!base::FeatureList::IsEnabled( blink::features::kScopeMemoryCachePerContext)) { DCHECK(!IsMainThread() || params.IsStaleRevalidation() || -@@ -2207,13 +2211,16 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { +@@ -2213,13 +2217,16 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { to_be_removed.clear(); } @@ -179,7 +179,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Requests that can be satisfied via `archive_` (i.e. MHTML) or // `subresource_web_bundles_` should not participate in the global caching, -@@ -2225,7 +2232,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { +@@ -2231,7 +2238,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { if (bundle) return bundle->GetCacheIdentifier(); diff --git a/build/patches/Partition-blobs-by-top-frame-url.patch b/build/patches/Partition-blobs-by-top-frame-url.patch index 5c13c3fa..d77385b5 100644 --- a/build/patches/Partition-blobs-by-top-frame-url.patch +++ b/build/patches/Partition-blobs-by-top-frame-url.patch @@ -98,7 +98,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h --- a/storage/browser/blob/blob_url_store_impl.h +++ b/storage/browser/blob/blob_url_store_impl.h -@@ -39,14 +39,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -40,14 +40,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl const absl::optional& unsafe_top_level_site, RegisterCallback callback) override; void Revoke(const GURL& url) override; @@ -121,7 +121,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b ResolveForNavigationCallback callback) override; private: -@@ -54,6 +61,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -55,6 +62,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl // Returns false and reports a bad mojo message if not. bool BlobUrlIsValid(const GURL& url, const char* method) const; @@ -130,9 +130,9 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b + const base::UnguessableToken& unsafe_agent_cluster_id, + const absl::optional& unsafe_top_level_site); + - const url::Origin origin_; - base::WeakPtr registry_; + const blink::StorageKey storage_key_; + base::WeakPtr registry_; diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_party/blink/public/mojom/blob/blob_url_store.mojom --- a/third_party/blink/public/mojom/blob/blob_url_store.mojom +++ b/third_party/blink/public/mojom/blob/blob_url_store.mojom @@ -194,21 +194,21 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi } // namespace PublicURLManager::PublicURLManager(ExecutionContext* context) -@@ -176,6 +191,7 @@ void PublicURLManager::Resolve( +@@ -217,6 +232,7 @@ void PublicURLManager::Resolve( url_store_->ResolveAsURLLoaderFactory( url, std::move(factory_receiver), + GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), - WTF::Bind( - [](ExecutionContext* execution_context, - const absl::optional& -@@ -249,6 +265,7 @@ void PublicURLManager::Resolve( + WTF::BindOnce(std::move(metrics_callback), + WrapPersistent(GetExecutionContext()))); + } +@@ -258,6 +274,7 @@ void PublicURLManager::Resolve( url_store_->ResolveForNavigation( url, std::move(token_receiver), + GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), - WTF::Bind( - [](ExecutionContext* execution_context, - const absl::optional& + WTF::BindOnce(std::move(metrics_callback), + WrapPersistent(GetExecutionContext()))); + } -- 2.25.1 diff --git a/build/patches/Re-introduce-kWebAuthCable.patch b/build/patches/Re-introduce-kWebAuthCable.patch index eaa61f43..89c5c65e 100644 --- a/build/patches/Re-introduce-kWebAuthCable.patch +++ b/build/patches/Re-introduce-kWebAuthCable.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc b/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc --- a/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc -@@ -110,6 +110,12 @@ class TestSheetView : public AuthenticatorRequestSheetView { +@@ -111,6 +111,12 @@ class TestSheetView : public AuthenticatorRequestSheetView { class AuthenticatorDialogViewTest : public DialogBrowserTest { public: @@ -32,7 +32,7 @@ diff --git a/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsert // DialogBrowserTest: void ShowUi(const std::string& name) override { dialog_model_ = std::make_unique( -@@ -165,6 +171,7 @@ class AuthenticatorDialogViewTest : public DialogBrowserTest { +@@ -173,6 +179,7 @@ class AuthenticatorDialogViewTest : public DialogBrowserTest { } } @@ -56,7 +56,7 @@ diff --git a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc b/ch // DialogBrowserTest: void ShowUi(const std::string& test_name) override { // Strip trailing feature param state. -@@ -349,6 +355,7 @@ class AuthenticatorDialogTest : public DialogBrowserTest, +@@ -353,6 +359,7 @@ class AuthenticatorDialogTest : public DialogBrowserTest, std::unique_ptr model_; base::RepeatingTimer timer_; int bio_samples_remaining_ = 5; @@ -67,7 +67,7 @@ diff --git a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc b/ch diff --git a/chrome/browser/webauthn/chrome_webauthn_browsertest.cc b/chrome/browser/webauthn/chrome_webauthn_browsertest.cc --- a/chrome/browser/webauthn/chrome_webauthn_browsertest.cc +++ b/chrome/browser/webauthn/chrome_webauthn_browsertest.cc -@@ -478,6 +478,7 @@ IN_PROC_BROWSER_TEST_F(WebAuthnCableExtension, ServerLinkExperiments) { +@@ -730,6 +730,7 @@ IN_PROC_BROWSER_TEST_F(WebAuthnCableExtension, ServerLinkExperiments) { class WebAuthnCableSecondFactor : public WebAuthnBrowserTest { public: WebAuthnCableSecondFactor() { @@ -75,7 +75,7 @@ diff --git a/chrome/browser/webauthn/chrome_webauthn_browsertest.cc b/chrome/bro // This makes it a little easier to compare against. trace_ << std::endl; } -@@ -739,6 +740,7 @@ class WebAuthnCableSecondFactor : public WebAuthnBrowserTest { +@@ -990,6 +991,7 @@ class WebAuthnCableSecondFactor : public WebAuthnBrowserTest { }; protected: @@ -86,7 +86,7 @@ diff --git a/chrome/browser/webauthn/chrome_webauthn_browsertest.cc b/chrome/bro diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc --- a/content/browser/webauth/authenticator_impl_unittest.cc +++ b/content/browser/webauth/authenticator_impl_unittest.cc -@@ -1423,7 +1423,12 @@ TEST_F(AuthenticatorImplTest, OversizedCredentialId) { +@@ -1425,7 +1425,12 @@ TEST_F(AuthenticatorImplTest, OversizedCredentialId) { } } @@ -100,7 +100,7 @@ diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/br // https://crbug.com/954355 NavigateAndCommit(GURL(kTestOrigin1)); -@@ -3410,7 +3415,13 @@ TEST_F(AuthenticatorContentBrowserClientTest, +@@ -3412,7 +3417,13 @@ TEST_F(AuthenticatorContentBrowserClientTest, AuthenticatorStatus::SUCCESS); } @@ -118,9 +118,9 @@ diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/br diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1151,6 +1151,12 @@ const base::Feature kWebAssemblyTrapHandler { +@@ -1283,6 +1283,12 @@ BASE_FEATURE(kWebAssemblyTrapHandler, #endif - }; + ); +// Controls whether CTAP2 devices can communicate via the WebAuthentication API +// using pairingless BLE protocol. @@ -129,18 +129,18 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c + base::FEATURE_DISABLED_BY_DEFAULT}; // by default in Bromite + // Controls whether WebAuthn conditional UI requests are supported. - const base::Feature kWebAuthConditionalUI{"WebAuthenticationConditionalUI", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kWebAuthConditionalUI, + "WebAuthenticationConditionalUI", diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -297,6 +297,7 @@ CONTENT_EXPORT extern const base::Feature kWebAssemblyLazyCompilation; - CONTENT_EXPORT extern const base::Feature kWebAssemblySimd; - CONTENT_EXPORT extern const base::Feature kWebAssemblyTiering; - CONTENT_EXPORT extern const base::Feature kWebAssemblyTrapHandler; +@@ -87,6 +87,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmManifestValidation); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmMetricsEndpoint); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmMultipleIdentityProviders); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kFirstPartySets); +CONTENT_EXPORT extern const base::Feature kWebAuthCable; - CONTENT_EXPORT extern const base::Feature kWebAuthConditionalUI; - CONTENT_EXPORT extern const base::Feature kWebBluetooth; - CONTENT_EXPORT extern const base::Feature kWebBluetoothNewPermissionsBackend; + CONTENT_EXPORT extern const base::FeatureParam + kFirstPartySetsClearSiteDataOnChangedSets; + CONTENT_EXPORT extern const base::FeatureParam kFirstPartySetsIsDogfooder; -- 2.25.1 diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index 15e3145e..21aaa06f 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -132,7 +132,7 @@ diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browse diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9029,6 +9029,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9241,6 +9241,13 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kWaylandScreenCoordinatesEnabled)}, #endif @@ -149,7 +149,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3520,6 +3520,11 @@ const char kEnableCbdSignOutDescription[] = +@@ -3666,6 +3666,11 @@ const char kEnableCbdSignOutDescription[] = "Enable additional affordance to sign out when clearing browsing data and " "ensure consistent behavior for all signed-in users."; @@ -164,7 +164,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -379,6 +379,9 @@ extern const char kContextMenuSearchWithGoogleLensDescription[]; +@@ -388,6 +388,9 @@ extern const char kContextMenuSearchWithGoogleLensDescription[]; extern const char kClientStorageAccessContextAuditingName[]; extern const char kClientStorageAccessContextAuditingDescription[]; @@ -177,42 +177,42 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -185,6 +185,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kBulkTabRestore, +@@ -183,6 +183,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kBackgroundThreadPool, &kCastDeviceFilter, &kClearOmniboxFocusAfterNavigation, + &kCloseAllTabsModalDialog, &kCloseTabSuggestions, &kBookmarksExportUseSaf, &kCriticalPersistedTabData, -@@ -525,6 +526,9 @@ const base::Feature kBulkTabRestore{"BulkTabRestore", - const base::Feature kConditionalTabStripAndroid{ - "ConditionalTabStripAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -544,6 +545,9 @@ BASE_FEATURE(kConditionalTabStripAndroid, + "ConditionalTabStripAndroid", + base::FEATURE_DISABLED_BY_DEFAULT); +const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Used in downstream code. - const base::Feature kCastDeviceFilter{"CastDeviceFilter", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kCastDeviceFilter, + "CastDeviceFilter", diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -33,6 +33,7 @@ extern const base::Feature kAppToWebAttribution; - extern const base::Feature kBackgroundThreadPool; - extern const base::Feature kBulkTabRestore; - extern const base::Feature kClearOmniboxFocusAfterNavigation; -+extern const base::Feature kCloseAllTabsModalDialog; - extern const base::Feature kCloseTabSuggestions; - extern const base::Feature kCriticalPersistedTabData; - extern const base::Feature kCommerceCoupons; +@@ -32,6 +32,7 @@ BASE_DECLARE_FEATURE(kAppMenuMobileSiteOption); + BASE_DECLARE_FEATURE(kAppToWebAttribution); + BASE_DECLARE_FEATURE(kBackgroundThreadPool); + BASE_DECLARE_FEATURE(kClearOmniboxFocusAfterNavigation); ++BASE_DECLARE_FEATURE(kCloseAllTabsModalDialog); + BASE_DECLARE_FEATURE(kCloseTabSuggestions); + BASE_DECLARE_FEATURE(kCriticalPersistedTabData); + BASE_DECLARE_FEATURE(kCommerceCoupons); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -264,6 +264,7 @@ public abstract class ChromeFeatureList { - public static final String CCT_RESIZABLE_90_MAXIMUM_HEIGHT = "CCTResizable90MaximumHeight"; - public static final String CCT_RESIZABLE_ALLOW_RESIZE_BY_USER_GESTURE = +@@ -263,6 +263,7 @@ public abstract class ChromeFeatureList { "CCTResizableAllowResizeByUserGesture"; + public static final String CCT_RESIZABLE_ALWAYS_SHOW_NAVBAR_BUTTONS = + "CCTResizableAlwaysShowNavBarButtons"; + public static final String CLOSE_ALL_TABS_MODAL_DIALOG = "CloseAllTabsModalDialog"; public static final String CCT_RESIZABLE_FOR_FIRST_PARTIES = "CCTResizableForFirstParties"; public static final String CCT_RESIZABLE_FOR_THIRD_PARTIES = "CCTResizableForThirdParties"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 06773e36..1133a7cd 100644 --- a/build/patches/Re-introduce-override_build_timestamp.patch +++ b/build/patches/Re-introduce-override_build_timestamp.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -4000,8 +4000,13 @@ action("build_date") { +@@ -4020,8 +4020,13 @@ action("build_date") { args = [ rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index c764246f..89f31d2d 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -36,7 +36,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -317,6 +317,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -341,6 +341,7 @@ void URLRequestHttpJob::OnGotFirstPartySetCacheFilterMatchInfo( // fields in the referrer. GURL referrer(request_->referrer()); @@ -44,7 +44,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Our consumer should have made sure that this is a safe referrer (e.g. via // URLRequestJob::ComputeReferrerForPolicy). if (referrer.is_valid()) { -@@ -324,11 +325,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -348,11 +349,14 @@ void URLRequestHttpJob::OnGotFirstPartySetCacheFilterMatchInfo( request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, referer_value); } @@ -59,7 +59,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); -@@ -584,9 +588,9 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -608,9 +612,9 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), diff --git a/build/patches/Remove-EV-certificates.patch b/build/patches/Remove-EV-certificates.patch index 2fa4bd8f..627cd3c9 100644 --- a/build/patches/Remove-EV-certificates.patch +++ b/build/patches/Remove-EV-certificates.patch @@ -9,19 +9,18 @@ Instead, let them appear just like regular ones. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - net/cert/ev_root_ca_metadata.cc | 20 +++++++++++++++++++- + net/cert/ev_root_ca_metadata.cc | 19 ++++++++++++++++++- net/cert/ev_root_ca_metadata.h | 4 +--- - 2 files changed, 20 insertions(+), 4 deletions(-) + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc --- a/net/cert/ev_root_ca_metadata.cc +++ b/net/cert/ev_root_ca_metadata.cc -@@ -41,7 +41,20 @@ struct EVMetadata { +@@ -40,7 +40,19 @@ struct EVMetadata { const base::StringPiece policy_oids[kMaxOIDsPerCA]; }; --#include "net/data/ssl/ev_roots/chrome-ev-root-store-inc.cc" -+ +-#include "net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc" +static const EVMetadata kEvRootCaMetadata[] = { + // need some dummy data to make compiler happy, because + // arraysize() is implemented as a convoluted template rather than @@ -38,7 +37,7 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc #endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA) } // namespace -@@ -230,6 +243,11 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { +@@ -225,6 +237,11 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { // metadata. // diff --git a/build/patches/Remove-SMS-integration.patch b/build/patches/Remove-SMS-integration.patch index d5ab88ff..d8206659 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -@@ -118,48 +118,6 @@ public class AppLocaleUtils { +@@ -117,48 +117,6 @@ public class AppLocaleUtils { return Locale.forLanguageTag("en-US"); } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 10b91af6..38983253 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -53,7 +53,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../push_messaging_service_factory.cc | 8 +- chrome/browser/resources/settings/route.ts | 2 - chrome/browser/ui/BUILD.gn | 3 - - .../webauthn/authenticator_qr_sheet_view.cc | 3 +- chrome/browser/ui/webauthn/sheet_models.cc | 7 +- .../webui/chrome_web_ui_controller_factory.cc | 3 - .../authenticator_request_dialog_model.cc | 4 - @@ -109,7 +108,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/android_deps/BUILD.gn | 539 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- - 85 files changed, 88 insertions(+), 2017 deletions(-) + 84 files changed, 87 insertions(+), 2015 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -136,133 +135,131 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest. diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -338,14 +338,6 @@ android_library("chrome_java") { - ":chrome_public_apk_template_resources", - ":update_proto_java", - ":usage_stats_proto_java", -- "$google_play_services_package:google_play_services_auth_base_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cast_framework_java", -- "$google_play_services_package:google_play_services_cast_java", -- "$google_play_services_package:google_play_services_gcm_java", -- "$google_play_services_package:google_play_services_iid_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:jni_java", - "//cc:cc_java", - "//chrome/android/features/keyboard_accessory:public_java", -@@ -633,8 +625,19 @@ android_library("chrome_java") { - "//services/shape_detection:shape_detection_java", - "//services/shape_detection/public/mojom:mojom_java", - "//skia/public/mojom:mojom_java", -+ # added for Bromite in place of binary blobs -+ "//third_party/androidx:androidx_annotation_annotation_java", -+ "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", -+ "//third_party/androidx:androidx_appcompat_appcompat_java", -+ "//third_party/androidx:androidx_fragment_fragment_java", -+ "//third_party/androidx:androidx_core_core_java", -+ "//third_party/androidx:androidx_media_media_java", -+ "//third_party/androidx:androidx_recyclerview_recyclerview_java", -+ "//third_party/androidx:androidx_vectordrawable_vectordrawable_java", -+ "//base:base_java", -+ "//base:jni_java", +@@ -365,14 +365,6 @@ if (current_toolchain == default_toolchain) { + ":chrome_public_apk_template_resources", + ":update_proto_java", + ":usage_stats_proto_java", +- "$google_play_services_package:google_play_services_auth_base_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_framework_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_gcm_java", +- "$google_play_services_package:google_play_services_iid_java", +- "$google_play_services_package:google_play_services_tasks_java", + "//base:jni_java", + "//cc:cc_java", + "//chrome/android/features/keyboard_accessory:public_java", +@@ -661,8 +653,18 @@ if (current_toolchain == default_toolchain) { + "//services/shape_detection/public/mojom:mojom_java", + "//skia/public/mojom:mojom_java", + "//third_party/android_deps:chromium_play_services_availability_java", +- "//third_party/android_deps:com_google_android_play_core_java", +- "//third_party/android_deps:com_google_code_findbugs_jsr305_java", ++ # added for Bromite in place of binary blobs ++ "//third_party/androidx:androidx_annotation_annotation_java", ++ "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", ++ "//third_party/androidx:androidx_appcompat_appcompat_java", ++ "//third_party/androidx:androidx_fragment_fragment_java", ++ "//third_party/androidx:androidx_core_core_java", ++ "//third_party/androidx:androidx_media_media_java", ++ "//third_party/androidx:androidx_recyclerview_recyclerview_java", ++ "//third_party/androidx:androidx_vectordrawable_vectordrawable_java", ++ "//base:base_java", ++ "//base:jni_java", + - "//third_party/android_deps:chromium_play_services_availability_java", -- "//third_party/android_deps:com_google_android_play_core_java", - "//third_party/android_deps:com_google_code_findbugs_jsr305_java", - "//third_party/android_deps:com_google_guava_listenablefuture_java", - "//third_party/android_deps:dagger_java", -@@ -976,11 +979,6 @@ robolectric_binary("chrome_junit_tests") { - ":chrome_jni_headers", - ":chrome_public_android_manifest", - ":delegate_public_impl_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cast_framework_java", -- "$google_play_services_package:google_play_services_cast_java", -- "$google_play_services_package:google_play_services_gcm_java", - "//base:base_java_test_support", - "//base:base_junit_test_support", - "//base/test:test_support_java", -@@ -1517,13 +1515,6 @@ android_library("chrome_test_java") { - ":chrome_test_util_java", - ":chrome_test_util_jni", - ":delegate_public_impl_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cast_framework_java", -- "$google_play_services_package:google_play_services_cast_java", -- "$google_play_services_package:google_play_services_gcm_java", -- "$google_play_services_package:google_play_services_iid_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java_test_support", - "//base/test:test_support_java", - "//cc:cc_java", -@@ -2584,7 +2575,6 @@ android_library("browser_java_test_support") { - ] - deps = [ - ":chrome_java", -- "$google_play_services_package:google_play_services_gcm_java", - "//base:base_java", - "//base:base_java_test_support", - "//base:jni_java", -@@ -2738,9 +2728,7 @@ android_library("base_monochrome_module_java") { - # is in a DFM. - android_library("base_module_java") { - sources = [ -- "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java", - "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", -- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", - "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", - "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java", - "java/src/org/chromium/chrome/browser/app/bluetooth/BluetoothNotificationService.java", -@@ -2753,8 +2741,6 @@ android_library("base_module_java") { - "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", - "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", - "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", -- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java", -- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java", - "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", - "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", - "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2779,17 +2765,11 @@ android_library("base_module_java") { - "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", - "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java", - "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", -- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java", -- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java", -- "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java", - "java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java", - "java/src/org/chromium/chrome/browser/webapps/WebApkInstallCoordinatorService.java", - ] - deps = [ - ":chrome_base_module_resources", -- "$google_play_services_package:google_firebase_firebase_iid_java", -- "$google_play_services_package:google_firebase_firebase_messaging_java", -- "$google_play_services_package:google_play_services_gcm_java", - "//base:base_java", - "//base:jni_java", - "//chrome/browser/download/android:file_provider_java", -@@ -2803,7 +2783,6 @@ android_library("base_module_java") { - "//components/media_router/browser/android:cast_options_provider_java", - "//components/minidump_uploader:minidump_uploader_java", - "//components/module_installer/android:module_installer_java", -- "//third_party/android_deps:com_google_android_play_core_java", - "//third_party/androidx:androidx_annotation_annotation_java", - "//third_party/androidx:androidx_collection_collection_java", - "//ui/android:ui_no_recycler_view_java", -@@ -2823,7 +2802,6 @@ android_library("base_module_java") { - # Deps to pull services into base module. - # TODO(crbug.com/1126301): Consider moving these to the chrome module to - # reduce base dex size. -- "$google_play_services_package:google_play_services_cast_framework_java", - "//components/background_task_scheduler:background_task_scheduler_java", - "//components/payments/content/android:service_java", - "//third_party/androidx:androidx_browser_browser_java", + "//third_party/android_deps:com_google_guava_listenablefuture_java", + "//third_party/android_deps:dagger_java", + "//third_party/android_deps:guava_android_java", +@@ -958,11 +960,6 @@ if (current_toolchain == default_toolchain) { + ":chrome_jni_headers", + ":chrome_public_android_manifest", + ":delegate_public_impl_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_framework_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_gcm_java", + "//base:base_java_test_support", + "//base:base_junit_test_support", + "//base/test:test_support_java", +@@ -1495,13 +1492,6 @@ if (current_toolchain == default_toolchain) { + ":chrome_test_util_java", + ":chrome_test_util_jni", + ":delegate_public_impl_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_framework_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_gcm_java", +- "$google_play_services_package:google_play_services_iid_java", +- "$google_play_services_package:google_play_services_tasks_java", + "//base:base_java_test_support", + "//base/test:test_support_java", + "//cc:cc_java", +@@ -2426,7 +2416,6 @@ if (current_toolchain == default_toolchain) { + ] + deps = [ + ":chrome_java", +- "$google_play_services_package:google_play_services_gcm_java", + "//base:base_java", + "//base:base_java_test_support", + "//base:jni_java", +@@ -2579,7 +2568,6 @@ if (current_toolchain == default_toolchain) { + # is in a DFM. + android_library("base_module_java") { + sources = [ +- "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java", + "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", + "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", + "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", +@@ -2595,8 +2583,6 @@ if (current_toolchain == default_toolchain) { + "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", + "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", + "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", +- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java", +- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java", + "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", + "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", + "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", +@@ -2621,17 +2607,11 @@ if (current_toolchain == default_toolchain) { + "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", + "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java", + "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", +- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java", +- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java", +- "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java", + "java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java", + "java/src/org/chromium/chrome/browser/webapps/WebApkInstallCoordinatorService.java", + ] + deps = [ + ":chrome_base_module_resources", +- "$google_play_services_package:google_firebase_firebase_iid_java", +- "$google_play_services_package:google_firebase_firebase_messaging_java", +- "$google_play_services_package:google_play_services_gcm_java", + "//base:base_java", + "//base:jni_java", + "//chrome/browser/download/android:file_provider_java", +@@ -2645,7 +2625,6 @@ if (current_toolchain == default_toolchain) { + "//components/media_router/browser/android:cast_options_provider_java", + "//components/minidump_uploader:minidump_uploader_java", + "//components/module_installer/android:module_installer_java", +- "//third_party/android_deps:com_google_android_play_core_java", + "//third_party/androidx:androidx_annotation_annotation_java", + "//third_party/androidx:androidx_collection_collection_java", + "//ui/android:ui_no_recycler_view_java", +@@ -2665,7 +2644,6 @@ if (current_toolchain == default_toolchain) { + # Deps to pull services into base module. + # TODO(crbug.com/1126301): Consider moving these to the chrome module to + # reduce base dex size. +- "$google_play_services_package:google_play_services_cast_framework_java", + "//components/background_task_scheduler:background_task_scheduler_java", + "//components/payments/content/android:service_java", + "//third_party/androidx:androidx_browser_browser_java", diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -16,7 +16,6 @@ chrome_java_sources = [ +@@ -17,7 +17,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", "java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java", @@ -270,10 +267,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -949,10 +948,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java", - "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java", - "java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java", +@@ -955,10 +954,6 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider.java", + "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", + "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", - "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerServiceImpl.java", - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundServiceImpl.java", - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java", @@ -318,7 +315,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} -@@ -737,16 +732,6 @@ by a child template that "extends" this file. +@@ -749,16 +744,6 @@ by a child template that "extends" this file. @@ -335,7 +332,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -351,7 +348,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -378,7 +375,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -994,28 +950,10 @@ by a child template that "extends" this file. +@@ -1006,28 +962,10 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -407,7 +404,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1250,12 +1188,6 @@ by a child template that "extends" this file. +@@ -1262,12 +1200,6 @@ by a child template that "extends" this file. {% endif %} @@ -924,7 +921,7 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7280,8 +7280,6 @@ static_library("browser") { +@@ -7337,8 +7337,6 @@ static_library("browser") { "offline_pages/offliner_helper.h", "offline_pages/offliner_user_data.cc", "offline_pages/offliner_user_data.h", @@ -954,7 +951,7 @@ diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java -@@ -519,12 +519,6 @@ public class AppLanguagePromoDialog { +@@ -531,12 +531,6 @@ public class AppLanguagePromoDialog { mLoadingModal.set(ModalDialogProperties.CUSTOM_VIEW, customView); @@ -967,7 +964,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse boolean isSelectedCurrentUI = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode()); if (!isSelectedCurrentUI) { // Only record isTopLanguage if the app language has changed. -@@ -532,23 +526,6 @@ public class AppLanguagePromoDialog { +@@ -544,23 +538,6 @@ public class AppLanguagePromoDialog { } AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage( selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode()); @@ -1237,7 +1234,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -31,8 +31,6 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -33,8 +33,6 @@ function addPrivacyChildRoutes(r: Partial) { if (loadTimeData.getBoolean('enableSecurityKeysSubpage')) { r.SECURITY_KEYS = r.SECURITY.createChild('/securityKeys'); @@ -1249,7 +1246,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -256,8 +256,6 @@ static_library("ui") { +@@ -257,8 +257,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1258,7 +1255,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -486,7 +484,6 @@ static_library("ui") { +@@ -492,7 +490,6 @@ static_library("ui") { "//components/feedback/content", "//components/find_in_page", "//components/flags_ui", @@ -1266,23 +1263,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/google/core/common", "//components/heap_profiling/multi_process", "//components/history/content/browser", -diff --git a/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc b/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc ---- a/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc -+++ b/chrome/browser/ui/views/webauthn/authenticator_qr_sheet_view.cc -@@ -52,8 +52,7 @@ class AuthenticatorQRViewCentered : public views::View { - qrcode_generator::mojom::GenerateQRCodeRequest::New(); - request->data = qr_string; - request->should_render = true; -- request->render_dino = -- !base::FeatureList::IsEnabled(device::kWebAuthPasskeysUI); -+ request->render_dino = false; - - request->render_module_style = - qrcode_generator::mojom::ModuleStyle::CIRCLES; diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -159,12 +159,7 @@ bool AuthenticatorMechanismSelectorSheetModel::IsManageDevicesButtonVisible() +@@ -205,12 +205,7 @@ bool AuthenticatorMechanismSelectorSheetModel::IsManageDevicesButtonVisible() const { // If any phones are shown then also show a button that goes to the settings // page to manage them. @@ -1299,7 +1283,7 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -43,7 +43,6 @@ +@@ -44,7 +44,6 @@ #include "chrome/browser/ui/webui/download_internals/download_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" #include "chrome/browser/ui/webui/flags/flags_ui.h" @@ -1307,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -768,8 +767,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -779,8 +778,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIFlagsHost) return &NewWebUI; @@ -1319,7 +1303,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -1099,10 +1099,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms( +@@ -1130,10 +1130,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms( if (cable_ui_type_) { switch (*cable_ui_type_) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1340,9 +1324,9 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth + if ((true)) { + return; + } - ListPrefUpdate update(profile->GetPrefs(), kWebAuthnCablePairingsPrefName); + ScopedListPrefUpdate update(profile->GetPrefs(), + kWebAuthnCablePairingsPrefName); - // Find any existing entries with the same public key and replace them. The diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn @@ -1427,7 +1411,7 @@ diff --git a/components/component_updater/android/java/src/org/chromium/componen diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -2632,14 +2632,6 @@ public class ExternalNavigationHandler { +@@ -2533,14 +2533,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -1580,7 +1564,7 @@ diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_ 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 -@@ -465,6 +465,7 @@ void GCMClientImpl::StartGCM() { +@@ -463,6 +463,7 @@ void GCMClientImpl::StartGCM() { void GCMClientImpl::InitializeMCSClient() { DCHECK(network_connection_tracker_); @@ -1588,7 +1572,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc std::vector endpoints; endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -659,6 +660,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, +@@ -657,6 +658,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, int interval_ms) { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); DCHECK(mcs_client_); @@ -1596,7 +1580,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc mcs_client_->AddHeartbeatInterval(scope, interval_ms); } -@@ -670,6 +672,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { +@@ -668,6 +670,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { void GCMClientImpl::StartCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1604,7 +1588,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc // Make sure no checkin is in progress. if (checkin_request_) -@@ -752,6 +755,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { +@@ -750,6 +753,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { void GCMClientImpl::SchedulePeriodicCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -3245,7 +3229,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -161,7 +159,6 @@ robolectric_library("junit") { +@@ -162,7 +160,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3307,10 +3291,10 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ - "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", - "java/src/org/chromium/components/webauthn/FidoErrorResponseCallback.java", - "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java", + "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/IsUvpaaResponseCallback.java", - "java/src/org/chromium/components/webauthn/MakeCredentialResponseCallback.java", -@@ -30,9 +24,6 @@ android_library("java") { +@@ -31,9 +25,6 @@ android_library("java") { ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] deps = [ @@ -3320,7 +3304,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -68,7 +59,6 @@ android_library("test_support_java") { +@@ -69,7 +60,6 @@ android_library("test_support_java") { source_set("android") { sources = [ @@ -3331,7 +3315,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -66,9 +66,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -68,9 +68,6 @@ public final class AuthenticatorImpl implements Authenticator { // situation does not matter because all pending requests will return the same value. private Queue> mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue = new LinkedList<>(); @@ -3341,7 +3325,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -98,18 +95,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -100,18 +97,6 @@ public final class AuthenticatorImpl implements Authenticator { mGmsCorePackageVersion = PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME); } @@ -3360,7 +3344,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that * originate from the browser process. Since the request is from the browser process, the -@@ -137,17 +122,7 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -139,17 +124,7 @@ public final class AuthenticatorImpl implements Authenticator { mMakeCredentialCallback = callback; mIsOperationPending = true; @@ -3378,7 +3362,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -160,16 +135,7 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -162,16 +137,7 @@ public final class AuthenticatorImpl implements Authenticator { mGetAssertionCallback = callback; mIsOperationPending = true; @@ -3395,7 +3379,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -182,15 +148,7 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -184,15 +150,7 @@ public final class AuthenticatorImpl implements Authenticator { callback.call(isUvpaa); }; @@ -3410,8 +3394,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - isUvpaa -> onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa)); } - @Override -@@ -206,10 +164,7 @@ public final class AuthenticatorImpl implements Authenticator { + /** +@@ -238,10 +196,7 @@ public final class AuthenticatorImpl implements Authenticator { // reason, this method will return true but chrome will ignore conditional requests. // Android surfaces only platform credentials on conditional requests, use IsUVPAA as a // proxy for availability. @@ -3423,7 +3407,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -219,8 +174,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -251,8 +206,6 @@ public final class AuthenticatorImpl implements Authenticator { if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3432,7 +3416,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -270,7 +223,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -302,7 +255,6 @@ public final class AuthenticatorImpl implements Authenticator { mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3507,7 +3491,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3116,10 +3116,6 @@ if (is_android) { +@@ -3134,10 +3134,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3521,7 +3505,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -469,9 +469,6 @@ if (is_android) { +@@ -470,9 +470,6 @@ if (is_android) { "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", ] deps = [ @@ -3534,17 +3518,18 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -36,8 +36,8 @@ extern const base::Feature kWebAuthnGoogleCorpRemoteDesktopClientPrivilege{ - "WebAuthenticationGoogleCorpRemoteDesktopClientPrivilege", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -38,9 +38,9 @@ BASE_FEATURE(kWebAuthnGoogleCorpRemoteDesktopClientPrivilege, + "WebAuthenticationGoogleCorpRemoteDesktopClientPrivilege", + base::FEATURE_ENABLED_BY_DEFAULT); --extern const base::Feature kWebAuthPasskeysUI{ -- "WebAuthenticationPasskeysUI", base::FEATURE_DISABLED_BY_DEFAULT}; -+extern const base::Feature kWebAuthPasskeysUI{ // must be disabled -+ "WebAuthenticationPasskeysUI", base::FEATURE_DISABLED_BY_DEFAULT}; // in Bromite +-BASE_FEATURE(kWebAuthPasskeysUI, ++BASE_FEATURE(kWebAuthPasskeysUI, // must be disabled + "WebAuthenticationPasskeysUI", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - // TODO(1358719): Resolve all i18n TODOs before default enabling. - extern const base::Feature kWebAuthnNewDiscoverableCredentialsUi{ + BASE_FEATURE(kWebAuthnNewDiscoverableCredentialsUi, + "WebAuthenticationNewDiscoverableCredentialsUi", diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni --- a/remoting/android/client_java_tmpl.gni +++ b/remoting/android/client_java_tmpl.gni @@ -3561,7 +3546,7 @@ diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_jav diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -116,11 +116,6 @@ if (is_android) { +@@ -118,11 +118,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3573,7 +3558,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -148,10 +143,6 @@ if (is_android) { +@@ -150,10 +145,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3624,7 +3609,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } robolectric_library("chromium_play_services_availability_shadows_java") { -@@ -968,210 +968,6 @@ if (!limit_android_deps) { +@@ -961,210 +961,6 @@ if (!limit_android_deps) { ] } @@ -3835,7 +3820,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = -@@ -1220,60 +1016,6 @@ if (!limit_android_deps) { +@@ -1213,60 +1009,6 @@ if (!limit_android_deps) { ] } @@ -3896,7 +3881,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_flatbuffers_flatbuffers_java_java") { jar_path = "libs/com_google_flatbuffers_flatbuffers_java/flatbuffers-java-2.0.3.jar" -@@ -1473,19 +1215,6 @@ if (!limit_android_deps) { +@@ -1527,19 +1269,6 @@ if (!limit_android_deps) { is_robolectric = true } @@ -3916,7 +3901,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("org_robolectric_utils_java") { jar_path = "libs/org_robolectric_utils/utils-4.8.1.jar" -@@ -1832,272 +1561,6 @@ if (!limit_android_deps) { +@@ -1900,272 +1629,6 @@ if (!limit_android_deps) { deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch index a1a9389f..79f68ab6 100644 --- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch +++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -292,7 +292,6 @@ public abstract class ChromeActivity +@@ -293,7 +293,6 @@ public abstract class ChromeActivity private TabContentManager mTabContentManager; private UmaSessionStats mUmaSessionStats; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java -@@ -20,6 +20,11 @@ import org.chromium.components.bookmarks.BookmarkId; +@@ -20,6 +20,11 @@ import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkType; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBo @@ -97,6 +103,13 @@ public class TabBookmarker { // Defense in depth against the UI being erroneously enabled. - BookmarkBridge bridge = mBookmarkBridgeSupplier.get(); + BookmarkModel bridge = mBookmarkModelSupplier.get(); + // remove blocklisted URL from most visited sites + if (mMostVisitedSites == null) { + mMostVisitedSites = diff --git a/build/patches/Remove-contextual-search-manager.patch b/build/patches/Remove-contextual-search-manager.patch index ebbfc2a0..094803b5 100644 --- a/build/patches/Remove-contextual-search-manager.patch +++ b/build/patches/Remove-contextual-search-manager.patch @@ -54,15 +54,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -695,7 +695,6 @@ android_library("chrome_java") { - "//chrome/browser/ui:duplicate_download_enums_java", - "//components/browsing_data/core:browsing_data_utils_java", - "//components/browsing_data/core:clear_browsing_data_tab_java", -- "//components/contextual_search/core/browser:quick_action_category_enum_javagen", - "//components/dom_distiller/core:distiller_type_java", - "//components/ntp_tiles:ntp_tiles_enums_java", - "//components/offline_pages/core:offline_page_model_enums_java", -@@ -4097,16 +4096,12 @@ generate_jni("chrome_jni_headers") { +@@ -723,7 +723,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/ui:duplicate_download_enums_java", + "//components/browsing_data/core:browsing_data_utils_java", + "//components/browsing_data/core:clear_browsing_data_tab_java", +- "//components/contextual_search/core/browser:quick_action_category_enum_javagen", + "//components/dom_distiller/core:distiller_type_java", + "//components/ntp_tiles:ntp_tiles_enums_java", + "//components/offline_pages/core:offline_page_model_enums_java", +@@ -3981,16 +3980,12 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java", "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java", @@ -97,7 +97,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/custom_tabs_bottombar.xml", "java/res/layout/custom_tabs_bottombar_item.xml", "java/res/layout/custom_tabs_control_container.xml", -@@ -654,7 +646,6 @@ chrome_java_resources = [ +@@ -652,7 +644,6 @@ chrome_java_resources = [ "java/res/xml/autofill_assistant_preferences.xml", "java/res/xml/bookmark_widget_info.xml", "java/res/xml/clear_browsing_data_preferences_tab.xml", @@ -108,7 +108,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -302,21 +302,6 @@ chrome_java_sources = [ +@@ -306,21 +306,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelRepaddingTextView.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelTextViewInflater.java", @@ -130,15 +130,15 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabSheetContent.java", -@@ -356,7 +341,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripStacker.java", +@@ -361,7 +346,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabLoadTracker.java", "java/src/org/chromium/chrome/browser/compositor/resources/StaticResourcePreloads.java", + "java/src/org/chromium/chrome/browser/compositor/resources/SystemResourcePreloads.java", - "java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java", "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java", "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java", "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java", -@@ -382,34 +366,6 @@ chrome_java_sources = [ +@@ -387,34 +371,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUi.java", "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUtils.java", "java/src/org/chromium/chrome/browser/contextmenu/LensChipDelegate.java", @@ -524,16 +524,16 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi 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 -@@ -1729,7 +1729,7 @@ public class ChromeTabbedActivity extends ChromeActivity extends AsyncInitializationActivity @@ -564,7 +564,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv SnackbarManageable, SceneChangeObserver, StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker, MenuOrKeyboardActionController, CompositorViewHolder.Initializer, -@@ -324,8 +321,6 @@ public abstract class ChromeActivity +@@ -325,8 +322,6 @@ public abstract class ChromeActivity new ObservableSupplierImpl<>(); protected final UnownedUserDataSupplier mInsetObserverViewSupplier = new InsetObserverViewSupplier(); @@ -573,18 +573,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv private SnackbarManager mSnackbarManager; -@@ -515,7 +510,7 @@ public abstract class ChromeActivity +@@ -516,7 +511,7 @@ public abstract class ChromeActivity // clang-format off return new RootUiCoordinator(this, null, getShareDelegateSupplier(), - getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier, + getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkModelSupplier, - mTabBookmarkerSupplier, getContextualSearchManagerSupplier(), + mTabBookmarkerSupplier, null, getTabModelSelectorSupplier(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), () -> null, mBrowserControlsManagerSupplier.get(), -@@ -955,14 +950,6 @@ public abstract class ChromeActivity +@@ -951,14 +946,6 @@ public abstract class ChromeActivity mCompositorViewHolderSupplier.get().onNativeLibraryReady( - getWindowAndroid(), getTabContentManager()); + getWindowAndroid(), getTabContentManager(), getPrefService()); - // TODO(1107916): Move contextual search initialization to the RootUiCoordinator. - if (ContextualSearchFieldTrial.isEnabled()) { @@ -597,7 +597,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv TraceEvent.end("ChromeActivity:CompositorInitialization"); } -@@ -1449,11 +1436,6 @@ public abstract class ChromeActivity +@@ -1445,11 +1432,6 @@ public abstract class ChromeActivity @SuppressLint("NewApi") @Override protected final void onDestroy() { @@ -609,7 +609,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv if (mSnackbarManager != null) { SnackbarManagerProvider.detach(mSnackbarManager); } -@@ -1953,13 +1935,6 @@ public abstract class ChromeActivity +@@ -1949,13 +1931,6 @@ public abstract class ChromeActivity return mCompositorViewHolderSupplier.get(); } @@ -623,7 +623,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * Exits the fullscreen mode, if any. Does nothing if no fullscreen is present. * @return Whether the fullscreen mode is currently showing. -@@ -2008,15 +1983,6 @@ public abstract class ChromeActivity +@@ -2001,15 +1976,6 @@ public abstract class ChromeActivity } mActivityTabProvider.setLayoutStateProvider(layoutManager); @@ -639,7 +639,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv } /** -@@ -2276,18 +2242,6 @@ public abstract class ChromeActivity +@@ -2278,18 +2244,6 @@ public abstract class ChromeActivity return webContents != null ? SelectionPopupController.fromWebContents(webContents) : null; } @@ -696,7 +696,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base @@ -154,7 +154,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity profileSupplier, - @NonNull ObservableSupplier bookmarkBridgeSupplier, + @NonNull ObservableSupplier bookmarkModelSupplier, @NonNull ObservableSupplier tabBookmarkerSupplier, - @NonNull Supplier contextualSearchManagerSupplier, + Object ignored, @NonNull ObservableSupplier tabModelSelectorSupplier, @NonNull BrowserControlsManager browserControlsManager, @NonNull ActivityWindowAndroid windowAndroid, -@@ -152,7 +151,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -158,7 +157,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { // clang-format off super(activity, null, shareDelegateSupplier, tabProvider, - profileSupplier, bookmarkBridgeSupplier, tabBookmarkerSupplier, + profileSupplier, bookmarkModelSupplier, tabBookmarkerSupplier, - contextualSearchManagerSupplier, tabModelSelectorSupplier, + null, tabModelSelectorSupplier, new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), () -> null, browserControlsManager, windowAndroid, new DummyJankTracker(), -@@ -207,9 +206,6 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -213,9 +212,6 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { public void didFirstVisuallyNonEmptyPaint(Tab tab) { BaseCustomTabActivity baseActivity = (BaseCustomTabActivity) mActivity; assert baseActivity != null; @@ -744,7 +744,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -188,12 +188,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { +@@ -189,12 +189,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { mIntentDataProvider.getSession(), webContents); } @@ -889,15 +889,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java -@@ -7,7 +7,6 @@ package org.chromium.chrome.browser.tab; - import org.chromium.chrome.browser.SwipeRefreshHandler; +@@ -8,7 +8,6 @@ import org.chromium.chrome.browser.SwipeRefreshHandler; + import org.chromium.chrome.browser.accessibility.AccessibilityTabHelper; import org.chromium.chrome.browser.autofill_assistant.AutofillAssistantTabHelper; import org.chromium.chrome.browser.complex_tasks.TaskTabHelper; -import org.chromium.chrome.browser.contextualsearch.ContextualSearchTabHelper; import org.chromium.chrome.browser.crypto.CipherFactory; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.dom_distiller.TabDistillabilityProvider; -@@ -32,7 +31,6 @@ public final class TabHelpers { +@@ -33,7 +32,6 @@ public final class TabHelpers { TabUma.createForTab(tab); TabDistillabilityProvider.createForTab(tab); InterceptNavigationDelegateTabHelper.createForTab(tab); @@ -918,7 +918,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.feed.webfeed.WebFeedFollowIntroController; @@ -257,7 +256,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @NonNull ObservableSupplier profileSupplier, - @NonNull ObservableSupplier bookmarkBridgeSupplier, + @NonNull ObservableSupplier bookmarkModelSupplier, @NonNull ObservableSupplier tabBookmarkerSupplier, - @NonNull Supplier contextualSearchManagerSupplier, + Object ignored, @@ -928,7 +928,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab @@ -292,7 +291,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { boolean initializeUiWithIncognitoColors, @NonNull BackPressManager backPressManager) { super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider, - profileSupplier, bookmarkBridgeSupplier, tabBookmarkerSupplier, + profileSupplier, bookmarkModelSupplier, tabBookmarkerSupplier, - contextualSearchManagerSupplier, tabModelSelectorSupplier, startSurfaceSupplier, + null, tabModelSelectorSupplier, startSurfaceSupplier, tabSwitcherSupplier, intentMetadataOneshotSupplier, @@ -937,15 +937,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -54,7 +54,6 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; +@@ -55,7 +55,6 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.crash.ChromePureJavaExceptionReporter; import org.chromium.chrome.browser.directactions.DirectActionInitializer; - import org.chromium.chrome.browser.feature_engagement.TrackerFactory; -@@ -257,7 +256,6 @@ public class RootUiCoordinator + import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; +@@ -259,7 +258,6 @@ public class RootUiCoordinator private final ObservableSupplier mTabBookmarkerSupplier; private final OneshotSupplierImpl mAppMenuSupplier; private BottomSheetObserver mBottomSheetObserver; @@ -953,24 +953,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi protected final CallbackController mCallbackController; protected final BrowserControlsManager mBrowserControlsManager; private BrowserControlsStateProvider.Observer mBrowserControlsObserver; -@@ -362,7 +360,7 @@ public class RootUiCoordinator +@@ -364,7 +362,7 @@ public class RootUiCoordinator @NonNull ObservableSupplier profileSupplier, - @NonNull ObservableSupplier bookmarkBridgeSupplier, + @NonNull ObservableSupplier bookmarkModelSupplier, @NonNull ObservableSupplier tabBookmarkerSupplier, - @NonNull Supplier contextualSearchManagerSupplier, + Object ignored, @NonNull ObservableSupplier tabModelSelectorSupplier, @NonNull OneshotSupplier startSurfaceSupplier, @NonNull OneshotSupplier tabSwitcherSupplier, -@@ -455,7 +453,6 @@ public class RootUiCoordinator - mBookmarkBridgeSupplier = bookmarkBridgeSupplier; +@@ -457,7 +455,6 @@ public class RootUiCoordinator + mBookmarkModelSupplier = bookmarkModelSupplier; mTabBookmarkerSupplier = tabBookmarkerSupplier; mAppMenuSupplier = new OneshotSupplierImpl<>(); - mContextualSearchManagerSupplier = contextualSearchManagerSupplier; mActionModeControllerCallback = new ToolbarActionModeCallback(); mTabModelSelectorSupplier = tabModelSelectorSupplier; -@@ -1004,15 +1001,6 @@ public class RootUiCoordinator +@@ -1006,15 +1003,6 @@ public class RootUiCoordinator @Override public boolean canShowAppMenu() { @@ -986,7 +986,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi // Do not show the menu if we are in find in page view. if (mFindToolbarManager != null && mFindToolbarManager.isShowing() && !DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { -@@ -1229,10 +1217,6 @@ public class RootUiCoordinator +@@ -1243,10 +1231,6 @@ public class RootUiCoordinator public void onStartedShowing(int layoutType, boolean showToolbar) { if (layoutType != LayoutType.BROWSING && layoutType != LayoutType.SIMPLE_ANIMATION) { @@ -997,7 +997,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } if (layoutType == LayoutType.TAB_SWITCHER) { -@@ -1370,10 +1354,6 @@ public class RootUiCoordinator +@@ -1386,10 +1370,6 @@ public class RootUiCoordinator * cross-feature interaction, e.g. hide other features when this feature is shown. */ protected void onFindToolbarShown() { @@ -1008,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } /** -@@ -1517,9 +1497,6 @@ public class RootUiCoordinator +@@ -1547,9 +1527,6 @@ public class RootUiCoordinator case SheetState.FULL: if (!mOpened) { mOpened = true; @@ -1018,7 +1018,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } // On visible bottom sheet, hide page zoom dialog -@@ -1527,8 +1504,6 @@ public class RootUiCoordinator +@@ -1557,8 +1534,6 @@ public class RootUiCoordinator break; case SheetState.HIDDEN: mOpened = false; @@ -1030,7 +1030,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2083,7 +2083,6 @@ static_library("browser") { +@@ -2095,7 +2095,6 @@ static_library("browser") { "//components/content_settings/common:mojom", "//components/content_settings/core/browser", "//components/content_settings/core/common", @@ -1038,7 +1038,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/cookie_config", "//components/country_codes", "//components/crash/core/browser", -@@ -2555,8 +2554,6 @@ static_library("browser") { +@@ -2571,8 +2570,6 @@ static_library("browser") { "android/compositor/decoration_title.h", "android/compositor/layer/content_layer.cc", "android/compositor/layer/content_layer.h", @@ -1047,7 +1047,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/compositor/layer/layer.h", "android/compositor/layer/overlay_panel_layer.cc", "android/compositor/layer/overlay_panel_layer.h", -@@ -2577,8 +2574,6 @@ static_library("browser") { +@@ -2593,8 +2590,6 @@ static_library("browser") { "android/compositor/resources/resource_factory.cc", "android/compositor/resources/toolbar_resource.cc", "android/compositor/resources/toolbar_resource.h", @@ -1056,7 +1056,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/compositor/scene_layer/overscroll_scene_layer.cc", "android/compositor/scene_layer/overscroll_scene_layer.h", "android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc", -@@ -2601,16 +2596,6 @@ static_library("browser") { +@@ -2617,16 +2612,6 @@ static_library("browser") { "android/content/content_utils.cc", "android/context_menu/context_menu_native_delegate_impl.cc", "android/context_menu/context_menu_native_delegate_impl.h", @@ -1073,7 +1073,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/cookies/cookies_fetcher_util.cc", "android/customtabs/chrome_origin_verifier.cc", "android/customtabs/chrome_origin_verifier.h", -@@ -3225,8 +3210,6 @@ static_library("browser") { +@@ -3238,8 +3223,6 @@ static_library("browser") { "safe_browsing/android/safe_browsing_referring_app_bridge_android.h", "safe_browsing/android/safe_browsing_settings_launcher_android.cc", "safe_browsing/android/safe_browsing_settings_launcher_android.h", @@ -1085,7 +1085,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1902,26 +1902,6 @@ const FeatureEntry::FeatureVariation kRelatedSearchesAlternateUxVariations[] = { +@@ -1970,26 +1970,6 @@ const FeatureEntry::FeatureVariation kRelatedSearchesAlternateUxVariations[] = { nullptr}, }; @@ -1112,10 +1112,10 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #endif // BUILDFLAG(IS_ANDROID) const FeatureEntry::FeatureParam kResamplingInputEventsLSQEnabled[] = { -@@ -3611,34 +3591,6 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kEnableOskResizesVisualViewportName, - flag_descriptions::kEnableOskResizesVisualViewportDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kOSKResizesVisualViewport)}, +@@ -3712,34 +3692,6 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription, + kOsAndroid, + FEATURE_VALUE_TYPE(blink::features::kOSKResizesVisualViewportByDefault)}, - {"contextual-search-debug", flag_descriptions::kContextualSearchDebugName, - flag_descriptions::kContextualSearchDebugDescription, kOsAndroid, - FEATURE_VALUE_TYPE(kContextualSearchDebug)}, @@ -1153,7 +1153,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse @@ -224,7 +224,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kContextMenuSearchAndShopWithGoogleLens, &kContextMenuTranslateWithGoogleLens, - &kContextMenuPopupStyle, + &kContextMenuPopupForAllScreenSizes, - &kContextualSearchDebug, &kContextualSearchDelayedIntelligence, &kContextualSearchDisableOnlineDetection, @@ -1161,7 +1161,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -120,7 +120,6 @@ +@@ -121,7 +121,6 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/first_run/android/first_run_prefs.h" #include "chrome/browser/lens/android/lens_prefs.h" @@ -1169,7 +1169,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/download/default_download_dir_policy_handler.h" #include "chrome/browser/download/download_auto_open_policy_handler.h" -@@ -1828,10 +1827,7 @@ std::unique_ptr BuildHandlerList( +@@ -1854,10 +1853,7 @@ std::unique_ptr BuildHandlerList( std::make_unique(key::kURLBlocklist)); // Policies for all platforms - End @@ -1218,7 +1218,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro “Do Not Track” -@@ -4050,38 +4023,6 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

@@ -1271,7 +1271,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn -@@ -891,8 +891,8 @@ mojom("android_mojo_bindings") { +@@ -898,8 +898,8 @@ mojom("android_mojo_bindings") { # This Android unhandled-tap feature uses another mojo source, add it in. if (enable_unhandled_tap) { sources += [ "unhandled_tap_notifier/unhandled_tap_notifier.mojom" ] diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index a3586459..b35b30dd 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2353,16 +2353,6 @@ public abstract class ChromeActivity +@@ -2355,16 +2355,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); diff --git a/build/patches/Remove-http-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-http-referrals-in-cross-origin-navigation.patch index f6e41499..4d6a2f72 100644 --- a/build/patches/Remove-http-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-http-referrals-in-cross-origin-navigation.patch @@ -73,7 +73,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -446,6 +446,13 @@ void AddAdditionalRequestHeaders( +@@ -431,6 +431,13 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } diff --git a/build/patches/Remove-offline-measurement-background-task.patch b/build/patches/Remove-offline-measurement-background-task.patch index a0d80339..a0d0502d 100644 --- a/build/patches/Remove-offline-measurement-background-task.patch +++ b/build/patches/Remove-offline-measurement-background-task.patch @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni - deferredStartupHandler.addDeferredTask( - () -> OfflineMeasurementsBackgroundTask.clearPersistedDataFromPrefs()); deferredStartupHandler.addDeferredTask(() -> QueryTileUtils.isQueryTilesEnabledOnNTP()); - deferredStartupHandler.addDeferredTask( - () -> GlobalAppLocaleController.getInstance().recordOverrideLanguageMetrics()); + deferredStartupHandler.addDeferredTask(() -> { + GlobalAppLocaleController.getInstance().maybeSetupLocaleManager(); -- 2.25.1 diff --git a/build/patches/Remove-price-shopping-commerce-integrations.patch b/build/patches/Remove-price-shopping-commerce-integrations.patch index aee5e860..6dd5b9c2 100644 --- a/build/patches/Remove-price-shopping-commerce-integrations.patch +++ b/build/patches/Remove-price-shopping-commerce-integrations.patch @@ -4,7 +4,7 @@ Subject: Remove price/shopping/commerce integrations License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 24 --- + chrome/android/BUILD.gn | 23 --- chrome/android/chrome_java_sources.gni | 4 - chrome/android/features/tab_ui/BUILD.gn | 7 - .../res/layout/large_message_card_item.xml | 9 - @@ -26,16 +26,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AppMenuPropertiesDelegateImpl.java | 44 +---- .../browser/bookmarks/BookmarkBridge.java | 85 --------- .../bookmarks/BookmarkItemsAdapter.java | 23 --- - .../browser/bookmarks/BookmarkManager.java | 11 -- + .../browser/bookmarks/BookmarkManager.java | 14 -- .../BookmarkSaveFlowCoordinator.java | 37 +--- .../bookmarks/BookmarkSaveFlowMediator.java | 68 +------ .../browser/bookmarks/BookmarkUtils.java | 12 +- .../init/ProcessInitializationHandler.java | 5 - .../chrome/browser/tab/TabHelpers.java | 9 - .../tabbed_mode/TabbedRootUiCoordinator.java | 22 --- - .../ToolbarButtonInProductHelpController.java | 26 --- + .../ToolbarButtonInProductHelpController.java | 27 --- .../browser/toolbar/ToolbarManager.java | 33 ---- - .../chrome/browser/ui/RootUiCoordinator.java | 20 -- + .../chrome/browser/ui/RootUiCoordinator.java | 23 --- chrome/android/java_sources.gni | 8 - .../price_tracking/PriceTrackingFeatures.java | 2 +- .../price_tracking_notification_bridge.cc | 10 - @@ -43,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../CommerceSubscriptionsService.java | 36 +--- .../SubscriptionsManagerImpl.java | 26 +-- chrome/browser/persisted_state_db/BUILD.gn | 1 - - 39 files changed, 23 insertions(+), 975 deletions(-) + 39 files changed, 23 insertions(+), 981 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -59,34 +59,59 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//chrome/browser/password_manager/buildflags.gni") import("//chrome/browser/share/android/java_sources.gni") import("//chrome/chrome_paks.gni") -@@ -367,9 +363,6 @@ android_library("chrome_java") { - "//chrome/browser/browser_controls/android:java", - "//chrome/browser/commerce/android:java", - "//chrome/browser/commerce/merchant_viewer/android:java", -- "//chrome/browser/commerce/price_tracking/android:java", -- "//chrome/browser/commerce/price_tracking/proto:proto_java", -- "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/consent_auditor/android:java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/dependency_injection:java", -@@ -757,16 +750,6 @@ android_library("chrome_java") { - sources += share_java_sources - deps += share_java_deps +@@ -394,8 +390,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/browser_controls/android:java", + "//chrome/browser/commerce/android:java", + "//chrome/browser/commerce/merchant_viewer/android:java", +- "//chrome/browser/commerce/price_tracking/android:java", +- "//chrome/browser/commerce/price_tracking/proto:proto_java", + "//chrome/browser/commerce/subscriptions/android:subscriptions_java", + "//chrome/browser/consent_auditor/android:java", + "//chrome/browser/contextmenu:java", +@@ -784,16 +778,6 @@ if (current_toolchain == default_toolchain) { + sources += share_java_sources + deps += share_java_deps -- # TODO(crbug/1186003): Instead of adding source files, add it as a separate -- # dependency when circular deps is resolved. -- sources += price_tracking_java_sources -- deps += price_tracking_java_deps +- # TODO(crbug/1186003): Instead of adding source files, add it as a separate +- # dependency when circular deps is resolved. +- sources += price_tracking_java_sources +- deps += price_tracking_java_deps - -- # TODO(crbug/1210158): Instead of adding source files, add it as a separate -- # dependency when circular deps is resolved. -- sources += commerce_subscriptions_java_sources -- deps += commerce_subscriptions_java_deps +- # TODO(crbug/1210158): Instead of adding source files, add it as a separate +- # dependency when circular deps is resolved. +- sources += commerce_subscriptions_java_sources +- deps += commerce_subscriptions_java_deps - - if (enable_basic_printing) { - deps += [ "//printing:printing_java" ] - } -@@ -855,8 +838,6 @@ group("jni_headers") { + if (enable_basic_printing) { + deps += [ "//printing:printing_java" ] + } +@@ -997,8 +981,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/browser_controls/android:junit", + "//chrome/browser/commerce/android:java", + "//chrome/browser/commerce/merchant_viewer/android:junit", +- "//chrome/browser/commerce/price_tracking/android:java", +- "//chrome/browser/commerce/price_tracking/proto:proto_java", + "//chrome/browser/commerce/subscriptions/android:subscriptions_java", + "//chrome/browser/contextmenu:java", + "//chrome/browser/creator/android:java", +@@ -1522,7 +1504,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/commerce/android:javatests", + "//chrome/browser/commerce/merchant_viewer/android:java", + "//chrome/browser/commerce/merchant_viewer/android:javatests", +- "//chrome/browser/commerce/price_tracking/android:java", + "//chrome/browser/commerce/subscriptions/android:subscriptions_java", + "//chrome/browser/content_creation/notes/internal/android:java", + "//chrome/browser/contextmenu:java", +@@ -1801,8 +1782,6 @@ if (current_toolchain == default_toolchain) { + + deps += feed_test_deps + +- deps += commerce_subscriptions_java_test_deps +- + if (enable_basic_printing) { + deps += [ "//printing:printing_java" ] + } +@@ -4160,8 +4139,6 @@ group("jni_headers") { "//chrome/browser/android/browserservices/verification:jni_headers", "//chrome/browser/battery/android:jni_headers", "//chrome/browser/commerce/merchant_viewer/android:jni_headers", @@ -95,36 +120,10 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/contextmenu:jni_headers", "//chrome/browser/download/android:jni_headers", "//chrome/browser/enterprise/util:jni_headers", -@@ -1015,8 +996,6 @@ robolectric_binary("chrome_junit_tests") { - "//chrome/browser/browser_controls/android:junit", - "//chrome/browser/commerce/android:java", - "//chrome/browser/commerce/merchant_viewer/android:junit", -- "//chrome/browser/commerce/price_tracking/android:java", -- "//chrome/browser/commerce/price_tracking/proto:proto_java", - "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/contextmenu:java", - "//chrome/browser/dependency_injection:java", -@@ -1545,7 +1524,6 @@ android_library("chrome_test_java") { - "//chrome/browser/commerce/android:javatests", - "//chrome/browser/commerce/merchant_viewer/android:java", - "//chrome/browser/commerce/merchant_viewer/android:javatests", -- "//chrome/browser/commerce/price_tracking/android:java", - "//chrome/browser/commerce/subscriptions/android:subscriptions_java", - "//chrome/browser/content_creation/notes/internal/android:java", - "//chrome/browser/contextmenu:java", -@@ -1821,8 +1799,6 @@ android_library("chrome_test_java") { - - deps += feed_test_deps - -- deps += commerce_subscriptions_java_test_deps -- - if (enable_basic_printing) { - deps += [ "//printing:printing_java" ] - } diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -195,10 +195,6 @@ chrome_java_sources = [ +@@ -199,10 +199,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java", "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java", "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java", @@ -138,7 +137,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -108,11 +108,6 @@ android_library("java") { +@@ -110,11 +110,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewUtils.java", "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageService.java", "java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java", @@ -150,7 +149,7 @@ diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/t "java/src/org/chromium/chrome/browser/tasks/tab_management/SelectableTabGridView.java", "java/src/org/chromium/chrome/browser/tasks/tab_management/StoreHoursCardView.java", "java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java", -@@ -190,7 +185,6 @@ android_library("java") { +@@ -194,7 +189,6 @@ android_library("java") { "//chrome/browser/android/lifecycle:java", "//chrome/browser/back_press/android:java", "//chrome/browser/browser_controls/android:java", @@ -158,7 +157,7 @@ diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/t "//chrome/browser/endpoint_fetcher:java", "//chrome/browser/feature_engagement:java", "//chrome/browser/feed/android:java", -@@ -272,7 +266,6 @@ android_library("unit_device_javatests") { +@@ -276,7 +270,6 @@ android_library("unit_device_javatests") { "//base/test:test_support_java", "//chrome/android/features/tab_ui:java", "//chrome/android/features/tab_ui:tab_suggestions_java", @@ -188,10 +187,10 @@ diff --git a/chrome/android/features/tab_ui/java/res/layout/large_message_card_i diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml --- a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml +++ b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml -@@ -54,14 +54,6 @@ found in the LICENSE file. - android:src="@color/thumbnail_placeholder_on_primary_bg" - style="?attr/tabGridThumbnailStyle"/> - +@@ -62,14 +62,6 @@ found in the LICENSE file. + app:cornerRadiusTopEnd="@dimen/tab_grid_card_thumbnail_corner_radius_top" + app:cornerRadiusBottomStart="@dimen/tab_grid_card_thumbnail_corner_radius_bottom" + app:cornerRadiusBottomEnd="@dimen/tab_grid_card_thumbnail_corner_radius_bottom"/> - mShareDelegateSupplier; - /** {@see TabManagementDelegate#createCarouselTabSwitcher} */ -@@ -218,7 +207,7 @@ public class TabSwitcherCoordinator +@@ -235,7 +224,7 @@ public class TabSwitcherCoordinator new PropertyModel(TabListContainerProperties.ALL_KEYS); mMediator = new TabSwitcherMediator(activity, this, containerViewModel, - tabModelSelector, browserControls, container, tabContentManager, this, this, + tabModelSelector, browserControls, container, tabContentManager, this, - multiWindowModeStateDispatcher, mode); + multiWindowModeStateDispatcher, mode, incognitoReauthControllerSupplier); mTabSwitcherCustomViewManager = new TabSwitcherCustomViewManager(mMediator); -@@ -238,7 +227,7 @@ public class TabSwitcherCoordinator +@@ -255,7 +244,7 @@ public class TabSwitcherCoordinator long startTimeMs = SystemClock.uptimeMillis(); mTabListCoordinator = new TabListCoordinator(mode, activity, tabModelSelector, mMultiThumbnailCardProvider, titleProvider, true, mMediator, null, @@ -867,7 +866,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRootView, null); mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel, mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind); -@@ -336,21 +325,6 @@ public class TabSwitcherCoordinator +@@ -353,21 +342,6 @@ public class TabSwitcherCoordinator new LayoutViewBuilder(R.layout.large_message_card_item), LargeMessageCardViewBinder::bind); } @@ -889,7 +888,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } if (ChromeFeatureList.sInstantStart.isEnabled() -@@ -456,8 +430,6 @@ public class TabSwitcherCoordinator +@@ -481,8 +455,6 @@ public class TabSwitcherCoordinator mMultiThumbnailCardProvider.initWithNative(); mMediator.initWithNative(controller, mSnackbarManager); @@ -898,8 +897,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mIsInitialized = true; } -@@ -487,21 +459,6 @@ public class TabSwitcherCoordinator - tabContentManager, selectionEditorMode, mRootView, /*displayGroups=*/false); +@@ -554,21 +526,6 @@ public class TabSwitcherCoordinator + RecordUserAction.record("TabMultiSelectV2.OpenFromGrid"); } - private void setUpPriceTracking(Context context, ModalDialogManager modalDialogManager) { @@ -920,7 +919,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // TabSwitcher implementation. @Override public void setOnTabSelectingListener(OnTabSelectingListener listener) { -@@ -631,22 +588,10 @@ public class TabSwitcherCoordinator +@@ -698,22 +655,10 @@ public class TabSwitcherCoordinator public boolean resetWithTabs( @Nullable List tabs, boolean quickMode, boolean mruMode) { mMediator.registerFirstMeaningfulPaintRecorder(); @@ -943,7 +942,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser return showQuickly; } -@@ -683,38 +628,6 @@ public class TabSwitcherCoordinator +@@ -750,38 +695,6 @@ public class TabSwitcherCoordinator sAppendedMessagesForTesting = messages.size() > 0; } @@ -982,7 +981,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser private void appendMessagesTo(int index) { if (mMultiWindowModeStateDispatcher.isInMultiWindowMode()) return; sAppendedMessagesForTesting = false; -@@ -744,9 +657,6 @@ public class TabSwitcherCoordinator +@@ -811,9 +724,6 @@ public class TabSwitcherCoordinator mMessageCardProviderCoordinator.getNextMessageItemForType(messageType); if (nextMessage == null || !shouldAppendMessage(nextMessage.model)) return; if (messageType == MessageService.MessageType.PRICE_MESSAGE) { @@ -992,7 +991,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else { mTabListCoordinator.addSpecialListItemToEnd( TabProperties.UiType.MESSAGE, nextMessage.model); -@@ -796,8 +706,7 @@ public class TabSwitcherCoordinator +@@ -863,8 +773,7 @@ public class TabSwitcherCoordinator } private boolean shouldRegisterLargeMessageItemType() { @@ -1002,7 +1001,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -833,9 +742,6 @@ public class TabSwitcherCoordinator +@@ -900,9 +809,6 @@ public class TabSwitcherCoordinator if (mTabAttributeCache != null) { mTabAttributeCache.destroy(); } @@ -1015,15 +1014,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -46,7 +46,6 @@ import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; -import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; - import org.chromium.chrome.browser.tab.TabHidingType; -@@ -77,7 +76,6 @@ import java.util.List; + import org.chromium.chrome.browser.tab.TabSelectionType; +@@ -79,7 +78,6 @@ import java.util.List; */ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView.VisibilityListener, TabListMediator.GridCardOnClickListenerProvider, @@ -1031,7 +1030,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser TabSwitcherCustomViewManager.Delegate { private static final String TAG = "TabSwitcherMediator"; -@@ -125,7 +123,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -153,7 +151,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView private TabSelectionEditorCoordinator .TabSelectionEditorController mTabSelectionEditorController; private TabSwitcher.OnTabSelectingListener mOnTabSelectingListener; @@ -1039,7 +1038,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser private boolean mIsOnHomepage; /** -@@ -226,29 +223,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -260,29 +257,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView void restoreAllAppendedMessage(); } @@ -1069,15 +1068,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Basic constructor for the Mediator. * @param context The context to use for accessing {@link android.content.res.Resources}. -@@ -267,7 +241,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -303,7 +277,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView PropertyModel containerViewModel, TabModelSelector tabModelSelector, BrowserControlsStateProvider browserControlsStateProvider, ViewGroup containerView, TabContentManager tabContentManager, MessageItemsController messageItemsController, - PriceWelcomeMessageController priceWelcomeMessageController, - MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, @TabListMode int mode) { - mResetHandler = resetHandler; - mContainerViewModel = containerViewModel; -@@ -357,9 +330,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, @TabListMode int mode, + @Nullable OneshotSupplier + incognitoReauthControllerSupplier) { +@@ -400,9 +373,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView public void willCloseTab(Tab tab, boolean animate, boolean didCloseAlone) { if (mTabModelSelector.getCurrentModel().getCount() == 1) { messageItemsController.removeAllAppendedMessage(); @@ -1087,7 +1086,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } } -@@ -368,10 +338,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -411,10 +381,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView if (mTabModelSelector.getCurrentModel().getCount() == 1) { messageItemsController.restoreAllAppendedMessage(); } @@ -1098,7 +1097,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser notifyBackPressStateChangedInternal(); } -@@ -387,12 +353,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -430,12 +396,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView @Override public void tabClosureCommitted(Tab tab) { @@ -1111,7 +1110,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; -@@ -641,14 +601,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -694,14 +654,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView "MobileTabSwitched." + TabSwitcherCoordinator.COMPONENT_NAME); } } @@ -1126,7 +1125,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -997,10 +949,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -1058,10 +1010,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView mOnTabSelectingListener = listener; } @@ -1137,7 +1136,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // GridCardOnClickListenerProvider implementation. @Override @Nullable -@@ -1034,11 +982,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -1095,11 +1043,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView } } @@ -1152,9 +1151,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -84,9 +84,7 @@ import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator; +@@ -84,9 +84,7 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; + import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator; import org.chromium.chrome.browser.back_press.BackPressManager; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; import org.chromium.chrome.browser.bookmarks.TabBookmarker; @@ -1171,14 +1170,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.RequestDesktopUtils; import org.chromium.chrome.browser.tab.Tab; -@@ -2372,19 +2368,6 @@ public abstract class ChromeActivity +@@ -2374,19 +2370,6 @@ public abstract class ChromeActivity } if (id == R.id.disable_price_tracking_menu_id) { - // TODO(crbug.com/1268976): Extract this code into a one-liner. - List bookmarkIds = - PowerBookmarkUtils.getBookmarkIdsWithSharedClusterIdForTab( -- currentTab, mBookmarkBridgeSupplier.get()); +- currentTab, mBookmarkModelSupplier.get()); - SubscriptionsManager subscriptionsManager = null; - if (ShoppingFeatures.isShoppingListEnabled()) { - subscriptionsManager = new CommerceSubscriptionsServiceFactory() @@ -1186,7 +1185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv - .getSubscriptionsManager(); - } - PowerBookmarkUtils.setPriceTrackingEnabledWithSnackbars(subscriptionsManager, -- mBookmarkBridgeSupplier.get(), bookmarkIds, +- mBookmarkModelSupplier.get(), bookmarkIds, - /*enabled=*/false, mSnackbarManager, getResources()); RecordUserAction.record("MobileMenuDisablePriceTracking"); return true; @@ -1196,8 +1195,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java @@ -38,10 +38,7 @@ import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.banners.AppMenuVerbiage; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; + import org.chromium.chrome.browser.bookmarks.BookmarkModel; -import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; import org.chromium.chrome.browser.bookmarks.ReadingListFeatures; -import org.chromium.chrome.browser.commerce.ShoppingFeatures; @@ -1213,7 +1212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.read_later.ReadingListUtils; import org.chromium.chrome.browser.share.ShareHelper; -@@ -83,7 +79,6 @@ import org.chromium.components.commerce.core.ShoppingService; +@@ -84,7 +80,6 @@ import org.chromium.components.commerce.core.ShoppingService; import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.embedder_support.util.UrlUtilities; @@ -1221,10 +1220,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.components.webapk.lib.client.WebApkValidator; import org.chromium.components.webapps.AppBannerManager; import org.chromium.components.webapps.WebappsUtils; -@@ -584,9 +579,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - .getTabsWithNoOtherRelatedTabs() - .size() - > 1; +@@ -607,9 +602,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate + > 1; + } + - boolean isPriceTrackingVisible = isOverviewModeMenu - && PriceTrackingUtilities.shouldShowPriceTrackingMenu() - && !DeviceClassManager.enableAccessibilityLayout(mContext) && !isIncognito; @@ -1232,7 +1231,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App boolean isPriceTrackingEnabled = isPriceTrackingVisible; boolean hasItemBetweenDividers = false; -@@ -1171,43 +1164,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1205,43 +1198,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate */ protected void updatePriceTrackingMenuItemRow(@NonNull MenuItem startPriceTrackingMenuItem, @NonNull MenuItem stopPriceTrackingMenuItem, @Nullable Tab currentTab) { @@ -1253,7 +1252,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App - } - - PowerBookmarkMeta existingBookmarkMeta = PowerBookmarkUtils.getBookmarkBookmarkMetaForTab( -- mBookmarkBridgeSupplier.get(), currentTab); +- mBookmarkModelSupplier.get(), currentTab); - if (existingBookmarkMeta != null && !existingBookmarkMeta.hasShoppingSpecifics()) { startPriceTrackingMenuItem.setVisible(false); stopPriceTrackingMenuItem.setVisible(false); @@ -1262,14 +1261,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App - - mIsTypeSpecificBookmarkItemRowPresent = true; - -- boolean editEnabled = mBookmarkBridgeSupplier.get().isEditBookmarksEnabled(); +- boolean editEnabled = mBookmarkModelSupplier.get().isEditBookmarksEnabled(); - startPriceTrackingMenuItem.setEnabled(editEnabled); - stopPriceTrackingMenuItem.setEnabled(editEnabled); - - boolean priceTrackingEnabled = false; - if (info != null) { - priceTrackingEnabled = PowerBookmarkUtils.isPriceTrackingEnabledForClusterId( -- info.productClusterId, mBookmarkBridgeSupplier.get()); +- info.productClusterId, mBookmarkModelSupplier.get()); - } - startPriceTrackingMenuItem.setVisible(!priceTrackingEnabled); - stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled); @@ -1292,8 +1291,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm -import org.chromium.chrome.browser.subscriptions.SubscriptionsManager; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkType; -@@ -99,8 +95,6 @@ public class BookmarkBridge { + import org.chromium.components.bookmarks.BookmarkItem; +@@ -98,8 +94,6 @@ class BookmarkBridge { new ArrayList(); private final ObserverList mObservers = new ObserverList(); @@ -1302,7 +1301,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Interface for callback object for fetching bookmarks and folder hierarchy. -@@ -354,26 +348,6 @@ public class BookmarkBridge { +@@ -143,26 +137,6 @@ class BookmarkBridge { mNativeBookmarkBridge = BookmarkBridgeJni.get().init(BookmarkBridge.this, profile); mIsDoingExtensiveChanges = BookmarkBridgeJni.get().isDoingExtensiveChanges( mNativeBookmarkBridge, BookmarkBridge.this); @@ -1329,7 +1328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } /** -@@ -388,10 +362,6 @@ public class BookmarkBridge { +@@ -177,10 +151,6 @@ class BookmarkBridge { mDelayedBookmarkCallbacks.clear(); } mObservers.clear(); @@ -1340,7 +1339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } /** Returns whether the bridge has been destroyed. */ -@@ -695,61 +665,6 @@ public class BookmarkBridge { +@@ -484,61 +454,6 @@ class BookmarkBridge { return result; } @@ -1405,8 +1404,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -24,12 +24,9 @@ import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver; +@@ -22,12 +22,9 @@ import org.chromium.base.metrics.RecordUserAction; + import org.chromium.chrome.R; import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType; import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location; -import org.chromium.chrome.browser.commerce.ShoppingFeatures; @@ -1417,8 +1416,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm -import org.chromium.chrome.browser.subscriptions.SubscriptionsManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkType; -@@ -66,13 +63,10 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter { +- mBookmarkModelSupplier.addObserver((bridge) -> { - PowerBookmarkUtils.validateBookmarkedCommerceSubscriptions(bridge, - new CommerceSubscriptionsServiceFactory() - .getForLastUsedProfile() @@ -2019,25 +2022,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi new OneShotCallback<>(mProfileSupplier, this::initHistoryClustersCoordinator); if (DeviceFormFactor.isWindowOnTablet(mWindowAndroid) -@@ -1095,9 +1080,6 @@ public class RootUiCoordinator +@@ -1097,12 +1082,6 @@ public class RootUiCoordinator mIdentityDiscController = new IdentityDiscController( mActivity, mActivityLifecycleDispatcher, mProfileSupplier); - PriceTrackingButtonController priceTrackingButtonController = -- new PriceTrackingButtonController( -- mActivity, mActivityTabProvider, mTabBookmarkerSupplier); - ShareButtonController shareButtonController = new ShareButtonController(mActivity, - AppCompatResources.getDrawable( - mActivity, R.drawable.ic_toolbar_share_offset_24dp), -@@ -1143,8 +1125,6 @@ public class RootUiCoordinator +- new PriceTrackingButtonController(mActivityTabProvider, +- mModalDialogManagerSupplier.get(), getBottomSheetController(), +- AppCompatResources.getDrawable( +- mActivity, R.drawable.price_tracking_disabled), +- mTabBookmarkerSupplier); + ReaderModeToolbarButtonController readerModeToolbarButtonController = + new ReaderModeToolbarButtonController(mActivityTabProvider, + mModalDialogManagerSupplier.get(), +@@ -1153,8 +1132,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.SHARE, shareButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.VOICE, voiceToolbarButtonController); - adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController); + adaptiveToolbarButtonController.addButtonVariant( + AdaptiveToolbarButtonVariant.READER_MODE, readerModeToolbarButtonController); mContextualPageActionController = new ContextualPageActionController(mProfileSupplier, - mActivityTabProvider, mActivityLifecycleDispatcher, mActivity.getResources(), - adaptiveToolbarButtonController); diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index 2f24c9b5..8e1ee823 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc b/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc --- a/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc +++ b/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc -@@ -15,17 +15,20 @@ +@@ -12,17 +12,20 @@ #include "components/segmentation_platform/public/segmentation_platform_service.h" void ChromeBrowserMainExtraPartsSegmentationPlatform::PreCreateThreads() { @@ -34,7 +34,7 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part if (!profile || profile->IsOffTheRecord()) return; -@@ -46,5 +49,6 @@ void ChromeBrowserMainExtraPartsSegmentationPlatform::PostProfileInit( +@@ -34,5 +37,6 @@ void ChromeBrowserMainExtraPartsSegmentationPlatform::PostProfileInit( } void ChromeBrowserMainExtraPartsSegmentationPlatform::PostMainMessageLoopRun() { diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch index 1e723733..d79ffa11 100644 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ b/build/patches/Remove-signin-and-sync-integrations.patch @@ -19,15 +19,15 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 20 -- - chrome/android/chrome_java_sources.gni | 30 --- + chrome/android/BUILD.gn | 19 -- + chrome/android/chrome_java_sources.gni | 29 --- .../features/autofill_assistant/BUILD.gn | 1 - .../AssistantAccessTokenUtilChrome.java | 8 - .../AssistantProfileImageUtilChrome.java | 21 +- .../AssistantStaticDependenciesChrome.java | 6 +- chrome/android/features/tab_ui/BUILD.gn | 1 - .../TabSuggestionsServerFetcher.java | 9 +- - .../browser/feed/FeedSurfaceCoordinator.java | 10 +- + .../browser/feed/FeedSurfaceCoordinator.java | 9 +- .../browser/feed/FeedSurfaceMediator.java | 77 +----- chrome/android/java/AndroidManifest.xml | 19 -- .../res/xml/google_services_preferences.xml | 5 - @@ -37,15 +37,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../org/chromium/chrome/browser/AppHooks.java | 34 --- .../chrome/browser/ChromeBackupAgentImpl.java | 9 +- .../chrome/browser/ChromeBackupWatcher.java | 10 - - .../chrome/browser/ChromeTabbedActivity.java | 15 -- + .../chrome/browser/ChromeTabbedActivity.java | 9 - .../chrome/browser/app/ChromeActivity.java | 76 ------ .../AutofillAssistantPreferenceFragment.java | 17 +- .../bookmarks/BookmarkItemsAdapter.java | 56 +---- .../bookmarks/BookmarkPromoHeader.java | 230 +----------------- - .../ClearBrowsingDataFragment.java | 77 +----- + .../ClearBrowsingDataFragment.java | 64 +---- .../ClearBrowsingDataFragmentBasic.java | 27 +- .../contacts_picker/ChromePickerAdapter.java | 67 +---- - .../browser/customtabs/CustomTabActivity.java | 3 - + .../browser/customtabs/CustomTabActivity.java | 6 - .../firstrun/FirstRunActivityBase.java | 1 - .../firstrun/LightweightFirstRunActivity.java | 4 +- ...FirstRunFragmentWithEnterpriseSupport.java | 6 - @@ -68,8 +68,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../share/crow/CrowButtonDelegateImpl.java | 5 +- .../survey/ChromeSurveyController.java | 6 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 19 -- - .../browser/tasks/ReturnToChromeUtil.java | 9 +- - chrome/browser/BUILD.gn | 11 - + .../browser/tasks/ReturnToChromeUtil.java | 4 - + chrome/browser/BUILD.gn | 9 - ...mobile_identity_consistency_field_trial.cc | 15 +- .../price_tracking/PriceTrackingFeatures.java | 9 +- .../commerce/subscriptions/android/BUILD.gn | 1 - @@ -120,112 +120,106 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ProfileOAuth2TokenServiceDelegate.java | 52 ---- .../net/HttpNegotiateAuthenticator.java | 88 +------ .../chromoting/base/OAuthTokenFetcher.java | 2 - - 101 files changed, 92 insertions(+), 2563 deletions(-) + 101 files changed, 91 insertions(+), 2538 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -238,14 +238,12 @@ android_resources("chrome_app_java_resources") { - "//chrome/browser/password_check/android:java_resources", - "//chrome/browser/password_manager/android:java_resources", - "//chrome/browser/search_resumption:java_resources", -- "//chrome/browser/signin/services/android:java_resources", - "//chrome/browser/tab:java_resources", - "//chrome/browser/ui/android/appmenu:java_resources", - "//chrome/browser/ui/android/favicon:java_resources", - "//chrome/browser/ui/android/management:java_resources", - "//chrome/browser/ui/android/omnibox:java_resources", - "//chrome/browser/ui/android/quickactionsearchwidget:java_resources", -- "//chrome/browser/ui/android/signin:java_resources", - "//chrome/browser/ui/android/strings:ui_strings_grd", - "//chrome/browser/ui/android/theme:java_resources", - "//chrome/browser/ui/android/toolbar:java_resources", -@@ -439,8 +437,6 @@ android_library("chrome_java") { - "//chrome/browser/settings:java", - "//chrome/browser/share:java", - "//chrome/browser/share/android:java_resources", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tab_group:java", - "//chrome/browser/tabmodel:factory_java", -@@ -464,7 +460,6 @@ android_library("chrome_java") { - "//chrome/browser/ui/android/page_info:java", - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/messages/android:java", -@@ -1081,9 +1076,6 @@ robolectric_binary("chrome_junit_tests") { - "//chrome/browser/search_resumption:junit", - "//chrome/browser/segmentation_platform:factory_java", - "//chrome/browser/share:java", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/signin/services/android:junit", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//chrome/browser/tab:junit", - "//chrome/browser/tab_group:java", -@@ -1115,8 +1107,6 @@ robolectric_binary("chrome_junit_tests") { - "//chrome/browser/ui/android/omnibox:junit", - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", -- "//chrome/browser/ui/android/signin:junit", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/android/toolbar:junit", -@@ -1631,9 +1621,6 @@ android_library("chrome_test_java") { - "//chrome/browser/settings:test_support_java", - "//chrome/browser/share:java", - "//chrome/browser/share/android:java_resources", -- "//chrome/browser/signin/services/android:java", -- "//chrome/browser/sync/android:java", -- "//chrome/browser/sync/test/android:test_support_java", - "//chrome/browser/tab:critical_persisted_tab_data_flatbuffer_java", - "//chrome/browser/tab:critical_persisted_tab_data_proto_java", - "//chrome/browser/tab:java", -@@ -1659,8 +1646,6 @@ android_library("chrome_test_java") { - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/quickactionsearchwidget:javatests", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", -- "//chrome/browser/ui/android/signin:javatests", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/messages/android:java", -@@ -2609,7 +2594,6 @@ android_library("browser_java_test_support") { - "//chrome/browser/download/android:java", - "//chrome/browser/prefetch/android:java", - "//chrome/browser/profiles/android:java", -- "//chrome/browser/sync/android:java", - "//chrome/browser/tab:java", - "//components/offline_items_collection/core:core_java", - "//components/sync/protocol:protocol_java", -@@ -3296,13 +3280,11 @@ chrome_test_apk_tmpl("chrome_public_unit_test_apk") { - "//chrome/browser/optimization_guide/android:unit_device_javatests", - "//chrome/browser/partnercustomizations:unit_device_javatests", - "//chrome/browser/password_edit_dialog/android:unit_device_javatests", -- "//chrome/browser/signin/services/android:unit_device_javatests", - "//chrome/browser/thumbnail/generator:unit_device_javatests", - "//chrome/browser/ui/android/appmenu/internal:unit_device_javatests", - "//chrome/browser/ui/android/night_mode:unit_device_javatests", - "//chrome/browser/ui/android/omnibox:unit_device_javatests", - "//chrome/browser/ui/android/searchactivityutils:unit_device_javatests", -- "//chrome/browser/ui/android/signin:unit_device_javatests", - "//chrome/browser/ui/messages/android:unit_device_javatests", - "//chrome/browser/user_education:unit_device_javatests", - "//chrome/browser/video_tutorials/internal:unit_device_javatests", -@@ -4179,7 +4161,6 @@ generate_jni("chrome_jni_headers") { - "java/src/org/chromium/chrome/browser/infobar/SafetyTipInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/SavePasswordInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java", -- "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java", - "java/src/org/chromium/chrome/browser/init/NativeStartupBridge.java", -@@ -4257,7 +4238,6 @@ generate_jni("chrome_jni_headers") { +@@ -265,14 +265,12 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/password_check/android:java_resources", + "//chrome/browser/password_manager/android:java_resources", + "//chrome/browser/search_resumption:java_resources", +- "//chrome/browser/signin/services/android:java_resources", + "//chrome/browser/tab:java_resources", + "//chrome/browser/ui/android/appmenu:java_resources", + "//chrome/browser/ui/android/favicon:java_resources", + "//chrome/browser/ui/android/management:java_resources", + "//chrome/browser/ui/android/omnibox:java_resources", + "//chrome/browser/ui/android/quickactionsearchwidget:java_resources", +- "//chrome/browser/ui/android/signin:java_resources", + "//chrome/browser/ui/android/strings:ui_strings_grd", + "//chrome/browser/ui/android/theme:java_resources", + "//chrome/browser/ui/android/toolbar:java_resources", +@@ -466,8 +464,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/settings:java", + "//chrome/browser/share:java", + "//chrome/browser/share/android:java_resources", +- "//chrome/browser/signin/services/android:java", +- "//chrome/browser/sync/android:java", + "//chrome/browser/tab:java", + "//chrome/browser/tab_group:java", + "//chrome/browser/tabmodel:factory_java", +@@ -491,7 +487,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/ui/android/page_info:java", + "//chrome/browser/ui/android/quickactionsearchwidget:java", + "//chrome/browser/ui/android/searchactivityutils:java", +- "//chrome/browser/ui/android/signin:java", + "//chrome/browser/ui/android/theme:java", + "//chrome/browser/ui/android/toolbar:java", + "//chrome/browser/ui/messages/android:java", +@@ -1065,9 +1060,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/search_resumption:junit", + "//chrome/browser/segmentation_platform:factory_java", + "//chrome/browser/share:java", +- "//chrome/browser/signin/services/android:java", +- "//chrome/browser/signin/services/android:junit", +- "//chrome/browser/sync/android:java", + "//chrome/browser/tab:java", + "//chrome/browser/tab:junit", + "//chrome/browser/tab_group:java", +@@ -1099,8 +1091,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/ui/android/omnibox:junit", + "//chrome/browser/ui/android/quickactionsearchwidget:java", + "//chrome/browser/ui/android/searchactivityutils:java", +- "//chrome/browser/ui/android/signin:java", +- "//chrome/browser/ui/android/signin:junit", + "//chrome/browser/ui/android/theme:java", + "//chrome/browser/ui/android/toolbar:java", + "//chrome/browser/ui/android/toolbar:junit", +@@ -1608,11 +1598,8 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/settings:test_support_java", + "//chrome/browser/share:java", + "//chrome/browser/share/android:java_resources", +- "//chrome/browser/signin/services/android:java", + "//chrome/browser/supervised_user:javatests", + "//chrome/browser/supervised_user:test_support_java", +- "//chrome/browser/sync/android:java", +- "//chrome/browser/sync/test/android:test_support_java", + "//chrome/browser/tab:critical_persisted_tab_data_flatbuffer_java", + "//chrome/browser/tab:critical_persisted_tab_data_proto_java", + "//chrome/browser/tab:java", +@@ -1638,8 +1625,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/ui/android/quickactionsearchwidget:java", + "//chrome/browser/ui/android/quickactionsearchwidget:javatests", + "//chrome/browser/ui/android/searchactivityutils:java", +- "//chrome/browser/ui/android/signin:java", +- "//chrome/browser/ui/android/signin:javatests", + "//chrome/browser/ui/android/theme:java", + "//chrome/browser/ui/android/toolbar:java", + "//chrome/browser/ui/messages/android:java", +@@ -2451,7 +2436,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/download/android:java", + "//chrome/browser/prefetch/android:java", + "//chrome/browser/profiles/android:java", +- "//chrome/browser/sync/android:java", + "//chrome/browser/tab:java", + "//components/offline_items_collection/core:core_java", + "//components/sync/protocol:protocol_java", +@@ -3157,13 +3141,11 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/optimization_guide/android:unit_device_javatests", + "//chrome/browser/partnercustomizations:unit_device_javatests", + "//chrome/browser/password_edit_dialog/android:unit_device_javatests", +- "//chrome/browser/signin/services/android:unit_device_javatests", + "//chrome/browser/thumbnail/generator:unit_device_javatests", + "//chrome/browser/ui/android/appmenu/internal:unit_device_javatests", + "//chrome/browser/ui/android/night_mode:unit_device_javatests", + "//chrome/browser/ui/android/omnibox:unit_device_javatests", + "//chrome/browser/ui/android/searchactivityutils:unit_device_javatests", +- "//chrome/browser/ui/android/signin:unit_device_javatests", + "//chrome/browser/ui/messages/android:unit_device_javatests", + "//chrome/browser/user_education:unit_device_javatests", + "//chrome/browser/video_tutorials/internal:unit_device_javatests", +@@ -4138,7 +4120,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", "java/src/org/chromium/chrome/browser/signin/SigninBridge.java", @@ -236,7 +230,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -602,14 +602,11 @@ chrome_java_sources = [ +@@ -604,14 +604,11 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java", "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java", "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java", @@ -251,15 +245,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java", -@@ -700,7 +697,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java", - "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java", -- "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/TextViewEllipsizerSafe.java", - "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java", - "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java", -@@ -814,7 +810,6 @@ chrome_java_sources = [ +@@ -815,7 +812,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ntp/RevampedIncognitoDescriptionView.java", "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelperImpl.java", "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java", @@ -267,7 +253,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxContainerView.java", "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxCoordinator.java", "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java", -@@ -1018,14 +1013,6 @@ chrome_java_sources = [ +@@ -1023,14 +1019,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java", "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", @@ -282,7 +268,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java", "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java", "java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java", -@@ -1066,23 +1053,6 @@ chrome_java_sources = [ +@@ -1071,23 +1059,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java", "java/src/org/chromium/chrome/browser/survey/SurveyController.java", "java/src/org/chromium/chrome/browser/survey/SurveyHttpClientBridge.java", @@ -309,7 +295,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn --- a/chrome/android/features/autofill_assistant/BUILD.gn +++ b/chrome/android/features/autofill_assistant/BUILD.gn -@@ -141,7 +141,6 @@ android_library("test_java") { +@@ -146,7 +146,6 @@ android_library("test_java") { "//chrome/browser/password_manager/android:java", "//chrome/browser/preferences:java", "//chrome/browser/profiles/android:java", @@ -425,7 +411,7 @@ diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chro diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -201,7 +201,6 @@ android_library("java") { +@@ -205,7 +205,6 @@ android_library("java") { "//chrome/browser/profiles/android:java", "//chrome/browser/search_engines/android:java", "//chrome/browser/share:java", @@ -467,22 +453,21 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -@@ -733,13 +733,7 @@ public class FeedSurfaceCoordinator +@@ -734,12 +734,7 @@ public class FeedSurfaceCoordinator /** @return The {@link View} for this class. */ View getSigninPromoView() { - if (mSigninPromoView == null) { - LayoutInflater inflater = LayoutInflater.from(mRootView.getContext()); - mSigninPromoView = inflater.inflate( -- R.layout.personalized_signin_promo_view_modern_content_suggestions, mRootView, -- false); +- R.layout.sync_promo_view_content_suggestions, mRootView, false); - } - return mSigninPromoView; + return null; } /** -@@ -867,7 +861,7 @@ public class FeedSurfaceCoordinator +@@ -867,7 +862,7 @@ public class FeedSurfaceCoordinator @Override public boolean isSignedIn() { @@ -494,7 +479,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java -@@ -34,17 +34,12 @@ import org.chromium.chrome.browser.feed.sort_ui.FeedOptionsCoordinator; +@@ -36,17 +36,12 @@ import org.chromium.chrome.browser.feed.v2.ContentOrder; import org.chromium.chrome.browser.feed.v2.FeedUserActionType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; @@ -511,8 +496,8 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ -import org.chromium.chrome.browser.ui.signin.SyncPromoController; import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger; import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger.StreamType; - import org.chromium.components.browser_ui.widget.listmenu.ListMenu; -@@ -132,7 +127,6 @@ public class FeedSurfaceMediator + import org.chromium.chrome.browser.xsurface.ListLayoutHelper; +@@ -119,7 +114,6 @@ public class FeedSurfaceMediator /** * The {@link SignInPromo} for the Feed. * TODO(huayinz): Update content and visibility through a ModelChangeProcessor. @@ -520,7 +505,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ private class FeedSignInPromo extends SignInPromo { FeedSignInPromo(SigninManager signinManager) { super(signinManager); -@@ -153,7 +147,7 @@ public class FeedSurfaceMediator +@@ -140,7 +134,7 @@ public class FeedSurfaceMediator maybeUpdateSignInPromo(); } @@ -529,16 +514,16 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ private void maybeUpdateSignInPromo() { // Only call #setupPromoViewFromCache() if SignInPromo is visible to avoid potentially // blocking the UI thread for several seconds if the accounts cache is not populated -@@ -171,7 +165,7 @@ public class FeedSurfaceMediator - super.onDismissPromo(); - mCoordinator.updateHeaderViews(false); +@@ -173,7 +167,7 @@ public class FeedSurfaceMediator + FeedSurfaceMediator.this.switchToStream(headerIndex); + } } - } + } */ @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public static void setPrefForTest( -@@ -187,7 +181,6 @@ public class FeedSurfaceMediator +@@ -192,7 +186,6 @@ public class FeedSurfaceMediator private final Context mContext; private final @Nullable SnapScrollHelper mSnapScrollHelper; private final PrefChangeRegistrar mPrefChangeRegistrar; @@ -546,7 +531,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ private final PropertyModel mSectionHeaderModel; private final FeedActionDelegate mActionDelegate; private final FeedOptionsCoordinator mOptionsCoordinator; -@@ -197,7 +190,6 @@ public class FeedSurfaceMediator +@@ -202,7 +195,6 @@ public class FeedSurfaceMediator private HasContentListener mHasContentListener; private ContentChangedListener mStreamContentChangedListener; private MemoryPressureCallback mMemoryPressureCallback; @@ -554,7 +539,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ private RecyclerViewAnimationFinishDetector mRecyclerViewAnimationFinishDetector = new RecyclerViewAnimationFinishDetector(); -@@ -239,8 +231,6 @@ public class FeedSurfaceMediator +@@ -244,8 +236,6 @@ public class FeedSurfaceMediator mHasContentListener = coordinator; mContext = context; mSnapScrollHelper = snapScrollHelper; @@ -562,8 +547,8 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ - Profile.getLastUsedRegularProfile()); mActionDelegate = actionDelegate; mOptionsCoordinator = optionsCoordinator; - -@@ -396,7 +386,6 @@ public class FeedSurfaceMediator + mOptionsCoordinator.setOptionsListener(this); +@@ -458,7 +448,6 @@ public class FeedSurfaceMediator mFeedMenuModel = buildMenuItems(); mCoordinator.initializeBubbleTriggering(); @@ -571,7 +556,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, mFeedMenuModel); mSectionHeaderModel.set( -@@ -437,8 +426,6 @@ public class FeedSurfaceMediator +@@ -499,8 +488,6 @@ public class FeedSurfaceMediator }; mCoordinator.getRecyclerView().addOnScrollListener(mStreamScrollListener); @@ -580,7 +565,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ mMemoryPressureCallback = pressure -> mCoordinator.getRecyclerView().getRecycledViewPool().clear(); MemoryPressureListener.addCallback(mMemoryPressureCallback); -@@ -627,27 +614,12 @@ public class FeedSurfaceMediator +@@ -707,27 +694,12 @@ public class FeedSurfaceMediator } } @@ -609,7 +594,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ } /** Clear any dependencies related to the {@link Stream}. */ -@@ -662,11 +634,6 @@ public class FeedSurfaceMediator +@@ -742,11 +714,6 @@ public class FeedSurfaceMediator MemoryPressureListener.removeCallback(mMemoryPressureCallback); mMemoryPressureCallback = null; @@ -621,7 +606,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ unbindStream(); for (Stream s : mTabToStreamMap.values()) { s.removeOnContentChangedListener(mStreamContentChangedListener); -@@ -677,7 +644,6 @@ public class FeedSurfaceMediator +@@ -757,7 +724,6 @@ public class FeedSurfaceMediator mPrefChangeRegistrar.removeObserver(Pref.ARTICLES_LIST_VISIBLE); TemplateUrlServiceFactory.get().removeObserver(this); @@ -629,7 +614,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).clear(); -@@ -748,9 +714,6 @@ public class FeedSurfaceMediator +@@ -828,9 +794,6 @@ public class FeedSurfaceMediator // Update toggleswitch item, which is last item in list. mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, buildMenuItems()); @@ -639,7 +624,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ if (suggestionsVisible) mCoordinator.getSurfaceLifecycleManager().show(); mStreamContentChanged = true; -@@ -828,35 +791,6 @@ public class FeedSurfaceMediator +@@ -908,35 +871,6 @@ public class FeedSurfaceMediator private ModelList buildMenuItems() { ModelList itemList = new ModelList(); @@ -675,7 +660,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ return itemList; } -@@ -1044,11 +978,6 @@ public class FeedSurfaceMediator +@@ -1122,11 +1056,6 @@ public class FeedSurfaceMediator updateSectionHeader(); } @@ -717,7 +702,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} {% endblock %} -@@ -532,15 +527,6 @@ by a child template that "extends" this file. +@@ -536,15 +531,6 @@ by a child template that "extends" this file. TODO(crbug.com/1093292): investigate why @android:style/Theme.NoDisplay can't be used here. --> @@ -733,7 +718,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% endif %} @@ -969,7 +954,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWat 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 -@@ -89,7 +89,6 @@ import org.chromium.chrome.browser.download.DownloadUtils; +@@ -90,7 +90,6 @@ import org.chromium.chrome.browser.download.DownloadUtils; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils; import org.chromium.chrome.browser.feed.FeedSurfaceTracker; @@ -977,44 +962,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; -@@ -103,7 +102,6 @@ import org.chromium.chrome.browser.incognito.IncognitoStartup; - import org.chromium.chrome.browser.incognito.IncognitoTabLauncher; - import org.chromium.chrome.browser.incognito.IncognitoTabbedSnapshotController; - import org.chromium.chrome.browser.incognito.IncognitoUtils; --import org.chromium.chrome.browser.infobar.SyncErrorInfoBar; - import org.chromium.chrome.browser.layouts.LayoutStateProvider; - import org.chromium.chrome.browser.layouts.LayoutType; - import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -141,8 +139,6 @@ import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl; +@@ -141,7 +140,6 @@ import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl; import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge; import org.chromium.chrome.browser.suggestions.SuggestionsMetrics; import org.chromium.chrome.browser.survey.ChromeSurveyController; -import org.chromium.chrome.browser.sync.ui.SyncErrorMessage; --import org.chromium.chrome.browser.sync.ui.SyncErrorPromptUtils; import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabAssociatedApp; -@@ -691,9 +687,6 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -318,9 +314,6 @@ public abstract class ChromeActivity private boolean mRemoveWindowBackgroundDone; protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler; @@ -1057,7 +1029,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv // The FullscreenVideoPictureInPictureController is initialized lazily https://crbug.com/729738. private FullscreenVideoPictureInPictureController mFullscreenVideoPictureInPictureController; -@@ -1065,61 +1058,6 @@ public abstract class ChromeActivity +@@ -1061,61 +1054,6 @@ public abstract class ChromeActivity return StatusBarColorController.UNDEFINED_STATUS_BAR_COLOR; } @@ -1119,7 +1091,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv @Override public void onResumeWithNative() { // TODO(b/182286787): Clean-up once fixed session resume order is verified. -@@ -1254,14 +1192,6 @@ public abstract class ChromeActivity +@@ -1250,14 +1188,6 @@ public abstract class ChromeActivity if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) { if (mGSAAccountChangeListener != null) mGSAAccountChangeListener.disconnect(); } @@ -1134,7 +1106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv super.onStopWithNative(); } -@@ -1354,11 +1284,6 @@ public abstract class ChromeActivity +@@ -1350,11 +1280,6 @@ public abstract class ChromeActivity .recordUserFontPrefOnStartup(); }); @@ -1146,7 +1118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv // GSA connection is not needed on low-end devices because Icing is disabled. if (!SysUtils.isLowEndDevice()) { if (isActivityFinishingOrDestroyed()) return; -@@ -1373,7 +1298,6 @@ public abstract class ChromeActivity +@@ -1369,7 +1294,6 @@ public abstract class ChromeActivity GSAAccountChangeListener.create(AppHooks.get().createGsaHelper()); } mGSAAccountChangeListener.connect(); @@ -1157,16 +1129,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java -@@ -18,8 +18,6 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -20,8 +20,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; -import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge; -import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.components.autofill_assistant.AssistantFeatures; - import org.chromium.components.autofill_assistant.AutofillAssistantPreferencesUtil; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; -@@ -53,7 +51,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa + import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; +@@ -64,7 +62,6 @@ public class AutofillAssistantPreferenceFragment private ChromeSwitchPreference mAutofillAssistantPreference; private ChromeSwitchPreference mProactiveHelpPreference; private ChromeSwitchPreference mAssistantVoiceSearchEnabledPref; @@ -1174,7 +1146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assist @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -@@ -89,15 +86,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa +@@ -94,15 +91,6 @@ public class AutofillAssistantPreferenceFragment mProactiveHelpPreference.setVisible(false); } @@ -1190,7 +1162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assist PreferenceCategory assistantVoiceSearchCategory = findPreference(PREF_ASSISTANT_VOICE_SEARCH_CATEGORY); mAssistantVoiceSearchEnabledPref = -@@ -146,9 +134,7 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa +@@ -178,9 +166,7 @@ public class AutofillAssistantPreferenceFragment boolean assistant_switch_on_or_missing = !mAutofillAssistantPreference.isVisible() || autofill_assistant_enabled; @@ -1200,8 +1172,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assist + boolean url_keyed_anonymized_data_collection_enabled = false; boolean proactive_help_on = - AutofillAssistantPreferencesUtil.getProactiveHelpPreference(true); -@@ -164,7 +150,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa + mPrefService.getBoolean(Pref.AUTOFILL_ASSISTANT_TRIGGER_SCRIPTS_ENABLED); +@@ -196,7 +182,6 @@ public class AutofillAssistantPreferenceFragment } mProactiveHelpPreference.setEnabled(proactive_toggle_enabled); mProactiveHelpPreference.setChecked(proactive_toggle_enabled && proactive_help_on); @@ -1212,7 +1184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assist diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -30,10 +30,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -28,10 +28,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory; import org.chromium.chrome.browser.subscriptions.SubscriptionsManager; @@ -1221,9 +1193,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm -import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView; -import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkType; - import org.chromium.components.browser_ui.util.GlobalDiscardableReferencePool; -@@ -54,7 +51,7 @@ import java.util.List; +@@ -53,7 +50,7 @@ import java.util.List; * BaseAdapter for {@link RecyclerView}. It manages bookmarks to list there. */ public class BookmarkItemsAdapter extends DragReorderableListAdapter @@ -1232,7 +1204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500; private static final String EMPTY_QUERY = null; -@@ -67,10 +64,8 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter(); -@@ -377,8 +359,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter { +- mSigninManager.runAfterOperationInProgress(() -> { - // In case supervised users reach this flow, remove the preference and guard against - // signing out. -- if (!signinManager.isSignOutAllowed()) { -- deleteSignOutOfChromeTextIfExists(); +- if (!mSigninManager.isSignOutAllowed()) { +- updateSignOutOfChromeText(); - return; - } - final DialogFragment clearDataProgressDialog = new ClearDataProgressDialog(); -- signinManager.signOut(org.chromium.components.signin.metrics.SignoutReason -- .USER_CLICKED_SIGNOUT_FROM_CLEAR_BROWSING_DATA_PAGE, +- mSigninManager.signOut(org.chromium.components.signin.metrics.SignoutReason +- .USER_CLICKED_SIGNOUT_FROM_CLEAR_BROWSING_DATA_PAGE, - new SigninManager.SignOutCallback() { - @Override - public void preWipeData() { @@ -1734,10 +1682,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C - } - }, - forceWipeUserData); -- // TODO(https://crbug.com/1334918): Observe SignInStateObserver and move this inside -- // onSignOutAllowedChanged(). -- deleteSignOutOfChromeTextIfExists(); - }); +- } +- +- /** {@link SigninManager.SignInStateObserver} implementation. */ +- @Override +- public void onSignOutAllowedChanged() { +- updateSignOutOfChromeText(); - } } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java @@ -1935,7 +1886,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contacts_picker diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvid +@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvid import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTabActivityComponent; import org.chromium.chrome.browser.customtabs.features.CustomTabNavigationBarController; import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; @@ -1943,11 +1894,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.flags.AllCachedFieldTrialParameters; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.fonts.FontPreloader; -@@ -150,8 +149,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { +@@ -151,11 +150,6 @@ public class CustomTabActivity extends BaseCustomTabActivity { @Override public void finishNativeInitialization() { -- if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this); +- if (!mIntentDataProvider.isInfoPage()) { +- FirstRunSignInProcessor.openSyncSettingsIfScheduled(this); +- BackupSigninProcessor.start(this); +- } - mConnection.showSignInToastIfNecessary(mSession, getIntent()); @@ -2311,7 +2265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -15,21 +15,11 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager; +@@ -14,21 +14,11 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; import org.chromium.chrome.browser.profiles.Profile; @@ -2333,7 +2287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import org.chromium.components.signin.AccountsChangeObserver; import org.chromium.components.signin.identitymanager.ConsentLevel; import org.chromium.components.signin.metrics.SigninAccessPoint; -@@ -42,8 +32,7 @@ import java.util.Map; +@@ -41,8 +31,7 @@ import java.util.Map; /** * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter. */ @@ -2343,7 +2297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM /** * Implement this to receive updates when the page contents change. */ -@@ -64,21 +53,15 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -63,21 +52,15 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, private final Runnable mShowHistoryManager; private TabModel mTabModel; @@ -2365,7 +2319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM /** * Maps Session IDs to whether that entry was restored split by entry type. These are used to * record historgrams on {@link #destroy()} to measure restore ratio. Cached Session IDs are -@@ -109,12 +92,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -108,12 +91,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null ? sRecentlyClosedTabManagerForTests : new RecentlyClosedBridge(profile, tabModelSelector); @@ -2378,7 +2332,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mRecentlyClosedTabManager.setEntriesUpdatedRunnable(this::updateRecentlyClosedEntries); updateRecentlyClosedEntries(); -@@ -123,12 +100,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -122,12 +99,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, updateForeignSessions(); mForeignSessionHelper.triggerSessionSync(); @@ -2391,7 +2345,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM SessionsInvalidationManager.get(mProfile).onRecentTabsPageOpened(); } -@@ -166,14 +137,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -165,14 +136,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, recordEntries("Group", mGroupSessionIdsRestored); recordEntries("Bulk", mBulkSessionIdsRestored); @@ -2406,7 +2360,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mFaviconHelper.destroy(); mFaviconHelper = null; -@@ -406,7 +369,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -398,7 +361,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, */ public void setPromoCollapsed(boolean isCollapsed) { if (mIsDestroyed) return; @@ -2414,7 +2368,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM } /** -@@ -418,80 +380,12 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -410,80 +372,12 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, return mPrefs.getSyncPromoCollapsed(); } @@ -2495,7 +2449,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM private void onUpdateDone() { if (mUpdatedCallback != null) { mUpdatedCallback.onUpdated(); -@@ -499,7 +393,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -491,7 +385,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, } private void update() { @@ -2506,7 +2460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java -@@ -31,11 +31,9 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -30,11 +30,9 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionWindow; @@ -2518,14 +2472,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsR import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.RoundedIconGenerator; import org.chromium.components.embedder_support.util.UrlUtilities; -@@ -453,14 +451,7 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { +@@ -452,14 +450,7 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { @Override View getChildView( int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { - if (convertView == null) { - LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); -- convertView = layoutInflater.inflate( -- R.layout.personalized_signin_promo_view_recent_tabs, parent, false); +- convertView = +- layoutInflater.inflate(R.layout.sync_promo_view_recent_tabs, parent, false); - } - mRecentTabsManager.setUpSyncPromoView( - convertView.findViewById(R.id.signin_promo_view_container)); @@ -2534,7 +2488,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsR } } -@@ -476,9 +467,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { +@@ -475,9 +466,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { @Override View getChildView( int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { @@ -2544,7 +2498,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsR return convertView; } } -@@ -916,22 +904,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { +@@ -913,22 +901,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { addGroup(new ForeignSessionGroup(session)); } @@ -2860,10 +2814,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe package org.chromium.chrome.browser.settings; -import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.hasChosenToSyncPasswords; + import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.usesUnifiedPasswordManagerBranding; import static org.chromium.chrome.browser.password_manager.PasswordManagerHelper.usesUnifiedPasswordManagerUI; - import android.content.Context; -@@ -39,27 +38,14 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; +@@ -40,27 +39,14 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -2891,7 +2845,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.text.SpanApplier; -@@ -72,14 +58,10 @@ import java.util.Map; +@@ -73,14 +59,10 @@ import java.util.Map; * The main settings screen, shown when the user first opens Settings. */ public class MainSettings extends PreferenceFragmentCompat @@ -2907,7 +2861,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe public static final String PREF_SEARCH_ENGINE = "search_engine"; public static final String PREF_PASSWORDS = "passwords"; public static final String PREF_HOMEPAGE = "homepage"; -@@ -97,9 +79,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -98,9 +80,6 @@ public class MainSettings extends PreferenceFragmentCompat private final ManagedPreferenceDelegate mManagedPreferenceDelegate; private final Map mAllPreferences = new HashMap<>(); @@ -2917,7 +2871,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe private @Nullable PasswordCheck mPasswordCheck; private ObservableSupplier mModalDialogManagerSupplier; -@@ -137,34 +116,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -138,34 +117,6 @@ public class MainSettings extends PreferenceFragmentCompat if (getActivity().isFinishing() && mPasswordCheck != null) PasswordCheckFactory.destroy(); } @@ -2952,7 +2906,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe @Override public void onResume() { super.onResume(); -@@ -176,8 +127,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -177,8 +128,6 @@ public class MainSettings extends PreferenceFragmentCompat cachePreferences(); @@ -2961,7 +2915,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe updatePasswordsPreference(); if (usesUnifiedPasswordManagerUI()) { -@@ -232,9 +181,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -233,9 +182,6 @@ public class MainSettings extends PreferenceFragmentCompat Preference preference = getPreferenceScreen().getPreference(index); mAllPreferences.put(preference.getKey(), preference); } @@ -2971,7 +2925,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } private void setManagedPreferenceDelegateForPreference(String key) { -@@ -243,15 +189,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -244,15 +190,6 @@ public class MainSettings extends PreferenceFragmentCompat } private void updatePreferences() { @@ -2987,7 +2941,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe updateSearchEnginePreference(); updatePasswordsPreference(); -@@ -285,41 +222,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -286,41 +223,6 @@ public class MainSettings extends PreferenceFragmentCompat if (preference != null) getPreferenceScreen().removePreference(preference); } @@ -3029,7 +2983,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe private void updateSearchEnginePreference() { if (!TemplateUrlServiceFactory.get().isLoaded()) { ChromeBasePreference searchEnginePref = -@@ -356,9 +258,7 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -357,9 +259,7 @@ public class MainSettings extends PreferenceFragmentCompat } private boolean shouldShowNewLabelForPasswordsPreference() { @@ -3040,7 +2994,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } // TODO(crbug.com/1217070): remove this method once UPM feature is rolled out. -@@ -389,37 +289,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -390,37 +290,6 @@ public class MainSettings extends PreferenceFragmentCompat pref.setSummary(isOn ? R.string.text_on : R.string.text_off); } @@ -3078,7 +3032,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe // TemplateUrlService.LoadListener implementation. @Override public void onTemplateUrlServiceLoaded() { -@@ -427,12 +296,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -428,12 +297,6 @@ public class MainSettings extends PreferenceFragmentCompat updateSearchEnginePreference(); } @@ -3143,7 +3097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/crow/Crow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java -@@ -283,7 +283,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { +@@ -275,7 +275,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { .with(MessageBannerProperties.TITLE, resources.getString(R.string.chrome_survey_message_title)) .with(MessageBannerProperties.ICON_RESOURCE_ID, @@ -3152,7 +3106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSu .with(MessageBannerProperties.ICON_TINT_COLOR, MessageBannerProperties.TINT_NONE) .with(MessageBannerProperties.PRIMARY_BUTTON_TEXT, -@@ -360,7 +360,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { +@@ -350,7 +350,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { InfoBarContainer.get(tab).addAnimationListener(this); SurveyInfoBar.showSurveyInfoBar( @@ -3161,7 +3115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSu RecordUserAction.record("Android.Survey.ShowSurveyInfoBar"); } -@@ -373,7 +373,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { +@@ -363,7 +363,7 @@ public class ChromeSurveyController implements InfoBarAnimationListener { */ private void showSurvey(String siteId) { SurveyController.getInstance().showSurveyIfAvailable( @@ -3189,7 +3143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider; import org.chromium.chrome.browser.ui.tablet.emptybackground.EmptyBackgroundViewWrapper; import org.chromium.chrome.browser.vr.VrModuleProvider; -@@ -914,23 +912,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -915,23 +913,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { return false; } @@ -3216,41 +3170,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java -@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.segmentation_platform.SegmentationPlatformServiceFactory; --import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabLaunchType; - import org.chromium.chrome.browser.tabmodel.TabModelSelector; -@@ -55,7 +54,6 @@ import org.chromium.components.embedder_support.util.UrlUtilities; - import org.chromium.components.segmentation_platform.SegmentSelectionResult; - import org.chromium.components.segmentation_platform.SegmentationPlatformService; - import org.chromium.components.segmentation_platform.proto.SegmentationProto.SegmentId; --import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.content_public.common.ResourceRequestBody; -@@ -549,13 +547,8 @@ public final class ReturnToChromeUtil { - * Caches the status of whether the primary account is synced. +@@ -900,10 +900,6 @@ public final class ReturnToChromeUtil { + * is a search result page or not. This should be called when Start surface is shown at startup. */ - public static void cachePrimaryAccountSyncStatus() { -- boolean isPrimaryAccountSync = -- IdentityServicesProvider.get() -- .getSigninManager(Profile.getLastUsedRegularProfile()) -- .getIdentityManager() -- .hasPrimaryAccount(ConsentLevel.SYNC); - SharedPreferencesManager.getInstance().writeBoolean( -- ChromePreferenceKeys.PRIMARY_ACCOUNT_SYNC, isPrimaryAccountSync); -+ ChromePreferenceKeys.PRIMARY_ACCOUNT_SYNC, false); + public static void recordLastVisitedTabIsSRPWhenOverviewIsShownAtLaunch() { +- RecordHistogram.recordBooleanHistogram( +- LAST_VISITED_TAB_IS_SRP_WHEN_OVERVIEW_IS_SHOWN_AT_LAUNCH_UMA, +- SharedPreferencesManager.getInstance().readBoolean( +- ChromePreferenceKeys.IS_LAST_VISITED_TAB_SRP, false)); } /** diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2004,7 +2004,6 @@ static_library("browser") { +@@ -2016,7 +2016,6 @@ static_library("browser") { "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/sharing/proto", @@ -3258,7 +3192,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/storage_access_api:permissions", "//chrome/browser/thumbnail", "//chrome/browser/touch_to_fill", -@@ -2825,8 +2824,6 @@ static_library("browser") { +@@ -2838,8 +2837,6 @@ static_library("browser") { "android/signin/fre_mobile_identity_consistency_field_trial.h", "android/signin/signin_bridge.cc", "android/signin/signin_bridge.h", @@ -3267,7 +3201,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/signin/signin_metrics_utils.cc", "android/signin/unified_consent_service_bridge.cc", "android/signin/web_signin_bridge.cc", -@@ -3242,8 +3239,6 @@ static_library("browser") { +@@ -3257,8 +3254,6 @@ static_library("browser") { "sharing/sms/sms_fetch_request_handler.h", "shell_integration_android.cc", "signin/identity_services_provider_android.cc", @@ -3276,16 +3210,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "ssl/chrome_security_state_client.cc", "ssl/chrome_security_state_client.h", "ssl/chrome_security_state_model_delegate.cc", -@@ -3260,8 +3255,6 @@ static_library("browser") { - "sync/glue/synced_window_delegate_android.h", - "sync/glue/synced_window_delegates_getter_android.cc", - "sync/glue/synced_window_delegates_getter_android.h", -- "sync/sync_error_infobar_delegate_android.cc", -- "sync/sync_error_infobar_delegate_android.h", - "sync/trusted_vault_client_android.cc", - "sync/trusted_vault_client_android.h", - "tab/web_contents_state.cc", -@@ -4596,10 +4589,6 @@ static_library("browser") { +@@ -4617,10 +4612,6 @@ static_library("browser") { "profiles/profile_statistics_factory.h", "signin/force_signin_verifier.cc", "signin/force_signin_verifier.h", @@ -3453,7 +3378,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java_sources.gni b/ch diff --git a/chrome/browser/feed/android/BUILD.gn b/chrome/browser/feed/android/BUILD.gn --- a/chrome/browser/feed/android/BUILD.gn +++ b/chrome/browser/feed/android/BUILD.gn -@@ -101,7 +101,6 @@ android_library("java") { +@@ -102,7 +102,6 @@ android_library("java") { "//chrome/browser/privacy:java", "//chrome/browser/profiles/android:java", "//chrome/browser/share:java", @@ -3464,7 +3389,7 @@ diff --git a/chrome/browser/feed/android/BUILD.gn b/chrome/browser/feed/android/ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java --- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java +++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java -@@ -11,9 +11,7 @@ import org.chromium.chrome.browser.feed.componentinterfaces.SurfaceCoordinator.S +@@ -13,9 +13,7 @@ import org.chromium.chrome.browser.feed.componentinterfaces.SurfaceCoordinator.S import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; @@ -3472,8 +3397,8 @@ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/fe import org.chromium.components.prefs.PrefService; -import org.chromium.components.signin.identitymanager.ConsentLevel; import org.chromium.components.user_prefs.UserPrefs; + import org.chromium.ui.base.DeviceFormFactor; - /** diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java --- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java +++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java @@ -3555,7 +3480,7 @@ diff --git a/chrome/browser/media/router/discovery/access_code/BUILD.gn b/chrome - "//chrome/browser/signin:identity_manager_provider", "//chrome/browser/ui/webui/access_code_cast:mojo_bindings", "//components/access_code_cast/common", - "//components/cast_channel:cast_channel", + "//components/endpoint_fetcher:endpoint_fetcher", diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn @@ -3626,7 +3551,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -19,7 +19,6 @@ import android.os.SystemClock; +@@ -20,7 +20,6 @@ import android.os.SystemClock; import androidx.annotation.IntDef; import androidx.annotation.VisibleForTesting; @@ -3634,7 +3559,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import com.google.common.base.Optional; import org.chromium.base.Callback; -@@ -32,7 +31,6 @@ import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.Cr +@@ -33,7 +32,6 @@ import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.Cr import org.chromium.chrome.browser.password_manager.PasswordCheckupClientHelper.PasswordCheckBackendException; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; @@ -3642,7 +3567,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.prefs.PrefService; import org.chromium.components.signin.base.CoreAccountInfo; -@@ -138,19 +136,8 @@ public class PasswordManagerHelper { +@@ -139,19 +137,8 @@ public class PasswordManagerHelper { * @param context used to show the UI to manage passwords. */ public static void showPasswordSettings(Context context, @ManagePasswordsReferrer int referrer, @@ -3663,7 +3588,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom Bundle fragmentArgs = new Bundle(); fragmentArgs.putInt(MANAGE_PASSWORDS_REFERRER, referrer); context.startActivity(settingsLauncher.createSettingsActivityIntent( -@@ -171,13 +158,7 @@ public class PasswordManagerHelper { +@@ -172,13 +159,7 @@ public class PasswordManagerHelper { * @return True if Unified Password Manager can be used, false otherwise. */ public static boolean canUseUpm() { @@ -3678,7 +3603,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -190,19 +171,7 @@ public class PasswordManagerHelper { +@@ -191,19 +172,7 @@ public class PasswordManagerHelper { * loading dialog. */ public static void showPasswordCheckup(Context context, @PasswordCheckReferrer int referrer, @@ -3698,7 +3623,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -282,49 +251,6 @@ public class PasswordManagerHelper { +@@ -283,49 +252,6 @@ public class PasswordManagerHelper { }); } @@ -3748,7 +3673,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom public static boolean usesUnifiedPasswordManagerUI() { if (!ChromeFeatureList.isEnabled(UNIFIED_PASSWORD_MANAGER_ANDROID)) return false; @UpmExperimentVariation -@@ -359,53 +285,12 @@ public class PasswordManagerHelper { +@@ -365,53 +291,12 @@ public class PasswordManagerHelper { } public static void launchGmsUpdate(Context context) { @@ -4300,7 +4225,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome diff --git a/chrome/browser/supervised_user/BUILD.gn b/chrome/browser/supervised_user/BUILD.gn --- a/chrome/browser/supervised_user/BUILD.gn +++ b/chrome/browser/supervised_user/BUILD.gn -@@ -71,7 +71,6 @@ if (is_android) { +@@ -88,7 +88,6 @@ if (is_android) { "//base:jni_java", "//build/android:build_java", "//chrome/browser/profiles/android:java", @@ -4311,11 +4236,12 @@ diff --git a/chrome/browser/supervised_user/BUILD.gn b/chrome/browser/supervised diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java --- a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java +++ b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java -@@ -5,11 +5,8 @@ +@@ -5,12 +5,9 @@ package org.chromium.chrome.browser.supervised_user.website_approval; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; + import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.signin.base.AccountInfo; import org.chromium.components.signin.base.CoreAccountInfo; -import org.chromium.components.signin.identitymanager.ConsentLevel; @@ -4323,11 +4249,10 @@ diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome import org.chromium.ui.modelutil.PropertyModel; /** -@@ -31,25 +28,5 @@ class WebsiteApprovalMediator { - v -> mCompletionCallback.onWebsiteApproved()); - mModel.set(WebsiteApprovalProperties.ON_CLICK_DENY, - v -> mCompletionCallback.onWebsiteDenied()); -- +@@ -44,26 +41,6 @@ class WebsiteApprovalMediator { + mCompletionCallback.onWebsiteDenied(); + }); + - // Set the child name. We use the given name if there is one for this account, otherwise we - // use the full account email address. - IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( @@ -4347,12 +4272,14 @@ diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome - childNameProperty = childAccountInfo.getGivenName(); - } - mModel.set(WebsiteApprovalProperties.CHILD_NAME, childNameProperty); +- + // Now show the actual content. + mBottomSheetController.requestShowContent(mSheetContent, true); } - } diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/sync_service_factory.cc --- a/chrome/browser/sync/sync_service_factory.cc +++ b/chrome/browser/sync/sync_service_factory.cc -@@ -78,7 +78,7 @@ +@@ -73,7 +73,7 @@ #include "chrome/browser/sync/wifi_configuration_sync_service_factory.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -4361,7 +4288,7 @@ diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/s std::unique_ptr BuildSyncService( content::BrowserContext* context) { -@@ -174,7 +174,7 @@ std::unique_ptr BuildSyncService( +@@ -186,7 +186,7 @@ std::unique_ptr BuildSyncService( return sync_service; } @@ -4370,7 +4297,7 @@ diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/s // static SyncServiceFactory* SyncServiceFactory::GetInstance() { -@@ -252,7 +252,7 @@ SyncServiceFactory::~SyncServiceFactory() = default; +@@ -264,7 +264,7 @@ SyncServiceFactory::~SyncServiceFactory() = default; KeyedService* SyncServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { @@ -4379,7 +4306,7 @@ diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/s } bool SyncServiceFactory::ServiceIsNULLWhileTesting() const { -@@ -294,9 +294,3 @@ SyncServiceFactory::GetAllSyncServices() { +@@ -306,9 +306,3 @@ SyncServiceFactory::GetAllSyncServices() { } return sync_services; } @@ -4392,7 +4319,7 @@ diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/s diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -159,7 +159,6 @@ android_library("java") { +@@ -163,7 +163,6 @@ android_library("java") { "//chrome/browser/profiles/android:java", "//chrome/browser/search_engines/android:java", "//chrome/browser/share:java", @@ -4400,7 +4327,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/favicon:java", -@@ -446,7 +445,6 @@ robolectric_library("junit") { +@@ -456,7 +455,6 @@ robolectric_library("junit") { "//chrome/browser/profiles/android:java", "//chrome/browser/search_engines/android:java", "//chrome/browser/share:java", @@ -4549,7 +4476,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncConsentFragmentBase.java -@@ -241,35 +241,8 @@ public abstract class SyncConsentFragmentBase +@@ -266,35 +266,8 @@ public abstract class SyncConsentFragmentBase // this method replaces onSyncAccepted(), the field can be set directly. protected void signinAndEnableSync( String accountName, boolean settingsClicked, Runnable callback) { @@ -4587,7 +4514,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows } @Override -@@ -320,10 +293,6 @@ public abstract class SyncConsentFragmentBase +@@ -347,10 +320,6 @@ public abstract class SyncConsentFragmentBase : ProfileDataCache.createWithDefaultImageSizeAndNoBadge(requireContext()); mProfileDataCache.addObserver(mProfileDataCacheObserver); @@ -4598,7 +4525,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows // By default this is set to true so that when system back button is pressed user action // is recorded in onDestroy(). mRecordUndoSignin = true; -@@ -334,9 +303,6 @@ public abstract class SyncConsentFragmentBase +@@ -361,9 +330,6 @@ public abstract class SyncConsentFragmentBase @Override public void onDestroy() { super.onDestroy(); @@ -4608,7 +4535,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows mProfileDataCache.removeObserver(mProfileDataCacheObserver); if (mConfirmSyncDataStateMachine != null) { mConfirmSyncDataStateMachine.cancel(/* isBeingDestroyed = */ true); -@@ -710,21 +676,6 @@ public abstract class SyncConsentFragmentBase +@@ -737,21 +703,6 @@ public abstract class SyncConsentFragmentBase // Don't start sign-in if this fragment has been destroyed. if (getActivity().isDestroyed()) return; @@ -4681,7 +4608,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java -@@ -200,15 +200,11 @@ public class SigninFirstRunMediator +@@ -198,15 +198,11 @@ public class SigninFirstRunMediator mModel.set(SigninFirstRunProperties.FRE_POLICY, frePolicy); } @@ -4700,7 +4627,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows /** Implements {@link ProfileDataCache.Observer}. */ @Override public void onProfileDataUpdated(String accountEmail) { -@@ -307,50 +303,12 @@ public class SigninFirstRunMediator +@@ -305,50 +301,12 @@ public class SigninFirstRunMediator TextUtils.equals(mDefaultAccountName, mSelectedAccountName) ? MobileFreProgress.WELCOME_SIGNIN_WITH_DEFAULT_ACCOUNT : MobileFreProgress.WELCOME_SIGNIN_WITH_NON_DEFAULT_ACCOUNT); @@ -4751,7 +4678,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows if (mDelegate.getNativeInitializationPromise().isFulfilled()) { handleDismissWithNative(); -@@ -368,28 +326,7 @@ public class SigninFirstRunMediator +@@ -366,28 +324,7 @@ public class SigninFirstRunMediator assert mDelegate.getNativeInitializationPromise().isFulfilled(); @@ -4797,7 +4724,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/password_manager/core/browser/leak_detection_delegate.cc b/components/password_manager/core/browser/leak_detection_delegate.cc --- a/components/password_manager/core/browser/leak_detection_delegate.cc +++ b/components/password_manager/core/browser/leak_detection_delegate.cc -@@ -64,7 +64,7 @@ void LeakDetectionDelegate::StartLeakCheck( +@@ -63,7 +63,7 @@ void LeakDetectionDelegate::StartLeakCheck( is_likely_signup_form_ = submitted_form_was_likely_signup_form; leak_check_ = leak_factory_->TryCreateLeakCheck( @@ -4817,7 +4744,7 @@ diff --git a/components/password_manager/core/browser/password_form_manager.cc b #include "google_apis/gaia/core_account_id.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/abseil-cpp/absl/types/variant.h" -@@ -285,27 +284,7 @@ bool PasswordFormManager::WasUnblocklisted() const { +@@ -290,27 +289,7 @@ bool PasswordFormManager::WasUnblocklisted() const { } bool PasswordFormManager::IsMovableToAccountStore() const { @@ -4846,7 +4773,7 @@ diff --git a/components/password_manager/core/browser/password_form_manager.cc b } void PasswordFormManager::Save() { -@@ -470,17 +449,6 @@ void PasswordFormManager::MoveCredentialsToAccountStore() { +@@ -477,17 +456,6 @@ void PasswordFormManager::MoveCredentialsToAccountStore() { void PasswordFormManager::BlockMovingCredentialsToAccountStore() { // Nothing to do if there is no signed in user or the credentials are already // blocked for moving. diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 2b50525e..fa661a6d 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -374,8 +374,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -420,8 +420,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. // Initialize // Note that isVoiceSearchEnabled will return false in incognito mode. @@ -38,7 +38,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ boolean shouldShowLensButton = mOmniboxStub.isLensEnabled(LensEntryPoint.TASKS_SURFACE); LensMetrics.recordShown(LensEntryPoint.TASKS_SURFACE, shouldShowLensButton); mPropertyModel.set(IS_LENS_BUTTON_VISIBLE, shouldShowLensButton); -@@ -1073,10 +1072,6 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -1176,10 +1175,6 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. // incorrect state if check synchronously. ThreadUtils.postOnUiThread(() -> { if (mOmniboxStub != null) { @@ -89,9 +89,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni - () - -> AssistantVoiceSearchService.reportStartupUserEligibility( - ContextUtils.getApplicationContext())); - deferredStartupHandler.addDeferredTask( - () -> GlobalAppLocaleController.getInstance().recordOverrideLanguageMetrics()); - deferredStartupHandler.addDeferredTask( + deferredStartupHandler.addDeferredTask(() -> { + GlobalAppLocaleController.getInstance().maybeSetupLocaleManager(); + GlobalAppLocaleController.getInstance().recordOverrideLanguageMetrics(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java @@ -331,15 +331,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -46,7 +46,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFeatures; - import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; +@@ -50,7 +50,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; -@@ -333,14 +332,12 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -343,14 +342,12 @@ public class SearchActivity extends AsyncInitializationActivity // will navigate to Tabbed mode. Investigate whether this can inflate // the tabbed mode layout in the background instead of CCTs. CustomTabsConnection.getInstance().warmup(0); @@ -355,7 +355,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se RecordUserAction.record("SearchWidget.WidgetSelected"); getActivityDelegate().onFinishDeferredInitialization(); -@@ -411,8 +408,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -421,8 +418,7 @@ public class SearchActivity extends AsyncInitializationActivity if (isFromQuickActionSearchWidget()) { recordQuickActionSearchType(searchType); } @@ -375,8 +375,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; - import org.chromium.ui.base.DeviceFormFactor; -@@ -82,7 +81,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { + import org.chromium.components.browser_ui.styles.ChromeColors; +@@ -88,7 +87,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { /** Called when the SearchActivity has finished initialization. */ void onDeferredStartup(@SearchType int searchType, @@ -384,7 +384,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se @NonNull WindowAndroid windowAndroid) { mAutocompleteCoordinator.prefetchZeroSuggestResults(); -@@ -97,7 +95,7 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -103,7 +101,7 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { } if (mPendingBeginQuery) { @@ -393,7 +393,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se mPendingBeginQuery = false; } } -@@ -106,12 +104,10 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -112,12 +110,10 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { * Begins a new query. * @param searchType The type of search to invoke. * @param optionalText Prepopulate with a query, this may be null. @@ -406,7 +406,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se @NonNull WindowAndroid windowAndroid) { // Clear the text regardless of the promo decision. This allows the user to enter text // before native has been initialized and have it not be cleared one the delayed beginQuery -@@ -125,11 +121,10 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -131,11 +127,10 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { return; } @@ -419,7 +419,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se @NonNull WindowAndroid windowAndroid) { assert !mPendingSearchPromoDecision; -@@ -139,7 +134,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -145,7 +140,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { } if (searchType == SearchType.VOICE) { @@ -427,7 +427,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se } else if (searchType == SearchType.LENS) { runGoogleLens(windowAndroid); } else { -@@ -147,33 +141,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -153,33 +147,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { } } @@ -461,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se /** * Begins a new Lens query. * -@@ -227,9 +194,4 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -233,9 +200,4 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { mAutocompleteCoordinator.startCachedZeroSuggest(); }); } @@ -474,7 +474,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -88,7 +88,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; +@@ -89,7 +89,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; @@ -482,7 +482,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; -@@ -2025,11 +2024,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2057,11 +2056,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return mLocationBar.getOmniboxStub(); } @@ -497,7 +497,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -87,8 +87,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; +@@ -89,8 +89,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; @@ -506,7 +506,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; -@@ -270,7 +268,6 @@ public class RootUiCoordinator +@@ -272,7 +270,6 @@ public class RootUiCoordinator protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); protected Supplier mStartSurfaceParentTabSupplier; @Nullable @@ -514,7 +514,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -545,9 +542,6 @@ public class RootUiCoordinator +@@ -547,9 +544,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -524,7 +524,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1090,19 +1084,11 @@ public class RootUiCoordinator +@@ -1097,19 +1091,11 @@ public class RootUiCoordinator new VoiceToolbarButtonController.VoiceSearchDelegate() { @Override public boolean isVoiceSearchEnabled() { @@ -545,7 +545,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } }; VoiceToolbarButtonController voiceToolbarButtonController = -@@ -1153,13 +1139,6 @@ public class RootUiCoordinator +@@ -1164,13 +1150,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -562,7 +562,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -123,12 +123,6 @@ android_library("java") { +@@ -127,12 +127,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -601,15 +601,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; - import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; +@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -360,13 +359,6 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -368,13 +367,6 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, return mLocationBarLayout.getSecurityIconView(); } @@ -623,7 +623,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -632,11 +624,6 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -644,11 +636,6 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, // End tablet-specific methods. @@ -712,7 +712,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarLayout.onFinishNativeInitialization(); setProfile(mProfileSupplier.get()); onPrimaryColorChanged(); -@@ -373,17 +351,6 @@ class LocationBarMediator +@@ -375,17 +353,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -730,7 +730,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -392,11 +359,6 @@ class LocationBarMediator +@@ -394,11 +361,6 @@ class LocationBarMediator sLastCachedIsLensOnOmniboxEnabled = null; } @@ -742,7 +742,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setIsUrlBarFocusedWithoutAnimationsForTesting( boolean isUrlBarFocusedWithoutAnimations) { mUrlFocusedWithoutAnimations = isUrlBarFocusedWithoutAnimations; -@@ -589,8 +551,6 @@ class LocationBarMediator +@@ -591,8 +553,6 @@ class LocationBarMediator /* package */ void micButtonClicked(View view) { if (!mNativeInitialized) return; RecordUserAction.record("MobileOmniboxVoiceSearch"); @@ -751,7 +751,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ void lensButtonClicked(View view) { -@@ -936,28 +896,6 @@ class LocationBarMediator +@@ -938,28 +898,6 @@ class LocationBarMediator } } @@ -780,7 +780,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Update visuals to use a correct color scheme depending on the primary color. */ -@@ -1044,8 +982,7 @@ class LocationBarMediator +@@ -1046,8 +984,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -790,7 +790,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1203,9 +1140,6 @@ class LocationBarMediator +@@ -1241,9 +1178,6 @@ class LocationBarMediator public void onPrimaryColorChanged() { // This method needs to be called first as it computes |mBrandedColorScheme|. updateBrandedColorScheme(); @@ -800,7 +800,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } @Override -@@ -1277,16 +1211,6 @@ class LocationBarMediator +@@ -1315,16 +1249,6 @@ class LocationBarMediator } } @@ -817,7 +817,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1302,37 +1226,10 @@ class LocationBarMediator +@@ -1340,37 +1264,10 @@ class LocationBarMediator return mUrlHasFocus; } @@ -855,7 +855,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1351,17 +1248,14 @@ class LocationBarMediator +@@ -1389,17 +1286,14 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -909,7 +909,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteMatch; -@@ -247,24 +246,6 @@ public class AutocompleteController { +@@ -249,24 +248,6 @@ public class AutocompleteController { completedLength, webContents); } @@ -934,7 +934,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates aqs parameters on the selected match that we will navigate to and returns the * updated URL. -@@ -369,8 +350,6 @@ public class AutocompleteController { +@@ -371,8 +352,6 @@ public class AutocompleteController { long nativeAutocompleteControllerAndroid, int matchIndex, long elapsedTimeSinceInputChange, String newQueryText, String[] newQueryParams); Tab getMatchingTabForSuggestion(long nativeAutocompleteControllerAndroid, int matchIndex); @@ -946,7 +946,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalSuggestionView +@@ -48,7 +48,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalSuggestionView import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalSuggestionViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionView; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBinder; @@ -954,7 +954,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -283,13 +282,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -304,13 +303,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC mMediator.onNativeInitialized(); } @@ -971,7 +971,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -35,7 +35,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; +@@ -36,7 +36,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.OnSuggestionsReceivedListener; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics.RefineActionUsage; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -979,7 +979,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -378,14 +377,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, +@@ -398,14 +397,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, mShouldPreventOmniboxAutocomplete = prevent; } diff --git a/build/patches/Remove-weblayer-dependency-on-Play-Services.patch b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch index dd626d62..d4b0a6d7 100644 --- a/build/patches/Remove-weblayer-dependency-on-Play-Services.patch +++ b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch @@ -4,9 +4,8 @@ Subject: Remove weblayer dependency on Play Services License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - weblayer/browser/java/BUILD.gn | 1 - - weblayer/shell/android/BUILD.gn | 3 --- - 2 files changed, 4 deletions(-) + weblayer/browser/java/BUILD.gn | 1 - + 1 file changed, 1 deletion(-) diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn --- a/weblayer/browser/java/BUILD.gn @@ -19,20 +18,5 @@ diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn "//base:base_java", "//base:jni_java", "//build/android:build_java", -diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn ---- a/weblayer/shell/android/BUILD.gn -+++ b/weblayer/shell/android/BUILD.gn -@@ -38,11 +38,8 @@ android_library("weblayer_shell_java") { - testonly = true - resources_package = "org.chromium.weblayer.shell" - -- # The google_play_services_base_java dependency is necessary for the -- # google_play_services_version definition in the manifest. - deps = [ - ":weblayer_shell_resources", -- "$google_play_services_package:google_play_services_base_java", - "//base:base_java", - "//components/strictmode/android:java", - "//third_party/androidx:androidx_annotation_annotation_java", -- 2.25.1 diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index 9b7569fb..79115ecd 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2398,7 +2398,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2474,7 +2474,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -22,7 +22,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2409,6 +2409,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2485,6 +2485,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index 31d6f48e..c1e5a403 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -13,16 +13,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag-metadata.json | 5 +++++ chrome/browser/flag_descriptions.cc | 5 +++++ chrome/browser/flag_descriptions.h | 3 +++ - chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++ + chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++ chrome/browser/flags/android/chrome_feature_list.h | 1 + .../chrome/browser/flags/ChromeFeatureList.java | 1 + .../suggestions/DropdownItemViewInfoListBuilder.java | 11 +++++++++-- - 8 files changed, 31 insertions(+), 2 deletions(-) + 8 files changed, 32 insertions(+), 2 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8871,6 +8871,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9079,6 +9079,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPervasiveSystemAccentColorDescription, kOsWin, SINGLE_VALUE_TYPE(switches::kPervasiveSystemAccentColor)}, #endif @@ -35,7 +35,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2673,6 +2673,11 @@ +@@ -2769,6 +2769,11 @@ // with neural net palm detection. "expiry_milestone": 90 }, @@ -50,7 +50,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3978,6 +3978,11 @@ const char kSendTabToSelfV2Description[] = +@@ -4122,6 +4122,11 @@ const char kSendTabToSelfV2Description[] = "Enables new received tab " "UI shown next to the profile icon instead of using system notifications."; @@ -65,7 +65,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2267,6 +2267,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[]; +@@ -2350,6 +2350,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[]; extern const char kSendTabToSelfV2Name[]; extern const char kSendTabToSelfV2Description[]; @@ -78,7 +78,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -274,6 +274,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -272,6 +272,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReachedCodeProfiler, &kReaderModeInCCT, &kReengagementNotification, @@ -86,50 +86,51 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kRelatedSearches, &kRelatedSearchesAlternateUx, &kRelatedSearchesInBar, -@@ -841,6 +842,9 @@ const base::Feature kRequestDesktopSiteDefaultsDowngrade{ - const base::Feature kSafeModeForCachedFlags{"SafeModeForCachedFlags", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -955,6 +956,10 @@ BASE_FEATURE(kShareButtonInTopToolbar, + "ShareButtonInTopToolbar", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kSearchReadyOmniboxFeature{ -+ "SearchReadyOmnibox", base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kSearchReadyOmniboxFeature{ ++ "SearchReadyOmnibox", ++ base::FEATURE_DISABLED_BY_DEFAULT}; + - const base::Feature kShareButtonInTopToolbar{"ShareButtonInTopToolbar", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kShowScrollableMVTOnNTPAndroid, + "ShowScrollableMVTOnNTPAndroid", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -144,6 +144,7 @@ extern const base::Feature kRequestDesktopSiteDefaultsDowngrade; - extern const base::Feature kSearchEnginePromoExistingDevice; - extern const base::Feature kSearchEnginePromoExistingDeviceV2; - extern const base::Feature kSearchEnginePromoNewDevice; -+extern const base::Feature kSearchReadyOmniboxFeature; - extern const base::Feature kSearchEnginePromoNewDeviceV2; - extern const base::Feature kShareButtonInTopToolbar; - extern const base::Feature kSharingHubLinkToggle; +@@ -142,6 +142,7 @@ BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsDowngrade); + BASE_DECLARE_FEATURE(kSearchEnginePromoExistingDevice); + BASE_DECLARE_FEATURE(kSearchEnginePromoExistingDeviceV2); + BASE_DECLARE_FEATURE(kSearchEnginePromoNewDevice); ++BASE_DECLARE_FEATURE(kSearchReadyOmniboxFeature); + BASE_DECLARE_FEATURE(kSearchEnginePromoNewDeviceV2); + BASE_DECLARE_FEATURE(kShareButtonInTopToolbar); + BASE_DECLARE_FEATURE(kSharingHubLinkToggle); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -418,6 +418,7 @@ public abstract class ChromeFeatureList { +@@ -423,6 +423,7 @@ public abstract class ChromeFeatureList { public static final String MESSAGES_FOR_ANDROID_STACKING_ANIMATION = "MessagesForAndroidStackingAnimation"; public static final String MESSAGES_FOR_ANDROID_SYNC_ERROR = "MessagesForAndroidSyncError"; + public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MODAL_PERMISSION_DIALOG_VIEW = "ModalPermissionDialogView"; public static final String METRICS_SETTINGS_ANDROID = "MetricsSettingsAndroid"; - public static final String MOST_RECENT_TAB_ON_BACKGROUND_CLOSE_TAB = + public static final String NEW_INSTANCE_FROM_DRAGGED_LINK = "NewInstanceFromDraggedLink"; diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -@@ -13,6 +13,7 @@ import androidx.annotation.Px; - import androidx.annotation.VisibleForTesting; +@@ -15,6 +15,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.base.supplier.Supplier; + import org.chromium.chrome.browser.omnibox.OmniboxFeatures; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.suggestions.answer.AnswerSuggestionProcessor; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor; -@@ -61,6 +62,7 @@ class DropdownItemViewInfoListBuilder { +@@ -64,6 +65,7 @@ class DropdownItemViewInfoListBuilder { @Px private int mDropdownHeight; private boolean mBuiltListHasFullyConcealedElements; @@ -137,9 +138,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow DropdownItemViewInfoListBuilder(@NonNull Supplier tabSupplier, BookmarkState bookmarkState, @NonNull OmniboxPedalDelegate omniboxPedalDelegate) { -@@ -91,8 +93,10 @@ class DropdownItemViewInfoListBuilder { - mFaviconFetcher = new FaviconFetcher(context, iconBridgeSupplier); - +@@ -100,8 +102,10 @@ class DropdownItemViewInfoListBuilder { + mDividerLineProcessor = new DividerLineProcessor(context); + } mHeaderProcessor = new HeaderProcessor(context, host, delegate); - registerSuggestionProcessor(new EditUrlSuggestionProcessor( - context, host, delegate, mFaviconFetcher, mActivityTabSupplier, shareSupplier)); @@ -150,7 +151,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, imageFetcherSupplier)); registerSuggestionProcessor( -@@ -216,6 +220,9 @@ class DropdownItemViewInfoListBuilder { +@@ -234,6 +238,9 @@ class DropdownItemViewInfoListBuilder { /** Signals that native initialization has completed. */ void onNativeInitialized() { mHeaderProcessor.onNativeInitialized(); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index e10a8330..b2e055ee 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -18,19 +18,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 3 + chrome/browser/flag_descriptions.cc | 3 + chrome/browser/flag_descriptions.h | 3 + - .../flags/android/chrome_feature_list.cc | 4 ++ + .../flags/android/chrome_feature_list.cc | 5 ++ .../flags/android/chrome_feature_list.h | 1 + .../browser/flags/ChromeFeatureList.java | 1 + components/ntp_snippets/features.cc | 6 +- .../variations/fieldtrial_testing_config.json | 18 +++++ - 17 files changed, 198 insertions(+), 5 deletions(-) + 17 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -554,6 +554,7 @@ chrome_java_resources = [ +@@ -552,6 +552,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", "java/res/layout/new_tab_page_tile_grid_placeholder.xml", @@ -41,7 +41,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -538,6 +538,7 @@ chrome_java_sources = [ +@@ -540,6 +540,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -52,7 +52,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml -@@ -53,6 +53,13 @@ found in the LICENSE file. +@@ -44,6 +44,13 @@ found in the LICENSE file. android:layout_marginTop="16dp" android:visibility="gone"/> @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.explore_sites.ExploreSitesBridge; +@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.cryptids.ProbabilisticCryptidRenderer; import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensEntryPoint; @@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -110,6 +111,8 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -96,6 +97,8 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { private UiConfig mUiConfig; private CallbackController mCallbackController = new CallbackController(); @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -219,6 +222,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -198,6 +201,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { initializeMostVisitedTilesCoordinator(profile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate, isScrollableMvtEnabled(), searchProviderIsGoogle); initializeSearchBoxBackground(); @@ -233,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -529,15 +533,21 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -501,16 +505,22 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { R.dimen.ntp_header_lateral_paddings_v2); marginLayoutParams.leftMargin = -lateralPaddingsForNTP; marginLayoutParams.rightMargin = -lateralPaddingsForNTP; @@ -247,6 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL marginLayoutParams.bottomMargin = getResources().getDimensionPixelOffset( R.dimen.tile_carousel_layout_bottom_margin); } else { + // Set a bit more top padding on the tile grid if there is no logo. ViewGroup.LayoutParams layoutParams = mMvTilesContainerLayout.getLayoutParams(); layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT; - marginLayoutParams.topMargin = getGridMvtTopMargin(); @@ -257,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL marginLayoutParams.bottomMargin = getGridMvtBottomMargin(); } } -@@ -874,6 +884,22 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -847,6 +857,22 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { return iphCommandBuilder; } @@ -317,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4828,6 +4828,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4952,6 +4952,9 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE_AND_VALUE( switches::kForceShowUpdateMenuItemCustomSummary, "Custom Summary")}, @@ -330,7 +331,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4024,6 +4024,9 @@ const char kStartSurfaceRefactorName[] = "Start Surface Refactor"; +@@ -4173,6 +4173,9 @@ const char kStartSurfaceRefactorName[] = "Start Surface Refactor"; const char kStartSurfaceRefactorDescription[] = "Enable splitting Tab switcher from Start surface"; @@ -343,7 +344,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2282,6 +2282,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[]; +@@ -2365,6 +2365,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[]; extern const char kSmartSuggestionForLargeDownloadsName[]; extern const char kSmartSuggestionForLargeDownloadsDescription[]; @@ -364,31 +365,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kInstanceSwitcher, &kInstantStart, &kIsVoiceSearchEnabledCache, -@@ -763,6 +764,9 @@ const base::Feature kNotificationPermissionVariant{ - const base::Feature kInstanceSwitcher{"InstanceSwitcher", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -853,6 +854,10 @@ BASE_FEATURE(kInstanceSwitcher, + "InstanceSwitcher", + base::FEATURE_ENABLED_BY_DEFAULT); -+const base::Feature kSimplifiedNTP{"SimplifiedNTP", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kSimplifiedNTP, ++ "SimplifiedNTP", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - const base::Feature kPageAnnotationsService{"PageAnnotationsService", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kPageAnnotationsService, + "PageAnnotationsService", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -121,6 +121,7 @@ extern const base::Feature kOmniboxModernizeVisualUpdate; - extern const base::Feature kOptimizeGeolocationHeaderGeneration; - extern const base::Feature kOSKResizesVisualViewport; - extern const base::Feature kPageAnnotationsService; -+extern const base::Feature kSimplifiedNTP; - extern const base::Feature kBookmarksImprovedSaveFlow; - extern const base::Feature kBookmarksRefresh; - extern const base::Feature kBackGestureRefactorAndroid; +@@ -119,6 +119,7 @@ BASE_DECLARE_FEATURE(kOmahaMinSdkVersionAndroid); + BASE_DECLARE_FEATURE(kOmniboxModernizeVisualUpdate); + BASE_DECLARE_FEATURE(kOptimizeGeolocationHeaderGeneration); + BASE_DECLARE_FEATURE(kPageAnnotationsService); ++BASE_DECLARE_FEATURE(kSimplifiedNTP); + BASE_DECLARE_FEATURE(kBookmarksImprovedSaveFlow); + BASE_DECLARE_FEATURE(kBookmarksRefresh); + BASE_DECLARE_FEATURE(kBackGestureRefactorAndroid); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -407,6 +407,7 @@ public abstract class ChromeFeatureList { +@@ -412,6 +412,7 @@ public abstract class ChromeFeatureList { public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; public static final String MESSAGES_FOR_ANDROID_CHROME_SURVEY = "MessagesForAndroidChromeSurvey"; @@ -421,7 +423,7 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json -@@ -5091,6 +5091,24 @@ +@@ -5457,6 +5457,24 @@ ] } ], diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index e18c634a..197dd4ab 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -13,10 +13,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag-metadata.json | 5 +++ chrome/browser/flag_descriptions.cc | 4 ++ chrome/browser/flag_descriptions.h | 3 ++ - .../flags/android/chrome_feature_list.cc | 4 ++ + .../flags/android/chrome_feature_list.cc | 5 +++ .../flags/android/chrome_feature_list.h | 1 + .../browser/flags/ChromeFeatureList.java | 1 + - 10 files changed, 66 insertions(+), 4 deletions(-) + 10 files changed, 67 insertions(+), 4 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java @@ -103,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -768,7 +768,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -769,7 +769,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/1035584): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -790,6 +791,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -791,6 +792,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mStatusIndicatorCoordinator.addObserver(mStatusIndicatorObserver); mStatusIndicatorCoordinator.addObserver(mStatusBarColorController); @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4756,6 +4756,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4880,6 +4880,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -141,7 +141,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -4803,6 +4803,11 @@ +@@ -4971,6 +4971,11 @@ "owners": [ "adamta", "sczs" ], "expiry_milestone": 98 }, @@ -156,7 +156,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3788,6 +3788,10 @@ const char kNotificationPermissionRationaleDescription[] = +@@ -3937,6 +3937,10 @@ const char kNotificationPermissionRationaleDescription[] = "Configure the dialog shown before requesting notification permission. " "Only works with builds targeting Android T."; @@ -170,7 +170,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2163,6 +2163,9 @@ extern const char kNewWindowAppMenuDescription[]; +@@ -2249,6 +2249,9 @@ extern const char kNewWindowAppMenuDescription[]; extern const char kNotificationPermissionRationaleName[]; extern const char kNotificationPermissionRationaleDescription[]; @@ -183,7 +183,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -263,6 +263,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -262,6 +262,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNewTabPageTilesTitleWrapAround, &kNewWindowAppMenu, &kNotificationPermissionVariant, @@ -191,31 +191,32 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kPageAnnotationsService, &kInlineUpdateFlow, &kBookmarksImprovedSaveFlow, -@@ -779,6 +780,9 @@ const base::Feature kInstanceSwitcher{"InstanceSwitcher", - const base::Feature kSimplifiedNTP{"SimplifiedNTP", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -873,6 +874,10 @@ BASE_FEATURE(kSimplifiedNTP, + "SimplifiedNTP", + base::FEATURE_ENABLED_BY_DEFAULT); -+const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++BASE_FEATURE(kOfflineIndicatorV2, ++ "OfflineIndicatorV2", ++ base::FEATURE_ENABLED_BY_DEFAULT); + - const base::Feature kPageAnnotationsService{"PageAnnotationsService", - base::FEATURE_DISABLED_BY_DEFAULT}; - + BASE_FEATURE(kPageAnnotationsService, + "PageAnnotationsService", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -114,6 +114,7 @@ extern const base::Feature kLensCameraAssistedSearch; - extern const base::Feature kLensOnQuickActionSearchWidget; - extern const base::Feature kLocationBarModelOptimizations; - extern const base::Feature kMostRecentTabOnBackgroundCloseTab; -+extern const base::Feature kOfflineIndicatorV2; - extern const base::Feature kNewInstanceFromDraggedLink; - extern const base::Feature kNewTabPageTilesTitleWrapAround; - extern const base::Feature kNewWindowAppMenu; +@@ -123,6 +123,7 @@ BASE_DECLARE_FEATURE(kOmniboxModernizeVisualUpdate); + BASE_DECLARE_FEATURE(kOptimizeGeolocationHeaderGeneration); + BASE_DECLARE_FEATURE(kPageAnnotationsService); + BASE_DECLARE_FEATURE(kSimplifiedNTP); ++BASE_DECLARE_FEATURE(kOfflineIndicatorV2); + BASE_DECLARE_FEATURE(kBookmarksImprovedSaveFlow); + BASE_DECLARE_FEATURE(kBookmarksRefresh); + BASE_DECLARE_FEATURE(kBackGestureRefactorAndroid); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -433,6 +433,7 @@ public abstract class ChromeFeatureList { +@@ -436,6 +436,7 @@ public abstract class ChromeFeatureList { public static final String NEW_WINDOW_APP_MENU = "NewWindowAppMenu"; public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String OFFLINE_INDICATOR = "OfflineIndicator"; diff --git a/build/patches/Revert-Delete-block-external-form-redirects.patch b/build/patches/Revert-Delete-block-external-form-redirects.patch index 5eed7948..7ba4f0d8 100644 --- a/build/patches/Revert-Delete-block-external-form-redirects.patch +++ b/build/patches/Revert-Delete-block-external-form-redirects.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -235,6 +235,7 @@ +@@ -236,6 +236,7 @@ #include "components/browser_ui/photo_picker/android/features.h" #include "components/content_creation/notes/core/note_features.h" #include "components/content_creation/reactions/core/reactions_features.h" @@ -28,7 +28,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/translate/content/android/translate_message.h" #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/media/router/discovery/access_code/access_code_cast_sink_service.h" -@@ -7374,6 +7375,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7598,6 +7599,12 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -683,6 +683,11 @@ +@@ -698,6 +698,11 @@ "owners": [ "ioanap", "vsemeniuk@google.com" ], "expiry_milestone": 108 }, @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3647,6 +3647,12 @@ const char kInstantStartName[] = "Instant start"; +@@ -3796,6 +3796,12 @@ const char kInstantStartName[] = "Instant start"; const char kInstantStartDescription[] = "Show start surface before native library is loaded."; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2071,6 +2071,9 @@ extern const char kInstanceSwitcherDescription[]; +@@ -2157,6 +2157,9 @@ extern const char kInstanceSwitcherDescription[]; extern const char kInstantStartName[]; extern const char kInstantStartDescription[]; @@ -92,38 +92,38 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ // Array of features exposed through the Java ExternalIntentsFeatures API. const base::Feature* kFeaturesExposedToJava[] = { &kAutofillAssistantGoogleInitiatorOriginCheck, -- &kExternalNavigationDebugLogs, &kScaryExternalNavigationRefactoring}; -+ &kExternalNavigationDebugLogs, &kScaryExternalNavigationRefactoring, +- &kBlockExternalFormSubmitWithoutGesture, &kExternalNavigationDebugLogs}; ++ &kBlockExternalFormSubmitWithoutGesture, &kExternalNavigationDebugLogs, + &kIntentBlockExternalFormRedirectsNoGesture}; } // namespace -@@ -34,6 +35,10 @@ const base::Feature kAutofillAssistantGoogleInitiatorOriginCheck{ - const base::Feature kExternalNavigationDebugLogs{ - "ExternalNavigationDebugLogs", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -41,6 +42,10 @@ BASE_FEATURE(kExternalNavigationDebugLogs, + "ExternalNavigationDebugLogs", + base::FEATURE_DISABLED_BY_DEFAULT); -+const base::Feature kIntentBlockExternalFormRedirectsNoGesture{ -+ "IntentBlockExternalFormRedirectsNoGesture", -+ base::FEATURE_DISABLED_BY_DEFAULT}; ++BASE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, ++ "IntentBlockExternalFormRedirectsNoGesture", ++ base::FEATURE_DISABLED_BY_DEFAULT); + - const base::Feature kScaryExternalNavigationRefactoring{ - "ScaryExternalNavigationRefactoring", base::FEATURE_ENABLED_BY_DEFAULT}; - + static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) { + return reinterpret_cast(kFeaturesExposedToJava[ordinal]); + } diff --git a/components/external_intents/android/external_intents_features.h b/components/external_intents/android/external_intents_features.h --- a/components/external_intents/android/external_intents_features.h +++ b/components/external_intents/android/external_intents_features.h @@ -12,6 +12,7 @@ namespace external_intents { // Alphabetical: - extern const base::Feature kAutofillAssistantGoogleInitiatorOriginCheck; - extern const base::Feature kExternalNavigationDebugLogs; -+extern const base::Feature kIntentBlockExternalFormRedirectsNoGesture; - extern const base::Feature kScaryExternalNavigationRefactoring; + BASE_DECLARE_FEATURE(kAutofillAssistantGoogleInitiatorOriginCheck); + BASE_DECLARE_FEATURE(kBlockExternalFormSubmitWithoutGesture); ++BASE_DECLARE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture); + BASE_DECLARE_FEATURE(kExternalNavigationDebugLogs); } // namespace external_intents diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java -@@ -20,6 +20,12 @@ import org.chromium.build.BuildConfig; +@@ -17,6 +17,12 @@ import org.chromium.base.annotations.NativeMethods; */ @JNINamespace("external_intents") public class ExternalIntentsFeatures extends Features { @@ -135,12 +135,12 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component + public static final String AUTOFILL_ASSISTANT_GOOGLE_INITIATOR_ORIGIN_CHECK_NAME = "AutofillAssistantGoogleInitiatorOriginCheck"; - public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs"; + public static final String BLOCK_EXTERNAL_FORM_SUBMIT_WITHOUT_GESTURE_NAME = diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -881,6 +881,12 @@ public class ExternalNavigationHandler { - return false; +@@ -1588,6 +1588,12 @@ public class ExternalNavigationHandler { + } } + /** Wrapper of check against the feature to support overriding for testing. */ @@ -149,50 +149,50 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component + return ExternalIntentsFeatures.INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE.isEnabled(); + } + - /** - * http://crbug.com/149218: We want to show the intent picker for ordinary links, providing - * the link is not an incoming intent from another application, unless it's a redirect. -@@ -922,6 +928,19 @@ public class ExternalNavigationHandler { - return false; + private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( + ExternalNavigationParams params, Intent targetIntent, GURL browserFallbackUrl, + MutableBoolean canLaunchExternalFallbackResult) { +@@ -1637,6 +1643,19 @@ public class ExternalNavigationHandler { + return OverrideUrlLoadingResult.forNoOverride(); } + // http://crbug.com/839751: Require user gestures for form submits to external + // protocols. + // TODO(tedchoc): Turn this on by default once we verify this change does + // not break the world. ++ boolean isRedirectFromFormSubmit = isFormSubmit && params.isRedirect(); + if (isRedirectFromFormSubmit && !incomingIntentRedirect && !params.hasUserGesture() + && blockExternalFormRedirectsWithoutGesture()) { + if (debug()) { -+ Log.i(TAG, -+ "Incoming form intent attempting to redirect without " -+ + "user gesture"); ++ Log.i(TAG, "Incoming form intent attempting to redirect without user gesture"); + } -+ return false; ++ return OverrideUrlLoadingResult.forNoOverride(); + } - // http://crbug/331571 : Do not override a navigation started from user typing. - if (params.getRedirectHandler() != null - && params.getRedirectHandler().isNavigationFromUserTyping()) { ++ + if (hasInternalScheme(params.getUrl(), targetIntent) + || hasContentScheme(params.getUrl(), targetIntent) + || hasFileSchemeInIntentURI(params.getUrl(), targetIntent)) { diff --git a/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java b/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java --- a/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java +++ b/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java -@@ -338,14 +338,12 @@ public class ExternalNavigationHandlerTest { - .withPageTransition(PageTransition.FORM_SUBMIT) +@@ -299,14 +299,12 @@ public class ExternalNavigationHandlerTest { .withIsRedirect(true) - .withHasUserGesture(false) + .withHasUserGesture(true) + .withRedirectHandler(handler) - .expecting(OverrideUrlLoadingResultType.OVERRIDE_WITH_EXTERNAL_INTENT, - START_OTHER_ACTIVITY); + .expecting(OverrideUrlLoadingResultType.NO_OVERRIDE, IGNORE); checkUrl("http://youtube.com://") .withPageTransition(PageTransition.FORM_SUBMIT) .withIsRedirect(true) - .withHasUserGesture(false) + .withHasUserGesture(true) - .expecting(OverrideUrlLoadingResultType.OVERRIDE_WITH_EXTERNAL_INTENT, - START_OTHER_ACTIVITY); + .expecting(OverrideUrlLoadingResultType.NO_OVERRIDE, IGNORE); - } - @Test -@@ -2908,6 +2906,11 @@ public class ExternalNavigationHandlerTest { + // If the page matches the referrer, then continue loading in Chrome. + checkUrl("http://youtube.com://") +@@ -2891,6 +2889,11 @@ public class ExternalNavigationHandlerTest { && !packageName.equals(INVALID_WEBAPK_PACKAGE_NAME); } diff --git a/build/patches/Revert-clipboard-user-gesture-requirement-removal.patch b/build/patches/Revert-clipboard-user-gesture-requirement-removal.patch index 98775e61..04d15fd0 100644 --- a/build/patches/Revert-clipboard-user-gesture-requirement-removal.patch +++ b/build/patches/Revert-clipboard-user-gesture-requirement-removal.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc --- a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc +++ b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc -@@ -543,11 +543,7 @@ void ClipboardPromise::RequestPermission( +@@ -545,11 +545,7 @@ void ClipboardPromise::RequestPermission( LocalFrame::HasTransientUserActivation(GetLocalFrame()); base::UmaHistogramBoolean("Blink.Clipboard.HasTransientUserActivation", has_transient_user_activation); diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index ca655c1f..26545c22 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4225,6 +4225,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4335,6 +4335,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableVulkanDescription, kOsWin | kOsLinux | kOsAndroid, FEATURE_VALUE_TYPE(features::kVulkan)}, #if BUILDFLAG(IS_ANDROID) @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1415,6 +1415,11 @@ +@@ -1451,6 +1451,11 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 110 }, @@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3844,6 +3844,10 @@ const char kReadLaterDescription[] = +@@ -3988,6 +3988,10 @@ const char kReadLaterDescription[] = "Allow users to save tabs for later. Enables a new button and menu for " "accessing tabs saved for later."; @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2192,6 +2192,9 @@ extern const char kQueryTilesSegmentationDescription[]; +@@ -2275,6 +2275,9 @@ extern const char kQueryTilesSegmentationDescription[]; extern const char kQueryTilesSwapTrendingName[]; extern const char kQueryTilesSwapTrendingDescription[]; diff --git a/build/patches/Revert-flags-remove-num-raster-threads.patch b/build/patches/Revert-flags-remove-num-raster-threads.patch index 0d56ab84..dc19e665 100644 --- a/build/patches/Revert-flags-remove-num-raster-threads.patch +++ b/build/patches/Revert-flags-remove-num-raster-threads.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -354,6 +354,15 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { +@@ -356,6 +356,15 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { "single-fullscreen,single-on-top,underlay"}, }; @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kTouchSelectionStrategyCharacter, -@@ -4445,6 +4454,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4560,6 +4569,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(mojo::core::kMojoLinuxChannelSharedMem)}, #endif #if BUILDFLAG(IS_ANDROID) @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -4603,6 +4603,11 @@ +@@ -4752,6 +4752,11 @@ "owners": [ "yhirano", "network-service-dev" ], "expiry_milestone": 120 }, @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1905,6 +1905,14 @@ const char kOmitCorsClientCertDescription[] = +@@ -1966,6 +1966,14 @@ const char kOmitCorsClientCertDescription[] = "credential mode disallows. Without this flag enabled, Chrome will always " "try sending client certificates regardless of the credential mode."; @@ -77,7 +77,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1081,6 +1081,13 @@ extern const char kOriginAgentClusterDefaultDescription[]; +@@ -1117,6 +1117,13 @@ extern const char kOriginAgentClusterDefaultDescription[]; extern const char kOmitCorsClientCertName[]; extern const char kOmitCorsClientCertDescription[]; diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index a0fdbb5f..75521390 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -19,8 +19,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../renderer_host/policy_container_host.cc | 2 +- content/renderer/policy_container_util.cc | 1 + - .../public/mojom/frame/policy_container.mojom | 3 ++ - .../public/platform/web_policy_container.h | 2 ++ + .../public/mojom/frame/policy_container.mojom | 2 ++ + .../public/platform/web_policy_container.h | 1 + .../execution_context/execution_context.cc | 9 +++++ .../execution_context/execution_context.h | 4 +++ .../core/exported/web_shared_worker_impl.cc | 1 + @@ -57,20 +57,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 40 files changed, 197 insertions(+), 25 deletions(-) + 40 files changed, 195 insertions(+), 25 deletions(-) diff --git a/content/browser/renderer_host/policy_container_host.cc b/content/browser/renderer_host/policy_container_host.cc --- a/content/browser/renderer_host/policy_container_host.cc +++ b/content/browser/renderer_host/policy_container_host.cc -@@ -188,7 +188,7 @@ void PolicyContainerPolicies::AddContentSecurityPolicies( +@@ -201,7 +201,7 @@ void PolicyContainerPolicies::AddContentSecurityPolicies( blink::mojom::PolicyContainerPoliciesPtr PolicyContainerPolicies::ToMojoPolicyContainerPolicies() const { return blink::mojom::PolicyContainerPolicies::New( - cross_origin_embedder_policy.value, referrer_policy, + cross_origin_embedder_policy.value, referrer_policy, ip_address_space, - mojo::Clone(content_security_policies), is_anonymous, sandbox_flags); + mojo::Clone(content_security_policies), is_anonymous, sandbox_flags, + ip_address_space, can_navigate_top_without_user_gesture); } - diff --git a/content/renderer/policy_container_util.cc b/content/renderer/policy_container_util.cc --- a/content/renderer/policy_container_util.cc +++ b/content/renderer/policy_container_util.cc @@ -85,15 +85,7 @@ diff --git a/content/renderer/policy_container_util.cc b/content/renderer/policy diff --git a/third_party/blink/public/mojom/frame/policy_container.mojom b/third_party/blink/public/mojom/frame/policy_container.mojom --- a/third_party/blink/public/mojom/frame/policy_container.mojom +++ b/third_party/blink/public/mojom/frame/policy_container.mojom -@@ -6,6 +6,7 @@ module blink.mojom; - - import "services/network/public/mojom/content_security_policy.mojom"; - import "services/network/public/mojom/cross_origin_embedder_policy.mojom"; -+import "services/network/public/mojom/ip_address_space.mojom"; - import "services/network/public/mojom/referrer_policy.mojom"; - import "services/network/public/mojom/web_sandbox_flags.mojom"; - -@@ -18,6 +19,8 @@ struct PolicyContainerPolicies { +@@ -19,6 +19,8 @@ struct PolicyContainerPolicies { network.mojom.CrossOriginEmbedderPolicyValue.kNone; network.mojom.ReferrerPolicy referrer_policy = network.mojom.ReferrerPolicy.kDefault; @@ -105,15 +97,7 @@ diff --git a/third_party/blink/public/mojom/frame/policy_container.mojom b/third diff --git a/third_party/blink/public/platform/web_policy_container.h b/third_party/blink/public/platform/web_policy_container.h --- a/third_party/blink/public/platform/web_policy_container.h +++ b/third_party/blink/public/platform/web_policy_container.h -@@ -6,6 +6,7 @@ - #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_POLICY_CONTAINER_H_ - - #include "services/network/public/mojom/cross_origin_embedder_policy.mojom-shared.h" -+#include "services/network/public/mojom/ip_address_space.mojom-shared.h" - #include "services/network/public/mojom/referrer_policy.mojom-shared.h" - #include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h" - #include "third_party/blink/public/mojom/frame/policy_container.mojom-shared.h" -@@ -22,6 +23,7 @@ struct WebPolicyContainerPolicies { +@@ -23,6 +23,7 @@ struct WebPolicyContainerPolicies { network::mojom::CrossOriginEmbedderPolicyValue::kNone; network::mojom::ReferrerPolicy referrer_policy = network::mojom::ReferrerPolicy::kDefault; @@ -124,7 +108,7 @@ diff --git a/third_party/blink/public/platform/web_policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -530,6 +530,15 @@ void ExecutionContext::SetReferrerPolicy( +@@ -526,6 +526,15 @@ void ExecutionContext::SetReferrerPolicy( policy_container_->UpdateReferrerPolicy(referrer_policy); } @@ -151,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -387,6 +388,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -386,6 +387,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -182,8 +166,8 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_p + container->policies.ip_address_space, ConvertToMojoBlink( std::move(container->policies.content_security_policies)), - container->policies.is_anonymous, container->policies.sandbox_flags); -@@ -50,12 +51,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() + container->policies.is_anonymous, container->policies.sandbox_flags, +@@ -52,12 +53,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() return policies_->referrer_policy; } @@ -237,7 +221,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8002,6 +8002,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8008,6 +8008,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -335,7 +319,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc -@@ -259,12 +259,12 @@ void DedicatedWorker::OnHostCreated( +@@ -273,12 +273,12 @@ void DedicatedWorker::OnHostCreated( if (options_->type() == script_type_names::kModule) { // Specify empty source code etc. here because scripts will be fetched on // the worker thread. @@ -354,7 +338,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third return; } NOTREACHED() << "Invalid type: " << IDLEnumAsString(options_->type()); -@@ -312,6 +312,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -326,6 +326,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -362,7 +346,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); } -@@ -375,6 +376,7 @@ void DedicatedWorker::OnFinished( +@@ -389,6 +390,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -370,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third classic_script_loader_->SourceText(), RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); probe::ScriptImported(GetExecutionContext(), -@@ -391,6 +393,7 @@ void DedicatedWorker::ContinueStart( +@@ -405,6 +407,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -378,7 +362,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -398,7 +401,8 @@ void DedicatedWorker::ContinueStart( +@@ -412,7 +415,8 @@ void DedicatedWorker::ContinueStart( context_proxy_->StartWorkerGlobalScope( CreateGlobalScopeCreationParams( script_url, referrer_policy, @@ -388,7 +372,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(worker_main_script_load_params), options_, script_url, *outside_fetch_client_settings_object_, v8_stack_trace_id_, source_code, reject_coep_unsafe_none, token_, -@@ -436,7 +440,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -450,7 +454,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( const KURL& script_url, network::mojom::ReferrerPolicy referrer_policy, Vector @@ -398,7 +382,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third base::UnguessableToken parent_devtools_token; std::unique_ptr settings; ExecutionContext* execution_context = GetExecutionContext(); -@@ -481,6 +486,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -495,6 +500,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -409,7 +393,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h --- a/third_party/blink/renderer/core/workers/dedicated_worker.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker.h -@@ -125,6 +125,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -133,6 +133,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -417,7 +401,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -133,7 +134,8 @@ class CORE_EXPORT DedicatedWorker final +@@ -141,7 +142,8 @@ class CORE_EXPORT DedicatedWorker final const KURL& script_url, network::mojom::ReferrerPolicy, Vector @@ -448,7 +432,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -228,6 +230,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -214,6 +216,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -456,7 +440,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { // Step 14.3. "Set worker global scope's url to response's url." -@@ -241,6 +244,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -227,6 +230,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -466,7 +450,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -453,6 +459,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -439,6 +445,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -488,7 +472,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc -@@ -95,6 +95,7 @@ class DedicatedWorkerThreadForTest final : public DedicatedWorkerThread { +@@ -101,6 +101,7 @@ class DedicatedWorkerThreadForTest final : public DedicatedWorkerThread { EXPECT_TRUE(IsCurrentThread()); To(GlobalScope()) ->Initialize(script_url, network::mojom::ReferrerPolicy::kDefault, @@ -496,7 +480,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc b/ Vector(), nullptr /* response_origin_trial_tokens */); } -@@ -153,6 +154,7 @@ class DedicatedWorkerMessagingProxyForTest +@@ -162,6 +163,7 @@ class DedicatedWorkerMessagingProxyForTest false /* starter_secure_context */, CalculateHttpsState(security_origin.get()), nullptr /* worker_clients */, nullptr /* content_settings_client */, @@ -690,7 +674,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc --- a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc -@@ -216,6 +216,7 @@ class ThreadedWorkletMessagingProxyForTest +@@ -217,6 +217,7 @@ class ThreadedWorkletMessagingProxyForTest GetExecutionContext()->IsSecureContext(), GetExecutionContext()->GetHttpsState(), worker_clients, nullptr /* content_settings_client */, @@ -806,7 +790,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h" -@@ -65,11 +66,15 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope { +@@ -80,11 +81,15 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -822,7 +806,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -145,6 +150,7 @@ class WorkerThreadForTest : public WorkerThread { +@@ -162,6 +167,7 @@ class WorkerThreadForTest : public WorkerThread { false /* starter_secure_context */, CalculateHttpsState(security_origin), worker_clients, nullptr /* content_settings_client */, diff --git a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch index ba9e29f8..fb90cdf8 100644 --- a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch +++ b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -194,6 +194,11 @@ android_resources("java_resources") { +@@ -197,6 +197,11 @@ android_resources("java_resources") { "java/res/drawable-xxxhdpi/settings_sensors.png", "java/res/drawable-xxxhdpi/web_asset.png", "java/res/drawable/ic_block.xml", @@ -219,7 +219,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -127,6 +127,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -130,6 +130,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment return "cookies_permission_list"; case ContentSettingsType.FEDERATED_IDENTITY_API: return "federated_identity_api_list"; @@ -228,7 +228,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c case ContentSettingsType.IDLE_DETECTION: return "idle_detection_permission_list"; case ContentSettingsType.JAVASCRIPT: -@@ -493,6 +495,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -504,6 +506,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment if (type == ContentSettingsType.ADS) { setUpAdsPreference(preference); @@ -237,7 +237,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.SOUND) { setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { -@@ -977,6 +981,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1014,6 +1018,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */); } @@ -308,7 +308,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -218,6 +218,15 @@ public final class Website implements Serializable { +@@ -235,6 +235,15 @@ public final class Website implements WebsiteEntry { } else { RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings"); } @@ -327,7 +327,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -61,6 +61,7 @@ public class WebsitePermissionsFetcher { +@@ -64,6 +64,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.AUTOMATIC_DOWNLOADS: case ContentSettingsType.BACKGROUND_SYNC: case ContentSettingsType.BLUETOOTH_SCANNING: @@ -338,7 +338,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -794,6 +794,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( +@@ -825,6 +825,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( case ContentSettingsType::REQUEST_DESKTOP_SITE: case ContentSettingsType::SENSORS: case ContentSettingsType::SOUND: @@ -368,7 +368,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -331,7 +331,7 @@ void ContentSettingsRegistry::Init() { +@@ -318,7 +318,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::PERSISTENT, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -392,7 +392,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -202,6 +202,7 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -203,6 +203,7 @@ bool RendererContentSettingRules::IsRendererContentSetting( return content_type == ContentSettingsType::IMAGES || content_type == ContentSettingsType::JAVASCRIPT || content_type == ContentSettingsType::POPUPS || @@ -400,7 +400,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo content_type == ContentSettingsType::MIXEDSCRIPT || content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || content_type == ContentSettingsType::TIMEZONE_OVERRIDE; -@@ -215,6 +216,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( +@@ -216,6 +217,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( FilterRulesForType(mixed_content_rules, outermost_main_frame_url); FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url); FilterRulesForType(timezone_override_rules, outermost_main_frame_url); @@ -502,7 +502,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -99,6 +99,7 @@ ContentSettingsType kPermissionType[] = { +@@ -102,6 +102,7 @@ ContentSettingsType kPermissionType[] = { ContentSettingsType::ADS, ContentSettingsType::BACKGROUND_SYNC, ContentSettingsType::SOUND, @@ -510,7 +510,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. ContentSettingsType::AUTOMATIC_DOWNLOADS, #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER, -@@ -142,6 +143,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, +@@ -145,6 +146,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, return is_subresource_filter_activated; } diff --git a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch index 1e464d4f..18defa12 100644 --- a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch +++ b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java --- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java -@@ -508,8 +508,29 @@ public class LibraryLoader { +@@ -517,8 +517,29 @@ public class LibraryLoader { // Note: This cannot be done in the build configuration, as otherwise chrome_public_apk cannot // both be used as the basis to ship on L, and the default APK used by developers on 10+. private boolean forceSystemLinker() { diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index 4151a4d8..d5cc23d1 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -495,6 +495,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -506,6 +506,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); @@ -22,7 +22,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); } else if (type == ContentSettingsType.NOTIFICATIONS) { -@@ -818,16 +820,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -855,16 +857,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment private void setUpAdsInformationalBanner() { // Add the informational banner which shows at the top of the UI if ad blocking is // activated on this site. @@ -39,7 +39,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private SiteSettingsCategory getWarningCategory() { -@@ -986,17 +980,35 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1023,17 +1017,35 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment @Nullable Integer currentValue = mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT); @@ -81,7 +81,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Updates the ads list preference based on whether the site is a candidate for blocking. This * has some custom behavior. -@@ -1012,22 +1024,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1049,22 +1061,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setupContentSettingsPreference(preference, null, false); return; } @@ -107,7 +107,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -187,13 +187,18 @@ public final class Website implements Serializable { +@@ -204,13 +204,18 @@ public final class Website implements WebsiteEntry { ContentSettingException exception = getContentSettingException(type); if (type == ContentSettingsType.ADS) { diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 74006140..eceb1a70 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -160,6 +160,7 @@ android_resources("java_resources") { +@@ -163,6 +163,7 @@ android_resources("java_resources") { sources = [ "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-hdpi/permission_background_sync.png", @@ -45,7 +45,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-hdpi/permission_javascript.png", "java/res/drawable-hdpi/permission_javascript_jit.png", "java/res/drawable-hdpi/permission_popups.png", -@@ -168,6 +169,7 @@ android_resources("java_resources") { +@@ -171,6 +172,7 @@ android_resources("java_resources") { "java/res/drawable-hdpi/web_asset.png", "java/res/drawable-mdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-mdpi/permission_background_sync.png", @@ -53,7 +53,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-mdpi/permission_javascript.png", "java/res/drawable-mdpi/permission_javascript_jit.png", "java/res/drawable-mdpi/permission_popups.png", -@@ -176,6 +178,7 @@ android_resources("java_resources") { +@@ -179,6 +181,7 @@ android_resources("java_resources") { "java/res/drawable-mdpi/web_asset.png", "java/res/drawable-xhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xhdpi/permission_background_sync.png", @@ -61,7 +61,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-xhdpi/permission_javascript.png", "java/res/drawable-xhdpi/permission_javascript_jit.png", "java/res/drawable-xhdpi/permission_popups.png", -@@ -184,6 +187,7 @@ android_resources("java_resources") { +@@ -187,6 +190,7 @@ android_resources("java_resources") { "java/res/drawable-xhdpi/web_asset.png", "java/res/drawable-xxhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xxhdpi/permission_background_sync.png", @@ -69,7 +69,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b "java/res/drawable-xxhdpi/permission_javascript.png", "java/res/drawable-xxhdpi/permission_javascript_jit.png", "java/res/drawable-xxhdpi/permission_popups.png", -@@ -192,6 +196,7 @@ android_resources("java_resources") { +@@ -195,6 +199,7 @@ android_resources("java_resources") { "java/res/drawable-xxhdpi/web_asset.png", "java/res/drawable-xxxhdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-xxxhdpi/permission_background_sync.png", @@ -211,7 +211,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -131,6 +131,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -134,6 +134,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment return "autoplay_permission_list"; case ContentSettingsType.IDLE_DETECTION: return "idle_detection_permission_list"; @@ -220,7 +220,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c case ContentSettingsType.JAVASCRIPT: return "javascript_permission_list"; case ContentSettingsType.JAVASCRIPT_JIT: -@@ -505,6 +507,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -516,6 +518,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpJavascriptPreference(preference); } else if (type == ContentSettingsType.COOKIES) { setUpCookiesPreference(preference); @@ -229,7 +229,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT_JIT) { -@@ -1100,6 +1104,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1137,6 +1141,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment mSite.isEmbargoed(ContentSettingsType.REQUEST_DESKTOP_SITE)); } @@ -312,7 +312,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -202,6 +202,13 @@ public final class Website implements Serializable { +@@ -219,6 +219,13 @@ public final class Website implements WebsiteEntry { /*isEmbargoed=*/false); setContentSettingException(type, exception); } @@ -329,7 +329,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -64,6 +64,7 @@ public class WebsitePermissionsFetcher { +@@ -67,6 +67,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.AUTOPLAY: case ContentSettingsType.COOKIES: case ContentSettingsType.FEDERATED_IDENTITY_API: @@ -340,7 +340,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -789,6 +789,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( +@@ -820,6 +820,7 @@ static void JNI_WebsitePreferenceBridge_SetContentSettingEnabled( case ContentSettingsType::BACKGROUND_SYNC: case ContentSettingsType::COOKIES: case ContentSettingsType::FEDERATED_IDENTITY_API: @@ -361,7 +361,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen JavaScript -@@ -224,6 +227,9 @@ +@@ -232,6 +235,9 @@ Site %1$sgoogle.com added @@ -419,7 +419,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -91,9 +91,7 @@ ContentSettingsType kPermissionType[] = { +@@ -94,9 +94,7 @@ ContentSettingsType kPermissionType[] = { ContentSettingsType::SENSORS, ContentSettingsType::NOTIFICATIONS, ContentSettingsType::JAVASCRIPT, @@ -427,9 +427,9 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. ContentSettingsType::IMAGES, -#endif ContentSettingsType::POPUPS, - ContentSettingsType::WINDOW_PLACEMENT, + ContentSettingsType::WINDOW_MANAGEMENT, ContentSettingsType::ADS, -@@ -149,6 +147,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, +@@ -152,6 +150,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info, return true; } @@ -461,7 +461,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in - IDS_SITE_SETTINGS_TYPE_IMAGES_MID_SENTENCE}, {ContentSettingsType::SERIAL_GUARD, IDS_SITE_SETTINGS_TYPE_SERIAL_PORTS, IDS_SITE_SETTINGS_TYPE_SERIAL_PORTS_MID_SENTENCE}, - {ContentSettingsType::WINDOW_PLACEMENT, + {ContentSettingsType::WINDOW_MANAGEMENT, diff --git a/components/site_settings_strings.grdp b/components/site_settings_strings.grdp --- a/components/site_settings_strings.grdp +++ b/components/site_settings_strings.grdp diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index b26ae4ec..a26db06e 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -317,18 +317,12 @@ config("compiler") { +@@ -314,18 +314,12 @@ config("compiler") { cflags += [ "-fstack-protector" ] } } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 7c9b0d1f..5bda9b7b 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -63,8 +63,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C /** * A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */ -@@ -232,6 +236,18 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { - PrivacySandboxBridge.setFirstPartySetsDataAccessEnabled(enabled); +@@ -242,6 +246,18 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { + return PrivacySandboxBridge.getFirstPartySetOwner(memberOrigin); } + // open wiki page for documentation about the timezone override feature @@ -85,15 +85,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -83,6 +83,7 @@ android_library("java") { - "java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java", +@@ -86,6 +86,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", + "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", + "java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java" ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] resources_package = "org.chromium.components.browser_ui.site_settings" -@@ -211,6 +212,8 @@ android_resources("java_resources") { +@@ -214,6 +215,8 @@ android_resources("java_resources") { "java/res/xml/single_website_preferences.xml", "java/res/xml/site_settings_preferences.xml", "java/res/xml/website_preferences.xml", @@ -510,7 +510,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -135,6 +135,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -138,6 +138,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment return "popup_permission_list"; case ContentSettingsType.SOUND: return "sound_permission_list"; @@ -519,7 +519,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c case ContentSettingsType.AR: return "ar_permission_list"; case ContentSettingsType.MEDIASTREAM_CAMERA: -@@ -891,11 +893,13 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -928,11 +930,13 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment if (value == null) return; setUpPreferenceCommon(preference, value); @@ -534,7 +534,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c switchPreference.setOnPreferenceChangeListener(this); @ContentSettingsType int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); -@@ -1100,7 +1104,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1137,7 +1141,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment } mSite.setContentSetting(browserContextHandle, type, permission); @@ -601,9 +601,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java -@@ -145,6 +145,8 @@ public interface SiteSettingsDelegate { +@@ -158,6 +158,8 @@ public interface SiteSettingsDelegate { */ - void setFirstPartySetsDataAccessEnabled(boolean enabled); + String getFirstPartySetOwner(String memberOrigin); + void launchTimeZoneOverrideHelpAndFeedbackActivity(Activity currentActivity); + @@ -811,7 +811,7 @@ new file mode 100755 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -231,6 +231,17 @@ public final class Website implements Serializable { +@@ -248,6 +248,17 @@ public final class Website implements WebsiteEntry { } else { RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings"); } @@ -832,7 +832,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -68,6 +68,7 @@ public class WebsitePermissionsFetcher { +@@ -71,6 +71,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.POPUPS: case ContentSettingsType.REQUEST_DESKTOP_SITE: case ContentSettingsType.SOUND: @@ -840,19 +840,19 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return WebsitePermissionsType.CONTENT_SETTING_EXCEPTION; case ContentSettingsType.AR: case ContentSettingsType.CLIPBOARD_READ_WRITE: -@@ -148,6 +149,8 @@ public class WebsitePermissionsFetcher { - for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES; type++) { - addFetcherForContentSettingsType(queue, type); - } +@@ -208,6 +209,8 @@ public class WebsitePermissionsFetcher { + for (@ContentSettingsType int type = 0; type < ContentSettingsType.NUM_TYPES; type++) { + addFetcherForContentSettingsType(queue, type); + } + queue.add(new ExceptionInfoFetcher(ContentSettingsType.TIMEZONE_OVERRIDE)); + - queue.add(new PermissionsAvailableCallbackRunner(callback)); - queue.next(); - } + } + + /** diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -222,6 +222,8 @@ public class WebsitePreferenceBridge { +@@ -243,6 +243,8 @@ public class WebsitePreferenceBridge { switch (contentSettingsType) { case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER: return true; @@ -861,7 +861,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c default: return false; } -@@ -371,6 +373,14 @@ public class WebsitePreferenceBridge { +@@ -392,6 +394,14 @@ public class WebsitePreferenceBridge { return WebsitePreferenceBridgeJni.get().toHostOnlyPattern(pattern); } @@ -876,7 +876,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @NativeMethods public interface Natives { boolean isNotificationEmbargoedForOrigin( -@@ -434,5 +444,7 @@ public class WebsitePreferenceBridge { +@@ -456,5 +466,7 @@ public class WebsitePreferenceBridge { boolean getLocationAllowedByPolicy(BrowserContextHandle browserContextHandle); String toDomainWildcardPattern(String pattern); String toHostOnlyPattern(String pattern); @@ -887,7 +887,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -985,3 +985,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1016,3 +1016,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( ContentSettingsPattern::FromString(pattern_string)); return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -920,7 +920,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen Desktop site -@@ -563,6 +566,38 @@ +@@ -587,6 +590,38 @@ Block sites from playing protected content @@ -962,7 +962,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -88,6 +88,8 @@ void PrefProvider::RegisterProfilePrefs( +@@ -90,6 +90,8 @@ void PrefProvider::RegisterProfilePrefs( info->GetPrefRegistrationFlags()); } @@ -971,7 +971,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov // Obsolete prefs ---------------------------------------------------------- // These prefs have been removed, but need to be registered so they can -@@ -179,6 +181,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -182,6 +184,10 @@ PrefProvider::PrefProvider(PrefService* prefs, event_args->set_number_of_exceptions( num_exceptions); // PrefProvider::PrefProvider. }); @@ -982,7 +982,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -342,4 +348,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { +@@ -346,4 +352,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { clock_ = clock; } @@ -1021,7 +1021,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -658,6 +658,18 @@ void ContentSettingsRegistry::Init() { +@@ -645,6 +645,18 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::PERSISTENT, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); @@ -1091,7 +1091,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -203,7 +203,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -204,7 +204,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( content_type == ContentSettingsType::JAVASCRIPT || content_type == ContentSettingsType::POPUPS || content_type == ContentSettingsType::MIXEDSCRIPT || @@ -1101,7 +1101,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -213,6 +214,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( +@@ -214,6 +215,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( FilterRulesForType(popup_redirect_rules, outermost_main_frame_url); FilterRulesForType(mixed_content_rules, outermost_main_frame_url); FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url); @@ -1168,7 +1168,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h --- a/components/content_settings/core/common/content_settings_types.h +++ b/components/content_settings/core/common/content_settings_types.h -@@ -225,6 +225,9 @@ enum class ContentSettingsType : int32_t { +@@ -226,6 +226,9 @@ enum class ContentSettingsType : int32_t { // by the File System Access API. FILE_SYSTEM_LAST_PICKED_DIRECTORY, diff --git a/build/patches/Unexpire-tab-groups-flags.patch b/build/patches/Unexpire-tab-groups-flags.patch index 819bd89f..b9255459 100644 --- a/build/patches/Unexpire-tab-groups-flags.patch +++ b/build/patches/Unexpire-tab-groups-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2982,7 +2982,7 @@ +@@ -3095,7 +3095,7 @@ { "name": "enable-tab-groups", "owners": [ "memex-team@google.com" ], @@ -23,7 +23,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js }, { "name": "enable-tab-groups-continuation", -@@ -2997,7 +2997,7 @@ +@@ -3110,7 +3110,7 @@ { "name": "enable-tab-groups-ui-improvements", "owners": [ "memex-team@google.com" ], @@ -35,26 +35,28 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -889,13 +889,13 @@ const base::Feature kTabEngagementReportingAndroid{ - "TabEngagementReportingAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -1013,7 +1013,7 @@ BASE_FEATURE(kTabEngagementReportingAndroid, - const base::Feature kTabGroupsAndroid{"TabGroupsAndroid", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kTabGroupsAndroid, + "TabGroupsAndroid", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kTabGroupsContinuationAndroid{ - "TabGroupsContinuationAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kTabGroupsContinuationAndroid, + "TabGroupsContinuationAndroid", +@@ -1021,7 +1021,7 @@ BASE_FEATURE(kTabGroupsContinuationAndroid, - const base::Feature kTabGroupsUiImprovementsAndroid{ -- "TabGroupsUiImprovementsAndroid", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "TabGroupsUiImprovementsAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kTabGroupsUiImprovementsAndroid, + "TabGroupsUiImprovementsAndroid", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); - const base::Feature kTabGroupsForTablets{"TabGroupsForTablets", - base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kTabGroupsForTablets, + "TabGroupsForTablets", diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -@@ -99,7 +99,7 @@ public class CachedFeatureFlags { +@@ -102,7 +102,7 @@ public class CachedFeatureFlags { .put(ChromeFeatureList.STORE_HOURS, false) .put(ChromeFeatureList.SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, true) .put(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, true) @@ -62,6 +64,6 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + .put(ChromeFeatureList.TAB_GROUPS_ANDROID, false) .put(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, false) .put(ChromeFeatureList.TAB_GROUPS_FOR_TABLETS, false) - .put(ChromeFeatureList.TAB_STRIP_IMPROVEMENTS, false) + .put(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, false) -- 2.25.1 diff --git a/build/patches/Update-i18n-zh_CN-support.patch b/build/patches/Update-i18n-zh_CN-support.patch index 00880edd..cc4aeb77 100644 --- a/build/patches/Update-i18n-zh_CN-support.patch +++ b/build/patches/Update-i18n-zh_CN-support.patch @@ -4,30 +4,17 @@ Subject: Update i18n zh_CN support License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../resources/generated_resources_zh-CN.xtb | 4 +- .../resources/google_chrome_strings_zh-CN.xtb | 3 +- .../android_chrome_strings_zh-CN.xtb | 72 ++++++++++++++++++- .../translations/browser_ui_strings_zh-CN.xtb | 26 ++++++- .../strings/components_strings_zh-CN.xtb | 31 +++++++- .../translations/android_ui_strings_zh-CN.xtb | 3 +- - 6 files changed, 133 insertions(+), 6 deletions(-) + 5 files changed, 130 insertions(+), 5 deletions(-) -diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb ---- a/chrome/app/resources/generated_resources_zh-CN.xtb -+++ b/chrome/app/resources/generated_resources_zh-CN.xtb -@@ -8728,4 +8728,6 @@ - 查看与亲朋好友相聚时刻的回忆集锦 - 您需要开启 Chrome 同步才能使用 Wi-Fi 同步功能。了解详情 - 检查(&N) -- -\ No newline at end of file -+广告拦截 -+配置广告拦截和过滤规则地址 -+ diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb --- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb -@@ -403,4 +403,5 @@ +@@ -412,4 +412,5 @@ 如需在您的所有设备上访问自己的 Chrome 信息,请登录您的帐号,然后开启同步功能。 Google Chrome 是您的默认浏览器 可用于切换 Chrome 个人资料 @@ -38,7 +25,7 @@ diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/r diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb -@@ -1566,4 +1566,74 @@ Privacy Sandbox 试用版功能尚处于积极开发阶段,目前只能在部 +@@ -1563,4 +1563,74 @@ Privacy Sandbox 试用版功能尚处于积极开发阶段,目前只能在部 常规 个标签页 动态卡片上的菜单已关闭 @@ -118,7 +105,7 @@ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strin diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb -@@ -388,4 +388,28 @@ +@@ -396,4 +396,28 @@ 这是一个危险网页 移除此网站? 已存储的数据 @@ -152,7 +139,7 @@ diff --git a/components/browser_ui/strings/android/translations/browser_ui_strin diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb -@@ -3087,4 +3087,33 @@ +@@ -3150,4 +3150,33 @@ </ul> JIS B1 来自 Google Pay diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch index b678e1a4..afd2d39e 100644 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ b/build/patches/Use-4-tile-rows-never-show-logo.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -122,7 +122,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -108,7 +108,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { */ private boolean mHasShownView; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardLogo; -@@ -349,7 +349,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -328,7 +328,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { boolean isScrollableMvtEnabled, boolean searchProviderIsGoogle) { assert mMvTilesContainerLayout != null; @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL if (searchProviderIsGoogle && QueryTileUtils.isQueryTilesEnabledOnNTP()) { maxRows = QueryTileSection.getMaxRowsForMostVisitedTiles(getContext()); } -@@ -500,7 +500,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { +@@ -473,7 +473,7 @@ public class NewTabPageLayout extends LinearLayout implements VrModeObserver { && mInitialized) { return; } @@ -67,14 +67,14 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h --- a/components/history/core/browser/top_sites_impl.h +++ b/components/history/core/browser/top_sites_impl.h -@@ -40,7 +40,7 @@ namespace history { - class TopSitesImplTest; +@@ -40,7 +40,7 @@ class TopSitesImplTest; + struct SitesAndQueriesRequest; // How many top sites to store in the cache. -static constexpr size_t kTopSitesNumber = 10; +static constexpr size_t kTopSitesNumber = 4 * 4 + 2; - // Returns true if it can set |url| to a valid canonical search results page - // URL for |default_provider| given the search terms. + // This class allows requests for most visited urls on any thread. All other + // methods must be invoked on the UI thread. All mutations to internal state -- 2.25.1 diff --git a/build/patches/Use-64-bit-WebView-processes.patch b/build/patches/Use-64-bit-WebView-processes.patch index 4eeac269..a2f31a50 100644 --- a/build/patches/Use-64-bit-WebView-processes.patch +++ b/build/patches/Use-64-bit-WebView-processes.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/nonembedded/java/AndroidManifest.xml b/android_webview/nonembedded/java/AndroidManifest.xml --- a/android_webview/nonembedded/java/AndroidManifest.xml +++ b/android_webview/nonembedded/java/AndroidManifest.xml -@@ -38,7 +38,6 @@ by a child template that "extends" this file. +@@ -37,7 +37,6 @@ by a child template that "extends" this file. android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview" android:name="{{ application_name|default('org.chromium.android_webview.nonembedded.WebViewApkApplication') }}" android:multiArch="true" diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 93d2dabb..b6f18b14 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -73,7 +73,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -661,4 +661,6 @@ chrome_java_resources = [ +@@ -659,4 +659,6 @@ chrome_java_resources = [ "java/res/xml/privacy_preferences.xml", "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", @@ -83,7 +83,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -893,6 +893,7 @@ chrome_java_sources = [ +@@ -896,6 +896,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -909,7 +909,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -1014,6 +1014,9 @@ public final class ChromePreferenceKeys { +@@ -1034,6 +1034,9 @@ public final class ChromePreferenceKeys { public static final String BLUETOOTH_NOTIFICATION_IDS = "Chrome.Bluetooth.NotificationIds"; public static final String USB_NOTIFICATION_IDS = "Chrome.USB.NotificationIds"; @@ -919,7 +919,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * These values are currently used as SharedPreferences keys, along with the keys in * {@link LegacyChromePreferenceKeys#getKeysInUse()}. Add new SharedPreferences keys -@@ -1155,6 +1158,8 @@ public final class ChromePreferenceKeys { +@@ -1179,6 +1182,8 @@ public final class ChromePreferenceKeys { SYNC_PROMO_TOTAL_SHOW_COUNT, START_NEXT_SHOW_ON_STARTUP_DECISION_MS, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1069,7 +1069,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1245,6 +1245,14 @@ extern const char kDesktopSharingHubEnabled[]; +@@ -1250,6 +1250,14 @@ extern const char kDesktopSharingHubEnabled[]; #if !BUILDFLAG(IS_ANDROID) extern const char kLastWhatsNewVersion[]; #endif @@ -1147,7 +1147,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc --- a/content/browser/renderer_host/navigation_controller_android.cc +++ b/content/browser/renderer_host/navigation_controller_android.cc -@@ -253,6 +253,7 @@ void NavigationControllerAndroid::LoadUrl( +@@ -255,6 +255,7 @@ NavigationControllerAndroid::LoadUrl( jboolean can_load_local_resources, jboolean is_renderer_initiated, jboolean should_replace_current_entry, @@ -1155,15 +1155,15 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaParamRef& j_initiator_origin, jboolean has_user_gesture, jboolean should_clear_history_list, -@@ -324,6 +325,9 @@ void NavigationControllerAndroid::LoadUrl( +@@ -326,6 +327,9 @@ NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); + params.override_user_agent = static_cast( + user_agent_override_option); + - navigation_controller_->LoadURLWithParams(params); - } + base::WeakPtr handle = + navigation_controller_->LoadURLWithParams(params); diff --git a/content/browser/renderer_host/navigation_controller_android.h b/content/browser/renderer_host/navigation_controller_android.h --- a/content/browser/renderer_host/navigation_controller_android.h @@ -1179,7 +1179,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3425,6 +3425,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3436,6 +3436,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedMedia, switches::kLacrosUseChromeosProtectedAv1, #endif @@ -1198,7 +1198,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/bind.h" #include "base/check_op.h" #include "base/command_line.h" -@@ -2797,6 +2798,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -2799,6 +2800,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { !renderer_preferences_.user_agent_override.ua_metadata_override->mobile) #endif prefs.viewport_meta_enabled = false; @@ -1211,7 +1211,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java -@@ -182,6 +182,7 @@ import org.chromium.url.Origin; +@@ -183,6 +183,7 @@ import org.chromium.url.Origin; params.getBaseUrl(), params.getVirtualUrlForDataUrl(), params.getDataUrlAsString(), params.getCanLoadLocalResources(), params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), @@ -1219,8 +1219,8 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh params.getInitiatorOrigin(), params.getHasUserGesture(), params.getShouldClearHistoryList(), inputStart, params.getNavigationUIDataSupplier() == null -@@ -370,7 +371,7 @@ import org.chromium.url.Origin; - int referrerPolicy, int uaOverrideOption, String extraHeaders, +@@ -375,7 +376,7 @@ import org.chromium.url.Origin; + String referrerUrl, int referrerPolicy, int uaOverrideOption, String extraHeaders, ResourceRequestBody postData, String baseUrlForDataUrl, String virtualUrlForDataUrl, String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, - boolean shouldReplaceCurrentEntry, Origin initiatorOrigin, boolean hasUserGesture, @@ -1231,7 +1231,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -904,7 +904,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -908,7 +908,6 @@ void RenderThreadImpl::InitializeRenderer( const std::string& reduced_user_agent, const blink::UserAgentMetadata& user_agent_metadata, const std::vector& cors_exempt_header_list) { diff --git a/build/patches/Viewport-Protection.patch b/build/patches/Viewport-Protection.patch index df8d00f9..a2926516 100644 --- a/build/patches/Viewport-Protection.patch +++ b/build/patches/Viewport-Protection.patch @@ -45,7 +45,7 @@ The feature is controlled by a site setting (default disabled) diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -95,6 +95,9 @@ android_library("java") { +@@ -98,6 +98,9 @@ android_library("java") { sources += [ "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java", ] @@ -230,7 +230,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -710,6 +710,20 @@ void ContentSettingsRegistry::Init() { +@@ -697,6 +697,20 @@ void ContentSettingsRegistry::Init() { /*show_into_info_page*/ true, /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBRTC, /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBRTC_MID_SENTENCE); @@ -266,7 +266,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -207,7 +207,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -208,7 +208,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || content_type == ContentSettingsType::TIMEZONE_OVERRIDE || content_type == ContentSettingsType::WEBGL || @@ -276,7 +276,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -221,6 +222,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( +@@ -222,6 +223,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( FilterRulesForType(autoplay_rules, outermost_main_frame_url); FilterRulesForType(webgl_rules, outermost_main_frame_url); FilterRulesForType(webrtc_rules, outermost_main_frame_url); @@ -335,7 +335,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h --- a/components/content_settings/core/common/content_settings_types.h +++ b/components/content_settings/core/common/content_settings_types.h -@@ -280,6 +280,8 @@ enum class ContentSettingsType : int32_t { +@@ -281,6 +281,8 @@ enum class ContentSettingsType : int32_t { WEBRTC, @@ -389,7 +389,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1513,8 +1513,14 @@ scoped_refptr StyleResolver::InitialStyleForElement() const { +@@ -1557,8 +1557,14 @@ scoped_refptr StyleResolver::InitialStyleForElement() const { initial_style->SetRtlOrdering( GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -417,7 +417,7 @@ diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/ namespace blink { -@@ -141,8 +142,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState { +@@ -143,8 +144,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState { // Note that these values are adjusted to counter the effects of zoom, so that // values exposed via DOM APIs are invariant under zooming. @@ -478,7 +478,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1028,7 +1028,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1031,7 +1031,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -490,7 +490,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1407,6 +1407,11 @@ int LocalDOMWindow::outerHeight() const { +@@ -1437,6 +1437,11 @@ int LocalDOMWindow::outerHeight() const { if (!page) return 0; @@ -502,7 +502,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p ChromeClient& chrome_client = page->GetChromeClient(); if (page->GetSettings().GetReportScreenSizeInPhysicalPixelsQuirk()) { return static_cast( -@@ -1432,6 +1437,11 @@ int LocalDOMWindow::outerWidth() const { +@@ -1462,6 +1467,11 @@ int LocalDOMWindow::outerWidth() const { if (!page) return 0; @@ -514,7 +514,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p ChromeClient& chrome_client = page->GetChromeClient(); if (page->GetSettings().GetReportScreenSizeInPhysicalPixelsQuirk()) { return static_cast( -@@ -1619,7 +1629,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1650,7 +1660,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } void LocalDOMWindow::scrollBy(double x, double y) const { -@@ -2177,6 +2188,20 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2203,6 +2214,20 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -548,7 +548,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p 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 -@@ -1275,6 +1275,10 @@ gfx::SizeF LocalFrame::ResizePageRectsKeepingRatio( +@@ -1278,6 +1278,10 @@ gfx::SizeF LocalFrame::ResizePageRectsKeepingRatio( return gfx::SizeF(result_width, result_height); } @@ -559,7 +559,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetPageZoomFactor(float factor) { SetPageAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1414,12 +1418,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1417,12 +1421,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -581,7 +581,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -378,13 +378,14 @@ class CORE_EXPORT LocalFrame final +@@ -381,13 +381,14 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetPageZoomFactor(float); @@ -598,7 +598,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -920,6 +921,7 @@ class CORE_EXPORT LocalFrame final +@@ -934,6 +935,7 @@ class CORE_EXPORT LocalFrame final unsigned hidden_ : 1; float page_zoom_factor_; @@ -677,7 +677,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc -@@ -348,7 +348,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( +@@ -349,7 +349,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( visual_properties.page_scale_factor = ancestor_widget->PageScaleInMainFrame(); visual_properties.is_pinch_gesture_active = ancestor_widget->PinchGestureActiveInMainFrame(); diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index f8ce88da..e5096e51 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -672,7 +672,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2938,11 +2938,30 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

%1$sGoogle Maps will open in Chrome. By continuing, you agree to the <LINK1>Google Terms of Service</LINK1>, and the <LINK2>Google Chrome and ChromeOS Additional Terms of Service</LINK2>. The <LINK3>Privacy Policy</LINK3> also applies. diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 2a53b17b..7f7afdf9 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/browser_autofill_manager.h | 4 +-- .../autofill/core/common/autofill_features.cc | 2 +- .../autofill/core/common/autofill_prefs.cc | 4 +-- - .../AutofillAssistantPreferencesUtil.java | 2 +- + .../browser/public/prefs.cc | 2 +- .../password_generation_frame_helper.cc | 4 --- 8 files changed, 11 insertions(+), 62 deletions(-) @@ -131,7 +131,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h --- a/components/autofill/core/browser/browser_autofill_manager.h +++ b/components/autofill/core/browser/browser_autofill_manager.h -@@ -722,9 +722,9 @@ class BrowserAutofillManager : public AutofillManager, +@@ -730,9 +730,9 @@ class BrowserAutofillManager : public AutofillManager, std::unique_ptr credit_card_form_event_logger_; // Have we logged whether Autofill is enabled for this page load? @@ -146,12 +146,12 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/compo diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -499,7 +499,7 @@ const base::FeatureParam kAutofillServerBehaviorsParam{ - // "upload" resources. +@@ -512,7 +512,7 @@ const base::FeatureParam kAutofillServerBehaviorsParam{ // i.e., https://other.autofill.server:port/tbproxy/af/ - const base::Feature kAutofillServerCommunication{ -- "AutofillServerCommunication", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "AutofillServerCommunication", base::FEATURE_DISABLED_BY_DEFAULT}; + BASE_FEATURE(kAutofillServerCommunication, + "AutofillServerCommunication", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // Controls whether Autofill may fill across origins as part of the // AutofillAcrossIframes experiment. @@ -176,18 +176,18 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( prefs::kAutofillIBANEnabled, true, -diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java ---- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java -+++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java -@@ -32,7 +32,7 @@ public class AutofillAssistantPreferencesUtil { +diff --git a/components/autofill_assistant/browser/public/prefs.cc b/components/autofill_assistant/browser/public/prefs.cc +--- a/components/autofill_assistant/browser/public/prefs.cc ++++ b/components/autofill_assistant/browser/public/prefs.cc +@@ -24,7 +24,7 @@ const char kDeprecatedAutofillAssistantTriggerScriptsIsFirstTimeUser[] = + "Chrome.AutofillAssistant.LiteScriptFirstTimeUser"; - /** Checks whether the Autofill Assistant switch preference in settings is on. */ - public static boolean isAutofillAssistantSwitchOn() { -- return getAssistantEnabledPreference(true); -+ return getAssistantEnabledPreference(false); - } - - /** Checks whether proactive help is enabled. */ + void RegisterProfilePrefs(PrefRegistrySimple* registry) { +- registry->RegisterBooleanPref(prefs::kAutofillAssistantEnabled, true); ++ registry->RegisterBooleanPref(prefs::kAutofillAssistantEnabled, false); + registry->RegisterBooleanPref(prefs::kAutofillAssistantConsent, false); + registry->RegisterBooleanPref(prefs::kAutofillAssistantTriggerScriptsEnabled, + true); diff --git a/components/password_manager/core/browser/password_generation_frame_helper.cc b/components/password_manager/core/browser/password_generation_frame_helper.cc --- a/components/password_manager/core/browser/password_generation_frame_helper.cc +++ b/components/password_manager/core/browser/password_generation_frame_helper.cc diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 022e031e..7171dc06 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -7,13 +7,13 @@ sysroot. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - DEPS | 125 ++--------------------------------------------------------- - 1 file changed, 3 insertions(+), 122 deletions(-) + DEPS | 129 ++++------------------------------------------------------- + 1 file changed, 8 insertions(+), 121 deletions(-) diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -112,7 +112,7 @@ vars = { +@@ -118,7 +118,7 @@ vars = { # Check out and download nacl by default, unless on an arm mac. # This can be disabled e.g. with custom_vars. @@ -22,7 +22,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out src-internal. This can be overridden e.g. with # custom_vars. -@@ -165,8 +165,8 @@ vars = { +@@ -171,8 +171,8 @@ vars = { # support for other platforms may be added in the future. 'checkout_openxr' : 'checkout_win', @@ -33,7 +33,7 @@ diff --git a/DEPS b/DEPS # By default bot checkouts the WPR archive files only when this # flag is set True. -@@ -3834,49 +3834,6 @@ hooks = [ +@@ -3985,49 +3985,6 @@ hooks = [ 'sync', '--extract', ], }, @@ -83,7 +83,7 @@ diff --git a/DEPS b/DEPS { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', -@@ -4047,57 +4004,6 @@ hooks = [ +@@ -4198,57 +4155,6 @@ hooks = [ ], }, @@ -141,7 +141,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -4123,31 +4029,6 @@ hooks = [ +@@ -4274,30 +4180,11 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], }, @@ -160,7 +160,6 @@ diff --git a/DEPS b/DEPS - { - 'name': 'test_fonts', - 'pattern': '.', -- 'condition': 'checkout_testdata', - 'action': [ 'python3', - 'src/third_party/depot_tools/download_from_google_storage.py', - '--no_resume', @@ -170,6 +169,11 @@ diff --git a/DEPS b/DEPS - '-s', 'src/third_party/test_fonts/test_fonts.tar.gz.sha1', - ], - }, ++<<<<<<< found ++||||||| expected ++ 'condition': 'checkout_testdata', ++======= ++>>>>>>> replacement # Download test resources for opus, i.e. audio files. { 'name': 'opus_test_files', diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index af6c7b43..08a9cb21 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -31,7 +31,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc + { 0x20, 0x01, 0x07, 0xfd, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }; - enum DnsResolveStatus { - RESOLVE_STATUS_DNS_SUCCESS = 0, + // ICANN uses this localhost address to indicate a name collision. + // -- 2.25.1 diff --git a/build/patches/do-not-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index 19985945..7e72146c 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -47,7 +47,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { - } - - _default_package = "org.chromium.chrome" --if (android_channel != "default") { -+if (android_channel != "default" && android_channel != "stable") { - # android-binary-size trybot may checks if an internal Chrome variant's - # AndroidManifest is as expected by ensuring the differences between its - # AndroidManifest and its upstream target's .AndroidManifest.expected file +@@ -54,7 +54,7 @@ if (current_toolchain == default_toolchain) { + _default_package = "org.chromium.chrome" + if (use_stable_package_name_for_trichrome) { + _default_package += ".stable" +- } else if (android_channel != "default") { ++ } else if (android_channel != "default" && android_channel != "stable") { + # android-binary-size trybot may checks if an internal Chrome variant's + # AndroidManifest is as expected by ensuring the differences between its + # AndroidManifest and its upstream target's .AndroidManifest.expected file -- 2.25.1 diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index b2b7089b..c0973f31 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -337,6 +337,10 @@ config("compiler") { +@@ -334,6 +334,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index 718c59d4..15845147 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -16,15 +16,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -346,8 +346,6 @@ android_library("chrome_java") { - "$google_play_services_package:google_play_services_gcm_java", - "$google_play_services_package:google_play_services_iid_java", - "$google_play_services_package:google_play_services_tasks_java", -- "$google_play_services_package:google_play_services_vision_common_java", -- "$google_play_services_package:google_play_services_vision_java", - "//base:jni_java", - "//cc:cc_java", - "//chrome/android/features/keyboard_accessory:public_java", +@@ -373,8 +373,6 @@ if (current_toolchain == default_toolchain) { + "$google_play_services_package:google_play_services_gcm_java", + "$google_play_services_package:google_play_services_iid_java", + "$google_play_services_package:google_play_services_tasks_java", +- "$google_play_services_package:google_play_services_vision_common_java", +- "$google_play_services_package:google_play_services_vision_java", + "//base:jni_java", + "//cc:cc_java", + "//chrome/android/features/keyboard_accessory:public_java", diff --git a/components/autofill_assistant/guided_browsing/android/BUILD.gn b/components/autofill_assistant/guided_browsing/android/BUILD.gn --- a/components/autofill_assistant/guided_browsing/android/BUILD.gn +++ b/components/autofill_assistant/guided_browsing/android/BUILD.gn diff --git a/build/patches/translate-disable-fetching-of-languages-from-server.patch b/build/patches/translate-disable-fetching-of-languages-from-server.patch index d4d69da1..3f9c8912 100644 --- a/build/patches/translate-disable-fetching-of-languages-from-server.patch +++ b/build/patches/translate-disable-fetching-of-languages-from-server.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/translate/core/browser/translate_language_list.cc b/components/translate/core/browser/translate_language_list.cc --- a/components/translate/core/browser/translate_language_list.cc +++ b/components/translate/core/browser/translate_language_list.cc -@@ -219,6 +219,7 @@ GURL TranslateLanguageList::TranslateLanguageUrl() { +@@ -230,6 +230,7 @@ GURL TranslateLanguageList::TranslateLanguageUrl() { } void TranslateLanguageList::RequestLanguageList() { @@ -18,7 +18,7 @@ diff --git a/components/translate/core/browser/translate_language_list.cc b/comp // If resource requests are not allowed, we'll get a callback when they are. if (!resource_requests_allowed_) { request_pending_ = true; -@@ -248,6 +249,7 @@ void TranslateLanguageList::RequestLanguageList() { +@@ -259,6 +260,7 @@ void TranslateLanguageList::RequestLanguageList() { if (!result) NotifyEvent(__LINE__, "Request is omitted due to retry limit"); } diff --git a/build/patches/ungoogled-chromium-Disable-Gaia.patch b/build/patches/ungoogled-chromium-Disable-Gaia.patch index ec24710d..26255823 100644 --- a/build/patches/ungoogled-chromium-Disable-Gaia.patch +++ b/build/patches/ungoogled-chromium-Disable-Gaia.patch @@ -24,7 +24,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ constexpr char kBadAuthenticationError[] = "BadAuthentication"; constexpr char kBadAuthenticationShortError[] = "badauth"; -@@ -286,6 +286,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -267,6 +267,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( const net::NetworkTrafficAnnotationTag& traffic_annotation) { DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; @@ -32,7 +32,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ auto resource_request = std::make_unique(); resource_request->url = gaia_gurl; original_url_ = gaia_gurl; -@@ -343,6 +344,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -319,6 +320,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete, base::Unretained(this)), kMaxMessageSize); diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index eeca1c2c..7098b161 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc --- a/components/network_time/network_time_tracker.cc +++ b/components/network_time/network_time_tracker.cc -@@ -294,7 +294,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -296,7 +296,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index a128daf7..f07e62a3 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1442,8 +1442,6 @@ static_library("browser") { +@@ -1454,8 +1454,6 @@ static_library("browser") { "profiles/profile_attributes_storage.cc", "profiles/profile_attributes_storage.h", "profiles/profile_attributes_storage_observer.h", diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 52e7a75c..839428b8 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -180,7 +180,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro 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 -@@ -872,8 +872,9 @@ void TranslateManager::FilterIsTranslatePossible( +@@ -885,8 +885,9 @@ void TranslateManager::FilterIsTranslatePossible( ->LogAutofillAssistantDeferredTriggerDecision(); } diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 2f228d86..abe60a04 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -14,13 +14,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../domain_reliability/google_configs.cc | 10 +- .../domain_reliability/google_configs.h | 8 +- components/domain_reliability/uploader.cc | 2 +- - components/google/core/common/google_util.cc | 222 +----------------- + components/google/core/common/google_util.cc | 220 ++---------------- .../browser/page_load_metrics_util.cc | 4 +- .../common/page_load_metrics_util.cc | 33 +-- components/search_engines/template_url.cc | 6 +- net/base/url_util.cc | 21 -- services/network/network_context.cc | 2 +- - 13 files changed, 46 insertions(+), 352 deletions(-) + 13 files changed, 46 insertions(+), 350 deletions(-) diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc --- a/chrome/browser/domain_reliability/service_factory.cc @@ -241,7 +241,7 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc --- a/components/google/core/common/google_util.cc +++ b/components/google/core/common/google_util.cc -@@ -27,132 +27,10 @@ +@@ -27,130 +27,10 @@ namespace google_util { @@ -333,8 +333,6 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - base::MakeFixedFlatSet({YOUTUBE_TLD_LIST}); - - return IsValidHostName(canonical_host, "youtube", subdomain_permission, -- youtube_tlds) || -- IsValidHostName(canonical_host, "youtubekids", subdomain_permission, - youtube_tlds); -} - @@ -374,7 +372,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co std::string GetGoogleLocale(const std::string& application_locale) { // Google does not recognize "nb" for Norwegian Bokmal; it uses "no". return (application_locale == "nb") ? "no" : application_locale; -@@ -165,25 +43,7 @@ GURL AppendGoogleLocaleParam(const GURL& url, +@@ -163,25 +43,7 @@ GURL AppendGoogleLocaleParam(const GURL& url, } std::string GetGoogleCountryCode(const GURL& google_homepage_url) { @@ -401,7 +399,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co } GURL GetGoogleSearchURL(const GURL& google_homepage_url) { -@@ -195,92 +55,36 @@ GURL GetGoogleSearchURL(const GURL& google_homepage_url) { +@@ -193,92 +55,36 @@ GURL GetGoogleSearchURL(const GURL& google_homepage_url) { return google_homepage_url.ReplaceComponents(replacements); } @@ -582,7 +580,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin 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 -@@ -455,27 +455,6 @@ bool HasGoogleHost(const GURL& url) { +@@ -464,27 +464,6 @@ bool HasGoogleHost(const GURL& url) { } bool IsGoogleHost(base::StringPiece host) { @@ -613,7 +611,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2718,7 +2718,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2708,7 +2708,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED)