Updated patches for v101

Add welcome screen patch
This commit is contained in:
csagan5 2022-05-02 21:55:55 +02:00
parent f1a942e3ad
commit 01b1d9144a
39 changed files with 881 additions and 176 deletions

View file

@ -190,4 +190,5 @@ Disable-TLS-resumption.patch
Partition-DNS-requests-by-top-frame-NIK.patch
Remove-mremap-from-seccomp-baseline-policy.patch
Move-navigation-bar-to-bottom.patch
Welcome-screen.patch
Automated-domain-substitution.patch

View file

@ -14,7 +14,7 @@ Subject: Add IsCleartextPermitted flag
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -8170,6 +8170,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -8174,6 +8174,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kRequestDesktopSiteExceptionsName,
flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},

View file

@ -70,14 +70,14 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
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
@@ -58,6 +58,7 @@ import org.chromium.ui.text.SpanApplier;
public class PrivacySettings
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener,
INeedSnackbarManager {
@@ -58,6 +58,7 @@ public class PrivacySettings
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
+ private static final String PREF_PROXY_OPTIONS = "proxy";
private SnackbarManager mSnackbarManager;
private Snackbar mSnackbar;
private static final String PREF_PRIVACY_REVIEW = "privacy_review";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc

View file

@ -23,7 +23,7 @@ See also: https://github.com/bromite/bromite/pull/1427
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 33 +++-
.../AppMenuPropertiesDelegateImpl.java | 26 ++-
.../ChromeContextMenuPopulator.java | 7 +-
.../CustomTabActivityLifecycleUmaTracker.java | 25 ---
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
@ -49,7 +49,7 @@ See also: https://github.com/bromite/bromite/pull/1427
.../host_content_settings_map_factory.cc | 20 ++-
chrome/browser/flag_descriptions.cc | 6 +
chrome/browser/flag_descriptions.h | 3 +
.../flags/android/chrome_feature_list.cc | 2 +-
.../flags/android/chrome_feature_list.cc | 4 +-
chrome/browser/history/history_tab_helper.cc | 18 ++
chrome/browser/history/history_tab_helper.h | 10 +-
.../android/offline_page_bridge.cc | 13 +-
@ -78,7 +78,7 @@ See also: https://github.com/bromite/bromite/pull/1427
.../omnibox/browser/base_search_provider.cc | 2 +-
components/omnibox/browser/search_provider.cc | 4 +-
.../host_content_settings_map_factory.cc | 1 +
62 files changed, 688 insertions(+), 71 deletions(-)
62 files changed, 682 insertions(+), 72 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
@ -295,21 +295,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -156,6 +161,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
private @StartSurfaceState int mStartSurfaceState;
protected Runnable mAppMenuInvalidator;
+ private PrefService sPrefServiceForTest;
+
+ @VisibleForTesting
+ public void setPrefForTest(PrefService prefService) {
+ sPrefServiceForTest = prefService;
+ }
+
/**
* Construct a new {@link AppMenuPropertiesDelegateImpl}.
* @param context The activity context.
@@ -524,6 +536,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -524,6 +529,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@ -323,13 +309,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -580,7 +599,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -580,7 +592,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
- item.setVisible(!isIncognito);
+ if (always_incognito) {
+ PrefService prefService = sPrefServiceForTest != null ? sPrefServiceForTest :
+ PrefService prefService =
+ UserPrefs.get(Profile.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
@ -340,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
}
if (item.getItemId() == R.id.menu_group_tabs) {
item.setVisible(isMenuGroupTabsVisible);
@@ -817,7 +844,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -817,7 +837,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
// is not persisted when adding to the homescreen.
// * If creating shortcuts it not supported by the current home screen.
return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
@ -1215,11 +1201,13 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -483,7 +483,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
@@ -482,8 +482,8 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling",
const base::Feature kCCTIncognito{"CCTIncognito",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTIncognitoAvailableToThirdParty{
-const base::Feature kCCTIncognitoAvailableToThirdParty{
- "CCTIncognitoAvailableToThirdParty", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kCCTIncognitoAvailableToThirdParty{ // Enabled by default in Bromite
+ "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTPostMessageAPI{"CCTPostMessageAPI",
@ -1610,13 +1598,13 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
+ <!-- always incognito -->
+ <message name="IDS_INCOGNITO_SETTINGS_TITLE" desc="Title for incognito mode settings">
+ Incognito mode settings
+ Incognito mode
+ </message>
+ <message name="IDS_INCOGNITO_SETTINGS_SUMMARY" desc="Summary for incognito mode settings">
+ Sets the flags of incognito mode
+ Incognito navigation settings
+ </message>
+ <message name="IDS_ALWAYS_INCOGNITO_TITLE" desc="Title for always incognito mode">
+ Open links in incognito tabs always
+ Always open links in incognito
+ </message>
+ <message name="IDS_ALWAYS_INCOGNITO_SUMMARY" desc="Summary for always incognito mode">
+ Opens links in incognito tabs when you click on new tab or on a link
@ -1627,18 +1615,18 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
+ <message name="IDS_UI_RELAUNCH_NOTICE" desc="Summary for relaunch message">
+ Your changes will take effect the next time you relaunch Bromite.
+ </message>
+ <message name="IDS_INCOGNITO_HISTORY_ENABLED_TITLE" desc="Title for always enable history in incognito mode">
+ Enable history in incognito tabs
+ </message>
+ <message name="IDS_INCOGNITO_HISTORY_ENABLED_SUMMARY" desc="Summary for always enable history in incognito mode">
+ Record history even in incognito mode
+ </message>
+ <message name="IDS_INCOGNITO_SAVE_SITE_SETTING_ENABLED_TITLE" desc="Title for save site setting flag in incognito mode">
+ Save site settings in incognito mode
+ </message>
+ <message name="IDS_INCOGNITO_SAVE_SITE_SETTING_ENABLED_SUMMARY" desc="Summary for save site setting flag in incognito mode">
+ Allows to save site settings in incognito mode
+ </message>
+ <message name="IDS_INCOGNITO_HISTORY_ENABLED_TITLE" desc="Title for enabled history in incognito mode">
+ Enable history
+ </message>
+ <message name="IDS_INCOGNITO_HISTORY_ENABLED_SUMMARY" desc="Summary for enable history in incognito mode">
+ Record history even in incognito mode
+ </message>
+ <message name="IDS_INCOGNITO_SAVE_SITE_SETTING_ENABLED_TITLE" desc="Title for save site setting flag in incognito mode">
+ Remember site settings
+ </message>
+ <message name="IDS_INCOGNITO_SAVE_SITE_SETTING_ENABLED_SUMMARY" desc="Summary for save site setting flag in incognito mode">
+ Remember site settings changes in incognito mode
+ </message>
<message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
<ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Search history<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>other forms of activity<ph name="END_LINK2">&lt;/link2&gt;</ph> may be saved in your Google Account when youre signed in. You can delete them anytime.
</message>
@ -1826,7 +1814,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
"OfflinePagesNetworkStateLikelyUnknown", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kOfflinePagesAutoSaveFeature{
+ "OfflinePagesAutoSaveEnabled", base::FEATURE_ENABLED_BY_DEFAULT};
+ "OfflinePagesAutoSaveEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
+
const char kPrefetchingOfflinePagesExperimentsOption[] = "exp";

View file

@ -20,7 +20,7 @@ See also: https://github.com/bromite/bromite/issues/1474
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -60,6 +60,16 @@
@@ -55,6 +55,16 @@
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
android:key="do_not_track"
android:title="@string/do_not_track_title"/>
@ -123,7 +123,7 @@ 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
@@ -94,6 +94,9 @@ public class PrivacySettings
@@ -83,6 +83,9 @@ public class PrivacySettings
private ViewGroup mDialogContainer;
private BottomSheetController mBottomSheetController;
@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
PrivacyPreferencesManagerImpl privacyPrefManager =
@@ -170,6 +173,9 @@ public class PrivacySettings
@@ -154,6 +157,9 @@ public class PrivacySettings
updatePreferences();
}
@ -143,10 +143,10 @@ 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();
@@ -188,6 +194,14 @@ public class PrivacySettings
if (!mSnackbarManager.isShowing()) {
mSnackbarManager.showSnackbar(mSnackbar);
}
@@ -172,6 +178,14 @@ public class PrivacySettings
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
+ sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
@ -155,10 +155,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
+ sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
+ sharedPreferencesEditor.apply();
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
@@ -218,6 +232,16 @@ public class PrivacySettings
}
@Override
@@ -192,6 +206,16 @@ public class PrivacySettings
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@ -194,7 +194,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
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
@@ -4606,6 +4606,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4616,6 +4616,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
Show original
</message>

View file

@ -14,7 +14,7 @@ Subject: Add flag for save-data-header
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4312,7 +4312,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4316,7 +4316,10 @@ const FeatureEntry kFeatureEntries[] = {
{"force-text-direction", flag_descriptions::kForceTextDirectionName,
flag_descriptions::kForceTextDirectionDescription, kOsAll,
MULTI_VALUE_TYPE(kForceTextDirectionChoices)},

View file

@ -16,7 +16,7 @@ Subject: Add flag to disable IPv6 probes
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5247,6 +5247,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -5251,6 +5251,10 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},

View file

@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -3479,6 +3479,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
@@ -3485,6 +3485,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
const char kPhotoPickerVideoSupportDescription[] =
"Enables video files to be shown in the Photo Picker dialog";
@ -40,7 +40,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2003,6 +2003,9 @@ extern const char kQueryTilesNTPDescription[];
@@ -2006,6 +2006,9 @@ extern const char kQueryTilesNTPDescription[];
extern const char kQueryTilesOmniboxName[];
extern const char kQueryTilesOmniboxDescription[];
extern const char kQueryTilesSingleTierName[];

View file

@ -18,7 +18,7 @@ Subject: Add flag to disable vibration
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6635,6 +6635,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6639,6 +6639,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
#endif
@ -32,7 +32,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -5668,6 +5668,9 @@ const char kDefaultCalculatorWebAppDescription[] =
@@ -5674,6 +5674,9 @@ const char kDefaultCalculatorWebAppDescription[] =
"chrome app.";
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -3428,6 +3428,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
@@ -3431,6 +3431,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
extern const char kWebUITabStripTabDragIntegrationDescription[];
#endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)

View file

@ -349,7 +349,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
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
@@ -3394,6 +3394,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3404,6 +3404,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
Track prices
</message>

View file

@ -68,7 +68,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
@@ -514,6 +514,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -507,6 +507,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
@@ -1160,6 +1161,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -1153,6 +1154,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled);
}

View file

@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
@@ -1345,6 +1345,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1355,6 +1355,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_PRIVACY_REVIEW_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
Temporarily links this data to your Google Account when youre signed in, to protect you across Google apps
</message>

View file

@ -12,10 +12,10 @@ Subject: Add option to not persist tabs across sessions
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -47,6 +47,11 @@
android:title="@string/incognito_history_enabled_title"
android:summary="@string/incognito_history_enabled_summary"
android:defaultValue="false" />
@@ -42,6 +42,11 @@
android:title="@string/incognito_settings_title"
android:summary="@string/incognito_settings_summary"
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="close_tabs_on_exit"
+ android:title="@string/close_tabs_on_exit_title"
@ -56,10 +56,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+import org.chromium.base.ContextUtils;
+import org.chromium.base.BuildInfo;
import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
@@ -70,6 +73,8 @@ public class PrivacySettings
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -59,6 +62,8 @@ public class PrivacySettings
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
private ViewGroup mDialogContainer;
@@ -150,7 +155,11 @@ public class PrivacySettings
@@ -134,7 +139,11 @@ public class PrivacySettings
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@ -80,9 +80,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_ALWAYS_INCOGNITO.equals(key)) {
@@ -227,6 +236,11 @@ public class PrivacySettings
prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
@@ -175,6 +184,11 @@ public class PrivacySettings
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
}
+ ChromeSwitchPreference closeTabsOnExitPref =
@ -96,7 +96,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
@@ -4294,6 +4294,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4304,6 +4304,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
IMAGE
</message>

View file

@ -154,7 +154,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
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
@@ -1160,6 +1160,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1170,6 +1170,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour
</message>

View file

@ -174,7 +174,7 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -11294,6 +11294,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
@@ -11243,6 +11243,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::TerminationStatus status,
int exit_code) {
@ -182,7 +182,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
if (!last_committed_url_.SchemeIsHTTPOrHTTPS())
return;
@@ -11343,6 +11344,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -11292,6 +11293,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
/*type=*/"crash", /*group=*/"default", last_committed_url_,
GetReportingSource(), isolation_info_.network_isolation_key(),
absl::nullopt /* user_agent */, std::move(body));

