diff --git a/build/cromite.gn_args b/build/cromite.gn_args index 39ec5d2e..050dd8bc 100644 --- a/build/cromite.gn_args +++ b/build/cromite.gn_args @@ -61,8 +61,13 @@ enable_jxl_decoder = true # see https://github.com/uazo/cromite/issues/697 use_minikin_hyphenation = false +# disable automatic update of sync-related cookies +# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad +enable_bound_session_credentials = false + declare_args() { _is_debug_build = "" + build_webview = false } not_needed(["_target_build", "_is_debug_build"]) @@ -76,7 +81,8 @@ if (target_os == "android") { #enable_kythe_annotations = true chrome_public_manifest_package = "org.cromite.cromite" - system_webview_package_name="org.cromite.webview" + system_webview_package_name="org.cromite.webview" #"com.android.webview" + system_webview_shell_package_name="org.cromite.webview_shell" if (getenv("USE_KEYSTORE") != "") { android_keystore_path = "/home/lg/working_dir/cromite.keystore" @@ -98,6 +104,11 @@ if (target_os == "android") { } else { generate_linker_map = true } + + if (build_webview) { + # only 64bit + skip_secondary_abi_for_cq = true + } } if (target_os == "win") { diff --git a/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch b/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch index cf22fb52..c014fc05 100644 --- a/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch +++ b/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch @@ -447,7 +447,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chr diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/components/adblock/content/browser/adblock_url_loader_factory.cc --- a/components/adblock/content/browser/adblock_url_loader_factory.cc +++ b/components/adblock/content/browser/adblock_url_loader_factory.cc -@@ -342,12 +342,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( +@@ -343,12 +343,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( CheckFilterMatchCallback callback) { @@ -460,7 +460,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,7 +380,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -387,7 +381,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( } else { factory_->config_.resource_classifier->CheckRequestFilterMatch( subscription_service->GetCurrentSnapshot(), request_url_, @@ -469,7 +469,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ base::BindOnce( &AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified, weak_factory_.GetWeakPtr(), -@@ -675,12 +669,14 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( +@@ -676,12 +670,14 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( AdblockURLLoaderFactory::AdblockURLLoaderFactory( AdblockURLLoaderFactoryConfig config, diff --git a/build/patches/00Add-setting-to-clear-data-on-exit.patch b/build/patches/00Add-setting-to-clear-data-on-exit.patch index af33f9d6..b74bd3a6 100644 --- a/build/patches/00Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/00Add-setting-to-clear-data-on-exit.patch @@ -333,21 +333,21 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro settings_api::PrefType::kNumber; + (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteCacheAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteCookiesAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeletePasswordsAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteFormDataAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteSiteSettingsAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataAtStart] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + // Accessibility. (*s_allowlist)[::prefs::kAccessibilityImageLabelsEnabled] = diff --git a/build/patches/00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 1e47d0a3..06611851 100644 --- a/build/patches/00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -16,7 +16,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict return; } -+ if (!opener.GetFrame()->GetContentSettingsClient()->AllowPopupsAndRedirects(false)) { ++ if (!opener.GetFrame()->GetContentSettings()->allow_popup) { + exception_state.ThrowDOMException(DOMExceptionCode::kNotAllowedError, + "Document PiP requires user popup permission"); + resolver->Reject(exception_state); diff --git a/build/patches/00Chrome-web-store-protection.patch b/build/patches/00Chrome-web-store-protection.patch index 0d325d93..8cb4db57 100644 --- a/build/patches/00Chrome-web-store-protection.patch +++ b/build/patches/00Chrome-web-store-protection.patch @@ -185,7 +185,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api api::webstore_private::ExtensionInstallStatus ConvertExtensionInstallStatusForAPI(ExtensionInstallStatus status) { + if (!base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore)) -+ return api::webstore_private::EXTENSION_INSTALL_STATUS_INSTALLABLE; ++ return api::webstore_private::ExtensionInstallStatus::kInstallable; switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; diff --git a/build/patches/00Enable-gwp-asan-on-Android.patch b/build/patches/00Enable-gwp-asan-on-Android.patch index 9acea46d..a5bbeba1 100644 --- a/build/patches/00Enable-gwp-asan-on-Android.patch +++ b/build/patches/00Enable-gwp-asan-on-Android.patch @@ -14,9 +14,9 @@ in android there is a test function accessible in the developer settings. chrome/app/chrome_main_delegate.cc | 2 +- chrome/browser/platform_util_android.cc | 32 +++++++++++++++++++ .../chrome/browser/util/PlatformUtil.java | 10 ++++++ - components/gwp_asan/client/gwp_asan.cc | 11 ++++--- + components/gwp_asan/client/gwp_asan.cc | 10 +++--- components/memory_system/memory_system.cc | 1 + - 10 files changed, 77 insertions(+), 8 deletions(-) + 10 files changed, 76 insertions(+), 8 deletions(-) diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc --- a/android_webview/lib/aw_main_delegate.cc @@ -199,13 +199,12 @@ diff --git a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/ut diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client/gwp_asan.cc --- a/components/gwp_asan/client/gwp_asan.cc +++ b/components/gwp_asan/client/gwp_asan.cc -@@ -76,21 +76,22 @@ constexpr int kDefaultMaxMetadata = 210; +@@ -76,21 +76,21 @@ constexpr int kDefaultMaxMetadata = 210; constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2; constexpr int kDefaultAllocationSamplingMultiplier = 1500; constexpr int kDefaultAllocationSamplingRange = 16; -constexpr double kDefaultProcessSamplingProbability = 0.01; +constexpr double kDefaultProcessSamplingProbability = 0.5; -+constexpr int kDefaultProcessSamplingBoost2 = 10; #elif BUILDFLAG(IS_ANDROID) constexpr int kDefaultMaxAllocations = 70; constexpr int kDefaultMaxMetadata = 255; @@ -225,7 +224,7 @@ diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || // BUILDFLAG(IS_FUCHSIA) constexpr int kDefaultProcessSamplingBoost2 = 10; -@@ -415,7 +416,7 @@ void EnableForMalloc(bool boost_sampling, const char* process_type) { +@@ -415,7 +415,7 @@ void EnableForMalloc(bool boost_sampling, const char* process_type) { std::ignore = init_once; #else std::ignore = internal::kGwpAsanMalloc; @@ -234,7 +233,7 @@ diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client #endif // BUILDFLAG(USE_ALLOCATOR_SHIM) } -@@ -435,7 +436,7 @@ void EnableForPartitionAlloc(bool boost_sampling, const char* process_type) { +@@ -435,7 +435,7 @@ void EnableForPartitionAlloc(bool boost_sampling, const char* process_type) { std::ignore = init_once; #else std::ignore = internal::kGwpAsanPartitionAlloc; diff --git a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch index 0418e39b..c45f8625 100644 --- a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch +++ b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch @@ -1253,7 +1253,7 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU source_set("java_bindings") { sources = [ -@@ -120,7 +121,7 @@ android_resources("java_ui_resources") { +@@ -119,7 +120,7 @@ android_resources("java_ui_resources") { "java/res/layout/adblock_custom_item_settings.xml", "java/res/layout/adblock_filter_lists_list_item.xml", "java/res/xml/adblock_more_options.xml", @@ -3280,7 +3280,7 @@ diff --git a/components/adblock/core/configuration/filtering_configuration.h b/c diff --git a/components/adblock/core/configuration/persistent_filtering_configuration.cc b/components/adblock/core/configuration/persistent_filtering_configuration.cc --- a/components/adblock/core/configuration/persistent_filtering_configuration.cc +++ b/components/adblock/core/configuration/persistent_filtering_configuration.cc -@@ -25,6 +25,7 @@ +@@ -24,6 +24,7 @@ #include "components/adblock/core/configuration/filtering_configuration_prefs.h" #include "components/prefs/pref_service.h" #include "components/prefs/scoped_user_pref_update.h" @@ -3288,7 +3288,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur #include "base/logging.h" -@@ -135,6 +136,7 @@ const std::string& PersistentFilteringConfiguration::GetName() const { +@@ -134,6 +135,7 @@ const std::string& PersistentFilteringConfiguration::GetName() const { } void PersistentFilteringConfiguration::SetEnabled(bool enabled) { @@ -3296,7 +3296,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur if (IsEnabled() == enabled) { return; } -@@ -143,6 +145,14 @@ void PersistentFilteringConfiguration::SetEnabled(bool enabled) { +@@ -142,6 +144,14 @@ void PersistentFilteringConfiguration::SetEnabled(bool enabled) { NotifyEnabledStateChanged(); } @@ -3763,15 +3763,15 @@ diff --git a/components/adblock/core/subscription/filtering_configuration_mainta diff --git a/components/adblock/core/subscription/ongoing_subscription_request_impl.cc b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc --- a/components/adblock/core/subscription/ongoing_subscription_request_impl.cc +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc -@@ -22,6 +22,7 @@ - #include "base/strings/string_piece_forward.h" +@@ -21,6 +21,7 @@ + #include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" +#include "net/base/load_flags.h" #include "net/http/http_request_headers.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/mojom/url_response_head.mojom.h" -@@ -44,11 +45,23 @@ const net::NetworkTrafficAnnotationTag kTrafficAnnotation = +@@ -43,11 +44,23 @@ const net::NetworkTrafficAnnotationTag kTrafficAnnotation = "Application name (ex. Chromium) " "Application version (93.0.4572.0) " destination: WEBSITE @@ -3796,7 +3796,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i policy_exception_justification: "Not implemented." })"); -@@ -66,7 +79,7 @@ OngoingSubscriptionRequestImpl::OngoingSubscriptionRequestImpl( +@@ -65,7 +78,7 @@ OngoingSubscriptionRequestImpl::OngoingSubscriptionRequestImpl( OngoingSubscriptionRequestImpl::~OngoingSubscriptionRequestImpl() { if (!url_.is_empty()) { @@ -3805,7 +3805,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i } net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); } -@@ -92,7 +105,7 @@ void OngoingSubscriptionRequestImpl::Retry() { +@@ -91,7 +104,7 @@ void OngoingSubscriptionRequestImpl::Retry() { return; } backoff_entry_->InformOfRequest(false); @@ -3814,7 +3814,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i << backoff_entry_->GetTimeUntilRelease(); retry_timer_->Start( FROM_HERE, backoff_entry_->GetTimeUntilRelease(), -@@ -106,7 +119,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { +@@ -105,7 +118,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!url_.is_empty()) << "Redirect() called before Start()"; DCHECK(url_ != redirect_url) << "Invalid redirect. Same URL"; @@ -3823,7 +3823,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i ++number_of_redirects_; url_ = std::move(redirect_url); StartInternal(); -@@ -126,10 +139,15 @@ void OngoingSubscriptionRequestImpl::StartInternal() { +@@ -125,10 +138,15 @@ void OngoingSubscriptionRequestImpl::StartInternal() { // indefinitely. return; } @@ -3840,7 +3840,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i loader_ = network::SimpleURLLoader::Create(std::move(request), kTrafficAnnotation); -@@ -152,11 +170,8 @@ void OngoingSubscriptionRequestImpl::OnDownloadFinished( +@@ -151,11 +169,8 @@ void OngoingSubscriptionRequestImpl::OnDownloadFinished( base::FilePath downloaded_file) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); TRACE_EVENT_NESTABLE_ASYNC_END0("eyeo", "Downloading subscription", this); @@ -3990,7 +3990,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo diff --git a/components/adblock/core/subscription/subscription_config.h b/components/adblock/core/subscription/subscription_config.h --- a/components/adblock/core/subscription/subscription_config.h +++ b/components/adblock/core/subscription/subscription_config.h -@@ -37,7 +37,7 @@ enum class SubscriptionUiVisibility { Visible, Invisible }; +@@ -36,7 +36,7 @@ enum class SubscriptionUiVisibility { Visible, Invisible }; enum class SubscriptionFirstRunBehavior { // Download and install as soon as possible. @@ -3999,7 +3999,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.h b/compon // Download and install as soon as possible but only if the device's region // matches one of the |languages| defined in KnownSubscriptionInfo. SubscribeIfLocaleMatch, -@@ -48,7 +48,7 @@ enum class SubscriptionFirstRunBehavior { +@@ -47,7 +47,7 @@ enum class SubscriptionFirstRunBehavior { // Privileged filters include: // - Snippet filters // - Header filters @@ -4008,7 +4008,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.h b/compon // Description of a subscription that's known to exist in the Internet. // Can be used to populate a list of proposed or recommended subscriptions in -@@ -72,7 +72,7 @@ struct KnownSubscriptionInfo { +@@ -71,7 +71,7 @@ struct KnownSubscriptionInfo { std::vector languages; SubscriptionUiVisibility ui_visibility = SubscriptionUiVisibility::Visible; SubscriptionFirstRunBehavior first_run = @@ -4114,7 +4114,7 @@ diff --git a/components/adblock/core/subscription/subscription_persistent_metada diff --git a/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc b/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc --- a/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc +++ b/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc -@@ -22,6 +22,7 @@ +@@ -21,6 +21,7 @@ #include "base/time/time.h" #include "base/values.h" #include "components/adblock/core/common/adblock_prefs.h" @@ -4122,7 +4122,7 @@ diff --git a/components/adblock/core/subscription/subscription_persistent_metada #include "components/prefs/scoped_user_pref_update.h" namespace adblock { -@@ -146,6 +147,12 @@ void SubscriptionPersistentMetadataImpl::UpdatePrefs() { +@@ -145,6 +146,12 @@ void SubscriptionPersistentMetadataImpl::UpdatePrefs() { prefs_->SetDict(common::prefs::kSubscriptionMetadata, std::move(dict)); } diff --git a/build/patches/00Fix-chromium-build-bugs.patch b/build/patches/00Fix-chromium-build-bugs.patch index db57a104..f75353ef 100644 --- a/build/patches/00Fix-chromium-build-bugs.patch +++ b/build/patches/00Fix-chromium-build-bugs.patch @@ -6,8 +6,10 @@ because of https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 --- BUILD.gn | 1 - + .../chrome_browsing_data_model_delegate.cc | 1 + .../navigation_predictor_metrics_document_data.h | 2 ++ chrome/browser/safe_browsing/BUILD.gn | 1 + + .../browser/metrics/shadow_prediction_metrics.cc | 2 +- .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- components/omnibox/browser/omnibox_field_trial.cc | 4 ++-- .../phishing_classifier/phishing_image_embedder.cc | 14 +++----------- @@ -15,7 +17,7 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 crypto/BUILD.gn | 3 +++ net/BUILD.gn | 1 + third_party/libevent/BUILD.gn | 2 ++ - 10 files changed, 17 insertions(+), 16 deletions(-) + 12 files changed, 19 insertions(+), 17 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn @@ -28,6 +30,17 @@ diff --git a/BUILD.gn b/BUILD.gn "//android_webview/tools/sdk_sandbox", "//android_webview/tools/system_webview_shell", "//chrome/android:chrome_junit_tests", +diff --git a/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc +--- a/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc ++++ b/chrome/browser/browsing_data/chrome_browsing_data_model_delegate.cc +@@ -221,6 +221,7 @@ bool ChromeBrowsingDataModelDelegate::IsCookieDeletionDisabled( + auto* client = permissions::PermissionsClient::Get(); + return client->IsCookieDeletionDisabled(profile_, url); + } ++ return false; + #else + return false; + #endif diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h --- a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h +++ b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h @@ -51,6 +64,18 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin ] if (safe_browsing_mode == 1) { # "Safe Browsing Full" files in addition to the "basic" ones to use for +diff --git a/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc b/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc +--- a/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc ++++ b/components/autofill/core/browser/metrics/shadow_prediction_metrics.cc +@@ -61,7 +61,7 @@ int GetShadowPrediction(ServerFieldType current, + } + + void LogShadowPredictionComparison(const AutofillField& field) { +- const auto& submitted_types = field.possible_types(); ++ [[maybe_unused]] const auto& submitted_types = field.possible_types(); + + #if BUILDFLAG(USE_INTERNAL_AUTOFILL_PATTERNS) + base::UmaHistogramSparse( diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc --- a/components/omnibox/browser/autocomplete_classifier.cc +++ b/components/omnibox/browser/autocomplete_classifier.cc diff --git a/build/patches/00Partition-MediaDeviceId-by-default.patch b/build/patches/00Partition-MediaDeviceId-by-default.patch index 1f9900ae..2608c678 100644 --- a/build/patches/00Partition-MediaDeviceId-by-default.patch +++ b/build/patches/00Partition-MediaDeviceId-by-default.patch @@ -6,10 +6,9 @@ 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 --- components/media_device_salt/media_device_salt_service.cc | 3 +++ + content/browser/media/media_devices_util.cc | 3 +++ content/browser/renderer_host/media/media_devices_manager.cc | 5 +++++ - .../features_cc/Partition-MediaDeviceId-by-default.inc | 1 + - 3 files changed, 9 insertions(+) - create mode 100644 cromite_flags/content/common/features_cc/Partition-MediaDeviceId-by-default.inc + 3 files changed, 11 insertions(+) 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 @@ -24,6 +23,19 @@ diff --git a/components/media_device_salt/media_device_salt_service.cc b/compone namespace { scoped_refptr CreateDatabaseTaskRunner() { +diff --git a/content/browser/media/media_devices_util.cc b/content/browser/media/media_devices_util.cc +--- a/content/browser/media/media_devices_util.cc ++++ b/content/browser/media/media_devices_util.cc +@@ -166,6 +166,9 @@ blink::WebMediaDeviceInfo TranslateMediaDeviceInfo( + bool has_permission, + const MediaDeviceSaltAndOrigin& salt_and_origin, + const blink::WebMediaDeviceInfo& device_info) { ++ // If device permission is not granted by the user, ++ // media-device enumeration will provide at most one device per type and the ++ // device IDs will not be available. + if (has_permission) { + return blink::WebMediaDeviceInfo( + GetHMACForRawMediaDeviceID(salt_and_origin, device_info.device_id), diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc --- a/content/browser/renderer_host/media/media_devices_manager.cc +++ b/content/browser/renderer_host/media/media_devices_manager.cc @@ -39,11 +51,5 @@ diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/cont GetAudioInputCapabilities(video_input_capabilities_requested, audio_input_capabilities_requested, -diff --git a/cromite_flags/content/common/features_cc/Partition-MediaDeviceId-by-default.inc b/cromite_flags/content/common/features_cc/Partition-MediaDeviceId-by-default.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/content/common/features_cc/Partition-MediaDeviceId-by-default.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_ENABLED(kEnumerateDevicesHideDeviceIDs); -- 2.25.1 diff --git a/build/patches/00WIN-enable-file-system-access-blocklist.patch b/build/patches/00WIN-enable-file-system-access-blocklist.patch index e602f61f..35220d6e 100644 --- a/build/patches/00WIN-enable-file-system-access-blocklist.patch +++ b/build/patches/00WIN-enable-file-system-access-blocklist.patch @@ -14,7 +14,7 @@ diff --git a/content/browser/file_system_access/features.cc b/content/browser/fi "FileSystemAccessDirectoryIterationSymbolicLinkCheck", base::FEATURE_DISABLED_BY_DEFAULT); -+CROMITE_SET_FEATURE_ENABLED(kFileSystemAccessDragAndDropCheckBlocklist); ++SET_CROMITE_FEATURE_ENABLED(kFileSystemAccessDragAndDropCheckBlocklist); } // namespace content::features -- 2.25.1 diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 36caf9f0..c157dd03 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -397,7 +397,7 @@ new file mode 100644 + along with Bromite. If not, see . +*/ + -+import {$} from 'chrome://resources/js/util_ts.js'; ++import {$} from 'chrome://resources/js/util.js'; + +/** + * Main entry point called once the page has loaded. diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index e3699b12..9bbed8c9 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -11,13 +11,13 @@ Require: Content-settings-infrastructure.patch .../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes .../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes .../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 bytes - .../impl/BromiteAutoplayContentSetting.java | 92 ++++++++++++++++++ + .../impl/BromiteAutoplayContentSetting.java | 93 ++++++++++++++++++ .../bromite_content_settings/autoplay.grdp | 21 ++++ .../bromite_content_settings/autoplay.inc | 12 +++ .../core/browser/content_settings_registry.cc | 2 +- .../core/html/media/autoplay_policy.cc | 14 +++ .../core/html/media/autoplay_policy.h | 4 + - 11 files changed, 144 insertions(+), 1 deletion(-) + 11 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png @@ -139,7 +139,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteAutoplayContentSetting.java -@@ -0,0 +1,92 @@ +@@ -0,0 +1,93 @@ +/* + This file is part of Bromite. + @@ -192,7 +192,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_autoplay_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 55eeeaf0..42a76a66 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -6,27 +6,27 @@ 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 | 66 +++++++++++++++++++ - .../bookmarks/android/bookmark_bridge.cc | 44 +++++++++++++ + .../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++ + .../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 8 +++ .../browser/bookmarks/bookmark_html_writer.cc | 8 ++- .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 + components/bookmark_bar_strings.grdp | 6 ++ .../bookmarks/browser/bookmark_client.cc | 2 + - .../bookmarks/browser/bookmark_codec.cc | 22 +++++-- + .../bookmarks/browser/bookmark_codec.cc | 22 ++++-- components/bookmarks/browser/bookmark_codec.h | 7 +- .../browser/bookmark_load_details.cc | 4 ++ .../bookmarks/browser/bookmark_load_details.h | 3 + .../bookmarks/browser/bookmark_model.cc | 3 +- components/bookmarks/browser/bookmark_model.h | 7 ++ - components/bookmarks/browser/bookmark_node.cc | 11 ++++ + components/bookmarks/browser/bookmark_node.cc | 11 +++ components/bookmarks/browser/bookmark_node.h | 4 ++ .../bookmarks/browser/bookmark_uuids.cc | 3 + components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 3 +- .../bookmark_specifics_conversions.cc | 1 + - 22 files changed, 231 insertions(+), 10 deletions(-) + 22 files changed, 232 insertions(+), 10 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 @@ -111,10 +111,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.base.ObserverList; import org.chromium.base.ThreadUtils; import org.chromium.base.metrics.RecordHistogram; -@@ -39,6 +40,10 @@ import org.chromium.base.metrics.RecordUserAction; +@@ -39,6 +40,11 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.read_later.ReadingListUtils; ++import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController; @@ -122,7 +123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkType; -@@ -83,6 +88,8 @@ import java.io.File; +@@ -83,6 +89,8 @@ import java.io.File; class BookmarkBridge { private final ObserverList mObservers = new ObserverList<>(); @@ -131,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private long mNativeBookmarkBridge; private boolean mIsDestroyed; private boolean mIsDoingExtensiveChanges; -@@ -374,6 +381,16 @@ class BookmarkBridge { +@@ -374,6 +382,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -148,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @return Id representing the special "other" folder from bookmark model. */ -@@ -1018,6 +1035,50 @@ class BookmarkBridge { +@@ -1018,6 +1036,50 @@ class BookmarkBridge { return BookmarkBridgeJni.get().addToReadingList(mNativeBookmarkBridge, title, url); } @@ -199,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Helper method to mark an article as read. * -@@ -1243,6 +1304,9 @@ class BookmarkBridge { +@@ -1243,6 +1305,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url); @@ -209,7 +210,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds(long nativeBookmarkBridge, List bookmarksList); -@@ -1254,6 +1318,8 @@ class BookmarkBridge { +@@ -1254,6 +1319,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index ba703a56..811d2711 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -9,7 +9,7 @@ Requires patch: Content-settings-infrastructure.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../impl/BromiteWebGLContentSetting.java | 92 +++++++++++++++++++ + .../impl/BromiteWebGLContentSetting.java | 93 +++++++++++++++++++ .../bromite_content_settings/webgl.grdp | 27 ++++++ .../bromite_content_settings/webgl.inc | 22 +++++ .../common/bromite_content_settings/WEBGL.inc | 1 + @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../execution_context/execution_context.h | 2 + .../webgl/webgl_rendering_context_base.cc | 32 +++---- .../webgl/webgl_rendering_context_base.h | 2 + - 8 files changed, 166 insertions(+), 19 deletions(-) + 8 files changed, 167 insertions(+), 19 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/webgl.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/webgl.inc @@ -27,7 +27,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java -@@ -0,0 +1,92 @@ +@@ -0,0 +1,93 @@ +/* + This file is part of Bromite. + @@ -80,7 +80,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_webgl_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_webgl_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_webgl_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index d77989ac..7159c218 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -7,14 +7,14 @@ Requires patch: Content-settings-infrastructure.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../impl/BromiteWebRTCContentSetting.java | 93 +++++++++++++++++++ + .../impl/BromiteWebRTCContentSetting.java | 94 +++++++++++++++++++ .../bromite_content_settings/webrtc.grdp | 27 ++++++ .../bromite_content_settings/webrtc.inc | 22 +++++ .../bromite_content_settings/WEBRTC.inc | 1 + .../peer_connection_dependency_factory.cc | 6 ++ .../peerconnection/rtc_rtp_receiver.cc | 10 ++ .../modules/peerconnection/rtc_rtp_sender.cc | 10 ++ - 7 files changed, 169 insertions(+) + 7 files changed, 170 insertions(+) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc @@ -24,7 +24,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java -@@ -0,0 +1,93 @@ +@@ -0,0 +1,94 @@ +/* + This file is part of Bromite. + @@ -77,7 +77,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_webrtc_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_webrtc_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_webrtc_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch index 888be4ff..273e1387 100644 --- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch +++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch @@ -14,10 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../privacy_sandbox/privacy_sandbox_prompt.cc | 1 + .../history/core/browser/history_backend.cc | 13 +--------- .../privacy_sandbox_attestations.cc | 2 -- - .../privacy_sandbox_features.cc | 5 ++++ + .../privacy_sandbox_features.cc | 6 ++++- .../privacy_sandbox/privacy_sandbox_prefs.cc | 4 ++-- .../privacy_sandbox_settings_impl.cc | 24 +++++++++++++------ - 8 files changed, 30 insertions(+), 23 deletions(-) + 8 files changed, 30 insertions(+), 24 deletions(-) diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc @@ -91,12 +91,19 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc -@@ -152,4 +152,9 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, +@@ -145,11 +145,15 @@ BASE_FEATURE(kAttributionDebugReportingCookieDeprecationTesting, + BASE_FEATURE(kPrivateAggregationDebugReportingCookieDeprecationTesting, + "PrivateAggregationDebugReportingCookieDeprecationTesting", + base::FEATURE_DISABLED_BY_DEFAULT); +- ++ + #if BUILDFLAG(IS_ANDROID) + BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, + "TrackingProtectionNoticeRequestTracking", base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings4); -+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings3); +SET_CROMITE_FEATURE_ENABLED(kDisablePrivacySandboxPrompts); +SET_CROMITE_FEATURE_DISABLED(kEnforcePrivacySandboxAttestations); +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxFirstPartySetsUI); diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 6ce3245c..4cc41c99 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../attribution_storage_sql.cc | 8 +- content/browser/storage_partition_impl.cc | 9 - content/public/android/BUILD.gn | 2 - - .../browser/AttributionOsLevelManager.java | 291 +----------------- + .../browser/AttributionOsLevelManager.java | 296 +----------------- .../public/browser/content_browser_client.cc | 7 +- .../public/browser/navigation_controller.cc | 1 - .../Disable-conversion-measurement-api.inc | 1 + @@ -35,7 +35,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../network/public/cpp/attribution_utils.cc | 2 + third_party/blink/renderer/core/page/page.cc | 2 +- ui/events/android/motion_event_android.cc | 6 +- - 24 files changed, 66 insertions(+), 316 deletions(-) + 24 files changed, 64 insertions(+), 323 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc 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 @@ -296,14 +296,13 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib private static final String TAG = "AttributionManager"; // TODO: replace with constant in android.Manifest.permission once it becomes available in U. private static final String PERMISSION_ACCESS_ADSERVICES_ATTRIBUTION = -@@ -116,63 +107,14 @@ public class AttributionOsLevelManager { +@@ -116,62 +107,11 @@ public class AttributionOsLevelManager { } private static boolean supportsAttribution() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R; -+ return false; - } - +- } +- - private static @OperationResult int convertToOperationResult(Throwable thrown) { - if (thrown instanceof IllegalArgumentException) { - return OperationResult.ERROR_ILLEGAL_ARGUMENT; @@ -327,12 +326,11 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib - } else { - return OperationResult.ERROR_UNKNOWN; - } -+ private MeasurementManagerFutures getManager() { -+ return null; ++ return false; } -- private static void recordOperationResult( -- @OperationType int type, @OperationResult int result) { + private static void recordOperationResult( + @OperationType int type, @OperationResult int result) { - String suffix = ""; - switch (type) { - case OperationType.REGISTER_SOURCE: @@ -354,16 +352,15 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib - suffix = "DeleteRegistrations"; - break; - } - +- - assert suffix.length() > 0; - - RecordHistogram.recordEnumeratedHistogram( - "Conversions.AndroidOperationResult." + suffix, result, OperationResult.COUNT); -- } + } @CalledByNative - private AttributionOsLevelManager(long nativePtr) { -@@ -180,22 +122,7 @@ public class AttributionOsLevelManager { +@@ -180,22 +120,7 @@ public class AttributionOsLevelManager { } private MeasurementManagerFutures getManager() { @@ -387,10 +384,15 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } private void onRegistrationCompleted( -@@ -214,21 +141,6 @@ public class AttributionOsLevelManager { - if (!supportsAttribution()) { - return; +@@ -209,28 +134,6 @@ public class AttributionOsLevelManager { } + } + +- private void addRegistrationFutureCallback( +- int requestId, @OperationType int type, ListenableFuture future) { +- if (!supportsAttribution()) { +- return; +- } - Futures.addCallback( - future, - new FutureCallback() { @@ -406,10 +408,12 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib - } - }, - ContextUtils.getApplicationContext().getMainExecutor()); - } - +- } +- /** -@@ -249,25 +161,6 @@ public class AttributionOsLevelManager { + * Registers a web attribution source with native, see `registerWebSourceAsync()`: + * https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures. +@@ -249,25 +152,6 @@ public class AttributionOsLevelManager { OperationResult.ERROR_VERSION_UNSUPPORTED); return; } @@ -435,7 +439,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } /** -@@ -283,15 +176,6 @@ public class AttributionOsLevelManager { +@@ -283,15 +167,6 @@ public class AttributionOsLevelManager { OperationResult.ERROR_VERSION_UNSUPPORTED); return; } @@ -451,7 +455,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } /** -@@ -308,22 +192,6 @@ public class AttributionOsLevelManager { +@@ -308,22 +183,6 @@ public class AttributionOsLevelManager { OperationResult.ERROR_VERSION_UNSUPPORTED); return; } @@ -474,7 +478,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } /** -@@ -339,15 +207,6 @@ public class AttributionOsLevelManager { +@@ -339,15 +198,6 @@ public class AttributionOsLevelManager { OperationResult.ERROR_VERSION_UNSUPPORTED); return; } @@ -490,7 +494,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } private void onDataDeletionCompleted(int requestId) { -@@ -382,96 +241,7 @@ public class AttributionOsLevelManager { +@@ -382,96 +232,7 @@ public class AttributionOsLevelManager { onDataDeletionCompleted(requestId); return; } @@ -588,7 +592,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib } private static void onMeasurementStateReturned(int status, @OperationResult int result) { -@@ -487,6 +257,10 @@ public class AttributionOsLevelManager { +@@ -487,6 +248,10 @@ public class AttributionOsLevelManager { private static void getMeasurementApiStatus() { ThreadUtils.assertOnBackgroundThread(); @@ -599,7 +603,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib if (sManagerForTesting != null) { AttributionOsLevelManagerJni.get().onMeasurementStateReturned(1); return; -@@ -506,49 +280,6 @@ public class AttributionOsLevelManager { +@@ -506,49 +271,6 @@ public class AttributionOsLevelManager { onMeasurementStateReturned(/* status= */ 0, OperationResult.ERROR_PERMISSION_UNGRANTED); return; } diff --git a/build/patches/Disable-idle-detection.patch b/build/patches/Disable-idle-detection.patch index 2389ddab..41b037fd 100644 --- a/build/patches/Disable-idle-detection.patch +++ b/build/patches/Disable-idle-detection.patch @@ -4,19 +4,30 @@ Subject: Disable idle detection License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../common/content_features_cc/Disable-idle-detection.inc | 1 + + .../common/content_features_cc/Disable-idle-detection.inc | 4 ++++ + .../common/content_features_h/Disable-idle-detection.inc | 1 + .../permissions_policy/permissions_policy_features.json5 | 1 + third_party/blink/renderer/modules/idle/idle_detector.idl | 3 ++- .../blink/renderer/platform/runtime_enabled_features.json5 | 5 +++++ - 4 files changed, 9 insertions(+), 1 deletion(-) + 5 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-idle-detection.inc + create mode 100644 cromite_flags/content/public/common/content_features_h/Disable-idle-detection.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-idle-detection.inc b/cromite_flags/content/public/common/content_features_cc/Disable-idle-detection.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/content/public/common/content_features_cc/Disable-idle-detection.inc +@@ -0,0 +1,4 @@ ++// This is intended as a kill switch for the Idle Detection feature. To enable ++// this feature, the experimental web platform features flag should be set, ++// or the site should obtain an Origin Trial token. ++CROMITE_FEATURE(kIdleDetection, "IdleDetection", base::FEATURE_DISABLED_BY_DEFAULT); +diff --git a/cromite_flags/content/public/common/content_features_h/Disable-idle-detection.inc b/cromite_flags/content/public/common/content_features_h/Disable-idle-detection.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/content/public/common/content_features_h/Disable-idle-detection.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kIdleDetection); ++CONTENT_EXPORT BASE_DECLARE_FEATURE(kIdleDetection); diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 --- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 +++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 31c642ba..70638c5f 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -17,15 +17,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 1 + .../settings/PasswordSettings.java | 81 ++++++++++++++++++- - .../chromium/chrome/browser/tab/TabImpl.java | 52 ++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 55 +++++++++++++ .../browser/tab/TabViewAndroidDelegate.java | 14 ++++ chrome/browser/BUILD.gn | 7 ++ chrome/browser/android/tab_android.cc | 15 ++++ chrome/browser/android/tab_android.h | 2 + .../strings/android_chrome_strings.grd | 6 ++ .../ui/autofill/chrome_autofill_client.cc | 8 +- + components/android_autofill/browser/BUILD.gn | 1 + .../browser/android_autofill_manager.cc | 2 +- .../browser/android_autofill_manager.h | 4 +- + .../autofill/AutofillManagerWrapper.java | 5 +- + .../components/autofill/AutofillProvider.java | 7 ++ + .../BrowserSelectionActionMenuDelegate.java | 62 ++++++++++++++ .../browser/content_autofill_driver.cc | 53 ++++++++++++ .../content/browser/content_autofill_driver.h | 9 ++- .../content_autofill_driver_factory.cc | 11 ++- @@ -34,8 +38,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_prefs.cc | 6 ++ .../autofill/core/common/autofill_prefs.h | 2 + .../embedder_support/view/ContentView.java | 46 +++++++++++ + .../selection/FloatingPastePopupMenu.java | 3 +- .../chromium/ui/base/ViewAndroidDelegate.java | 8 ++ - 20 files changed, 325 insertions(+), 8 deletions(-) + 25 files changed, 404 insertions(+), 10 deletions(-) + create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -177,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -74,6 +74,17 @@ import org.chromium.url.GURL; +@@ -74,6 +74,18 @@ import org.chromium.url.GURL; import java.nio.ByteBuffer; @@ -187,7 +193,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav +import android.view.ViewStructure; +import android.view.autofill.AutofillValue; +import org.chromium.components.autofill.AutofillProvider; -+import org.chromium.components.autofill.AutofillSelectionMenuItemProvider; ++import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; ++import org.chromium.components.autofill.BrowserSelectionActionMenuDelegate; +import org.chromium.content_public.browser.SelectionPopupController; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.components.user_prefs.UserPrefs; @@ -195,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -224,6 +235,8 @@ class TabImpl implements Tab { +@@ -224,6 +236,8 @@ class TabImpl implements Tab { */ private @Nullable @TabLaunchType Integer mTabLaunchTypeAtCreation; @@ -204,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Creates an instance of a {@link TabImpl}. Package-private. Use {@link TabBuilder} to create * an instance. -@@ -844,6 +857,11 @@ class TabImpl implements Tab { +@@ -844,6 +858,11 @@ class TabImpl implements Tab { for (TabObserver observer : mObservers) observer.onDestroyed(this); mObservers.clear(); @@ -216,7 +223,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1424,6 +1442,16 @@ class TabImpl implements Tab { +@@ -1424,6 +1443,16 @@ class TabImpl implements Tab { return mWebContentsState == null ? -1 : mWebContentsState.version(); } @@ -233,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Initializes the {@link WebContents}. Completes the browser content components initialization * around a native WebContents pointer. -@@ -1491,6 +1519,28 @@ class TabImpl implements Tab { +@@ -1491,6 +1520,30 @@ class TabImpl implements Tab { this)); mWebContents.notifyRendererPreferenceUpdate(); @@ -254,15 +261,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav + TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); + mAutofillProvider.setWebContents(webContents); + cv.setWebContents(webContents); -+ selectionController.setNonSelectionAdditionalMenuItemProvider( -+ new AutofillSelectionMenuItemProvider( -+ getContext(), mAutofillProvider)); ++ BrowserSelectionActionMenuDelegate selectionActionMenuDelegate = ++ new BrowserSelectionActionMenuDelegate(); ++ selectionActionMenuDelegate.setAutofillSelectionMenuItemHelper( ++ new AutofillSelectionMenuItemHelper(getContext(), mAutofillProvider)); ++ selectionController.setSelectionActionMenuDelegate(selectionActionMenuDelegate); + } + } TabHelpers.initWebContentsHelpers(this); notifyContentChanged(); } finally { -@@ -1954,6 +2004,8 @@ class TabImpl implements Tab { +@@ -1954,6 +2007,8 @@ class TabImpl implements Tab { boolean handleNonNavigationAboutURL(GURL url); @@ -394,6 +403,17 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows content::WebContentsObserver(web_contents), log_manager_( // TODO(crbug.com/928595): Replace the closure with a callback to the +diff --git a/components/android_autofill/browser/BUILD.gn b/components/android_autofill/browser/BUILD.gn +--- a/components/android_autofill/browser/BUILD.gn ++++ b/components/android_autofill/browser/BUILD.gn +@@ -40,6 +40,7 @@ android_library("java") { + "java/src/org/chromium/components/autofill/AutofillProviderUMA.java", + "java/src/org/chromium/components/autofill/AutofillRequest.java", + "java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java", ++ "java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java", + "java/src/org/chromium/components/autofill/FormData.java", + "java/src/org/chromium/components/autofill/FormFieldData.java", + "java/src/org/chromium/components/autofill/PrefillRequest.java", diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/components/android_autofill/browser/android_autofill_manager.cc --- a/components/android_autofill/browser/android_autofill_manager.cc +++ b/components/android_autofill/browser/android_autofill_manager.cc @@ -424,6 +444,140 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.h b/co void OnFormSubmittedImpl(const FormData& form, bool known_success, mojom::SubmissionSource source) override; +diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillManagerWrapper.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillManagerWrapper.java +--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillManagerWrapper.java ++++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillManagerWrapper.java +@@ -51,6 +51,7 @@ public class AutofillManagerWrapper { + AutofillManagerWrapper manager = mManager.get(); + if (manager == null) return; + manager.mIsAutofillInputUIShowing = (event == EVENT_INPUT_SHOWN); ++ if (manager.isLoggable()) manager.log("onAutofillEvent isAutofillInputUIShowing: " + manager.mIsAutofillInputUIShowing); + if (event == EVENT_INPUT_SHOWN) manager.notifyInputUIChange(); + } + } +@@ -89,6 +90,7 @@ public class AutofillManagerWrapper { + // Uses Exception to catch various cases. (refer to crbug.com/1186406) + Log.e(TAG, "getAutofillServiceComponentName", e); + } ++ if (isLoggable()) log("componentName=" + componentName); + if (componentName != null) { + mIsAwGCurrentAutofillService = + AWG_COMPONENT_NAME.equals(componentName.flattenToString()); +@@ -247,7 +249,7 @@ public class AutofillManagerWrapper { + /** Always check isLoggable() before call this method. */ + public static void log(String log) { + // Log.i() instead of Log.d() is used here because log.d() is stripped out in release build. +- Log.i(TAG, log); ++ Log.i(TAG, "---" + log); + } + + public static boolean isLoggable() { +@@ -260,6 +262,7 @@ public class AutofillManagerWrapper { + // NOTE: See the comment on TAG above for why this is still AwAutofillManager. + // Check the system setting directly. + sIsLoggable = android.util.Log.isLoggable(TAG, Log.DEBUG); ++ // sIsLoggable = true; // to force enable the log + } + + } +diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java +--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java ++++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java +@@ -190,13 +190,19 @@ public class AutofillProvider { + + /** @return whether query autofill suggestion. */ + public boolean shouldQueryAutofillSuggestion() { ++ AutofillManagerWrapper.log("---shouldQueryAutofillSuggestion" + ++ " mRequest != null=" + (mRequest != null) + ++ " mRequest.getFocusField() != null=" + (mRequest != null && mRequest.getFocusField() != null) + ++ " !mAutofillManager.isAutofillInputUIShowing()=" + ( !mAutofillManager.isAutofillInputUIShowing())); + return mRequest != null + && mRequest.getFocusField() != null + && !mAutofillManager.isAutofillInputUIShowing(); + } + + public void queryAutofillSuggestion() { ++ AutofillManagerWrapper.log("queryAutofillSuggestion start"); + if (shouldQueryAutofillSuggestion()) { ++ AutofillManagerWrapper.log("calling requestAutofill"); + FocusField focusField = mRequest.getFocusField(); + mAutofillManager.requestAutofill( + mContainerView, +@@ -256,6 +262,7 @@ public class AutofillProvider { + float width, + float height, + boolean hasServerPrediction) { ++ AutofillManagerWrapper.log("startAutofillSession"); + // Check focusField inside short value? Autofill Manager might have session that wasn't + // started by AutofillProvider, we just always cancel existing session here. + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { +diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java +new file mode 100644 +--- /dev/null ++++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java +@@ -0,0 +1,62 @@ ++// Copyright 2023 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++package org.chromium.components.autofill; ++ ++import android.content.pm.ResolveInfo; ++ ++import androidx.annotation.IntDef; ++import androidx.annotation.NonNull; ++ ++import org.chromium.base.metrics.RecordHistogram; ++import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; ++import org.chromium.content_public.browser.SelectionMenuItem; ++import org.chromium.content_public.browser.SelectionPopupController; ++import org.chromium.content_public.browser.selection.SelectionActionMenuDelegate; ++ ++import java.lang.annotation.Retention; ++import java.lang.annotation.RetentionPolicy; ++import java.util.ArrayList; ++import java.util.List; ++ ++import org.chromium.base.Log; ++ ++/** Interface for customizing text selection menu items in {@link SelectionPopupController} */ ++public class BrowserSelectionActionMenuDelegate implements SelectionActionMenuDelegate { ++ private AutofillSelectionMenuItemHelper mAutofillSelectionMenuItemHelper; ++ ++ public BrowserSelectionActionMenuDelegate() { ++ } ++ ++ @Override ++ public void modifyDefaultMenuItems( ++ List menuItemBuilders, ++ boolean isSelectionPassword, ++ @NonNull String selectedText) { ++ } ++ ++ @Override ++ public List filterTextProcessingActivities(List activities) { ++ return activities; ++ } ++ ++ @NonNull ++ @Override ++ public List getAdditionalNonSelectionItems() { ++ if (mAutofillSelectionMenuItemHelper != null) { ++ return mAutofillSelectionMenuItemHelper.getAdditionalItems(); ++ } ++ return new ArrayList<>(); ++ } ++ ++ @NonNull ++ @Override ++ public List getAdditionalTextProcessingItems() { ++ return new ArrayList<>(); ++ } ++ ++ public void setAutofillSelectionMenuItemHelper(AutofillSelectionMenuItemHelper provider) { ++ mAutofillSelectionMenuItemHelper = provider; ++ } ++} diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc @@ -775,6 +929,25 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component + } + } } +diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/FloatingPastePopupMenu.java b/content/public/android/java/src/org/chromium/content/browser/selection/FloatingPastePopupMenu.java +--- a/content/public/android/java/src/org/chromium/content/browser/selection/FloatingPastePopupMenu.java ++++ b/content/public/android/java/src/org/chromium/content/browser/selection/FloatingPastePopupMenu.java +@@ -133,13 +133,14 @@ public class FloatingPastePopupMenu implements PastePopupMenu { + SortedSet nonSelectionMenuItems = + SelectActionMenuHelper.getNonSelectionMenuItems( + mContext, actionMenuDelegate, mSelectionActionMenuDelegate); ++ mCustomMenuItemClickListeners.clear(); + SelectionPopupControllerImpl.initializeActionMenu( + mContext, nonSelectionMenuItems, menu, mCustomMenuItemClickListeners, null); + } + + @Override + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { +- mCustomMenuItemClickListeners.clear(); ++ // fixed a bug, moved above + return false; + } + diff --git a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java --- a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java +++ b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 03dc74ce..1d1fccab 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -13,18 +13,18 @@ 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 | 1 + chrome/android/java/AndroidManifest.xml | 24 +++- - .../res/layout/sharing_intent_content.xml | 87 +++++++++++++ + .../res/layout/sharing_intent_content.xml | 87 ++++++++++++ .../chrome/browser/IntentHandler.java | 16 ++- .../browser/LaunchIntentDispatcher.java | 2 +- .../init/ProcessInitializationHandler.java | 3 + - .../SharedIntentShareActivity.java | 119 ++++++++++++++++++ + .../SharedIntentShareActivity.java | 127 ++++++++++++++++++ .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 1 + .../strings/android_chrome_strings.grd | 13 ++ .../about_flags_cc/Enable-share-intent.inc | 12 ++ .../Enable-share-intent.inc | 3 + .../Enable-share-intent.inc | 1 + - 14 files changed, 276 insertions(+), 8 deletions(-) + 14 files changed, 284 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-share-intent.inc @@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_ new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java -@@ -0,0 +1,119 @@ +@@ -0,0 +1,127 @@ +// Copyright 2019 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. @@ -286,12 +286,15 @@ new file mode 100644 +import org.chromium.base.ThreadUtils; +import org.chromium.base.task.PostTask; +import org.chromium.base.task.TaskTraits; ++import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import org.chromium.chrome.browser.init.ActivityProfileProvider; +import org.chromium.chrome.browser.init.AsyncInitializationActivity; +import org.chromium.chrome.browser.LaunchIntentDispatcher; +import org.chromium.chrome.browser.IntentHandler; ++import org.chromium.chrome.browser.profiles.ProfileProvider; +import org.chromium.ui.widget.ButtonCompat; + +/** @@ -300,6 +303,11 @@ new file mode 100644 +public class SharedIntentShareActivity + extends AsyncInitializationActivity { + ++ @Override ++ protected OneshotSupplier createProfileProvider() { ++ return new ActivityProfileProvider(getLifecycleDispatcher()); ++ } ++ + /** + * Checks whether sending shared clipboard message is enabled for the user and enables/disables + * the SharedIntentShareActivity appropriately. This call requires native to be loaded. diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 8753fb3a..cc017d28 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -94,7 +94,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/user_scripts/common/host_id.h | 35 + .../user_scripts/common/script_constants.h | 33 + components/user_scripts/common/url_pattern.cc | 803 ++++++++++++++++++ - components/user_scripts/common/url_pattern.h | 302 +++++++ + components/user_scripts/common/url_pattern.h | 303 +++++++ .../user_scripts/common/url_pattern_set.cc | 335 ++++++++ .../user_scripts/common/url_pattern_set.h | 160 ++++ components/user_scripts/common/user_script.cc | 329 +++++++ @@ -112,7 +112,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts_renderer_resources.grd | 14 + .../user_scripts/renderer/script_context.cc | 191 +++++ .../user_scripts/renderer/script_context.h | 67 ++ - .../user_scripts/renderer/script_injection.cc | 293 +++++++ + .../user_scripts/renderer/script_injection.cc | 295 +++++++ .../user_scripts/renderer/script_injection.h | 155 ++++ .../renderer/script_injection_manager.cc | 415 +++++++++ .../renderer/script_injection_manager.h | 100 +++ @@ -134,7 +134,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/userscripts_strings.grdp | 54 ++ .../Experimental-user-scripts-support.inc | 13 + tools/gritsettings/resource_ids.spec | 6 + - 107 files changed, 9489 insertions(+), 2 deletions(-) + 107 files changed, 9492 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 @@ -912,7 +912,7 @@ new file mode 100755 + deps = [ + ":java_resources", + "//base:base_java", -+ "//base:jni_java", ++ "//third_party/jni_zero:jni_zero_java", + "//components/embedder_support/android:browser_context_java", + "//components/browser_ui/settings/android:java", + "//components/browser_ui/widget/android:java", @@ -1068,7 +1068,7 @@ new file mode 100644 + + + -+ + -\ No newline at end of file diff --git a/components/user_scripts/android/java/res/layout/accept_script_list.xml b/components/user_scripts/android/java/res/layout/accept_script_list.xml new file mode 100644 --- /dev/null @@ -1528,8 +1527,8 @@ new file mode 100644 + +import org.chromium.components.browser_ui.widget.dragreorder.DragReorderableListAdapter; +import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; -+import org.chromium.components.browser_ui.widget.listmenu.ListMenuButton; -+import org.chromium.components.browser_ui.widget.listmenu.ListMenuButtonDelegate; ++import org.chromium.ui.listmenu.ListMenuButton; ++import org.chromium.ui.listmenu.ListMenuButtonDelegate; +import org.chromium.ui.widget.ChromeImageView; + +import java.util.ArrayList; @@ -1676,8 +1675,7 @@ new file mode 100644 + +package org.chromium.components.user_scripts; + -+import static org.chromium.components.browser_ui.widget.listmenu.BasicListMenu.buildMenuListItem; -+import static org.chromium.components.browser_ui.widget.listmenu.BasicListMenu.buildMenuListItemWithEndIcon; ++import static org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils.buildMenuListItem; + +import android.content.Context; +import android.content.Intent; @@ -1700,9 +1698,10 @@ new file mode 100644 +import org.chromium.base.ApplicationStatus; +import org.chromium.base.ContextUtils; +import org.chromium.components.browser_ui.widget.TintedDrawable; -+import org.chromium.components.browser_ui.widget.listmenu.BasicListMenu; -+import org.chromium.components.browser_ui.widget.listmenu.ListMenu; -+import org.chromium.components.browser_ui.widget.listmenu.ListMenuItemProperties; ++import org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils; ++import org.chromium.ui.listmenu.BasicListMenu; ++import org.chromium.ui.listmenu.ListMenu; ++import org.chromium.ui.listmenu.ListMenuItemProperties; +import org.chromium.ui.modelutil.MVCListAdapter.ModelList; + +import org.chromium.components.user_scripts.ScriptListBaseAdapter; @@ -1741,7 +1740,7 @@ new file mode 100644 + } + }; + ((ScriptInfoRowViewHolder) holder) -+ .setMenuButtonDelegate(() -> new BasicListMenu(mContext, menuItems, delegate)); ++ .setMenuButtonDelegate(() -> BrowserUiListMenuUtils.getBasicListMenu(mContext, menuItems, delegate)); + ((ScriptInfoRowViewHolder) holder) + .setItemListener(new ScriptListBaseAdapter.ItemClickListener() { + @Override @@ -2628,7 +2627,7 @@ new file mode 100644 +++ b/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.js @@ -0,0 +1,9 @@ +import {sendWithPromise} from 'chrome://resources/js/cr.js'; -+import {$} from 'chrome://resources/js/util_ts.js'; ++import {$} from 'chrome://resources/js/util.js'; + +document.addEventListener('DOMContentLoaded', function() { + const urlParams = new URLSearchParams(window.location.search); @@ -5592,7 +5591,7 @@ diff --git a/components/user_scripts/common/url_pattern.h b/components/user_scri new file mode 100755 --- /dev/null +++ b/components/user_scripts/common/url_pattern.h -@@ -0,0 +1,302 @@ +@@ -0,0 +1,303 @@ +// 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. @@ -5606,6 +5605,7 @@ new file mode 100755 + +#include "base/strings/string_piece.h" +#include "net/base/registry_controlled_domains/registry_controlled_domain.h" ++#include "third_party/abseil-cpp/absl/types/optional.h" + +class GURL; + @@ -8023,7 +8023,7 @@ diff --git a/components/user_scripts/renderer/script_injection.cc b/components/u new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/script_injection.cc -@@ -0,0 +1,293 @@ +@@ -0,0 +1,295 @@ +// Copyright 2014 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. @@ -8115,7 +8115,9 @@ new file mode 100755 + ~FrameWatcher() override {} + + private: -+ void WillDetach() override { injection_->invalidate_render_frame(); } ++ void WillDetach(blink::DetachReason detach_reason) override { ++ injection_->invalidate_render_frame(); ++ } + void OnDestruct() override { injection_->invalidate_render_frame(); } + + ScriptInjection* injection_; @@ -8557,7 +8559,7 @@ new file mode 100755 + void DidCreateDocumentElement() override; + void DidFailProvisionalLoad() override; + void DidDispatchDOMContentLoadedEvent() override; -+ void WillDetach() override; ++ void WillDetach(blink::DetachReason detach_reason) override; + void OnDestruct() override; + void OnStop() override; + @@ -8681,7 +8683,7 @@ new file mode 100755 + weak_factory_.GetWeakPtr())); +} + -+void ScriptInjectionManager::RFOHelper::WillDetach() { ++void ScriptInjectionManager::RFOHelper::WillDetach(blink::DetachReason detach_reason) { + // The frame is closing - invalidate. + constexpr bool kForceReset = true; + InvalidateAndResetFrame(kForceReset); diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index abc30540..a76b3c36 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -168,7 +168,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro (*s_allowlist)[::prefs::kShowHomeButton] = settings_api::PrefType::kBoolean; + (*s_allowlist)[::prefs::kExpireDaysThreshold] = -+ settings_api::PrefType::PREF_TYPE_NUMBER; ++ settings_api::PrefType::kNumber; + // Appearance settings. (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 18d8a86f..e453073c 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -18,11 +18,11 @@ Require: Content-settings-infrastructure.patch .../permission_javascript_jit.png | Bin 0 -> 518 bytes .../permission_javascript_jit.png | Bin 0 -> 629 bytes .../permission_javascript_jit.png | Bin 0 -> 797 bytes - .../BromiteJavascriptJITContentSetting.java | 92 ++++++++++++++++++ + .../BromiteJavascriptJITContentSetting.java | 93 ++++++++++++++++++ .../javascript_jit.grdp | 21 ++++ .../javascript_jit.inc | 12 +++ .../core/browser/content_settings_registry.cc | 2 +- - 9 files changed, 126 insertions(+), 1 deletion(-) + 9 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/permission_javascript_jit.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/permission_javascript_jit.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/permission_javascript_jit.png @@ -134,7 +134,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteJavascriptJITContentSetting.java -@@ -0,0 +1,92 @@ +@@ -0,0 +1,93 @@ +/* + This file is part of Bromite. + @@ -187,7 +187,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_javascript_jit_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_javascript_jit_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_javascript_jit_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 0e578c03..722f0dbc 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../overlays/strip/StripLayoutHelper.java | 2 +- .../strip/StripLayoutHelperManager.java | 33 ++++++- .../scene_layer/StaticTabSceneLayer.java | 7 +- - .../scene_layer/TabListSceneLayer.java | 13 +++ + .../scene_layer/TabListSceneLayer.java | 8 ++ .../scene_layer/TabStripSceneLayer.java | 21 ++++- .../browser/findinpage/FindToolbarTablet.java | 10 ++- .../fullscreen/BrowserControlsManager.java | 12 +++ @@ -49,9 +49,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/settings/SettingsActivity.java | 5 ++ .../StatusIndicatorCoordinator.java | 9 ++ .../StatusIndicatorSceneLayer.java | 6 +- - .../browser/toolbar/ToolbarManager.java | 44 ++++++++-- + .../browser/toolbar/ToolbarManager.java | 46 ++++++++-- .../chrome/browser/ui/BottomContainer.java | 18 ++++ .../ui/system/StatusBarColorController.java | 9 ++ + .../android/compositor/layer/toolbar_layer.cc | 10 ++- .../scene_layer/tab_strip_scene_layer.cc | 16 +++- .../BrowserControlsMarginSupplier.java | 5 ++ .../BrowserControlsStateProvider.java | 6 ++ @@ -86,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 6 ++ .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 12 +++ - 73 files changed, 884 insertions(+), 80 deletions(-) + 74 files changed, 889 insertions(+), 82 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc @@ -1143,18 +1144,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen // TODO(crbug.com/1070281): Use Supplier to get viewport and forward it to native, then // updateLayer can become obsolete. TabListSceneLayerJni.get() -@@ -125,6 +133,11 @@ public class TabListSceneLayer extends SceneLayer { - boolean useIncognitoColors = t.isIncognito(); - int defaultThemeColor = ChromeColors.getDefaultThemeColor(context, useIncognitoColors); - -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ toolbarYOffset = 0; -+ contentOffset = 0; -+ } -+ - // TODO(dtrainor, clholgat): remove "* dpToPx" once the native part fully supports dp. - TabListSceneLayerJni.get() - .putTabLayer( diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java @@ -1636,7 +1625,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); if (mBackPressManager != null) { mBackPressManager.addHandler( -@@ -2532,6 +2557,15 @@ public class ToolbarManager +@@ -2133,6 +2158,8 @@ public class ToolbarManager + private int getToolbarExtraYOffset() { + int toolbarHairlineHeight = + mControlContainer.findViewById(R.id.toolbar_hairline).getHeight(); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ toolbarHairlineHeight = 0; + int extraYOffset = + mBrowserControlsSizer.getTopControlsHeight() + - (mControlContainer.getHeight() - toolbarHairlineHeight); +@@ -2532,6 +2559,15 @@ public class ToolbarManager private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1721,6 +1719,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu } /** +diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/browser/android/compositor/layer/toolbar_layer.cc +--- a/chrome/browser/android/compositor/layer/toolbar_layer.cc ++++ b/chrome/browser/android/compositor/layer/toolbar_layer.cc +@@ -5,6 +5,7 @@ + #include "chrome/browser/android/compositor/layer/toolbar_layer.h" + + #include "base/feature_list.h" ++#include "cc/base/features.h" + #include "cc/resources/scoped_ui_resource.h" + #include "cc/slim/layer.h" + #include "cc/slim/nine_patch_layer.h" +@@ -113,8 +114,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, + debug_layer_->RemoveFromParent(); + + // Position the toolbar at the bottom of the space available for top controls. +- layer_->SetPosition( +- gfx::PointF(x_offset, content_offset - layer_->bounds().height())); ++ if (base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) { ++ layer_->SetPosition( ++ gfx::PointF(x_offset, content_offset + layer_->bounds().height())); ++ } else { ++ layer_->SetPosition( ++ gfx::PointF(x_offset, content_offset - layer_->bounds().height())); ++ } + } + + int ToolbarLayer::GetIndexOfLayer(scoped_refptr layer) { diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc --- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc +++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index c0ca93fd..b3218296 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -93,7 +93,7 @@ new file mode 100644 + "CloseAllTabsModalDialog", + base::FEATURE_ENABLED_BY_DEFAULT); + -+SET_CROMITE_FEATURE_ENABLED(kCloseTabSuggestions); ++SET_CROMITE_FEATURE_ENABLED(kArchiveTabService); + +#endif diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index d2ba36d0..e4d6d36f 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -380,12 +380,12 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc @@ -206,6 +206,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = - settings_api::PrefType::PREF_TYPE_NUMBER; + settings_api::PrefType::kNumber; + (*s_allowlist)[::prefs::kEnableReferrers] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[::prefs::kReferrersPolicy] = -+ settings_api::PrefType::PREF_TYPE_NUMBER; ++ settings_api::PrefType::kNumber; + // Appearance settings. (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 85b2dc5e..bd6e2602 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gcm_driver/GoogleCloudMessagingV2.java | 2 + components/gcm_driver/gcm_client_impl.cc | 4 + .../gcm_driver/instance_id/android/BUILD.gn | 3 - - .../instance_id/InstanceIDBridge.java | 48 +- + .../instance_id/InstanceIDBridge.java | 55 +- .../media_router/browser/android/BUILD.gn | 11 - .../media_router/BrowserMediaRouter.java | 21 +- .../components/media_router/MediaSink.java | 44 +- @@ -105,7 +105,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 81 files changed, 98 insertions(+), 2206 deletions(-) + 81 files changed, 98 insertions(+), 2213 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -187,7 +187,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn + "//third_party/androidx:androidx_recyclerview_recyclerview_java", + "//third_party/androidx:androidx_vectordrawable_vectordrawable_java", + "//base:base_java", -+ "//base:jni_java", ++ "//third_party/jni_zero:jni_zero_java", + "//third_party/android_deps:chromium_play_services_availability_java", - "//third_party/android_deps:com_google_code_findbugs_jsr305_java", @@ -1592,7 +1592,20 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -240,11 +205,6 @@ public class InstanceIDBridge { +@@ -227,24 +192,12 @@ public class InstanceIDBridge { + protected abstract void sendResultToNative(Result result); + + public void execute() { +- if (sBlockOnAsyncTasksForTesting) { +- if (mInstanceID == null) { +- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype); +- } +- sendResultToNative(doBackgroundWork()); +- return; +- } + AsyncTask task = + new AsyncTask() { + @Override @SuppressWarnings( "NoSynchronizedThisCheck") // Only used/accessible by native. protected Result doInBackground() { diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index 740a1413..8b19eece 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -118,7 +118,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + value, + "", + /* isEmbargoed= */ false); -+ setContentSettingException(type, exception) ++ setContentSettingException(type, exception); + } + } else if (type == ContentSettingsType.COOKIES) { + // It is possible to set the permission without having an existing exception diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 64b0cac9..7d32be9b 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -11,12 +11,12 @@ Require: Content-settings-infrastructure.patch .../res/drawable-xhdpi/permission_images.png | Bin 0 -> 316 bytes .../res/drawable-xxhdpi/permission_images.png | Bin 0 -> 449 bytes .../drawable-xxxhdpi/permission_images.png | Bin 0 -> 532 bytes - .../impl/BromiteImagesContentSetting.java | 92 ++++++++++++++++++ + .../impl/BromiteImagesContentSetting.java | 93 ++++++++++++++++++ .../bromite_content_settings/images.grdp | 23 +++++ .../bromite_content_settings/images.inc | 6 ++ .../core/browser/content_settings_registry.cc | 2 +- .../core/browser/content_settings_utils.cc | 7 +- - 10 files changed, 123 insertions(+), 7 deletions(-) + 10 files changed, 124 insertions(+), 7 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/permission_images.png @@ -112,7 +112,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteImagesContentSetting.java -@@ -0,0 +1,92 @@ +@@ -0,0 +1,93 @@ +/* + This file is part of Bromite. + @@ -165,7 +165,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_images_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_images_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_images_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 5e3cb2c7..694b37a0 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -15,7 +15,7 @@ Require: Content-settings-infrastructure.patch ...ezoneoverride_site_settings_preference.xml | 68 ++++++ ...imezoneOverrideSiteSettingsPreference.java | 196 ++++++++++++++++++ .../WebsitePreferenceBridge.java | 10 + - ...BromiteTimezoneOverrideContentSetting.java | 147 +++++++++++++ + ...BromiteTimezoneOverrideContentSetting.java | 148 +++++++++++++ .../android/website_preference_bridge.cc | 16 ++ .../bromite_content_settings/timezone.grdp | 39 ++++ .../timezone_override.inc | 23 ++ @@ -33,7 +33,7 @@ Require: Content-settings-infrastructure.patch .../content_settings/core/common/pref_names.h | 2 + .../renderer/content_settings_agent_impl.cc | 80 +++++++ .../renderer/content_settings_agent_impl.h | 11 + - 23 files changed, 681 insertions(+), 1 deletion(-) + 23 files changed, 682 insertions(+), 1 deletion(-) create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java @@ -408,7 +408,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteTimezoneOverrideContentSetting.java -@@ -0,0 +1,147 @@ +@@ -0,0 +1,148 @@ +/* + This file is part of Bromite. + @@ -467,7 +467,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_timezone_override_custom, -+ /*disabledSummary*/ R.string.website_settings_category_timezone_override_random); ++ /*disabledSummary*/ R.string.website_settings_category_timezone_override_random, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/Use-dummy-DFM-installer.patch b/build/patches/Use-dummy-DFM-installer.patch index 3352d7c2..f65edcad 100644 --- a/build/patches/Use-dummy-DFM-installer.patch +++ b/build/patches/Use-dummy-DFM-installer.patch @@ -8,12 +8,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../engine/SplitCompatEngine.java | 77 +------------------ .../engine/SplitCompatEngineFacade.java | 29 ++----- .../module_installer/logger/Logger.java | 16 +--- - .../logger/PlayCoreLogger.java | 42 +--------- + .../logger/PlayCoreLogger.java | 50 ++---------- .../logger/SplitAvailabilityLogger.java | 40 ---------- .../logger/SplitInstallStatusLogger.java | 30 +------- .../module_installer/util/ModuleUtil.java | 5 -- .../util/SplitCompatInitializer.java | 6 -- - 9 files changed, 15 insertions(+), 232 deletions(-) + 9 files changed, 19 insertions(+), 236 deletions(-) diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn @@ -280,7 +280,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java -@@ -4,15 +4,8 @@ +@@ -4,74 +4,38 @@ package org.chromium.components.module_installer.logger; @@ -295,9 +295,17 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component - public PlayCoreLogger() { this( - new SplitInstallFailureLogger(), -@@ -24,54 +17,25 @@ public class PlayCoreLogger implements Logger { - SplitInstallFailureLogger failureLogger, +- new SplitInstallFailureLogger(), +- new SplitInstallStatusLogger(), +- new SplitAvailabilityLogger()); ++ null, ++ null, ++ null); + } + + public PlayCoreLogger( +- SplitInstallFailureLogger failureLogger, ++ Object failureLogger, SplitInstallStatusLogger statusLogger, SplitAvailabilityLogger availabilityLogger) { - mFailureLogger = failureLogger; diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index dd45593e..73410f7a 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -531,7 +531,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -85,6 +85,11 @@ import org.chromium.content_public.browser.SelectionPopupController; +@@ -86,6 +86,11 @@ import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.components.user_prefs.UserPrefs; @@ -543,7 +543,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -600,6 +605,32 @@ class TabImpl implements Tab { +@@ -601,6 +606,32 @@ class TabImpl implements Tab { params.setOverrideUserAgent(calculateUserAgentOverrideOption(null)); } @@ -576,7 +576,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav @TabLoadStatus int result = loadUrlInternal(params, fixedUrl); for (TabObserver observer : mObservers) { -@@ -1493,9 +1524,16 @@ class TabImpl implements Tab { +@@ -1494,9 +1525,16 @@ class TabImpl implements Tab { mWebContents.setImportance(mImportance); @@ -596,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mContentView.addOnAttachStateChangeListener(mAttachStateChangeListener); updateInteractableState(); -@@ -1680,6 +1718,10 @@ class TabImpl implements Tab { +@@ -1683,6 +1721,10 @@ class TabImpl implements Tab { } mIsBeingRestored = true; for (TabObserver observer : mObservers) observer.onRestoreStarted(this); @@ -607,7 +607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } finally { TraceEvent.end("Tab.restoreIfNeeded"); } -@@ -1892,6 +1934,13 @@ class TabImpl implements Tab { +@@ -1895,6 +1937,13 @@ class TabImpl implements Tab { } private @UserAgentOverrideOption int calculateUserAgentOverrideOption(@Nullable GURL url) { @@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav WebContents webContents = getWebContents(); boolean currentRequestDesktopSite = TabUtils.isUsingDesktopUserAgent(webContents); @TabUserAgent int tabUserAgent = TabUtils.getTabUserAgent(this); -@@ -1969,6 +2018,42 @@ class TabImpl implements Tab { +@@ -1972,6 +2021,42 @@ class TabImpl implements Tab { mLaunchType = launchType; } diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 7d75ccda..9c15eb8e 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -9,7 +9,7 @@ The feature is controlled by a feature flag (default enabled) Require: Content-settings-infrastructure.patch --- - .../impl/BromiteViewportContentSetting.java | 93 +++++++++++++++++++ + .../impl/BromiteViewportContentSetting.java | 94 +++++++++++++++++++ .../bromite_content_settings/viewport.grdp | 27 ++++++ .../bromite_content_settings/viewport.inc | 22 +++++ .../bromite_content_settings/VIEWPORT.inc | 1 + @@ -32,9 +32,9 @@ Require: Content-settings-infrastructure.patch .../core/frame/web_frame_widget_impl.cc | 8 ++ .../core/frame/web_remote_frame_impl.cc | 3 +- .../blink/renderer/core/input/touch.cc | 17 +++- - third_party/blink/renderer/core/page/page.cc | 93 +++++++++++++++++++ + third_party/blink/renderer/core/page/page.cc | 93 ++++++++++++++++++ third_party/blink/renderer/core/page/page.h | 9 ++ - 25 files changed, 434 insertions(+), 20 deletions(-) + 25 files changed, 435 insertions(+), 20 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteViewportContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/viewport.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/viewport.inc @@ -47,7 +47,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c new file mode 100644 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteViewportContentSetting.java -@@ -0,0 +1,93 @@ +@@ -0,0 +1,94 @@ +/* + This file is part of Bromite. + @@ -100,7 +100,8 @@ new file mode 100644 + /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*enabledSummary*/ R.string.website_settings_category_viewport_enabled, -+ /*disabledSummary*/ R.string.website_settings_category_viewport_disabled); ++ /*disabledSummary*/ R.string.website_settings_category_viewport_disabled, ++ /*summaryOverrideForScreenReader*/ 0); + } + + @Override diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index ce2885ee..78e4c54e 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -10,15 +10,15 @@ Do not skip google.com domains for password generation (csagan5) License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/prefs/browser_prefs.cc | 6 +-- - .../ui/autofill/chrome_autofill_client.cc | 7 +-- + chrome/browser/prefs/browser_prefs.cc | 6 +- + .../ui/autofill/chrome_autofill_client.cc | 7 +- .../core/browser/browser_autofill_manager.h | 4 +- - .../autofill_crowdsourcing_manager.cc | 43 +++---------------- + .../autofill_crowdsourcing_manager.cc | 66 ++----------------- .../autofill_crowdsourcing_manager.h | 2 - .../autofill/core/common/autofill_features.cc | 1 + - .../autofill/core/common/autofill_prefs.cc | 10 ++--- + .../autofill/core/common/autofill_prefs.cc | 10 +-- .../password_generation_frame_helper.cc | 4 -- - 8 files changed, 19 insertions(+), 58 deletions(-) + 8 files changed, 17 insertions(+), 83 deletions(-) diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc @@ -124,19 +124,38 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } } // namespace -@@ -732,6 +697,11 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -732,34 +697,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { +- // ID of the resource to add to the API request URL. Nothing will be added if +- // `resource_id` is empty. +- std::string resource_id; +- std::string method = "POST"; +- +- if (request_data.request_type == AutofillCrowdsourcingManager::REQUEST_QUERY) { +- if (GetPayloadLength(request_data.payload) <= kMaxQueryGetSize) { +- resource_id = request_data.payload; +- method = "GET"; +- base::UmaHistogramBoolean(kUmaApiUrlIsTooLong, false); +- } else { +- base::UmaHistogramBoolean(kUmaApiUrlIsTooLong, true); +- } +- base::UmaHistogramBoolean(kUmaMethod, method != "GET"); +- } +- +- // Make the canonical URL to query the API, e.g., +- // https://autofill.googleapis.com/v1/forms/1234?alt=proto. +- GURL url = autofill_server_url_.Resolve( +- GetAPIMethodUrl(request_data.request_type, resource_id, method)); +- +- // Add the query parameter to set the response format to a serialized proto. +- url = net::AppendQueryParameter(url, "alt", "proto"); +- +- return std::make_tuple(std::move(url), std::move(method)); + std::string method2("GET"); + GURL url2 = GURL("about:blank"); -+ if ((true)) -+ return std::make_tuple(std::move(url2), std::move(method2)); -+ - // ID of the resource to add to the API request URL. Nothing will be added if - // `resource_id` is empty. - std::string resource_id; -@@ -760,6 +730,7 @@ std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMeth ++ return std::make_tuple(std::move(url2), std::move(method2)); } bool AutofillCrowdsourcingManager::StartRequest(FormRequestData request_data) { diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 70af341c..5afa35c8 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -16,7 +16,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn } + if (is_clang) { -+ cflags += [ "-ftrivial-auto-var-init=zero", "-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang", "-Wno-unused-command-line-argument" ] ++ cflags += [ "-ftrivial-auto-var-init=zero", "-Wno-unused-command-line-argument" ] + } + # Linker warnings. diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index 077e72a3..bec83f3b 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -750,7 +750,7 @@ new file mode 100644 + srcjar_deps = [ ":jni_headers" ] + deps = [ + "//base:base_java", -+ "//base:jni_java", ++ "//third_party/jni_zero:jni_zero_java", + "//third_party/androidx:androidx_annotation_annotation_java", + ] + diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch index da8671bd..f1324835 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch @@ -12,7 +12,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API .../adblock/AdblockFilterFragmentTest.java | 63 +++++ .../adblock/AdblockPopupInfoBarTest.java | 118 +++++++++ .../adblock/AdblockPopupMessageTest.java | 103 ++++++++ - components/adblock/android/BUILD.gn | 68 +++++ + components/adblock/android/BUILD.gn | 67 +++++ components/adblock/android/README.md | 13 + .../adblock/android/adblock_strings.grd | 238 ++++++++++++++++++ .../fragment_adblock_custom_item_add.png | Bin 0 -> 490 bytes @@ -124,7 +124,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API .../translations/adblock_strings_zh-HK.xtb | 4 + .../translations/adblock_strings_zh-TW.xtb | 13 + .../translations/adblock_strings_zu.xtb | 4 + - 118 files changed, 2444 insertions(+), 3 deletions(-) + 118 files changed, 2443 insertions(+), 3 deletions(-) create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java @@ -637,7 +637,7 @@ new file mode 100644 diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BUILD.gn --- a/components/adblock/android/BUILD.gn +++ b/components/adblock/android/BUILD.gn -@@ -66,6 +66,74 @@ android_library("adblock_controller_java") { +@@ -66,6 +66,73 @@ android_library("adblock_controller_java") { resources_package = "org.chromium.components.adblock.controller" } @@ -658,7 +658,6 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU + ":adblock_controller_java", + ":java_ui_resources", + "//base:base_java", -+ "//base:jni_java", + "//build/android:build_java", + "//chrome/browser/preferences:java", + "//chrome/browser/profiles/android:java", diff --git a/build/patches/eyeo-beta-118.0.5993.48-base.patch b/build/patches/eyeo-beta-118.0.5993.48-base.patch index 95d0f920..61223e3d 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -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 | 746 +++++ + .../browser/adblock_url_loader_factory.cc | 747 +++++ .../browser/adblock_url_loader_factory.h | 100 + .../adblock_url_loader_factory_for_test.cc | 436 +++ .../adblock_url_loader_factory_for_test.h | 70 + @@ -77,8 +77,8 @@ Based on Chromium 118.0.5993.48 .../classifier/resource_classifier_impl.h | 64 + .../test/mock_resource_classifier.cc | 26 + .../test/mock_resource_classifier.h | 66 + - .../test/resource_classifier_impl_test.cc | 625 +++++ - .../test/resource_classifier_perftest.cc | 235 ++ + .../test/resource_classifier_impl_test.cc | 624 +++++ + .../test/resource_classifier_perftest.cc | 234 ++ components/adblock/core/common/BUILD.gn | 110 + .../adblock/core/common/adblock_constants.cc | 164 ++ .../adblock/core/common/adblock_constants.h | 48 + @@ -102,7 +102,7 @@ Based on Chromium 118.0.5993.48 .../configuration/filtering_configuration.h | 90 + .../filtering_configuration_prefs.cc | 33 + .../filtering_configuration_prefs.h | 30 + - .../persistent_filtering_configuration.cc | 274 ++ + .../persistent_filtering_configuration.cc | 273 ++ .../persistent_filtering_configuration.h | 86 + .../test/fake_filtering_configuration.cc | 115 + .../test/fake_filtering_configuration.h | 66 + @@ -161,31 +161,31 @@ Based on Chromium 118.0.5993.48 ...filtering_configuration_maintainer_impl.cc | 489 ++++ .../filtering_configuration_maintainer_impl.h | 119 + .../subscription/installed_subscription.cc | 42 + - .../subscription/installed_subscription.h | 138 + - .../installed_subscription_impl.cc | 554 ++++ + .../subscription/installed_subscription.h | 137 + + .../installed_subscription_impl.cc | 553 ++++ .../installed_subscription_impl.h | 150 + .../ongoing_subscription_request.h | 50 + - .../ongoing_subscription_request_impl.cc | 191 ++ - .../ongoing_subscription_request_impl.h | 75 + - .../core/subscription/pattern_matcher.cc | 266 ++ - .../core/subscription/pattern_matcher.h | 34 + + .../ongoing_subscription_request_impl.cc | 190 ++ + .../ongoing_subscription_request_impl.h | 74 + + .../core/subscription/pattern_matcher.cc | 265 ++ + .../core/subscription/pattern_matcher.h | 33 + .../preloaded_subscription_provider.h | 56 + .../preloaded_subscription_provider_impl.cc | 121 + - .../preloaded_subscription_provider_impl.h | 52 + - .../core/subscription/regex_matcher.cc | 163 ++ - .../adblock/core/subscription/regex_matcher.h | 74 + + .../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 | 99 + + .../subscription/subscription_collection.h | 98 + .../subscription_collection_impl.cc | 353 +++ .../subscription_collection_impl.h | 97 + .../core/subscription/subscription_config.cc | 338 +++ - .../core/subscription/subscription_config.h | 121 + + .../core/subscription/subscription_config.h | 120 + .../subscription/subscription_downloader.h | 66 + .../subscription_downloader_impl.cc | 289 ++ .../subscription_downloader_impl.h | 102 + .../subscription_persistent_metadata.h | 86 + - .../subscription_persistent_metadata_impl.cc | 171 ++ + .../subscription_persistent_metadata_impl.cc | 170 ++ .../subscription_persistent_metadata_impl.h | 62 + .../subscription_persistent_storage.h | 60 + .../subscription_persistent_storage_impl.cc | 229 ++ @@ -199,7 +199,7 @@ Based on Chromium 118.0.5993.48 .../subscription/subscription_validator.h | 59 + .../subscription_validator_impl.cc | 145 + .../subscription_validator_impl.h | 53 + - ...ring_configuration_maintainer_impl_test.cc | 908 ++++++ + ...ring_configuration_maintainer_impl_test.cc | 907 ++++++ .../test/installed_subscription_impl_test.cc | 111 + .../test/load_gzipped_test_file.cc | 43 + .../test/load_gzipped_test_file.h | 35 + @@ -221,22 +221,22 @@ Based on Chromium 118.0.5993.48 .../test/mock_subscription_service.h | 75 + .../test/mock_subscription_updater.cc | 25 + .../test/mock_subscription_updater.h | 38 + - .../ongoing_subscription_request_impl_test.cc | 337 +++ - .../test/pattern_matcher_perftest.cc | 69 + - .../subscription/test/pattern_matcher_test.cc | 351 +++ + .../ongoing_subscription_request_impl_test.cc | 336 +++ + .../test/pattern_matcher_perftest.cc | 68 + + .../subscription/test/pattern_matcher_test.cc | 350 +++ ...eloaded_subscription_provider_impl_test.cc | 149 + - .../test/regex_matcher_perftest.cc | 83 + - .../test/subscription_collection_impl_test.cc | 1020 +++++++ - .../test/subscription_downloader_impl_test.cc | 578 ++++ + .../test/regex_matcher_perftest.cc | 82 + + .../test/subscription_collection_impl_test.cc | 1019 +++++++ + .../test/subscription_downloader_impl_test.cc | 577 ++++ ...scription_persistent_metadata_impl_test.cc | 213 ++ - ...bscription_persistent_storage_impl_test.cc | 347 +++ + ...bscription_persistent_storage_impl_test.cc | 346 +++ .../test/subscription_service_impl_test.cc | 287 ++ .../test/subscription_updater_impl_test.cc | 98 + .../test/subscription_validator_impl_test.cc | 252 ++ .../test/url_keyword_extractor_test.cc | 74 + - .../subscription/url_keyword_extractor.cc | 68 + - .../core/subscription/url_keyword_extractor.h | 61 + - ...ctiveping_telemetry_topic_provider_test.cc | 328 +++ + .../subscription/url_keyword_extractor.cc | 67 + + .../core/subscription/url_keyword_extractor.h | 60 + + ...ctiveping_telemetry_topic_provider_test.cc | 327 +++ .../core/test/adblock_controller_impl_test.cc | 449 +++ .../adblock_telemetry_service_unittest.cc | 409 +++ .../core/test/bundled_subscription_test.cc | 49 + @@ -314,7 +314,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 | 8 + - 310 files changed, 37069 insertions(+), 3 deletions(-) + 310 files changed, 37043 insertions(+), 3 deletions(-) create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE create mode 100644 components/adblock/README.md @@ -2720,7 +2720,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,746 @@ +@@ -0,0 +1,747 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2794,6 +2794,7 @@ new file mode 100644 + case network::mojom::RequestDestination::kIframe: + case network::mojom::RequestDestination::kFrame: + case network::mojom::RequestDestination::kFencedframe: ++ case network::mojom::RequestDestination::kSpeculationRules: + return ContentType::Subdocument; + case network::mojom::RequestDestination::kStyle: + case network::mojom::RequestDestination::kXslt: @@ -11238,7 +11239,7 @@ diff --git a/components/adblock/core/classifier/test/resource_classifier_impl_te new file mode 100644 --- /dev/null +++ b/components/adblock/core/classifier/test/resource_classifier_impl_test.cc -@@ -0,0 +1,625 @@ +@@ -0,0 +1,624 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -11260,7 +11261,6 @@ new file mode 100644 + +#include "absl/types/optional.h" +#include "base/memory/raw_ptr.h" -+#include "base/strings/string_piece_forward.h" +#include "components/adblock/core/subscription/test/mock_subscription_collection.h" +#include "gmock/gmock-actions.h" +#include "gmock/gmock-matchers.h" @@ -11868,7 +11868,7 @@ diff --git a/components/adblock/core/classifier/test/resource_classifier_perftes new file mode 100644 --- /dev/null +++ b/components/adblock/core/classifier/test/resource_classifier_perftest.cc -@@ -0,0 +1,235 @@ +@@ -0,0 +1,234 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -11894,7 +11894,6 @@ new file mode 100644 +#include "base/logging.h" +#include "base/path_service.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/timer/elapsed_timer.h" +#include "components/adblock/core/classifier/resource_classifier_impl.h" +#include "components/adblock/core/common/adblock_constants.h" @@ -13321,7 +13320,7 @@ new file mode 100644 +#ifndef COMPONENTS_ADBLOCK_CORE_COMMON_KEYWORD_EXTRACTOR_UTILS_H_ +#define COMPONENTS_ADBLOCK_CORE_COMMON_KEYWORD_EXTRACTOR_UTILS_H_ + -+#include "base/strings/string_piece_forward.h" ++#include "base/strings/string_piece.h" + +namespace adblock { +namespace utils { @@ -13397,7 +13396,7 @@ new file mode 100644 +#define COMPONENTS_ADBLOCK_CORE_COMMON_REGEX_FILTER_PATTERN_H_ + +#include "absl/types/optional.h" -+#include "base/strings/string_piece_forward.h" ++#include "base/strings/string_piece.h" + +namespace adblock { + @@ -13810,7 +13809,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur new file mode 100644 --- /dev/null +++ b/components/adblock/core/configuration/persistent_filtering_configuration.cc -@@ -0,0 +1,274 @@ +@@ -0,0 +1,273 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -13833,7 +13832,6 @@ new file mode 100644 + +#include + -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_util.h" +#include "components/adblock/core/configuration/filtering_configuration_prefs.h" +#include "components/prefs/pref_service.h" @@ -18133,7 +18131,7 @@ new file mode 100644 +#include + +#include "absl/types/optional.h" -+#include "base/strings/string_piece_forward.h" ++#include "base/strings/string_piece.h" +#include "third_party/re2/src/re2/re2.h" +#include "url/gurl.h" + @@ -22991,7 +22989,7 @@ diff --git a/components/adblock/core/subscription/installed_subscription.h b/com new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/installed_subscription.h -@@ -0,0 +1,138 @@ +@@ -0,0 +1,137 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -23019,7 +23017,6 @@ new file mode 100644 + +#include "absl/types/optional.h" + -+#include "base/strings/string_piece_forward.h" +#include "base/time/time.h" +#include "components/adblock/core/common/content_type.h" +#include "components/adblock/core/common/header_filter_data.h" @@ -23134,7 +23131,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,554 @@ +@@ -0,0 +1,553 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -23162,7 +23159,6 @@ new file mode 100644 +#include "base/logging.h" +#include "base/ranges/algorithm.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_util.h" +#include "base/trace_event/trace_event.h" +#include "components/adblock/core/common/adblock_constants.h" @@ -23903,7 +23899,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc -@@ -0,0 +1,191 @@ +@@ -0,0 +1,190 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -23925,7 +23921,6 @@ new file mode 100644 + +#include + -+#include "base/strings/string_piece_forward.h" +#include "base/task/thread_pool.h" +#include "base/trace_event/trace_event.h" +#include "net/http/http_request_headers.h" @@ -24099,7 +24094,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.h -@@ -0,0 +1,75 @@ +@@ -0,0 +1,74 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24125,7 +24120,6 @@ new file mode 100644 +#include "base/functional/callback.h" + +#include "base/files/file_path.h" -+#include "base/strings/string_piece_forward.h" +#include "base/timer/timer.h" +#include "components/adblock/core/subscription/ongoing_subscription_request.h" +#include "components/adblock/core/subscription/subscription_downloader.h" @@ -24179,7 +24173,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,266 @@ +@@ -0,0 +1,265 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24204,7 +24198,6 @@ new file mode 100644 +#include "base/notreached.h" +#include "base/ranges/algorithm.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_util.h" +#include "components/adblock/core/common/regex_filter_pattern.h" + @@ -24450,7 +24443,7 @@ diff --git a/components/adblock/core/subscription/pattern_matcher.h b/components new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/pattern_matcher.h -@@ -0,0 +1,34 @@ +@@ -0,0 +1,33 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24471,7 +24464,6 @@ new file mode 100644 +#ifndef COMPONENTS_ADBLOCK_CORE_SUBSCRIPTION_PATTERN_MATCHER_H_ +#define COMPONENTS_ADBLOCK_CORE_SUBSCRIPTION_PATTERN_MATCHER_H_ + -+#include "base/strings/string_piece_forward.h" +#include "url/gurl.h" + +namespace adblock { @@ -24676,7 +24668,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.h -@@ -0,0 +1,52 @@ +@@ -0,0 +1,50 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24701,8 +24693,6 @@ new file mode 100644 + +#include "components/adblock/core/subscription/preloaded_subscription_provider.h" + -+#include "base/strings/string_piece_forward.h" -+ +namespace adblock { + +class PreloadedSubscriptionProviderImpl final @@ -24733,7 +24723,7 @@ diff --git a/components/adblock/core/subscription/regex_matcher.cc b/components/ new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/regex_matcher.cc -@@ -0,0 +1,163 @@ +@@ -0,0 +1,162 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24756,7 +24746,6 @@ new file mode 100644 +#include "base/logging.h" +#include "base/memory/ptr_util.h" +#include "base/notreached.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_util.h" +#include "base/timer/elapsed_timer.h" +#include "components/adblock/core/common/adblock_utils.h" @@ -24901,7 +24890,7 @@ diff --git a/components/adblock/core/subscription/regex_matcher.h b/components/a new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/regex_matcher.h -@@ -0,0 +1,74 @@ +@@ -0,0 +1,73 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24923,7 +24912,6 @@ new file mode 100644 +#define COMPONENTS_ADBLOCK_CORE_SUBSCRIPTION_REGEX_MATCHER_H_ + +#include -+#include "base/strings/string_piece_forward.h" +#include "components/adblock/core/schema/filter_list_schema_generated.h" +#include "third_party/icu/source/i18n/unicode/regex.h" +#include "third_party/re2/src/re2/re2.h" @@ -25092,7 +25080,7 @@ diff --git a/components/adblock/core/subscription/subscription_collection.h b/co new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_collection.h -@@ -0,0 +1,99 @@ +@@ -0,0 +1,98 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -25119,7 +25107,6 @@ new file mode 100644 +#include "absl/types/optional.h" +#include "base/containers/span.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/values.h" +#include "components/adblock/core/common/content_type.h" +#include "components/adblock/core/common/header_filter_data.h" @@ -25999,7 +25986,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.h b/compon new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_config.h -@@ -0,0 +1,121 @@ +@@ -0,0 +1,120 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -26022,7 +26009,6 @@ new file mode 100644 + +#include + -+#include "base/strings/string_piece_forward.h" +#include "url/gurl.h" + +namespace adblock { @@ -26688,7 +26674,7 @@ diff --git a/components/adblock/core/subscription/subscription_persistent_metada new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc -@@ -0,0 +1,171 @@ +@@ -0,0 +1,170 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -26709,7 +26695,6 @@ new file mode 100644 +#include "components/adblock/core/subscription/subscription_persistent_metadata_impl.h" + +#include "base/json/values_util.h" -+#include "base/strings/string_piece_forward.h" +#include "base/time/time.h" +#include "base/values.h" +#include "components/adblock/core/common/adblock_prefs.h" @@ -28164,7 +28149,7 @@ diff --git a/components/adblock/core/subscription/test/filtering_configuration_m new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/filtering_configuration_maintainer_impl_test.cc -@@ -0,0 +1,908 @@ +@@ -0,0 +1,907 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -28194,7 +28179,6 @@ new file mode 100644 +#include "base/memory/raw_ptr.h" +#include "base/memory/scoped_refptr.h" +#include "base/ranges/algorithm.h" -+#include "base/strings/string_piece_forward.h" +#include "base/test/gmock_callback_support.h" +#include "base/test/gmock_move_support.h" +#include "base/test/mock_callback.h" @@ -30206,7 +30190,7 @@ diff --git a/components/adblock/core/subscription/test/ongoing_subscription_requ new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/ongoing_subscription_request_impl_test.cc -@@ -0,0 +1,337 @@ +@@ -0,0 +1,336 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30230,7 +30214,6 @@ new file mode 100644 + +#include "base/files/file_util.h" +#include "base/functional/callback_helpers.h" -+#include "base/strings/string_piece_forward.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" +#include "net/base/mock_network_change_notifier.h" @@ -30548,7 +30531,7 @@ diff --git a/components/adblock/core/subscription/test/pattern_matcher_perftest. new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/pattern_matcher_perftest.cc -@@ -0,0 +1,69 @@ +@@ -0,0 +1,68 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30573,7 +30556,6 @@ new file mode 100644 + +#include "base/ranges/algorithm.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_split.h" +#include "base/time/time.h" +#include "base/timer/elapsed_timer.h" @@ -30622,7 +30604,7 @@ diff --git a/components/adblock/core/subscription/test/pattern_matcher_test.cc b new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/pattern_matcher_test.cc -@@ -0,0 +1,351 @@ +@@ -0,0 +1,350 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30645,7 +30627,6 @@ new file mode 100644 +#include + +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace adblock { @@ -31132,7 +31113,7 @@ diff --git a/components/adblock/core/subscription/test/regex_matcher_perftest.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/regex_matcher_perftest.cc -@@ -0,0 +1,83 @@ +@@ -0,0 +1,82 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -31157,7 +31138,6 @@ new file mode 100644 + +#include "base/ranges/algorithm.h" +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_split.h" +#include "base/time/time.h" +#include "base/timer/elapsed_timer.h" @@ -31220,7 +31200,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_collection_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_collection_impl_test.cc -@@ -0,0 +1,1020 @@ +@@ -0,0 +1,1019 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -31244,7 +31224,6 @@ new file mode 100644 + +#include "absl/types/optional.h" +#include "base/memory/scoped_refptr.h" -+#include "base/strings/string_piece_forward.h" +#include "components/adblock/core/subscription/subscription.h" +#include "components/adblock/core/subscription/test/mock_installed_subscription.h" +#include "gmock/gmock-actions.h" @@ -32245,7 +32224,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_downloader_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_downloader_impl_test.cc -@@ -0,0 +1,578 @@ +@@ -0,0 +1,577 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -32271,7 +32250,6 @@ new file mode 100644 +#include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_split.h" +#include "base/test/bind.h" +#include "base/test/mock_callback.h" @@ -33046,7 +33024,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_persistent_s new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_persistent_storage_impl_test.cc -@@ -0,0 +1,347 @@ +@@ -0,0 +1,346 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -33081,7 +33059,6 @@ new file mode 100644 +#include "base/memory/raw_ptr.h" +#include "base/memory/scoped_refptr.h" +#include "base/path_service.h" -+#include "base/strings/string_piece_forward.h" +#include "base/test/bind.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" @@ -34129,7 +34106,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,68 @@ +@@ -0,0 +1,67 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34153,7 +34130,6 @@ new file mode 100644 +#include + +#include "base/ranges/algorithm.h" -+#include "base/strings/string_piece_forward.h" +#include "base/strings/string_util.h" +#include "components/adblock/core/common/keyword_extractor_utils.h" + @@ -34202,7 +34178,7 @@ diff --git a/components/adblock/core/subscription/url_keyword_extractor.h b/comp new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/url_keyword_extractor.h -@@ -0,0 +1,61 @@ +@@ -0,0 +1,60 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -34229,7 +34205,6 @@ new file mode 100644 +#include "absl/types/optional.h" + +#include "base/strings/string_piece.h" -+#include "base/strings/string_piece_forward.h" +#include "url/gurl.h" + +namespace adblock { @@ -34268,7 +34243,7 @@ diff --git a/components/adblock/core/test/activeping_telemetry_topic_provider_te new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/activeping_telemetry_topic_provider_test.cc -@@ -0,0 +1,328 @@ +@@ -0,0 +1,327 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34291,7 +34266,6 @@ new file mode 100644 +#include + +#include "base/json/json_reader.h" -+#include "base/strings/string_piece_forward.h" +#include "base/system/sys_info.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index 3f825230..5a0aed7f 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -7462,7 +7462,7 @@ new file mode 100644 +// You should have received a copy of the GNU General Public License +// along with eyeo Chromium SDK. If not, see . + -+import {getRequiredElement} from 'chrome://resources/js/util_ts.js'; ++import {getRequiredElement} from 'chrome://resources/js/util.js'; +import {AdblockInternalsPageHandler} from './adblock_internals.mojom-webui.js'; + +async function debugInfo(): Promise { diff --git a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch index 29f40a2a..bb25103e 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch @@ -3507,17 +3507,17 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro + // Adblock settings + (*s_allowlist)[adblock::common::prefs::kEnableAdblockLegacy] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[adblock::common::prefs::kEnableAcceptableAdsLegacy] = -+ settings_api::PrefType::PREF_TYPE_BOOLEAN; ++ settings_api::PrefType::kBoolean; + (*s_allowlist)[adblock::common::prefs::kAdblockSubscriptionsLegacy] = -+ settings_api::PrefType::PREF_TYPE_LIST; ++ settings_api::PrefType::kList; + (*s_allowlist)[adblock::common::prefs::kAdblockCustomSubscriptionsLegacy] = -+ settings_api::PrefType::PREF_TYPE_LIST; ++ settings_api::PrefType::kList; + (*s_allowlist)[adblock::common::prefs::kAdblockAllowedDomainsLegacy] = -+ settings_api::PrefType::PREF_TYPE_LIST; ++ settings_api::PrefType::kList; + (*s_allowlist)[adblock::common::prefs::kAdblockCustomFiltersLegacy] = -+ settings_api::PrefType::PREF_TYPE_LIST; ++ settings_api::PrefType::kList; + // Miscellaneous (*s_allowlist)[::embedder_support::kAlternateErrorPagesEnabled] = diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index df043de2..e5342654 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 60 +------------------ - 1 file changed, 3 insertions(+), 57 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 69 +------------------ + 1 file changed, 3 insertions(+), 66 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 @@ -36,7 +36,23 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Account seeding relies on GoogleAuthUtil.getAccountId to get GAIA ids, // so don't report any accounts if Google Play Services are out of date. return new Account[] {}; -@@ -127,31 +115,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -108,15 +96,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { + if (!isGooglePlayServicesAvailable()) { + throw new AccountManagerDelegateException("Can't use Google Play Services"); + } +- if (hasGetAccountsPermission()) { +- long startTime = SystemClock.elapsedRealtime(); +- Account[] accounts = +- mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); +- RecordHistogram.recordTimesHistogram( +- "Signin.AndroidGetAccountsTime_AccountManager", +- SystemClock.elapsedRealtime() - startTime); +- return accounts; +- } + // Don't report any accounts if we don't have permission. + // TODO(crbug.com/1502123): Throw an exception if permission was denied. + return new Account[] {}; +@@ -127,31 +106,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { throws AuthException { ThreadUtils.assertOnBackgroundThread(); assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); @@ -70,7 +86,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } @Override -@@ -188,24 +157,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -188,24 +148,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback callback) { @@ -95,7 +111,7 @@ 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 -@@ -240,12 +191,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -240,12 +182,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Nullable @Override public String getAccountGaiaId(String accountEmail) { diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 345bce0f..11a86c5b 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -4,9 +4,9 @@ Subject: kill Location, fall back to system License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - services/device/geolocation/BUILD.gn | 1 - - .../chromium/device/geolocation/LocationProviderFactory.java | 4 +++- - 2 files changed, 3 insertions(+), 2 deletions(-) + services/device/geolocation/BUILD.gn | 1 - + .../device/geolocation/LocationProviderFactory.java | 11 ++--------- + 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn @@ -22,7 +22,7 @@ diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java --- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java +++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java -@@ -26,11 +26,13 @@ public class LocationProviderFactory { +@@ -26,19 +26,12 @@ public class LocationProviderFactory { @CalledByNative public static void useGmsCoreLocationProvider() { @@ -32,10 +32,17 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge public static LocationProvider create() { if (sProviderImpl != null) return sProviderImpl; +- +- if (sUseGmsCoreLocationProvider +- && LocationProviderGmsCore.isGooglePlayServicesAvailable( +- ContextUtils.getApplicationContext())) { +- sProviderImpl = new LocationProviderGmsCore(ContextUtils.getApplicationContext()); +- } else { +- sProviderImpl = new LocationProviderAndroid(); +- } + sProviderImpl = new LocationProviderAndroid(); -+ return sProviderImpl; - - if (sUseGmsCoreLocationProvider - && LocationProviderGmsCore.isGooglePlayServicesAvailable( + return sProviderImpl; + } + } -- 2.25.1