v118 patch

creation of adblock_native_gateway
This commit is contained in:
Carmelo Messina
2023-10-11 11:46:55 +01:00
committed by uazo
parent 642aea61ae
commit 7d44fd7843
@@ -29,7 +29,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/browser_process_impl.cc | 20 ++
chrome/browser/browser_process_impl.h | 2 +
chrome/browser/chrome_browser_main.cc | 3 +
.../browser/flags/CachedFeatureFlags.java | 14 +
chrome/browser/flags/BUILD.gn | 3 +
.../flags/android/adblock_native_gateway.cc | 21 ++
.../browser/flags/AdBlockNativeGateway.java | 20 ++
.../net/system_network_context_manager.cc | 3 +
.../sessions/session_restore_android.cc | 6 +-
.../strings/android_chrome_strings.grd | 14 +
@@ -50,11 +52,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 116 +-------
.../core/common/indexed_ruleset.cc | 5 +-
third_party/blink/common/features.cc | 12 +-
38 files changed, 1181 insertions(+), 135 deletions(-)
40 files changed, 1211 insertions(+), 135 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
create mode 100755 chrome/browser/flags/android/adblock_native_gateway.cc
create mode 100755 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java
create mode 100644 components/component_updater/adblock_updater_service.cc
create mode 100644 components/component_updater/adblock_updater_service.h
create mode 100644 components/component_updater/download_filters_task.cc
@@ -281,7 +285,7 @@ new file mode 100644
+import android.widget.EditText;
+
+import org.chromium.components.browser_ui.settings.SettingsUtils;
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
+import org.chromium.chrome.browser.flags.AdBlockNativeGateway;
+import org.chromium.chrome.R;
+import org.chromium.components.url_formatter.UrlFormatter;
+
@@ -304,7 +308,7 @@ new file mode 100644
+ 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.setText(AdBlockNativeGateway.getAdBlockFiltersURL());
+ mAdBlockFiltersUrlEdit.addTextChangedListener(this);
+ mAdBlockFiltersUrlEdit.requestFocus();
+
@@ -331,7 +335,7 @@ new file mode 100644
+ mResetButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mAdBlockFiltersUrlEdit.setText(CachedFeatureFlags.getAdBlockFiltersURL());
+ mAdBlockFiltersUrlEdit.setText(AdBlockNativeGateway.getAdBlockFiltersURL());
+ }
+ });
+
@@ -340,7 +344,7 @@ new file mode 100644
+ mSaveButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ CachedFeatureFlags.setAdBlockFiltersURL(
+ AdBlockNativeGateway.setAdBlockFiltersURL(
+ UrlFormatter.fixupUrl(mAdBlockFiltersUrlEdit.getText().toString()).getSpec());
+ getActivity().finish();
+ }
@@ -376,7 +380,7 @@ new file mode 100644
+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 org.chromium.chrome.browser.flags.AdBlockNativeGateway;
+import androidx.annotation.VisibleForTesting;
+import org.chromium.chrome.R;
+
@@ -412,7 +416,7 @@ new file mode 100644
+ }
+
+ private void updateCurrentAdBlockUrl() {
+ mAdBlockEdit.setSummary(CachedFeatureFlags.getAdBlockFiltersURL());
+ mAdBlockEdit.setSummary(AdBlockNativeGateway.getAdBlockFiltersURL());
+ }
+
+ @Override
@@ -566,20 +570,76 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
#else
#if BUILDFLAG(IS_CHROMEOS_LACROS)
// Lacros has a special "primary" profile that is tied to the active ChromeOS
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
@@ -224,4 +224,18 @@ public class CachedFeatureFlags {
static void setOverrideForTesting(String preferenceKey, String overrideValue) {
sValuesOverridden.setOverrideForTesting(preferenceKey, overrideValue);
}
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -23,6 +23,7 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/StringCachedFieldTrialParameter.java",
"android/java/src/org/chromium/chrome/browser/flags/ValuesOverridden.java",
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
]
deps = [
"//base:base_java",
@@ -44,6 +45,7 @@ android_library("java") {
generate_jni("jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
sources += [
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
]
@@ -58,6 +60,7 @@ static_library("flags_android") {
"android/chrome_session_state.cc",
"android/chrome_session_state.h",
]
+ sources += [ "android/adblock_native_gateway.cc" ]
deps = [
":jni_headers",
"//base",
diff --git a/chrome/browser/flags/android/adblock_native_gateway.cc b/chrome/browser/flags/android/adblock_native_gateway.cc
new file mode 100755
--- /dev/null
+++ b/chrome/browser/flags/android/adblock_native_gateway.cc
@@ -0,0 +1,21 @@
+#include "chrome/browser/flags/jni_headers/AdBlockNativeGateway_jni.h"
+
+#include "base/android/jni_string.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_service.h"
+
+using base::android::ScopedJavaLocalRef;
+using base::android::JavaParamRef;
+
+static ScopedJavaLocalRef<jstring> JNI_AdBlockNativeGateway_GetAdBlockFiltersURL(
+ JNIEnv* env) {
+ return base::android::ConvertUTF8ToJavaString(env,
+ g_browser_process->local_state()->GetString(prefs::kAdBlockFiltersURL));
+}
+
+static void JNI_AdBlockNativeGateway_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/AdBlockNativeGateway.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java
new file mode 100755
--- /dev/null
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java
@@ -0,0 +1,20 @@
+package org.chromium.chrome.browser.flags;
+
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.NativeMethods;
+
+public class AdBlockNativeGateway {
+ public static void setAdBlockFiltersURL(String url) {
+ CachedFeatureFlagsJni.get().setAdBlockFiltersURL(url);
+ AdBlockNativeGatewayJni.get().setAdBlockFiltersURL(url);
+ }
+
+ public static String getAdBlockFiltersURL() {
+ return CachedFeatureFlagsJni.get().getAdBlockFiltersURL();
+ return AdBlockNativeGatewayJni.get().getAdBlockFiltersURL();
+ }
+
+ @NativeMethods
@@ -587,7 +647,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
+ 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