123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540 |
- From: csagan5 <32685696+csagan5@users.noreply.github.com>
- Date: Thu, 5 Dec 2019 22:41:25 +0100
- Subject: Add option to configure the ad blocker filters URL
- ---
- chrome/android/chrome_java_resources.gni | 2 +
- chrome/android/chrome_java_sources.gni | 2 +
- .../java/res/layout/adblock_editor.xml | 67 ++++++++++++++
- chrome/android/java/res/values/values.xml | 2 +
- .../java/res/xml/adblock_preferences.xml | 25 +++++
- .../android/java/res/xml/main_preferences.xml | 5 +
- .../browser/settings/AdBlockEditor.java | 92 +++++++++++++++++++
- .../browser/settings/AdBlockPreferences.java | 61 ++++++++++++
- chrome/app/generated_resources.grd | 10 ++
- chrome/browser/browser_process_impl.cc | 3 +-
- .../flags/android/cached_feature_flags.cc | 11 +++
- .../browser/flags/CachedFeatureFlags.java | 10 ++
- .../net/system_network_context_manager.cc | 4 +
- .../strings/android_chrome_strings.grd | 14 +++
- chrome/common/pref_names.cc | 3 +
- chrome/common/pref_names.h | 1 +
- .../adblock_updater_service.cc | 6 +-
- .../adblock_updater_service.h | 3 +-
- 18 files changed, 316 insertions(+), 5 deletions(-)
- create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
- create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
- create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
- create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.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
- @@ -826,6 +826,7 @@ chrome_java_resources = [
- "java/res/layout/account_picker_new_account_row_legacy.xml",
- "java/res/layout/account_picker_row.xml",
- "java/res/layout/account_picker_row_legacy.xml",
- + "java/res/layout/adblock_editor.xml",
- "java/res/layout/add_languages_main.xml",
- "java/res/layout/add_to_homescreen_dialog.xml",
- "java/res/layout/auto_sign_in_first_run_dialog.xml",
- @@ -1106,6 +1107,7 @@ chrome_java_resources = [
- "java/res/xml/about_chrome_preferences.xml",
- "java/res/xml/accessibility_preferences.xml",
- "java/res/xml/account_management_preferences.xml",
- + "java/res/xml/adblock_preferences.xml",
- "java/res/xml/autofill_server_profile_preferences.xml",
- "java/res/xml/bookmark_widget_info.xml",
- "java/res/xml/clear_browsing_data_preferences_tab.xml",
- 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
- @@ -1307,6 +1307,8 @@ chrome_java_sources = [
- "java/src/org/chromium/chrome/browser/photo_picker/DecodeVideoTask.java",
- "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
- "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java",
- + "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
- + "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
- "java/src/org/chromium/chrome/browser/photo_picker/FileEnumWorkerTask.java",
- "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialog.java",
- "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerToolbar.java",
- diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
- new file mode 100644
- --- /dev/null
- +++ b/chrome/android/java/res/layout/adblock_editor.xml
- @@ -0,0 +1,67 @@
- +<?xml version="1.0" encoding="utf-8"?>
- +<!-- Copyright 2015 The Chromium Authors. All rights reserved.
- + Use of this source code is governed by a BSD-style license that can be
- + found in the LICENSE file. -->
- +
- +<FrameLayout
- + xmlns:android="http://schemas.android.com/apk/res/android"
- + xmlns:app="http://schemas.android.com/apk/res-auto"
- + xmlns:tools="http://schemas.android.com/tools"
- + android:layout_width="match_parent"
- + android:layout_height="match_parent" >
- +
- + <ScrollView
- + android:layout_width="match_parent"
- + android:layout_height="match_parent"
- + android:id="@+id/scroll_view"
- + android:fillViewport="true" >
- +
- + <LinearLayout
- + android:layout_width="match_parent"
- + android:layout_height="wrap_content"
- + android:orientation="vertical"
- + android:focusableInTouchMode="true" >
- +
- + <com.google.android.material.textfield.TextInputLayout
- + android:id="@+id/adblock_url"
- + android:paddingTop="16dp"
- + android:paddingStart="@dimen/pref_autofill_content_spacing"
- + android:paddingEnd="@dimen/pref_autofill_content_spacing"
- + android:layout_width="match_parent"
- + android:layout_height="wrap_content" >
- + <!-- TODO(crbug.com/900912): Fix and remove lint ignore -->
- + <EditText
- + tools:ignore="Autofill"
- + android:id="@+id/adblock_url_edit"
- + android:layout_width="match_parent"
- + android:layout_height="wrap_content"
- + android:inputType="textUri"
- + android:singleLine="true"
- + android:hint="@string/options_adblock_edit_label" />
- + </com.google.android.material.textfield.TextInputLayout>
- +
- + <Space style="@style/ButtonBarTopSpacer" />
- + <View style="@style/ButtonBarTopDivider" />
- +
- + <LinearLayout style="@style/ButtonBar" >
- + <org.chromium.ui.widget.ButtonCompat
- + android:id="@+id/adblock_reset"
- + style="@style/ButtonBarButton"
- + android:text="@string/reset" />
- +
- + <org.chromium.ui.widget.ButtonCompat
- + android:id="@+id/adblock_cancel"
- + style="@style/ButtonBarButton"
- + android:text="@string/cancel" />
- +
- + <org.chromium.ui.widget.ButtonCompat
- + android:id="@+id/adblock_save"
- + style="@style/ButtonBarButton"
- + android:text="@string/save" />
- + </LinearLayout>
- + </LinearLayout>
- + </ScrollView>
- +
- + <include layout="@layout/settings_action_bar_shadow"/>
- +
- +</FrameLayout>
- diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
- --- a/chrome/android/java/res/values/values.xml
- +++ b/chrome/android/java/res/values/values.xml
- @@ -41,6 +41,8 @@
- <!-- Our manage space activity. Default pre-KitKat to be nothing. -->
- <string name="manage_space_activity"></string>
-
- + <string name="adblock_help_url">https://www.bromite.org/custom-filters</string>
- +
- <string name="proxy_title">Proxy configuration</string>
- <string name="proxy_url">chrome://proxy</string>
-
- diff --git a/chrome/android/java/res/xml/adblock_preferences.xml b/chrome/android/java/res/xml/adblock_preferences.xml
- new file mode 100644
- --- /dev/null
- +++ b/chrome/android/java/res/xml/adblock_preferences.xml
- @@ -0,0 +1,25 @@
- +<?xml version="1.0" encoding="utf-8"?>
- +<!-- Copyright 2015 The Chromium Authors. All rights reserved.
- + Use of this source code is governed by a BSD-style license that can be
- + found in the LICENSE file. -->
- +
- +<PreferenceScreen
- + xmlns:android="http://schemas.android.com/apk/res/android"
- + xmlns:app="http://schemas.android.com/apk/res-auto">
- +
- + <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
- + android:key="adblock_switch"
- + android:summaryOn="@string/text_on"
- + android:summaryOff="@string/text_off" />
- +
- + <org.chromium.chrome.browser.about_settings.HyperlinkPreference
- + android:key="adblock_help"
- + android:title="@string/adblock_help"
- + app:url="@string/adblock_help_url" />
- +
- + <Preference
- + android:key="adblock_edit"
- + android:title="@string/options_adblock_edit_label"
- + android:fragment="org.chromium.chrome.browser.settings.AdBlockEditor" />
- +
- +</PreferenceScreen>
- 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
- @@ -89,6 +89,11 @@
- android:key="privacy"
- android:order="18"
- android:title="@string/prefs_privacy"/>
- + <Preference
- + android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
- + android:key="adblock"
- + android:order="13"
- + android:title="@string/prefs_adblock"/>
- <Preference
- android:fragment="org.chromium.chrome.browser.accessibility.settings.AccessibilitySettings"
- android:key="accessibility"
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
- new file mode 100644
- --- /dev/null
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
- @@ -0,0 +1,92 @@
- +// Copyright 2015 The Chromium Authors. All rights reserved.
- +// Use of this source code is governed by a BSD-style license that can be
- +// found in the LICENSE file.
- +
- +package org.chromium.chrome.browser.settings;
- +
- +import android.os.Bundle;
- +import androidx.fragment.app.Fragment;
- +import android.text.Editable;
- +import android.text.TextWatcher;
- +import android.view.LayoutInflater;
- +import android.view.View;
- +import android.view.ViewGroup;
- +import android.widget.Button;
- +import android.widget.EditText;
- +
- +import org.chromium.components.browser_ui.settings.SettingsUtils;
- +import org.chromium.chrome.browser.flags.CachedFeatureFlags;
- +import org.chromium.chrome.R;
- +import org.chromium.components.url_formatter.UrlFormatter;
- +
- +/**
- + * Provides the Java-UI for editing AdBlock preferences.
- + */
- +public class AdBlockEditor extends Fragment implements TextWatcher {
- + private EditText mAdBlockFiltersUrlEdit;
- + private Button mSaveButton;
- + private Button mResetButton;
- +
- + @Override
- + public View onCreateView(LayoutInflater inflater, ViewGroup container,
- + Bundle savedInstanceState) {
- + super.onCreate(savedInstanceState);
- + getActivity().setTitle(R.string.options_adblock_edit_title);
- +
- + View v = inflater.inflate(R.layout.adblock_editor, container, false);
- + View scrollView = v.findViewById(R.id.scroll_view);
- + scrollView.getViewTreeObserver().addOnScrollChangedListener(
- + SettingsUtils.getShowShadowOnScrollListener(v, v.findViewById(R.id.shadow)));
- + mAdBlockFiltersUrlEdit = (EditText) v.findViewById(R.id.adblock_url_edit);
- + mAdBlockFiltersUrlEdit.setText(CachedFeatureFlags.getAdBlockFiltersURL());
- + mAdBlockFiltersUrlEdit.addTextChangedListener(this);
- + mAdBlockFiltersUrlEdit.requestFocus();
- +
- + initializeSaveCancelResetButtons(v);
- + return v;
- + }
- +
- + @Override
- + public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- + }
- +
- + @Override
- + public void onTextChanged(CharSequence s, int start, int before, int count) {
- + mSaveButton.setEnabled(s.length() != 0);
- + mResetButton.setEnabled(true);
- + }
- +
- + @Override
- + public void afterTextChanged(Editable s) {
- + }
- +
- + private void initializeSaveCancelResetButtons(View v) {
- + mResetButton = (Button) v.findViewById(R.id.adblock_reset);
- + mResetButton.setOnClickListener(new View.OnClickListener() {
- + @Override
- + public void onClick(View v) {
- + mAdBlockFiltersUrlEdit.setText(CachedFeatureFlags.getAdBlockFiltersURL());
- + getActivity().finish();
- + }
- + });
- +
- + mSaveButton = (Button) v.findViewById(R.id.adblock_save);
- + mSaveButton.setEnabled(false);
- + mSaveButton.setOnClickListener(new View.OnClickListener() {
- + @Override
- + public void onClick(View v) {
- + CachedFeatureFlags.setAdBlockFiltersURL(
- + UrlFormatter.fixupUrl(mAdBlockFiltersUrlEdit.getText().toString()).getSpec());
- + getActivity().finish();
- + }
- + });
- +
- + Button button = (Button) v.findViewById(R.id.adblock_cancel);
- + button.setOnClickListener(new View.OnClickListener() {
- + @Override
- + public void onClick(View v) {
- + getActivity().finish();
- + }
- + });
- + }
- +}
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java
- new file mode 100644
- --- /dev/null
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java
- @@ -0,0 +1,61 @@
- +// Copyright 2015 The Chromium Authors. All rights reserved.
- +// Use of this source code is governed by a BSD-style license that can be
- +// found in the LICENSE file.
- +
- +package org.chromium.chrome.browser.settings;
- +
- +import android.os.Bundle;
- +import androidx.preference.Preference;
- +import androidx.preference.PreferenceFragmentCompat;
- +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
- +
- +import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
- +import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
- +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
- +import org.chromium.components.content_settings.ContentSettingsType;
- +import org.chromium.components.browser_ui.settings.SettingsUtils;
- +import org.chromium.chrome.browser.flags.CachedFeatureFlags;
- +import androidx.annotation.VisibleForTesting;
- +import org.chromium.chrome.R;
- +
- +/**
- + * Fragment that allows the user to configure AdBlock related preferences.
- + */
- +public class AdBlockPreferences extends SiteSettingsPreferenceFragment {
- + @VisibleForTesting
- + public static final String PREF_ADBLOCK_SWITCH = "adblock_switch";
- + private static final String PREF_ADBLOCK_EDIT = "adblock_edit";
- +
- + private Preference mAdBlockEdit;
- +
- + @Override
- + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- + getActivity().setTitle(R.string.options_adblock_title);
- + SettingsUtils.addPreferencesFromResource(this, R.xml.adblock_preferences);
- +
- + BrowserContextHandle browserContextHandle =
- + getSiteSettingsClient().getBrowserContextHandle();
- +
- + ChromeSwitchPreference mAdBlockSwitch =
- + (ChromeSwitchPreference) findPreference(PREF_ADBLOCK_SWITCH);
- + boolean isAdBlockEnabled = !WebsitePreferenceBridge.isCategoryEnabled(browserContextHandle, ContentSettingsType.ADS);
- + mAdBlockSwitch.setChecked(isAdBlockEnabled);
- + mAdBlockSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
- + WebsitePreferenceBridge.setCategoryEnabled(browserContextHandle, ContentSettingsType.ADS, !(boolean) newValue);
- + return true;
- + });
- +
- + mAdBlockEdit = findPreference(PREF_ADBLOCK_EDIT);
- + updateCurrentAdBlockUrl();
- + }
- +
- + private void updateCurrentAdBlockUrl() {
- + mAdBlockEdit.setSummary(CachedFeatureFlags.getAdBlockFiltersURL());
- + }
- +
- + @Override
- + public void onResume() {
- + super.onResume();
- + updateCurrentAdBlockUrl();
- + }
- +}
- 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
- @@ -10047,6 +10047,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
- Never show this again.
- </message>
-
- + <!-- Ad Blocking preferences -->
- + <if expr="is_android">
- + <message name="IDS_OPTIONS_ADBLOCK_TITLE" desc="The title of the Ad Blocking option on Android" formatter_data="android_java">
- + Ad Blocking
- + </message>
- + <message name="IDS_OPTIONS_ADBLOCK_SUMMARY" desc="The title of the Ad Blocking summary on Android" formatter_data="android_java">
- + Configure Ad Blocking and filters URL
- + </message>
- + </if>
- +
- <!-- Ad Blocking UI strings. -->
- <message name="IDS_ALWAYS_ALLOW_ADS" desc="Explanation associated with a toggle to allow ads after ads have been blocked on the page. To be used on pages where the ad blocking UI is governed by a persistent permissions-based whitelist.">
- Always allow ads on this site
- diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
- --- a/chrome/browser/browser_process_impl.cc
- +++ b/chrome/browser/browser_process_impl.cc
- @@ -1066,7 +1066,8 @@ BrowserProcessImpl::adblock_updater() {
- adblock_updater_ = std::make_unique<adblock_updater::AdBlockUpdaterService>(
- g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(),
- std::move(scheduler),
- - g_browser_process->subresource_filter_ruleset_service());
- + g_browser_process->subresource_filter_ruleset_service(),
- + local_state()->GetString(prefs::kAdBlockFiltersURL));
-
- return adblock_updater_.get();
- }
- diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc
- --- a/chrome/browser/flags/android/cached_feature_flags.cc
- +++ b/chrome/browser/flags/android/cached_feature_flags.cc
- @@ -8,6 +8,9 @@
-
- #include "base/android/jni_string.h"
- #include "base/feature_list.h"
- +#include "chrome/browser/browser_process.h"
- +#include "chrome/common/pref_names.h"
- +#include "components/prefs/pref_service.h"
- #include "content/public/common/content_features.h"
- #include "content/public/common/network_service_util.h"
-
- @@ -41,3 +44,11 @@ static jboolean JNI_CachedFeatureFlags_IsNetworkServiceWarmUpEnabled(
- return content::IsOutOfProcessNetworkService() &&
- base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess);
- }
- +
- +static ScopedJavaLocalRef<jstring> JNI_CachedFeatureFlags_GetAdBlockFiltersURL(JNIEnv* env) {
- + return base::android::ConvertUTF8ToJavaString(env, g_browser_process->local_state()->GetString(prefs::kAdBlockFiltersURL));
- +}
- +
- +static void JNI_CachedFeatureFlags_SetAdBlockFiltersURL(JNIEnv* env, const JavaParamRef<jstring>& url) {
- + g_browser_process->local_state()->SetString(prefs::kAdBlockFiltersURL, base::android::ConvertJavaStringToUTF8(env, url));
- +}
- 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
- @@ -260,6 +260,14 @@ public class CachedFeatureFlags {
- ChromeFeatureList.REACHED_CODE_PROFILER, "sampling_interval_us", 0));
- }
-
- + public static void setAdBlockFiltersURL(String url) {
- + CachedFeatureFlagsJni.get().setAdBlockFiltersURL(url);
- + }
- +
- + public static String getAdBlockFiltersURL() {
- + return CachedFeatureFlagsJni.get().getAdBlockFiltersURL();
- + }
- +
- /**
- * Caches flags that must take effect on startup but are set via native code.
- */
- @@ -412,5 +420,7 @@ public class CachedFeatureFlags {
- @NativeMethods
- interface Natives {
- boolean isNetworkServiceWarmUpEnabled();
- + void setAdBlockFiltersURL(String url);
- + String getAdBlockFiltersURL();
- }
- }
- diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
- --- a/chrome/browser/net/system_network_context_manager.cc
- +++ b/chrome/browser/net/system_network_context_manager.cc
- @@ -331,6 +331,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
- SSLConfigServiceManager::CreateDefaultManager(local_state_)),
- proxy_config_monitor_(local_state_),
- stub_resolver_config_reader_(local_state_) {
- + local_state_->SetDefaultPrefValue(prefs::kAdBlockFiltersURL,
- + base::Value("https://www.bromite.org/filters/filters.dat"));
- #if !defined(OS_ANDROID)
- // QuicAllowed was not part of Android policy.
- const base::Value* value =
- @@ -393,6 +395,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
- void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
- StubResolverConfigReader::RegisterPrefs(registry);
-
- + registry->RegisterStringPref(prefs::kAdBlockFiltersURL, std::string());
- +
- // Static auth params
- registry->RegisterStringPref(prefs::kAuthSchemes,
- "basic,digest,ntlm,negotiate");
- 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
- @@ -214,6 +214,20 @@ CHAR-LIMIT guidelines:
- Enter VR
- </message>
-
- + <!-- AdBlock settings -->
- + <message name="IDS_PREFS_ADBLOCK" desc="Title of the AdBlock Settings screen. [CHAR-LIMIT=32]">
- + AdBlock settings
- + </message>
- + <message name="IDS_OPTIONS_ADBLOCK_EDIT_TITLE" desc="The title of the screen that allows users to change the URL that is used to fetch the ad blocker filters.">
- + Edit filters URL
- + </message>
- + <message name="IDS_OPTIONS_ADBLOCK_EDIT_LABEL" desc="The label for the edit text field that allows the user to change the URL that is used to fetch the ad blocker filters.">
- + Filters URL
- + </message>
- + <message name="IDS_ADBLOCK_HELP" desc="The title of the hyperlink that allows users to visit the web page with instructions for custom ad blocker filters.">
- + Visit help page
- + </message>
- +
- <!-- Notification channels -->
- <message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR-LIMIT=32]'>
- General
- 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
- @@ -2103,6 +2103,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
- // capture devices without prompt.
- const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
-
- +// Holds the URL to an indexed subresource filters file.
- +const char kAdBlockFiltersURL[] = "adblock.filters_url";
- +
- // A pref holding the value of the policy used to explicitly allow or deny
- // access to video capture devices. When enabled or not set, the user is
- // prompted for device access. When disabled, access to video capture devices
- 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
- @@ -30,6 +30,7 @@ extern const char kDownloadRestrictions[];
- extern const char kForceEphemeralProfiles[];
- extern const char kHomePageIsNewTabPage[];
- extern const char kHomePage[];
- +extern const char kAdBlockFiltersURL[];
- extern const char kImportantSitesDialogHistory[];
- extern const char kProfileCreationTime[];
- #if defined(OS_WIN)
- diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
- --- a/components/component_updater/adblock_updater_service.cc
- +++ b/components/component_updater/adblock_updater_service.cc
- @@ -46,12 +46,12 @@ const int initial_check_delay = 5,
- next_check_delay = 60*60*24*7, // 1 week
- on_demand_check_delay = 60; // minimum 1 minute between each on-demand check
-
- -AdBlockUpdaterService::AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service)
- +AdBlockUpdaterService::AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler,
- + subresource_filter::RulesetService* ruleset_service, std::string filters_url)
- : ruleset_service_(ruleset_service), shared_url_network_factory_(shared_url_network_factory), scheduler_(std::move(scheduler)) {
- DCHECK(ruleset_service);
-
- - //TODO: retrieve filters URL from config/prefs
- - filters_url_ = "https://www.bromite.org/filters/filters.dat";
- + filters_url_ = filters_url;
- }
-
- AdBlockUpdaterService::~AdBlockUpdaterService() {
- diff --git a/components/component_updater/adblock_updater_service.h b/components/component_updater/adblock_updater_service.h
- --- a/components/component_updater/adblock_updater_service.h
- +++ b/components/component_updater/adblock_updater_service.h
- @@ -54,7 +54,8 @@ class Observer {
- // All methods are safe to call ONLY from the browser's main thread.
- class AdBlockUpdaterService {
- public:
- - AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler, subresource_filter::RulesetService* ruleset_service);
- + AdBlockUpdaterService(scoped_refptr<network::SharedURLLoaderFactory> shared_url_network_factory, std::unique_ptr<component_updater::UpdateScheduler> scheduler,
- + subresource_filter::RulesetService* ruleset_service, std::string filters_url);
- ~AdBlockUpdaterService();
-
- // Adds an observer for this class. An observer should not be added more
- --
- 2.17.1
|