diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index eef9170a..0e1c53ec 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -28,21 +28,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 7 +- .../ChromeContextMenuPopulator.java | 6 +- - .../CustomTabActivityLifecycleUmaTracker.java | 39 ----- + .../CustomTabActivityLifecycleUmaTracker.java | 39 ---- .../CustomTabAppMenuPropertiesDelegate.java | 4 + - .../CustomTabIntentDataProvider.java | 10 ++ + .../CustomTabIntentDataProvider.java | 10 + .../browser/download/DownloadUtils.java | 13 +- .../history/HistoryContentManager.java | 7 +- .../browser/history/HistoryManager.java | 27 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ .../native_page/NativePageFactory.java | 4 +- .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- - .../privacy/settings/IncognitoSettings.java | 162 ++++++++++++++++++ + .../privacy/settings/IncognitoSettings.java | 175 ++++++++++++++++++ .../settings/FragmentDependencyProvider.java | 4 + .../HistoricalTabModelObserver.java | 5 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- .../tab_restore/HistoricalTabSaverImpl.java | 17 +- - .../TabbedAppMenuPropertiesDelegate.java | 9 + + .../TabbedAppMenuPropertiesDelegate.java | 6 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + @@ -55,17 +55,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../remote_suggestions_service_factory.cc | 5 + .../bookmarks/android/bookmark_bridge.cc | 7 + .../host_content_settings_map_factory.cc | 22 ++- - chrome/browser/history/history_tab_helper.cc | 20 +++ + chrome/browser/history/history_tab_helper.cc | 20 ++ chrome/browser/history/history_tab_helper.h | 10 +- .../android/offline_page_bridge.cc | 11 +- - .../android/offline_page_model_factory.cc | 20 ++- + .../android/offline_page_model_factory.cc | 20 +- .../android/request_coordinator_factory.cc | 33 +++- .../offline_page_model_factory.h | 1 + .../offline_pages/recent_tab_helper.cc | 31 +++- .../browser/offline_pages/recent_tab_helper.h | 5 + .../request_coordinator_factory.h | 4 +- chrome/browser/prefs/browser_prefs.cc | 5 + - chrome/browser/profiles/profile_selections.cc | 10 ++ + chrome/browser/profiles/profile_selections.cc | 10 + chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 22 ++- @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 69 files changed, 791 insertions(+), 112 deletions(-) + 69 files changed, 800 insertions(+), 113 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -700,7 +700,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java -@@ -0,0 +1,162 @@ +@@ -0,0 +1,175 @@ +/* + This file is part of Bromite. + @@ -733,7 +733,10 @@ new file mode 100644 +import androidx.preference.PreferenceFragmentCompat; +import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; + ++import org.chromium.base.supplier.ObservableSupplier; ++import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.base.supplier.Supplier; ++ +import org.chromium.chrome.R; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.profiles.Profile; @@ -743,8 +746,11 @@ new file mode 100644 +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; ++import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; ++ +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.SettingsUtils; ++import org.chromium.components.browser_ui.settings.SettingsFragment; +import org.chromium.components.prefs.PrefService; +import org.chromium.components.user_prefs.UserPrefs; + @@ -752,8 +758,8 @@ new file mode 100644 + * Fragment to keep track of the all the always incognito related preferences. + */ +public class IncognitoSettings -+ extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener, -+ INeedSnackbarManager { ++ extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener, ++ INeedSnackbarManager { + private Supplier mSnackbarManagerSupplier; + private Snackbar mSnackbar; + @@ -762,16 +768,23 @@ new file mode 100644 + private static final String PREF_INCOGNITO_SAVE_SITE_SETTING = "incognito_save_site_setting"; + + private final PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); ++ ++ @Override ++ public ObservableSupplier getPageTitle() { ++ return mPageTitle; ++ } ++ ++ @Override ++ public @SettingsFragment.AnimationType int getAnimationType() { ++ return SettingsFragment.AnimationType.PROPERTY; ++ } + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -+ PrivacyPreferencesManagerImpl privacyPrefManager = -+ PrivacyPreferencesManagerImpl.getInstance(); ++ mPageTitle.set(getString(R.string.incognito_settings_title)); + SettingsUtils.addPreferencesFromResource(this, R.xml.incognito_preferences); -+ getActivity().setTitle(R.string.incognito_settings_title); -+ + setHasOptionsMenu(true); -+ + updatePreferences(); + } + @@ -1001,28 +1014,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ai.AiAssistantService; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; -@@ -186,6 +187,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - } - - private void populatePageModeMenu(MVCListAdapter.ModelList modelList) { -+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (always_incognito) { -+ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); -+ if (newTabOption != null) -+ newTabOption.setVisible(false); -+ } -+ - Tab currentTab = mActivityTabProvider.get(); - - GURL url = currentTab != null ? currentTab.getUrl() : GURL.emptyGURL(); -@@ -375,6 +383,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -219,7 +220,10 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } - Add exit menu item -+ Add always incognito item - } + // New Tab +- modelList.add(buildNewTabItem()); ++ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); ++ if (!always_incognito) { ++ modelList.add(buildNewTabItem()); ++ } - private Runnable buildUpdateStateChangedObserver() { + // New Incognito Tab + modelList.add(buildNewIncognitoTabItem()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 5bad0fd8..f3e4de17 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -16,16 +16,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/LaunchIntentDispatcher.java | 21 ++++++++ .../CustomTabIntentDataProvider.java | 4 +- .../customtabs/CustomTabsConnection.java | 1 + - .../IncognitoCustomTabIntentDataProvider.java | 14 ++++++ - .../privacy/settings/PrivacySettings.java | 50 +++++++++++++++++++ + .../IncognitoCustomTabIntentDataProvider.java | 14 +++++ + .../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++ .../flags/android/chrome_feature_list.cc | 2 +- .../browser/flags/ChromeFeatureList.java | 3 ++ .../chrome/browser/tab/TabAssociatedApp.java | 6 ++- - ...Add-custom-tab-intents-privacy-option.grdp | 25 ++++++++++ + ...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++ .../OriginVerifier.java | 5 ++ .../core/common/language_experiments.cc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 + - 13 files changed, 145 insertions(+), 3 deletions(-) + 13 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc @@ -179,7 +179,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -79,6 +79,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -10,6 +10,7 @@ import android.content.Context; + import android.content.Intent; + import android.content.SharedPreferences; + import android.graphics.drawable.Drawable; ++import android.os.Build; + import android.os.Bundle; + import android.text.SpannableString; + import android.text.style.ClickableSpan; +@@ -79,6 +80,15 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -195,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.base.shared_preferences.SharedPreferencesManager; -@@ -152,6 +161,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -152,6 +162,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -205,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -384,6 +396,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -384,6 +397,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -215,7 +223,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -404,6 +419,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -404,6 +420,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -247,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -436,6 +476,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -436,6 +477,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 15d2a394..dc11da1b 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -6,13 +6,25 @@ Corrected Exit functionality License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++ - .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++ - .../chrome/browser/init/ChromeLifetimeController.java | 2 ++ - .../tabbed_mode/TabbedAppMenuPropertiesDelegate.java | 2 ++ - .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++ - 5 files changed, 17 insertions(+) + chrome/android/java/res/values/ids.xml | 1 + + .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++ + .../org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++ + .../chrome/browser/init/ChromeLifetimeController.java | 2 ++ + .../tabbed_mode/TabbedAppMenuPropertiesDelegate.java | 7 +++++++ + .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++ + 6 files changed, 23 insertions(+) +diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml +--- a/chrome/android/java/res/values/ids.xml ++++ b/chrome/android/java/res/values/ids.xml +@@ -119,6 +119,7 @@ found in the LICENSE file. + + + ++ + + + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -79,12 +91,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -373,6 +373,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -373,6 +373,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } + -+ Add exit menu item ++ modelList.add(new MVCListAdapter.ListItem( ++ AppMenuHandler.AppMenuItemType.STANDARD, ++ buildModelForStandardMenuItem( ++ R.id.exit_id, ++ R.string.menu_exit, ++ shouldShowIconBeforeItem() ? R.drawable.ic_exit_to_app_white_24dp : 0))); } private Runnable buildUpdateStateChangedObserver() { diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 05e6a6a8..fb76237b 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -81,16 +81,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../permission_prompt_android.h | 3 +- .../android/permissions_android_strings.grd | 17 ++++ .../geolocation_permission_context_android.cc | 30 +++++-- - .../geolocation_permission_context_android.h | 11 ++- + .../geolocation_permission_context_android.h | 10 ++- .../embedded_permission_prompt_flow_model.cc | 2 +- - .../permissions/permission_context_base.cc | 51 ++++++++++-- - .../permissions/permission_context_base.h | 20 ++++- + .../permissions/permission_context_base.cc | 64 +++++++++++++-- + .../permissions/permission_context_base.h | 26 +++++- components/permissions/permission_prompt.h | 3 +- - components/permissions/permission_request.cc | 32 +++++++- + components/permissions/permission_request.cc | 34 +++++++- components/permissions/permission_request.h | 18 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 38 files changed, 486 insertions(+), 72 deletions(-) + 38 files changed, 506 insertions(+), 72 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -847,7 +847,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr bool is_final_decision) { DCHECK(is_final_decision); + NotifyPermissionSetWithLifetime(request_data, -+ std::move(callback), persist, content_setting, is_one_time, is_final_decision, ++ std::move(callback), persist, decision, is_final_decision, + content_settings::mojom::LifetimeMode::ALWAYS); +} @@ -855,8 +855,8 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, -+ ContentSetting content_setting, -+ bool is_one_time, bool is_final_decision, ++ PermissionDecision decision, ++ bool is_final_decision, + content_settings::mojom::LifetimeMode lifetime_option) { bool is_default_search = IsRequestingOriginDSE(request_data.requesting_origin); @@ -936,21 +936,20 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/contexts/geolocation_permission_context_android.h b/components/permissions/contexts/geolocation_permission_context_android.h --- a/components/permissions/contexts/geolocation_permission_context_android.h +++ b/components/permissions/contexts/geolocation_permission_context_android.h -@@ -92,6 +92,13 @@ class GeolocationPermissionContextAndroid +@@ -92,6 +92,12 @@ class GeolocationPermissionContextAndroid bool persist, PermissionDecision decision, bool is_final_decision) override; + void NotifyPermissionSetWithLifetime(const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, -+ ContentSetting content_setting, -+ bool is_one_time, ++ PermissionDecision decision, + bool is_final_decision, + content_settings::mojom::LifetimeMode lifetime_option) override; content::PermissionResult UpdatePermissionStatusWithDeviceStatus( content::WebContents* web_contents, content::PermissionResult result, -@@ -136,6 +143,7 @@ class GeolocationPermissionContextAndroid +@@ -136,6 +142,7 @@ class GeolocationPermissionContextAndroid const GURL& embedding_origin, bool persist, PermissionDecision decision, @@ -958,7 +957,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, -@@ -143,7 +151,8 @@ class GeolocationPermissionContextAndroid +@@ -143,7 +150,8 @@ class GeolocationPermissionContextAndroid const GURL& embedding_origin, BrowserPermissionCallback callback, bool persist, @@ -1028,13 +1027,12 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -655,6 +668,20 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -655,6 +668,30 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, PermissionDecision decision, bool is_final_decision) { -+ DCHECK(is_one_time == false); -+ NotifyPermissionSetWithLifetime(request_data, std::move(callback), -+ persist, content_setting, is_one_time, is_final_decision, ++ NotifyPermissionSetImpl(request_data, std::move(callback), ++ persist, decision, is_final_decision, /*use_lifetime_option*/ false, + content_settings::mojom::LifetimeMode::ALWAYS); +} + @@ -1042,44 +1040,58 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm + const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, -+ ContentSetting content_setting, -+ bool is_one_time, ++ PermissionDecision decision, + bool is_final_decision, ++ content_settings::mojom::LifetimeMode lifetime_option) { ++ NotifyPermissionSetImpl(request_data, std::move(callback), ++ persist, decision, is_final_decision, /*use_lifetime_option*/ true, ++ lifetime_option); ++} ++ ++void PermissionContextBase::NotifyPermissionSetImpl( ++ const PermissionRequestData& request_data, ++ BrowserPermissionCallback callback, ++ bool persist, ++ PermissionDecision decision, ++ bool is_final_decision, bool use_lifetime_option, + content_settings::mojom::LifetimeMode lifetime_option) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Note that rfh may be null, see crbug.com/426909787. -@@ -670,8 +697,8 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -670,8 +707,8 @@ void PermissionContextBase::NotifyPermissionSet( if (persist) { // Clone new value, because we need it again for the callback. - UpdateSetting(request_data, std::move(new_value), - decision == PermissionDecision::kAllowThisTime); -+ UpdateContentSetting(request_data, std::move(new_value), -+ decision == PermissionDecision::kAllowThisTime, lifetime_option); ++ UpdateSettingImpl(request_data, std::move(new_value), ++ decision == PermissionDecision::kAllowThisTime, use_lifetime_option, lifetime_option); } if (is_final_decision) { -@@ -708,6 +735,14 @@ void PermissionContextBase::UpdateSetting( +@@ -708,6 +745,17 @@ void PermissionContextBase::UpdateSetting( const PermissionRequestData& request_data, base::Value setting, bool is_one_time) { -+ UpdateContentSetting(request_data, setting, -+ is_one_time, content_settings::mojom::LifetimeMode::ALWAYS); ++ UpdateSettingImpl(request_data, std::move(setting), ++ is_one_time, ++ /*use_lifetime_option*/ false, ++ content_settings::mojom::LifetimeMode::ALWAYS); +} + -+void PermissionContextBase::UpdateSetting(const PermissionRequestData& request_data, -+ base::Value setting, -+ bool is_one_time, -+ content_settings::mojom::LifetimeMode lifetime_option) { ++void PermissionContextBase::UpdateSettingImpl(const PermissionRequestData& request_data, ++ base::Value setting, ++ bool is_one_time, ++ bool use_lifetime_option, ++ content_settings::mojom::LifetimeMode lifetime_option) { DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -717,6 +752,8 @@ void PermissionContextBase::UpdateSetting( +@@ -717,6 +765,8 @@ void PermissionContextBase::UpdateSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); -+ if (is_one_time) ++ if (use_lifetime_option) + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); // The Permissions module in Safety check will revoke permissions after @@ -1087,32 +1099,38 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -192,6 +192,13 @@ class PermissionContextBase : public content_settings::Observer { +@@ -192,6 +192,18 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored setting if persist is set, updates tab indicators // and runs the callback to finish the request. ++ void NotifyPermissionSetImpl(const PermissionRequestData& request_data, ++ BrowserPermissionCallback callback, ++ bool persist, ++ PermissionDecision decision, ++ bool is_final_decision, bool use_lifetime_option, ++ content_settings::mojom::LifetimeMode lifetime_option); + virtual void NotifyPermissionSetWithLifetime(const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, -+ ContentSetting content_setting, -+ bool is_one_time, ++ PermissionDecision decision, + bool is_final_decision, + content_settings::mojom::LifetimeMode lifetime_option); virtual void NotifyPermissionSet(const PermissionRequestData& request_data, BrowserPermissionCallback callback, bool persist, -@@ -209,6 +216,10 @@ class PermissionContextBase : public content_settings::Observer { +@@ -209,6 +221,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission state. Virtual since the permission might be // stored with different restrictions (for example for desktop notifications). -+ void UpdateSetting(const PermissionRequestData& request_data, -+ base::Value setting, -+ bool is_one_time, -+ content_settings::mojom::LifetimeMode lifetime_option); ++ void UpdateSettingImpl(const PermissionRequestData& request_data, ++ base::Value setting, ++ bool is_one_time, ++ bool use_lifetime_option, ++ content_settings::mojom::LifetimeMode lifetime_option); virtual void UpdateSetting(const PermissionRequestData& request_data, base::Value setting, bool is_one_time); -@@ -238,6 +249,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -238,6 +255,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure request_finished_callback) const; @@ -1125,7 +1143,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; -@@ -271,7 +288,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -271,7 +294,8 @@ class PermissionContextBase : public content_settings::Observer { // allows/blocks/dismisses a permission prompt. void PermissionDecided(PermissionDecision decision, bool is_final_decision, @@ -1169,7 +1187,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { std::move(request_finished_callback_).Run(); } -@@ -419,20 +429,38 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -419,20 +429,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1178,7 +1196,9 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + content_settings::mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, *data_, lifetime_option); ++ .Run(is_one_time ? PermissionDecision::kAllowThisTime ++ : PermissionDecision::kAllow, ++ /*is_final_decision=*/true, *data_, lifetime_option); + return; + } std::move(permission_decided_callback_) @@ -1192,7 +1212,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + content_settings::mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, *data_, lifetime_option); ++ .Run(PermissionDecision::kDeny, /*is_final_decision=*/true, *data_, lifetime_option); + return; + } std::move(permission_decided_callback_) @@ -1203,7 +1223,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio void PermissionRequest::Cancelled(bool is_final_decision) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision, *data_, ++ .Run(PermissionDecision::kNone, is_final_decision, *data_, + content_settings::mojom::LifetimeMode::ALWAYS); + return; + } @@ -1218,7 +1238,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission const PermissionRequestData& /*request_data*/)>; + using PermissionDecidedCallbackWithLifetime = base::RepeatingCallback; 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 a1d53a2b..3630cba2 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -4,8 +4,9 @@ Subject: Add menu item to bookmark all tabs License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + chrome/android/java/res/values/ids.xml | 1 + .../chrome/browser/ChromeTabbedActivity.java | 43 +++++++++++++++++++ - .../TabbedAppMenuPropertiesDelegate.java | 1 + + .../TabbedAppMenuPropertiesDelegate.java | 15 +++++++ .../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++++++++ .../bookmarks/android/bookmark_bridge.h | 8 ++++ .../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++ @@ -30,8 +31,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/model_loader.cc | 9 +++- ...ookmark_model_merger_comparison_metrics.cc | 4 ++ .../bookmark_specifics_conversions.cc | 1 + - 26 files changed, 244 insertions(+), 14 deletions(-) + 27 files changed, 259 insertions(+), 14 deletions(-) +diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml +--- a/chrome/android/java/res/values/ids.xml ++++ b/chrome/android/java/res/values/ids.xml +@@ -177,6 +177,7 @@ found in the LICENSE file. + + + ++ + + + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -116,14 +128,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -385,6 +385,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - Add exit menu item - Add always incognito item - Add view source item -+ Add bookmark all item - } +@@ -264,6 +264,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + // Bookmarks + modelList.add(buildBookmarksItem()); - private Runnable buildUpdateStateChangedObserver() { ++ // Add bookmark all item ++ modelList.add(new MVCListAdapter.ListItem( ++ AppMenuHandler.AppMenuItemType.STANDARD, ++ buildModelForStandardMenuItem( ++ R.id.bookmark_all_tabs_menu_id, ++ R.string.menu_bookmark_all_tabs, ++ shouldShowIconBeforeItem() ? R.drawable.ic_folder_blue_24dp : 0))); ++ + // Recent Tabs + if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); + +@@ -423,6 +431,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + } + modelList.add(buildCloseAllTabsItem()); + if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); ++ // Add bookmark all item ++ modelList.add(new MVCListAdapter.ListItem( ++ AppMenuHandler.AppMenuItemType.STANDARD, ++ buildModelForStandardMenuItem( ++ R.id.bookmark_all_tabs_menu_id, ++ R.string.menu_bookmark_all_tabs, ++ shouldShowIconBeforeItem() ? R.drawable.ic_folder_blue_24dp : 0))); + modelList.add(buildSelectTabsItem()); + if (shouldShowQuickDeleteItem()) modelList.add(buildQuickDeleteItem()); + modelList.add(buildSettingsItem()); diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 9eef96ab..db735818 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -4,13 +4,26 @@ Subject: Add menu item to view source License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../chrome/browser/ChromeTabbedActivity.java | 2 ++ - .../chrome/browser/app/ChromeActivity.java | 5 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ - .../TabbedAppMenuPropertiesDelegate.java | 1 + - .../android/strings/android_chrome_strings.grd | 4 ++++ - 5 files changed, 29 insertions(+) + chrome/android/java/res/values/ids.xml | 1 + + .../chrome/browser/ChromeTabbedActivity.java | 2 ++ + .../chrome/browser/app/ChromeActivity.java | 5 ++++ + .../AppMenuPropertiesDelegateImpl.java | 24 +++++++++++++++++++ + .../CustomTabAppMenuPropertiesDelegate.java | 3 +++ + .../TabbedAppMenuPropertiesDelegate.java | 3 +++ + .../strings/android_chrome_strings.grd | 4 ++++ + 7 files changed, 42 insertions(+) +diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml +--- a/chrome/android/java/res/values/ids.xml ++++ b/chrome/android/java/res/values/ids.xml +@@ -129,6 +129,7 @@ found in the LICENSE file. + + + ++ + + + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -41,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -985,6 +985,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -985,6 +985,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return false; } @@ -51,31 +64,53 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App + * @param menu {@link Menu} for view source. + * @param currentTab Current tab being displayed. + */ -+ protected void updateViewSourceMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id); ++ protected void buildAddViewSourceItem( ++ MVCListAdapter.ModelList modelList, ++ @Nullable Tab currentTab) { + boolean visible = false; + if (currentTab != null) { -+ String url = currentTab.getUrl().getSpec(); -+ visible = !url.isEmpty() && !url.startsWith("view-source:"); ++ String url = currentTab.getUrl().getSpec(); ++ visible = !url.isEmpty() && !url.startsWith("view-source:"); ++ } ++ if (visible) { ++ modelList.add(new MVCListAdapter.ListItem( ++ AppMenuHandler.AppMenuItemType.STANDARD, ++ buildModelForStandardMenuItem( ++ R.id.view_source_id, ++ R.string.view_source, ++ shouldShowIconBeforeItem() ? R.drawable.ic_drive_document_24dp : 0))); + } -+ viewSourceMenuItem.setVisible(visible); + } + /** * Updates the bookmark item's visibility. * +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +@@ -367,6 +367,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat + modelList.add(buildAddToHomescreenListItem(currentTab, false)); + } + ++ // Add view source item ++ buildAddViewSourceItem(modelList, currentTab); ++ + // --- Request Desktop Site --- + if (requestDesktopSiteVisible) { + MVCListAdapter.ListItem rdsListItem = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -384,6 +384,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -328,6 +328,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); + } - Add exit menu item - Add always incognito item -+ Add view source item - } - - private Runnable buildUpdateStateChangedObserver() { ++ // Add view source item ++ buildAddViewSourceItem(modelList, currentTab); ++ + // RDS + MVCListAdapter.ListItem rdsListItem = + maybeBuildRequestDesktopSiteListItem( diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 023125c4..d3e64200 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -27,6 +27,7 @@ import org.chromium.base.ContextUtils; +@@ -28,6 +28,7 @@ import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.build.annotations.Nullable; -@@ -97,12 +98,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -98,12 +99,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -214,6 +229,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -215,6 +230,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -440,6 +470,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -441,6 +471,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -486,6 +517,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -487,6 +518,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -536,6 +574,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -537,6 +575,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6312,6 +6312,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6315,6 +6315,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index f217af20..fc48cd1a 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -36,12 +36,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../safety_hub/SafetyHubFetchService.java | 5 - .../strings/android_chrome_strings.grd | 23 +- .../ui/lens/lens_overlay_query_controller.cc | 1 + - .../endpoint_fetcher/endpoint_fetcher.cc | 124 ++++++-- + .../endpoint_fetcher/endpoint_fetcher.cc | 123 ++++++-- .../endpoint_fetcher/endpoint_fetcher.h | 25 ++ components/manta/base_provider.cc | 1 + + .../composebox/composebox_query_controller.cc | 2 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 33 files changed, 1235 insertions(+), 92 deletions(-) + 34 files changed, 1235 insertions(+), 93 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -1767,7 +1768,15 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } return HttpMethod::kUndefined; } -@@ -150,9 +159,11 @@ EndpointFetcher::EndpointFetcher( +@@ -110,6 +119,7 @@ EndpointFetcher::EndpointFetcher( + RequestParams request_params) + : url_loader_factory_(url_loader_factory), + identity_manager_(identity_manager), ++ intercept_redirect_(false), + request_params_(std::move(request_params)) { + if (request_params_.auth_type() == OAUTH) { + DCHECK(identity_manager_) +@@ -150,9 +160,11 @@ EndpointFetcher::EndpointFetcher( const std::vector& headers, const std::vector& cors_exempt_headers, version_info::Channel channel, @@ -1779,7 +1788,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi request_params_(EndpointFetcher::RequestParams::Builder(request_params) .SetAuthType(CHROME_API_KEY) .SetUrl(url) -@@ -171,6 +182,7 @@ EndpointFetcher::EndpointFetcher( +@@ -171,6 +183,7 @@ EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) : url_loader_factory_(url_loader_factory), identity_manager_(nullptr), @@ -1787,7 +1796,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi request_params_(EndpointFetcher::RequestParams::Builder(HttpMethod::kGet, annotation_tag) .SetAuthType(NO_AUTH) -@@ -193,6 +205,7 @@ EndpointFetcher::EndpointFetcher( +@@ -193,6 +206,7 @@ EndpointFetcher::EndpointFetcher( signin::ConsentLevel consent_level) : url_loader_factory_(url_loader_factory), identity_manager_(identity_manager), @@ -1795,7 +1804,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi request_params_( EndpointFetcher::RequestParams::Builder(GetHttpMethod(http_method), annotation_tag) -@@ -212,6 +225,7 @@ EndpointFetcher::EndpointFetcher( +@@ -212,6 +226,7 @@ EndpointFetcher::EndpointFetcher( EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) : identity_manager_(nullptr), @@ -1803,7 +1812,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi request_params_( EndpointFetcher::RequestParams::Builder(HttpMethod::kUndefined, annotation_tag) -@@ -219,6 +233,27 @@ EndpointFetcher::EndpointFetcher( +@@ -219,6 +234,25 @@ EndpointFetcher::EndpointFetcher( .SetSanitizeResponse(true) .Build()) {} @@ -1818,8 +1827,6 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi + : url_loader_factory_(url_loader_factory), + identity_manager_(nullptr), + intercept_redirect_(intercept_redirect), -+ consent_level_(std::nullopt), -+ sanitize_response_(false), + request_params_( + EndpointFetcher::RequestParams::Builder(GetHttpMethod(http_method), + annotation_tag) @@ -1831,7 +1838,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi EndpointFetcher::~EndpointFetcher() = default; void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) { -@@ -301,13 +336,10 @@ void EndpointFetcher::PerformHttpRequest( +@@ -301,13 +335,10 @@ void EndpointFetcher::PerformHttpRequest( auto resource_request = std::make_unique(); resource_request->method = GetHttpMethodString(request_params_.http_method()); resource_request->url = request_params_.url(); @@ -1848,7 +1855,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi // Add Content-Type header if post data is present. if (request_params_.http_method() == HttpMethod::kPost && request_params_.post_data()) { -@@ -346,8 +378,23 @@ void EndpointFetcher::PerformHttpRequest( +@@ -346,8 +377,23 @@ void EndpointFetcher::PerformHttpRequest( break; } @@ -1872,7 +1879,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (request_params_.http_method() == HttpMethod::kPost && request_params_.post_data()) { -@@ -361,9 +408,18 @@ void EndpointFetcher::PerformHttpRequest( +@@ -361,9 +407,18 @@ void EndpointFetcher::PerformHttpRequest( simple_url_loader_->SetRetryOptions(GetMaxRetries(), network::SimpleURLLoader::RETRY_ON_5XX); @@ -1894,7 +1901,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi network::SimpleURLLoader::BodyAsStringCallbackDeprecated body_as_string_callback = base::BindOnce( &EndpointFetcher::OnResponseFetched, weak_ptr_factory_.GetWeakPtr(), -@@ -453,21 +509,6 @@ void EndpointFetcher::OnSanitizationResult( +@@ -453,21 +508,6 @@ void EndpointFetcher::OnSanitizationResult( std::move(endpoint_fetcher_callback).Run(std::move(response)); } @@ -1916,7 +1923,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi int EndpointFetcher::GetMaxRetries() const { if (!request_params_.max_retries.has_value()) { return kNumRetries; -@@ -493,4 +534,39 @@ std::string EndpointFetcher::GetUrlForTesting() { +@@ -493,4 +533,39 @@ std::string EndpointFetcher::GetUrlForTesting() { return request_params_.url().spec(); } @@ -2056,6 +2063,18 @@ diff --git a/components/manta/base_provider.cc b/components/manta/base_provider. EndpointFetcher::RequestParams::Builder(kHttpMethod, annotation_tag) .Build()); } +diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc +--- a/components/omnibox/composebox/composebox_query_controller.cc ++++ b/components/omnibox/composebox/composebox_query_controller.cc +@@ -312,7 +312,7 @@ ComposeboxQueryController::CreateEndpointFetcher( + /*post_data=*/std::move(request_string), + /*headers=*/request_headers, + /*cors_exempt_headers=*/cors_exempt_headers, +- /*channel=*/channel_, ++ /*channel=*/channel_, kTrafficAnnotationTag, + /*request_params=*/ + EndpointFetcher::RequestParams::Builder(http_method, + kTrafficAnnotationTag) diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 59e44bb3..ba0c6abe 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -21,7 +21,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/adblock_preferences.xml | 25 ++ .../android/java/res/xml/main_preferences.xml | 5 + .../browser/settings/AdBlockEditor.java | 91 ++++++ - .../browser/settings/AdBlockPreferences.java | 58 ++++ + .../browser/settings/AdBlockPreferences.java | 74 +++++ + .../browser/settings/SettingsActivity.java | 3 + chrome/app/generated_resources.grd | 10 + chrome/browser/after_startup_task_utils.cc | 4 + chrome/browser/browser_process.h | 6 + @@ -50,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/subresource_filter_features.cc | 118 +------- .../core/browser/verified_ruleset_dealer.cc | 4 + .../core/common/indexed_ruleset.cc | 5 +- - 38 files changed, 1268 insertions(+), 129 deletions(-) + 39 files changed, 1287 insertions(+), 129 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -363,7 +364,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBloc new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java -@@ -0,0 +1,58 @@ +@@ -0,0 +1,74 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -373,30 +374,46 @@ new file mode 100644 +import android.os.Bundle; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; -+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; ++ ++import org.chromium.base.supplier.ObservableSupplier; ++import org.chromium.base.supplier.ObservableSupplierImpl; ++import org.chromium.base.supplier.Supplier; + +import org.chromium.content_public.browser.BrowserContextHandle; ++import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.browser_ui.settings.SettingsUtils; -+import org.chromium.chrome.browser.flags.AdBlockNativeGateway; -+import androidx.annotation.VisibleForTesting; ++import org.chromium.components.browser_ui.settings.SettingsFragment; ++ +import org.chromium.chrome.R; ++import org.chromium.chrome.browser.flags.AdBlockNativeGateway; ++import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; + +/** + * Fragment that allows the user to configure AdBlock related preferences. + */ -+public class AdBlockPreferences extends BaseSiteSettingsFragment { -+ @VisibleForTesting ++public class AdBlockPreferences extends ChromeBaseSettingsFragment { + public static final String PREF_ADBLOCK_SWITCH = "adblock_switch"; + private static final String PREF_ADBLOCK_EDIT = "adblock_edit"; + + private Preference mAdBlockEdit; ++ private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); ++ ++ @Override ++ public ObservableSupplier getPageTitle() { ++ return mPageTitle; ++ } ++ ++ @Override ++ public @SettingsFragment.AnimationType int getAnimationType() { ++ return SettingsFragment.AnimationType.PROPERTY; ++ } + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -+ getActivity().setTitle(R.string.options_adblock_title); ++ mPageTitle.set(getString(R.string.options_adblock_title)); + SettingsUtils.addPreferencesFromResource(this, R.xml.adblock_preferences); + + ChromeSwitchPreference mAdBlockSwitch = @@ -422,6 +439,26 @@ new file mode 100644 + updateCurrentAdBlockUrl(); + } +} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +@@ -72,6 +72,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; + import java.lang.ref.WeakReference; + import java.util.Locale; + ++import org.chromium.chrome.browser.settings.AdBlockEditor; ++ + /** + * The Chrome settings activity. + * +@@ -683,6 +685,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { + return; + } ++ if (fragment instanceof AdBlockEditor) return; + + String className = fragment.getClass().getSimpleName(); + RecordHistogram.recordSparseHistogram( diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 068746d0..bbf3dfd7 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -146,9 +146,9 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { -@@ -793,6 +794,11 @@ DeveloperPrivateNotifyDragInstallInProgressFunction::Run() { +@@ -502,6 +503,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { + ->MarkNoticeAsAcknowledgedGlobally(); } - #endif // !BUILDFLAG(IS_ANDROID) + if (update.is_extension_autoupdate_enabled.has_value()) { + DeveloperPrivateAPI::SetExtensionAutoupdateEnabled( @@ -1201,7 +1201,7 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -255,4 +255,18 @@ BASE_FEATURE(kAvoidCloneArgsOnExtensionFunctionDispatch, +@@ -256,4 +256,18 @@ BASE_FEATURE(kAvoidCloneArgsOnExtensionFunctionDispatch, "AvoidCloneArgsOnExtensionFunctionDispatch", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index caae961a..a3504137 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -9,12 +9,12 @@ No change in doh connections. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../browser/network_session_configurator.cc | 11 ++++------- + .../browser/network_session_configurator.cc | 12 ++++-------- .../about_flags_cc/Close-Sessions-On-Ip-Change.inc | 14 ++++++++++++++ .../features_cc/Close-Sessions-On-Ip-Change.inc | 5 +++++ .../features_h/Close-Sessions-On-Ip-Change.inc | 3 +++ net/base/features.cc | 2 +- - 5 files changed, 27 insertions(+), 8 deletions(-) + 5 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Close-Sessions-On-Ip-Change.inc create mode 100644 cromite_flags/net/base/features_cc/Close-Sessions-On-Ip-Change.inc create mode 100644 cromite_flags/net/base/features_h/Close-Sessions-On-Ip-Change.inc @@ -34,7 +34,7 @@ diff --git a/components/network_session_configurator/browser/network_session_con } bool ShouldQuicGoAwaySessionsOnIpChange( -@@ -304,10 +303,8 @@ bool ShouldQuicEstimateInitialRtt( +@@ -304,11 +303,8 @@ bool ShouldQuicEstimateInitialRtt( bool ShouldQuicMigrateSessionsOnNetworkChangeV2( const VariationParameters& quic_trial_params) { @@ -42,11 +42,12 @@ diff --git a/components/network_session_configurator/browser/network_session_con - quic_trial_params, "migrate_sessions_on_network_change_v2", - base::FeatureList::IsEnabled( - net::features::kMigrateSessionsOnNetworkChangeV2), +- "true"); + return base::FeatureList::IsEnabled( -+ net::features::kMigrateSessionsOnNetworkChangeV2, - "true"); ++ net::features::kMigrateSessionsOnNetworkChangeV2); } + bool ShouldQuicUseNewAlpsCodepoint( diff --git a/cromite_flags/chrome/browser/about_flags_cc/Close-Sessions-On-Ip-Change.inc b/cromite_flags/chrome/browser/about_flags_cc/Close-Sessions-On-Ip-Change.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 8984b634..48f572ad 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -13,6 +13,7 @@ Require: bromite-build-utils.patch --- .../ChromeSiteSettingsDelegate.java | 17 +- ...page_specific_content_settings_delegate.cc | 2 +- + chrome/browser/resources/settings/BUILD.gn | 2 +- .../settings/privacy_page/privacy_page.html | 1 + .../settings/privacy_page/privacy_page.ts | 77 +++- chrome/browser/resources/settings/route.ts | 2 + @@ -22,7 +23,7 @@ Require: bromite-build-utils.patch .../settings/site_settings/site_details.ts | 33 +- .../site_details_permission.html | 8 +- .../site_settings/site_details_permission.ts | 44 ++ - .../site_settings/site_settings_mixin.ts | 18 + + .../site_settings/site_settings_mixin.ts | 20 +- .../site_settings/site_settings_util.ts | 55 +++ .../site_settings_page/site_settings_page.ts | 30 +- chrome/browser/ui/BUILD.gn | 2 + @@ -84,7 +85,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1963 insertions(+), 110 deletions(-) + 74 files changed, 1965 insertions(+), 112 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -148,6 +149,25 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele rules->mixed_content_rules.push_back(ContentSettingPatternSource( ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(), content_settings::ContentSettingToValue(CONTENT_SETTING_BLOCK), +diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn +--- a/chrome/browser/resources/settings/BUILD.gn ++++ b/chrome/browser/resources/settings/BUILD.gn +@@ -295,6 +295,7 @@ build_webui("build") { + "privacy_sandbox/privacy_sandbox_browser_proxy.ts", + "relaunch_mixin.ts", + "reset_page/reset_browser_proxy.ts", ++ "site_settings/site_settings_util.ts", + "route.ts", + "router.ts", + "safety_hub/safety_hub_browser_proxy.ts", +@@ -306,7 +307,6 @@ build_webui("build") { + "site_settings/constants.ts", + "site_settings/site_settings_mixin.ts", + "site_settings/site_settings_prefs_browser_proxy.ts", +- "site_settings/site_settings_util.ts", + "site_settings/website_usage_browser_proxy.ts", + "time.ts", + "tooltip_mixin.ts", diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html @@ -261,7 +281,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc import {pageVisibility} from './page_visibility.js'; import type {SettingsRoutes} from './router.js'; import {Route, Router} from './router.js'; -+import {setupContentSettingsRoutes} from './site_settings_page/site_settings_page_util.js' ++import {setupContentSettingsRoutes} from './site_settings/site_settings_util.js' /** * Add all of the child routes that originate from the privacy route, @@ -540,8 +560,12 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts --- a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts +++ b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts -@@ -14,6 +14,7 @@ import type {ContentSettingsTypes} from './constants.js'; - import {SiteSettingSource} from './constants.js'; +@@ -11,9 +11,10 @@ import type { PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/poly + import {dedupingMixin} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + + import type {ContentSettingsTypes} from './constants.js'; +-import {SiteSettingSource} from './constants.js'; ++import {SiteSettingSource, ContentSetting} from './constants.js'; import type {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy} from './site_settings_prefs_browser_proxy.js'; import {SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js'; +import {loadTimeData} from '../i18n_setup.js'; diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 60bf3e02..ddfc9941 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -247,7 +247,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -192,7 +192,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -193,7 +193,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -256,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference incognitoTrackingProtectionsPreference = findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS); -@@ -288,7 +288,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -289,7 +289,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 5a6a012b..91b5a604 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -21,7 +21,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../search_prefetch_url_loader_interceptor.cc | 1 + .../chrome_browser_main_extra_parts_profiles.cc | 1 - chrome/browser/safe_browsing/BUILD.gn | 1 - - ...fication_content_detection_service_factory.cc | 5 +++++ + ...fication_content_detection_service_factory.cc | 6 ++++++ + .../ui/autofill/chrome_autofill_client.cc | 15 --------------- chrome/browser/ui/tab_helpers.cc | 1 - .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- .../read_anything/read_aloud_app_model.h | 9 ++++++++- @@ -37,12 +38,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../delivery/prediction_model_fetcher_impl.cc | 1 + .../core/hints/hints_fetcher.cc | 1 + .../core/hints/hints_manager.cc | 1 + - .../core/optimization_guide_features.cc | 15 +++++++++------ + .../core/optimization_guide_features.cc | 14 ++++++++------ components/optimization_guide/features.gni | 3 +-- .../core/page_content_annotations_features.cc | 4 ++++ .../page_content_annotations_model_manager.cc | 1 + .../notification_content_detection/BUILD.gn | 7 +++++++ - components/safe_browsing/core/common/features.cc | 2 ++ .../service_worker_main_resource_loader.cc | 1 + .../Disable-all-predictors-code.inc | 2 ++ .../Disable-all-predictors-code.inc | 1 + @@ -51,11 +51,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../features_cc/Disable-all-predictors-code.inc | 1 + .../features_cc/Disable-all-predictors-code.inc | 1 + .../features_cc/Disable-all-predictors-code.inc | 2 ++ + services/webnn/BUILD.gn | 2 +- services/webnn/features.gni | 2 +- + services/webnn/webnn_context_provider_impl.cc | 11 ----------- .../core/html/parser/html_document_parser.cc | 1 + .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 50 files changed, 121 insertions(+), 49 deletions(-) + 52 files changed, 120 insertions(+), 76 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -329,7 +331,15 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific #include "content/public/browser/browser_context.h" namespace safe_browsing { -@@ -81,6 +82,7 @@ NotificationContentDetectionServiceFactory:: +@@ -50,6 +51,7 @@ NotificationContentDetectionServiceFactory:: + std::unique_ptr NotificationContentDetectionServiceFactory:: + BuildServiceInstanceForBrowserContext( + content::BrowserContext* context) const { ++ if ((true)) return nullptr; + auto* opt_guide = OptimizationGuideKeyedServiceFactory::GetForProfile( + Profile::FromBrowserContext(context)); + if (!opt_guide) { +@@ -81,6 +83,7 @@ NotificationContentDetectionServiceFactory:: content::BrowserContext* context) const { CHECK(opt_guide); CHECK(context); @@ -337,7 +347,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific auto database_manager = g_browser_process->safe_browsing_service()->database_manager(); scoped_refptr background_task_runner = -@@ -88,6 +90,9 @@ NotificationContentDetectionServiceFactory:: +@@ -88,6 +91,9 @@ NotificationContentDetectionServiceFactory:: {base::MayBlock(), base::TaskPriority::BEST_EFFORT}); return std::make_unique( opt_guide, background_task_runner, database_manager, context); @@ -347,6 +357,40 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific } } // namespace safe_browsing +diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc +--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc ++++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc +@@ -504,11 +504,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { + } + + AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { +-#if !BUILDFLAG(IS_ANDROID) +- return &autofill_ai_manager_; +-#else + return nullptr; +-#endif + } + + AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { +@@ -1179,18 +1175,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( + + optimization_guide::ModelQualityLogsUploaderService* + ChromeAutofillClient::GetMqlsUploadService() { +-#if !BUILDFLAG(IS_ANDROID) +- Profile* profile = +- Profile::FromBrowserContext(web_contents()->GetBrowserContext()); +- OptimizationGuideKeyedService* optimization_guide_keyed_service = +- OptimizationGuideKeyedServiceFactory::GetForProfile(profile); +- if (!optimization_guide_keyed_service) { +- return nullptr; +- } +- return optimization_guide_keyed_service->GetModelQualityLogsUploaderService(); +-#else + return nullptr; +-#endif + } + + void ChromeAutofillClient::ShowEntitySaveOrUpdateBubble( diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc @@ -785,13 +829,12 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -926,5 +921,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { +@@ -926,5 +921,12 @@ bool IsPrivacyGuideAiSettingsEnabled() { return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } +SET_CROMITE_FEATURE_DISABLED(kOptimizationHints); +SET_CROMITE_FEATURE_DISABLED(kRemoteOptimizationGuideFetching); -+SET_CROMITE_FEATURE_DISABLED(kRemoteOptimizationGuideFetchingAnonymousDataConsent); +SET_CROMITE_FEATURE_DISABLED(kOptimizationTargetPrediction); +SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideModelDownloading); +SET_CROMITE_FEATURE_DISABLED(kPushNotifications); @@ -852,18 +895,6 @@ diff --git a/components/safe_browsing/content/browser/notification_content_detec source_set("test_utils") { testonly = true sources = [ -diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc ---- a/components/safe_browsing/core/common/features.cc -+++ b/components/safe_browsing/core/common/features.cc -@@ -255,6 +255,8 @@ constexpr base::FeatureParam - /*default_value=*/""}; - #endif - -+SET_CROMITE_FEATURE_DISABLED(kOnDeviceNotificationContentDetectionModel); -+ - BASE_FEATURE(kNotificationTelemetry, - "NotificationTelemetry", - base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc --- a/content/browser/service_worker/service_worker_main_resource_loader.cc +++ b/content/browser/service_worker/service_worker_main_resource_loader.cc @@ -921,6 +952,18 @@ new file mode 100644 @@ -0,0 +1,2 @@ +SET_CROMITE_FEATURE_DISABLED(kNavigationPredictor); +SET_CROMITE_FEATURE_DISABLED(kPreloadingHeuristicsMLModel); +diff --git a/services/webnn/BUILD.gn b/services/webnn/BUILD.gn +--- a/services/webnn/BUILD.gn ++++ b/services/webnn/BUILD.gn +@@ -167,7 +167,7 @@ component("webnn_service") { + } + } + +- if (is_win) { ++ if (is_win && webnn_use_tflite) { + sources += [ + "ort/buffer_content_ort.cc", + "ort/buffer_content_ort.h", diff --git a/services/webnn/features.gni b/services/webnn/features.gni --- a/services/webnn/features.gni +++ b/services/webnn/features.gni @@ -933,6 +976,27 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni # Enable the GPU delegate provided by the Optimization Guide library. webnn_use_chrome_ml_api = enable_ml_internal +diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webnn_context_provider_impl.cc +--- a/services/webnn/webnn_context_provider_impl.cc ++++ b/services/webnn/webnn_context_provider_impl.cc +@@ -211,17 +211,6 @@ void WebNNContextProviderImpl::CreateWebNNContext( + base::expected, mojom::ErrorPtr> + context_creation_results; + +- if (base::FeatureList::IsEnabled(mojom::features::kWebNNOnnxRuntime)) { +- context_creation_results = ort::CreateContextFromOptions( +- std::move(options), std::move(receiver), this); +- if (!context_creation_results.has_value()) { +- std::move(callback).Run(mojom::CreateContextResult::NewError( +- std::move(context_creation_results.error()))); +- return; +- } +- context_impl = std::move(context_creation_results.value()); +- } +- + if (!context_impl && dml::ShouldCreateDmlContext(*options)) { + context_creation_results = dml::CreateContextFromOptions( + std::move(options), gpu_feature_info_, gpu_info_, diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc +++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index 0f4e7dc7..7a28c6b8 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../firstrun/VariationsSeedFetcher.java | 36 +++---------------- components/variations/net/BUILD.gn | 2 -- .../variations/net/variations_http_headers.cc | 2 ++ - .../variations_field_trial_creator_base.cc | 6 ++-- + .../variations_field_trial_creator_base.cc | 8 +++-- .../variations/service/variations_service.cc | 19 ++-------- .../browser/loader/url_loader_throttles.cc | 7 ---- .../origin_trials/origin_trials_utils.cc | 2 +- @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Disable-fetching-of-all-field-trials.inc | 1 + .../renderer/core/loader/document_loader.cc | 7 ---- .../platform/loader/fetch/resource_request.h | 1 - - 25 files changed, 31 insertions(+), 91 deletions(-) + 25 files changed, 33 insertions(+), 91 deletions(-) create mode 100644 cromite_flags/net/base/features_cc/Disable-fetching-of-all-field-trials.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-fetching-of-all-field-trials.inc @@ -302,15 +302,17 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c platform_field_trials->RegisterFeatureOverrides(feature_list.get()); base::FeatureList::SetInstance(std::move(feature_list)); -@@ -618,6 +616,7 @@ CreateTrialsResult VariationsFieldTrialCreatorBase::CreateTrialsFromSeed( +@@ -618,6 +616,9 @@ CreateTrialsResult VariationsFieldTrialCreatorBase::CreateTrialsFromSeed( base::FeatureList* feature_list, SafeSeedManagerBase* safe_seed_manager, std::unique_ptr client_state) { -+ if ((true)) return false; ++ if ((true)) { ++ return CreateTrialsResult{.applied_seed = false}; ++ } // This histogram name uses "VariationsFieldTrialCreator" rather than // "VariationsFieldTrialCreatorBase" for consistency with historical data TRACE_EVENT0("startup", "VariationsFieldTrialCreator::CreateTrialsFromSeed"); -@@ -731,6 +730,7 @@ CreateTrialsResult VariationsFieldTrialCreatorBase::CreateTrialsFromSeed( +@@ -731,6 +732,7 @@ CreateTrialsResult VariationsFieldTrialCreatorBase::CreateTrialsFromSeed( void VariationsFieldTrialCreatorBase::LoadSeedFromJsonFile( const base::FilePath& json_seed_path) { diff --git a/build/patches/Disable-minidump-upload-scheduling.patch b/build/patches/Disable-minidump-upload-scheduling.patch index ec2925f0..109ac1f0 100644 --- a/build/patches/Disable-minidump-upload-scheduling.patch +++ b/build/patches/Disable-minidump-upload-scheduling.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc --- a/components/endpoint_fetcher/endpoint_fetcher.cc +++ b/components/endpoint_fetcher/endpoint_fetcher.cc -@@ -486,7 +486,7 @@ void EndpointFetcher::OnResponseFetched( +@@ -485,7 +485,7 @@ void EndpointFetcher::OnResponseFetched( } } else { std::string net_error = net::ErrorToString(net_error_code); diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index 62205aaa..e625b2aa 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -10,13 +10,13 @@ the ChromeSmartSelection feature flag. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser/contextualsearch/SelectionClientManager.java | 2 ++ - chrome/browser/flags/android/chrome_feature_list.cc | 1 + - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 1 + - .../browser/selection/SelectionPopupControllerImpl.java | 1 - - .../disable-smart-selection-by-default.inc | 3 +++ - .../disable-smart-selection-by-default.inc | 1 + - 6 files changed, 8 insertions(+), 1 deletion(-) + .../browser/contextualsearch/SelectionClientManager.java | 5 +++++ + chrome/browser/flags/android/chrome_feature_list.cc | 1 + + .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 1 + + .../browser/selection/SelectionPopupControllerImpl.java | 1 - + .../disable-smart-selection-by-default.inc | 3 +++ + .../disable-smart-selection-by-default.inc | 1 + + 6 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-smart-selection-by-default.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-smart-selection-by-default.inc @@ -31,11 +31,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc import org.chromium.content_public.browser.SelectAroundCaretResult; import org.chromium.content_public.browser.SelectionClient; import org.chromium.content_public.browser.SelectionEventProcessor; -@@ -51,6 +52,7 @@ public class SelectionClientManager { +@@ -51,6 +52,10 @@ public class SelectionClientManager { */ SelectionClientManager(WebContents webContents) { assert webContents != null; -+ if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SMART_SELECTION)) return; ++ if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SMART_SELECTION)) { ++ mIsSmartSelectionEnabledInChrome = false; ++ return; ++ } mOptionalSelectionClient = SelectionClient.createSmartSelectionClient(webContents); SelectionPopupController controller = SelectionPopupController.fromWebContents(webContents); controller.setSelectionClient(mOptionalSelectionClient); diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index a625b598..ed7d0503 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -178,7 +178,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -125,6 +125,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -126,6 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HTTPS_FIRST_MODE_LEGACY = "https_first_mode_legacy"; private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_USAGE_STATS = "usage_stats_reporting"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; -@@ -574,6 +575,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -575,6 +576,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index c09a0dff..4bb7e4a9 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -29,8 +29,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/update_client/request_sender.cc | 3 +- components/update_client/update_checker.cc | 6 ++- components/update_client/update_engine.cc | 9 ++++ - components/update_client/utils.cc | 3 ++ - 22 files changed, 134 insertions(+), 49 deletions(-) + components/update_client/utils.cc | 4 ++ + 22 files changed, 135 insertions(+), 49 deletions(-) diff --git a/android_webview/browser/aw_browser_main_parts.cc b/android_webview/browser/aw_browser_main_parts.cc --- a/android_webview/browser/aw_browser_main_parts.cc @@ -681,7 +681,15 @@ diff --git a/components/update_client/update_engine.cc b/components/update_clien diff --git a/components/update_client/utils.cc b/components/update_client/utils.cc --- a/components/update_client/utils.cc +++ b/components/update_client/utils.cc -@@ -118,6 +118,9 @@ bool VerifyFileHash256(const base::FilePath& filepath, +@@ -28,6 +28,7 @@ + #include "base/files/file_util.h" + #include "base/files/memory_mapped_file.h" + #include "base/functional/callback.h" ++#include "base/logging.h" + #include "base/json/json_file_value_serializer.h" + #include "base/path_service.h" + #include "base/strings/string_number_conversions.h" +@@ -118,6 +119,9 @@ bool VerifyFileHash256(const base::FilePath& filepath, std::array sha256_hash; hasher->Finish(sha256_hash); diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index f0551508..4dcf5163 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -15,17 +15,18 @@ See also: https://github.com/bromite/bromite/issues/547 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 --- - .../settings/PasswordSettings.java | 83 ++++++++++- + .../settings/PasswordSettings.java | 83 +++++++++++- .../chrome/browser/settings/MainSettings.java | 2 +- .../chromium/chrome/browser/tab/TabImpl.java | 41 +++++- chrome/browser/about_flags.cc | 31 ----- chrome/browser/android/tab_android.cc | 3 +- chrome/browser/autofill/android/BUILD.gn | 2 +- .../autofill/AutofillClientProviderUtils.java | 2 +- + ...AutofillThirdPartyModeContentProvider.java | 1 + chrome/browser/flag_descriptions.cc | 6 - chrome/browser/flag_descriptions.h | 3 - .../strings/android_chrome_strings.grd | 6 + - .../ui/autofill/autofill_client_provider.cc | 131 +----------------- + .../ui/autofill/autofill_client_provider.cc | 124 +----------------- .../ui/autofill/autofill_client_provider.h | 6 - chrome/browser/ui/tab_helpers.cc | 4 +- components/android_autofill/browser/BUILD.gn | 1 + @@ -33,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/android_autofill_manager.h | 2 + .../autofill/AutofillManagerWrapper.java | 5 +- .../components/autofill/AutofillProvider.java | 7 + - .../BrowserSelectionActionMenuDelegate.java | 68 +++++++++ + .../BrowserSelectionActionMenuDelegate.java | 68 ++++++++++ .../browser/content_autofill_driver.cc | 11 ++ .../content/browser/content_autofill_driver.h | 10 ++ .../content_autofill_driver_factory.cc | 12 ++ @@ -45,10 +46,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../foundations/browser_autofill_manager.cc | 2 + .../foundations/browser_autofill_manager.h | 2 + .../autofill/core/common/autofill_features.cc | 2 +- - .../autofill/core/common/autofill_features.h | 22 --- + .../autofill/core/common/autofill_features.h | 22 ---- .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 + - 33 files changed, 276 insertions(+), 217 deletions(-) + 34 files changed, 277 insertions(+), 210 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -368,6 +369,17 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse if (sAndroidAutofillFrameworkAvailabilityForTesting != null) { return sAndroidAutofillFrameworkAvailabilityForTesting; } +diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java +--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java ++++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java +@@ -74,6 +74,7 @@ public final class AutofillThirdPartyModeContentProvider extends ContentProvider + @Nullable String selection, + String @Nullable [] selectionArgs, + @Nullable String sortOrder) { ++ if ((true)) return null; + if (createContentUri().equals(uri)) { + final String[] columns = {AUTOFILL_THIRD_PARTY_MODE_COLUMN}; + MatrixCursor cursor = new MatrixCursor(columns, 1); diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -416,23 +428,18 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -12,126 +12,13 @@ - #include "components/autofill/core/common/autofill_prefs.h" - #include "content/public/browser/web_contents.h" - --#if BUILDFLAG(IS_ANDROID) --#include "base/android/jni_android.h" --#include "base/android/jni_string.h" --#include "base/task/thread_pool.h" --#include "chrome/browser/autofill/android/android_autofill_availability_status.h" +@@ -17,123 +17,17 @@ + #include "base/android/jni_string.h" + #include "base/task/thread_pool.h" + #include "chrome/browser/autofill/android/android_autofill_availability_status.h" -#include "chrome/browser/autofill/android/jni_headers/AutofillClientProviderUtils_jni.h" --#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" --#include "components/android_autofill/browser/android_autofill_client.h" --#endif // BUILDFLAG(IS_ANDROID) -- --namespace autofill { + #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" + #include "components/android_autofill/browser/android_autofill_client.h" + #endif // BUILDFLAG(IS_ANDROID) + + namespace autofill { -namespace { -- + -#if BUILDFLAG(IS_ANDROID) -void RecordAvailabilityStatus(AndroidAutofillAvailabilityStatus availability) { - base::UmaHistogramEnumeration("Autofill.AndroidAutofillAvailabilityStatus", @@ -529,8 +536,8 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro -#endif // BUILDFLAG(IS_ANDROID) -} - - } // namespace - +-} // namespace +- -AutofillClientProvider::AutofillClientProvider(PrefService* prefs) - : uses_platform_autofill_( - UsesVirtualViewStructureForAutofill(CHECK_DEREF(prefs))) { @@ -541,11 +548,13 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro - // Ensure the pref is reset if platform autofill is restricted. prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, - uses_platform_autofill_); +- SetSharedPrefForSettingsContentProvider(uses_platform_autofill_); +- SetSharedPrefForDeepLink(); + true); - SetSharedPrefForSettingsContentProvider(uses_platform_autofill_); - SetSharedPrefForDeepLink(); #endif // BUILDFLAG(IS_ANDROID) -@@ -141,15 +28,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; + } + +@@ -141,15 +35,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; void AutofillClientProvider::CreateClientForWebContents( content::WebContents* web_contents) { @@ -561,7 +570,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro } #if BUILDFLAG(IS_ANDROID) -@@ -161,12 +40,6 @@ void AutofillClientProvider::RegisterSyntheticFieldTrialForPackage( +@@ -161,12 +47,6 @@ void AutofillClientProvider::RegisterSyntheticFieldTrialForPackage( } void AutofillClientProvider::DelayRegisteringFieldTrialForA11yDeprecation() { diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index cbf51d7c..2f0b9057 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -97,7 +97,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/user_scripts/common/url_pattern.h | 306 +++++++ .../user_scripts/common/url_pattern_set.cc | 229 +++++ .../user_scripts/common/url_pattern_set.h | 103 +++ - components/user_scripts/common/user_script.cc | 329 +++++++ + components/user_scripts/common/user_script.cc | 330 +++++++ components/user_scripts/common/user_script.h | 402 +++++++++ .../common/user_scripts_features.cc | 32 + .../common/user_scripts_features.h | 36 + @@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 109 files changed, 9360 insertions(+), 3 deletions(-) + 109 files changed, 9361 insertions(+), 3 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 @@ -1347,7 +1347,7 @@ new file mode 100644 +import org.chromium.ui.base.IntentRequestTracker; +import org.chromium.ui.base.IntentRequestTracker.Delegate; +import org.chromium.ui.base.WindowAndroid; -+import org.chromium.ui.InsetObserver; ++import org.chromium.ui.insets.InsetObserver; + +import java.lang.ref.WeakReference; + @@ -6259,7 +6259,7 @@ diff --git a/components/user_scripts/common/user_script.cc b/components/user_scr new file mode 100755 --- /dev/null +++ b/components/user_scripts/common/user_script.cc -@@ -0,0 +1,329 @@ +@@ -0,0 +1,330 @@ +// Copyright 2013 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. @@ -6274,6 +6274,7 @@ new file mode 100755 + +#include "base/atomic_sequence_num.h" +#include "base/command_line.h" ++#include "base/logging.h" +#include "base/pickle.h" +#include "base/strings/pattern.h" +#include "base/strings/string_util.h" diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index b5d5991f..26e94118 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -30,7 +30,7 @@ suit Cromite logic. chrome/browser/resources/settings/BUILD.gn | 2 + .../settings/adblock_page/adblock_page.html | 212 + .../settings/adblock_page/adblock_page.ts | 303 + - .../settings/basic_page/basic_page.html | 7 + + .../settings/basic_page/basic_page.html | 4 + .../settings/basic_page/basic_page.ts | 1 + .../resources/settings/page_visibility.ts | 1 + chrome/browser/resources/settings/route.ts | 4 + @@ -126,7 +126,7 @@ suit Cromite logic. .../renderer/core/exported/web_document.cc | 13 +- .../blink/renderer/core/html/html_element.cc | 8 +- .../definitions/adblock_private.d.ts | 14 + - 121 files changed, 9224 insertions(+), 618 deletions(-) + 121 files changed, 9221 insertions(+), 618 deletions(-) rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts @@ -1752,17 +1752,14 @@ new file mode 100644 diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html --- a/chrome/browser/resources/settings/basic_page/basic_page.html +++ b/chrome/browser/resources/settings/basic_page/basic_page.html -@@ -51,6 +51,13 @@ +@@ -51,6 +51,10 @@ -+ ++ ++ ++