View file

@ -4942,7 +4942,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#if !BUILDFLAG(IS_ANDROID)
{"block-migrated-default-chrome-app-sync",
flag_descriptions::kBlockMigratedDefaultChromeAppSyncName,
@@ -4335,7 +4335,7 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4339,7 +4339,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kSetMarketUrlForTestingName,
flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid,
SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting,
@ -9004,7 +9004,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_CLEAR_CACHE_TITLE" desc="Title for Clear Cache in Clear Browsing Data dialog">
Cached images and files
@@ -1232,7 +1232,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1242,7 +1242,7 @@ Your Google account may have other forms of browsing history like searches and a
Basic
</message>
<message name="IDS_ANDROID_HISTORY_OTHER_FORMS_OF_HISTORY" desc="The notification at the top of the history page indicating that deleting Chrome browsing history will not delete other forms of history stored at Google My Activity.">
@ -9013,7 +9013,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_ANDROID_HISTORY_BLOCKED_SITE" desc="The text displayed in the history page indicating that a visit to a web site was blocked due to an administrator policy.">
Blocked site
@@ -1861,10 +1861,10 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1871,10 +1871,10 @@ Your Google account may have other forms of browsing history like searches and a
Waiting for details of parents.
</message>
<message name="IDS_ACCOUNT_MANAGEMENT_ONE_PARENT_NAME" desc="String for name of single parent for child account.">
@ -9026,7 +9026,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_ACCOUNT_MANAGEMENT_CHILD_CONTENT_TITLE" desc="Title of the Content setting, which controls which websites a child is allowed to visit.">
Content
@@ -1920,19 +1920,19 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1930,19 +1930,19 @@ Your Google account may have other forms of browsing history like searches and a
Google Terms of Service
</message>
<message name="IDS_GOOGLE_TERMS_OF_SERVICE_URL" desc="URL for Google terms of service" translateable="false">
@ -9049,7 +9049,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<!-- Sign-in strings -->
@@ -1949,7 +1949,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1959,7 +1959,7 @@ Your Google account may have other forms of browsing history like searches and a
Also clear your Chrome data from this device
</message>
<message name="IDS_SIGNOUT_MANAGED_ACCOUNT_MESSAGE" desc="Message to display for sign out of Chrome dialog when the account has enterprise management, and all user data will be erased">
@ -9058,7 +9058,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_SIGN_IN_GETTING_ACCOUNT_MANAGEMENT_POLICY" desc="Title of progress bar dialog for getting management policy">
Contacting Google. This may take a minute…
@@ -2020,7 +2020,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2030,7 +2030,7 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_SYNC_ENCRYPTION" desc="Preference category name for sync encryption. [CHAR_LIMIT=32]">
Encryption
</message>
@ -9067,7 +9067,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Review your synced data
</message>
<message name="IDS_SYNC_PASSPHRASE_TYPE_TITLE" desc="Title of sync passphrase type dialog. [CHAR_LIMIT=24]">
@@ -2051,7 +2051,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2061,7 +2061,7 @@ Your Google account may have other forms of browsing history like searches and a
Your data was encrypted with your <ph name="BEGIN_LINK">&lt;learnmore&gt;</ph>sync passphrase<ph name="END_LINK">&lt;/learnmore&gt;</ph> on <ph name="TIME">%1$s<ex>Sept 1, 2012</ex></ph>. Enter it to start sync.
</message>
<message name="IDS_SYNC_ACCOUNT_INFO" desc="The message that appears in the options dialog indicating that the user is signed in with the given email address.">
@ -9076,7 +9076,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_SYNC_PASSPHRASE_CANNOT_BE_BLANK" desc="Inform user that they cannot use a blank password [CHAR_LIMIT=40]">
This field cannot be blank
@@ -2824,7 +2824,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -2853,7 +2853,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_FRE_DISMISS_BUTTON" desc="Button on the very first screen of Chrome to continue without signing into Chrome. Ensure consistency with OneGoogle strings while still omitting “Chrome” (see e.g. TC ID 5336438894576002929).">
Use without an account
</message>
@ -9085,7 +9085,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
By continuing, you agree to the <ph name="BEGIN_TOS_LINK">&lt;TOS_LINK&gt;</ph>Terms of Service<ph name="END_TOS_LINK">&lt;/TOS_LINK&gt;</ph>.\nTo help improve the app, Chrome sends usage and crash data to Google. <ph name="BEGIN_UMA_LINK">&lt;UMA_LINK&gt;</ph>Manage<ph name="END_UMA_LINK">&lt;/UMA_LINK&gt;</ph>
</message>
<message name="IDS_SIGNIN_FRE_FOOTER_TOS" desc="The text is displayed in a footer on the very first screen of Chrome. The link Terms of Service opens the Google Terms of Service.">
@@ -2833,7 +2833,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -2862,7 +2862,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_FRE_FOOTER_TOS_WITH_SUPERVISED_USER" desc="The text is displayed in a footer on the very first screen of Chrome. The link 'Terms of Service' opens the Google Terms of Service. The link 'Privacy Policy' opens the Google Privacy Policy.">
By continuing, you agree to the <ph name="BEGIN_TOS_LINK">&lt;TOS_LINK&gt;</ph>Terms of Service<ph name="END_TOS_LINK">&lt;/TOS_LINK&gt;</ph> and <ph name="BEGIN_PRIVACY_LINK">&lt;PRIVACY_LINK&gt;</ph>Privacy\u00A0Policy<ph name="END_PRIVACY_LINK">&lt;/PRIVACY_LINK&gt;</ph>.
</message>
@ -9094,7 +9094,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
To help improve the app, Chrome sends usage and crash data to Google. <ph name="BEGIN_UMA_LINK">&lt;UMA_LINK&gt;</ph>Manage<ph name="END_UMA_LINK">&lt;/UMA_LINK&gt;</ph>
</message>
<message name="IDS_SIGNIN_FRE_UMA_DIALOG_TITLE" desc="Title of the dialog where users can change their Chrome metric sharing settings, like usage data. This appears when they open the Chrome app for the first time on their phone.">
@@ -3899,7 +3899,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3928,7 +3928,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_ACCESSIBILITY_OMNIBOX_MOST_VISITED_TILE" desc="When the user focuses a Frequently Visited URL tile suggestion, the tile will be crome://announced according to the following pattern">
<ph name="WEBSITE_TITLE">%1$s<ex>Crater Lake National Park (U.S. National Park Service)</ex></ph>: <ph name="WEBSITE_URL">%2$s<ex>https://www.nps.gov/crla</ex></ph>
</message>
@ -9103,7 +9103,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Chrome action button: <ph name="ACTION">%s<ex>clear browsing data</ex></ph>
</message>
@@ -4141,7 +4141,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4170,7 +4170,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- WebUsb Picker UI strings -->
<message name="IDS_USB_CHOOSER_DIALOG_PROMPT" desc="The text that is used to introduce the USB chooser dialog to the user.">
@ -9112,7 +9112,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_USB_CHOOSER_DIALOG_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no USB devices were found matching the requirements that the application provided.">
No compatible devices found
@@ -4175,7 +4175,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4204,7 +4204,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Running in Chrome
</message>
<message name="IDS_TWA_RUNNING_IN_CHROME_V2" desc="Updated message on a snackbar indicating that the current Activity may use Chrome data (the rest of the app may not be).">
@ -9121,7 +9121,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_TWA_CLEAR_DATA_DIALOG_TITLE" desc="Title of the clear data dialog showing after user uninstalls or clears data of an app hosting a Trusted Web Activity">
<ph name="APP_NAME">%1$s<ex>YouTube</ex></ph> also has data in Chrome
@@ -4528,7 +4528,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4557,7 +4557,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Sending to <ph name="device_name">%1$s<ex>Tanya's Pixel 2</ex></ph>...
</message>
<message name="IDS_SEND_TAB_TO_SELF_NOTIFICATION_CONTEXT_TEXT" desc="Text displayed as the second line of a notification indicating the domain and the device the tab is shared from.">
@ -9130,7 +9130,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_SEND_TAB_TO_SELF_CONTENT_DESCRIPTION" desc="Accessibility string read when the bottom sheet is opened. It describes the bottom sheet where a user can pick a device to share the tab with.">
List of devices to share a tab with.
@@ -4567,7 +4567,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4596,7 +4596,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Page sent. To see it, open Chrome on your <ph name="device_type">%1$s<ex>phone</ex></ph>
</message>
<message name="IDS_SEND_TAB_TO_SELF_MANAGE_DEVICES_LINK" desc="Text with a link to a page where the user can manage the devices they can share a tab to.">
@ -9139,7 +9139,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_SEND_TAB_TO_SELF_WHEN_SIGNED_IN_UNAVAILABLE" desc="Instructions for the user to enable the feature when it's currently unavailable.">
You can send tabs between devices that are signed in with the same Google Account
@@ -5601,7 +5601,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5630,7 +5630,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Your browser is managed by your administrator
</message>
<message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="The title of the chrome://management page when the browser runs in an environment managed by a known organization. (e.g. Employer owned device enrolled to CBCM)">
@ -28422,7 +28422,7 @@ diff --git a/content/browser/speech/tts_mac.mm b/content/browser/speech/tts_mac.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6851,7 +6851,7 @@ void WebContentsImpl::RunJavaScriptDialog(
@@ -6860,7 +6860,7 @@ void WebContentsImpl::RunJavaScriptDialog(
base::StringPrintf(
"A different origin subframe tried to create a JavaScript "
"dialog. This is no longer allowed and was blocked. See "
@ -29691,7 +29691,7 @@ diff --git a/infra/config/generated/builders/try/chromeos-arm64-generic-rel/prop
diff --git a/infra/config/generated/builders/try/chromeos-kevin-rel/properties.json b/infra/config/generated/builders/try/chromeos-kevin-rel/properties.json
--- a/infra/config/generated/builders/try/chromeos-kevin-rel/properties.json
+++ b/infra/config/generated/builders/try/chromeos-kevin-rel/properties.json
@@ -2,7 +2,7 @@
@@ -49,7 +49,7 @@
"$build/goma": {
"enable_ats": true,
"rpc_extra_params": "?prod",
@ -29871,7 +29871,7 @@ diff --git a/infra/config/generated/builders/try/lacros-arm-generic-rel/properti
diff --git a/infra/config/generated/builders/try/linux-blink-rel/properties.json b/infra/config/generated/builders/try/linux-blink-rel/properties.json
--- a/infra/config/generated/builders/try/linux-blink-rel/properties.json
+++ b/infra/config/generated/builders/try/linux-blink-rel/properties.json
@@ -2,7 +2,7 @@
@@ -40,7 +40,7 @@
"$build/goma": {
"enable_ats": true,
"rpc_extra_params": "?prod",
@ -29943,7 +29943,7 @@ diff --git a/infra/config/generated/builders/try/linux-official/properties.json
diff --git a/infra/config/generated/builders/try/linux-rel-compilator/properties.json b/infra/config/generated/builders/try/linux-rel-compilator/properties.json
--- a/infra/config/generated/builders/try/linux-rel-compilator/properties.json
+++ b/infra/config/generated/builders/try/linux-rel-compilator/properties.json
@@ -10,7 +10,7 @@
@@ -161,7 +161,7 @@
"enable_ats": true,
"jobs": 150,
"rpc_extra_params": "?prod",
@ -30063,7 +30063,7 @@ diff --git a/infra/config/generated/builders/try/mac-official/properties.json b/
diff --git a/infra/config/generated/builders/try/mac-rel-compilator/properties.json b/infra/config/generated/builders/try/mac-rel-compilator/properties.json
--- a/infra/config/generated/builders/try/mac-rel-compilator/properties.json
+++ b/infra/config/generated/builders/try/mac-rel-compilator/properties.json
@@ -185,7 +185,7 @@
@@ -190,7 +190,7 @@
"$build/goma": {
"jobs": 150,
"rpc_extra_params": "?prod",
@ -30135,7 +30135,7 @@ diff --git a/infra/config/generated/builders/try/win10_chromium_x64_rel_ng-compi
diff --git a/infra/config/generated/builders/try/win32-official/properties.json b/infra/config/generated/builders/try/win32-official/properties.json
--- a/infra/config/generated/builders/try/win32-official/properties.json
+++ b/infra/config/generated/builders/try/win32-official/properties.json
@@ -2,7 +2,7 @@
@@ -41,7 +41,7 @@
"$build/goma": {
"enable_ats": false,
"rpc_extra_params": "?prod",

View file

@ -1555,7 +1555,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -1826,6 +1826,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1836,6 +1836,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android
</message>
@ -1568,7 +1568,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -3313,7 +3319,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3323,7 +3329,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@ -1580,7 +1580,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available
@@ -3324,6 +3333,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3334,6 +3343,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported
</message>

View file

@ -12,7 +12,7 @@ Subject: Disable Accessibility service by default
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
@@ -1406,6 +1406,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1416,6 +1416,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_SAFETY_CHECK_BUTTON" desc="Text for the button to start Safety check.">
Check now
</message>

View file

@ -21,7 +21,7 @@ Also added the disabling of blink features through the DisabledForBromite tag
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -70,10 +70,6 @@
@@ -65,10 +65,6 @@
android:title="@string/open_external_links_incognito_title"
android:summary="@string/open_external_links_incognito_summary"
android:defaultValue="false" />
@ -35,15 +35,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
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
@@ -74,7 +74,6 @@ public class PrivacySettings
@@ -62,7 +62,6 @@ public class PrivacySettings
private static final String PREF_SECURE_DNS = "secure_dns";
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
- private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_REVIEW = "privacy_review";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
@@ -104,21 +103,6 @@ public class PrivacySettings
@@ -93,21 +92,6 @@ public class PrivacySettings
SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
getActivity().setTitle(R.string.prefs_privacy_security);
@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference privacyReviewPreference = findPreference(PREF_PRIVACY_REVIEW);
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
getPreferenceScreen().removePreference(privacyReviewPreference);
@@ -291,12 +275,6 @@ public class PrivacySettings
@@ -239,12 +223,6 @@ public class PrivacySettings
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
}

View file

@ -36,7 +36,7 @@ See also:
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4341,6 +4341,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4345,6 +4345,12 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName,
flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll,
FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)},

View file

@ -175,7 +175,7 @@ diff --git a/components/optimization_guide/core/prediction_model_download_manage
0x5c, 0x7f, 0xd0, 0x0c, 0xa1, 0x6e, 0xef, 0xdd, 0x63, 0x7a};
const net::NetworkTrafficAnnotationTag
kOptimizationGuidePredictionModelsTrafficAnnotation =
@@ -112,6 +112,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default;
@@ -104,6 +104,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default;
void PredictionModelDownloadManager::StartDownload(
const GURL& download_url,
proto::OptimizationTarget optimization_target) {
@ -183,7 +183,7 @@ diff --git a/components/optimization_guide/core/prediction_model_download_manage
download::DownloadParams download_params;
download_params.client =
download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS;
@@ -237,6 +238,7 @@ void PredictionModelDownloadManager::OnDownloadFailed(const std::string& guid) {
@@ -229,6 +230,7 @@ void PredictionModelDownloadManager::OnDownloadFailed(const std::string& guid) {
absl::optional<std::pair<base::FilePath, base::FilePath>>
PredictionModelDownloadManager::ProcessDownload(
const base::FilePath& file_path) {

View file

@ -40,7 +40,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -934,7 +934,6 @@ chrome_java_sources = [
@@ -935,7 +935,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",

View file

@ -19,7 +19,7 @@ Revert "[Text Fragment] Unflag fragment directive removal."
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5513,6 +5513,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -5517,6 +5517,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kEnableWebAuthenticationPasskeysUIExperimentDescription,
kOsDesktop, FEATURE_VALUE_TYPE(device::kWebAuthPasskeysUIExperiment)},

View file

@ -22,7 +22,7 @@ Disable CT reporting
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -8130,6 +8130,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -8134,6 +8134,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebBluetoothBondOnDemandDescription, kOsWin | kOsLinux,
FEATURE_VALUE_TYPE(features::kWebBluetoothBondOnDemand)},
@ -64,7 +64,7 @@ diff --git a/chrome/browser/component_updater/pki_metadata_component_installer.c
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
@@ -5942,6 +5942,10 @@ const char kUIDebugToolsDescription[] =
@@ -5948,6 +5948,10 @@ const char kUIDebugToolsDescription[] =
"Enables additional keyboard shortcuts to help debugging.";
#endif
@ -78,7 +78,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -3455,6 +3455,9 @@ extern const char kUIDebugToolsName[];
@@ -3458,6 +3458,9 @@ extern const char kUIDebugToolsName[];
extern const char kUIDebugToolsDescription[];
#endif

View file

@ -38,7 +38,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -958,6 +958,7 @@ chrome_java_sources = [
@@ -959,6 +959,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
@ -308,7 +308,7 @@ new file mode 100644
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5991,6 +5991,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -5995,6 +5995,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(share::kSharingDesktopScreenshotsEdit)},
#endif
@ -393,7 +393,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -4652,6 +4652,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4662,6 +4662,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Send text to Your Devices
</message>

View file

@ -347,7 +347,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#include "components/version_info/version_info.h"
#include "components/viz/common/features.h"
#include "components/viz/common/switches.h"
@@ -6901,6 +6902,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6905,6 +6906,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(chromeos::features::kClipboardHistoryScreenshotNudge)},
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@ -374,7 +374,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
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
@@ -5782,6 +5782,11 @@ const char kQuickCommandsDescription[] =
@@ -5788,6 +5788,11 @@ const char kQuickCommandsDescription[] =
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_FUCHSIA)
@ -389,7 +389,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -3342,6 +3342,9 @@ extern const char kQuickCommandsDescription[];
@@ -3345,6 +3345,9 @@ extern const char kQuickCommandsDescription[];
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// defined (OS_FUCHSIA)

View file

@ -89,7 +89,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
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
@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.ApplicationLifetime;
@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
import org.chromium.components.browser_ui.settings.SettingsUtils;
@@ -57,6 +58,9 @@ import androidx.preference.PreferenceCategory;
@@ -51,6 +52,9 @@ import androidx.preference.PreferenceCategory;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
@@ -96,6 +100,8 @@ public class PrivacySettings
@@ -85,6 +89,8 @@ public class PrivacySettings
private ChromeSwitchPreference allowCustomTabIntentsPref;
private ChromeSwitchPreference openExternalLinksPref;
@ -116,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
PrivacyPreferencesManagerImpl privacyPrefManager =
@@ -145,6 +151,40 @@ public class PrivacySettings
@@ -134,6 +140,40 @@ public class PrivacySettings
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
@ -157,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference phoneAsASecurityKey = findPreference(PREF_PHONE_AS_A_SECURITY_KEY);
phoneAsASecurityKey.setVisible(
ChromeFeatureList.isEnabled(ChromeFeatureList.WEB_AUTH_PHONE_SUPPORT));
@@ -289,6 +329,29 @@ public class PrivacySettings
@@ -237,6 +277,29 @@ public class PrivacySettings
};
}

View file

@ -452,7 +452,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
mContainerViewModel.set(TOP_MARGIN, contentOffset);
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
+ // moves the view up since the toolbar is at the bottom
+ // move the view up since the toolbar is at the bottom
+ mContainerViewModel.set(TOP_MARGIN, 0);
+ }
mContainerViewModel.set(SHADOW_TOP_OFFSET, contentOffset);
@ -1608,7 +1608,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
+ // use all available space
+ availableScreenSpace = appDimensions.height() - anchorViewImpactHeight;
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) {
+ // due to a bug in A7, the popup does not appear above the anchorview.
+ // due to an Android Nougat bug the popup does not appear above the anchorview.
+ // the display is not pleasant, so we reduce the space
+ availableScreenSpace -= anchorView.getHeight();
+ }
@ -1634,11 +1634,11 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
+ // reverses the order of items in the menu
+ ModelList modelListReverted = new ModelList();
+ ModelList modelListReversed = new ModelList();
+ for (int i = 0; i < modelList.size(); i++) {
+ modelListReverted.add(0, modelList.get(i));
+ modelListReversed.add(0, modelList.get(i));
+ }
+ modelList = modelListReverted;
+ modelList = modelListReversed;
+ }
+
ContextThemeWrapper wrapper =

