Patches for v134 (changed)
This commit is contained in:
@@ -26,9 +26,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../bookmarks/BookmarkToolbarViewBinder.java | 6 +
|
||||
.../native_page/NativePageFactory.java | 11 +-
|
||||
chrome/browser/BUILD.gn | 11 +-
|
||||
.../bookmarks/android/bookmark_bridge.cc | 277 +++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.h | 29 +-
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 3 +
|
||||
.../bookmarks/android/bookmark_bridge.cc | 267 ++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.h | 30 +-
|
||||
.../dialogs/DownloadLocationCustomView.java | 8 +-
|
||||
.../DownloadLocationDialogCoordinator.java | 10 +-
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
@@ -53,7 +52,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
|
||||
ui/shell_dialogs/select_file_dialog_linux.h | 2 +
|
||||
ui/shell_dialogs/select_file_dialog_win.cc | 5 +
|
||||
42 files changed, 900 insertions(+), 30 deletions(-)
|
||||
41 files changed, 888 insertions(+), 30 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
|
||||
@@ -871,7 +870,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
// Must come after all headers that specialize FromJniType() / ToJniType().
|
||||
#include "chrome/android/chrome_jni_headers/BookmarkBridge_jni.h"
|
||||
|
||||
@@ -84,12 +106,97 @@ using bookmarks::android::JavaBookmarkIdGetType;
|
||||
@@ -84,6 +106,57 @@ using bookmarks::android::JavaBookmarkIdGetType;
|
||||
using content::BrowserThread;
|
||||
using power_bookmarks::PowerBookmarkMeta;
|
||||
|
||||
@@ -910,7 +909,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url)) {
|
||||
+ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url.spec())) {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
@@ -929,47 +928,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
namespace {
|
||||
// The key used to connect the instance of the bookmark bridge to the bookmark
|
||||
// model.
|
||||
const char kBookmarkBridgeUserDataKey[] = "bookmark_bridge";
|
||||
|
||||
// Compares titles of different instance of BookmarkNode.
|
||||
+class FileBookmarksExportObserver: public BookmarksExportObserver {
|
||||
+ public:
|
||||
+ FileBookmarksExportObserver(
|
||||
+ const JavaParamRef<jobject>& obj,
|
||||
+ ui::WindowAndroid* window,
|
||||
+ const std::string& export_path) :
|
||||
+ obj_(ScopedJavaGlobalRef<jobject>(obj)),
|
||||
+ window_(window),
|
||||
+ export_path_(export_path) {}
|
||||
+
|
||||
+ void OnExportFinished(Result result) override {
|
||||
+ if (result == Result::kSuccess) {
|
||||
+ LOG(INFO) << "Bookmarks exported successfully to " << export_path_;
|
||||
+ } else if (result == Result::kCouldNotCreateFile) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not create file " << export_path_;
|
||||
+ } else if (result == Result::kCouldNotWriteHeader) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not write header";
|
||||
+ } else if (result == Result::kCouldNotWriteNodes) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not write nodes";
|
||||
+ }
|
||||
+
|
||||
+ JNIEnv* env = AttachCurrentThread();
|
||||
+ Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(),
|
||||
+ ConvertUTF8ToJavaString(env, export_path_),
|
||||
+ result == Result::kSuccess);
|
||||
+ delete this;
|
||||
+ }
|
||||
+
|
||||
+ private:
|
||||
+ const ScopedJavaGlobalRef<jobject> obj_;
|
||||
+ raw_ptr<ui::WindowAndroid> window_;
|
||||
+ const std::string export_path_;
|
||||
+};
|
||||
+
|
||||
class BookmarkTitleComparer {
|
||||
public:
|
||||
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
|
||||
@@ -231,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
@@ -231,6 +304,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
partner_bookmarks_shim_observation_.Reset();
|
||||
bookmark_model_observation_.Reset();
|
||||
profile_observation_.Reset();
|
||||
@@ -980,7 +939,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv* env) {
|
||||
@@ -765,6 +876,172 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -765,6 +842,196 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -1038,8 +997,32 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+ export_path_ = export_path_.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+ }
|
||||
+
|
||||
+ observer_ = new FileBookmarksExportObserver(obj, window, export_path_.MaybeAsASCII());
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, export_path_, observer_);
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, export_path_,
|
||||
+ base::BindOnce(&BookmarkBridge::ExportBookmarksEnd,
|
||||
+ weak_ptr_factory_.GetWeakPtr(),
|
||||
+ base::android::ScopedJavaGlobalRef<jobject>(obj),
|
||||
+ window));
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::ExportBookmarksEnd(const ScopedJavaGlobalRef<jobject>& obj,
|
||||
+ ui::WindowAndroid* window,
|
||||
+ bookmark_html_writer::Result result) const
|
||||
+{
|
||||
+ auto export_path = export_path_.MaybeAsASCII();
|
||||
+ if (result == bookmark_html_writer::Result::kSuccess) {
|
||||
+ LOG(INFO) << "Bookmarks exported successfully to " << export_path;
|
||||
+ } else if (result == bookmark_html_writer::Result::kCouldNotCreateFile) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not create file " << export_path;
|
||||
+ } else if (result == bookmark_html_writer::Result::kCouldNotWriteHeader) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not write header";
|
||||
+ } else if (result == bookmark_html_writer::Result::kCouldNotWriteNodes) {
|
||||
+ LOG(ERROR) << "Bookmarks export: could not write nodes";
|
||||
+ }
|
||||
+
|
||||
+ JNIEnv* env = AttachCurrentThread();
|
||||
+ Java_BookmarkBridge_bookmarksExported(env, obj, window->GetJavaObject(),
|
||||
+ base::android::ConvertUTF8ToJavaString(env, export_path),
|
||||
+ result == bookmark_html_writer::Result::kSuccess);
|
||||
+}
|
||||
+
|
||||
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
|
||||
@@ -1196,7 +1179,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
jboolean IsEditBookmarksEnabled(JNIEnv* env);
|
||||
|
||||
void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env);
|
||||
@@ -93,6 +103,15 @@ class BookmarkBridge : public ProfileObserver,
|
||||
@@ -93,6 +103,17 @@ class BookmarkBridge : public ProfileObserver,
|
||||
jlong id,
|
||||
jint type);
|
||||
|
||||
@@ -1208,21 +1191,22 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
+ const base::android::JavaParamRef<jobject>& obj,
|
||||
+ const base::android::JavaParamRef<jobject>& java_window,
|
||||
+ const base::android::JavaParamRef<jstring>& j_export_path);
|
||||
+ void ExportBookmarksEnd(const base::android::ScopedJavaGlobalRef<jobject>& obj,
|
||||
+ ui::WindowAndroid* window, bookmark_html_writer::Result result) const;
|
||||
+
|
||||
void GetAllFoldersWithDepths(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& j_folders_obj,
|
||||
@@ -362,6 +381,9 @@ class BookmarkBridge : public ProfileObserver,
|
||||
@@ -362,6 +383,8 @@ class BookmarkBridge : public ProfileObserver,
|
||||
void CreateOrDestroyAccountReadingListManagerIfNeeded();
|
||||
|
||||
const raw_ptr<Profile> profile_; // weak
|
||||
+ base::FilePath export_path_;
|
||||
+ raw_ptr<BookmarksExportObserver> observer_; // weak
|
||||
+
|
||||
base::android::ScopedJavaGlobalRef<jobject> java_bookmark_model_;
|
||||
const raw_ptr<bookmarks::BookmarkModel> bookmark_model_; // weak
|
||||
const raw_ptr<bookmarks::ManagedBookmarkService>
|
||||
@@ -376,6 +398,7 @@ class BookmarkBridge : public ProfileObserver,
|
||||
@@ -376,6 +399,7 @@ class BookmarkBridge : public ProfileObserver,
|
||||
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
|
||||
grouped_bookmark_actions_;
|
||||
PrefChangeRegistrar pref_change_registrar_;
|
||||
@@ -1230,7 +1214,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
|
||||
// Information about the Partner bookmarks (must check for IsLoaded()).
|
||||
// This is owned by profile.
|
||||
@@ -407,6 +430,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
@@ -407,6 +431,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
|
||||
bool suppress_observer_notifications_ = false;
|
||||
|
||||
@@ -1241,19 +1225,6 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
// Weak pointers for creating callbacks that won't call into a destroyed
|
||||
// object.
|
||||
base::WeakPtrFactory<BookmarkBridge> weak_ptr_factory_;
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
@@ -36,6 +36,9 @@
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "base/time/time.h"
|
||||
#include "base/values.h"
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#include "base/android/content_uri_utils.h"
|
||||
+#endif
|
||||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/favicon/favicon_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
|
||||
@@ -46,8 +46,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../res/xml/accessibility_preferences.xml | 3 +-
|
||||
.../accessibility/AccessibilitySettings.java | 6 +-
|
||||
.../android/java/res/values/attrs.xml | 4 +
|
||||
.../settings/ChromeSwitchPreference.java | 20 ++
|
||||
.../components/cached_flags/CachedFlag.java | 9 +-
|
||||
.../settings/ChromeSwitchPreference.java | 19 ++
|
||||
.../components/cached_flags/CachedFlag.java | 8 +-
|
||||
components/components_strings.grd | 1 +
|
||||
.../content_settings/core/common/features.cc | 1 +
|
||||
.../placeholder.txt | 1 +
|
||||
@@ -106,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
third_party/blink/public/common/features.h | 1 +
|
||||
ui/base/ui_base_features.cc | 1 +
|
||||
ui/base/ui_base_features.h | 1 +
|
||||
93 files changed, 808 insertions(+), 30 deletions(-)
|
||||
93 files changed, 806 insertions(+), 30 deletions(-)
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp
|
||||
@@ -1037,17 +1037,16 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/
|
||||
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
@@ -15,6 +15,9 @@ import android.view.accessibility.AccessibilityEvent;
|
||||
@@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
import android.widget.TextView;
|
||||
|
||||
+import androidx.annotation.Nullable;
|
||||
+import android.content.res.TypedArray;
|
||||
+
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
@@ -40,6 +43,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
@@ -40,6 +42,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
/** Indicates if the preference uses a custom layout. */
|
||||
private final boolean mHasCustomLayout;
|
||||
|
||||
@@ -1059,7 +1058,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
// TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate
|
||||
// away from a switch with dynamically changing summaries onto a radio group.
|
||||
/**
|
||||
@@ -59,6 +67,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
@@ -59,6 +66,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
|
||||
mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs);
|
||||
mUseSummaryAsTitle = true;
|
||||
@@ -1081,15 +1080,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
diff --git a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
|
||||
--- a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
|
||||
+++ b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
|
||||
@@ -5,6 +5,7 @@
|
||||
package org.chromium.components.cached_flags;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
+import androidx.annotation.Nullable;
|
||||
|
||||
import org.chromium.base.FeatureMap;
|
||||
import org.chromium.base.FeatureOverrides;
|
||||
@@ -155,7 +156,7 @@ public class CachedFlag extends Flag {
|
||||
@@ -155,7 +155,7 @@ public class CachedFlag extends Flag {
|
||||
editor.putBoolean(getSharedPreferenceKey(), featureValue);
|
||||
}
|
||||
|
||||
@@ -1098,7 +1089,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca
|
||||
// Create the key only once to avoid String concatenation every flag check.
|
||||
if (mPreferenceKey == null) {
|
||||
mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
|
||||
@@ -163,6 +164,12 @@ public class CachedFlag extends Flag {
|
||||
@@ -163,6 +163,12 @@ public class CachedFlag extends Flag {
|
||||
return mPreferenceKey;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,11 +29,11 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
+ if (skip_clangd_unsupported_options) {
|
||||
+ cflags -= [
|
||||
+ "-Wno-thread-safety-reference-return",
|
||||
+ "-Wno-nontrivial-memcall",
|
||||
+ ]
|
||||
+ cflags_cc -= [
|
||||
+ "-Wno-c++11-narrowing-const-reference",
|
||||
+ "-Wno-missing-template-arg-list-after-template-kw",
|
||||
+ "-Wno-dangling-assignment-gsl",
|
||||
+ ]
|
||||
+ }
|
||||
}
|
||||
|
||||
@@ -73,6 +73,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/page_info/page_info.h | 1 +
|
||||
.../permissions/PermissionDialogDelegate.java | 13 +++
|
||||
.../PermissionDialogModelFactory.java | 82 ++++++++++++++++++-
|
||||
.../embedded_permission_prompt_android.cc | 3 +-
|
||||
.../embedded_permission_prompt_android.h | 2 +-
|
||||
.../permission_dialog_delegate.cc | 24 +++++-
|
||||
.../permission_dialog_delegate.h | 1 +
|
||||
.../permission_prompt_android.cc | 8 +-
|
||||
@@ -80,6 +82,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../android/permissions_android_strings.grd | 17 ++++
|
||||
.../geolocation_permission_context_android.cc | 34 ++++++--
|
||||
.../geolocation_permission_context_android.h | 13 ++-
|
||||
.../embedded_permission_prompt_flow_model.cc | 2 +-
|
||||
.../permissions/permission_context_base.cc | 52 ++++++++++--
|
||||
.../permissions/permission_context_base.h | 23 +++++-
|
||||
components/permissions/permission_prompt.h | 3 +-
|
||||
@@ -87,7 +90,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/permissions/permission_request.h | 16 +++-
|
||||
.../permissions/permission_request_manager.cc | 45 ++++++----
|
||||
.../permissions/permission_request_manager.h | 11 ++-
|
||||
35 files changed, 489 insertions(+), 68 deletions(-)
|
||||
38 files changed, 493 insertions(+), 71 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
@@ -685,6 +688,31 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
|
||||
}
|
||||
|
||||
public static ModalDialogProperties.ModalDialogButtonSpec[] getButtonSpecs(
|
||||
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
@@ -105,7 +105,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
|
||||
delegate()->FinalizeCurrentRequests();
|
||||
}
|
||||
|
||||
-void EmbeddedPermissionPromptAndroid::AcceptThisTime() {
|
||||
+void EmbeddedPermissionPromptAndroid::AcceptThisTime(
|
||||
+ content_settings::mojom::LifetimeMode lifetimeOption) {
|
||||
prompt_model_->PrecalculateVariantsForMetrics();
|
||||
prompt_model_->RecordPermissionActionUKM(
|
||||
permissions::ElementAnchoredBubbleAction::kGrantedOnce);
|
||||
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
@@ -43,7 +43,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid {
|
||||
const override;
|
||||
void Closing() override;
|
||||
void Accept() override;
|
||||
- void AcceptThisTime() override;
|
||||
+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption) override;
|
||||
void Acknowledge() override;
|
||||
void Deny() override;
|
||||
void Resumed() override;
|
||||
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
|
||||
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
|
||||
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
|
||||
@@ -941,6 +969,18 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
|
||||
std::unique_ptr<LocationSettings> location_settings_;
|
||||
|
||||
diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
--- a/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
+++ b/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
@@ -295,7 +295,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction(
|
||||
delegate_->Accept();
|
||||
break;
|
||||
case DelegateAction::kAllowThisTime:
|
||||
- delegate_->AcceptThisTime();
|
||||
+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
break;
|
||||
case DelegateAction::kDeny:
|
||||
delegate_->Deny();
|
||||
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
|
||||
|
||||
@@ -7,9 +7,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/android/java/res/menu/main_menu.xml | 7 ++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 24 +++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 44 +++++++++++-
|
||||
.../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.h | 8 +++
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 11 ++-
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 14 +++-
|
||||
.../bookmark_merged_surface_service.cc | 3 +
|
||||
.../permanent_folder_ordering_tracker.cc | 2 +
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
||||
components/bookmarks/browser/model_loader.cc | 8 ++-
|
||||
.../bookmark_specifics_conversions.cc | 1 +
|
||||
25 files changed, 249 insertions(+), 14 deletions(-)
|
||||
25 files changed, 250 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -225,16 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
@@ -187,7 +187,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver {
|
||||
|
||||
JNIEnv* env = AttachCurrentThread();
|
||||
Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(),
|
||||
- ConvertUTF8ToJavaString(env, export_path_),
|
||||
+ base::android::ConvertUTF8ToJavaString(env, export_path_),
|
||||
result == Result::kSuccess);
|
||||
delete this;
|
||||
}
|
||||
@@ -360,6 +360,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
||||
@@ -326,6 +326,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
||||
return bookmark_model_->account_mobile_node() != nullptr;
|
||||
}
|
||||
|
||||
@@ -268,7 +259,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env,
|
||||
const GURL& url) {
|
||||
@@ -472,6 +499,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
@@ -438,6 +465,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
// Vector to temporarily contain all child bookmarks at same level for sorting
|
||||
std::vector<const BookmarkNode*> bookmarks = {
|
||||
bookmark_model_->mobile_node(),
|
||||
@@ -276,7 +267,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -565,6 +593,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
@@ -531,6 +559,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
top_level_folders.push_back(other_node);
|
||||
}
|
||||
|
||||
@@ -286,7 +277,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
const BookmarkNode* reading_list_node =
|
||||
local_or_syncable_reading_list_manager_->GetRoot();
|
||||
if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) {
|
||||
@@ -1266,6 +1297,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
@@ -1256,6 +1287,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
||||
}
|
||||
|
||||
@@ -318,7 +309,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url);
|
||||
const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl(
|
||||
@@ -221,6 +225,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_list,
|
||||
jint type);
|
||||
|
||||
@@ -332,7 +323,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
@@ -176,7 +176,8 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
@@ -173,14 +173,15 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
BookmarkCodec codec;
|
||||
local_bookmarks_ =
|
||||
codec.Encode(model->bookmark_bar_node(), model->other_node(),
|
||||
@@ -342,17 +333,25 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
|
||||
if (model->account_bookmark_bar_node()) {
|
||||
CHECK(model->account_other_node());
|
||||
@@ -217,6 +218,9 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
CHECK(model->account_mobile_node());
|
||||
account_bookmarks_ = codec.Encode(
|
||||
model->account_bookmark_bar_node(), model->account_other_node(),
|
||||
- model->account_mobile_node(), /*sync_metadata_str=*/std::string());
|
||||
+ model->account_mobile_node(), /*tabs_folder_node*/ nullptr, /*sync_metadata_str=*/std::string());
|
||||
} else {
|
||||
CHECK(!model->account_other_node());
|
||||
CHECK(!model->account_mobile_node());
|
||||
@@ -214,6 +215,9 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
base::Value::Dict* mobile_folder_value = local_permanent_folders->FindDict(
|
||||
BookmarkCodec::kMobileBookmarkFolderNameKey);
|
||||
CHECK(mobile_folder_value);
|
||||
+ base::Value::Dict* tabs_collection_value =
|
||||
+ roots->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey);
|
||||
+ local_permanent_folders->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey);
|
||||
+ CHECK(tabs_collection_value);
|
||||
|
||||
base::Value::Dict* account_permanent_folders =
|
||||
account_bookmarks_.FindDict(BookmarkCodec::kRootsKey);
|
||||
@@ -292,6 +296,10 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
@@ -289,6 +293,10 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
return bookmark_html_writer::Result::kCouldNotWriteNodes;
|
||||
}
|
||||
|
||||
@@ -363,7 +362,15 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
DecrementIndent();
|
||||
|
||||
if (!Write(kFolderChildrenEnd) || !Write(kNewline)) {
|
||||
@@ -566,6 +574,7 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
|
||||
@@ -435,6 +443,7 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
case BookmarkNode::URL:
|
||||
case BookmarkNode::OTHER_NODE:
|
||||
case BookmarkNode::MOBILE:
|
||||
+ case BookmarkNode::TABS_COLLECTION:
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
@@ -563,6 +572,7 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
|
||||
ExtractUrls(model->bookmark_bar_node());
|
||||
ExtractUrls(model->other_node());
|
||||
ExtractUrls(model->mobile_node());
|
||||
|
||||
@@ -8,15 +8,24 @@ Add DuckDuckGo Lite
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes
|
||||
.../search_engine_choice_scaled_resources.grdp | 1 +
|
||||
.../search_engine_choice_utils.cc | 5 +----
|
||||
.../search_engines/search_engine_countries-inc.cc | 3 +++
|
||||
components/search_engines/search_engine_type.h | 5 +++++
|
||||
.../template_url_prepopulate_data.cc | 1 -
|
||||
.../template_url_prepopulate_data.h | 7 -------
|
||||
7 files changed, 10 insertions(+), 12 deletions(-)
|
||||
.../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes
|
||||
...search_engine_choice_scaled_resources.grdp | 1 +
|
||||
components/search_engines/BUILD.gn | 3 ++
|
||||
components/search_engines/cromite/BUILD.gn | 12 ++++++
|
||||
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
|
||||
.../search_engine_choice_utils.cc | 5 +--
|
||||
.../search_engine_countries-inc.cc | 2 +
|
||||
.../search_engines/search_engine_type.h | 5 +++
|
||||
.../template_url_prepopulate_data.cc | 3 +-
|
||||
.../template_url_prepopulate_data.h | 7 ----
|
||||
tools/json_to_struct/json_to_struct.gni | 9 +++++
|
||||
tools/json_to_struct/json_to_struct.py | 26 ++++++++----
|
||||
tools/json_to_struct/struct_generator.py | 10 +++--
|
||||
tools/variations/fieldtrial_to_struct.py | 4 +-
|
||||
14 files changed, 99 insertions(+), 25 deletions(-)
|
||||
create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
||||
create mode 100644 components/search_engines/cromite/BUILD.gn
|
||||
create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||
|
||||
diff --git a/components/resources/default_100_percent/search_engine_choice/default_favicon.png b/components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
||||
new file mode 100644
|
||||
@@ -56,6 +65,92 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c
|
||||
<structure type="chrome_scaled_image" name="IDR_AR_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
||||
<structure type="chrome_scaled_image" name="IDR_AT_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
||||
<structure type="chrome_scaled_image" name="IDR_AU_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
||||
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
|
||||
--- a/components/search_engines/BUILD.gn
|
||||
+++ b/components/search_engines/BUILD.gn
|
||||
@@ -70,6 +70,7 @@ static_library("search_engines") {
|
||||
"//third_party/metrics_proto",
|
||||
"//third_party/omnibox_proto",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
+ "cromite:cromite_prepopulated_engines",
|
||||
]
|
||||
|
||||
deps = [
|
||||
@@ -155,6 +156,7 @@ source_set("search_engine_utils") {
|
||||
":search_engine_type",
|
||||
"//components/google/core/common",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
+ "cromite:cromite_prepopulated_engines",
|
||||
]
|
||||
|
||||
deps = [ "//url" ]
|
||||
@@ -235,6 +237,7 @@ source_set("unit_tests") {
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
+ "cromite:cromite_prepopulated_engines",
|
||||
"//ui/base",
|
||||
"//url",
|
||||
]
|
||||
diff --git a/components/search_engines/cromite/BUILD.gn b/components/search_engines/cromite/BUILD.gn
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/search_engines/cromite/BUILD.gn
|
||||
@@ -0,0 +1,12 @@
|
||||
+import("//tools/json_to_struct/json_to_struct.gni")
|
||||
+
|
||||
+json_to_struct("cromite_prepopulated_engines") {
|
||||
+ visibility = [ "//components/search_engines:*" ]
|
||||
+
|
||||
+ source = "cromite_prepopulated_engines.json"
|
||||
+ schema_file = "//third_party/search_engines_data/prepopulated_engines_schema.json"
|
||||
+ namespace = "TemplateURLPrepopulateData"
|
||||
+ excludetype = true
|
||||
+
|
||||
+ deps = [ "//base" ]
|
||||
+}
|
||||
diff --git a/components/search_engines/cromite/cromite_prepopulated_engines.json b/components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||
@@ -0,0 +1,37 @@
|
||||
+{
|
||||
+ "additionals_includes": {
|
||||
+ "third_party/search_engines_data/resources/definitions/prepopulated_engines.h": ""
|
||||
+ },
|
||||
+ "elements": {
|
||||
+ "duckduckgo_light": {
|
||||
+ "name": "DuckDuckGo Light",
|
||||
+ "keyword": "duckduckgo.com/lite",
|
||||
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||
+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}",
|
||||
+ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
|
||||
+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT",
|
||||
+ "id": 12
|
||||
+ },
|
||||
+
|
||||
+ "googleen": {
|
||||
+ "name": "Google in English",
|
||||
+ "keyword": "googleen",
|
||||
+ "favicon_url": "https://www.google.com/favicon.ico",
|
||||
+ "search_url": "{google:baseURL}search?q={searchTerms}&ie={inputEncoding}&hl=en",
|
||||
+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&q={searchTerms}&hl=en",
|
||||
+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en",
|
||||
+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}",
|
||||
+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en",
|
||||
+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||
+ "alternate_urls": [
|
||||
+ "{google:baseURL}?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}search?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}webhp?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}s?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}s?hl=en&q={searchTerms}"
|
||||
+ ],
|
||||
+ "type": "SEARCH_ENGINE_GOOGLE_EN",
|
||||
+ "id": 13
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||
@@ -74,15 +169,7 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice
|
||||
diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc
|
||||
--- a/components/search_engines/search_engine_countries-inc.cc
|
||||
+++ b/components/search_engines/search_engine_countries-inc.cc
|
||||
@@ -38,6 +38,7 @@ struct EngineAndTier {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
constexpr EngineAndTier engines_default[] = {
|
||||
+ {SearchEngineTier::kTopEngines, &googleen},
|
||||
{SearchEngineTier::kTopEngines, &google},
|
||||
{SearchEngineTier::kTopEngines, &bing},
|
||||
{SearchEngineTier::kTopEngines, &yahoo},
|
||||
@@ -1452,5 +1453,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
@@ -1452,5 +1452,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
for (size_t i = 0; i < num_engines; i++) {
|
||||
t_url.push_back(engines[i]);
|
||||
}
|
||||
@@ -112,7 +199,16 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -78,7 +78,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(int country_id,
|
||||
@@ -29,6 +29,8 @@
|
||||
#include "components/version_info/version_info.h"
|
||||
#include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
|
||||
|
||||
+#include "components/search_engines/cromite/cromite_prepopulated_engines.h"
|
||||
+
|
||||
namespace TemplateURLPrepopulateData {
|
||||
|
||||
// Helpers --------------------------------------------------------------------
|
||||
@@ -78,7 +80,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(int country_id,
|
||||
generator.seed(profile_seed);
|
||||
std::shuffle(t_urls.begin(), t_urls.end(), generator);
|
||||
|
||||
@@ -137,4 +233,172 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone
|
||||
// The maximum number of prepopulated search engines that can be returned in
|
||||
// in the rest of the world by `GetPrepopulatedEngines()`.
|
||||
inline constexpr size_t kMaxRowPrepopulatedEngines = 5;
|
||||
diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni
|
||||
--- a/tools/json_to_struct/json_to_struct.gni
|
||||
+++ b/tools/json_to_struct/json_to_struct.gni
|
||||
@@ -25,6 +25,11 @@ template("json_to_struct") {
|
||||
action_name = target_name + "_action"
|
||||
source_set_name = target_name
|
||||
|
||||
+ excludetype = false
|
||||
+ if (defined(invoker.excludetype)) {
|
||||
+ excludetype = invoker.excludetype
|
||||
+ }
|
||||
+
|
||||
action(action_name) {
|
||||
visibility = [ ":$source_set_name" ]
|
||||
script = "//tools/json_to_struct/json_to_struct.py"
|
||||
@@ -49,6 +54,10 @@ template("json_to_struct") {
|
||||
"--namespace=" + invoker.namespace,
|
||||
"--schema=" + rebase_path(invoker.schema_file, root_build_dir),
|
||||
]
|
||||
+
|
||||
+ if (excludetype) {
|
||||
+ args += [ "--excludetype=yes" ]
|
||||
+ }
|
||||
}
|
||||
|
||||
source_set(source_set_name) {
|
||||
diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py
|
||||
--- a/tools/json_to_struct/json_to_struct.py
|
||||
+++ b/tools/json_to_struct/json_to_struct.py
|
||||
@@ -97,7 +97,7 @@ def _GenerateHeaderGuard(h_filename):
|
||||
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
|
||||
|
||||
|
||||
-def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
+def _GenerateH(basepath, fileroot, head, namespace, schema, description, excludetype):
|
||||
"""Generates the .h file containing the definition of the structure specified
|
||||
by the schema.
|
||||
|
||||
@@ -133,11 +133,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(u'#include "%s"\n' % header)
|
||||
f.write(u'\n')
|
||||
|
||||
+ for header in description.get(u'additionals_includes', []):
|
||||
+ f.write(u'#include "%s"\n' % header)
|
||||
+ f.write(u'\n')
|
||||
+
|
||||
if namespace:
|
||||
f.write(u'namespace %s {\n' % namespace)
|
||||
f.write(u'\n')
|
||||
|
||||
- f.write(struct_generator.GenerateStruct(
|
||||
+ f.write(struct_generator.GenerateStruct(excludetype,
|
||||
schema['type_name'], schema['schema']))
|
||||
f.write(u'\n')
|
||||
|
||||
@@ -162,7 +166,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(u'#endif // %s\n' % header_guard)
|
||||
|
||||
|
||||
-def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||
+def _GenerateCC(basepath, fileroot, head, namespace, schema, description, excludetype):
|
||||
"""Generates the .cc file containing the static initializers for the
|
||||
of the elements specified in the description.
|
||||
|
||||
@@ -191,7 +195,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(element_generator.GenerateElements(schema['type_name'],
|
||||
schema['schema'], description))
|
||||
|
||||
- if 'generate_array' in description:
|
||||
+ if excludetype == False and 'generate_array' in description:
|
||||
f.write(u'\n')
|
||||
f.write(
|
||||
u'const %s* const array_%s[] = {\n' %
|
||||
@@ -283,7 +287,7 @@ def GenerateClass(basepath,
|
||||
|
||||
|
||||
def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||
- description_filename, schema_filename, year=None):
|
||||
+ description_filename, schema_filename, excludetype, year):
|
||||
"""Generates a C++ struct from a JSON description.
|
||||
|
||||
Args:
|
||||
@@ -302,8 +306,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||
"""
|
||||
year = int(year) if year else datetime.now().year
|
||||
head = HEAD % (year, schema_filename, description_filename)
|
||||
- _GenerateH(basepath, output_root, head, namespace, schema, description)
|
||||
- _GenerateCC(basepath, output_root, head, namespace, schema, description)
|
||||
+ _GenerateH(basepath, output_root, head, namespace, schema, description, excludetype)
|
||||
+ _GenerateCC(basepath, output_root, head, namespace, schema, description, excludetype)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = optparse.OptionParser(
|
||||
@@ -318,11 +322,17 @@ if __name__ == '__main__':
|
||||
parser.add_option('-s', '--schema', help='path to the schema file, '
|
||||
'mandatory.')
|
||||
parser.add_option('-o', '--output', help='output filename, ')
|
||||
+ parser.add_option('-x', '--excludetype', help='exclude type generator, ')
|
||||
(opts, args) = parser.parse_args()
|
||||
|
||||
if not opts.schema:
|
||||
parser.error('You must specify a --schema.')
|
||||
|
||||
+ if not opts.excludetype:
|
||||
+ opts.excludetype = False
|
||||
+ else:
|
||||
+ opts.excludetype = True
|
||||
+
|
||||
description_filename = os.path.normpath(args[0])
|
||||
root, ext = os.path.splitext(description_filename)
|
||||
shortroot = opts.output if opts.output else os.path.split(root)[1]
|
||||
@@ -339,4 +349,4 @@ if __name__ == '__main__':
|
||||
schema = _Load(opts.schema)
|
||||
description = _Load(description_filename)
|
||||
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
|
||||
- description_filename, opts.schema)
|
||||
+ description_filename, opts.schema, opts.excludetype, datetime.now().year)
|
||||
diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/struct_generator.py
|
||||
--- a/tools/json_to_struct/struct_generator.py
|
||||
+++ b/tools/json_to_struct/struct_generator.py
|
||||
@@ -30,20 +30,24 @@ def GenerateField(field_info):
|
||||
else:
|
||||
raise RuntimeError('Unknown field type "%s"' % type)
|
||||
|
||||
-def GenerateStruct(type_name, schema):
|
||||
+def GenerateStruct(excludetype, type_name, schema):
|
||||
"""Generate a string defining a structure containing the fields specified in
|
||||
the schema list.
|
||||
"""
|
||||
lines = []
|
||||
+ if excludetype:
|
||||
+ lines.append('struct %s;' % type_name)
|
||||
+ return '\n'.join(lines) + '\n'
|
||||
+
|
||||
lines.append('struct %s {' % type_name)
|
||||
for field_info in schema:
|
||||
if field_info['type'] == 'struct':
|
||||
- lines.insert(0, GenerateStruct(field_info['type_name'],
|
||||
+ lines.insert(0, GenerateStruct(excludetype, field_info['type_name'],
|
||||
field_info['fields']))
|
||||
elif (field_info['type'] == 'array'
|
||||
and field_info['contents']['type'] == 'struct'):
|
||||
contents = field_info['contents']
|
||||
- lines.insert(0, GenerateStruct(contents['type_name'],
|
||||
+ lines.insert(0, GenerateStruct(excludetype, contents['type_name'],
|
||||
contents['fields']))
|
||||
lines.append(' ' + GenerateField(field_info) + ';')
|
||||
lines.append('};')
|
||||
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
|
||||
--- a/tools/variations/fieldtrial_to_struct.py
|
||||
+++ b/tools/variations/fieldtrial_to_struct.py
|
||||
@@ -232,14 +232,14 @@ def main(arguments):
|
||||
json_to_struct.GenerateStruct(
|
||||
basepath, output_root, opts.namespace, schema, description,
|
||||
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
|
||||
- opts.year)
|
||||
+ False, opts.year)
|
||||
|
||||
# TODO(peilinwang) filter the schema by platform, form_factor, etc.
|
||||
if opts.java:
|
||||
json_to_struct.GenerateClass(basepath, output_root, opts.namespace, schema,
|
||||
description,
|
||||
os.path.split(description_filename)[1],
|
||||
- os.path.split(opts.schema)[1], opts.year)
|
||||
+ os.path.split(opts.schema)[1], False, opts.year)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
--
|
||||
|
||||
@@ -5,34 +5,40 @@ Subject: Add setting to clear data on exit
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../java/res/xml/privacy_preferences.xml | 5 ++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 7 +-
|
||||
.../ClearBrowsingDataFragment.java | 12 +++
|
||||
.../ClearBrowsingDataFragmentAtStart.java | 74 +++++++++++++++++++
|
||||
.../browsing_data/BrowsingDataBridge.java | 12 +--
|
||||
.../ClearBrowsingDataFragment.java | 31 ++++++--
|
||||
.../ClearBrowsingDataFragmentAtStart.java | 79 +++++++++++++++++++
|
||||
chrome/app/settings_strings.grdp | 10 +++
|
||||
.../browsing_data/browsing_data_bridge.cc | 17 +++-
|
||||
.../chrome_browsing_data_lifetime_manager.cc | 22 +++++-
|
||||
.../chrome_browsing_data_remover_delegate.cc | 15 ++++
|
||||
.../api/settings_private/prefs_util.cc | 17 +++++
|
||||
.../api/settings_private/prefs_util.cc | 17 ++++
|
||||
.../browser/profiles/ProfileManagerUtils.java | 5 ++
|
||||
.../profiles/android/profile_manager_utils.cc | 5 ++
|
||||
chrome/browser/profiles/profile_manager.cc | 15 +++-
|
||||
chrome/browser/profiles/profile_manager.h | 2 +
|
||||
.../clear_browsing_data_dialog.html | 44 +++++++++++
|
||||
.../clear_browsing_data_dialog.ts | 2 +
|
||||
.../strings/android_chrome_strings.grd | 5 +-
|
||||
.../strings/android_chrome_strings.grd | 3 +
|
||||
.../Add-setting-to-clear-data-on-exit.grdp | 9 +++
|
||||
.../settings_localized_strings_provider.cc | 1 +
|
||||
.../content/browsing_data_helper.cc | 9 ++-
|
||||
components/browsing_data/core/BUILD.gn | 5 ++
|
||||
.../core/browsing_data_policies_utils.cc | 20 ++---
|
||||
.../core/browsing_data_policies_utils.h | 11 +++
|
||||
.../browsing_data/core/browsing_data_utils.cc | 31 ++++++++
|
||||
.../core/clear_browsing_data_tab.h | 2 +-
|
||||
components/browsing_data/core/pref_names.cc | 17 +++++
|
||||
.../core/clear_browsing_data_tab.h | 3 +-
|
||||
components/browsing_data/core/pref_names.cc | 17 ++++
|
||||
components/browsing_data/core/pref_names.h | 10 +++
|
||||
.../search_engines/template_url_service.cc | 1 +
|
||||
content/browser/dips/dips_service_impl.cc | 2 +-
|
||||
content/browser/storage_partition_impl.cc | 1 +
|
||||
.../public/browser/browsing_data_remover.h | 7 +-
|
||||
27 files changed, 328 insertions(+), 20 deletions(-)
|
||||
32 files changed, 386 insertions(+), 33 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
@@ -45,6 +51,21 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/ConfirmImportantSitesDialogFragment.java",
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/OtherFormsOfHistoryDialogFragment.java",
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/UrlFilter.java",
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -19,6 +19,11 @@ found in the LICENSE file.
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment" />
|
||||
+ <Preference
|
||||
+ android:key="clear_browsing_data_advanced"
|
||||
+ android:title="@string/clear_browsing_data_at_start_title"
|
||||
+ android:summary="@string/clear_browsing_data_at_start_summary"
|
||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAtStart" />
|
||||
<Preference
|
||||
android:key="privacy_guide"
|
||||
app:isPreferenceVisible="false"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -69,6 +90,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
|
||||
String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
boolean noRestoreState =
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
|
||||
@@ -218,8 +218,8 @@ public final class BrowsingDataBridge implements Destroyable {
|
||||
* BrowsingDataType}).
|
||||
* @return The state of the corresponding deletion preference.
|
||||
*/
|
||||
- public boolean getBrowsingDataDeletionPreference(int dataType) {
|
||||
- return BrowsingDataBridgeJni.get().getBrowsingDataDeletionPreference(mProfile, dataType);
|
||||
+ public boolean getBrowsingDataDeletionPreference(int dataType, int clearBrowsingDataTab) {
|
||||
+ return BrowsingDataBridgeJni.get().getBrowsingDataDeletionPreference(mProfile, dataType, clearBrowsingDataTab);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -229,8 +229,8 @@ public final class BrowsingDataBridge implements Destroyable {
|
||||
* BrowsingDataType}).
|
||||
* @param value The state to be set.
|
||||
*/
|
||||
- public void setBrowsingDataDeletionPreference(int dataType, boolean value) {
|
||||
- BrowsingDataBridgeJni.get().setBrowsingDataDeletionPreference(mProfile, dataType, value);
|
||||
+ public void setBrowsingDataDeletionPreference(int dataType, int clearBrowsingDataTab, boolean value) {
|
||||
+ BrowsingDataBridgeJni.get().setBrowsingDataDeletionPreference(mProfile, dataType, clearBrowsingDataTab, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -338,10 +338,10 @@ public final class BrowsingDataBridge implements Destroyable {
|
||||
@JniType("Profile*") Profile profile, @JniType("std::string") String origin);
|
||||
|
||||
boolean getBrowsingDataDeletionPreference(
|
||||
- @JniType("Profile*") Profile profile, int dataType);
|
||||
+ @JniType("Profile*") Profile profile, int dataType, int clearBrowsingDataTab);
|
||||
|
||||
void setBrowsingDataDeletionPreference(
|
||||
- @JniType("Profile*") Profile profile, int dataType, boolean value);
|
||||
+ @JniType("Profile*") Profile profile, int dataType, int clearBrowsingDataTab, boolean value);
|
||||
|
||||
int getBrowsingDataDeletionTimePeriod(@JniType("Profile*") Profile profile);
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
@@ -85,7 +144,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -485,6 +491,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
@@ -255,7 +261,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
private @TimePeriod int mLastSelectedTimePeriod;
|
||||
private boolean mShouldShowPostDeleteFeedback;
|
||||
|
||||
- private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
||||
+ protected final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
||||
|
||||
/**
|
||||
* @return All available {@link DialogOption} entries.
|
||||
@@ -361,7 +367,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
}
|
||||
|
||||
/** Called when browsing data is about to be cleared. */
|
||||
- private void onClearBrowsingData() {
|
||||
+ protected void onClearBrowsingData() {
|
||||
RecordUserAction.record("ClearBrowsingData_AdvancedTab");
|
||||
|
||||
if (ChromeFeatureList.sClearBrowsingDataAndroidSurvey.isEnabled()) {
|
||||
@@ -451,6 +457,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
BrowsingDataBridge.getForProfile(getProfile())
|
||||
.setBrowsingDataDeletionPreference(
|
||||
ClearBrowsingDataFragment.getDataType(item.getOption()),
|
||||
+ getClearBrowsingDataTabType(),
|
||||
item.isSelected());
|
||||
}
|
||||
|
||||
@@ -458,8 +465,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
.setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod);
|
||||
}
|
||||
|
||||
+ protected int getClearBrowsingDataTabType() {
|
||||
+ return ClearBrowsingDataTab.ADVANCED;
|
||||
+ }
|
||||
+
|
||||
/** Returns the list of supported {@link DialogOption}. */
|
||||
- private List<Integer> getDialogOptions(Bundle fragmentArgs) {
|
||||
+ protected List<Integer> getDialogOptions(Bundle fragmentArgs) {
|
||||
String referrer =
|
||||
fragmentArgs.getString(
|
||||
ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null);
|
||||
@@ -485,6 +496,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
DialogOption.CLEAR_SITE_SETTINGS);
|
||||
}
|
||||
|
||||
@@ -96,7 +195,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
/**
|
||||
* Decides whether a given dialog option should be selected when the dialog is initialized.
|
||||
*
|
||||
@@ -561,6 +571,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
@@ -493,7 +508,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
*/
|
||||
private boolean isOptionSelectedByDefault(@DialogOption int option) {
|
||||
return BrowsingDataBridge.getForProfile(getProfile())
|
||||
- .getBrowsingDataDeletionPreference(getDataType(option));
|
||||
+ .getBrowsingDataDeletionPreference(getDataType(option), getClearBrowsingDataTabType());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -561,6 +576,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
* options.
|
||||
*/
|
||||
private void onClearButtonClicked() {
|
||||
@@ -104,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
if (shouldShowImportantSitesDialog()) {
|
||||
showImportantDialogThenClear();
|
||||
return;
|
||||
@@ -591,6 +602,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
@@ -591,6 +607,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
|
||||
boolean isEnabled = !getSelectedOptions().isEmpty();
|
||||
clearButton.setEnabled(isEnabled);
|
||||
@@ -112,11 +220,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
}
|
||||
|
||||
private int getSpinnerIndex(
|
||||
@@ -666,7 +683,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
.getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) {
|
||||
enabled = false;
|
||||
browsingDataBridge.setBrowsingDataDeletionPreference(
|
||||
- getDataType(DialogOption.CLEAR_HISTORY), false);
|
||||
+ getDataType(DialogOption.CLEAR_HISTORY), getClearBrowsingDataTabType(), false);
|
||||
}
|
||||
|
||||
// Disable tabs closure if the user is in multi-window mode.
|
||||
@@ -696,8 +713,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
|
||||
mSigninManager.addSignInStateObserver(this);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
+
|
||||
+ onCustomizePreferences(savedInstanceState, rootKey);
|
||||
}
|
||||
|
||||
+ protected void onCustomizePreferences(Bundle savedInstanceState, String rootKey) {}
|
||||
+
|
||||
@Override
|
||||
public ObservableSupplier<String> getPageTitle() {
|
||||
return mPageTitle;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
@@ -0,0 +1,74 @@
|
||||
@@ -0,0 +1,79 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -171,6 +301,11 @@ new file mode 100644
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void onCustomizePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
+ mPageTitle.set(getString(R.string.clear_browsing_data_at_start_title));
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected int getClearBrowsingDataTabType() {
|
||||
+ return ClearBrowsingDataTab.AT_START;
|
||||
+ }
|
||||
@@ -183,7 +318,7 @@ new file mode 100644
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void onClearBrowsingData() {
|
||||
+ public void onClearBrowsingData() {
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -211,6 +346,61 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||
<message name="IDS_SETTINGS_CLEAR_DATA_DESCRIPTION" desc="Description for delete browsing data button in Privacy options. 'History' refers to browsing history. 'Cookies' refers to the technical meaning of a cookie, i.e. data saved by a website on the user's computer, as in when a website saves your preferences.">
|
||||
Delete history, cookies, cache, and more
|
||||
</message>
|
||||
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
@@ -70,6 +70,15 @@ PrefService* GetPrefService(Profile* profile) {
|
||||
return profile->GetOriginalProfile()->GetPrefs();
|
||||
}
|
||||
|
||||
+browsing_data::ClearBrowsingDataTab ToTabEnum(jint clear_browsing_data_tab) {
|
||||
+ DCHECK_GE(clear_browsing_data_tab, 0);
|
||||
+ DCHECK_LE(clear_browsing_data_tab,
|
||||
+ static_cast<int>(browsing_data::ClearBrowsingDataTab::MAX_VALUE));
|
||||
+
|
||||
+ return static_cast<browsing_data::ClearBrowsingDataTab>(
|
||||
+ clear_browsing_data_tab);
|
||||
+}
|
||||
+
|
||||
void OnBrowsingDataModelBuilt(JNIEnv* env,
|
||||
const ScopedJavaGlobalRef<jobject>& java_callback,
|
||||
std::unique_ptr<BrowsingDataModel> model) {
|
||||
@@ -222,7 +231,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting(
|
||||
static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference(
|
||||
JNIEnv* env,
|
||||
Profile* profile,
|
||||
- jint data_type) {
|
||||
+ jint data_type,
|
||||
+ jint clear_browsing_data_tab) {
|
||||
DCHECK_GE(data_type, 0);
|
||||
DCHECK_LE(data_type,
|
||||
static_cast<int>(browsing_data::BrowsingDataType::MAX_VALUE));
|
||||
@@ -234,7 +244,7 @@ static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference(
|
||||
std::string pref;
|
||||
if (!browsing_data::GetDeletionPreferenceFromDataType(
|
||||
static_cast<browsing_data::BrowsingDataType>(data_type),
|
||||
- browsing_data::ClearBrowsingDataTab::ADVANCED, &pref)) {
|
||||
+ ToTabEnum(clear_browsing_data_tab), &pref)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -245,6 +255,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference(
|
||||
JNIEnv* env,
|
||||
Profile* profile,
|
||||
jint data_type,
|
||||
+ jint clear_browsing_data_tab,
|
||||
jboolean value) {
|
||||
DCHECK_GE(data_type, 0);
|
||||
DCHECK_LE(data_type,
|
||||
@@ -253,7 +264,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference(
|
||||
std::string pref;
|
||||
if (!browsing_data::GetDeletionPreferenceFromDataType(
|
||||
static_cast<browsing_data::BrowsingDataType>(data_type),
|
||||
- browsing_data::ClearBrowsingDataTab::ADVANCED, &pref)) {
|
||||
+ ToTabEnum(clear_browsing_data_tab), &pref)) {
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
+++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
@@ -372,7 +562,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
|
||||
}
|
||||
|
||||
+void ProfileManager::RemoveBrowsingDataAtStart() {
|
||||
+ base::ranges::for_each(
|
||||
+ std::ranges::for_each(
|
||||
+ GetLoadedProfiles(),
|
||||
+ [](Profile* profile) {
|
||||
+ auto* browsing_data_lifetime_manager =
|
||||
@@ -484,15 +674,6 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
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
|
||||
@@ -1458,7 +1458,7 @@ For example, some websites may respond to this request by showing you ads that a
|
||||
Delete browsing data
|
||||
</message>
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_SUMMARY" desc="Summary of the settings item that opens the Delete Browsing Data dialog.">
|
||||
- Delete history, cookies, site data, cache…
|
||||
+ Delete immediately or choose when to delete browsing data
|
||||
</message>
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_HISTORY_DIALOG_TITLE" desc="Title of a dialog that is shown after the deletion of browsing history finished.">
|
||||
Deleted Chrome data
|
||||
@@ -1570,6 +1570,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history.">
|
||||
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK"><link></ph>myactivity.google.com<ph name="END_LINK"></link></ph>.
|
||||
@@ -503,6 +684,20 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_ANDROID_HISTORY_OTHER_FORMS_OF_HISTORY" desc="The notification at the top of the history page indicating that deleting Chrome browsing history will not delete other forms of history stored at Google My Activity.">
|
||||
Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK"><link></ph>myactivity.google.com<ph name="END_LINK"></link></ph>.
|
||||
</message>
|
||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp
|
||||
@@ -0,0 +1,9 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<grit-part>
|
||||
+ <message name="IDS_CLEAR_BROWSING_DATA_AT_START_TITLE" desc="Title of the Delete Browsing Data screen at start.">
|
||||
+ Clear the data at opening
|
||||
+ </message>
|
||||
+ <message name="IDS_CLEAR_BROWSING_DATA_AT_START_SUMMARY" desc="Summary of the settings item that opens the Delete Browsing Data dialog.">
|
||||
+ Choose what to delete when the browser opens
|
||||
+ </message>
|
||||
+</grit-part>
|
||||
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
|
||||
@@ -533,6 +728,28 @@ diff --git a/components/browsing_data/content/browsing_data_helper.cc b/componen
|
||||
return predicate.Run(url);
|
||||
}
|
||||
|
||||
diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/core/BUILD.gn
|
||||
--- a/components/browsing_data/core/BUILD.gn
|
||||
+++ b/components/browsing_data/core/BUILD.gn
|
||||
@@ -62,6 +62,10 @@ if (is_android) {
|
||||
visibility = [ ":*" ]
|
||||
sources = [ "browsing_data_utils.h" ]
|
||||
}
|
||||
+ java_cpp_enum("clear_browsing_data_tab_javagen") {
|
||||
+ visibility = [ ":*" ]
|
||||
+ sources = [ "clear_browsing_data_tab.h" ]
|
||||
+ }
|
||||
java_cpp_enum("cookie_or_cache_deletion_choice_javagen") {
|
||||
# External code should depend on ":java" instead.
|
||||
visibility = [ ":*" ]
|
||||
@@ -71,6 +75,7 @@ if (is_android) {
|
||||
android_library("java") {
|
||||
srcjar_deps = [
|
||||
":browsing_data_utils_javagen",
|
||||
+ ":clear_browsing_data_tab_javagen",
|
||||
":cookie_or_cache_deletion_choice_javagen",
|
||||
]
|
||||
deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
|
||||
diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
--- a/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
+++ b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
@@ -633,11 +850,12 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
|
||||
diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/components/browsing_data/core/clear_browsing_data_tab.h
|
||||
--- a/components/browsing_data/core/clear_browsing_data_tab.h
|
||||
+++ b/components/browsing_data/core/clear_browsing_data_tab.h
|
||||
@@ -13,7 +13,7 @@ namespace browsing_data {
|
||||
@@ -13,7 +13,8 @@ namespace browsing_data {
|
||||
// value for dialogs without separate tabs is advanced.
|
||||
// TODO(dullweber): Maybe rename "ADVANCED" to "DEFAULT" because it is used in
|
||||
// multiple places without a differentiation between advanced and basic.
|
||||
-enum class ClearBrowsingDataTab { BASIC, ADVANCED, MAX_VALUE = ADVANCED };
|
||||
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.browsing_data
|
||||
+enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, MAX_VALUE = AT_START };
|
||||
|
||||
} // namespace browsing_data
|
||||
|
||||
@@ -10,6 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/network/reporting_service_proxy.cc | 3 +++
|
||||
.../renderer_host/render_frame_host_impl.cc | 6 ------
|
||||
.../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
|
||||
.../dip/document_isolation_policy_reporter.cc | 2 ++
|
||||
.../web_package/signed_exchange_reporter.cc | 2 ++
|
||||
...content_switch_dependent_feature_overrides.cc | 1 +
|
||||
.../Allow-building-without-enable_reporting.inc | 2 ++
|
||||
@@ -25,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
|
||||
.../renderer/core/frame/reporting_context.h | 7 +++++--
|
||||
.../renderer/core/frame/reporting_observer.cc | 3 +--
|
||||
21 files changed, 61 insertions(+), 26 deletions(-)
|
||||
22 files changed, 63 insertions(+), 26 deletions(-)
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
|
||||
|
||||
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
|
||||
@@ -215,6 +216,23 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||
--- a/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||
+++ b/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||
@@ -94,11 +94,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify(
|
||||
}
|
||||
body_to_pass.Set("disposition", disposition);
|
||||
|
||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||
if (auto* storage_partition = storage_partition_.get()) {
|
||||
storage_partition->GetNetworkContext()->QueueReport(
|
||||
kType, *endpoint, context_url_, reporting_source_,
|
||||
network_anonymization_key_, std::move(body_to_pass));
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc
|
||||
--- a/content/browser/web_package/signed_exchange_reporter.cc
|
||||
+++ b/content/browser/web_package/signed_exchange_reporter.cc
|
||||
|
||||
@@ -17,8 +17,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../core/browser/supervised_user_preferences.cc | 6 +++++-
|
||||
.../core/browser/supervised_user_service.cc | 5 +----
|
||||
.../supervised_user/core/browser/supervised_user_utils.cc | 1 +
|
||||
components/supervised_user/core/common/features.cc | 7 +++++++
|
||||
14 files changed, 18 insertions(+), 30 deletions(-)
|
||||
components/supervised_user/core/common/features.cc | 6 ++++++
|
||||
14 files changed, 17 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
@@ -229,12 +229,11 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/
|
||||
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
|
||||
--- a/components/supervised_user/core/common/features.cc
|
||||
+++ b/components/supervised_user/core/common/features.cc
|
||||
@@ -171,4 +171,11 @@ BASE_FEATURE(kReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS,
|
||||
@@ -171,4 +171,10 @@ BASE_FEATURE(kReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS,
|
||||
"ReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kKidFriendlyContentFeed);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals);
|
||||
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
+SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
|
||||
|
||||
@@ -181,7 +181,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
||||
+ new WebContentsObserver(webContents) {
|
||||
+ @Override
|
||||
+ public void didStartLoading(GURL url) {
|
||||
+ webContents.removeObserver(this);
|
||||
+ observe(null);
|
||||
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
|
||||
+ snackbarManager.dismissSnackbars(controller);
|
||||
+ }
|
||||
@@ -415,7 +415,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
||||
diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
--- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
+++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
@@ -457,6 +457,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan
|
||||
@@ -458,6 +458,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 2 +-
|
||||
.../android/java/res/xml/main_preferences.xml | 4 +-
|
||||
.../res/xml/privacy_preferences_cromite.xml | 198 ++++++++++++++++++
|
||||
.../res/xml/privacy_preferences_cromite.xml | 197 ++++++++++++++++++
|
||||
.../privacy/settings/PrivacySettings.java | 4 +-
|
||||
.../Cromite-settings-ui.grdp | 15 ++
|
||||
5 files changed, 218 insertions(+), 5 deletions(-)
|
||||
5 files changed, 217 insertions(+), 5 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp
|
||||
|
||||
@@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
||||
@@ -0,0 +1,198 @@
|
||||
@@ -0,0 +1,197 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?><!--
|
||||
+Copyright 2022 The Chromium Authors
|
||||
+Use of this source code is governed by a BSD-style license that can be
|
||||
@@ -68,13 +68,12 @@ new file mode 100644
|
||||
+ android:key="clear_browsing_data"
|
||||
+ android:title="@string/clear_browsing_data_title"
|
||||
+ android:summary="@string/clear_browsing_data_summary"
|
||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment" />
|
||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment" />
|
||||
+ <Preference
|
||||
+ android:key="clear_browsing_data_advanced"
|
||||
+ android:title="@string/clear_browsing_data_title"
|
||||
+ android:summary="@string/clear_browsing_data_summary"
|
||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanced"
|
||||
+ app:isPreferenceVisible="false" />
|
||||
+ android:title="@string/clear_browsing_data_at_start_title"
|
||||
+ android:summary="@string/clear_browsing_data_at_start_summary"
|
||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAtStart" />
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
+ android:title="@string/close_tabs_on_exit_title"
|
||||
|
||||
@@ -57,9 +57,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes
|
||||
.../webui/version/resources/about_version.ts | 2 +-
|
||||
.../resources/about_version_mobile.css | 9 ++
|
||||
content/child/runtime_features.cc | 23 ++---
|
||||
content/child/runtime_features.cc | 44 ++++-----
|
||||
tools/grit/grit/grd_reader.py | 35 +++++++
|
||||
55 files changed, 188 insertions(+), 118 deletions(-)
|
||||
55 files changed, 200 insertions(+), 127 deletions(-)
|
||||
|
||||
diff --git a/build/BUILD.gn b/build/BUILD.gn
|
||||
--- a/build/BUILD.gn
|
||||
@@ -18948,7 +18948,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo
|
||||
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
|
||||
@@ -564,7 +564,7 @@ void ResolveInvalidConfigurations() {
|
||||
@@ -564,19 +564,22 @@ void ResolveInvalidConfigurations() {
|
||||
base::FeatureList::IsEnabled(
|
||||
features::kPrivacySandboxAdsAPIsM1Override)) &&
|
||||
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
|
||||
@@ -18957,7 +18957,13 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
<< "Fenced frames cannot be enabled in this configuration. Use --"
|
||||
<< switches::kEnableFeatures << "="
|
||||
<< blink::features::kFencedFrames.name << " instead.";
|
||||
@@ -574,9 +574,8 @@ void ResolveInvalidConfigurations() {
|
||||
WebRuntimeFeatures::EnableFencedFrames(false);
|
||||
}
|
||||
+ CHECK(!base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIsOverride))
|
||||
+ << "kPrivacySandboxAdsAPIsOverride is enabled!";
|
||||
+ CHECK(!base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIsM1Override))
|
||||
+ << "kPrivacySandboxAdsAPIsM1Override is enabled!";
|
||||
|
||||
if (!base::FeatureList::IsEnabled(blink::features::kFencedFrames) &&
|
||||
base::FeatureList::IsEnabled(
|
||||
blink::features::kFencedFramesLocalUnpartitionedDataAccess)) {
|
||||
@@ -18969,7 +18975,14 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
<< "Fenced frames must be enabled in order to enable local "
|
||||
"unpartitioned "
|
||||
<< "data access. Use --" << switches::kEnableFeatures << "="
|
||||
@@ -589,7 +588,7 @@ void ResolveInvalidConfigurations() {
|
||||
@@ -584,12 +587,14 @@ void ResolveInvalidConfigurations() {
|
||||
WebRuntimeFeatures::EnableFeatureFromString(
|
||||
"FencedFramesLocalUnpartitionedDataAccess", false);
|
||||
}
|
||||
+ CHECK(!base::FeatureList::IsEnabled(blink::features::kFencedFrames))
|
||||
+ << "kFencedFrames is enabled!";
|
||||
|
||||
// Topics API cannot be enabled without the support of the browser process.
|
||||
// The Document API should be additionally gated by the
|
||||
// `kBrowsingTopicsDocumentAPI` feature.
|
||||
if (!base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) {
|
||||
@@ -18978,16 +18991,21 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
<< "Topics cannot be enabled in this configuration. Use --"
|
||||
<< switches::kEnableFeatures << "="
|
||||
<< blink::features::kBrowsingTopics.name << " in addition.";
|
||||
@@ -599,7 +598,7 @@ void ResolveInvalidConfigurations() {
|
||||
@@ -597,30 +602,23 @@ void ResolveInvalidConfigurations() {
|
||||
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
||||
WebRuntimeFeatures::EnableTopicsImgAPI(false);
|
||||
} else {
|
||||
if (!base::FeatureList::IsEnabled(
|
||||
blink::features::kBrowsingTopicsDocumentAPI)) {
|
||||
- if (!base::FeatureList::IsEnabled(
|
||||
- blink::features::kBrowsingTopicsDocumentAPI)) {
|
||||
- LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsDocumentAPIEnabled())
|
||||
+ CHECK(!WebRuntimeFeatures::IsTopicsDocumentAPIEnabled())
|
||||
<< "Topics Document API cannot be enabled in this configuration. Use "
|
||||
"--"
|
||||
<< switches::kEnableFeatures << "="
|
||||
@@ -610,8 +609,8 @@ void ResolveInvalidConfigurations() {
|
||||
- << "Topics Document API cannot be enabled in this configuration. Use "
|
||||
- "--"
|
||||
- << switches::kEnableFeatures << "="
|
||||
- << blink::features::kBrowsingTopicsDocumentAPI.name
|
||||
- << " in addition.";
|
||||
- WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
||||
- }
|
||||
+ CHECK(false) << "kBrowsingTopics is enabled!";
|
||||
}
|
||||
|
||||
if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) {
|
||||
@@ -18998,7 +19016,10 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
"configuration. Use --"
|
||||
<< switches::kEnableFeatures << "="
|
||||
<< blink::features::kSharedStorageAPI.name << " in addition.";
|
||||
@@ -620,7 +619,7 @@ void ResolveInvalidConfigurations() {
|
||||
WebRuntimeFeatures::EnableSharedStorageAPI(false);
|
||||
+ } else {
|
||||
+ CHECK(false) << "kSharedStorageAPI is enabled!";
|
||||
}
|
||||
|
||||
if (!base::FeatureList::IsEnabled(
|
||||
attribution_reporting::features::kConversionMeasurement)) {
|
||||
@@ -19007,8 +19028,12 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
<< "AttributionReporting cannot be enabled in this "
|
||||
"configuration. Use --"
|
||||
<< switches::kEnableFeatures << "="
|
||||
@@ -630,8 +629,7 @@ void ResolveInvalidConfigurations() {
|
||||
@@ -628,23 +626,25 @@ void ResolveInvalidConfigurations() {
|
||||
<< " in addition.";
|
||||
WebRuntimeFeatures::EnableAttributionReporting(false);
|
||||
}
|
||||
+ CHECK(!base::FeatureList::IsEnabled(attribution_reporting::features::kConversionMeasurement))
|
||||
+ << "kConversionMeasurement is enabled!";
|
||||
|
||||
if (!base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) {
|
||||
- LOG_IF(WARNING,
|
||||
@@ -19017,7 +19042,13 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
<< "AdInterestGroupAPI cannot be enabled in this "
|
||||
"configuration. Use --"
|
||||
<< switches::kEnableFeatures << "="
|
||||
@@ -643,8 +641,7 @@ void ResolveInvalidConfigurations() {
|
||||
<< blink::features::kInterestGroupStorage.name << " in addition.";
|
||||
WebRuntimeFeatures::EnableAdInterestGroupAPI(false);
|
||||
WebRuntimeFeatures::EnableFledge(false);
|
||||
+ } else {
|
||||
+ CHECK(false) << "kInterestGroupStorage is enabled!";
|
||||
}
|
||||
|
||||
// PermissionElement cannot be enabled without the support of the
|
||||
// browser process.
|
||||
if (!base::FeatureList::IsEnabled(blink::features::kPermissionElement)) {
|
||||
|
||||
@@ -5,15 +5,18 @@ Subject: Disable all predictors code
|
||||
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/browser/BUILD.gn | 3 ---
|
||||
chrome/browser/BUILD.gn | 4 +---
|
||||
.../preloading_model_keyed_service.cc | 3 +++
|
||||
.../preloading_model_keyed_service_factory.cc | 4 +---
|
||||
.../optimization_guide/chrome_hints_manager.cc | 1 +
|
||||
.../model_validator_keyed_service.cc | 6 +++++-
|
||||
.../optimization_guide_keyed_service.cc | 1 -
|
||||
chrome/browser/permissions/BUILD.gn | 2 --
|
||||
.../permissions/chrome_permissions_client.cc | 2 --
|
||||
.../predictors/autocomplete_action_predictor.cc | 2 ++
|
||||
.../predictors/loading_predictor_config.cc | 4 ++--
|
||||
chrome/browser/predictors/predictors_features.cc | 3 +--
|
||||
.../chrome_browser_main_extra_parts_profiles.cc | 1 -
|
||||
chrome/browser/safe_browsing/BUILD.gn | 1 -
|
||||
...fication_content_detection_service_factory.cc | 5 +++++
|
||||
chrome/browser/ui/tab_helpers.cc | 1 -
|
||||
@@ -33,6 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/optimization_guide/features.gni | 3 +--
|
||||
.../core/page_content_annotations_features.cc | 4 ++++
|
||||
.../page_content_annotations_model_manager.cc | 1 +
|
||||
.../notification_content_detection/BUILD.gn | 7 +++++++
|
||||
components/safe_browsing/core/common/features.cc | 1 +
|
||||
.../Disable-all-predictors-code.inc | 3 +++
|
||||
.../Disable-all-predictors-code.inc | 1 +
|
||||
@@ -44,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../core/html/parser/html_document_parser.cc | 1 +
|
||||
.../document_speculation_rules.cc | 1 +
|
||||
.../platform/runtime_enabled_features.json5 | 2 +-
|
||||
39 files changed, 106 insertions(+), 40 deletions(-)
|
||||
43 files changed, 114 insertions(+), 45 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
|
||||
@@ -64,11 +68,12 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"navigation_predictor/preloading_model_keyed_service.cc",
|
||||
"navigation_predictor/preloading_model_keyed_service.h",
|
||||
"navigation_predictor/preloading_model_keyed_service_factory.cc",
|
||||
@@ -2261,7 +2259,6 @@ static_library("browser") {
|
||||
@@ -2261,7 +2259,7 @@ static_library("browser") {
|
||||
"//components/safe_browsing/content/browser",
|
||||
"//components/safe_browsing/content/browser:client_side_detection",
|
||||
"//components/safe_browsing/content/browser:safe_browsing_service",
|
||||
- "//components/safe_browsing/content/browser/notification_content_detection",
|
||||
+ "//components/safe_browsing/content/browser/notification_content_detection:constants",
|
||||
"//components/safe_browsing/content/browser/password_protection",
|
||||
"//components/safe_browsing/content/browser/web_ui",
|
||||
"//components/safe_browsing/core/browser",
|
||||
@@ -183,6 +188,30 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.
|
||||
}
|
||||
|
||||
optimization_guide::OptimizationGuideDecision
|
||||
diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BUILD.gn
|
||||
--- a/chrome/browser/permissions/BUILD.gn
|
||||
+++ b/chrome/browser/permissions/BUILD.gn
|
||||
@@ -41,8 +41,6 @@ source_set("permissions") {
|
||||
"permission_manager_factory.h",
|
||||
"permission_revocation_request.cc",
|
||||
"permission_revocation_request.h",
|
||||
- "prediction_based_permission_ui_selector.cc",
|
||||
- "prediction_based_permission_ui_selector.h",
|
||||
"prediction_model_handler_provider.cc",
|
||||
"prediction_model_handler_provider.h",
|
||||
"prediction_service_factory.cc",
|
||||
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
|
||||
@@ -416,8 +416,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors(
|
||||
std::make_unique<ContextualNotificationPermissionUiSelector>());
|
||||
selectors.emplace_back(std::make_unique<PrefBasedQuietPermissionUiSelector>(
|
||||
Profile::FromBrowserContext(browser_context)));
|
||||
- selectors.emplace_back(std::make_unique<PredictionBasedPermissionUiSelector>(
|
||||
- Profile::FromBrowserContext(browser_context)));
|
||||
return selectors;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
--- a/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
+++ b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
@@ -222,6 +251,17 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p
|
||||
|
||||
} // namespace
|
||||
|
||||
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
|
||||
@@ -1134,7 +1134,6 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
base::FeatureList::IsEnabled(
|
||||
permissions::features::kPermissionOnDeviceGeolocationPredictions) ||
|
||||
base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) {
|
||||
- PredictionModelHandlerProviderFactory::GetInstance();
|
||||
}
|
||||
PredictionServiceFactory::GetInstance();
|
||||
predictors::AutocompleteActionPredictorFactory::GetInstance();
|
||||
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
|
||||
--- a/chrome/browser/safe_browsing/BUILD.gn
|
||||
+++ b/chrome/browser/safe_browsing/BUILD.gn
|
||||
@@ -739,6 +779,23 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_m
|
||||
if (page_visibility_model_handler_)
|
||||
return;
|
||||
|
||||
diff --git a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
|
||||
--- a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
|
||||
+++ b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
|
||||
@@ -26,6 +26,13 @@ source_set("notification_content_detection") {
|
||||
]
|
||||
}
|
||||
|
||||
+source_set("constants") {
|
||||
+ sources = [
|
||||
+ "notification_content_detection_constants.cc",
|
||||
+ "notification_content_detection_constants.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
source_set("test_utils") {
|
||||
testonly = true
|
||||
sources = [
|
||||
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
|
||||
|
||||
@@ -26,8 +26,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../origin_trials/features.cc | 1 +
|
||||
.../render_view_context_menu_base.cc | 3 -
|
||||
.../aggregatable_report_sender.cc | 15 +-
|
||||
.../attribution_data_host_manager_impl.cc | 2 +
|
||||
.../attribution_reporting/attribution_host.cc | 1 +
|
||||
.../attribution_data_host_manager_impl.cc | 8 +-
|
||||
.../attribution_reporting/attribution_host.cc | 3 +-
|
||||
.../attribution_manager_impl.cc | 4 -
|
||||
.../attribution_os_level_manager.cc | 3 +-
|
||||
.../attribution_report_network_sender.cc | 9 +
|
||||
.../attribution_storage_sql.cc | 8 +-
|
||||
@@ -38,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../public/browser/content_browser_client.cc | 7 +-
|
||||
.../public/browser/navigation_controller.cc | 1 -
|
||||
.../Disable-conversion-measurement-api.inc | 1 +
|
||||
.../Disable-conversion-measurement-api.inc | 8 +
|
||||
.../Disable-conversion-measurement-api.inc | 10 +
|
||||
.../attribution/request_headers_internal.cc | 1 +
|
||||
services/network/network_context.cc | 20 -
|
||||
.../network/public/cpp/attribution_utils.cc | 2 +
|
||||
@@ -46,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
third_party/blink/renderer/core/page/page.cc | 2 +-
|
||||
.../platform/runtime_enabled_features.json5 | 20 +-
|
||||
ui/events/android/motion_event_android.cc | 8 +-
|
||||
35 files changed, 97 insertions(+), 420 deletions(-)
|
||||
36 files changed, 101 insertions(+), 430 deletions(-)
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc
|
||||
|
||||
@@ -274,7 +275,21 @@ diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b
|
||||
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
||||
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
||||
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
||||
@@ -1121,6 +1121,8 @@ void AttributionDataHostManagerImpl::ParseHeader(
|
||||
@@ -758,11 +758,9 @@ class AttributionDataHostManagerImpl::PendingRegistrationData {
|
||||
headers->GetNormalizedHeader(
|
||||
attribution_reporting::kAttributionReportingRegisterTriggerHeader);
|
||||
|
||||
- std::optional<std::string> os_source_header = headers->GetNormalizedHeader(
|
||||
- attribution_reporting::kAttributionReportingRegisterOsSourceHeader);
|
||||
+ std::optional<std::string> os_source_header;
|
||||
|
||||
- std::optional<std::string> os_trigger_header = headers->GetNormalizedHeader(
|
||||
- attribution_reporting::kAttributionReportingRegisterOsTriggerHeader);
|
||||
+ std::optional<std::string> os_trigger_header;
|
||||
|
||||
const bool has_source =
|
||||
web_source_header.has_value() || os_source_header.has_value();
|
||||
@@ -1121,6 +1119,8 @@ void AttributionDataHostManagerImpl::ParseHeader(
|
||||
Registrations& registrations,
|
||||
HeaderPendingDecode pending_decode,
|
||||
Registrar registrar) {
|
||||
@@ -286,7 +301,16 @@ diff --git a/content/browser/attribution_reporting/attribution_data_host_manager
|
||||
diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc
|
||||
--- a/content/browser/attribution_reporting/attribution_host.cc
|
||||
+++ b/content/browser/attribution_reporting/attribution_host.cc
|
||||
@@ -318,6 +318,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
|
||||
@@ -119,8 +119,6 @@ AttributionHost::AttributionHost(WebContents* web_contents)
|
||||
attribution_reporting::features::kConversionMeasurement));
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
- input_event_tracker_android_ =
|
||||
- std::make_unique<AttributionInputEventTrackerAndroid>(web_contents);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -318,6 +316,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -294,6 +318,21 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content
|
||||
auto* attribution_manager =
|
||||
AttributionManager::FromWebContents(web_contents());
|
||||
DCHECK(attribution_manager);
|
||||
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc
|
||||
--- a/content/browser/attribution_reporting/attribution_manager_impl.cc
|
||||
+++ b/content/browser/attribution_reporting/attribution_manager_impl.cc
|
||||
@@ -573,11 +573,7 @@ bool IsOperationAllowed(
|
||||
}
|
||||
|
||||
std::unique_ptr<AttributionOsLevelManager> CreateOsLevelManager() {
|
||||
-#if BUILDFLAG(IS_ANDROID)
|
||||
- return std::make_unique<AttributionOsLevelManagerAndroid>();
|
||||
-#else
|
||||
return std::make_unique<NoOpAttributionOsLevelManager>();
|
||||
-#endif
|
||||
}
|
||||
|
||||
// Returns new report time if any.
|
||||
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.cc b/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
||||
--- a/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
||||
+++ b/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
||||
@@ -948,12 +987,12 @@ new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kAttributionReportingCrossAppWeb);
|
||||
+// none
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,10 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kAdAuctionSignals);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kBrowsingTopics);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kBrowsingTopicsDocumentAPI);
|
||||
@@ -962,6 +1001,8 @@ new file mode 100644
|
||||
+SET_CROMITE_FEATURE_DISABLED(kFledgeBiddingAndAuctionServer);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kInterestGroupStorage);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivateAggregationApi);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kBiddingAndScoringDebugReportingAPI);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kAllowURNsInIframes);
|
||||
diff --git a/services/network/attribution/request_headers_internal.cc b/services/network/attribution/request_headers_internal.cc
|
||||
--- a/services/network/attribution/request_headers_internal.cc
|
||||
+++ b/services/network/attribution/request_headers_internal.cc
|
||||
|
||||
@@ -9,13 +9,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../origin_trials/origin_trial_policy_impl.h | 2 +-
|
||||
.../renderer_host/navigation_request.cc | 1 -
|
||||
.../origin_trial_state_host_impl.cc | 19 -------------------
|
||||
content/renderer/render_frame_impl.cc | 9 ++-------
|
||||
content/renderer/render_frame_impl.cc | 10 +++-------
|
||||
.../shell/common/shell_origin_trial_policy.cc | 10 ++++------
|
||||
.../origin_trials/trial_token_validator.cc | 1 +
|
||||
.../renderer/core/loader/document_loader.cc | 18 ++----------------
|
||||
.../blink/renderer/core/loader/http_equiv.cc | 2 +-
|
||||
.../origin_trials/origin_trial_context.cc | 6 ++++--
|
||||
11 files changed, 19 insertions(+), 57 deletions(-)
|
||||
11 files changed, 20 insertions(+), 57 deletions(-)
|
||||
|
||||
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc
|
||||
--- a/android_webview/common/aw_content_client.cc
|
||||
@@ -127,17 +127,18 @@ 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;
|
||||
@@ -564,8 +560,7 @@ void FillNavigationParamsRequest(
|
||||
@@ -564,8 +560,8 @@ void FillNavigationParamsRequest(
|
||||
navigation_params->had_transient_user_activation =
|
||||
common_params.has_user_gesture;
|
||||
|
||||
- navigation_params->force_enabled_origin_trials = base::ToVector(
|
||||
- commit_params.force_enabled_origin_trials, &WebString::FromASCII);
|
||||
+ navigation_params->force_enabled_origin_trials = WebVector<WebString>();
|
||||
+ std::vector<WebString> force_enabled_origin_trials;
|
||||
+ navigation_params->force_enabled_origin_trials = force_enabled_origin_trials;
|
||||
|
||||
navigation_params->early_hints_preloaded_resources = base::ToVector(
|
||||
commit_params.early_hints_preloaded_resources, blink::ToWebURL);
|
||||
@@ -650,7 +645,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
|
||||
@@ -650,7 +646,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
|
||||
info->url_request.HasUserGesture(),
|
||||
info->url_request.HasTextFragmentToken(),
|
||||
info->should_check_main_world_content_security_policy,
|
||||
|
||||
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../chrome_browser_interface_binders.cc | 12 +
|
||||
chrome/browser/resources/BUILD.gn | 6 +
|
||||
chrome/browser/resources/settings/BUILD.gn | 2 +-
|
||||
.../resources/settings/page_visibility.ts | 30 +-
|
||||
.../resources/settings/page_visibility.ts | 43 ++-
|
||||
.../search_engine_edit_dialog.html | 6 +
|
||||
.../search_engine_edit_dialog.ts | 6 +-
|
||||
.../search_engines_browser_proxy.ts | 8 +-
|
||||
@@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../webui/settings/search_engines_handler.cc | 28 +-
|
||||
.../webui/settings/search_engines_handler.h | 3 +-
|
||||
.../settings_localized_strings_provider.cc | 8 +
|
||||
...ings_localized_strings_provider_android.cc | 198 +++++++++++++
|
||||
...ings_localized_strings_provider_android.cc | 200 ++++++++++++++
|
||||
...tings_localized_strings_provider_android.h | 19 ++
|
||||
.../ui/webui/settings/settings_ui_android.cc | 126 +++++++++
|
||||
.../ui/webui/settings/settings_ui_android.h | 112 ++++++++
|
||||
@@ -61,7 +61,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
third_party/polymer/v3_0/BUILD.gn | 12 +-
|
||||
ui/base/template_expressions.cc | 21 +-
|
||||
ui/webui/BUILD.gn | 7 +
|
||||
ui/webui/resources/BUILD.gn | 20 ++
|
||||
ui/webui/resources/BUILD.gn | 22 ++
|
||||
.../cr_components/cr_shortcut_input/BUILD.gn | 2 +-
|
||||
.../customize_color_scheme_mode/BUILD.gn | 2 +-
|
||||
.../cr_components/help_bubble/BUILD.gn | 2 +-
|
||||
.../cr_components/localized_link/BUILD.gn | 2 +-
|
||||
@@ -75,7 +76,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
ui/webui/resources/images/BUILD.gn | 2 +-
|
||||
ui/webui/resources/js/BUILD.gn | 2 +-
|
||||
ui/webui/resources/js/load_time_data.ts | 17 +-
|
||||
68 files changed, 1130 insertions(+), 67 deletions(-)
|
||||
69 files changed, 1148 insertions(+), 68 deletions(-)
|
||||
create mode 100644 chrome/app/settings_strings_android.grdp
|
||||
create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml
|
||||
create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
|
||||
@@ -416,7 +417,7 @@ new file mode 100644
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3495,6 +3495,9 @@ static_library("browser") {
|
||||
@@ -3496,6 +3496,9 @@ static_library("browser") {
|
||||
"//components/user_scripts/android",
|
||||
]
|
||||
}
|
||||
@@ -486,14 +487,21 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
|
||||
diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts
|
||||
--- a/chrome/browser/resources/settings/page_visibility.ts
|
||||
+++ b/chrome/browser/resources/settings/page_visibility.ts
|
||||
@@ -43,8 +43,36 @@ export interface PrivacyPageVisibility {
|
||||
@@ -43,8 +43,49 @@ export interface PrivacyPageVisibility {
|
||||
searchPrediction: boolean;
|
||||
}
|
||||
|
||||
+const isAndroid = (loadTimeData.getString('chromeAndroid') !== "");
|
||||
+if (isAndroid) {
|
||||
+ // @ts-expect-error
|
||||
+ chrome.autofillPrivate = {};
|
||||
+ chrome.autofillPrivate = {
|
||||
+ isUserEligibleForAutofillImprovements(): Promise<boolean> {
|
||||
+ return Promise.resolve(false);
|
||||
+ },
|
||||
+ hasUserAnnotationsEntries(): Promise<boolean> {
|
||||
+ return Promise.resolve(false);
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ // @ts-expect-error
|
||||
+ chrome.languageSettingsPrivate = {};
|
||||
@@ -512,6 +520,12 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
|
||||
+ var obj = {};
|
||||
+ (obj as any).then = function() {};
|
||||
+ return obj;
|
||||
+ },
|
||||
+ PrefType: {
|
||||
+ BOOLEAN: 0
|
||||
+ },
|
||||
+ getDefaultZoom(): Promise<number> {
|
||||
+ return Promise.resolve(100);
|
||||
+ }
|
||||
+ }
|
||||
+ // @ts-expect-error
|
||||
@@ -1362,7 +1376,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
|
||||
@@ -0,0 +1,198 @@
|
||||
@@ -0,0 +1,200 @@
|
||||
+#include "chrome/browser/ui/webui/settings/settings_localized_strings_provider.h"
|
||||
+
|
||||
+#include <string>
|
||||
@@ -1557,6 +1571,8 @@ new file mode 100644
|
||||
+ AddSearchInSettingsStrings(html_source);
|
||||
+ html_source->AddString("check_notfound", "false");
|
||||
+ html_source->AddInteger("br_cs_count", 0);
|
||||
+ html_source->AddString("presetZoomFactors",
|
||||
+ "[0.25,0.3333333333333333,0.5,0.6666666666666666,0.75,0.8,0.9,1.0,1.1,1.25,1.5,1.75,2.0,2.5,3.0,4.0,5.0]");
|
||||
+ html_source->UseStringsJs();
|
||||
+}
|
||||
+
|
||||
@@ -2139,13 +2155,14 @@ diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn
|
||||
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
|
||||
--- a/ui/webui/resources/BUILD.gn
|
||||
+++ b/ui/webui/resources/BUILD.gn
|
||||
@@ -50,6 +50,26 @@ generate_grd("build_grd") {
|
||||
@@ -50,6 +50,28 @@ generate_grd("build_grd") {
|
||||
"$target_gen_dir/mojo/resources.grdp",
|
||||
]
|
||||
|
||||
+ if (is_android) {
|
||||
+ public_deps += [
|
||||
+ "cr_components/customize_color_scheme_mode:build_grdp",
|
||||
+ "cr_components/cr_shortcut_input:build_grdp",
|
||||
+ "cr_components/help_bubble:build_grdp",
|
||||
+ "cr_components/localized_link:build_grdp",
|
||||
+ "cr_components/managed_dialog:build_grdp",
|
||||
@@ -2155,6 +2172,7 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
|
||||
+ ]
|
||||
+ grdp_files += [
|
||||
+ "$target_gen_dir/cr_components/customize_color_scheme_mode/resources.grdp",
|
||||
+ "$target_gen_dir/cr_components/cr_shortcut_input/resources.grdp",
|
||||
+ "$target_gen_dir/cr_components/help_bubble/resources.grdp",
|
||||
+ "$target_gen_dir/cr_components/localized_link/resources.grdp",
|
||||
+ "$target_gen_dir/cr_components/managed_dialog/resources.grdp",
|
||||
@@ -2166,6 +2184,18 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
|
||||
if (!is_android && !is_ios) {
|
||||
public_deps += [
|
||||
"cr_components/app_management:build_grdp",
|
||||
diff --git a/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn b/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn
|
||||
--- a/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn
|
||||
+++ b/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
import("//ui/webui/resources/tools/build_webui.gni")
|
||||
|
||||
-assert(!is_android && !is_ios)
|
||||
+#assert(!is_android && !is_ios)
|
||||
|
||||
build_webui("build") {
|
||||
grd_prefix = "cr_components_cr_shortcut_input"
|
||||
diff --git a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
|
||||
--- a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
|
||||
+++ b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
|
||||
|
||||
@@ -95,8 +95,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../user_scripts/common/script_constants.h | 33 +
|
||||
components/user_scripts/common/url_pattern.cc | 813 ++++++++++++++++++
|
||||
components/user_scripts/common/url_pattern.h | 306 +++++++
|
||||
.../user_scripts/common/url_pattern_set.cc | 335 ++++++++
|
||||
.../user_scripts/common/url_pattern_set.h | 160 ++++
|
||||
.../user_scripts/common/url_pattern_set.cc | 229 +++++
|
||||
.../user_scripts/common/url_pattern_set.h | 103 +++
|
||||
components/user_scripts/common/user_script.cc | 329 +++++++
|
||||
components/user_scripts/common/user_script.h | 402 +++++++++
|
||||
.../common/user_scripts_features.cc | 32 +
|
||||
@@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../Experimental-user-scripts-support.inc | 13 +
|
||||
ipc/ipc_message_start.h | 1 +
|
||||
tools/gritsettings/resource_ids.spec | 6 +
|
||||
108 files changed, 9514 insertions(+), 2 deletions(-)
|
||||
108 files changed, 9351 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
|
||||
@@ -1633,11 +1633,11 @@ new file mode 100644
|
||||
+
|
||||
+ @Override
|
||||
+ public void onBindViewHolder(ViewHolder viewHolder, int i) {
|
||||
+ ((ScriptInfoRowViewHolder) viewHolder).updateScriptInfo(mElements.get(i));
|
||||
+ ((ScriptInfoRowViewHolder) viewHolder).updateScriptInfo(mItems.get(i));
|
||||
+ }
|
||||
+
|
||||
+ void setDisplayedScriptInfo(List<ScriptInfo> values) {
|
||||
+ mElements = new ArrayList<>(values);
|
||||
+ mItems = new ArrayList<>(values);
|
||||
+ notifyDataSetChanged();
|
||||
+ }
|
||||
+
|
||||
@@ -5910,7 +5910,7 @@ diff --git a/components/user_scripts/common/url_pattern_set.cc b/components/user
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/url_pattern_set.cc
|
||||
@@ -0,0 +1,335 @@
|
||||
@@ -0,0 +1,229 @@
|
||||
+// Copyright (c) 2012 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.
|
||||
@@ -5923,7 +5923,6 @@ new file mode 100755
|
||||
+#include "base/containers/contains.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/stl_util.h"
|
||||
+#include "base/values.h"
|
||||
+#include "error_utils.h"
|
||||
+#include "url_pattern.h"
|
||||
+#include "url/gurl.h"
|
||||
@@ -5939,111 +5938,6 @@ new file mode 100755
|
||||
+
|
||||
+} // namespace
|
||||
+
|
||||
+// static
|
||||
+URLPatternSet URLPatternSet::CreateDifference(const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2) {
|
||||
+ return URLPatternSet(base::STLSetDifference<std::set<URLPattern>>(
|
||||
+ set1.patterns_, set2.patterns_));
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+URLPatternSet URLPatternSet::CreateIntersection(
|
||||
+ const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2,
|
||||
+ IntersectionBehavior intersection_behavior) {
|
||||
+ // Note: leverage return value optimization; always return the same object.
|
||||
+ URLPatternSet result;
|
||||
+
|
||||
+ if (intersection_behavior == IntersectionBehavior::kStringComparison) {
|
||||
+ // String comparison just relies on STL set behavior, which looks at the
|
||||
+ // string representation.
|
||||
+ result = URLPatternSet(base::STLSetIntersection<std::set<URLPattern>>(
|
||||
+ set1.patterns_, set2.patterns_));
|
||||
+ return result;
|
||||
+ }
|
||||
+
|
||||
+ // Look for a semantic intersection.
|
||||
+
|
||||
+ // Step 1: Iterate over each set. Find any patterns that are completely
|
||||
+ // contained by the other (thus being necessarily present in any intersection)
|
||||
+ // and add them, collecting the others in a set of unique items.
|
||||
+ // Note: Use a collection of pointers for the uniques to avoid excessive
|
||||
+ // copies. Since these are owned by the URLPatternSet passed in, which is
|
||||
+ // const, this should be safe.
|
||||
+ std::vector<const URLPattern*> unique_set1;
|
||||
+ for (const URLPattern& pattern : set1) {
|
||||
+ if (set2.ContainsPattern(pattern))
|
||||
+ result.patterns_.insert(pattern);
|
||||
+ else
|
||||
+ unique_set1.push_back(&pattern);
|
||||
+ }
|
||||
+ std::vector<const URLPattern*> unique_set2;
|
||||
+ for (const URLPattern& pattern : set2) {
|
||||
+ if (set1.ContainsPattern(pattern))
|
||||
+ result.patterns_.insert(pattern);
|
||||
+ else
|
||||
+ unique_set2.push_back(&pattern);
|
||||
+ }
|
||||
+
|
||||
+ // If we're just looking for patterns contained by both, we're done.
|
||||
+ if (intersection_behavior == IntersectionBehavior::kPatternsContainedByBoth)
|
||||
+ return result;
|
||||
+
|
||||
+ DCHECK_EQ(IntersectionBehavior::kDetailed, intersection_behavior);
|
||||
+
|
||||
+ // Step 2: Iterate over all the unique patterns and find the intersections
|
||||
+ // they have with the other patterns.
|
||||
+ for (const auto* pattern : unique_set1) {
|
||||
+ for (const auto* pattern2 : unique_set2) {
|
||||
+ std::optional<URLPattern> intersection =
|
||||
+ pattern->CreateIntersection(*pattern2);
|
||||
+ if (intersection)
|
||||
+ result.patterns_.insert(std::move(*intersection));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+URLPatternSet URLPatternSet::CreateUnion(const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2) {
|
||||
+ return URLPatternSet(
|
||||
+ base::STLSetUnion<std::set<URLPattern>>(set1.patterns_, set2.patterns_));
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+URLPatternSet URLPatternSet::CreateUnion(
|
||||
+ const std::vector<URLPatternSet>& sets) {
|
||||
+ URLPatternSet result;
|
||||
+ if (sets.empty())
|
||||
+ return result;
|
||||
+
|
||||
+ // N-way union algorithm is basic O(nlog(n)) merge algorithm.
|
||||
+ //
|
||||
+ // Do the first merge step into a working set so that we don't mutate any of
|
||||
+ // the input.
|
||||
+ // TODO(devlin): Looks like this creates a bunch of copies; we can probably
|
||||
+ // clean that up.
|
||||
+ std::vector<URLPatternSet> working;
|
||||
+ for (size_t i = 0; i < sets.size(); i += 2) {
|
||||
+ if (i + 1 < sets.size())
|
||||
+ working.push_back(CreateUnion(sets[i], sets[i + 1]));
|
||||
+ else
|
||||
+ working.push_back(sets[i].Clone());
|
||||
+ }
|
||||
+
|
||||
+ for (size_t skip = 1; skip < working.size(); skip *= 2) {
|
||||
+ for (size_t i = 0; i < (working.size() - skip); i += skip) {
|
||||
+ URLPatternSet u = CreateUnion(working[i], working[i + skip]);
|
||||
+ working[i].patterns_.swap(u.patterns_);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ result.patterns_.swap(working[0].patterns_);
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+URLPatternSet::URLPatternSet() = default;
|
||||
+
|
||||
+URLPatternSet::URLPatternSet(URLPatternSet&& rhs) = default;
|
||||
@@ -6250,7 +6144,7 @@ diff --git a/components/user_scripts/common/url_pattern_set.h b/components/user_
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/url_pattern_set.h
|
||||
@@ -0,0 +1,160 @@
|
||||
@@ -0,0 +1,103 @@
|
||||
+// Copyright (c) 2012 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.
|
||||
@@ -6261,7 +6155,6 @@ new file mode 100755
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#include <iosfwd>
|
||||
+#include <memory>
|
||||
+#include <set>
|
||||
+
|
||||
+#include "base/values.h"
|
||||
@@ -6278,64 +6171,8 @@ new file mode 100755
|
||||
+// Represents the set of URLs an extension uses for web content.
|
||||
+class URLPatternSet {
|
||||
+ public:
|
||||
+ URLPatternSet(const URLPatternSet&) = delete;
|
||||
+ URLPatternSet& operator=(const URLPatternSet&) = delete;
|
||||
+ typedef std::set<URLPattern>::const_iterator const_iterator;
|
||||
+ typedef std::set<URLPattern>::iterator iterator;
|
||||
+
|
||||
+ // Returns |set1| - |set2|.
|
||||
+ static URLPatternSet CreateDifference(const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2);
|
||||
+
|
||||
+ enum class IntersectionBehavior {
|
||||
+ // For the following descriptions, consider the two URLPatternSets:
|
||||
+ // Set 1: {"https://example.com/*", "https://*.google.com/*", "http://*/*"}
|
||||
+ // Set 2: {"https://example.com/*", "https://google.com/maps",
|
||||
+ // "*://chromium.org/*"}
|
||||
+
|
||||
+ // Only includes patterns that are exactly in both sets. The intersection of
|
||||
+ // the two sets above is {"https://example.com/*"}, since that is the only
|
||||
+ // pattern that appears exactly in each.
|
||||
+ kStringComparison,
|
||||
+
|
||||
+ // Includes patterns that are effectively contained by both sets. The
|
||||
+ // intersection of the two sets above is
|
||||
+ // {
|
||||
+ // "https://example.com/*" (contained exactly by each set)
|
||||
+ // "https://google.com/maps" (contained exactly by set 2 and a strict
|
||||
+ // subset of https://*.google.com/* in set 1)
|
||||
+ // }
|
||||
+ kPatternsContainedByBoth,
|
||||
+
|
||||
+ // Includes patterns that are contained by both sets and creates new
|
||||
+ // patterns to represent the intersection of any others. The intersection of
|
||||
+ // the two sets above is
|
||||
+ // {
|
||||
+ // "https://example.com/*" (contained exactly by each set)
|
||||
+ // "https://google.com/maps" (contained exactly by set 2 and a strict
|
||||
+ // subset of https://*.google.com/* in set 1)
|
||||
+ // "http://chromium.org/*" (the overlap between "http://*/*" in set 1 and
|
||||
+ // *://chromium.org/*" in set 2).
|
||||
+ // }
|
||||
+ // Note that this is the most computationally expensive - potentially
|
||||
+ // O(n^2) - since it can require comparing each pattern in one set to every
|
||||
+ // pattern in the other set.
|
||||
+ kDetailed,
|
||||
+ };
|
||||
+
|
||||
+ // Returns the intersection of |set1| and |set2| according to
|
||||
+ // |intersection_behavior|.
|
||||
+ static URLPatternSet CreateIntersection(
|
||||
+ const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2,
|
||||
+ IntersectionBehavior intersection_behavior);
|
||||
+
|
||||
+ // Returns the union of |set1| and |set2|.
|
||||
+ static URLPatternSet CreateUnion(const URLPatternSet& set1,
|
||||
+ const URLPatternSet& set2);
|
||||
+
|
||||
+ // Returns the union of all sets in |sets|.
|
||||
+ static URLPatternSet CreateUnion(const std::vector<URLPatternSet>& sets);
|
||||
+ using const_iterator = std::set<URLPattern>::const_iterator;
|
||||
+ using iterator = std::set<URLPattern>::iterator;
|
||||
+
|
||||
+ URLPatternSet();
|
||||
+ URLPatternSet(URLPatternSet&& rhs);
|
||||
|
||||
@@ -201,7 +201,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc
|
||||
--- a/chrome/browser/adblock/adblock_content_browser_client.cc
|
||||
+++ b/chrome/browser/adblock/adblock_content_browser_client.cc
|
||||
@@ -24,6 +24,8 @@
|
||||
@@ -23,6 +23,8 @@
|
||||
#include "chrome/browser/adblock/resource_classification_runner_factory.h"
|
||||
#include "chrome/browser/adblock/sitekey_storage_factory.h"
|
||||
#include "chrome/browser/adblock/subscription_service_factory.h"
|
||||
@@ -210,7 +210,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/ui/browser_navigator_params.h"
|
||||
#include "components/adblock/content/browser/adblock_url_loader_factory.h"
|
||||
@@ -41,6 +43,7 @@
|
||||
@@ -40,6 +42,7 @@
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
|
||||
#include "services/network/public/mojom/websocket.mojom.h"
|
||||
@@ -218,7 +218,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
#include "services/service_manager/public/cpp/binder_registry.h"
|
||||
#include "third_party/blink/public/common/loader/url_loader_throttle.h"
|
||||
|
||||
@@ -54,17 +57,41 @@
|
||||
@@ -53,17 +56,41 @@
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -242,7 +242,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
+ }
|
||||
+ // Filtering may be needed if there's at least one enabled
|
||||
+ // FilteringConfiguration.
|
||||
+ bool ret = base::ranges::any_of(
|
||||
+ bool ret = std::ranges::any_of(
|
||||
+ adblock::SubscriptionServiceFactory::GetForBrowserContext(profile)
|
||||
+ ->GetInstalledFilteringConfigurations(),
|
||||
+ &adblock::FilteringConfiguration::IsEnabled);
|
||||
@@ -266,7 +266,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -79,10 +106,11 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
@@ -78,10 +105,11 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
|
||||
static void StartProxying(
|
||||
Profile* profile,
|
||||
@@ -280,7 +280,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
bool use_test_loader) {
|
||||
const void* const kAdblockContextUserDataKey = &kAdblockContextUserDataKey;
|
||||
auto* self = static_cast<AdblockContextData*>(
|
||||
@@ -91,8 +119,6 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
@@ -90,8 +118,6 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
self = new AdblockContextData();
|
||||
profile->SetUserData(kAdblockContextUserDataKey, base::WrapUnique(self));
|
||||
}
|
||||
@@ -289,7 +289,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
adblock::AdblockURLLoaderFactoryConfig config{
|
||||
adblock::SubscriptionServiceFactory::GetForBrowserContext(
|
||||
browser_context),
|
||||
@@ -102,28 +128,12 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
@@ -101,28 +127,12 @@ class AdblockContextData : public base::SupportsUserData::Data {
|
||||
adblock::SitekeyStorageFactory::GetForBrowserContext(browser_context),
|
||||
adblock::ContentSecurityPolicyInjectorFactory::GetForBrowserContext(
|
||||
browser_context)};
|
||||
@@ -321,7 +321,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
embedder_support::GetUserAgent(),
|
||||
base::BindOnce(&AdblockContextData::RemoveProxy,
|
||||
self->weak_factory_.GetWeakPtr()));
|
||||
@@ -163,47 +173,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() {
|
||||
@@ -162,47 +172,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() {
|
||||
#endif
|
||||
|
||||
bool AdblockContentBrowserClient::WillInterceptWebSocket(
|
||||
@@ -389,7 +389,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
auto* subscription_service =
|
||||
adblock::SubscriptionServiceFactory::GetForBrowserContext(
|
||||
browser_context);
|
||||
@@ -211,33 +224,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal(
|
||||
@@ -210,33 +223,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal(
|
||||
adblock::ResourceClassificationRunnerFactory::GetForBrowserContext(
|
||||
browser_context);
|
||||
classification_runner->CheckRequestFilterMatchForWebSocket(
|
||||
@@ -431,7 +431,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
std::move(handshake_client));
|
||||
return;
|
||||
}
|
||||
@@ -254,15 +267,134 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted(
|
||||
@@ -253,15 +266,134 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted(
|
||||
VLOG(1) << "[eyeo] Web socket blocked for " << url;
|
||||
}
|
||||
|
||||
@@ -568,7 +568,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
|
||||
header_client,
|
||||
bool* bypass_redirect_checks,
|
||||
@@ -271,30 +403,17 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
@@ -270,30 +402,17 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner) {
|
||||
// Create Chromium proxy first as WebRequestProxyingURLLoaderFactory logic
|
||||
// depends on being first proxy
|
||||
@@ -608,7 +608,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
|
||||
bool use_test_loader = false;
|
||||
#ifdef EYEO_INTERCEPT_DEBUG_URL
|
||||
@@ -309,12 +428,8 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
@@ -308,12 +427,8 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
#endif
|
||||
|
||||
if (use_adblock_proxy) {
|
||||
@@ -2660,7 +2660,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -186,8 +186,13 @@ class AdblockURLLoaderFactory::InProgressRequest
|
||||
@@ -184,8 +184,13 @@ class AdblockURLLoaderFactory::InProgressRequest
|
||||
void OnRequestError(int error_code);
|
||||
void CheckFilterMatch(CheckFilterMatchCallback callback);
|
||||
void ProcessResponseHeaders(
|
||||
@@ -2674,7 +2674,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
void CheckRewriteFilterMatch(CheckRewriteFilterMatchCallback callback);
|
||||
void OnRequestUrlClassified(CheckFilterMatchCallback callback,
|
||||
FilterMatchResult result);
|
||||
@@ -307,7 +312,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse(
|
||||
@@ -293,7 +298,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse(
|
||||
VLOG(1) << "[eyeo] Sending headers for processing: " << request_url_;
|
||||
client_receiver_.Pause();
|
||||
const scoped_refptr<net::HttpResponseHeaders>& headers = head->headers;
|
||||
@@ -2684,7 +2684,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
headers, base::BindOnce(&InProgressRequest::OnProcessHeadersResult,
|
||||
weak_factory_.GetWeakPtr(), std::move(head),
|
||||
std::move(body), std::move(cached_metadata)));
|
||||
@@ -344,12 +351,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError(
|
||||
@@ -330,12 +337,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError(
|
||||
|
||||
void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
|
||||
CheckFilterMatchCallback callback) {
|
||||
@@ -2697,7 +2697,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
auto subscription_service = factory_->config_.subscription_service;
|
||||
if (is_document_request_) {
|
||||
auto* host = content::RenderFrameHost::FromID(factory_->host_id_);
|
||||
@@ -386,9 +387,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
|
||||
@@ -372,9 +373,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
|
||||
FilterMatchResult::kNoRule);
|
||||
}
|
||||
} else {
|
||||
@@ -2710,7 +2710,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
base::BindOnce(
|
||||
&AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified,
|
||||
weak_factory_.GetWeakPtr(),
|
||||
@@ -399,6 +401,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
|
||||
@@ -385,6 +387,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
|
||||
}
|
||||
|
||||
void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders(
|
||||
@@ -2718,7 +2718,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
const scoped_refptr<net::HttpResponseHeaders>& headers,
|
||||
ProcessResponseHeadersCallback callback) {
|
||||
if (!factory_->CheckHostValid()) {
|
||||
@@ -407,6 +410,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders(
|
||||
@@ -393,6 +396,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2755,7 +2755,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
auto subscription_service = factory_->config_.subscription_service;
|
||||
factory_->config_.resource_classifier->CheckResponseFilterMatch(
|
||||
subscription_service->GetCurrentSnapshot(), request_url_,
|
||||
@@ -677,12 +710,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult(
|
||||
@@ -663,12 +696,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult(
|
||||
|
||||
AdblockURLLoaderFactory::AdblockURLLoaderFactory(
|
||||
AdblockURLLoaderFactoryConfig config,
|
||||
@@ -2771,7 +2771,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
host_id_(host_id),
|
||||
user_agent_string_(std::move(user_agent_string)),
|
||||
on_disconnect_(std::move(on_disconnect)) {
|
||||
@@ -691,10 +725,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory(
|
||||
@@ -677,10 +711,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory(
|
||||
DCHECK(config_.element_hider);
|
||||
DCHECK(config_.sitekey_storage);
|
||||
DCHECK(config_.csp_injector);
|
||||
@@ -3685,7 +3685,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
|
||||
@@ -103,6 +103,7 @@ bool AdblockControllerImpl::IsAdblockEnabled() const {
|
||||
@@ -102,6 +102,7 @@ bool AdblockControllerImpl::IsAdblockEnabled() const {
|
||||
}
|
||||
|
||||
void AdblockControllerImpl::SetAcceptableAdsEnabled(bool enabled) {
|
||||
@@ -3693,7 +3693,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb
|
||||
if (enabled) {
|
||||
InstallSubscription(AcceptableAdsUrl());
|
||||
} else {
|
||||
@@ -117,6 +118,7 @@ bool AdblockControllerImpl::IsAcceptableAdsEnabled() const {
|
||||
@@ -116,6 +117,7 @@ bool AdblockControllerImpl::IsAcceptableAdsEnabled() const {
|
||||
}
|
||||
|
||||
void AdblockControllerImpl::InstallSubscription(const GURL& url) {
|
||||
@@ -3701,7 +3701,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb
|
||||
adblock_filtering_configuration_->AddFilterList(url);
|
||||
}
|
||||
|
||||
@@ -165,10 +167,8 @@ void AdblockControllerImpl::RunFirstRunLogic(PrefService* pref_service) {
|
||||
@@ -164,10 +166,8 @@ void AdblockControllerImpl::RunFirstRunLogic(PrefService* pref_service) {
|
||||
common::prefs::kInstallFirstStartSubscriptions)) {
|
||||
// On first run, install additional subscriptions.
|
||||
for (const auto& cur : known_subscriptions_) {
|
||||
@@ -3714,7 +3714,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb
|
||||
// Do not install Acceptable Ads on first run because a command line
|
||||
// switch forbids it. Mostly used for testing.
|
||||
continue;
|
||||
@@ -236,7 +236,7 @@ void AdblockControllerImpl::InstallLanguageBasedRecommendedSubscriptions() {
|
||||
@@ -235,7 +235,7 @@ void AdblockControllerImpl::InstallLanguageBasedRecommendedSubscriptions() {
|
||||
SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch &&
|
||||
std::find(subscription.languages.begin(), subscription.languages.end(),
|
||||
language_) != subscription.languages.end()) {
|
||||
@@ -4373,7 +4373,7 @@ diff --git a/components/adblock/core/converter/flatbuffer_converter.cc b/compone
|
||||
diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/adblock/core/converter/parser/metadata.cc
|
||||
--- a/components/adblock/core/converter/parser/metadata.cc
|
||||
+++ b/components/adblock/core/converter/parser/metadata.cc
|
||||
@@ -58,13 +58,6 @@ std::optional<Metadata> Metadata::FromStream(std::istream& filter_stream) {
|
||||
@@ -57,13 +57,6 @@ std::optional<Metadata> Metadata::FromStream(std::istream& filter_stream) {
|
||||
if (key == "homepage") {
|
||||
homepage = value;
|
||||
} else if (key == "redirect") {
|
||||
@@ -4387,7 +4387,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a
|
||||
} else if (key == "title") {
|
||||
title = value;
|
||||
} else if (key == "version") {
|
||||
@@ -107,6 +100,7 @@ Metadata::~Metadata() = default;
|
||||
@@ -106,6 +99,7 @@ Metadata::~Metadata() = default;
|
||||
|
||||
// static
|
||||
bool Metadata::IsValidAdblockHeader(const std::string& adblock_header) {
|
||||
@@ -4395,7 +4395,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a
|
||||
static re2::RE2 adblock_header_re("^\\[Adblock.*\\]");
|
||||
std::string adblock_header_trimmed;
|
||||
|
||||
@@ -131,7 +125,7 @@ base::TimeDelta Metadata::ParseExpirationTime(
|
||||
@@ -130,7 +124,7 @@ base::TimeDelta Metadata::ParseExpirationTime(
|
||||
|
||||
if (!re2::RE2::FullMatch(expiration_value, expiration_time_re,
|
||||
&expiration_time, &expiration_unit)) {
|
||||
@@ -4947,7 +4947,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i
|
||||
diff --git a/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc
|
||||
--- a/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc
|
||||
+++ b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc
|
||||
@@ -62,10 +62,10 @@ class PreloadedSubscriptionProviderImpl::SingleSubscriptionProvider {
|
||||
@@ -61,10 +61,10 @@ class PreloadedSubscriptionProviderImpl::SingleSubscriptionProvider {
|
||||
utils::MakeFlatbufferDataFromResourceBundle(
|
||||
info_.flatbuffer_resource_id),
|
||||
Subscription::InstallationState::Preloaded, base::Time());
|
||||
@@ -5007,7 +5007,7 @@ diff --git a/components/adblock/core/subscription/subscription.h b/components/ad
|
||||
diff --git a/components/adblock/core/subscription/subscription_collection_impl.cc b/components/adblock/core/subscription/subscription_collection_impl.cc
|
||||
--- a/components/adblock/core/subscription/subscription_collection_impl.cc
|
||||
+++ b/components/adblock/core/subscription/subscription_collection_impl.cc
|
||||
@@ -342,6 +342,7 @@ std::set<HeaderFilterData> SubscriptionCollectionImpl::GetHeaderFilters(
|
||||
@@ -341,6 +341,7 @@ std::set<HeaderFilterData> SubscriptionCollectionImpl::GetHeaderFilters(
|
||||
ContentType content_type,
|
||||
FilterCategory category) const {
|
||||
std::set<HeaderFilterData> filters{};
|
||||
@@ -5124,7 +5124,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.h b/compon
|
||||
diff --git a/components/adblock/core/subscription/subscription_downloader_impl.cc b/components/adblock/core/subscription/subscription_downloader_impl.cc
|
||||
--- a/components/adblock/core/subscription/subscription_downloader_impl.cc
|
||||
+++ b/components/adblock/core/subscription/subscription_downloader_impl.cc
|
||||
@@ -55,6 +55,7 @@ GURL AddUrlParameters(const GURL& subscription_url,
|
||||
@@ -54,6 +54,7 @@ GURL AddUrlParameters(const GURL& subscription_url,
|
||||
const SubscriptionPersistentMetadata* persistent_metadata,
|
||||
const utils::AppInfo& client_metadata,
|
||||
const bool is_disabled) {
|
||||
@@ -5132,7 +5132,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
const std::string query = base::StrCat(
|
||||
{"addonName=", "eyeo-chromium-sdk", "&addonVersion=", "1.0",
|
||||
"&application=", base::EscapeQueryParamValue(client_metadata.name, true),
|
||||
@@ -115,6 +116,8 @@ void SubscriptionDownloaderImpl::StartDownload(
|
||||
@@ -114,6 +115,8 @@ void SubscriptionDownloaderImpl::StartDownload(
|
||||
}
|
||||
|
||||
void SubscriptionDownloaderImpl::CancelDownload(const GURL& subscription_url) {
|
||||
@@ -5141,7 +5141,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
ongoing_downloads_.erase(subscription_url);
|
||||
}
|
||||
@@ -139,10 +142,6 @@ void SubscriptionDownloaderImpl::DoHeadRequest(
|
||||
@@ -138,10 +141,6 @@ void SubscriptionDownloaderImpl::DoHeadRequest(
|
||||
|
||||
bool SubscriptionDownloaderImpl::IsUrlAllowed(
|
||||
const GURL& subscription_url) const {
|
||||
@@ -5152,7 +5152,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
if (!subscription_url.SchemeIs("https") &&
|
||||
!subscription_url.SchemeIs("data")) {
|
||||
return false;
|
||||
@@ -156,12 +155,14 @@ void SubscriptionDownloaderImpl::OnHeadersOnlyDownloaded(
|
||||
@@ -155,12 +154,14 @@ void SubscriptionDownloaderImpl::OnHeadersOnlyDownloaded(
|
||||
scoped_refptr<net::HttpResponseHeaders> headers) {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
DCHECK(ongoing_ping_.has_value());
|
||||
@@ -5170,7 +5170,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
}
|
||||
|
||||
std::move(std::get<HeadRequestCallback>(*ongoing_ping_))
|
||||
@@ -192,11 +193,11 @@ void SubscriptionDownloaderImpl::OnDownloadFinished(
|
||||
@@ -191,11 +192,11 @@ void SubscriptionDownloaderImpl::OnDownloadFinished(
|
||||
persistent_metadata_->IncrementDownloadErrorCount(subscription_url);
|
||||
if (std::get<RetryPolicy>(download_it->second) ==
|
||||
RetryPolicy::RetryUntilSucceeded) {
|
||||
@@ -5184,7 +5184,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
<< subscription_url << ", will abort";
|
||||
std::move(std::get<DownloadCompletedCallback>(download_it->second))
|
||||
.Run(nullptr);
|
||||
@@ -213,8 +214,10 @@ void SubscriptionDownloaderImpl::OnDownloadFinished(
|
||||
@@ -212,8 +213,10 @@ void SubscriptionDownloaderImpl::OnDownloadFinished(
|
||||
TRACE_ID_LOCAL(GenerateTraceId(subscription_url)), "url",
|
||||
subscription_url.spec());
|
||||
|
||||
@@ -5196,7 +5196,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
base::BindOnce(&SubscriptionDownloaderImpl::OnConversionFinished,
|
||||
weak_ptr_factory_.GetWeakPtr(), subscription_url));
|
||||
}
|
||||
@@ -228,14 +231,14 @@ void SubscriptionDownloaderImpl::OnConversionFinished(
|
||||
@@ -227,14 +230,14 @@ void SubscriptionDownloaderImpl::OnConversionFinished(
|
||||
TRACE_ID_LOCAL(GenerateTraceId(subscription_url)));
|
||||
const auto download_it = ongoing_downloads_.find(subscription_url);
|
||||
if (download_it == ongoing_downloads_.end()) {
|
||||
@@ -5213,7 +5213,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
<< " successfully";
|
||||
std::move(std::get<DownloadCompletedCallback>(download_it->second))
|
||||
.Run(std::move(
|
||||
@@ -278,7 +281,7 @@ void SubscriptionDownloaderImpl::AbortWithWarning(
|
||||
@@ -277,7 +280,7 @@ void SubscriptionDownloaderImpl::AbortWithWarning(
|
||||
if (ongoing_download_it == ongoing_downloads_.end()) {
|
||||
return;
|
||||
}
|
||||
@@ -5338,7 +5338,7 @@ diff --git a/components/adblock/core/subscription/subscription_service.h b/compo
|
||||
diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b/components/adblock/core/subscription/subscription_service_impl.cc
|
||||
--- a/components/adblock/core/subscription/subscription_service_impl.cc
|
||||
+++ b/components/adblock/core/subscription/subscription_service_impl.cc
|
||||
@@ -36,9 +36,23 @@
|
||||
@@ -35,9 +35,23 @@
|
||||
#include "components/adblock/core/subscription/filtering_configuration_maintainer.h"
|
||||
#include "components/adblock/core/subscription/subscription_collection.h"
|
||||
#include "components/adblock/core/subscription/subscription_service.h"
|
||||
@@ -5351,7 +5351,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
+bool IsKnownSubscription(
|
||||
+ const std::vector<KnownSubscriptionInfo>& known_subscriptions,
|
||||
+ const GURL& url) {
|
||||
+ return base::ranges::any_of(known_subscriptions,
|
||||
+ return std::ranges::any_of(known_subscriptions,
|
||||
+ [&](const auto& known_subscription) {
|
||||
+ return known_subscription.url == url;
|
||||
+ });
|
||||
@@ -5362,7 +5362,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
class EmptySubscription : public Subscription {
|
||||
public:
|
||||
EmptySubscription(const GURL& url) : url_(url) {}
|
||||
@@ -133,6 +147,68 @@ void SubscriptionServiceImpl::UninstallFilteringConfiguration(
|
||||
@@ -132,6 +146,68 @@ void SubscriptionServiceImpl::UninstallFilteringConfiguration(
|
||||
maintainers_.erase(it);
|
||||
}
|
||||
|
||||
@@ -5402,12 +5402,12 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
+ GetCurrentSubscriptions(configuration);
|
||||
+
|
||||
+ auto known_subscriptions = adblock::config::GetKnownSubscriptions();
|
||||
+ selected.erase(base::ranges::remove_if(selected,
|
||||
+ [&](const auto& subscription) {
|
||||
+ return IsKnownSubscription(
|
||||
+ known_subscriptions,
|
||||
+ subscription->GetSourceUrl());
|
||||
+ }),
|
||||
+ selected.erase(std::remove_if(selected.begin(), selected.end(),
|
||||
+ [&known_subscriptions](const auto& subscription) {
|
||||
+ return IsKnownSubscription(
|
||||
+ known_subscriptions,
|
||||
+ subscription->GetSourceUrl());
|
||||
+ }),
|
||||
+ selected.end());
|
||||
+ return selected;
|
||||
+}
|
||||
@@ -5419,7 +5419,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
+raw_ptr<SubscriptionPersistentMetadata> SubscriptionServiceImpl::GetMetadataFor(
|
||||
+ raw_ptr<FilteringConfiguration> configuration) {
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ return entry.first.get() == configuration;
|
||||
+ });
|
||||
+ if (it != maintainers_.end() && it->second) {
|
||||
@@ -5431,7 +5431,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
std::vector<FilteringConfiguration*>
|
||||
SubscriptionServiceImpl::GetInstalledFilteringConfigurations() {
|
||||
std::vector<FilteringConfiguration*> result;
|
||||
@@ -178,7 +254,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged(
|
||||
@@ -177,7 +253,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged(
|
||||
});
|
||||
DCHECK(it != maintainers_.end()) << "Received OnEnabledStateChanged from "
|
||||
"unregistered FilteringConfiguration";
|
||||
|
||||
@@ -7,9 +7,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
chrome/browser/net/profile_network_context_service.cc | 8 ++++++++
|
||||
.../browser_features_cc/Lock-Profile-Cookie-Database.inc | 7 +++++++
|
||||
.../browser_features_h/Lock-Profile-Cookie-Database.inc | 5 +++++
|
||||
services/network/network_context.cc | 4 +++-
|
||||
services/network/network_context.cc | 2 +-
|
||||
services/network/public/mojom/network_context.mojom | 8 ++++++++
|
||||
5 files changed, 31 insertions(+), 1 deletion(-)
|
||||
5 files changed, 29 insertions(+), 1 deletion(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Lock-Profile-Cookie-Database.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/browser_features_h/Lock-Profile-Cookie-Database.inc
|
||||
|
||||
@@ -56,14 +56,12 @@ new file mode 100644
|
||||
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
|
||||
@@ -3070,7 +3070,9 @@ NetworkContext::MakeSessionCleanupCookieStore() const {
|
||||
@@ -3070,7 +3070,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const {
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
const bool enable_exclusive_access =
|
||||
- network_service()->exclusive_cookie_database_locking();
|
||||
+ params_->enable_locking_cookie_database.value_or(
|
||||
+ base::FeatureList::IsEnabled(
|
||||
+ features::kEnableLockCookieDatabaseByDefault));
|
||||
+ params_->enable_locking_cookie_database.value_or(true);
|
||||
#else
|
||||
const bool enable_exclusive_access = false;
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
|
||||
@@ -26,9 +26,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../TabListEmptyCoordinator.java | 17 +-
|
||||
.../browser/feed/FeedSurfaceCoordinator.java | 4 +
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 3 +
|
||||
.../compositor/CompositorViewHolder.java | 7 +
|
||||
.../layouts/LayoutManagerChrome.java | 17 +-
|
||||
.../layouts/LayoutManagerChrome.java | 12 +-
|
||||
.../layouts/LayoutManagerChromeTablet.java | 4 +-
|
||||
.../layouts/ToolbarSwipeLayout.java | 14 +-
|
||||
.../overlays/strip/ScrollDelegate.java | 2 +-
|
||||
@@ -67,12 +66,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||
.../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++-
|
||||
.../ui/appmenu/AppMenuHandlerImpl.java | 10 ++
|
||||
...mniboxSuggestionsDropdownEmbedderImpl.java | 18 ++
|
||||
.../suggestions/AutocompleteCoordinator.java | 13 ++
|
||||
...rredIMEWindowInsetApplicationCallback.java | 7 +
|
||||
.../omnibox/LocationBarCoordinator.java | 1 +
|
||||
...mniboxSuggestionsDropdownEmbedderImpl.java | 22 +++
|
||||
.../suggestions/AutocompleteCoordinator.java | 14 ++
|
||||
.../suggestions/AutocompleteMediator.java | 6 +-
|
||||
.../DropdownItemViewInfoListManager.java | 1 +
|
||||
.../OmniboxSuggestionsDropdown.java | 11 +-
|
||||
.../OmniboxSuggestionsDropdownEmbedder.java | 4 +
|
||||
.../OmniboxSuggestionsDropdownEmbedder.java | 6 +
|
||||
.../base/BaseSuggestionViewBinder.java | 7 +
|
||||
.../strings/android_chrome_strings.grd | 6 +
|
||||
chrome/browser/ui/android/toolbar/BUILD.gn | 1 +
|
||||
@@ -88,11 +89,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../top/TopToolbarOverlayProperties.java | 8 +-
|
||||
.../toolbar/top/TopToolbarSceneLayer.java | 10 +-
|
||||
.../res/xml/accessibility_preferences.xml | 8 +
|
||||
.../accessibility/AccessibilitySettings.java | 26 +++
|
||||
.../accessibility/AccessibilitySettings.java | 27 +++
|
||||
.../AccessibilitySettingsDelegate.java | 8 +
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
.../Move-navigation-bar-to-bottom.inc | 17 ++
|
||||
79 files changed, 1013 insertions(+), 77 deletions(-)
|
||||
80 files changed, 1021 insertions(+), 77 deletions(-)
|
||||
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
|
||||
@@ -791,19 +792,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
@Override
|
||||
public BrowserContextHandle getBrowserContextHandle() {
|
||||
return mProfile;
|
||||
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
|
||||
@@ -248,6 +248,9 @@ import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
+import android.widget.ImageView;
|
||||
+import android.view.ViewGroup.LayoutParams;
|
||||
+
|
||||
/**
|
||||
* A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} and
|
||||
* associated classes.
|
||||
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
|
||||
@@ -839,19 +827,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -154,7 +155,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -154,7 +155,9 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
|
||||
@Override
|
||||
public SwipeHandler createToolbarSwipeHandler(boolean supportsSwipeToShowTabSwitcher) {
|
||||
- return new ToolbarSwipeHandler(supportsSwipeToShowTabSwitcher);
|
||||
+ boolean move_top_toolbar =
|
||||
+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled();
|
||||
+ return new ToolbarSwipeHandler(supportsSwipeToShowTabSwitcher && !move_top_toolbar,
|
||||
+ supportSwipeDown && move_top_toolbar);
|
||||
+ return new ToolbarSwipeHandler(
|
||||
+ supportsSwipeToShowTabSwitcher || ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(),
|
||||
+ !ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -364,9 +368,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -364,9 +367,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
private static final float SWIPE_RANGE_DEG = 25;
|
||||
|
||||
private final boolean mSupportsSwipeToShowTabSwitcher;
|
||||
@@ -864,24 +851,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -394,6 +400,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
mScrollDirection = computeScrollDirection(dx, dy);
|
||||
if (mScrollDirection == ScrollDirection.UNKNOWN) return;
|
||||
|
||||
+ } else if (mSupportSwipeUp
|
||||
+ && mScrollDirection == ScrollDirection.UP
|
||||
+ && !ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled()) {
|
||||
+ showLayout(LayoutType.TAB_SWITCHER, true);
|
||||
if (mScrollDirection == ScrollDirection.LEFT
|
||||
|| mScrollDirection == ScrollDirection.RIGHT) {
|
||||
startShowing(mToolbarSwipeLayout, true);
|
||||
@@ -473,7 +483,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -473,7 +478,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
|
||||
return direction == showTabSwitcherScrollDirection
|
||||
|| direction == ScrollDirection.LEFT
|
||||
- || direction == ScrollDirection.RIGHT;
|
||||
+ || direction == ScrollDirection.RIGHT
|
||||
+ || direction == ScrollDirection.UP;
|
||||
+ || (direction == ScrollDirection.UP && mSupportSwipeUp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1755,7 +1731,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer
|
||||
- layer()->SetPosition(gfx::PointF(0, y_offset));
|
||||
+ if (base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) {
|
||||
+ // do not move the whole layer (which also contains the contents) but only the tab strip layer
|
||||
+ tab_strip_layer_->SetPosition(gfx::PointF(0, y_offset));
|
||||
+ background_layer_->SetPosition(gfx::PointF(0, y_offset));
|
||||
+ } else {
|
||||
+ layer()->SetPosition(gfx::PointF(0, y_offset));
|
||||
+ }
|
||||
@@ -2243,6 +2219,53 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
|
||||
ContextThemeWrapper wrapper =
|
||||
new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay);
|
||||
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java
|
||||
@@ -32,6 +32,7 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
private static final int NO_DEFERRED_KEYBOARD_HEIGHT = -1;
|
||||
private int mDeferredKeyboardHeight = NO_DEFERRED_KEYBOARD_HEIGHT;
|
||||
private int mKeyboardHeight;
|
||||
+ private int mSystemBarInsetsBottom;
|
||||
private boolean mAnimationInProgress;
|
||||
private WindowInsetsAnimationCompat mCurrentAnimation;
|
||||
private InsetObserver mInsetObserver;
|
||||
@@ -86,6 +87,10 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
return mKeyboardHeight;
|
||||
}
|
||||
|
||||
+ public int getSystemBarInsetsBottom() {
|
||||
+ return mSystemBarInsetsBottom;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public void onPrepare(@NonNull WindowInsetsAnimationCompat animation) {
|
||||
if ((animation.getTypeMask() & WindowInsetsCompat.Type.ime()) == 0) return;
|
||||
@@ -121,11 +126,13 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
public WindowInsetsCompat onApplyWindowInsets(
|
||||
@NonNull View view, @NonNull WindowInsetsCompat windowInsetsCompat) {
|
||||
int newKeyboardHeight = 0;
|
||||
+ mSystemBarInsetsBottom = 0;
|
||||
Insets imeInsets = windowInsetsCompat.getInsets(WindowInsetsCompat.Type.ime());
|
||||
if (imeInsets.bottom > 0) {
|
||||
Insets systemBarInsets =
|
||||
windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
newKeyboardHeight = imeInsets.bottom - systemBarInsets.bottom;
|
||||
+ mSystemBarInsetsBottom = systemBarInsets.bottom;
|
||||
}
|
||||
// Keyboard going away or the change is not animated; apply immediately.
|
||||
if (newKeyboardHeight < mKeyboardHeight || !mAnimationInProgress) {
|
||||
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
|
||||
@@ -206,6 +206,7 @@ public class LocationBarCoordinator
|
||||
uiOverrides.isForcedPhoneStyleOmnibox(),
|
||||
baseChromeLayout,
|
||||
deferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight,
|
||||
+ deferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom,
|
||||
bottomWindowPaddingSupplier);
|
||||
|
||||
mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar);
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
|
||||
@@ -2262,7 +2285,30 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.ui.base.ViewUtils;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
@@ -108,6 +110,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
@@ -44,6 +46,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
private final @NonNull View mAlignmentView;
|
||||
private final boolean mForcePhoneStyleOmnibox;
|
||||
private final Supplier<Integer> mKeyboardHeightSupplier;
|
||||
+ private final Supplier<Integer> mSystemBarInsetsBottomSupplier;
|
||||
private final Supplier<Integer> mBottomWindowPaddingSupplier;
|
||||
private final @NonNull Context mContext;
|
||||
// Reusable int array to pass to positioning methods that operate on a two element int array.
|
||||
@@ -82,12 +85,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
boolean forcePhoneStyleOmnibox,
|
||||
@Nullable View baseChromeLayout,
|
||||
Supplier<Integer> keyboardHeightSupplier,
|
||||
+ Supplier<Integer> systemBarInsetsBottomSupplier,
|
||||
Supplier<Integer> bottomWindowPaddingSupplier) {
|
||||
mWindowAndroid = windowAndroid;
|
||||
mAnchorView = anchorView;
|
||||
mAlignmentView = alignmentView;
|
||||
mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox;
|
||||
mKeyboardHeightSupplier = keyboardHeightSupplier;
|
||||
+ mSystemBarInsetsBottomSupplier = systemBarInsetsBottomSupplier;
|
||||
mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier;
|
||||
mContext = mAnchorView.getContext();
|
||||
mContext.registerComponentCallbacks(this);
|
||||
@@ -108,6 +113,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
mOmniboxAlignmentSupplier.removeObserver(obs);
|
||||
}
|
||||
|
||||
@@ -2274,7 +2320,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
@Nullable
|
||||
@Override
|
||||
public OmniboxAlignment getCurrentAlignment() {
|
||||
@@ -132,6 +139,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
@@ -132,6 +142,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
|
||||
@Override
|
||||
public void onDetachedFromWindow() {
|
||||
@@ -2284,22 +2330,23 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
mAnchorView.removeOnLayoutChangeListener(this);
|
||||
mAlignmentView.removeOnLayoutChangeListener(this);
|
||||
mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
@@ -218,6 +228,8 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
@@ -218,6 +231,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
|
||||
ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray);
|
||||
int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop();
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled())
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ top -= mPositionArray[1];
|
||||
+ }
|
||||
int left;
|
||||
int width;
|
||||
int paddingLeft;
|
||||
@@ -291,6 +303,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
@@ -291,6 +307,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl
|
||||
: contentView.getMeasuredHeight() - keyboardHeight;
|
||||
int height = Math.min(windowSpace, contentSpace) - top;
|
||||
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ ViewCompat.setPaddingRelative(
|
||||
+ contentView, 0, 0, 0, keyboardHeight);
|
||||
+ contentView, 0, 0, 0, keyboardHeight + mSystemBarInsetsBottomSupplier.get());
|
||||
+ top = 0;
|
||||
+ }
|
||||
+
|
||||
@@ -2309,7 +2356,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/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
|
||||
@@ -49,6 +49,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
@@ -10,6 +10,7 @@ import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
+import androidx.annotation.NonNull;
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.view.ViewCompat;
|
||||
@@ -49,6 +50,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.modelutil.LazyConstructionPropertyMcp;
|
||||
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
@@ -2317,7 +2372,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -68,6 +69,7 @@ public class AutocompleteCoordinator
|
||||
@@ -68,6 +70,7 @@ public class AutocompleteCoordinator
|
||||
private @Nullable OmniboxSuggestionsDropdown mDropdown;
|
||||
private ObserverList<OmniboxSuggestionsDropdownScrollListener> mScrollListenerList =
|
||||
new ObserverList<>();
|
||||
@@ -2325,7 +2380,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
|
||||
/** An observer watching for changes to the visual state of the omnibox suggestions. */
|
||||
public interface OmniboxSuggestionsVisualStateObserver {
|
||||
@@ -102,6 +104,7 @@ public class AutocompleteCoordinator
|
||||
@@ -102,6 +105,7 @@ public class AutocompleteCoordinator
|
||||
Context context = parent.getContext();
|
||||
|
||||
ModelList listItems = new ModelList();
|
||||
@@ -2333,7 +2388,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
PropertyModel listModel =
|
||||
new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS)
|
||||
.with(SuggestionListProperties.EMBEDDER, dropdownEmbedder)
|
||||
@@ -223,6 +226,16 @@ public class AutocompleteCoordinator
|
||||
@@ -223,6 +227,16 @@ public class AutocompleteCoordinator
|
||||
|
||||
dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox);
|
||||
dropdown.setAdapter(mAdapter);
|
||||
@@ -2422,7 +2477,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/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
@@ -5,6 +5,7 @@
|
||||
@@ -5,11 +5,14 @@
|
||||
package org.chromium.chrome.browser.omnibox.suggestions;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -2430,7 +2485,14 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.build.annotations.NullMarked;
|
||||
@@ -118,6 +119,9 @@ public interface OmniboxSuggestionsDropdownEmbedder {
|
||||
import org.chromium.build.annotations.Nullable;
|
||||
|
||||
+import androidx.annotation.NonNull;
|
||||
+
|
||||
import java.util.Objects;
|
||||
|
||||
/** Provider of capabilities required to embed the omnibox suggestion list into the UI. */
|
||||
@@ -118,6 +121,9 @@ public interface OmniboxSuggestionsDropdownEmbedder {
|
||||
*/
|
||||
OmniboxAlignment getCurrentAlignment();
|
||||
|
||||
@@ -2910,7 +2972,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -187,6 +208,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
@@ -187,6 +208,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDelegate.getBrowserContextHandle(), (Integer) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) {
|
||||
PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue);
|
||||
@@ -2919,6 +2981,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
+ } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
||||
+ mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
} else if (OmniboxFeatures.KEY_JUMP_START_OMNIBOX.equals(preference.getKey())) {
|
||||
|
||||
@@ -6,10 +6,10 @@ and, in windows, hide the presence of the webcam if the user has not given permi
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../core/browser/bromite_content_settings/camera.inc | 8 ++++++++
|
||||
components/media_device_salt/media_device_salt_service.cc | 3 +++
|
||||
components/media_device_salt/media_device_salt_service.cc | 2 ++
|
||||
content/browser/media/media_devices_util.cc | 3 +++
|
||||
.../browser/renderer_host/media/media_devices_manager.cc | 5 +++++
|
||||
4 files changed, 19 insertions(+)
|
||||
4 files changed, 18 insertions(+)
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/camera.inc
|
||||
|
||||
diff --git a/components/content_settings/core/browser/bromite_content_settings/camera.inc b/components/content_settings/core/browser/bromite_content_settings/camera.inc
|
||||
@@ -28,12 +28,11 @@ new file mode 100644
|
||||
diff --git a/components/media_device_salt/media_device_salt_service.cc b/components/media_device_salt/media_device_salt_service.cc
|
||||
--- a/components/media_device_salt/media_device_salt_service.cc
|
||||
+++ b/components/media_device_salt/media_device_salt_service.cc
|
||||
@@ -25,6 +25,9 @@ BASE_FEATURE(kMediaDeviceIdPartitioning,
|
||||
@@ -25,6 +25,8 @@ BASE_FEATURE(kMediaDeviceIdPartitioning,
|
||||
"MediaDeviceIdPartitioning",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
+SET_CROMITE_FEATURE_ENABLED(kMediaDeviceIdPartitioning);
|
||||
+SET_CROMITE_FEATURE_ENABLED(kMediaDeviceIdRandomSaltsPerStorageKey);
|
||||
+
|
||||
namespace {
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ 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
|
||||
---
|
||||
.../Partition-blobs-by-top-frame-URL.inc | 1 +
|
||||
storage/browser/blob/blob_url_store_impl.cc | 36 ++++++++++++++++++-
|
||||
storage/browser/blob/blob_url_store_impl.cc | 35 +++++++++++++++++++
|
||||
storage/browser/blob/blob_url_store_impl.h | 11 ++++++
|
||||
storage/browser/blob/features.cc | 1 +
|
||||
.../public/mojom/blob/blob_url_store.mojom | 12 +++++--
|
||||
.../core/fileapi/public_url_manager.cc | 18 ++++++++++
|
||||
6 files changed, 75 insertions(+), 4 deletions(-)
|
||||
6 files changed, 75 insertions(+), 3 deletions(-)
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
@@ -47,13 +47,11 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
void BlobURLStoreImpl::Register(
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const GURL& url,
|
||||
@@ -123,12 +137,20 @@ void BlobURLStoreImpl::Revoke(const GURL& url) {
|
||||
@@ -123,12 +137,18 @@ void BlobURLStoreImpl::Revoke(const GURL& url) {
|
||||
void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback) {
|
||||
if (!registry_) {
|
||||
@@ -62,13 +60,13 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
return;
|
||||
}
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ std::move(callback).Run(std::nullopt);
|
||||
+ std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
if (!registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
|
||||
storage_key_)) {
|
||||
partitioned_fetch_failure_closure_.Run();
|
||||
@@ -142,6 +164,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
@@ -142,6 +162,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +79,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url,
|
||||
std::move(receiver));
|
||||
// When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and
|
||||
@@ -156,12 +184,18 @@ void BlobURLStoreImpl::ResolveForNavigation(
|
||||
@@ -156,12 +182,18 @@ void BlobURLStoreImpl::ResolveForNavigation(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
bool is_top_level_navigation,
|
||||
@@ -100,12 +98,19 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
if (!is_top_level_navigation &&
|
||||
!registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
|
||||
storage_key_)) {
|
||||
@@ -192,7 +226,7 @@ void BlobURLStoreImpl::ResolveForWorkerScriptFetch(
|
||||
@@ -187,12 +219,15 @@ void BlobURLStoreImpl::ResolveForNavigation(
|
||||
void BlobURLStoreImpl::ResolveForWorkerScriptFetch(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) {
|
||||
if (!registry_) {
|
||||
std::move(callback).Run(std::nullopt);
|
||||
return;
|
||||
}
|
||||
- ResolveForNavigation(url, std::move(token), /*is_top_level_navigation=*/false,
|
||||
+ ResolveForNavigation(url, std::move(token), unsafe_agent_cluster_id, unsafe_top_level_site, /*is_top_level_navigation=*/false,
|
||||
ResolveForNavigation(url, std::move(token), /*is_top_level_navigation=*/false,
|
||||
+ unsafe_agent_cluster_id, unsafe_top_level_site,
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/gcore/GoogleApiClientHelper.java | 89 +--
|
||||
.../instantapps/InstantAppsHandler.java | 6 +-
|
||||
.../settings/PasswordSettings.java | 9 -
|
||||
chrome/android/javatests/BUILD.gn | 7 -
|
||||
chrome/android/junit/BUILD.gn | 6 -
|
||||
chrome/browser/language/android/BUILD.gn | 3 -
|
||||
.../language/AppLanguagePromoDialog.java | 31 -
|
||||
.../language/settings/LanguageSettings.java | 6 -
|
||||
@@ -104,12 +106,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
services/BUILD.gn | 9 -
|
||||
services/device/geolocation/BUILD.gn | 4 -
|
||||
services/shape_detection/BUILD.gn | 2 -
|
||||
third_party/android_deps/BUILD.gn | 707 +-----------------
|
||||
third_party/android_deps/BUILD.gn | 705 +-----------------
|
||||
.../preconditions/javatests/BUILD.gn | 1 -
|
||||
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
|
||||
third_party/androidx/customizations.gni | 13 +-
|
||||
third_party/cardboard/BUILD.gn | 4 -
|
||||
85 files changed, 128 insertions(+), 2284 deletions(-)
|
||||
87 files changed, 128 insertions(+), 2295 deletions(-)
|
||||
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
|
||||
|
||||
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
|
||||
@@ -730,6 +732,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
|
||||
--- a/chrome/android/javatests/BUILD.gn
|
||||
+++ b/chrome/android/javatests/BUILD.gn
|
||||
@@ -12,13 +12,6 @@ testonly = true
|
||||
|
||||
# Partition tests into one target per-package to keep incremental build times down.
|
||||
chrome_test_java_helper_deps = [
|
||||
- "$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",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_java_test_support_uncommon",
|
||||
diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn
|
||||
--- a/chrome/android/junit/BUILD.gn
|
||||
+++ b/chrome/android/junit/BUILD.gn
|
||||
@@ -35,12 +35,6 @@ shared_library_with_jni("libchrome_junit_tests") {
|
||||
if (is_android) {
|
||||
# Partition tests into one target per-package to keep incremental build times down.
|
||||
chrome_junit_tests_helper_deps = [
|
||||
- "$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_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:base_java_test_support_uncommon",
|
||||
diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn
|
||||
--- a/chrome/browser/language/android/BUILD.gn
|
||||
+++ b/chrome/browser/language/android/BUILD.gn
|
||||
@@ -4136,12 +4171,10 @@ 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.
|
||||
if (!defined(guava_android_target)) {
|
||||
java_prebuilt("com_google_guava_guava_android_java") {
|
||||
@@ -1079,342 +713,6 @@ if (!limit_android_deps) {
|
||||
"//third_party/androidx:androidx_test_monitor_java",
|
||||
]
|
||||
@@ -1081,340 +715,6 @@ if (!limit_android_deps) {
|
||||
is_robolectric = true
|
||||
- }
|
||||
-
|
||||
}
|
||||
|
||||
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
||||
- if (google_play_services_package == "//third_party/android_deps") {
|
||||
- android_aar_prebuilt("google_android_datatransport_transport_api_java") {
|
||||
@@ -4479,7 +4512,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_testparameterinjector_test_parameter_injector_java") {
|
||||
@@ -1700,7 +998,6 @@ if (!limit_android_deps) {
|
||||
@@ -1700,7 +1000,6 @@ if (!limit_android_deps) {
|
||||
]
|
||||
testonly = true
|
||||
deps = [
|
||||
@@ -4487,7 +4520,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
||||
":org_robolectric_pluginapi_java",
|
||||
":org_robolectric_utils_java",
|
||||
"//third_party/android_deps:guava_android_java",
|
||||
@@ -1722,7 +1019,6 @@ if (!limit_android_deps) {
|
||||
@@ -1722,7 +1021,6 @@ if (!limit_android_deps) {
|
||||
]
|
||||
testonly = true
|
||||
deps = [
|
||||
@@ -4495,7 +4528,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
|
||||
":org_robolectric_annotations_java",
|
||||
":org_robolectric_pluginapi_java",
|
||||
":org_robolectric_utils_java",
|
||||
@@ -1792,7 +1088,6 @@ if (!limit_android_deps) {
|
||||
@@ -1792,7 +1090,6 @@ if (!limit_android_deps) {
|
||||
]
|
||||
testonly = true
|
||||
deps = [
|
||||
|
||||
@@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
...ed_service_worker_module_script_fetcher.cc | 1 +
|
||||
.../modulescript/module_script_loader_test.cc | 1 +
|
||||
.../worker_module_script_fetcher.cc | 3 +-
|
||||
.../renderer/core/workers/dedicated_worker.cc | 12 ++++++-
|
||||
.../renderer/core/workers/dedicated_worker.cc | 10 ++++++
|
||||
.../renderer/core/workers/dedicated_worker.h | 3 ++
|
||||
.../workers/dedicated_worker_global_scope.cc | 9 ++++-
|
||||
.../workers/dedicated_worker_global_scope.h | 1 +
|
||||
@@ -53,7 +53,7 @@ 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 +-
|
||||
36 files changed, 189 insertions(+), 16 deletions(-)
|
||||
36 files changed, 188 insertions(+), 15 deletions(-)
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc
|
||||
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc
|
||||
@@ -324,16 +324,14 @@ 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<mojom::blink::BackForwardCacheControllerHost>
|
||||
@@ -592,7 +599,8 @@ void DedicatedWorker::ContinueStartInternal(
|
||||
@@ -591,6 +598,7 @@ void DedicatedWorker::ContinueStartInternal(
|
||||
CreateGlobalScopeCreationParams(
|
||||
script_url, referrer_policy,
|
||||
std::move(response_content_security_policies),
|
||||
+ response_address_space,
|
||||
std::move(coep_reporting_observer),
|
||||
- std::move(dip_reporting_observer)),
|
||||
+ std::move(dip_reporting_observer),
|
||||
+ response_address_space),
|
||||
std::move(dip_reporting_observer)),
|
||||
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_,
|
||||
@@ -630,6 +638,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams(
|
||||
network::mojom::ReferrerPolicy referrer_policy,
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>
|
||||
|
||||
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../settings/PrivacyPreferencesManager.java | 8 +
|
||||
.../org/chromium/chrome/browser/tab/Tab.java | 2 +
|
||||
.../browser/tabmodel/TabWindowManager.java | 2 +
|
||||
.../tabmodel/TabWindowManagerImpl.java | 18 ++
|
||||
.../tabmodel/TabWindowManagerImpl.java | 19 ++
|
||||
.../strings/android_chrome_strings.grd | 26 +++
|
||||
chrome/common/pref_names.h | 8 +
|
||||
...omiteRequestDesktopSiteContentSetting.java | 76 ++++++++
|
||||
@@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/web_contents/web_contents_impl.cc | 6 +-
|
||||
.../framehost/NavigationControllerImpl.java | 3 +-
|
||||
content/renderer/render_thread_impl.cc | 1 -
|
||||
36 files changed, 798 insertions(+), 16 deletions(-)
|
||||
36 files changed, 799 insertions(+), 16 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
|
||||
create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
|
||||
@@ -1012,7 +1012,15 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
||||
diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
--- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
+++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
||||
@@ -418,6 +418,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan
|
||||
@@ -33,6 +33,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
+import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -418,6 +419,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -670,7 +670,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
+ View()->ResizeWithBrowserControls(
|
||||
+ size_.value(),
|
||||
+ widget_base_->DIPsToCeiledBlinkSpace(
|
||||
+ widget_base_->VisibleViewportSizeInDIPs()),
|
||||
+ widget_base_->VisibleViewportSize()),
|
||||
+ visual_properties.browser_controls_params);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/android/chrome_java_resources.gni | 1 +
|
||||
chrome/android/chrome_java_sources.gni | 2 +
|
||||
.../android/java/res/layout/fre_tosanduma.xml | 160 +++++++++
|
||||
chrome/android/java/res/values/dimens.xml | 10 +
|
||||
chrome/android/java/res/values/dimens.xml | 11 +
|
||||
chrome/android/java/res/values/styles.xml | 24 ++
|
||||
.../DefaultSearchEngineFirstRunFragment.java | 3 -
|
||||
.../browser/firstrun/FirstRunActivity.java | 23 +-
|
||||
@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
...creenSigninAndHistorySyncActivityBase.java | 6 +-
|
||||
.../browser/locale/LocaleManagerDelegate.java | 5 +-
|
||||
.../Welcome-screen.grdp | 27 ++
|
||||
15 files changed, 917 insertions(+), 80 deletions(-)
|
||||
15 files changed, 918 insertions(+), 80 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java
|
||||
@@ -218,10 +218,11 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||
--- a/chrome/android/java/res/values/dimens.xml
|
||||
+++ b/chrome/android/java/res/values/dimens.xml
|
||||
@@ -106,6 +106,16 @@ found in the LICENSE file.
|
||||
@@ -106,6 +106,17 @@ found in the LICENSE file.
|
||||
<dimen name="fre_loading_spinner_size">48dp</dimen>
|
||||
<dimen name="fre_policy_privacy_disclaimer_icon_size">18dp</dimen>
|
||||
<dimen name="fre_policy_privacy_disclaimer_icon_padding">8dp</dimen>
|
||||
+ <dimen name="fre_tos_image_height">110dp</dimen>
|
||||
+ <dimen name="fre_image_bottom_margin">36dp</dimen>
|
||||
+ <dimen name="fre_vertical_spacing">32dp</dimen>
|
||||
+ <dimen name="fre_content_margin">24dp</dimen>
|
||||
|
||||
@@ -19,7 +19,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
components/adblock/android/BUILD.gn | 99 +++
|
||||
components/adblock/android/adblock_jni.cc | 176 ++++++
|
||||
components/adblock/android/adblock_jni.h | 52 ++
|
||||
.../filtering_configuration_bindings.cc | 295 +++++++++
|
||||
.../filtering_configuration_bindings.cc | 294 +++++++++
|
||||
.../filtering_configuration_bindings.h | 68 +++
|
||||
.../adblock/AdblockContentType.java | 61 ++
|
||||
.../components/adblock/AdblockController.java | 203 +++++++
|
||||
@@ -43,9 +43,9 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
.../adblock/TestPagesSnippetsTestBase.java | 562 ++++++++++++++++++
|
||||
.../adblock/TestPagesWebsocketTestBase.java | 56 ++
|
||||
.../adblock/TestVerificationUtils.java | 163 +++++
|
||||
...source_classification_notifier_bindings.cc | 164 +++++
|
||||
...source_classification_notifier_bindings.cc | 163 +++++
|
||||
...esource_classification_notifier_bindings.h | 69 +++
|
||||
39 files changed, 5008 insertions(+)
|
||||
39 files changed, 5006 insertions(+)
|
||||
create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.cc
|
||||
create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.h
|
||||
create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings_factory.cc
|
||||
@@ -132,7 +132,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -2560,6 +2560,18 @@ static_library("browser") {
|
||||
@@ -2561,6 +2561,18 @@ static_library("browser") {
|
||||
}
|
||||
|
||||
if (is_android) {
|
||||
@@ -1015,7 +1015,7 @@ diff --git a/components/adblock/android/filtering_configuration_bindings.cc b/co
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/android/filtering_configuration_bindings.cc
|
||||
@@ -0,0 +1,295 @@
|
||||
@@ -0,0 +1,294 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -1040,7 +1040,6 @@ new file mode 100644
|
||||
+
|
||||
+#include "base/android/jni_array.h"
|
||||
+#include "base/android/jni_string.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "components/adblock/android/java_bindings_getters.h"
|
||||
+#include "components/adblock/android/jni_headers/FilteringConfiguration_jni.h"
|
||||
+#include "components/adblock/core/configuration/filtering_configuration.h"
|
||||
@@ -1110,7 +1109,7 @@ new file mode 100644
|
||||
+ const std::string& configuration_name) {
|
||||
+ const auto installed_configurations = GetConfigurations();
|
||||
+ auto existing_configuration_it =
|
||||
+ base::ranges::find(installed_configurations, configuration_name,
|
||||
+ std::ranges::find(installed_configurations, configuration_name,
|
||||
+ &FilteringConfiguration::GetName);
|
||||
+ return existing_configuration_it != installed_configurations.end()
|
||||
+ ? *existing_configuration_it
|
||||
@@ -1190,7 +1189,7 @@ new file mode 100644
|
||||
+JNI_FilteringConfiguration_GetConfigurations(JNIEnv* env) {
|
||||
+ auto& bindings = adblock::GetFilteringConfigurationBindings();
|
||||
+ std::vector<std::string> configurations;
|
||||
+ base::ranges::transform(
|
||||
+ std::ranges::transform(
|
||||
+ bindings.GetConfigurations(), std::back_inserter(configurations),
|
||||
+ [](adblock::FilteringConfiguration* fc) { return fc->GetName(); });
|
||||
+ return base::android::ToJavaArrayOfStrings(env, configurations);
|
||||
@@ -1244,7 +1243,7 @@ new file mode 100644
|
||||
+ std::vector<std::string> urls;
|
||||
+ auto* configuration = GetConfigurationWithName(env, configuration_name);
|
||||
+ if (configuration) {
|
||||
+ base::ranges::transform(configuration->GetFilterLists(),
|
||||
+ std::ranges::transform(configuration->GetFilterLists(),
|
||||
+ std::back_inserter(urls), &GURL::spec);
|
||||
+ }
|
||||
+ return base::android::ToJavaArrayOfStrings(env, urls);
|
||||
@@ -5097,7 +5096,7 @@ diff --git a/components/adblock/android/resource_classification_notifier_binding
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/android/resource_classification_notifier_bindings.cc
|
||||
@@ -0,0 +1,164 @@
|
||||
@@ -0,0 +1,163 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -5123,7 +5122,6 @@ new file mode 100644
|
||||
+#include "base/android/jni_android.h"
|
||||
+#include "base/android/jni_array.h"
|
||||
+#include "base/android/jni_string.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "components/adblock/android/java_bindings_getters.h"
|
||||
+#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h"
|
||||
+#include "components/adblock/content/browser/resource_classification_runner.h"
|
||||
|
||||
@@ -20,7 +20,7 @@ Based on Chromium 118.0.5993.48
|
||||
.../content/browser/adblock_filter_match.h | 30 +
|
||||
.../adblock_telemetry_service_factory_base.cc | 100 ++
|
||||
.../adblock_telemetry_service_factory_base.h | 54 +
|
||||
.../browser/adblock_url_loader_factory.cc | 748 +++++++++
|
||||
.../browser/adblock_url_loader_factory.cc | 734 +++++++++
|
||||
.../browser/adblock_url_loader_factory.h | 100 ++
|
||||
.../adblock_url_loader_factory_for_test.cc | 436 +++++
|
||||
.../adblock_url_loader_factory_for_test.h | 70 +
|
||||
@@ -49,7 +49,7 @@ Based on Chromium 118.0.5993.48
|
||||
.../activeping_telemetry_topic_provider.cc | 285 ++++
|
||||
.../activeping_telemetry_topic_provider.h | 87 +
|
||||
components/adblock/core/adblock_controller.h | 64 +
|
||||
.../adblock/core/adblock_controller_impl.cc | 271 ++++
|
||||
.../adblock/core/adblock_controller_impl.cc | 270 ++++
|
||||
.../adblock/core/adblock_controller_impl.h | 95 ++
|
||||
components/adblock/core/adblock_switches.cc | 26 +
|
||||
components/adblock/core/adblock_switches.h | 29 +
|
||||
@@ -90,11 +90,11 @@ Based on Chromium 118.0.5993.48
|
||||
.../adblock/core/converter/parser/BUILD.gn | 66 +
|
||||
.../core/converter/parser/content_filter.cc | 68 +
|
||||
.../core/converter/parser/content_filter.h | 49 +
|
||||
.../core/converter/parser/domain_option.cc | 114 ++
|
||||
.../core/converter/parser/domain_option.cc | 111 ++
|
||||
.../core/converter/parser/domain_option.h | 57 +
|
||||
.../converter/parser/filter_classifier.cc | 39 +
|
||||
.../core/converter/parser/filter_classifier.h | 45 +
|
||||
.../adblock/core/converter/parser/metadata.cc | 145 ++
|
||||
.../adblock/core/converter/parser/metadata.cc | 144 ++
|
||||
.../adblock/core/converter/parser/metadata.h | 64 +
|
||||
.../core/converter/parser/snippet_filter.cc | 62 +
|
||||
.../core/converter/parser/snippet_filter.h | 46 +
|
||||
@@ -126,27 +126,27 @@ Based on Chromium 118.0.5993.48
|
||||
.../filtering_configuration_maintainer_impl.h | 119 ++
|
||||
.../subscription/installed_subscription.cc | 42 +
|
||||
.../subscription/installed_subscription.h | 137 ++
|
||||
.../installed_subscription_impl.cc | 552 +++++++
|
||||
.../installed_subscription_impl.cc | 551 +++++++
|
||||
.../installed_subscription_impl.h | 149 ++
|
||||
.../ongoing_subscription_request.h | 50 +
|
||||
.../ongoing_subscription_request_impl.cc | 190 +++
|
||||
.../ongoing_subscription_request_impl.h | 74 +
|
||||
.../core/subscription/pattern_matcher.cc | 264 +++
|
||||
.../core/subscription/pattern_matcher.cc | 263 +++
|
||||
.../core/subscription/pattern_matcher.h | 33 +
|
||||
.../preloaded_subscription_provider.h | 56 +
|
||||
.../preloaded_subscription_provider_impl.cc | 120 ++
|
||||
.../preloaded_subscription_provider_impl.cc | 119 ++
|
||||
.../preloaded_subscription_provider_impl.h | 50 +
|
||||
.../core/subscription/regex_matcher.cc | 162 ++
|
||||
.../adblock/core/subscription/regex_matcher.h | 73 +
|
||||
.../adblock/core/subscription/subscription.cc | 24 +
|
||||
.../adblock/core/subscription/subscription.h | 78 +
|
||||
.../subscription/subscription_collection.h | 97 ++
|
||||
.../subscription_collection_impl.cc | 353 ++++
|
||||
.../subscription_collection_impl.cc | 352 ++++
|
||||
.../subscription_collection_impl.h | 97 ++
|
||||
.../core/subscription/subscription_config.cc | 338 ++++
|
||||
.../core/subscription/subscription_config.h | 120 ++
|
||||
.../subscription/subscription_downloader.h | 66 +
|
||||
.../subscription_downloader_impl.cc | 288 ++++
|
||||
.../subscription_downloader_impl.cc | 287 ++++
|
||||
.../subscription_downloader_impl.h | 102 ++
|
||||
.../subscription_persistent_metadata.h | 86 +
|
||||
.../subscription_persistent_metadata_impl.cc | 170 ++
|
||||
@@ -155,7 +155,7 @@ Based on Chromium 118.0.5993.48
|
||||
.../subscription_persistent_storage_impl.cc | 229 +++
|
||||
.../subscription_persistent_storage_impl.h | 80 +
|
||||
.../core/subscription/subscription_service.h | 87 +
|
||||
.../subscription/subscription_service_impl.cc | 211 +++
|
||||
.../subscription/subscription_service_impl.cc | 210 +++
|
||||
.../subscription/subscription_service_impl.h | 97 ++
|
||||
.../core/subscription/subscription_updater.h | 35 +
|
||||
.../subscription/subscription_updater_impl.cc | 65 +
|
||||
@@ -163,7 +163,7 @@ Based on Chromium 118.0.5993.48
|
||||
.../subscription/subscription_validator.h | 59 +
|
||||
.../subscription_validator_impl.cc | 144 ++
|
||||
.../subscription_validator_impl.h | 53 +
|
||||
.../subscription/url_keyword_extractor.cc | 67 +
|
||||
.../subscription/url_keyword_extractor.cc | 66 +
|
||||
.../core/subscription/url_keyword_extractor.h | 59 +
|
||||
.../adblock/docs/ad-filtering/README.md | 18 +
|
||||
.../ad-filtering/element-hiding-sequence.png | Bin 0 -> 177168 bytes
|
||||
@@ -223,7 +223,7 @@ Based on Chromium 118.0.5993.48
|
||||
tools/eyeo/generate_modules.sh | 209 +++
|
||||
tools/eyeo/snippets_deps.py | 61 +
|
||||
tools/gritsettings/resource_ids.spec | 11 +-
|
||||
219 files changed, 22049 insertions(+), 4 deletions(-)
|
||||
219 files changed, 22023 insertions(+), 4 deletions(-)
|
||||
create mode 100644 components/adblock/CHANGELOG.md
|
||||
create mode 100644 components/adblock/LICENSE
|
||||
create mode 100644 components/adblock/README.md
|
||||
@@ -2512,7 +2512,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/content/browser/adblock_url_loader_factory.cc
|
||||
@@ -0,0 +1,748 @@
|
||||
@@ -0,0 +1,734 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -2650,8 +2650,6 @@ new file mode 100644
|
||||
+ const std::optional<GURL>& new_url) override;
|
||||
+ void SetPriority(net::RequestPriority priority,
|
||||
+ int32_t intra_priority_value) override;
|
||||
+ void PauseReadingBodyFromNet() override;
|
||||
+ void ResumeReadingBodyFromNet() override;
|
||||
+
|
||||
+ void OnReceiveEarlyHints(
|
||||
+ ::network::mojom::EarlyHintsPtr early_hints) override;
|
||||
@@ -2788,18 +2786,6 @@ new file mode 100644
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void AdblockURLLoaderFactory::InProgressRequest::PauseReadingBodyFromNet() {
|
||||
+ if (target_loader_.is_bound()) {
|
||||
+ target_loader_->PauseReadingBodyFromNet();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void AdblockURLLoaderFactory::InProgressRequest::ResumeReadingBodyFromNet() {
|
||||
+ if (target_loader_.is_bound()) {
|
||||
+ target_loader_->ResumeReadingBodyFromNet();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void AdblockURLLoaderFactory::InProgressRequest::OnReceiveEarlyHints(
|
||||
+ network::mojom::EarlyHintsPtr early_hints) {
|
||||
+ target_client_->OnReceiveEarlyHints(std::move(early_hints));
|
||||
@@ -3548,7 +3534,7 @@ new file mode 100644
|
||||
+ DCHECK(adblock_configuration)
|
||||
+ << "Action called for non existing \"adblock\" configuration";
|
||||
+ std::vector<std::string> subscriptions;
|
||||
+ base::ranges::transform(
|
||||
+ std::ranges::transform(
|
||||
+ adblock_configuration->GetFilterLists(),
|
||||
+ std::back_inserter(subscriptions),
|
||||
+ [](const auto& subscription) { return subscription.spec(); });
|
||||
@@ -3593,7 +3579,7 @@ new file mode 100644
|
||||
+ subscription_service->GetAdblockFilteringConfiguration();
|
||||
+ DCHECK(adblock_configuration)
|
||||
+ << "Action called for non existing \"adblock\" configuration";
|
||||
+ return base::ranges::any_of(
|
||||
+ return std::ranges::any_of(
|
||||
+ adblock_configuration->GetFilterLists(),
|
||||
+ [&](const auto& url) { return url == AcceptableAdsUrl(); });
|
||||
+}
|
||||
@@ -4069,7 +4055,7 @@ new file mode 100644
|
||||
+}
|
||||
+
|
||||
+bool AdblockWebContentObserver::IsAdblockEnabled() const {
|
||||
+ return base::ranges::any_of(
|
||||
+ return std::ranges::any_of(
|
||||
+ subscription_service_->GetInstalledFilteringConfigurations(),
|
||||
+ &adblock::FilteringConfiguration::IsEnabled);
|
||||
+}
|
||||
@@ -4685,14 +4671,14 @@ new file mode 100644
|
||||
+ collection->FindBySpecialFilter(SpecialFilterType::Elemhide, url,
|
||||
+ frame_hierarchy, sitekey);
|
||||
+ if (!ehe_allowlisted) {
|
||||
+ base::ranges::copy(
|
||||
+ std::ranges::copy(
|
||||
+ collection->GetElementHideSelectors(url, frame_hierarchy, sitekey),
|
||||
+ std::back_inserter(stylesheet));
|
||||
+ base::ranges::copy(collection->GetElementHideEmulationSelectors(url),
|
||||
+ std::ranges::copy(collection->GetElementHideEmulationSelectors(url),
|
||||
+ std::back_inserter(elemhide_js));
|
||||
+ }
|
||||
+ if (!doc_allowlisted) {
|
||||
+ base::ranges::for_each(
|
||||
+ std::ranges::for_each(
|
||||
+ collection->GenerateSnippets(url, frame_hierarchy),
|
||||
+ [&snippet_js](auto& item) { snippet_js.Append(std::move(item)); });
|
||||
+ }
|
||||
@@ -7105,7 +7091,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,271 @@
|
||||
@@ -0,0 +1,270 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -7134,7 +7120,6 @@ new file mode 100644
|
||||
+#include "base/command_line.h"
|
||||
+#include "base/functional/bind.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "base/version.h"
|
||||
+#include "components/adblock/core/adblock_switches.h"
|
||||
@@ -7219,7 +7204,7 @@ new file mode 100644
|
||||
+}
|
||||
+
|
||||
+bool AdblockControllerImpl::IsAcceptableAdsEnabled() const {
|
||||
+ return base::ranges::any_of(
|
||||
+ return std::ranges::any_of(
|
||||
+ adblock_filtering_configuration_->GetFilterLists(),
|
||||
+ [&](const auto& url) { return url == AcceptableAdsUrl(); });
|
||||
+}
|
||||
@@ -7356,7 +7341,7 @@ new file mode 100644
|
||||
+
|
||||
+ // If there's no language-specific recommended subscription, see if we may
|
||||
+ // install the default subscription..
|
||||
+ if (base::ranges::any_of(
|
||||
+ if (std::ranges::any_of(
|
||||
+ known_subscriptions_, [&](const KnownSubscriptionInfo& subscription) {
|
||||
+ return subscription.url == DefaultSubscriptionUrl() &&
|
||||
+ subscription.first_run !=
|
||||
@@ -8444,14 +8429,14 @@ new file mode 100644
|
||||
+ blocking_rewrites.end());
|
||||
+ // Remove blocking filters overruled by allowing filters.
|
||||
+ blocking_rewrites_v.erase(
|
||||
+ base::ranges::remove_if(
|
||||
+ blocking_rewrites_v,
|
||||
+ [&allowing_rewrites](const auto blocking_rewrite) {
|
||||
+ return base::ranges::find_if(
|
||||
+ allowing_rewrites, [&](const auto& allowing_rewrite) {
|
||||
+ return blocking_rewrite == allowing_rewrite;
|
||||
+ }) != allowing_rewrites.end();
|
||||
+ }),
|
||||
+ std::remove_if(blocking_rewrites_v.begin(), blocking_rewrites_v.end(),
|
||||
+ [&allowing_rewrites](const auto blocking_rewrite) {
|
||||
+ return std::ranges::find_if(
|
||||
+ allowing_rewrites,
|
||||
+ [&](const auto& allowing_rewrite) {
|
||||
+ return blocking_rewrite == allowing_rewrite;
|
||||
+ }) != allowing_rewrites.end();
|
||||
+ }),
|
||||
+ blocking_rewrites_v.end());
|
||||
+
|
||||
+ if (blocking_rewrites_v.empty()) {
|
||||
@@ -10274,7 +10259,7 @@ new file mode 100644
|
||||
+ const std::string& value) {
|
||||
+ DCHECK(configuration.FindList(key)); // see SetDefaultValuesIfNeeded().
|
||||
+ auto* list = configuration.FindList(key);
|
||||
+ if (base::ranges::find(*list, base::Value(value)) != list->end()) {
|
||||
+ if (std::ranges::find(*list, base::Value(value)) != list->end()) {
|
||||
+ // value already exists in the list.
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -10287,7 +10272,7 @@ new file mode 100644
|
||||
+ const std::string& value) {
|
||||
+ DCHECK(configuration.FindList(key)); // see SetDefaultValuesIfNeeded().
|
||||
+ auto* list = configuration.FindList(key);
|
||||
+ auto it = base::ranges::find(*list, base::Value(value));
|
||||
+ auto it = std::ranges::find(*list, base::Value(value));
|
||||
+ if (it == list->end()) {
|
||||
+ // value was not on the list.
|
||||
+ return false;
|
||||
@@ -11172,7 +11157,7 @@ diff --git a/components/adblock/core/converter/parser/domain_option.cc b/compone
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/converter/parser/domain_option.cc
|
||||
@@ -0,0 +1,114 @@
|
||||
@@ -0,0 +1,111 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -11193,7 +11178,6 @@ new file mode 100644
|
||||
+#include "components/adblock/core/converter/parser/content_filter.h"
|
||||
+
|
||||
+#include "base/logging.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_split.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+
|
||||
@@ -11251,22 +11235,20 @@ new file mode 100644
|
||||
+
|
||||
+void DomainOption::RemoveDomainsWithNoSubdomain() {
|
||||
+ exclude_domains_.erase(
|
||||
+ base::ranges::remove_if(
|
||||
+ exclude_domains_,
|
||||
+ [](auto it) { return !HasSubdomainOrLocalhost(it); }),
|
||||
+ std::remove_if(exclude_domains_.begin(), exclude_domains_.end(),
|
||||
+ [](auto it) { return !HasSubdomainOrLocalhost(it); }),
|
||||
+ exclude_domains_.end());
|
||||
+
|
||||
+ include_domains_.erase(
|
||||
+ base::ranges::remove_if(
|
||||
+ include_domains_,
|
||||
+ [](auto it) { return !HasSubdomainOrLocalhost(it); }),
|
||||
+ std::remove_if(include_domains_.begin(), include_domains_.end(),
|
||||
+ [](auto it) { return !HasSubdomainOrLocalhost(it); }),
|
||||
+ include_domains_.end());
|
||||
+}
|
||||
+
|
||||
+bool DomainOption::UnrestrictedByDomain() const {
|
||||
+ return base::ranges::count_if(exclude_domains_, &HasSubdomainOrLocalhost) ==
|
||||
+ return std::ranges::count_if(exclude_domains_, &HasSubdomainOrLocalhost) ==
|
||||
+ 0 &&
|
||||
+ base::ranges::count_if(include_domains_, &HasSubdomainOrLocalhost) ==
|
||||
+ std::ranges::count_if(include_domains_, &HasSubdomainOrLocalhost) ==
|
||||
+ 0;
|
||||
+}
|
||||
+
|
||||
@@ -11447,7 +11429,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/converter/parser/metadata.cc
|
||||
@@ -0,0 +1,145 @@
|
||||
@@ -0,0 +1,144 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -11468,7 +11450,6 @@ new file mode 100644
|
||||
+#include "components/adblock/core/converter/parser/metadata.h"
|
||||
+
|
||||
+#include "base/logging.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "third_party/re2/src/re2/re2.h"
|
||||
@@ -11586,7 +11567,7 @@ new file mode 100644
|
||||
+ << kDefaultExpirationInterval.InDays() << " days.";
|
||||
+ return kDefaultExpirationInterval;
|
||||
+ }
|
||||
+ return base::ranges::clamp(expiration_unit == "h"
|
||||
+ return std::ranges::clamp(expiration_unit == "h"
|
||||
+ ? base::Hours(expiration_time)
|
||||
+ : base::Days(expiration_time),
|
||||
+ kMinExpirationInterval, kMaxExpirationInterval);
|
||||
@@ -14423,7 +14404,7 @@ new file mode 100644
|
||||
+ if (custom_filters_) {
|
||||
+ state.push_back(custom_filters_);
|
||||
+ }
|
||||
+ base::ranges::move(
|
||||
+ std::ranges::move(
|
||||
+ preloaded_subscription_provider_->GetCurrentPreloadedSubscriptions(),
|
||||
+ std::back_inserter(state));
|
||||
+ VLOG(2) << "[eyeo] FilteringConfiguration " << configuration_->GetName()
|
||||
@@ -14437,17 +14418,17 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ // Result will contain the currently installed subscriptions:
|
||||
+ std::vector<scoped_refptr<Subscription>> result;
|
||||
+ base::ranges::copy(current_state_, std::back_inserter(result));
|
||||
+ std::ranges::copy(current_state_, std::back_inserter(result));
|
||||
+ // And all preloaded subscriptions:
|
||||
+ auto preloaded_subscriptions =
|
||||
+ preloaded_subscription_provider_->GetCurrentPreloadedSubscriptions();
|
||||
+ base::ranges::move(preloaded_subscriptions, std::back_inserter(result));
|
||||
+ std::ranges::move(preloaded_subscriptions, std::back_inserter(result));
|
||||
+ // Also, dummy subscriptions that represent ongoing installations (unless
|
||||
+ // already present, in which case they'd represent updates).
|
||||
+ base::ranges::copy_if(
|
||||
+ std::ranges::copy_if(
|
||||
+ ongoing_installations_, std::back_inserter(result),
|
||||
+ [&](const auto& ongoing_installation) {
|
||||
+ return base::ranges::find(result, ongoing_installation->GetSourceUrl(),
|
||||
+ return std::ranges::find(result, ongoing_installation->GetSourceUrl(),
|
||||
+ &Subscription::GetSourceUrl) == result.end();
|
||||
+ });
|
||||
+ return result;
|
||||
@@ -14486,15 +14467,15 @@ new file mode 100644
|
||||
+ DCHECK(IsInitialized());
|
||||
+ // Subscriptions that are either installed or being installed:
|
||||
+ auto installed_subscriptions = GetReadySubscriptions();
|
||||
+ base::ranges::copy(GetPendingSubscriptions(),
|
||||
+ std::ranges::copy(GetPendingSubscriptions(),
|
||||
+ std::back_inserter(installed_subscriptions));
|
||||
+ // Subscriptions that are demanded by the FilteringConfiguration:
|
||||
+ auto demanded_subscriptions = configuration_->GetFilterLists();
|
||||
+ base::ranges::sort(installed_subscriptions);
|
||||
+ base::ranges::sort(demanded_subscriptions);
|
||||
+ std::ranges::sort(installed_subscriptions);
|
||||
+ std::ranges::sort(demanded_subscriptions);
|
||||
+ // Missing subscriptions is the difference between the two:
|
||||
+ std::vector<GURL> missing_subscriptions;
|
||||
+ base::ranges::set_difference(demanded_subscriptions, installed_subscriptions,
|
||||
+ std::ranges::set_difference(demanded_subscriptions, installed_subscriptions,
|
||||
+ std::back_inserter(missing_subscriptions));
|
||||
+ for (const auto& url : missing_subscriptions) {
|
||||
+ DownloadAndInstallSubscription(url);
|
||||
@@ -14506,18 +14487,18 @@ new file mode 100644
|
||||
+ DCHECK(IsInitialized());
|
||||
+ // Subscriptions that are either installed or being installed:
|
||||
+ auto installed_subscriptions = GetReadySubscriptions();
|
||||
+ base::ranges::copy(GetPendingSubscriptions(),
|
||||
+ std::ranges::copy(GetPendingSubscriptions(),
|
||||
+ std::back_inserter(installed_subscriptions));
|
||||
+ // Subscriptions that are demanded by the FilteringConfiguration:
|
||||
+ auto demanded_subscriptions = configuration_->GetFilterLists();
|
||||
+ base::ranges::sort(installed_subscriptions);
|
||||
+ base::ranges::sort(demanded_subscriptions);
|
||||
+ std::ranges::sort(installed_subscriptions);
|
||||
+ std::ranges::sort(demanded_subscriptions);
|
||||
+ installed_subscriptions.erase(std::unique(installed_subscriptions.begin(),
|
||||
+ installed_subscriptions.end()),
|
||||
+ installed_subscriptions.end());
|
||||
+ // Unneeded subscriptions is the difference between the two:
|
||||
+ std::vector<GURL> unneeded_subscriptions;
|
||||
+ base::ranges::set_difference(installed_subscriptions, demanded_subscriptions,
|
||||
+ std::ranges::set_difference(installed_subscriptions, demanded_subscriptions,
|
||||
+ std::back_inserter(unneeded_subscriptions));
|
||||
+ for (const auto& url : unneeded_subscriptions) {
|
||||
+ UninstallSubscription(url);
|
||||
@@ -14596,7 +14577,7 @@ new file mode 100644
|
||||
+ // of installing an update.
|
||||
+ const auto& url = subscription->GetSourceUrl();
|
||||
+ if (persistent_metadata_->IsExpired(url) &&
|
||||
+ base::ranges::find(ongoing_installations_, url,
|
||||
+ std::ranges::find(ongoing_installations_, url,
|
||||
+ &Subscription::GetSourceUrl) ==
|
||||
+ ongoing_installations_.end()) {
|
||||
+ VLOG(1) << "[eyeo] Updating expired subscription " << url;
|
||||
@@ -14614,7 +14595,7 @@ new file mode 100644
|
||||
+ // downloading it.
|
||||
+ // This is to support legacy behavior.
|
||||
+ if (configuration_->GetName() == "adblock" &&
|
||||
+ base::ranges::none_of(GetCurrentSubscriptions(),
|
||||
+ std::ranges::none_of(GetCurrentSubscriptions(),
|
||||
+ [](const auto& subscription) {
|
||||
+ return subscription->GetSourceUrl() ==
|
||||
+ AcceptableAdsUrl();
|
||||
@@ -14629,7 +14610,7 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ DCHECK(IsInitialized());
|
||||
+ const bool is_an_update =
|
||||
+ base::ranges::any_of(current_state_, [&](const auto candidate) {
|
||||
+ std::ranges::any_of(current_state_, [&](const auto candidate) {
|
||||
+ return candidate->GetSourceUrl() == subscription_url;
|
||||
+ });
|
||||
+
|
||||
@@ -14754,7 +14735,7 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ DCHECK(IsInitialized());
|
||||
+ bool subscription_removed = false;
|
||||
+ auto it = base::ranges::find(current_state_, subscription_url,
|
||||
+ auto it = std::ranges::find(current_state_, subscription_url,
|
||||
+ &Subscription::GetSourceUrl);
|
||||
+ if (it != current_state_.end()) {
|
||||
+ storage_->RemoveSubscription(*it);
|
||||
@@ -14762,7 +14743,7 @@ new file mode 100644
|
||||
+ subscription_removed = true;
|
||||
+ }
|
||||
+
|
||||
+ auto ongoing_installation_it = base::ranges::find(
|
||||
+ auto ongoing_installation_it = std::ranges::find(
|
||||
+ ongoing_installations_, subscription_url, &Subscription::GetSourceUrl);
|
||||
+ if (ongoing_installation_it != ongoing_installations_.end()) {
|
||||
+ ongoing_installations_.erase(ongoing_installation_it);
|
||||
@@ -14780,7 +14761,7 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+
|
||||
+ std::vector<std::string> filters = configuration_->GetCustomFilters();
|
||||
+ base::ranges::transform(configuration_->GetAllowedDomains(),
|
||||
+ std::ranges::transform(configuration_->GetAllowedDomains(),
|
||||
+ std::back_inserter(filters),
|
||||
+ &utils::CreateDomainAllowlistingFilter);
|
||||
+ for (const auto& filter : filters) {
|
||||
@@ -14805,7 +14786,7 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ std::vector<GURL> result;
|
||||
+ result.reserve(current_state_.size());
|
||||
+ base::ranges::transform(current_state_, std::back_inserter(result),
|
||||
+ std::ranges::transform(current_state_, std::back_inserter(result),
|
||||
+ &Subscription::GetSourceUrl);
|
||||
+ return result;
|
||||
+}
|
||||
@@ -14815,7 +14796,7 @@ new file mode 100644
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ std::vector<GURL> result;
|
||||
+ result.reserve(ongoing_installations_.size());
|
||||
+ base::ranges::transform(ongoing_installations_, std::back_inserter(result),
|
||||
+ std::ranges::transform(ongoing_installations_, std::back_inserter(result),
|
||||
+ &Subscription::GetSourceUrl);
|
||||
+ return result;
|
||||
+}
|
||||
@@ -15138,7 +15119,7 @@ diff --git a/components/adblock/core/subscription/installed_subscription_impl.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/installed_subscription_impl.cc
|
||||
@@ -0,0 +1,552 @@
|
||||
@@ -0,0 +1,551 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -15164,7 +15145,6 @@ new file mode 100644
|
||||
+
|
||||
+#include "absl/types/optional.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "base/trace_event/trace_event.h"
|
||||
+#include "components/adblock/core/common/adblock_constants.h"
|
||||
@@ -15184,7 +15164,7 @@ new file mode 100644
|
||||
+namespace {
|
||||
+
|
||||
+bool NeedsLowercasing(const std::string& input) {
|
||||
+ return base::ranges::any_of(
|
||||
+ return std::ranges::any_of(
|
||||
+ input, [](const char c) { return base::IsAsciiUpper(c); });
|
||||
+}
|
||||
+
|
||||
@@ -16178,7 +16158,7 @@ diff --git a/components/adblock/core/subscription/pattern_matcher.cc b/component
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/pattern_matcher.cc
|
||||
@@ -0,0 +1,264 @@
|
||||
@@ -0,0 +1,263 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -16201,7 +16181,6 @@ new file mode 100644
|
||||
+#include "absl/types/optional.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/notreached.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "components/adblock/core/common/regex_filter_pattern.h"
|
||||
+
|
||||
@@ -16546,7 +16525,7 @@ diff --git a/components/adblock/core/subscription/preloaded_subscription_provide
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc
|
||||
@@ -0,0 +1,120 @@
|
||||
@@ -0,0 +1,119 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -16569,7 +16548,6 @@ new file mode 100644
|
||||
+#include "base/functional/bind.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/memory/scoped_refptr.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/pattern.h"
|
||||
+#include "base/trace_event/trace_event.h"
|
||||
+#include "components/adblock/core/common/adblock_utils.h"
|
||||
@@ -17185,7 +17163,7 @@ diff --git a/components/adblock/core/subscription/subscription_collection_impl.c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/subscription_collection_impl.cc
|
||||
@@ -0,0 +1,353 @@
|
||||
@@ -0,0 +1,352 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -17210,7 +17188,6 @@ new file mode 100644
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "components/adblock/core/common/adblock_utils.h"
|
||||
+
|
||||
+namespace adblock {
|
||||
@@ -17480,7 +17457,7 @@ new file mode 100644
|
||||
+
|
||||
+ // Last chance to avoid blocking: maybe there is a Genericblock filter and
|
||||
+ // we should re-search for domain-specific filters only?
|
||||
+ if (base::ranges::any_of(subscriptions_, [&](const auto& sub) {
|
||||
+ if (std::ranges::any_of(subscriptions_, [&](const auto& sub) {
|
||||
+ return HasSpecialFilter(sub, SpecialFilterType::Genericblock,
|
||||
+ request_url, frame_hierarchy, SiteKey());
|
||||
+ })) {
|
||||
@@ -18184,7 +18161,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/subscription_downloader_impl.cc
|
||||
@@ -0,0 +1,288 @@
|
||||
@@ -0,0 +1,287 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -18211,7 +18188,6 @@ new file mode 100644
|
||||
+
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "base/functional/bind.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/escape.h"
|
||||
+#include "base/strings/strcat.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
@@ -19393,7 +19369,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/subscription_service_impl.cc
|
||||
@@ -0,0 +1,211 @@
|
||||
@@ -0,0 +1,210 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -19423,7 +19399,6 @@ new file mode 100644
|
||||
+#include "base/memory/scoped_refptr.h"
|
||||
+#include "base/memory/weak_ptr.h"
|
||||
+#include "base/parameter_pack.h"
|
||||
+#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"
|
||||
@@ -19473,7 +19448,7 @@ new file mode 100644
|
||||
+SubscriptionServiceImpl::GetCurrentSubscriptions(
|
||||
+ FilteringConfiguration* configuration) const {
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ return entry.first.get() == configuration;
|
||||
+ });
|
||||
+ DCHECK(it != maintainers_.end()) << "Cannot get Subscriptions from an "
|
||||
@@ -19482,7 +19457,7 @@ new file mode 100644
|
||||
+ // Configuration is disabled
|
||||
+ auto urls = it->first->GetFilterLists();
|
||||
+ std::vector<scoped_refptr<adblock::Subscription>> result;
|
||||
+ base::ranges::transform(
|
||||
+ std::ranges::transform(
|
||||
+ urls, std::back_inserter(result), [](const auto& url) {
|
||||
+ return base::MakeRefCounted<EmptySubscription>(url);
|
||||
+ });
|
||||
@@ -19515,7 +19490,7 @@ new file mode 100644
|
||||
+ const std::string& configuration_name) {
|
||||
+ VLOG(1) << "[eyeo] FilteringConfiguration uninstalled: "
|
||||
+ << configuration_name;
|
||||
+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ return entry.first.get()->GetName() == configuration_name;
|
||||
+ });
|
||||
+ if (it == maintainers_.end()) {
|
||||
@@ -19532,14 +19507,14 @@ new file mode 100644
|
||||
+std::vector<FilteringConfiguration*>
|
||||
+SubscriptionServiceImpl::GetInstalledFilteringConfigurations() {
|
||||
+ std::vector<FilteringConfiguration*> result;
|
||||
+ base::ranges::transform(maintainers_, std::back_inserter(result),
|
||||
+ std::ranges::transform(maintainers_, std::back_inserter(result),
|
||||
+ [](const auto& pair) { return pair.first.get(); });
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+FilteringConfiguration*
|
||||
+SubscriptionServiceImpl::GetAdblockFilteringConfiguration() const {
|
||||
+ const auto it = base::ranges::find_if(maintainers_, [](const auto& pair) {
|
||||
+ const auto it = std::ranges::find_if(maintainers_, [](const auto& pair) {
|
||||
+ return pair.first->GetName() == kAdblockFilteringConfigurationName;
|
||||
+ });
|
||||
+ DCHECK(it != maintainers_.end());
|
||||
@@ -19569,7 +19544,7 @@ new file mode 100644
|
||||
+
|
||||
+void SubscriptionServiceImpl::OnEnabledStateChanged(
|
||||
+ FilteringConfiguration* config) {
|
||||
+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) {
|
||||
+ return entry.first.get() == config;
|
||||
+ });
|
||||
+ DCHECK(it != maintainers_.end()) << "Received OnEnabledStateChanged from "
|
||||
@@ -20149,7 +20124,7 @@ diff --git a/components/adblock/core/subscription/url_keyword_extractor.cc b/com
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/core/subscription/url_keyword_extractor.cc
|
||||
@@ -0,0 +1,67 @@
|
||||
@@ -0,0 +1,66 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -20172,7 +20147,6 @@ new file mode 100644
|
||||
+#include <algorithm>
|
||||
+#include <cctype>
|
||||
+
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "components/adblock/core/common/keyword_extractor_utils.h"
|
||||
+
|
||||
@@ -20210,7 +20184,7 @@ new file mode 100644
|
||||
+ // null-terminated.
|
||||
+ // This isn't elegant, but it's a valid workaround for the limitations of
|
||||
+ // the flatbuffers generated API.
|
||||
+ base::ranges::replace_if(url_with_nulls_, &IsSeparatorCharacter, '\0');
|
||||
+ std::ranges::replace_if(url_with_nulls_, &IsSeparatorCharacter, '\0');
|
||||
+ input_ = url_with_nulls_;
|
||||
+}
|
||||
+
|
||||
|
||||
@@ -9,7 +9,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
chrome/app/chrome_main_delegate.cc | 7 +-
|
||||
chrome/browser/BUILD.gn | 26 ++
|
||||
chrome/browser/adblock/README.md | 3 +
|
||||
.../adblock/adblock_content_browser_client.cc | 320 ++++++++++++++++++
|
||||
.../adblock/adblock_content_browser_client.cc | 319 ++++++++++++++++++
|
||||
.../adblock/adblock_content_browser_client.h | 101 ++++++
|
||||
...adblock_content_browser_client_unittest.cc | 203 +++++++++++
|
||||
.../adblock/adblock_controller_factory.cc | 67 ++++
|
||||
@@ -54,7 +54,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
chrome/common/BUILD.gn | 3 +
|
||||
chrome/common/webui_url_constants.cc | 4 +
|
||||
chrome/common/webui_url_constants.h | 5 +
|
||||
48 files changed, 2299 insertions(+), 2 deletions(-)
|
||||
48 files changed, 2298 insertions(+), 2 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
|
||||
@@ -181,7 +181,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/adblock/adblock_content_browser_client.cc
|
||||
@@ -0,0 +1,320 @@
|
||||
@@ -0,0 +1,319 @@
|
||||
+/*
|
||||
+ * This file is part of eyeo Chromium SDK,
|
||||
+ * Copyright (C) 2006-present eyeo GmbH
|
||||
@@ -202,7 +202,6 @@ new file mode 100644
|
||||
+#include "chrome/browser/adblock/adblock_content_browser_client.h"
|
||||
+
|
||||
+#include "base/containers/unique_ptr_adapters.h"
|
||||
+#include "base/ranges/algorithm.h"
|
||||
+#include "chrome/browser/adblock/content_security_policy_injector_factory.h"
|
||||
+#include "chrome/browser/adblock/element_hider_factory.h"
|
||||
+#include "chrome/browser/adblock/resource_classification_runner_factory.h"
|
||||
|
||||
@@ -535,7 +535,7 @@ new file mode 100644
|
||||
+ << "adblock_private expects \"adblock\" configuration";
|
||||
+ return RespondNow(ArgumentList(
|
||||
+ api::adblock_private::IsAcceptableAdsEnabled::Results::Create(
|
||||
+ base::ranges::any_of(adblock_configuration->GetFilterLists(),
|
||||
+ std::ranges::any_of(adblock_configuration->GetFilterLists(),
|
||||
+ [&](const auto& url) {
|
||||
+ return url == adblock::AcceptableAdsUrl();
|
||||
+ }))));
|
||||
@@ -2209,7 +2209,7 @@ new file mode 100644
|
||||
+ const auto installed_configurations =
|
||||
+ subscription_service->GetInstalledFilteringConfigurations();
|
||||
+ auto configuration_it =
|
||||
+ base::ranges::find(installed_configurations, config_name,
|
||||
+ std::ranges::find(installed_configurations, config_name,
|
||||
+ &adblock::FilteringConfiguration::GetName);
|
||||
+ return configuration_it != installed_configurations.end() ? *configuration_it
|
||||
+ : nullptr;
|
||||
@@ -2560,7 +2560,7 @@ new file mode 100644
|
||||
+ const auto installed_configurations =
|
||||
+ subscription_service->GetInstalledFilteringConfigurations();
|
||||
+ auto configuration_it =
|
||||
+ base::ranges::find(installed_configurations, params->config_name,
|
||||
+ std::ranges::find(installed_configurations, params->config_name,
|
||||
+ &adblock::FilteringConfiguration::GetName);
|
||||
+ if (configuration_it == installed_configurations.end()) {
|
||||
+ auto new_filtering_configuration =
|
||||
@@ -2593,7 +2593,7 @@ new file mode 100644
|
||||
+ const auto installed_configurations =
|
||||
+ subscription_service->GetInstalledFilteringConfigurations();
|
||||
+ auto configuration_it =
|
||||
+ base::ranges::find(installed_configurations, params->config_name,
|
||||
+ std::ranges::find(installed_configurations, params->config_name,
|
||||
+ &adblock::FilteringConfiguration::GetName);
|
||||
+ if (configuration_it != installed_configurations.end()) {
|
||||
+ subscription_service->UninstallFilteringConfiguration(
|
||||
@@ -2616,7 +2616,7 @@ new file mode 100644
|
||||
+ const auto installed_configurations =
|
||||
+ subscription_service->GetInstalledFilteringConfigurations();
|
||||
+ std::vector<std::string> configurations;
|
||||
+ base::ranges::transform(installed_configurations,
|
||||
+ std::ranges::transform(installed_configurations,
|
||||
+ std::back_inserter(configurations),
|
||||
+ [](adblock::FilteringConfiguration* config) {
|
||||
+ return config->GetName();
|
||||
|
||||
@@ -4,8 +4,8 @@ Subject: kill Auth
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../signin/SystemAccountManagerDelegate.java | 67 ++-----------------
|
||||
1 file changed, 4 insertions(+), 63 deletions(-)
|
||||
.../signin/SystemAccountManagerDelegate.java | 65 +------------------
|
||||
1 file changed, 3 insertions(+), 62 deletions(-)
|
||||
|
||||
diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
--- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
@@ -98,11 +98,10 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s
|
||||
}
|
||||
|
||||
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
|
||||
@@ -217,15 +165,8 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
|
||||
@@ -218,14 +166,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@Nullable
|
||||
@Override
|
||||
- public GaiaId getAccountGaiaId(String accountEmail) {
|
||||
public GaiaId getAccountGaiaId(String accountEmail) {
|
||||
- try {
|
||||
- return new GaiaId(
|
||||
- GoogleAuthUtil.getAccountId(
|
||||
@@ -111,7 +110,6 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s
|
||||
- Log.e(TAG, "SystemAccountManagerDelegate.getAccountGaiaId", ex);
|
||||
- return null;
|
||||
- }
|
||||
+ public String getAccountGaiaId(String accountEmail) {
|
||||
+ return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1837,7 +1837,7 @@ new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kFedCmIdpSigninStatusEnabled);
|
||||
+// none
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user