View file

@ -12,7 +12,7 @@ Search suggestions, autofill assistant and contextual search
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -64,6 +64,19 @@
@@ -59,6 +59,19 @@
android:key="privacy_sandbox"
android:title="@string/prefs_privacy_sandbox"
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/>
@ -35,7 +35,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
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
@@ -52,6 +52,12 @@ import org.chromium.components.user_prefs.UserPrefs;
@@ -46,6 +46,12 @@ import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.text.NoUnderlineClickableSpan;
import org.chromium.ui.text.SpanApplier;
@ -48,7 +48,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
@@ -76,6 +82,16 @@ public class PrivacySettings
@@ -65,6 +71,16 @@ public class PrivacySettings
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
private ViewGroup mDialogContainer;
@@ -125,6 +141,16 @@ public class PrivacySettings
@@ -114,6 +130,16 @@ public class PrivacySettings
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
@ -82,17 +82,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
ChromeSwitchPreference canMakePaymentPref =
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
canMakePaymentPref.setOnPreferenceChangeListener(this);
@@ -163,6 +189,9 @@ public class PrivacySettings
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@@ -152,6 +178,9 @@ public class PrivacySettings
.setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
}
return true;
+ } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
+ .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
} else if (PREF_ALWAYS_INCOGNITO.equals(key)) {
AlwaysIncognitoLinkInterceptor.setAlwaysIncognito((boolean) newValue);
if (!mSnackbarManager.isShowing()) {
@@ -190,7 +219,7 @@ public class PrivacySettings
}
@Override
@@ -164,7 +193,7 @@ public class PrivacySettings
* Updates the preferences.
*/
public void updatePreferences() {

View file

@ -10,7 +10,7 @@ See https://github.com/bromite/bromite/issues/1472
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -1330,6 +1330,12 @@ public class ExternalNavigationHandler {
@@ -1331,6 +1331,12 @@ public class ExternalNavigationHandler {
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
}

View file

@ -39,7 +39,7 @@ See also:
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -7573,6 +7573,18 @@ const FeatureEntry kFeatureEntries[] = {
@@ -7577,6 +7577,18 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kUIDebugTools),
},
#endif

View file

@ -250,7 +250,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
@@ -935,10 +934,6 @@ chrome_java_sources = [
@@ -936,10 +935,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
"java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivity.java",
@ -403,7 +403,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -85,9 +85,4 @@
@@ -80,9 +80,4 @@
android:summary="@string/autocomplete_searches_and_urls_summary"
android:persistent="false"/>
</PreferenceCategory>
@ -863,15 +863,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
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
@@ -80,7 +80,6 @@ public class PrivacySettings
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@@ -69,7 +69,6 @@ public class PrivacySettings
private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_REVIEW = "privacy_review";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
- private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
@@ -185,10 +184,6 @@ public class PrivacySettings
@@ -174,10 +173,6 @@ public class PrivacySettings
return true;
});
@ -879,9 +879,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
- phoneAsASecurityKey.setVisible(
- ChromeFeatureList.isEnabled(ChromeFeatureList.WEB_AUTH_PHONE_SUPPORT));
-
ChromeSwitchPreference historyInIncognitoPref =
(ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
historyInIncognitoPref.setOnPreferenceChangeListener(this);
updatePreferences();
}
diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/modules/chrome_feature_modules.gni
--- a/chrome/android/modules/chrome_feature_modules.gni
+++ b/chrome/android/modules/chrome_feature_modules.gni

View file

@ -843,7 +843,7 @@ diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrom
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -72,10 +72,6 @@
@@ -67,10 +67,6 @@
android:title="@string/autocomplete_searches_and_urls_title"
android:summary="@string/autocomplete_searches_and_urls_summary"
android:persistent="false"/>
@ -1178,7 +1178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Tab
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
@@ -54,7 +54,6 @@ import org.chromium.ui.text.SpanApplier;
@@ -48,7 +48,6 @@ import org.chromium.ui.text.SpanApplier;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceCategory;
@ -1186,7 +1186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
@@ -85,9 +84,7 @@ public class PrivacySettings
@@ -74,9 +73,7 @@ public class PrivacySettings
// moved from SyncAndServicesSettings.java
private static final String PREF_SERVICES_CATEGORY = "services_category";
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
@ -1196,7 +1196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private final SharedPreferencesManager mSharedPreferencesManager =
SharedPreferencesManager.getInstance();
private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
@@ -145,12 +142,6 @@ public class PrivacySettings
@@ -134,12 +131,6 @@ public class PrivacySettings
mSearchSuggestions.setOnPreferenceChangeListener(this);
mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
@ -1628,7 +1628,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
“Do Not Track”
</message>
@@ -3851,41 +3808,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3861,41 +3818,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Tabs
</message>

View file

@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
{"pull-to-refresh", flag_descriptions::kPullToRefreshName,
flag_descriptions::kPullToRefreshDescription, kOsAura,
MULTI_VALUE_TYPE(kPullToRefreshChoices)},
@@ -8046,6 +8046,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -8050,6 +8050,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kDesksTrackpadSwipeImprovementsDescription, kOsCrOS,
FEATURE_VALUE_TYPE(ash::features::kEnableDesksTrackpadSwipeImprovements)},
#endif
@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
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
@@ -3610,6 +3610,11 @@ const char kSendTabToSelfV2Description[] =
@@ -3616,6 +3616,11 @@ const char kSendTabToSelfV2Description[] =
"Enables new received tab "
"UI shown next to the profile icon instead of using system notifications.";
@ -73,7 +73,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2065,6 +2065,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[];
@@ -2068,6 +2068,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[];
extern const char kSendTabToSelfV2Name[];
extern const char kSendTabToSelfV2Description[];

View file

@ -310,7 +310,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4282,6 +4282,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4286,6 +4286,9 @@ const FeatureEntry kFeatureEntries[] = {
SINGLE_VALUE_TYPE_AND_VALUE(
switches::kForceShowUpdateMenuItemCustomSummary,
"Custom Summary")},
@ -323,7 +323,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -3644,6 +3644,9 @@ const char kStartSurfaceAndroidDescription[] =
@@ -3650,6 +3650,9 @@ const char kStartSurfaceAndroidDescription[] =
"Enable showing the start surface when launching Chrome via the "
"launcher.";
@ -336,7 +336,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2083,6 +2083,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[];
@@ -2086,6 +2086,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[];
extern const char kSmartSuggestionForLargeDownloadsName[];
extern const char kSmartSuggestionForLargeDownloadsDescription[];

View file

@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
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
@@ -3515,6 +3515,10 @@ const char kReadLaterDescription[] =
@@ -3521,6 +3521,10 @@ const char kReadLaterDescription[] =
"Allow users to save tabs for later. Enables a new button and menu for "
"accessing tabs saved for later.";
@ -56,7 +56,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2012,6 +2012,9 @@ extern const char kQueryTilesSegmentationDescription[];
@@ -2015,6 +2015,9 @@ extern const char kQueryTilesSegmentationDescription[];
extern const char kQueryTilesSwapTrendingName[];
extern const char kQueryTilesSwapTrendingDescription[];

View file

@ -1085,7 +1085,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
--- a/components/content_settings/core/browser/host_content_settings_map.h
+++ b/components/content_settings/core/browser/host_content_settings_map.h
@@ -335,6 +335,9 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -334,6 +334,9 @@ class HostContentSettingsMap : public content_settings::Observer,
allow_invalid_secondary_pattern_for_testing_ = allow;
}

View file

@ -70,7 +70,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -697,4 +697,6 @@ chrome_java_resources = [
@@ -698,4 +698,6 @@ chrome_java_resources = [
"java/res/xml/privacy_preferences.xml",
"java/res/xml/search_widget_info.xml",
"java/res/xml/tracing_preferences.xml",
@ -1034,7 +1034,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -1197,6 +1197,14 @@ extern const char kDesktopSharingHubEnabled[];
@@ -1198,6 +1198,14 @@ extern const char kDesktopSharingHubEnabled[];
#if !BUILDFLAG(IS_ANDROID)
extern const char kLastWhatsNewVersion[];
#endif

View file

@ -0,0 +1,716 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Fri, 29 Apr 2022 00:31:49 +0200
Subject: Welcome screen
Allow toggling automatic updates
---
.../android/java/res/layout/fre_tosanduma.xml | 4 +-
.../browser/firstrun/FirstRunActivity.java | 58 +------
.../firstrun/FirstRunFlowSequencer.java | 81 ++-------
.../browser/firstrun/FirstRunUtils.java | 13 +-
.../firstrun/ToSAndUMAFirstRunFragment.java | 163 +++++-------------
.../strings/android_chrome_strings.grd | 27 ++-
6 files changed, 96 insertions(+), 250 deletions(-)
diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
--- a/chrome/android/java/res/layout/fre_tosanduma.xml
+++ b/chrome/android/java/res/layout/fre_tosanduma.xml
@@ -86,11 +86,11 @@
android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
<CheckBox
- android:id="@+id/send_report_checkbox"
+ android:id="@+id/auto_updater_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lineSpacingMultiplier="1.4"
- android:text="@string/fre_send_report_check"
+ android:text="@string/auto_updater_check"
android:paddingStart="@dimen/fre_tos_checkbox_padding"
android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
</LinearLayout>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
@@ -31,8 +31,6 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.fonts.FontPreloader;
import org.chromium.chrome.browser.metrics.UmaUtils;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
-import org.chromium.chrome.browser.signin.SigninFirstRunFragment;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -96,8 +94,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Nullable
private static FirstRunActivityObserver sObserver;
- private String mResultSyncConsentAccountName;
-
private boolean mPostNativeAndPolicyPagesCreated;
// Use hasValue() to simplify access. Will be null before initialized.
private final OneshotSupplierImpl<Boolean> mNativeSideIsInitializedSupplier =
@@ -146,18 +142,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
/** Creates first page and sets up adapter. Should result UI being shown on the screen. */
private void createFirstPage() {
BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
- if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
- mPages.add(new FirstRunPage<>(SigninFirstRunFragment.class, showWelcomePage));
- } else {
- // TODO(crbug.com/1111490): Revisit during post-MVP.
- // There's an edge case where we accept the welcome page in the main app, abort the FRE,
- // then go through this CCT FRE again.
- mPages.add(shouldCreateEnterpriseCctTosPage()
- ? new FirstRunPage<>(
- TosAndUmaFirstRunFragmentWithEnterpriseSupport.class,
- showWelcomePage)
- : new FirstRunPage<>(ToSAndUMAFirstRunFragment.class, showWelcomePage));
- }
+ mPages.add(new FirstRunPage<>(ToSAndUMAFirstRunFragment.class, showWelcomePage));
mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN);
mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages);
mPager.setAdapter(mPagerAdapter);
@@ -165,15 +150,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
// native and policy service have been initialized.
}
- private boolean shouldCreateEnterpriseCctTosPage() {
- // TODO(crbug.com/1111490): Revisit case when #shouldSkipWelcomePage = true.
- // If the client has already accepted ToS (FirstRunStatus#shouldSkipWelcomePage), do not
- // use the subclass ToSAndUmaCCTFirstRunFragment. Instead, use the base class
- // (ToSAndUMAFirstRunFragment) which simply shows a loading spinner while waiting for
- // native to be loaded.
- return mLaunchedFromCCT && !FirstRunStatus.shouldSkipWelcomePage();
- }
-
/**
* Create the page sequence which requires native initialized, and policies loaded if any
* on-device policies may exists.
@@ -187,7 +163,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
BooleanSupplier showSearchEnginePromo =
() -> mFreProperties.getBoolean(SHOW_SEARCH_ENGINE_PAGE);
- BooleanSupplier showSyncConsent = () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE);
// An optional page to select a default search engine.
if (showSearchEnginePromo.getAsBoolean()) {
@@ -196,11 +171,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN);
}
- // An optional sync consent page, the visibility of this page will be decided on the fly
- // according to the situation.
- mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent));
- mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN);
-
if (mPagerAdapter != null) {
mPagerAdapter.notifyDataSetChanged();
}
@@ -245,10 +215,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Override
public void triggerLayoutInflation() {
- // Generate trial group as early as possible to guarantee it's available by the time native
- // needs to register the synthetic trial group. See https://crbug.com/1295692 for details.
- FREMobileIdentityConsistencyFieldTrial.createFirstRunTrial();
-
initializeStateFromLaunchData();
RecordHistogram.recordTimesHistogram("MobileFre.FromLaunch.TriggerLayoutInflation",
SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
@@ -256,8 +222,12 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
setFinishOnTouchOutside(true);
setContentView(createContentView());
- ViewDrawBlocker.blockViewDrawUntilReady(
+ if (mPagerAdapter == null) {
+ createFirstPage();
+ } else {
+ ViewDrawBlocker.blockViewDrawUntilReady(
findViewById(android.R.id.content), () -> mPages.size() > 0);
+ }
mFirstRunFlowSequencer = new FirstRunFlowSequencer(this) {
@Override
@@ -462,12 +432,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
public void completeFirstRunExperience() {
RecordHistogram.recordMediumTimesHistogram("MobileFre.FromLaunch.FreCompleted",
SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
- if (mFreProperties.getBoolean(OPEN_ADVANCED_SYNC_SETTINGS)) {
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_SETTINGS_LINK_CLICK);
- }
- FirstRunFlowSequencer.markFlowAsCompleted(mResultSyncConsentAccountName,
- mFreProperties.getBoolean(OPEN_ADVANCED_SYNC_SETTINGS));
+ FirstRunFlowSequencer.markFlowAsCompleted();
if (sObserver != null) sObserver.onUpdateCachedEngineName(this);
@@ -510,16 +476,10 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Override
public void refuseSync() {
- mResultSyncConsentAccountName = null;
- mFreProperties.putBoolean(OPEN_ADVANCED_SYNC_SETTINGS, false);
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_DISMISSED);
}
@Override
public void acceptSync(String accountName, boolean openSettings) {
- mResultSyncConsentAccountName = accountName;
- mFreProperties.putBoolean(OPEN_ADVANCED_SYNC_SETTINGS, openSettings);
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_ACCEPTED);
}
@Override
@@ -536,10 +496,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
public void acceptTermsOfService(boolean allowCrashUpload) {
assert mNativeSideIsInitializedSupplier.hasValue();
- // If default is true then it corresponds to opt-out and false corresponds to opt-in.
- UmaUtils.recordMetricsReportingDefaultOptIn(!DEFAULT_METRICS_AND_CRASH_REPORTING);
- RecordHistogram.recordMediumTimesHistogram("MobileFre.FromLaunch.TosAccepted",
- SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
FirstRunUtils.acceptTermsOfService(allowCrashUpload);
FirstRunStatus.setSkipWelcomePage(true);
flushPersistentData();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
@@ -26,15 +26,8 @@ import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.SearchEnginePromoType;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
-import org.chromium.chrome.browser.signin.services.SigninManager;
import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.components.embedder_support.util.UrlConstants;
-import org.chromium.components.signin.AccountManagerFacadeProvider;
-import org.chromium.components.signin.AccountUtils;
-import org.chromium.components.signin.identitymanager.ConsentLevel;
-import org.chromium.components.signin.identitymanager.IdentityManager;
import java.util.List;
@@ -59,27 +52,7 @@ public abstract class FirstRunFlowSequencer {
/** Returns true if the sync consent promo page should be shown. */
boolean shouldShowSyncConsentPage(
Activity activity, List<Account> accounts, boolean isChild) {
- if (isChild) {
- // Always show the sync consent page for child account.
- return true;
- }
- final IdentityManager identityManager =
- IdentityServicesProvider.get().getIdentityManager(
- Profile.getLastUsedRegularProfile());
- if (identityManager.hasPrimaryAccount(ConsentLevel.SYNC) || !isSyncAllowed()) {
- // No need to show the sync consent page if users already consented to sync or
- // if sync is not allowed.
return false;
- }
- if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
- // Show the sync consent page only to the signed-in users.
- return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN);
- } else {
- // We show the sync consent page if sync is allowed, and not signed in, and
- // - "skip the first use hints" is not set, or
- // - "skip the first use hints" is set, but there is at least one account.
- return !shouldSkipFirstUseHints(activity) || !accounts.isEmpty();
- }
}
/** @return true if the Search Engine promo page should be shown. */
@@ -94,10 +67,7 @@ public abstract class FirstRunFlowSequencer {
/** @return true if Sync is allowed for the current user. */
@VisibleForTesting
protected boolean isSyncAllowed() {
- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
- return FirstRunUtils.canAllowSync() && !signinManager.isSigninDisabledByPolicy()
- && signinManager.isSigninSupported();
+ return false;
}
/** @return true if first use hints should be skipped. */
@@ -141,19 +111,8 @@ public abstract class FirstRunFlowSequencer {
* Once finished, calls onFlowIsKnown().
*/
void start() {
- long childAccountStatusStart = SystemClock.elapsedRealtime();
- AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> {
- AccountUtils.checkChildAccountStatus(
- AccountManagerFacadeProvider.getInstance(), accounts, (isChild, account) -> {
- RecordHistogram.recordCountHistogram(
- "Signin.AndroidDeviceAccountsNumberWhenEnteringFRE",
- Math.min(accounts.size(), 2));
- RecordHistogram.recordTimesHistogram("MobileFre.ChildAccountStatusDuration",
- SystemClock.elapsedRealtime() - childAccountStatusStart);
- initializeSharedState(isChild, accounts);
- processFreEnvironmentPreNative();
- });
- });
+ mIsChild = false;
+ processFreEnvironmentPreNative();
}
@VisibleForTesting
@@ -162,22 +121,15 @@ public abstract class FirstRunFlowSequencer {
}
private boolean shouldShowSyncConsentPage() {
- return mDelegate.shouldShowSyncConsentPage(mActivity, mGoogleAccounts, mIsChild);
+ return false;
}
@VisibleForTesting
protected void setFirstRunFlowSignInComplete() {
- FirstRunSignInProcessor.setFirstRunFlowSignInComplete(true);
- }
-
- private void initializeSharedState(boolean isChild, List<Account> accounts) {
- mIsChild = isChild;
- mGoogleAccounts = accounts;
}
private void processFreEnvironmentPreNative() {
Bundle freProperties = new Bundle();
- freProperties.putBoolean(SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, mIsChild);
onFlowIsKnown(freProperties);
if (mIsChild) {
@@ -191,8 +143,8 @@ public abstract class FirstRunFlowSequencer {
* @param freProperties Resulting FRE properties bundle.
*/
public void updateFirstRunProperties(Bundle freProperties) {
- freProperties.putBoolean(
- FirstRunActivity.SHOW_SYNC_CONSENT_PAGE, shouldShowSyncConsentPage());
+ if (freProperties == null)
+ throw new RuntimeException("attempting to update null FRE properties");
freProperties.putBoolean(
FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
}
@@ -202,17 +154,15 @@ public abstract class FirstRunFlowSequencer {
* @param syncConsentAccountName The account name for the pending sign-in request. (Or null)
* @param showAdvancedSyncSettings Whether the user selected to see the settings once signed in.
*/
- public static void markFlowAsCompleted(
- String syncConsentAccountName, boolean showAdvancedSyncSettings) {
+ public static void markFlowAsCompleted() {
// When the user accepts ToS in the Setup Wizard, we do not show the ToS page to the user
// because the user has already accepted one outside FRE.
if (!FirstRunUtils.isFirstRunEulaAccepted()) {
FirstRunUtils.setEulaAccepted();
}
- // Mark the FRE flow as complete and set the sign-in flow preferences if necessary.
- FirstRunSignInProcessor.finalizeFirstRunFlowState(
- syncConsentAccountName, showAdvancedSyncSettings);
+ // Mark the FRE flow as complete.
+ FirstRunStatus.setFirstRunFlowComplete(true);
}
/**
@@ -257,6 +207,7 @@ public abstract class FirstRunFlowSequencer {
|| FirstRunStatus.getLightweightFirstRunFlowComplete())) {
return false;
}
+
return true;
}
@@ -304,15 +255,21 @@ public abstract class FirstRunFlowSequencer {
freIntent =
VrModuleProvider.getIntentDelegate().setupVrFreIntent(caller, freIntent);
// We cannot access Chrome right now, e.g. because the VR module is not installed.
- if (freIntent == null) return true;
+ if (freIntent == null) {
+ throw new RuntimeException("Cannot access Bromite right now");
+ }
+ }
+ if (!IntentUtils.safeStartActivity(caller, freIntent)) {
+ throw new RuntimeException("Cannot start FirstRunExperience activity");
}
- IntentUtils.safeStartActivity(caller, freIntent);
} else {
// First Run requires that the Intent contains NEW_TASK so that it doesn't sit on top
// of something else.
Intent newIntent = new Intent(fromIntent);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- IntentUtils.safeStartActivity(caller, newIntent);
+ if (!IntentUtils.safeStartActivity(caller, newIntent)) {
+ throw new RuntimeException("Cannot start FirstRunExperience activity");
+ }
}
return true;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
@@ -17,9 +17,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
-import org.chromium.components.signin.AccountManagerFacade;
-import org.chromium.components.signin.AccountManagerFacadeProvider;
-import org.chromium.components.signin.AccountUtils;
/** Provides first run related utility functions. */
public class FirstRunUtils {
@@ -80,24 +77,20 @@ public class FirstRunUtils {
* @return Whether or not sync is allowed on this device.
*/
static boolean canAllowSync() {
- return (hasGoogleAccountAuthenticator() && hasSyncPermissions()) || hasGoogleAccounts();
+ return false;
}
@VisibleForTesting
static boolean hasGoogleAccountAuthenticator() {
if (sHasGoogleAccountAuthenticator == null) {
- AccountManagerFacade accountHelper = AccountManagerFacadeProvider.getInstance();
- sHasGoogleAccountAuthenticator = accountHelper.hasGoogleAccountAuthenticator();
+ sHasGoogleAccountAuthenticator = false;
}
return sHasGoogleAccountAuthenticator;
}
@VisibleForTesting
static boolean hasGoogleAccounts() {
- return !AccountUtils
- .getAccountsIfFulfilledOrEmpty(
- AccountManagerFacadeProvider.getInstance().getAccounts())
- .isEmpty();
+ return false;
}
@SuppressLint("InlinedApi")
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
@@ -16,16 +16,18 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
+import android.content.SharedPreferences;
+import org.chromium.chrome.browser.omaha.OmahaBase;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
+import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
-import org.chromium.chrome.browser.ui.signin.fre.FreUMADialogCoordinator;
import org.chromium.components.version_info.VersionInfo;
import org.chromium.ui.modaldialog.ModalDialogManagerHolder;
import org.chromium.ui.text.NoUnderlineClickableSpan;
@@ -41,7 +43,7 @@ import java.util.List;
* User Metrics Analysis) as defined in the Chrome Privacy Notice.
*/
public class ToSAndUMAFirstRunFragment
- extends Fragment implements FirstRunFragment, FreUMADialogCoordinator.Listener {
+ extends Fragment implements FirstRunFragment {
/** Alerts about some methods once ToSAndUMAFirstRunFragment executes them. */
public interface Observer {
/** See {@link #onNativeInitialized}. */
@@ -58,11 +60,10 @@ public class ToSAndUMAFirstRunFragment
private boolean mNativeInitialized;
private boolean mPolicyServiceInitialized;
private boolean mTosButtonClicked;
- // TODO(https://crbug.com/1274145): Rename mAllowCrashUpload field.
- private boolean mAllowCrashUpload;
private Button mAcceptButton;
- private CheckBox mSendReportCheckBox;
+ private CheckBox mAutoUpdaterCheckBox;
+ private boolean mAutoUpdaterChecked;
private TextView mTosAndPrivacy;
private View mTitle;
private View mProgressSpinner;
@@ -89,13 +90,15 @@ public class ToSAndUMAFirstRunFragment
mProgressSpinner = view.findViewById(R.id.progress_spinner);
mProgressSpinner.setVisibility(View.GONE);
mAcceptButton = (Button) view.findViewById(R.id.terms_accept);
- mSendReportCheckBox = (CheckBox) view.findViewById(R.id.send_report_checkbox);
+ mAutoUpdaterCheckBox = (CheckBox) view.findViewById(R.id.auto_updater_checkbox);
mTosAndPrivacy = (TextView) view.findViewById(R.id.tos_and_privacy);
// Register event listeners.
mAcceptButton.setOnClickListener((v) -> onTosButtonClicked());
- mSendReportCheckBox.setOnCheckedChangeListener(
- ((compoundButton, isChecked) -> mAllowCrashUpload = isChecked));
+ mAutoUpdaterCheckBox.setOnCheckedChangeListener(
+ ((compoundButton, isChecked) -> {
+ mAutoUpdaterChecked = isChecked;
+ }));
// Make TextView links clickable.
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
@@ -111,7 +114,9 @@ public class ToSAndUMAFirstRunFragment
// initialized at which point the activity will skip the page.
// We distinguish case 1 from case 2 by the value of |mNativeInitialized|, as that is set
// via onAttachFragment() from FirstRunActivity - which is before this onViewCreated().
- if (isWaitingForNativeAndPolicyInit() && FirstRunStatus.shouldSkipWelcomePage()) {
+ boolean isW = isWaitingForNativeAndPolicyInit();
+ boolean ssw = FirstRunStatus.shouldSkipWelcomePage();
+ if (isW && ssw) {
setSpinnerVisible(true);
}
}
@@ -137,7 +142,7 @@ public class ToSAndUMAFirstRunFragment
// On certain versions of Android, the checkbox will appear unchecked upon revisiting
// the page. Force it to the end state of the drawable animation as a work around.
// crbug.com/666258
- mSendReportCheckBox.jumpDrawablesToCurrentState();
+ mAutoUpdaterCheckBox.jumpDrawablesToCurrentState();
}
}
@@ -164,13 +169,8 @@ public class ToSAndUMAFirstRunFragment
assert !isWaitingForNativeAndPolicyInit();
setSpinnerVisible(false);
- mSendReportCheckBox.setChecked(mAllowCrashUpload);
- }
-
- /** Implements {@link FreUMADialogCoordinator.Listener} */
- @Override
- public void onAllowCrashUploadChecked(boolean allowCrashUpload) {
- mAllowCrashUpload = allowCrashUpload;
+ // always checked, regardless of current preference state
+ mAutoUpdaterCheckBox.setChecked(true);
}
private void updateView() {
@@ -179,110 +179,39 @@ public class ToSAndUMAFirstRunFragment
return;
}
- final boolean umaDialogMayBeShown =
- FREMobileIdentityConsistencyFieldTrial.shouldShowOldFreWithUmaDialog();
- final boolean hasChildAccount = getPageDelegate().getProperties().getBoolean(
- SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, false);
- final boolean isMetricsReportingDisabledByPolicy = !isWaitingForNativeAndPolicyInit()
- && !PrivacyPreferencesManagerImpl.getInstance()
- .isUsageAndCrashReportingPermittedByPolicy();
+ updateTosText();
- updateTosText(umaDialogMayBeShown, hasChildAccount, isMetricsReportingDisabledByPolicy);
-
- updateReportCheckbox(umaDialogMayBeShown, isMetricsReportingDisabledByPolicy);
+ updateReportCheckbox();
}
- private SpanInfo buildTermsOfServiceLink() {
- NoUnderlineClickableSpan clickableGoogleTermsSpan =
+ private SpanInfo buildPrivacyPolicyLink(String suffix, int url) {
+ NoUnderlineClickableSpan clickableSpan =
new NoUnderlineClickableSpan(getContext(), (view1) -> {
if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.google_terms_of_service_url);
+ getPageDelegate().showInfoPage(url);
});
- return new SpanInfo("<TOS_LINK>", "</TOS_LINK>", clickableGoogleTermsSpan);
- }
-
- private SpanInfo buildAdditionalTermsOfServiceLink() {
- NoUnderlineClickableSpan clickableChromeAdditionalTermsSpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> {
- if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.chrome_additional_terms_of_service_url);
- });
- return new SpanInfo("<ATOS_LINK>", "</ATOS_LINK>", clickableChromeAdditionalTermsSpan);
- }
-
- private SpanInfo buildPrivacyPolicyLink() {
- NoUnderlineClickableSpan clickableFamilyLinkPrivacySpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> {
- if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.google_privacy_policy_url);
- });
-
- return new SpanInfo("<PRIVACY_LINK>", "</PRIVACY_LINK>", clickableFamilyLinkPrivacySpan);
- }
- private SpanInfo buildMetricsAndCrashReportingLink() {
- NoUnderlineClickableSpan clickableUMADialogSpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> openUmaDialog());
- return new SpanInfo("<UMA_LINK>", "</UMA_LINK>", clickableUMADialogSpan);
+ return new SpanInfo("<PRIVACY_LINK" + suffix + ">", "</PRIVACY_LINK" + suffix + ">", clickableSpan);
}
- private void updateTosText(boolean umaDialogMayBeShown, boolean hasChildAccount,
- boolean isMetricsReportingDisabledByPolicy) {
+ private void updateTosText() {
List<SpanInfo> spans = new LinkedList<SpanInfo>();
- // Description always has a Terms of Service link.
- spans.add(buildTermsOfServiceLink());
+ spans.add(buildPrivacyPolicyLink("1", R.string.adblock_wiki_url));
- // Additional terms of service link.
- if (!umaDialogMayBeShown) {
- spans.add(buildAdditionalTermsOfServiceLink());
- }
+ spans.add(buildPrivacyPolicyLink("2", R.string.adblock_updater_privacy_policy_url));
- // Privacy policy link.
- if (hasChildAccount) {
- spans.add(buildPrivacyPolicyLink());
- }
+ spans.add(buildPrivacyPolicyLink("3", R.string.auto_updates_wiki_url));
- // Metrics and crash reporting link.
- if (umaDialogMayBeShown && !isMetricsReportingDisabledByPolicy) {
- spans.add(buildMetricsAndCrashReportingLink());
- }
+ spans.add(buildPrivacyPolicyLink("4", R.string.bromite_updater_privacy_policy_url));
- String tosString;
- if (umaDialogMayBeShown) {
- tosString =
- getString(hasChildAccount ? R.string.signin_fre_footer_tos_with_supervised_user
- : R.string.signin_fre_footer_tos);
-
- if (!isMetricsReportingDisabledByPolicy) {
- tosString += "\n" + getString(R.string.signin_fre_footer_metrics_reporting);
- }
- } else {
- tosString = getString(hasChildAccount ? R.string.fre_tos_and_privacy_child_account
- : R.string.fre_tos);
- }
+ String tosString = getString(R.string.bromite_fre_footer_privacy_policy);
mTosAndPrivacy.setText(SpanApplier.applySpans(tosString, spans.toArray(new SpanInfo[0])));
}
- private void updateReportCheckbox(
- boolean umaDialogMayBeShown, boolean isMetricsReportingDisabledByPolicy) {
- mAllowCrashUpload = getUmaCheckBoxInitialState();
- mSendReportCheckBox.setChecked(mAllowCrashUpload);
-
- if (!canShowUmaCheckBox()) {
- if (!umaDialogMayBeShown) {
- mAllowCrashUpload = (sShowUmaCheckBoxForTesting || VersionInfo.isOfficialBuild())
- && !isMetricsReportingDisabledByPolicy;
- }
- mSendReportCheckBox.setVisibility(View.GONE);
- }
- }
-
- private void openUmaDialog() {
- new FreUMADialogCoordinator(requireContext(),
- ((ModalDialogManagerHolder) getActivity()).getModalDialogManager(), this,
- mAllowCrashUpload);
+ private void updateReportCheckbox() {
+ mAutoUpdaterCheckBox.setChecked(true);
}
private void onPolicyServiceInitialized(boolean onDevicePolicyFound) {
@@ -309,6 +238,12 @@ public class ToSAndUMAFirstRunFragment
private void onTosButtonClicked() {
mTosButtonClicked = true;
mTosAcceptedTime = SystemClock.elapsedRealtime();
+
+ // save updater configuration only on button click
+ SharedPreferences.Editor sharedPreferenceEditor = OmahaBase.getSharedPreferences().edit();
+ sharedPreferenceEditor.putBoolean(OmahaBase.PREF_ALLOW_INLINE_UPDATE, mAutoUpdaterChecked);
+ sharedPreferenceEditor.apply();
+
tryMarkTermsAccepted(true);
}
@@ -319,7 +254,8 @@ public class ToSAndUMAFirstRunFragment
* @param fromButtonClicked Whether called from {@link #onTosButtonClicked()}.
*/
private void tryMarkTermsAccepted(boolean fromButtonClicked) {
- if (!mTosButtonClicked || isWaitingForNativeAndPolicyInit()) {
+ boolean isW = isWaitingForNativeAndPolicyInit();
+ if (!mTosButtonClicked || isW) {
if (fromButtonClicked) setSpinnerVisible(true);
return;
}
@@ -330,7 +266,7 @@ public class ToSAndUMAFirstRunFragment
RecordHistogram.recordTimesHistogram("MobileFre.TosFragment.SpinnerVisibleDuration",
SystemClock.elapsedRealtime() - mTosAcceptedTime);
}
- getPageDelegate().acceptTermsOfService(mAllowCrashUpload);
+ getPageDelegate().acceptTermsOfService(false);
getPageDelegate().advanceToNextPage();
}
@@ -373,10 +309,7 @@ public class ToSAndUMAFirstRunFragment
mAcceptButton.setVisibility(visibility);
mTosAndPrivacy.setVisibility(visibility);
- // Avoid updating visibility if the UMA check box can't be shown right now.
- if (canShowUmaCheckBox()) {
- mSendReportCheckBox.setVisibility(visibility);
- }
+ mAutoUpdaterCheckBox.setVisibility(visibility);
}
protected View getToSAndPrivacyText() {
@@ -389,18 +322,6 @@ public class ToSAndUMAFirstRunFragment
}
}
- /**
- * @return Whether the check box for Uma metrics can be shown. It should be used in conjunction
- * with whether other non-spinner elements can generally be shown.
- */
- protected boolean canShowUmaCheckBox() {
- return !FREMobileIdentityConsistencyFieldTrial.shouldShowOldFreWithUmaDialog()
- && (sShowUmaCheckBoxForTesting || VersionInfo.isOfficialBuild())
- && (isWaitingForNativeAndPolicyInit()
- || PrivacyPreferencesManagerImpl.getInstance()
- .isUsageAndCrashReportingPermittedByPolicy());
- }
-
@VisibleForTesting
public static void setShowUmaCheckBoxForTesting(boolean showForTesting) {
sShowUmaCheckBoxForTesting = showForTesting;
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
@@ -2817,11 +2817,30 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_LIGHTWEIGHT_FRE_ASSOCIATED_APP_TOS_AND_PRIVACY_CHILD_ACCOUNT" desc="Message explaining that use of Chrome is governed by Chrome's terms of service, and the Google Privacy Policy.">
<ph name="APP_NAME">%1$s<ex>Google Maps</ex></ph> will open in Chrome. By continuing, you agree to the <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>Google Terms of Service<ph name="END_LINK1">&lt;/LINK1&gt;</ph>, and the <ph name="BEGIN_LINK2">&lt;LINK2&gt;</ph>Google Chrome and Chrome OS Additional Terms of Service<ph name="END_LINK2">&lt;/LINK2&gt;</ph>. The <ph name="BEGIN_LINK3">&lt;LINK3&gt;</ph>Privacy Policy<ph name="END_LINK3">&lt;/LINK3&gt;</ph> also applies.
</message>
- <message name="IDS_FRE_SEND_REPORT_CHECK" desc="Text for asking the user to allow sending stats and crash reports">
- Help make Chrome better by sending usage statistics and crash reports to Google.
- </message>
<message name="IDS_FRE_ACCEPT_CONTINUE" desc="Text for first page accept and continue button [CHAR_LIMIT=20]">
- Accept &amp; continue
+ Continue
+ </message>
+ <message name="IDS_ADBLOCK_UPDATER_PRIVACY_POLICY_URL" desc="URL for privacy policy for the ad block updater" translateable="false">
+ https://docs.github.com/en/github/site-policy/github-privacy-statement#github-pages
+ </message>
+ <message name="IDS_BROMITE_UPDATER_PRIVACY_POLICY_URL" desc="URL for privacy policy for the Bromite auto updater" translateable="false">
+ https://docs.github.com/en/github/site-policy/github-privacy-statement#github-pages
+ </message>
+ <message name="IDS_BROMITE_FRE_FOOTER_PRIVACY_POLICY" desc="Message explaining the privacy policy of the file hosting service provider for adblock updates and Bromite app automatic updates">
+ <ph name="BEGIN_PRIVACY_LINK1">&lt;PRIVACY_LINK1&gt;</ph>Automatic ad block filters updates<ph name="END_PRIVACY_LINK1">&lt;/PRIVACY_LINK1&gt;</ph> are subject to the <ph name="BEGIN_PRIVACY_LINK2">&lt;PRIVACY_LINK2&gt;</ph>GitHub Privacy statement<ph name="END_PRIVACY_LINK2">&lt;/PRIVACY_LINK2&gt;</ph>; they cannot be disabled.
+ The following checkbox controls instead <ph name="BEGIN_PRIVACY_LINK3">&lt;PRIVACY_LINK3&gt;</ph>automatic app updates<ph name="END_PRIVACY_LINK3">&lt;/PRIVACY_LINK3&gt;</ph> which are also subject to the <ph name="BEGIN_PRIVACY_LINK4">&lt;PRIVACY_LINK4&gt;</ph>GitHub Privacy statement<ph name="END_PRIVACY_LINK4">&lt;/PRIVACY_LINK4&gt;</ph>.
+ </message>
+ <message name="IDS_AUTO_UPDATER_CHECK" desc="Message for the checkbox for automatic Bromite updates">
+ Automatic checks for Bromite app updates
+ </message>
+ <message name="IDS_UPDATER_PRIVACY_POLICY_URL" desc="URL for GitHub privacy statement" translateable="false">
+ https://docs.github.com/en/github/site-policy/github-privacy-statement#github-pages
+ </message>
+ <message name="IDS_ADBLOCK_WIKI_URL" desc="URL for Bromite wiki page about ad blocking" translateable="false">
+ https://github.com/bromite/bromite/wiki/AdBlocking
+ </message>
+ <message name="IDS_AUTO_UPDATES_WIKI_URL" desc="URL for Bromite wiki page about automatic updates" translateable="false">
+ https://github.com/bromite/bromite/wiki/AutomaticUpdates
</message>
<message name="IDS_FRE_WELCOME" desc="Text for greeting the user on Chrome First Run">
Welcome to Chrome
--
2.25.1