From b5a8dc1ebf537b7eb9531209a4777daa6988c893 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 9 Apr 2021 22:13:14 +0200 Subject: [PATCH 01/16] actual patch v89 --- build/patches/User-agent-customization.patch | 1275 ++++++++++++++++++ 1 file changed, 1275 insertions(+) create mode 100644 build/patches/User-agent-customization.patch diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch new file mode 100644 index 00000000..551d47f4 --- /dev/null +++ b/build/patches/User-agent-customization.patch @@ -0,0 +1,1275 @@ +From: uazo +Date: Mon, 26 Oct 2020 16:50:15 +0000 +Subject: User agent customization + +Add flag to always view the desktop site for all websites +Add possibility to define a custom User agent for mobile and desktop mode. +Add possibility to reactivate the metatag view for desktop mode, allowing users to choose +to use the flag in the hamburger menu to navigate with a custom useragent leaving the standard navigation unchanged. +--- + base/base_switches.cc | 2 + + base/base_switches.h | 2 + + chrome/android/chrome_java_resources.gni | 2 + + chrome/android/chrome_java_sources.gni | 1 + + .../layout/custom_useragent_preferences.xml | 108 ++++++++++ + .../android/java/res/xml/main_preferences.xml | 5 + + .../java/res/xml/useragent_preferences.xml | 31 +++ + .../chrome/browser/app/ChromeActivity.java | 21 +- + .../init/ChromeBrowserInitializer.java | 3 + + .../PrivacyPreferencesManagerImpl.java | 42 ++++ + .../settings/UserAgentPreferences.java | 185 ++++++++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 83 +++++++- + .../browser/android/content/content_utils.cc | 28 +++ + .../preferences/browser_prefs_android.cc | 7 + + .../privacy_preferences_manager_impl.cc | 114 +++++++++++ + chrome/browser/android/tab_android.cc | 5 +- + chrome/browser/android/tab_android.h | 3 +- + .../browser/chrome_content_browser_client.cc | 8 + + .../preferences/ChromePreferenceKeys.java | 7 +- + .../settings/PrivacyPreferencesManager.java | 8 + + .../org/chromium/chrome/browser/tab/Tab.java | 2 + + .../browser/tabmodel/TabWindowManager.java | 8 + + .../tabmodel/TabWindowManagerImpl.java | 18 ++ + .../strings/android_chrome_strings.grd | 35 ++++ + chrome/common/pref_names.cc | 13 ++ + chrome/common/pref_names.h | 8 + + .../widget/RadioButtonWithEditText.java | 11 ++ + .../navigation_controller_android.cc | 6 +- + .../navigation_controller_android.h | 3 +- + .../renderer_host/render_process_host_impl.cc | 1 + + .../browser/web_contents/web_contents_impl.cc | 4 +- + .../framehost/NavigationControllerImpl.java | 6 +- + content/renderer/render_thread_impl.cc | 1 - + 33 files changed, 767 insertions(+), 14 deletions(-) + create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml + create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java + +diff --git a/base/base_switches.cc b/base/base_switches.cc +--- a/base/base_switches.cc ++++ b/base/base_switches.cc +@@ -164,6 +164,8 @@ const char kForceFieldTrialParams[] = "force-fieldtrial-params"; + const char kEnableThreadInstructionCount[] = "enable-thread-instruction-count"; + #endif + ++const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; ++ + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + // Override the default scheduling boosting value for urgent tasks. + // This can be adjusted if a specific chromeos device shows better perf/power +diff --git a/base/base_switches.h b/base/base_switches.h +--- a/base/base_switches.h ++++ b/base/base_switches.h +@@ -66,6 +66,8 @@ extern const char kEnableThreadInstructionCount[]; + extern const char kSchedulerBoostUrgent[]; + #endif + ++extern const char kDesktopModeViewportMetaEnabled[]; ++ + } // namespace switches + + #endif // 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 +@@ -998,4 +998,6 @@ chrome_java_resources = [ + "java/res/xml/sync_and_services_preferences.xml", + "java/res/xml/theme_preferences.xml", + "java/res/xml/tracing_preferences.xml", ++ "java/res/xml/useragent_preferences.xml", ++ "java/res/layout/custom_useragent_preferences.xml", + ] +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 +@@ -1155,6 +1155,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", + "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", + "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", ++ "java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java", + "java/src/org/chromium/chrome/browser/payments/ui/PaymentInformation.java", + "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestBottomBar.java", + "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java", +diff --git a/chrome/android/java/res/layout/custom_useragent_preferences.xml b/chrome/android/java/res/layout/custom_useragent_preferences.xml +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/res/layout/custom_useragent_preferences.xml +@@ -0,0 +1,108 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml +--- a/chrome/android/java/res/xml/main_preferences.xml ++++ b/chrome/android/java/res/xml/main_preferences.xml +@@ -101,6 +101,11 @@ + android:key="content_settings" + android:order="19" + android:title="@string/prefs_site_settings"/> ++ + ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +@@ -72,6 +72,7 @@ import org.chromium.chrome.browser.app.flags.ChromeCachedFlags; + import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFactory; + import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; + import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; ++import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; + import org.chromium.chrome.browser.bookmarks.BookmarkBridge; + import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; + import org.chromium.chrome.browser.bookmarks.BookmarkModel; +@@ -209,6 +210,13 @@ import org.chromium.ui.widget.Toast; + import org.chromium.url.GURL; + import org.chromium.url.Origin; + import org.chromium.webapk.lib.client.WebApkNavigationClient; ++import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++ ++import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + + import org.chromium.url.GURL; + +@@ -2102,11 +2110,18 @@ public abstract class ChromeActivity + } else if (id == R.id.view_source_id) { + currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString())); + } else if (id == R.id.request_desktop_site_id || id == R.id.request_desktop_site_check_id) { +- final boolean reloadOnChange = !currentTab.isNativePage(); + final boolean usingDesktopUserAgent = + currentTab.getWebContents().getNavigationController().getUseDesktopUserAgent(); +- currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent( +- !usingDesktopUserAgent, reloadOnChange); ++ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, !usingDesktopUserAgent); ++ ++ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); ++ if (stickyDesktopModeEnabled) { ++ TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(!usingDesktopUserAgent); ++ } else { ++ currentTab.SetOverrideUserAgent(!usingDesktopUserAgent); ++ } + RecordUserAction.record("MobileMenuRequestDesktopSite"); + } else if (id == R.id.reader_mode_prefs_id) { + DomDistillerUIUtils.openSettings(currentTab.getWebContents()); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +@@ -47,6 +47,7 @@ import org.chromium.content_public.browser.SpeechRecognition; + import org.chromium.content_public.browser.UiThreadTaskTraits; + import org.chromium.net.NetworkChangeNotifier; + import org.chromium.ui.resources.ResourceExtractor; ++import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; + + import java.io.File; + import java.util.ArrayList; +@@ -322,11 +323,13 @@ public class ChromeBrowserInitializer { + + @Override + public void onSuccess() { ++ PrivacyPreferencesManagerImpl.getInstance().updateOverrideUserAgent(); + tasks.start(false); + } + }); + } else { + startChromeBrowserProcessesSync(); ++ PrivacyPreferencesManagerImpl.getInstance().updateOverrideUserAgent(); + tasks.start(true); + } + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java +@@ -162,6 +162,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager + return PrivacyPreferencesManagerImplJni.get().getNetworkPredictionManaged(); + } + ++ @Override ++ public void updateOverrideUserAgent() { ++ PrivacyPreferencesManagerImplJni.get().updateOverrideUserAgent(); ++ } ++ ++ @Override ++ public boolean isOverrideUserAgentEnabled(boolean desktopMode) { ++ return PrivacyPreferencesManagerImplJni.get().isOverrideUserAgentEnabled(desktopMode); ++ } ++ ++ @Override ++ public void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode) { ++ PrivacyPreferencesManagerImplJni.get().setOverrideUserAgentEnabled(enabled, desktopMode); ++ } ++ ++ @Override ++ public String getOverrideUserAgentValue(boolean desktopMode) { ++ return PrivacyPreferencesManagerImplJni.get().getOverrideUserAgentValue(desktopMode); ++ } ++ ++ @Override ++ public void setOverrideUserAgentValue(String user_agent, boolean desktopMode) { ++ PrivacyPreferencesManagerImplJni.get().setOverrideUserAgentValue(user_agent, desktopMode); ++ } ++ ++ @Override ++ public boolean isDesktopModeViewportMetaEnabled() { ++ return PrivacyPreferencesManagerImplJni.get().isDesktopModeViewportMetaEnabled(); ++ } ++ ++ @Override ++ public void setDesktopModeViewportMetaEnabled(boolean enabled) { ++ PrivacyPreferencesManagerImplJni.get().setDesktopModeViewportMetaEnabled(enabled); ++ } ++ + @NativeMethods + public interface Natives { + boolean canPrefetchAndPrerender(); +@@ -171,5 +206,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager + boolean isMetricsReportingEnabled(); + void setMetricsReportingEnabled(boolean enabled); + boolean isMetricsReportingManaged(); ++ void updateOverrideUserAgent(); ++ boolean isOverrideUserAgentEnabled(boolean desktopMode); ++ void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode); ++ String getOverrideUserAgentValue(boolean desktopMode); ++ void setOverrideUserAgentValue(String timezone, boolean desktopMode); ++ boolean isDesktopModeViewportMetaEnabled(); ++ void setDesktopModeViewportMetaEnabled(boolean enabled); + } + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java +@@ -0,0 +1,185 @@ ++/* ++ This file is part of Bromite. ++ ++ Bromite is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ ++ Bromite is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with Bromite. If not, see . ++*/ ++ ++package org.chromium.chrome.browser.settings; ++ ++import android.os.Bundle; ++import androidx.preference.Preference; ++import androidx.preference.PreferenceFragmentCompat; ++import androidx.preference.PreferenceViewHolder; ++import androidx.annotation.NonNull; ++import androidx.annotation.Nullable; ++import android.view.LayoutInflater; ++import android.widget.RadioGroup; ++import android.content.Context; ++import android.util.AttributeSet; ++import android.view.View; ++import android.view.ViewGroup; ++import android.widget.LinearLayout; ++import android.widget.ScrollView; ++import android.widget.CheckBox; ++import android.widget.CompoundButton; ++import androidx.recyclerview.widget.RecyclerView; ++ ++import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; ++import org.chromium.components.browser_ui.widget.RadioButtonWithDescription; ++import org.chromium.components.browser_ui.widget.RadioButtonWithEditText; ++import org.chromium.components.browser_ui.settings.SettingsUtils; ++ ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++ ++import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; ++import org.chromium.chrome.R; ++ ++/** ++ * Fragment that allows the user to configure User Agent related preferences. ++ */ ++public class UserAgentPreferences ++ extends PreferenceFragmentCompat implements RadioGroup.OnCheckedChangeListener { ++ ++ private static final String PREF_STICK_DESKTOP_MODE_SWITCH = "desktop_mode_switch"; ++ private RadioButtonWithDescription useDefaultAgentSwitch; ++ private RadioButtonWithEditText useCustomAgentSwitch; ++ private RadioButtonWithDescription useDefaultAgentSwitchDesktopMode; ++ private RadioButtonWithEditText useCustomAgentSwitchDesktopMode; ++ private RadioGroup mRadioGroup; ++ private RadioGroup mRadioGroupDesktopMode; ++ private CheckBox mDesktopModeViewportmeta; ++ ++ @Override ++ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { ++ getActivity().setTitle(R.string.useragent_settings_title); ++ SettingsUtils.addPreferencesFromResource(this, R.xml.useragent_preferences); ++ ++ ChromeSwitchPreference alwaysDesktopModeSwitch = ++ (ChromeSwitchPreference) findPreference(PREF_STICK_DESKTOP_MODE_SWITCH); ++ boolean enabled = SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); ++ alwaysDesktopModeSwitch.setChecked(enabled); ++ alwaysDesktopModeSwitch.setOnPreferenceChangeListener((preference, newValue) -> { ++ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, (boolean) newValue); ++ UpdateAllTabs(); ++ return true; ++ }); ++ } ++ ++ @Override ++ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, ++ @Nullable Bundle savedInstanceState) { ++ LinearLayout viewGroup = (LinearLayout) super.onCreateView(inflater, container, savedInstanceState); ++ ScrollView view = (ScrollView) inflater.inflate(R.layout.custom_useragent_preferences, viewGroup, false); ++ viewGroup.addView(view); ++ ++ boolean enabledCustomUA = PrivacyPreferencesManagerImpl.getInstance().isOverrideUserAgentEnabled(false); ++ boolean enabledCustomUADesktopMode = PrivacyPreferencesManagerImpl.getInstance().isOverrideUserAgentEnabled(true); ++ boolean enabledDesktopModeViewportmeta = PrivacyPreferencesManagerImpl.getInstance().isDesktopModeViewportMetaEnabled(); ++ ++ useDefaultAgentSwitch = ++ (RadioButtonWithDescription) view.findViewById(R.id.default_ua_switch); ++ useCustomAgentSwitch = ++ (RadioButtonWithEditText) view.findViewById(R.id.custom_ua_switch); ++ useDefaultAgentSwitchDesktopMode = ++ (RadioButtonWithDescription) view.findViewById(R.id.default_ua_switch_dm); ++ useCustomAgentSwitchDesktopMode = ++ (RadioButtonWithEditText) view.findViewById(R.id.custom_ua_switch_dm); ++ ++ mRadioGroup = (RadioGroup) view.findViewById(R.id.ua_radio_button_layout); ++ mRadioGroup.setOnCheckedChangeListener(this); ++ ++ mRadioGroupDesktopMode = (RadioGroup) view.findViewById(R.id.ua_radio_button_layout_dm); ++ mRadioGroupDesktopMode.setOnCheckedChangeListener(this); ++ ++ mDesktopModeViewportmeta = (CheckBox) view.findViewById(R.id.desktop_mode_viewportmeta); ++ mDesktopModeViewportmeta.setChecked(enabledDesktopModeViewportmeta); ++ mDesktopModeViewportmeta.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { ++ @Override ++ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { ++ PrivacyPreferencesManagerImpl.getInstance().setDesktopModeViewportMetaEnabled( ++ mDesktopModeViewportmeta.isChecked()); ++ } ++ }); ++ ++ useDefaultAgentSwitch.setChecked(!enabledCustomUA); ++ useCustomAgentSwitch.setChecked(enabledCustomUA); ++ ++ useDefaultAgentSwitchDesktopMode.setChecked(!enabledCustomUADesktopMode); ++ useCustomAgentSwitchDesktopMode.setChecked(enabledCustomUADesktopMode); ++ ++ useCustomAgentSwitch.setPrimaryText( ++ PrivacyPreferencesManagerImpl.getInstance().getOverrideUserAgentValue(false)); ++ useCustomAgentSwitch.addTextChangeListener(new RadioButtonWithEditText.OnTextChangeListener() { ++ @Override ++ public void onTextChanged(CharSequence newText) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentValue( ++ newText.toString(), false); ++ } ++ }); ++ useCustomAgentSwitch.setFocusChangeListener( hasFocus -> { ++ if( hasFocus ) ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(true, false); ++ }); ++ ++ useCustomAgentSwitchDesktopMode.setPrimaryText( ++ PrivacyPreferencesManagerImpl.getInstance().getOverrideUserAgentValue(true)); ++ useCustomAgentSwitchDesktopMode.addTextChangeListener(new RadioButtonWithEditText.OnTextChangeListener() { ++ @Override ++ public void onTextChanged(CharSequence newText) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentValue( ++ newText.toString(), true); ++ } ++ }); ++ useCustomAgentSwitchDesktopMode.setFocusChangeListener( hasFocus -> { ++ if( hasFocus ) ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(true, true); ++ }); ++ ++ return viewGroup; ++ } ++ ++ private void UpdateAllTabs() { ++ final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false); ++ TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(alwaysDesktopModeEnabled); ++ } ++ ++ @Override ++ public void onCheckedChanged(RadioGroup group, int checkedId) { ++ if (useDefaultAgentSwitch.isChecked()) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(false, false); ++ } else if (useCustomAgentSwitch.isChecked()) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(true, false); ++ } ++ ++ if (useDefaultAgentSwitchDesktopMode.isChecked()) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(false, true); ++ } else if (useCustomAgentSwitchDesktopMode.isChecked()) { ++ PrivacyPreferencesManagerImpl.getInstance().setOverrideUserAgentEnabled(true, true); ++ } ++ ++ UpdateAllTabs(); ++ } ++ ++ @Override ++ public void onStop() { ++ super.onStop(); ++ UpdateAllTabs(); ++ } ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +@@ -61,6 +61,18 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.util.ColorUtils; + import org.chromium.url.GURL; + import org.chromium.url.Origin; ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.content_public.browser.navigation_controller.UserAgentOverrideOption; ++import org.chromium.content_public.browser.NavigationController; ++import org.chromium.components.embedder_support.util.UrlUtilities; ++import org.chromium.components.url_formatter.UrlFormatter; ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.content_public.browser.navigation_controller.UserAgentOverrideOption; ++import org.chromium.content_public.browser.NavigationController; ++import org.chromium.components.embedder_support.util.UrlUtilities; ++import org.chromium.components.url_formatter.UrlFormatter; + + /** + * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. +@@ -481,6 +493,31 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + throw new RuntimeException("Tab.loadUrl called when no native side exists"); + } + ++ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); ++ if (stickyDesktopModeEnabled) { ++ boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false); ++ ++ if (UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl()))) { ++ alwaysDesktopModeEnabled = false; ++ } ++ ++ WebContents webContents = this.getWebContents(); ++ if (webContents != null) { ++ NavigationController navigationController = webContents.getNavigationController(); ++ boolean currentUseDesktopUserAgent = navigationController.getUseDesktopUserAgent(); ++ if (currentUseDesktopUserAgent != alwaysDesktopModeEnabled) ++ navigationController.setUseDesktopUserAgent(alwaysDesktopModeEnabled, false); ++ } ++ ++ if (alwaysDesktopModeEnabled) { ++ params.setOverrideUserAgent((int)UserAgentOverrideOption.TRUE); ++ } else { ++ params.setOverrideUserAgent((int)UserAgentOverrideOption.FALSE); ++ } ++ } ++ + // We load the URL from the tab rather than directly from the ContentView so the tab has + // a chance of using a prerenderer page is any. + int loadType = TabImplJni.get().loadUrl(mNativeTabAndroid, params.getUrl(), +@@ -493,7 +530,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + params.getReferrer() != null ? params.getReferrer().getPolicy() : 0, + params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), + params.getHasUserGesture(), params.getShouldClearHistoryList(), +- params.getInputStartTimestamp(), params.getIntentReceivedTimestamp()); ++ params.getInputStartTimestamp(), params.getIntentReceivedTimestamp(), ++ params.getUserAgentOverrideOption()); + + for (TabObserver observer : mObservers) { + observer.onLoadUrl(this, params, loadType); +@@ -1477,6 +1515,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + if (mWebContents != null) mWebContents.getNavigationController().loadIfNecessary(); + mIsBeingRestored = true; + for (TabObserver observer : mObservers) observer.onRestoreStarted(this); ++ ++ if(overrideUserAgentWhenUnFrozen != UserAgentOverrideOption.INHERIT) { ++ SetOverrideUserAgent(overrideUserAgentWhenUnFrozen == (int)UserAgentOverrideOption.TRUE ? true : false); ++ } + } finally { + TraceEvent.end("Tab.restoreIfNeeded"); + } +@@ -1596,6 +1638,42 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + } + } + ++ int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT; ++ ++ public void SetOverrideUserAgent(boolean usingDesktopUserAgent) { ++ WebContents webContents = this.getWebContents(); ++ overrideUserAgentWhenUnFrozen = UserAgentOverrideOption.INHERIT; ++ ++ if (usingDesktopUserAgent) { ++ GURL url = this.getUrl(); ++ if (webContents == null && this.getPendingLoadParams() != null) { ++ url = UrlFormatter.fixupUrl(this.getPendingLoadParams().getUrl()); ++ } ++ if (UrlUtilities.isInternalScheme(url) == true) ++ usingDesktopUserAgent = false; ++ } ++ ++ if (webContents != null) { ++ ContentUtils.setUserAgentOverride(webContents); ++ ++ NavigationController navigationController = webContents.getNavigationController(); ++ navigationController.setUseDesktopUserAgent( ++ usingDesktopUserAgent, !this.isNativePage()); ++ } ++ else if (this.getPendingLoadParams() != null) { ++ if (usingDesktopUserAgent) { ++ this.getPendingLoadParams().setOverrideUserAgent((int)UserAgentOverrideOption.TRUE); ++ } ++ else { ++ this.getPendingLoadParams().setOverrideUserAgent((int)UserAgentOverrideOption.FALSE); ++ } ++ } ++ else { ++ overrideUserAgentWhenUnFrozen = usingDesktopUserAgent ? UserAgentOverrideOption.TRUE : ++ UserAgentOverrideOption.FALSE; ++ } ++ } ++ + @NativeMethods + interface Natives { + TabImpl fromWebContents(WebContents webContents); +@@ -1615,7 +1693,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + ResourceRequestBody postData, int transition, String referrerUrl, + int referrerPolicy, boolean isRendererInitiated, boolean shoulReplaceCurrentEntry, + boolean hasUserGesture, boolean shouldClearHistoryList, long inputStartTimestamp, +- long intentReceivedTimestamp); ++ long intentReceivedTimestamp, ++ int userAgentOverrideOption); + void setActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, String title); + void loadOriginalImage(long nativeTabAndroid); + void setAddApi2TransitionToFutureNavigations(long nativeTabAndroid, boolean shouldAdd); +diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc +--- a/chrome/browser/android/content/content_utils.cc ++++ b/chrome/browser/android/content/content_utils.cc +@@ -8,6 +8,20 @@ + #include "components/embedder_support/android/util/user_agent_utils.h" + #include "components/version_info/version_info.h" + ++#include "base/android/jni_android.h" ++#include "base/android/scoped_java_ref.h" ++#include "chrome/browser/browser_process.h" ++#include "components/prefs/pref_service.h" ++#include "chrome/common/pref_names.h" ++ ++using base::android::ConvertJavaStringToUTF8; ++using base::android::ConvertUTF16ToJavaString; ++using base::android::ConvertUTF8ToJavaString; ++using base::android::JavaParamRef; ++using base::android::JavaRef; ++using base::android::ScopedJavaGlobalRef; ++using base::android::ScopedJavaLocalRef; ++ + static base::android::ScopedJavaLocalRef + JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) { + return base::android::ConvertUTF8ToJavaString(env, GetUserAgent()); +@@ -16,6 +30,20 @@ JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) { + static void JNI_ContentUtils_SetUserAgentOverride( + JNIEnv* env, + const base::android::JavaParamRef& jweb_contents) { ++ bool enabled = ++ g_browser_process->local_state()->GetBoolean(prefs::kOverrideUserAgentDesktopModeEnabled); ++ ++ if (enabled == true) { ++ std::string ua = g_browser_process->local_state()->GetString(prefs::kOverrideUserAgentDesktopMode); ++ blink::UserAgentOverride spoofed_ua; ++ spoofed_ua.ua_string_override = ua; ++ ++ content::WebContents* web_contents = ++ content::WebContents::FromJavaWebContents(jweb_contents); ++ web_contents->SetUserAgentOverride(spoofed_ua, false); ++ return; ++ } ++ + content::WebContents* web_contents = + content::WebContents::FromJavaWebContents(jweb_contents); + embedder_support::SetDesktopUserAgentOverride(web_contents, +diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrome/browser/android/preferences/browser_prefs_android.cc +--- a/chrome/browser/android/preferences/browser_prefs_android.cc ++++ b/chrome/browser/android/preferences/browser_prefs_android.cc +@@ -10,11 +10,18 @@ + #include "chrome/browser/notifications/notification_platform_bridge_android.h" + #include "components/pref_registry/pref_registry_syncable.h" + #include "components/prefs/pref_registry_simple.h" ++#include "chrome/common/pref_names.h" + + namespace android { + + void RegisterPrefs(PrefRegistrySimple* registry) { + RegisterClipboardAndroidPrefs(registry); ++ ++ registry->RegisterBooleanPref(prefs::kOverrideUserAgentEnabled, false); ++ registry->RegisterStringPref(prefs::kOverrideUserAgent, ""); ++ registry->RegisterBooleanPref(prefs::kOverrideUserAgentDesktopModeEnabled, false); ++ registry->RegisterStringPref(prefs::kOverrideUserAgentDesktopMode, ""); ++ registry->RegisterBooleanPref(prefs::kDesktopModeViewportMetaEnabled, false); + } + + void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +--- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc ++++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +@@ -12,6 +12,26 @@ + #include "components/metrics/metrics_pref_names.h" + #include "components/prefs/pref_service.h" + ++#include "base/command_line.h" ++#include "base/base_switches.h" ++#include "chrome/common/chrome_switches.h" ++#include "content/browser/renderer_host/render_process_host_impl.h" ++#include "content/common/renderer.mojom.h" ++#include "chrome/browser/chrome_content_browser_client.h" ++ ++#include "base/android/jni_android.h" ++#include "base/android/jni_array.h" ++#include "base/android/jni_string.h" ++#include "base/android/scoped_java_ref.h" ++ ++using base::android::ConvertJavaStringToUTF8; ++using base::android::ConvertUTF16ToJavaString; ++using base::android::ConvertUTF8ToJavaString; ++using base::android::JavaParamRef; ++using base::android::JavaRef; ++using base::android::ScopedJavaGlobalRef; ++using base::android::ScopedJavaLocalRef; ++ + namespace { + + PrefService* GetPrefService() { +@@ -67,3 +87,97 @@ static void JNI_PrivacyPreferencesManagerImpl_SetNetworkPredictionEnabled( + enabled ? chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY + : chrome_browser_net::NETWORK_PREDICTION_NEVER); + } ++ ++static void UpdateOverrideUserAgent() { ++ bool overrideUserAgentEnabled = ++ g_browser_process->local_state()->GetBoolean(prefs::kOverrideUserAgentEnabled); ++ std::string ua = g_browser_process->local_state()->GetString(prefs::kOverrideUserAgent); ++ if (ua.empty()) { ++ ua = ChromeContentBrowserClient().GetUserAgent(); ++ } ++ ++ base::CommandLine* parsed_command_line = ++ base::CommandLine::ForCurrentProcess(); ++ parsed_command_line->RemoveSwitch(switches::kUserAgent); ++ if (!ua.empty()) { ++ if (overrideUserAgentEnabled) { ++ parsed_command_line->AppendSwitchASCII(switches::kUserAgent, ua); ++ } ++ ++ for (auto iter = content::RenderProcessHost::AllHostsIterator(); !iter.IsAtEnd(); ++ iter.Advance()) { ++ if (iter.GetCurrentValue()->IsInitializedAndNotDead()) { ++ iter.GetCurrentValue()->GetRendererInterface()->SetUserAgent(ua); ++ } ++ } ++ } ++ ++ parsed_command_line->RemoveSwitch(switches::kDesktopModeViewportMetaEnabled); ++ if (g_browser_process->local_state()->GetBoolean(prefs::kDesktopModeViewportMetaEnabled)) ++ parsed_command_line->AppendSwitch(switches::kDesktopModeViewportMetaEnabled); ++} ++ ++static void JNI_PrivacyPreferencesManagerImpl_UpdateOverrideUserAgent( ++ JNIEnv* env) { ++ UpdateOverrideUserAgent(); ++} ++ ++static jboolean JNI_PrivacyPreferencesManagerImpl_IsOverrideUserAgentEnabled( ++ JNIEnv* env, jboolean desktopMode) { ++ if (desktopMode == false) ++ return g_browser_process->local_state()->GetBoolean(prefs::kOverrideUserAgentEnabled); ++ else ++ return g_browser_process->local_state()->GetBoolean(prefs::kOverrideUserAgentDesktopModeEnabled); ++} ++ ++static void JNI_PrivacyPreferencesManagerImpl_SetOverrideUserAgentEnabled( ++ JNIEnv* env, ++ jboolean enabled, jboolean desktopMode) { ++ if (desktopMode == false) { ++ g_browser_process->local_state()->SetBoolean(prefs::kOverrideUserAgentEnabled, ++ enabled); ++ UpdateOverrideUserAgent(); ++ } else { ++ g_browser_process->local_state()->SetBoolean(prefs::kOverrideUserAgentDesktopModeEnabled, ++ enabled); ++ } ++} ++ ++static void JNI_PrivacyPreferencesManagerImpl_SetOverrideUserAgentValue( ++ JNIEnv* env, ++ const JavaParamRef& ua, jboolean desktopMode) { ++ std::string new_ua = ConvertJavaStringToUTF8(env, ua); ++ if (desktopMode == false) { ++ g_browser_process->local_state()->SetString(prefs::kOverrideUserAgent, ++ new_ua); ++ UpdateOverrideUserAgent(); ++ } else { ++ g_browser_process->local_state()->SetString(prefs::kOverrideUserAgentDesktopMode, ++ new_ua); ++ } ++} ++ ++static base::android::ScopedJavaLocalRef ++ JNI_PrivacyPreferencesManagerImpl_GetOverrideUserAgentValue( ++ JNIEnv* env, jboolean desktopMode) { ++ if (desktopMode == false) { ++ std::string ua = g_browser_process->local_state()->GetString(prefs::kOverrideUserAgent); ++ return ConvertUTF8ToJavaString(env, ua); ++ } else { ++ std::string ua = g_browser_process->local_state()->GetString(prefs::kOverrideUserAgentDesktopMode); ++ return ConvertUTF8ToJavaString(env, ua); ++ } ++} ++ ++static jboolean JNI_PrivacyPreferencesManagerImpl_IsDesktopModeViewportMetaEnabled( ++ JNIEnv* env) { ++ return g_browser_process->local_state()->GetBoolean(prefs::kDesktopModeViewportMetaEnabled); ++} ++ ++static void JNI_PrivacyPreferencesManagerImpl_SetDesktopModeViewportMetaEnabled( ++ JNIEnv* env, ++ jboolean enabled) { ++ g_browser_process->local_state()->SetBoolean(prefs::kDesktopModeViewportMetaEnabled, ++ enabled); ++ UpdateOverrideUserAgent(); ++} +\ No newline at end of file +diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc +--- a/chrome/browser/android/tab_android.cc ++++ b/chrome/browser/android/tab_android.cc +@@ -373,7 +373,8 @@ TabAndroid::TabLoadStatus TabAndroid::LoadUrl( + jboolean has_user_gesture, + jboolean should_clear_history_list, + jlong input_start_timestamp, +- jlong intent_received_timestamp) { ++ jlong intent_received_timestamp, ++ jint user_agent_override_option) { + if (!web_contents()) + return PAGE_LOAD_FAILED; + +@@ -430,6 +431,8 @@ TabAndroid::TabLoadStatus TabAndroid::LoadUrl( + load_params.input_start = + base::TimeTicks::FromUptimeMillis(intent_received_timestamp); + } ++ load_params.override_user_agent = static_cast( ++ user_agent_override_option); + web_contents()->GetController().LoadURLWithParams(load_params); + } + return DEFAULT_PAGE_LOAD; +diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h +--- a/chrome/browser/android/tab_android.h ++++ b/chrome/browser/android/tab_android.h +@@ -167,7 +167,8 @@ class TabAndroid : public base::SupportsUserData { + jboolean has_user_gesture, + jboolean should_clear_history_list, + jlong omnibox_input_received_timestamp, +- jlong intent_received_timestamp); ++ jlong intent_received_timestamp, ++ jint user_agent_override_option); + void SetActiveNavigationEntryTitleForUrl( + JNIEnv* env, + const base::android::JavaParamRef& jurl, +diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc +--- a/chrome/browser/chrome_content_browser_client.cc ++++ b/chrome/browser/chrome_content_browser_client.cc +@@ -1286,6 +1286,13 @@ std::string GetPlatformForUAMetadata() { + blink::UserAgentMetadata GetUserAgentMetadata() { + blink::UserAgentMetadata metadata; + ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (command_line->HasSwitch(switches::kUserAgent)) { ++ std::string ua = command_line->GetSwitchValueASCII(switches::kUserAgent); ++ ++ return metadata; ++ } ++ + metadata.brand_version_list = GetBrandVersionList(); + metadata.full_version = version_info::GetVersionNumber(); + metadata.platform = GetPlatformForUAMetadata(); +@@ -2379,6 +2386,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( + switches::kDisableTargetBlankImpliesNoOpener); + } + ++ + #if defined(OS_ANDROID) + // Communicating to content/ for BackForwardCache. + if (prefs->HasPrefPath(policy::policy_prefs::kBackForwardCacheEnabled) && +diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java ++++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +@@ -828,6 +828,9 @@ public final class ChromePreferenceKeys { + public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX = + new KeyPrefix("zero_suggest_header_group_collapsed_by_default*"); + ++ public static final String USERAGENT_STICKY_DESKTOP_MODE = "Chrome.UserAgent.StickyDesktopMode"; ++ public static final String USERAGENT_ALWAYS_DESKTOP_MODE = "Chrome.UserAgent.AlwaysDesktopMode"; ++ + /** + * These values are currently used as SharedPreferences keys, along with the keys in + * {@link GrandfatheredChromePreferenceKeys#getKeysInUse()}. Add new SharedPreferences keys +@@ -890,7 +893,9 @@ public final class ChromePreferenceKeys { + SETTINGS_SAFETY_CHECK_RUN_COUNTER, + SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP, + TWA_DISCLOSURE_SEEN_PACKAGES, +- VIDEO_TUTORIALS_SHARE_URL_SET ++ VIDEO_TUTORIALS_SHARE_URL_SET, ++ USERAGENT_STICKY_DESKTOP_MODE, ++ USERAGENT_ALWAYS_DESKTOP_MODE + ); + // clang-format on + } +diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java b/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java +--- a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java ++++ b/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java +@@ -105,4 +105,12 @@ public interface PrivacyPreferencesManager extends CrashReportingPermissionManag + * @return Whether Network Predictions is configured by policy. + */ + boolean isNetworkPredictionManaged(); ++ ++ void updateOverrideUserAgent(); ++ boolean isOverrideUserAgentEnabled(boolean desktopMode); ++ void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode); ++ String getOverrideUserAgentValue(boolean desktopMode); ++ void setOverrideUserAgentValue(String timezone, boolean desktopMode); ++ boolean isDesktopModeViewportMetaEnabled(); ++ void setDesktopModeViewportMetaEnabled(boolean enabled); + } +diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java ++++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +@@ -279,6 +279,8 @@ public interface Tab extends TabLifecycle { + */ + void setIsTabStateDirty(boolean isTabStateDirty); + ++ void SetOverrideUserAgent(boolean usingDesktopUserAgent); ++ + /** + * If set to true, any future navigations in the tab automatically get + * PageTransition.FROM_API_2 applied. +diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java ++++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +@@ -10,6 +10,11 @@ import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.tabmodel.NextTabPolicy.NextTabPolicySupplier; + import org.chromium.ui.base.WindowAndroid; + ++import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ++import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++ ++import java.util.List; ++ + /** + * Manages multiple {@link TabModelSelector} instances, each owned by different {@link Activity}s. + * +@@ -76,4 +81,7 @@ public interface TabWindowManager { + * @return Specified {@link Tab} or {@code null} if the {@link Tab} is not found. + */ + Tab getTabById(int tabId); ++ ++ void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent); ++ + } +diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +--- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java ++++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +@@ -119,6 +119,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan + return null; + } + ++ @Override ++ public void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent) { ++ for (int selectorIndex = 0; selectorIndex < mSelectors.size(); selectorIndex++) { ++ TabModelSelector selector = mSelectors.get(selectorIndex); ++ if (selector != null) { ++ List models = selector.getModels(); ++ for (int modelIndex = 0; modelIndex < models.size(); modelIndex++) { ++ TabModel model = models.get(modelIndex); ++ ++ for (int tabIdex = 0; tabIdex < model.getCount(); tabIdex++) { ++ Tab theTab = model.getTabAt(tabIdex); ++ theTab.SetOverrideUserAgent(usingDesktopUserAgent); ++ } ++ } ++ } ++ } ++ } ++ + @Override + public Tab getTabById(int tabId) { + for (int i = 0; i < mSelectors.size(); i++) { +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 +@@ -228,6 +228,41 @@ CHAR-LIMIT guidelines: + Visit help page + + ++ ++ ++ User Agent ++ ++ ++ Customize User Agent ++ ++ ++ Current behaviour for desktop mode toggle in hamburger menu ++ ++ ++ Applies to all tabs (sticky mode) ++ ++ ++ Applies to current tab only ++ ++ ++ Use custom user agent ++ ++ ++ Use standard user agent ++ ++ ++ Insert a valid user agent ++ ++ ++ Mobile User Agent ++ ++ ++ Desktop Mode User Agent ++ ++ ++ Enable processing of the viewport meta tag also for desktop mode ++ ++ + + + General +diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc +--- a/chrome/common/pref_names.cc ++++ b/chrome/common/pref_names.cc +@@ -418,6 +418,19 @@ const char kAllowJavascriptAppleEvents[] = + + #endif + ++#if defined(OS_ANDROID) ++const char kOverrideUserAgentEnabled[] = ++ "override_user_agent_enabled"; ++const char kOverrideUserAgent[] = ++ "override_user_agent"; ++const char kOverrideUserAgentDesktopModeEnabled[] = ++ "override_user_agent_dm_enabled"; ++const char kOverrideUserAgentDesktopMode[] = ++ "override_user_agent_dm"; ++const char kDesktopModeViewportMetaEnabled[] = ++ "dm-viewport-meta-enabled"; ++#endif ++ + // Boolean which specifies whether we should ask the user if we should download + // a file (true) or just download it automatically. + const char kPromptForDownload[] = "download.prompt_for_download"; +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 +@@ -1120,6 +1120,14 @@ extern const char kCartModuleWelcomeSurfaceShownTimes[]; + extern const char kIncognitoTabHistoryEnabled[]; + #endif + ++#if defined(OS_ANDROID) ++extern const char kOverrideUserAgentEnabled[]; ++extern const char kOverrideUserAgent[]; ++extern const char kOverrideUserAgentDesktopModeEnabled[]; ++extern const char kOverrideUserAgentDesktopMode[]; ++extern const char kDesktopModeViewportMetaEnabled[]; ++#endif ++ + } // namespace prefs + + #endif // CHROME_COMMON_PREF_NAMES_H_ +diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java +--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java ++++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java +@@ -167,6 +167,17 @@ public class RadioButtonWithEditText extends RadioButtonWithDescription { + mEditText.setCursorVisible(false); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(mEditText); + } ++ if (mRadioButtonWithEditTextFocusListener != null) { ++ mRadioButtonWithEditTextFocusListener.onRadioButtonWithEditTextFocusChanged(hasFocus); ++ } ++ } ++ ++ public interface RadioButtonWithEditTextFocusListener { ++ void onRadioButtonWithEditTextFocusChanged(boolean hasFocus); ++ } ++ private RadioButtonWithEditTextFocusListener mRadioButtonWithEditTextFocusListener; ++ public void setFocusChangeListener(RadioButtonWithEditTextFocusListener listener) { ++ mRadioButtonWithEditTextFocusListener = listener; + } + + /** +diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc +--- a/content/browser/renderer_host/navigation_controller_android.cc ++++ b/content/browser/renderer_host/navigation_controller_android.cc +@@ -237,7 +237,8 @@ void NavigationControllerAndroid::LoadUrl( + const JavaParamRef& data_url_as_string, + jboolean can_load_local_resources, + jboolean is_renderer_initiated, +- jboolean should_replace_current_entry) { ++ jboolean should_replace_current_entry, ++ jint user_agent_override_option) { + DCHECK(url); + NavigationController::LoadURLParams params( + GURL(ConvertJavaStringToUTF8(env, url))); +@@ -291,6 +292,9 @@ void NavigationControllerAndroid::LoadUrl( + Referrer::ConvertToPolicy(referrer_policy)); + } + ++ params.override_user_agent = static_cast( ++ user_agent_override_option); ++ + navigation_controller_->LoadURLWithParams(params); + } + +diff --git a/content/browser/renderer_host/navigation_controller_android.h b/content/browser/renderer_host/navigation_controller_android.h +--- a/content/browser/renderer_host/navigation_controller_android.h ++++ b/content/browser/renderer_host/navigation_controller_android.h +@@ -80,7 +80,8 @@ class CONTENT_EXPORT NavigationControllerAndroid { + const base::android::JavaParamRef& data_url_as_string, + jboolean can_load_local_resources, + jboolean is_renderer_initiated, +- jboolean should_replace_current_entry); ++ jboolean should_replace_current_entry, ++ jint user_agent_override_option); + void ClearSslPreferences( + JNIEnv* env, + const base::android::JavaParamRef& /* obj */); +diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc +--- a/content/browser/renderer_host/render_process_host_impl.cc ++++ b/content/browser/renderer_host/render_process_host_impl.cc +@@ -3366,6 +3366,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + switches::kSchedulerBoostUrgent, + #endif ++ switches::kDesktopModeViewportMetaEnabled, + }; + renderer_cmd->CopySwitchesFrom(browser_cmd, kSwitchNames, + base::size(kSwitchNames)); +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 +@@ -38,6 +38,7 @@ + #include "base/strings/string_util.h" + #include "base/strings/utf_string_conversions.h" + #include "base/system/sys_info.h" ++#include "base/base_switches.h" + #include "base/threading/thread_task_runner_handle.h" + #include "base/time/time.h" + #include "base/trace_event/optional_trace_event.h" +@@ -2447,7 +2448,8 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { + prefs.threaded_scrolling_enabled = + !command_line.HasSwitch(blink::switches::kDisableThreadedScrolling); + +- if (IsOverridingUserAgent()) ++ if (IsOverridingUserAgent() && ++ !command_line.HasSwitch(switches::kDesktopModeViewportMetaEnabled)) + prefs.viewport_meta_enabled = false; + + prefs.main_frame_resizes_are_orientation_changes = +diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +--- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java ++++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +@@ -169,7 +169,8 @@ import org.chromium.url.GURL; + params.getUserAgentOverrideOption(), params.getExtraHeadersString(), + params.getPostData(), params.getBaseUrl(), params.getVirtualUrlForDataUrl(), + params.getDataUrlAsString(), params.getCanLoadLocalResources(), +- params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry()); ++ params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), ++ params.getUserAgentOverrideOption()); + } + } + +@@ -348,7 +349,8 @@ import org.chromium.url.GURL; + int referrerPolicy, int uaOverrideOption, String extraHeaders, + ResourceRequestBody postData, String baseUrlForDataUrl, String virtualUrlForDataUrl, + String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, +- boolean shouldReplaceCurrentEntry); ++ boolean shouldReplaceCurrentEntry, ++ int userAgentOverrideOption); + void clearHistory(long nativeNavigationControllerAndroid, NavigationControllerImpl caller); + int getNavigationHistory(long nativeNavigationControllerAndroid, + NavigationControllerImpl caller, Object history); +diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc +--- a/content/renderer/render_thread_impl.cc ++++ b/content/renderer/render_thread_impl.cc +@@ -1673,7 +1673,6 @@ void RenderThreadImpl::SetWebKitSharedTimersSuspended(bool suspend) { + } + + void RenderThreadImpl::SetUserAgent(const std::string& user_agent) { +- DCHECK(user_agent_.IsNull()); + user_agent_ = WebString::FromUTF8(user_agent); + GetContentClient()->renderer()->DidSetUserAgent(user_agent); + } +-- +2.17.1 + -- GitLab From 1aef9679ae3ecd6f67713b798b673dc03cc45e08 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 9 Apr 2021 22:14:23 +0200 Subject: [PATCH 02/16] updated patch for v90 --- build/bromite_patches_list.txt | 1 + build/patches/User-agent-customization.patch | 331 +++++++------------ 2 files changed, 122 insertions(+), 210 deletions(-) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index d51cabd8..83945d64 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -145,4 +145,5 @@ Add-option-to-force-tablet-UI.patch Make-all-favicon-requests-on-demand.patch Add-Alt-D-hotkey-to-focus-address-bar.patch Remove-offline-measurement-background-task.patch +User-agent-customization.patch Automated-domain-substitution.patch diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 551d47f4..00ccd860 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -1,5 +1,5 @@ From: uazo -Date: Mon, 26 Oct 2020 16:50:15 +0000 +Date: Fri, 9 Apr 2021 20:09:08 +0000 Subject: User agent customization Add flag to always view the desktop site for all websites @@ -11,36 +11,34 @@ to use the flag in the hamburger menu to navigate with a custom useragent leavin base/base_switches.h | 2 + chrome/android/chrome_java_resources.gni | 2 + chrome/android/chrome_java_sources.gni | 1 + - .../layout/custom_useragent_preferences.xml | 108 ++++++++++ + .../layout/custom_useragent_preferences.xml | 106 ++++++++++ .../android/java/res/xml/main_preferences.xml | 5 + .../java/res/xml/useragent_preferences.xml | 31 +++ - .../chrome/browser/app/ChromeActivity.java | 21 +- .../init/ChromeBrowserInitializer.java | 3 + .../PrivacyPreferencesManagerImpl.java | 42 ++++ - .../settings/UserAgentPreferences.java | 185 ++++++++++++++++++ - .../chromium/chrome/browser/tab/TabImpl.java | 83 +++++++- + .../settings/UserAgentPreferences.java | 188 ++++++++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 71 +++++++ + .../chromium/chrome/browser/tab/TabUtils.java | 18 +- .../browser/android/content/content_utils.cc | 28 +++ .../preferences/browser_prefs_android.cc | 7 + - .../privacy_preferences_manager_impl.cc | 114 +++++++++++ - chrome/browser/android/tab_android.cc | 5 +- - chrome/browser/android/tab_android.h | 3 +- - .../browser/chrome_content_browser_client.cc | 8 + + .../privacy_preferences_manager_impl.cc | 118 +++++++++++ .../preferences/ChromePreferenceKeys.java | 7 +- .../settings/PrivacyPreferencesManager.java | 8 + .../org/chromium/chrome/browser/tab/Tab.java | 2 + - .../browser/tabmodel/TabWindowManager.java | 8 + + .../browser/tabmodel/TabWindowManager.java | 3 + .../tabmodel/TabWindowManagerImpl.java | 18 ++ .../strings/android_chrome_strings.grd | 35 ++++ chrome/common/pref_names.cc | 13 ++ chrome/common/pref_names.h | 8 + - .../widget/RadioButtonWithEditText.java | 11 ++ + .../widget/RadioButtonWithEditText.java | 11 + + .../embedder_support/user_agent_utils.cc | 7 + .../navigation_controller_android.cc | 6 +- .../navigation_controller_android.h | 3 +- .../renderer_host/render_process_host_impl.cc | 1 + - .../browser/web_contents/web_contents_impl.cc | 4 +- + .../browser/web_contents/web_contents_impl.cc | 6 + .../framehost/NavigationControllerImpl.java | 6 +- content/renderer/render_thread_impl.cc | 1 - - 33 files changed, 767 insertions(+), 14 deletions(-) + 31 files changed, 749 insertions(+), 10 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -48,8 +46,8 @@ to use the flag in the hamburger menu to navigate with a custom useragent leavin diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc -@@ -164,6 +164,8 @@ const char kForceFieldTrialParams[] = "force-fieldtrial-params"; - const char kEnableThreadInstructionCount[] = "enable-thread-instruction-count"; +@@ -169,6 +169,8 @@ const char kEnableThreadInstructionCount[] = "enable-thread-instruction-count"; + extern const char kEnableCrashpad[] = "enable-crashpad"; #endif +const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; @@ -60,7 +58,7 @@ diff --git a/base/base_switches.cc b/base/base_switches.cc diff --git a/base/base_switches.h b/base/base_switches.h --- a/base/base_switches.h +++ b/base/base_switches.h -@@ -66,6 +66,8 @@ extern const char kEnableThreadInstructionCount[]; +@@ -70,6 +70,8 @@ extern const char kEnableCrashpad[]; extern const char kSchedulerBoostUrgent[]; #endif @@ -72,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 -@@ -998,4 +998,6 @@ chrome_java_resources = [ +@@ -946,4 +946,6 @@ chrome_java_resources = [ "java/res/xml/sync_and_services_preferences.xml", "java/res/xml/theme_preferences.xml", "java/res/xml/tracing_preferences.xml", @@ -82,7 +80,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 -@@ -1155,6 +1155,7 @@ chrome_java_sources = [ +@@ -1145,6 +1145,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -94,7 +92,7 @@ diff --git a/chrome/android/java/res/layout/custom_useragent_preferences.xml b/c new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/layout/custom_useragent_preferences.xml -@@ -0,0 +1,108 @@ +@@ -0,0 +1,106 @@ + + -@@ -1645,7 +1645,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1680,7 +1680,7 @@ Your Google account may have other forms of browsing history like searches and a Also clear your Chrome data from this device @@ -7779,7 +7779,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Contacting Google. This may take a minute… -@@ -1793,7 +1793,7 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

@@ -7788,7 +7788,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro <link>Get help</link> while scanning for devices… -@@ -1838,7 +1838,7 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

@@ -7797,7 +7797,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Unknown or unsupported device (%1$sA1:B2:C3:D4:E5:F6) -@@ -2289,7 +2289,7 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

@@ -7806,7 +7806,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro You are viewing a preview of this page -@@ -3605,7 +3605,7 @@ Data from your Incognito session will only be cleared from Chrome when you @@ -7815,7 +7815,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro No compatible devices found -@@ -3644,7 +3644,7 @@ Data from your Incognito session will only be cleared from Chrome when you @@ -7824,7 +7824,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Got it -@@ -3899,7 +3899,7 @@ Data from your Incognito session will only be cleared from Chrome when you %1$sTanya's Pixel 2... diff --git a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch index b5bd1a39..cd4b65e6 100644 --- a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch +++ b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch @@ -5,9 +5,20 @@ Subject: Disable omission of URL elements in Omnibox Disable all omissions because they are used throughout the code without a corresponding user option to individually disable their usage. --- - components/url_formatter/url_formatter.cc | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) + .../toolbar/chrome_location_bar_model_delegate.cc | 2 +- + components/url_formatter/url_formatter.cc | 14 +++++++------- + 2 files changed, 8 insertions(+), 8 deletions(-) +diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc +--- a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc ++++ b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc +@@ -263,5 +263,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() { + // static + void ChromeLocationBarModelDelegate::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { +- registry->RegisterBooleanPref(omnibox::kPreventUrlElisionsInOmnibox, false); ++ registry->RegisterBooleanPref(omnibox::kPreventUrlElisionsInOmnibox, true); + } diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc --- a/components/url_formatter/url_formatter.cc +++ b/components/url_formatter/url_formatter.cc diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index d3dc5c48..e4150bb1 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -173,7 +173,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar + false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( - prefs::kShowManagedBookmarksInBookmarkBar, + prefs::kShowReadingListInBookmarkBar, true, diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc diff --git a/build/patches/Update-i18n-zh_CN-support.patch b/build/patches/Update-i18n-zh_CN-support.patch index f62a9397..e018687e 100644 --- a/build/patches/Update-i18n-zh_CN-support.patch +++ b/build/patches/Update-i18n-zh_CN-support.patch @@ -12,7 +12,7 @@ Subject: Update i18n zh_CN support diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb -@@ -7315,4 +7315,6 @@ +@@ -7317,4 +7317,6 @@ 正在建立安全连接... 您需要开启 Chrome 同步才能使用 Wi-Fi 同步功能。了解详情 检查(&N) diff --git a/build/patches/first_run-deactivate-autoupdate-globally.patch b/build/patches/first_run-deactivate-autoupdate-globally.patch index 29dd6e4a..90c2900d 100644 --- a/build/patches/first_run-deactivate-autoupdate-globally.patch +++ b/build/patches/first_run-deactivate-autoupdate-globally.patch @@ -9,17 +9,18 @@ sounds meh (wrong provider, after all). Also, there is no tunable in chrome://settings (or similar) yet to turn it back on. --- - chrome/browser/extensions/extension_system_impl.cc | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + chrome/browser/extensions/extension_system_impl.cc | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc --- a/chrome/browser/extensions/extension_system_impl.cc +++ b/chrome/browser/extensions/extension_system_impl.cc -@@ -206,8 +206,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { - // ExtensionService depends on RuntimeData. - runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_))); +@@ -208,9 +208,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { + // TODO(https://crbug.com/1125475): Enable Extensions for Ephemeral Guest + // profiles. - bool autoupdate_enabled = !profile_->IsGuestSession() && +- !profile_->IsEphemeralGuestProfile() && - !profile_->IsSystemProfile(); + bool autoupdate_enabled = false; #if BUILDFLAG(IS_CHROMEOS_ASH) -- GitLab From a89f8a315036e9300cd2e81cfb1d3169d50ffe9f Mon Sep 17 00:00:00 2001 From: Carl <32685696+csagan5@users.noreply.github.com> Date: Thu, 15 Apr 2021 00:51:32 +0200 Subject: [PATCH 05/16] Add question for incognito tabs --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a941fde1..7dbce0d9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -47,6 +47,9 @@ If the bug is reproducible then it might be a configuration issue or an upstream Yes/No +### Is this bug happening in an incognito tab? +Yes/No + ### Allow ads for the site; is the bug caused by the adblocker? Yes/No -- GitLab From 4af239c7855976db6e41caf1e8ec0137d4ecfb8e Mon Sep 17 00:00:00 2001 From: oldphones68 <51379704+oldphones68@users.noreply.github.com> Date: Fri, 16 Apr 2021 03:27:05 +0600 Subject: [PATCH 06/16] README.md (#1076) Since, `export-bookmarks-use-saf`, is disabled by default, I edited the `New Flags` section of README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8c9d301..964281a9 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ New flags: * `#enable-device-motion` and `#enable-device-orientation` * `#show-legacy-tls-warnings` * `#save-data-header`, disabled by default -* `#export-bookmarks-use-saf`, enabled by default +* `#export-bookmarks-use-saf`, disabled by default # Privacy limitations -- GitLab From 1e87d1b0dfa878efcc32ecc4b91dd30bc8f4f076 Mon Sep 17 00:00:00 2001 From: Carl <32685696+csagan5@users.noreply.github.com> Date: Thu, 15 Apr 2021 23:32:23 +0200 Subject: [PATCH 07/16] Mention what to do for bugs unrelated to Chromium --- .github/ISSUE_TEMPLATE/bug_report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 7dbce0d9..73598bb2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -43,6 +43,8 @@ Yes/No Yes/No -- GitLab From e3e5a455621b93d5e3db545ca3a2c85746118bf5 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Sat, 24 Apr 2021 00:39:30 +0200 Subject: [PATCH 08/16] fix update ui for pac url config (#1098) --- build/patches/Add-a-proxy-configuration-page.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index cd0174c7..a2325659 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -563,14 +563,14 @@ new file mode 100644 + renderConfig_: function() { + if (this.currentConfig.auto_detect) { + $(kIdModeAutoDetect).checked = true; -+ } else if (this.currentConfig.rules.type == "none") { -+ $(kIdModeEmpty).checked = true; -+ } else if (this.currentConfig.rules.type == "direct") { -+ $(kIdModeDirect).checked = true; + } else if (this.currentConfig.hasOwnProperty('pac_url')) { + $(kIdPacURL).value = this.currentConfig.pac_url; + $(kIdPacMandatory).checked = this.currentConfig.pac_mandatory; + $(kIdModeUsePacURL).checked = true; ++ } else if (this.currentConfig.rules.type == "none") { ++ $(kIdModeEmpty).checked = true; ++ } else if (this.currentConfig.rules.type == "direct") { ++ $(kIdModeDirect).checked = true; + } else { + $(kIdBypassRules).value = this.currentConfig.rules.bypass_rules; + $(kIdReverseBypass).checked = this.currentConfig.rules.reverse_bypass; -- GitLab From 54302084f1c3933bf3659f090fe20c2280ad3139 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 26 Apr 2021 10:11:43 +0200 Subject: [PATCH 09/16] Release 90.0.4430.92 --- CHANGELOG.md | 4 + build/RELEASE | 2 +- build/bromite_patches_list.txt | 2 +- .../AImageReader-CFI-crash-mitigations.patch | 2 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- .../Add-an-always-incognito-mode.patch | 2 +- .../Add-bookmark-import-export-actions.patch | 16 +- .../Add-flag-for-save-data-header.patch | 2 +- ...nfigure-maximum-connections-per-host.patch | 2 +- ...ontrol-video-playback-resume-feature.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 4 +- build/patches/Add-flag-to-disable-WebGL.patch | 2 +- ...sable-device-motion-orientation-APIs.patch | 2 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 4 +- .../Automated-domain-substitution.patch | 18 +- .../Bromite-AdBlockUpdaterService.patch | 4 +- build/patches/Disable-safe-browsing.patch | 2 +- .../Disable-smart-selection-by-default.patch | 2 +- .../Disable-text-fragments-by-default.patch | 4 +- ...e-darken-websites-checkbox-in-themes.patch | 4 +- .../Multiple-fingerprinting-mitigations.patch | 2 +- ...e-signin-and-data-saver-integrations.patch | 2 +- .../Restore-Search-Ready-Omnibox-flag.patch | 16 +- .../Restore-Simplified-NTP-launch.patch | 16 +- ...-enable-horizontal-tab-switcher-flag.patch | 23 - ...zontal-tab-switcher-experiment-logic.patch | 1217 +++++++++++++++++ ...emove-disable-pull-to-refresh-effect.patch | 8 +- ...vert-flags-remove-num-raster-threads.patch | 8 +- build/patches/User-agent-customization.patch | 2 +- 29 files changed, 1287 insertions(+), 89 deletions(-) delete mode 100644 build/patches/Restore-enable-horizontal-tab-switcher-flag.patch create mode 100644 build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 352daa7e..450737f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 90.0.4430.92 +* restore horizontal tab switcher feature (fixes https://github.com/bromite/bromite/issues/1077) +* fix a couple of bugs in proxy saving UI (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1072) + # 90.0.4430.74 * re-added patch for User agent customization (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1049) * fix always-incognito custom tab intents issues (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1047 and https://github.com/bromite/bromite/issues/1051) diff --git a/build/RELEASE b/build/RELEASE index 8203e8ce..08c6a3d8 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -90.0.4430.74 +90.0.4430.92 diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 83945d64..d1b60e65 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -107,7 +107,7 @@ Use-dummy-DFM-installer.patch Disable-feeds-support-by-default.patch Disable-autofill-assistant-by-default.patch Show-site-settings-for-cookies-javascript-and-ads.patch -Restore-enable-horizontal-tab-switcher-flag.patch +Revert-Remove-horizontal-tab-switcher-experiment-logic.patch Disable-DRM-media-origin-IDs-preprovisioning.patch Disable-smart-selection-by-default.patch Enable-user-agent-freeze-by-default.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index e42d8459..089f46c1 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -82,7 +82,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1899,7 +1899,7 @@ +@@ -1909,7 +1909,7 @@ { "name": "enable-image-reader", "owners": [ "vikassoni", "liberato" ], diff --git a/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch index 09431d06..a35711f6 100644 --- a/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -17,7 +17,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 -@@ -3100,6 +3100,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3105,6 +3105,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(media::kDeprecateLowUsageCodecs)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 612465aa..b6806f82 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -431,7 +431,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI 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 -@@ -400,7 +400,7 @@ const base::Feature kCCTIncognito{"CCTIncognito", +@@ -404,7 +404,7 @@ const base::Feature kCCTIncognito{"CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kCCTIncognitoAvailableToThirdParty{ diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 1a1fe82d..39bf2f6d 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -739,7 +739,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -7303,6 +7303,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7312,6 +7312,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( optimization_guide::features::kOptimizationGuideModelDownloading)}, @@ -1257,7 +1257,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse 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 -@@ -5179,6 +5179,11 @@ const char kWebrtcPipeWireCapturerDescription[] = +@@ -5183,6 +5183,11 @@ const char kWebrtcPipeWireCapturerDescription[] = "capturing the desktop content on the Wayland display server."; #endif // #if defined(WEBRTC_USE_PIPEWIRE) @@ -1272,7 +1272,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 -@@ -3051,6 +3051,9 @@ extern const char kWebrtcPipeWireCapturerName[]; +@@ -3054,6 +3054,9 @@ extern const char kWebrtcPipeWireCapturerName[]; extern const char kWebrtcPipeWireCapturerDescription[]; #endif // #if defined(WEBRTC_USE_PIPEWIRE) @@ -1285,15 +1285,15 @@ 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 -@@ -140,6 +140,7 @@ const base::Feature* kFeaturesExposedToJava[] = { - &kAssistantIntentTranslateInfo, +@@ -141,6 +141,7 @@ const base::Feature* kFeaturesExposedToJava[] = { &kAppLaunchpad, &kBentoOffline, + &kBookmarkBottomSheet, + &kBookmarksExportUseSaf, &kCastDeviceFilter, &kCloseTabSuggestions, &kCriticalPersistedTabData, -@@ -742,6 +743,10 @@ const base::Feature kVoiceButtonInTopToolbar{"VoiceButtonInTopToolbar", +@@ -746,6 +747,10 @@ const base::Feature kVoiceButtonInTopToolbar{"VoiceButtonInTopToolbar", const base::Feature kVrBrowsingFeedback{"VrBrowsingFeedback", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -1307,7 +1307,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -154,6 +154,7 @@ extern const base::Feature kVoiceSearchAudioCapturePolicy; +@@ -155,6 +155,7 @@ extern const base::Feature kVoiceSearchAudioCapturePolicy; extern const base::Feature kVoiceButtonInTopToolbar; extern const base::Feature kVrBrowsingFeedback; extern const base::Feature kPrefetchNotificationSchedulingIntegration; @@ -1318,7 +1318,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -503,6 +503,7 @@ public abstract class ChromeFeatureList { +@@ -504,6 +504,7 @@ public abstract class ChromeFeatureList { public static final String WEB_AUTH_PHONE_SUPPORT = "WebAuthenticationPhoneSupport"; public static final String WEB_FEED = "WebFeed"; public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting"; diff --git a/build/patches/Add-flag-for-save-data-header.patch b/build/patches/Add-flag-for-save-data-header.patch index ad6640a4..71497e42 100644 --- a/build/patches/Add-flag-for-save-data-header.patch +++ b/build/patches/Add-flag-for-save-data-header.patch @@ -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 -@@ -4471,6 +4471,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4476,6 +4476,9 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if defined(OS_ANDROID) diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index c0abc9ba..4a6c6fa3 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // Ensure that all effective connection types returned by Network Quality // Estimator (NQE) are also exposed via flags. static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 == -@@ -3750,6 +3755,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3755,6 +3760,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidPictureInPictureAPIName, flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid, FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)}, diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index cbf63020..c6592d7b 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else 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 -@@ -2666,6 +2666,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2671,6 +2671,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebRtcRemoteEventLogName, flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)}, diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index b35b3c4f..800b7a80 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -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 -@@ -4751,6 +4751,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4760,6 +4760,11 @@ const FeatureEntry kFeatureEntries[] = { #endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || // defined(OS_CHROMEOS) @@ -31,7 +31,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 -@@ -2922,6 +2922,10 @@ const char kContextualSearchRankerQueryDescription[] = +@@ -2926,6 +2926,10 @@ const char kContextualSearchRankerQueryDescription[] = const char kContextualSearchSecondTapName[] = "Contextual Search second tap triggering"; diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 03f51f83..aead01c4 100644 --- a/build/patches/Add-flag-to-disable-WebGL.patch +++ b/build/patches/Add-flag-to-disable-WebGL.patch @@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL 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 -@@ -2619,6 +2619,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2624,6 +2624,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, diff --git a/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch b/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch index 180a7e8a..f4f4c881 100644 --- a/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch +++ b/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch @@ -20,7 +20,7 @@ legacy acceleration events. 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 -@@ -2856,6 +2856,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2861,6 +2861,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index f928b8b6..203bad3f 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -244,7 +244,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -502,6 +502,7 @@ public class BookmarkUtils { +@@ -503,6 +503,7 @@ public class BookmarkUtils { List topLevelFolders = new ArrayList<>(); BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId(); BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId(); @@ -252,7 +252,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkId othersNodeId = bookmarkModel.getOtherFolderId(); List specialFoldersIds = -@@ -527,6 +528,9 @@ public class BookmarkUtils { +@@ -528,6 +529,9 @@ public class BookmarkUtils { if (bookmarkModel.isFolderVisible(mobileNodeId)) { topLevelFolders.add(mobileNodeId); } diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch index 6a31a714..27df8df1 100644 --- a/build/patches/Automated-domain-substitution.patch +++ b/build/patches/Automated-domain-substitution.patch @@ -4020,7 +4020,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kPassiveListenersChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, -@@ -3607,7 +3607,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3612,7 +3612,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSyncSandboxDescription, kOsAll, SINGLE_VALUE_TYPE_AND_VALUE( switches::kSyncServiceURL, @@ -4029,7 +4029,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #if !defined(OS_ANDROID) {"load-media-router-component-extension", flag_descriptions::kLoadMediaRouterComponentExtensionName, -@@ -3853,7 +3853,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3858,7 +3858,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSetMarketUrlForTestingName, flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid, SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting, @@ -4786,7 +4786,7 @@ diff --git a/chrome/browser/devtools/url_constants.cc b/chrome/browser/devtools/ diff --git a/chrome/browser/download/mixed_content_download_blocking.cc b/chrome/browser/download/mixed_content_download_blocking.cc --- a/chrome/browser/download/mixed_content_download_blocking.cc +++ b/chrome/browser/download/mixed_content_download_blocking.cc -@@ -315,7 +315,7 @@ void PrintConsoleMessage(const MixedContentDownloadData& data, +@@ -322,7 +322,7 @@ void PrintConsoleMessage(const MixedContentDownloadData& data, "connection, but the file at '%s' was %s an insecure " "connection. This file should be served over HTTPS. " "This download %s. See " @@ -5000,7 +5000,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kDeviceDiscoveryNotificationsName[] = "Device Discovery Notifications"; -@@ -2121,7 +2121,7 @@ const char kIntensiveWakeUpThrottlingName[] = +@@ -2127,7 +2127,7 @@ const char kIntensiveWakeUpThrottlingName[] = const char kIntensiveWakeUpThrottlingDescription[] = "When enabled, wake ups from DOM Timers are limited to 1 per minute in a " "page that has been hidden for 5 minutes. For additional details, see " @@ -12739,7 +12739,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_constants.cc diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc --- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc +++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc -@@ -79,7 +79,7 @@ std::unique_ptr FirstInputDelayTraceData( +@@ -82,7 +82,7 @@ std::unique_ptr FirstInputDelayTraceData( // language settings update fully launches. #if BUILDFLAG(IS_CHROMEOS_ASH) void RecordVisitToLanguageSettingsSupportPage(const GURL& url) { @@ -23296,7 +23296,7 @@ diff --git a/content/browser/portal/portal_navigation_throttle.cc b/content/brow diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -3921,7 +3921,7 @@ NavigationRequest::CheckCredentialedSubresource() const { +@@ -3937,7 +3937,7 @@ NavigationRequest::CheckCredentialedSubresource() const { const char* console_message = "Subresource requests whose URLs contain embedded credentials (e.g. " "`https://user:pass@host/`) are blocked. See " @@ -23305,7 +23305,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows "details."; parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning, console_message); -@@ -3949,7 +3949,7 @@ NavigationRequest::CheckLegacyProtocolInSubresource() const { +@@ -3965,7 +3965,7 @@ NavigationRequest::CheckLegacyProtocolInSubresource() const { const char* console_message = "Subresource requests using legacy protocols (like `ftp:`) are blocked. " "Please deliver web-accessible resources over modern protocols like " @@ -23314,7 +23314,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows "details."; parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning, console_message); -@@ -4183,7 +4183,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck( +@@ -4199,7 +4199,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck( base::StringPrintf( "Navigating a cross-origin opener to a download (%s) is " "deprecated, see " @@ -28905,7 +28905,7 @@ diff --git a/third_party/blink/renderer/modules/manifest/fuzzer_seed_corpus/play diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc --- a/third_party/blink/renderer/modules/payments/payment_request.cc +++ b/third_party/blink/renderer/modules/payments/payment_request.cc -@@ -95,9 +95,9 @@ using ::payments::mojom::blink::PaymentValidationErrors; +@@ -96,9 +96,9 @@ using ::payments::mojom::blink::PaymentValidationErrors; using ::payments::mojom::blink::PaymentValidationErrorsPtr; const char kHasEnrolledInstrumentDebugName[] = "hasEnrolledInstrument"; diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index 0d8994a2..ab94cba0 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -628,7 +628,7 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -@@ -260,6 +260,14 @@ public class CachedFeatureFlags { +@@ -261,6 +261,14 @@ public class CachedFeatureFlags { ChromeFeatureList.REACHED_CODE_PROFILER, "sampling_interval_us", 0)); } @@ -643,7 +643,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f /** * Caches flags that must take effect on startup but are set via native code. */ -@@ -426,5 +434,7 @@ public class CachedFeatureFlags { +@@ -427,5 +435,7 @@ public class CachedFeatureFlags { @NativeMethods interface Natives { boolean isNetworkServiceWarmUpEnabled(); diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index 8dcc5c6e..92a5aaa6 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -410,7 +410,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -2150,7 +2150,7 @@ const FeatureEntry::FeatureParam +@@ -2155,7 +2155,7 @@ const FeatureEntry::FeatureParam {QuietNotificationPermissionUiConfig::kEnableAbusiveRequestWarning, "true"}, {QuietNotificationPermissionUiConfig::kEnableCrowdDenyTriggering, diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index 645fec8b..47a16c40 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -15,7 +15,7 @@ leak information through the TextClassifier set by OEM, if any 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 -@@ -518,7 +518,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar", +@@ -523,7 +523,7 @@ const base::Feature kDownloadProgressInfoBar{"DownloadProgressInfoBar", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kDownloadFileProvider{"DownloadFileProvider", diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch index 474c43fa..888feb24 100644 --- a/build/patches/Disable-text-fragments-by-default.patch +++ b/build/patches/Disable-text-fragments-by-default.patch @@ -17,7 +17,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 -@@ -5282,6 +5282,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5296,6 +5296,7 @@ const FeatureEntry kFeatureEntries[] = { kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSiteDescription, kOsDesktop, FEATURE_VALUE_TYPE( @@ -28,7 +28,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2755,7 +2755,7 @@ +@@ -2765,7 +2765,7 @@ { "name": "ev-details-in-page-info", "owners": [ "cthomp" ], diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index 2aa90342..a30e7682 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -11,7 +11,7 @@ Unexpire #darken-websites-checkbox-in-themes-setting diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1099,7 +1099,7 @@ +@@ -1109,7 +1109,7 @@ { "name": "disable-keepalive-fetch", "owners": [ "yhirano" ], @@ -23,7 +23,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js 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 -@@ -506,7 +506,7 @@ const base::Feature kContextualSearchTranslations{ +@@ -511,7 +511,7 @@ const base::Feature kContextualSearchTranslations{ "ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kDarkenWebsitesCheckboxInThemesSetting{ diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 5f4ddebb..a6961ab5 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -75,7 +75,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "storage/browser/quota/quota_features.h" #include "third_party/blink/public/common/experiments/memory_ablation_experiment.h" #include "third_party/blink/public/common/features.h" -@@ -2674,6 +2675,18 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2679,6 +2680,18 @@ const FeatureEntry kFeatureEntries[] = { {"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName, flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll, SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)}, diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch index 6b3cb5b4..86a45466 100644 --- a/build/patches/Remove-signin-and-data-saver-integrations.patch +++ b/build/patches/Remove-signin-and-data-saver-integrations.patch @@ -184,7 +184,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.components.sync.ModelType; /** -@@ -157,9 +156,7 @@ public class PriceTrackingUtilities { +@@ -165,9 +164,7 @@ public class PriceTrackingUtilities { } private static boolean isOpenTabsSyncEnabled() { diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index fe6ed79f..43418ce1 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest 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 -@@ -3255,6 +3255,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3260,6 +3260,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidAutofillAccessibilityName, flag_descriptions::kAndroidAutofillAccessibilityDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kAndroidAutofillAccessibility)}, @@ -67,7 +67,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2161,6 +2161,11 @@ +@@ -2166,6 +2166,11 @@ // with neural net palm detection. "expiry_milestone": 90 }, @@ -82,7 +82,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 -@@ -3325,6 +3325,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = +@@ -3329,6 +3329,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = "process to check the Safe Browsing reputation of URLs without calling " "into GmsCore for every URL."; @@ -97,7 +97,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 -@@ -1920,6 +1920,9 @@ extern const char kSafeBrowsingSectionUiAndroidDescription[]; +@@ -1923,6 +1923,9 @@ extern const char kSafeBrowsingSectionUiAndroidDescription[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Name[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Description[]; @@ -110,7 +110,7 @@ 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 -@@ -211,6 +211,7 @@ const base::Feature* kFeaturesExposedToJava[] = { +@@ -212,6 +212,7 @@ const base::Feature* kFeaturesExposedToJava[] = { &kReachedCodeProfiler, &kReaderModeInCCT, &kReengagementNotification, @@ -118,7 +118,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kRelatedSearches, &kRelatedSearchesUi, &kSearchEnginePromoExistingDevice, -@@ -602,6 +603,9 @@ const base::Feature kRelatedSearches{"RelatedSearches", +@@ -606,6 +607,9 @@ const base::Feature kRelatedSearches{"RelatedSearches", const base::Feature kRelatedSearchesUi{"RelatedSearchesUi", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -131,7 +131,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -106,6 +106,7 @@ extern const base::Feature kRelatedSearches; +@@ -107,6 +107,7 @@ extern const base::Feature kRelatedSearches; extern const base::Feature kRelatedSearchesUi; extern const base::Feature kSearchEnginePromoExistingDevice; extern const base::Feature kSearchEnginePromoNewDevice; @@ -142,7 +142,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -374,6 +374,7 @@ public abstract class ChromeFeatureList { +@@ -375,6 +375,7 @@ public abstract class ChromeFeatureList { public static final String OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT = "OmniboxAdaptiveSuggestionsCount"; public static final String OMNIBOX_ASSISTANT_VOICE_SEARCH = "OmniboxAssistantVoiceSearch"; diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index dd0417df..99d5be80 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -39,7 +39,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 -@@ -591,6 +591,7 @@ chrome_java_sources = [ +@@ -592,6 +592,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -306,7 +306,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 -@@ -3831,6 +3831,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3836,6 +3836,9 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE_AND_VALUE( switches::kForceShowUpdateMenuItemCustomSummary, "Custom Summary")}, @@ -319,7 +319,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 -@@ -3364,6 +3364,9 @@ const char kStartSurfaceAndroidDescription[] = +@@ -3374,6 +3374,9 @@ const char kStartSurfaceAndroidDescription[] = "Enable showing the start surface when launching Chrome via the " "launcher."; @@ -332,7 +332,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 -@@ -1944,6 +1944,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[]; +@@ -1950,6 +1950,9 @@ extern const char kSiteIsolationForPasswordSitesDescription[]; extern const char kSmartSuggestionForLargeDownloadsName[]; extern const char kSmartSuggestionForLargeDownloadsDescription[]; @@ -345,7 +345,7 @@ 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 -@@ -193,6 +193,7 @@ const base::Feature* kFeaturesExposedToJava[] = { +@@ -194,6 +194,7 @@ const base::Feature* kFeaturesExposedToJava[] = { &kEphemeralTabUsingBottomSheet, &kExperimentsForAgsa, &kExploreSites, @@ -353,7 +353,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kFocusOmniboxInIncognitoTabIntents, &kHandleMediaIntents, &kHomepagePromoCard, -@@ -579,6 +580,9 @@ const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2", +@@ -587,6 +588,9 @@ const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2", const base::Feature kOfflineMeasurementsBackgroundTask{ "OfflineMeasurementsBackgroundTask", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -366,7 +366,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -97,6 +97,7 @@ extern const base::Feature kNotificationSuspender; +@@ -99,6 +99,7 @@ extern const base::Feature kNotificationSuspender; extern const base::Feature kOfflineIndicatorV2; extern const base::Feature kOfflineMeasurementsBackgroundTask; extern const base::Feature kOmniboxSpareRenderer; @@ -377,7 +377,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -352,6 +352,7 @@ public abstract class ChromeFeatureList { +@@ -354,6 +354,7 @@ public abstract class ChromeFeatureList { public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MARK_HTTP_AS = "MarkHttpAs"; diff --git a/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch b/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch deleted file mode 100644 index eecf9324..00000000 --- a/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 4 Jan 2020 14:49:43 +0100 -Subject: Restore enable-horizontal-tab-switcher flag - ---- - chrome/browser/flag-metadata.json | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json ---- a/chrome/browser/flag-metadata.json -+++ b/chrome/browser/flag-metadata.json -@@ -1889,7 +1889,7 @@ - { - "name": "enable-hosted-app-quit-notification", - "owners": [ "ccameron" ], -- "expiry_milestone": 77 -+ "expiry_milestone": -1 - }, - { - "name": "enable-hostname-setting", --- -2.17.1 - diff --git a/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch b/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch new file mode 100644 index 00000000..b7df98b7 --- /dev/null +++ b/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch @@ -0,0 +1,1217 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 4 Jan 2020 14:49:43 +0100 +Subject: Revert "Remove horizontal tab switcher experiment logic" + +This reverts commit 35156bbe110b1049894e7125e0ba2026340ada0a. +--- + chrome/android/chrome_java_sources.gni | 1 + + .../browser/app/flags/ChromeCachedFlags.java | 1 + + .../browser/compositor/LayerTitleCache.java | 6 +- + .../compositor/layouts/phone/StackLayout.java | 43 +- + .../layouts/phone/StackLayoutBase.java | 47 +- + .../phone/stack/NonOverlappingStack.java | 504 ++++++++++++++++++ + .../compositor/layouts/phone/stack/Stack.java | 12 +- + .../layouts/phone/stack/StackAnimation.java | 56 +- + .../scene_layer/TabListSceneLayer.java | 9 +- + .../survey/ChromeSurveyController.java | 20 +- + .../chrome/browser/toolbar/ToolbarColors.java | 6 +- + .../toolbar/top/TabSwitcherModeTTPhone.java | 20 +- + .../survey/ChromeSurveyControllerTest.java | 2 + + chrome/browser/about_flags.cc | 5 + + chrome/browser/flag-metadata.json | 5 + + chrome/browser/flag_descriptions.cc | 6 + + chrome/browser/flag_descriptions.h | 3 + + .../flags/android/chrome_feature_list.cc | 4 + + .../flags/android/chrome_feature_list.h | 1 + + .../browser/flags/CachedFeatureFlags.java | 1 + + .../browser/flags/ChromeFeatureList.java | 1 + + 21 files changed, 733 insertions(+), 20 deletions(-) + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java + +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 +@@ -324,6 +324,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java", + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java", + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java", ++ "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java", + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/OverlappingStack.java", + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java", + "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java", +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +@@ -78,6 +78,7 @@ public class ChromeCachedFlags { + ChromeFeatureList.CONDITIONAL_TAB_STRIP_ANDROID, + ChromeFeatureList.DOWNLOADS_AUTO_RESUMPTION_NATIVE, + ChromeFeatureList.EARLY_LIBRARY_LOAD, ++ ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID, + ChromeFeatureList.IMMERSIVE_UI_MODE, + ChromeFeatureList.INSTANT_START, + ChromeFeatureList.INTEREST_FEED_V2, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java +@@ -15,6 +15,7 @@ import org.chromium.base.annotations.JNINamespace; + import org.chromium.base.annotations.NativeMethods; + import org.chromium.chrome.R; + import org.chromium.chrome.browser.compositor.layouts.content.TitleBitmapFactory; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.tab.TabFavicon; +@@ -22,6 +23,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; + import org.chromium.chrome.browser.ui.favicon.FaviconHelper; + import org.chromium.chrome.browser.ui.favicon.FaviconHelper.DefaultFaviconHelper; + import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.LocalizationUtils; + import org.chromium.ui.resources.ResourceManager; + import org.chromium.ui.resources.dynamics.BitmapDynamicResource; +@@ -117,7 +119,9 @@ public class LayerTitleCache implements TitleCache { + private String getUpdatedTitleInternal(Tab tab, String titleString, + boolean fetchFaviconFromHistory) { + final int tabId = tab.getId(); +- boolean isDarkTheme = tab.isIncognito(); ++ boolean isHTSEnabled = !DeviceFormFactor.isNonMultiDisplayContextOnTablet(tab.getContext()) ++ && ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); ++ boolean isDarkTheme = tab.isIncognito() && !isHTSEnabled; + Bitmap originalFavicon = TabFavicon.getBitmap(tab); + if (originalFavicon == null) { + originalFavicon = mDefaultFaviconHelper.getDefaultFaviconBitmap( +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java +@@ -12,6 +12,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider + import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost; + import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; + import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; ++import org.chromium.chrome.browser.compositor.layouts.phone.stack.NonOverlappingStack; + import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.tabmodel.TabList; + import org.chromium.chrome.browser.tabmodel.TabModel; +@@ -131,8 +132,38 @@ public class StackLayout extends StackLayoutBase { + + @Override + public void onTabModelSwitched(boolean toIncognitoTabModel) { +- flingStacks(toIncognitoTabModel ? INCOGNITO_STACK_INDEX : NORMAL_STACK_INDEX); +- mFlingFromModelChange = true; ++ if (isHorizontalTabSwitcherFlagEnabled()) { ++ // Don't allow switching between normal and incognito again until the animations finish. ++ mAnimatingStackSwitch = true; ++ ++ // Make sure we update the tab switcher's background color even if no tabs are open and ++ // therefore neither the switch away nor switch to animations run. ++ requestUpdate(); ++ ++ NonOverlappingStack oldStack = (NonOverlappingStack) mStacks.get( ++ toIncognitoTabModel ? NORMAL_STACK_INDEX : INCOGNITO_STACK_INDEX); ++ oldStack.runSwitchAwayAnimation(toIncognitoTabModel ++ ? NonOverlappingStack.SwitchDirection.LEFT ++ : NonOverlappingStack.SwitchDirection.RIGHT); ++ } else { ++ flingStacks(toIncognitoTabModel ? INCOGNITO_STACK_INDEX : NORMAL_STACK_INDEX); ++ mFlingFromModelChange = true; ++ } ++ } ++ ++ @Override ++ public void onSwitchAwayFinished() { ++ int newStackIndex = getTabStackIndex(Tab.INVALID_TAB_ID); ++ mRenderedScrollOffset = -newStackIndex; ++ NonOverlappingStack newStack = (NonOverlappingStack) mStacks.get(newStackIndex); ++ newStack.runSwitchToAnimation(newStackIndex == INCOGNITO_STACK_INDEX ++ ? NonOverlappingStack.SwitchDirection.LEFT ++ : NonOverlappingStack.SwitchDirection.RIGHT); ++ } ++ ++ @Override ++ public void onSwitchToFinished() { ++ mAnimatingStackSwitch = false; + } + + @Override +@@ -147,6 +178,10 @@ public class StackLayout extends StackLayoutBase { + + @Override + protected int getMinRenderedScrollOffset() { ++ // If the horizontal tab switcher flag is enabled, we let the user tap the incognito button ++ // to switch to incognito mode, even if no incognito tabs are open. ++ if (isHorizontalTabSwitcherFlagEnabled()) return -1; ++ + // If there's at least one incognito tab open, or we're in the process of switching back + // from incognito to normal mode, return -1 so we don't cause any clamping. Otherwise, + // return 0 to prevent scrolling. +@@ -170,6 +205,10 @@ public class StackLayout extends StackLayoutBase { + + @Override + protected @SwipeMode int computeInputMode(long time, float x, float y, float dx, float dy) { ++ // If this experiment flag is enabled, we add an incognito toggle button to the toolbar, and ++ // disable swiping between the stacks. ++ if (isHorizontalTabSwitcherFlagEnabled()) return SwipeMode.SEND_TO_STACK; ++ + if (mStacks.size() == 2 && !mStacks.get(1).isDisplayable()) return SwipeMode.SEND_TO_STACK; + return super.computeInputMode(time, x, y, dx, dy); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java +@@ -34,10 +34,13 @@ import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; + import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; + import org.chromium.chrome.browser.compositor.layouts.eventfilter.GestureEventFilter; + import org.chromium.chrome.browser.compositor.layouts.eventfilter.GestureHandler; ++import org.chromium.chrome.browser.compositor.layouts.phone.stack.NonOverlappingStack; + import org.chromium.chrome.browser.compositor.layouts.phone.stack.OverlappingStack; + import org.chromium.chrome.browser.compositor.layouts.phone.stack.Stack; + import org.chromium.chrome.browser.compositor.layouts.phone.stack.StackTab; + import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer; ++import org.chromium.chrome.browser.flags.CachedFeatureFlags; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.homepage.HomepageManager; + import org.chromium.chrome.browser.layouts.EventFilter; + import org.chromium.chrome.browser.layouts.LayoutType; +@@ -446,12 +449,20 @@ public abstract class StackLayoutBase extends Layout { + mScrollIndexOffset = v; + } + ++ /** ++ * Whether or not the HorizontalTabSwitcherAndroid flag (which enables the new horizontal tab ++ * switcher in both portrait and landscape mode) is enabled. ++ */ ++ protected boolean isHorizontalTabSwitcherFlagEnabled() { ++ return CachedFeatureFlags.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); ++ } ++ + /** + * Whether or not we're currently having the tabs scroll horizontally (as opposed to + * vertically). + */ + private boolean isUsingHorizontalLayout() { +- return getOrientation() == Orientation.LANDSCAPE; ++ return getOrientation() == Orientation.LANDSCAPE || isHorizontalTabSwitcherFlagEnabled(); + } + + /** +@@ -464,7 +475,12 @@ public abstract class StackLayoutBase extends Layout { + mStacks.subList(lists.size(), mStacks.size()).clear(); + } + while (mStacks.size() < lists.size()) { +- Stack stack = new OverlappingStack(getContext(), this); ++ Stack stack; ++ if (isHorizontalTabSwitcherFlagEnabled()) { ++ stack = new NonOverlappingStack(getContext(), this); ++ } else { ++ stack = new OverlappingStack(getContext(), this); ++ } + stack.notifySizeChanged(mWidth, mHeight, mOrientation); + mStacks.add(stack); + } +@@ -751,6 +767,18 @@ public abstract class StackLayoutBase extends Layout { + } + } + ++ /** ++ * Called by a NonOverlappingStack that's had switchAwayEffect() called on it, once the ++ * animation has finished. ++ */ ++ public void onSwitchAwayFinished() {} ++ ++ /** ++ * Called by a NonOverlappingStack that's had switchToEffect() called on it, once the ++ * animation has finished. ++ */ ++ public void onSwitchToFinished() {} ++ + /** + * Called when layout-specific actions are needed after the animation finishes. + */ +@@ -840,7 +868,7 @@ public abstract class StackLayoutBase extends Layout { + // Tabs don't overlap in the horizontal tab switcher experiment, so the order comparator + // already does what we want (the visibility comparator's logic actually doesn't compute + // visibility properly in this case). +- mSortingComparator = mVisibilityComparator; ++ if (!isHorizontalTabSwitcherFlagEnabled()) mSortingComparator = mVisibilityComparator; + doneShowing(); + } + +@@ -1140,6 +1168,10 @@ public abstract class StackLayoutBase extends Layout { + + @Override + float getInnerMargin() { ++ // If we're using the new horizontal tab switcher, don't show the edge of the other ++ // stack (normal if in incognito mode and incognito if in normal mode) on-screen. ++ if (isHorizontalTabSwitcherFlagEnabled()) return 0; ++ + float margin = mInnerMarginPercent + * Math.max(mMinMaxInnerMargin, mWidth * INNER_MARGIN_PERCENT_PERCENT); + return margin; +@@ -1197,6 +1229,7 @@ public abstract class StackLayoutBase extends Layout { + // Need getHeight() for this case instead of getHeightMinusBrowserControls() so the + // normal stack goes up high enough to clear the status bar when the incognito stack is + // active. ++ if (isHorizontalTabSwitcherFlagEnabled()) return StackLayoutBase.this.getHeight(); + return Math.round(mWidth - getInnerMargin()); + } + } +@@ -1350,7 +1383,8 @@ public abstract class StackLayoutBase extends Layout { + // If the non-overlapping horizontal tab switcher experiment is enabled, we pass -1 so + // NonOverlappingStack can use the scroll position to keep the index used for visibility + // prioritization up-to-date. +- final boolean useFixedIndex = mSortingComparator == mOrderComparator; ++ final boolean useFixedIndex = ++ mSortingComparator == mOrderComparator && !isHorizontalTabSwitcherFlagEnabled(); + mStacks.get(i).setStackFocusInfo( + stackFocus, useFixedIndex ? mStacks.get(i).getTabList().index() : -1); + } +@@ -1423,6 +1457,11 @@ public abstract class StackLayoutBase extends Layout { + * @return The distance between two neighboring tab stacks. + */ + private float getFullScrollDistance() { ++ // For the horizontal tab switcher experiment, we use getHeight() instead of ++ // getHeightMinusBrowserControls() to make sure the normal stack goes up enough to clear the ++ // status bar when switching to incognito mode. ++ if (isHorizontalTabSwitcherFlagEnabled()) return getHeight(); ++ + float distance = isUsingHorizontalLayout() ? getHeightMinusContentOffsetsDp() : getWidth(); + if (mStacks.size() > 2) { + return distance - getViewportParameters().getInnerMargin(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java +@@ -0,0 +1,504 @@ ++// Copyright 2018 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++package org.chromium.chrome.browser.compositor.layouts.phone.stack; ++ ++import android.animation.Animator; ++import android.animation.AnimatorListenerAdapter; ++import android.animation.AnimatorSet; ++import android.content.Context; ++ ++import androidx.annotation.IntDef; ++ ++import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; ++import org.chromium.chrome.browser.compositor.layouts.phone.StackLayoutBase; ++import org.chromium.chrome.browser.layouts.animation.CompositorAnimationHandler; ++import org.chromium.chrome.browser.layouts.animation.CompositorAnimator; ++ ++import java.lang.annotation.Retention; ++import java.lang.annotation.RetentionPolicy; ++import java.util.ArrayList; ++import java.util.Collection; ++ ++/** ++ * The non-overlapping tab stack we use when the HorizontalTabSwitcherAndroid flag is enabled. ++ */ ++public class NonOverlappingStack extends Stack { ++ @IntDef({SwitchDirection.LEFT, SwitchDirection.RIGHT}) ++ @Retention(RetentionPolicy.SOURCE) ++ public @interface SwitchDirection { ++ int LEFT = 0; ++ int RIGHT = 1; ++ } ++ ++ /** ++ * The scale the tabs should be shown at when there's exactly one tab open. ++ */ ++ private static final float SCALE_FRACTION_SINGLE_TAB = 0.80f; ++ ++ /** ++ * The scale the tabs should be shown at when there are two or more tabs open. ++ */ ++ private static final float SCALE_FRACTION_MULTIPLE_TABS = 0.54f; ++ ++ /** ++ * The percentage of the screen that defines the spacing between tabs by default (no pinch). ++ */ ++ private static final float SPACING_SCREEN = 1.0f; ++ ++ /** ++ * Controls how far we slide over the (up to) three visible tabs for the switch away and switch ++ * to animations (multiple of mSpacing). ++ */ ++ private static final float SWITCH_ANIMATION_SPACING_MULTIPLE = 2.5f; ++ ++ /** ++ * Duration of the switch away animation (in milliseconds). ++ */ ++ private static final int SWITCH_AWAY_ANIMATION_DURATION = 250; ++ ++ /** ++ * Duration of the switch to animation (in milliseconds). ++ */ ++ private static final int SWITCH_TO_ANIMATION_DURATION = 250; ++ ++ /** ++ * Adjustment to add a fixed amount of space between the tabs that's not based on a percentage ++ * of the screen (if were 0, the tab borders would actually overlap in the current ++ * implementation). ++ */ ++ private static final float EXTRA_SPACE_BETWEEN_TABS_DP = 25.0f; ++ ++ /** ++ * How much the stack should adjust the y position of each LayoutTab in portrait mode (as a ++ * fraction of the amount space that would be above and below the tab if it were centered). ++ */ ++ private static final float STACK_PORTRAIT_Y_OFFSET_PROPORTION = 0.f; ++ ++ /** ++ * How much the stack should adjust the x position of each LayoutTab in landscape mode (as a ++ * fraction of the amount space that would be to the left and right of the tab if it were ++ * centered). ++ */ ++ private static final float STACK_LANDSCAPE_START_OFFSET_PROPORTION = 0.f; ++ ++ /** ++ * How much the stack should adjust the x position of each LayoutTab in portrait mode (as a ++ * fraction of the amount space that would be above and below the tab if it were centered). ++ */ ++ private static final float STACK_LANDSCAPE_Y_OFFSET_PROPORTION = 0.f; ++ ++ /** ++ * Multiplier for adjusting the scrolling friction from the amount provided by ++ * ViewConfiguration. ++ */ ++ private static final float FRICTION_MULTIPLIER = 0.6f; ++ ++ /** ++ * For short scrolls of duration less than this (in milliseconds), we assume the user wants to ++ * scroll over to the next tab. If the scroll is longer in duration, we assume they're ++ * reconsidering their scroll, so we leave them on the current tab (unless they drag over far ++ * enough to center a new tab). ++ */ ++ private static final int SCROLL_BOOST_TIMEOUT_MS = 250; ++ ++ /** ++ * The minimum fraction of a tab the user has to scroll over by before we apply the boost to ++ * scroll them to the next tab. ++ */ ++ private static final float SCROLL_BOOST_THRESHOLD = 0.05f; ++ ++ /** ++ * Used to prevent mScrollOffset from being changed as a result of clamping during the switch ++ * away/switch to animations. ++ */ ++ private boolean mSuppressScrollClamping; ++ ++ /** ++ * Whether or not the current stack has been "switched away" by having runSwitchAwayAnimation() ++ * called. Calling runSwitchToAnimation() resets this back to false. Checking this variable lets ++ * us avoid re-playing animations if they're triggered multiple times. ++ */ ++ private boolean mSwitchedAway; ++ ++ /** Time at which the last touch down event occurred. */ ++ private long mLastTouchDownTime; ++ /** Index of the tab that was centered when the last touch down event occurred. */ ++ private int mCenteredTabAtTouchDown; ++ ++ /** ++ * @param layout The parent layout. ++ */ ++ public NonOverlappingStack(Context context, StackLayoutBase layout) { ++ super(context, layout); ++ } ++ ++ private int getNonDyingTabCount() { ++ if (mStackTabs == null) return 0; ++ ++ int dyingCount = 0; ++ for (int i = 0; i < mStackTabs.length; i++) { ++ if (mStackTabs[i].isDying()) dyingCount++; ++ } ++ return mStackTabs.length - dyingCount; ++ } ++ ++ @Override ++ public float getScaleAmount() { ++ if (getNonDyingTabCount() > 1) return SCALE_FRACTION_MULTIPLE_TABS; ++ return SCALE_FRACTION_SINGLE_TAB; ++ } ++ ++ @Override ++ protected void finishAnimation(long time) { ++ super.finishAnimation(time); ++ mSuppressScrollClamping = false; ++ } ++ ++ @Override ++ protected boolean evenOutTabs(float amount, boolean allowReverseDirection) { ++ // Nothing to do here; tabs are always a fixed distance apart in NonOverlappingStack (except ++ // during tab close/un-close animations) ++ return false; ++ } ++ ++ private void updateScrollSnap() { ++ mScroller.setFrictionMultiplier(FRICTION_MULTIPLIER); ++ // This is what computeSpacing() returns when there are >= 2 tabs ++ final int snapDistance = ++ (int) Math.round(getScrollDimensionSize() * SCALE_FRACTION_MULTIPLE_TABS ++ + EXTRA_SPACE_BETWEEN_TABS_DP); ++ // Really we're scrolling in the x direction, but the scroller is always wired up to the y ++ // direction for both portrait and landscape mode. ++ mScroller.setYSnapDistance(snapDistance); ++ } ++ ++ @Override ++ public void contextChanged(Context context) { ++ super.contextChanged(context); ++ updateScrollSnap(); ++ } ++ ++ /** ++ * @return The index of the currently centered tab. If we're not currently snapped to a tab ++ * (e.g. we're in the process of animating a scroll or the user is currently dragging), ++ * returns the index of the tab closest to the center. ++ */ ++ public int getCenteredTabIndex() { ++ return Math.round(-mScrollOffset / mSpacing); ++ } ++ ++ @Override ++ public void notifySizeChanged(float width, float height, int orientation) { ++ super.notifySizeChanged(width, height, orientation); ++ ++ int centeredTab = getCenteredTabIndex(); ++ mSpacing = computeSpacing(0); ++ updateScrollOffsets(centeredTab); ++ ++ updateScrollSnap(); ++ } ++ ++ @Override ++ public void onDown(long time) { ++ super.onDown(time); ++ mLastTouchDownTime = time; ++ mCenteredTabAtTouchDown = getCenteredTabIndex(); ++ mScroller.setCenteredYSnapIndexAtTouchDown(mCenteredTabAtTouchDown); ++ } ++ ++ @Override ++ public void onLongPress(long time, float x, float y) { ++ // Ignore long presses ++ } ++ ++ @Override ++ public void onPinch(long time, float x0, float y0, float x1, float y1, boolean firstEvent) { ++ return; ++ } ++ ++ @Override ++ protected void springBack(long time) { ++ if (!mScroller.isFinished()) return; ++ ++ int offsetAtTouchDown = -mCenteredTabAtTouchDown * mSpacing; ++ float scrollFractionToNextTab = (offsetAtTouchDown - mScrollOffset) / mSpacing; ++ ++ int newCenteredTab; ++ // Make quick, short scrolls go over to the next tab (if a scroll is short but not quick, we ++ // assume the user might have decided to stay on the current tab). ++ if (time < mLastTouchDownTime + SCROLL_BOOST_TIMEOUT_MS ++ && Math.abs(scrollFractionToNextTab) > SCROLL_BOOST_THRESHOLD) { ++ newCenteredTab = mCenteredTabAtTouchDown + (int) Math.signum(scrollFractionToNextTab); ++ } else { ++ newCenteredTab = getCenteredTabIndex(); ++ } ++ ++ int newTarget = -newCenteredTab * mSpacing; ++ mScroller.flingYTo((int) mScrollTarget, newTarget, time); ++ setScrollTarget(newTarget, false); ++ mLayout.requestUpdate(); ++ } ++ ++ @Override ++ protected float getSpacingScreen() { ++ return SPACING_SCREEN; ++ } ++ ++ @Override ++ protected boolean shouldStackTabsAtTop() { ++ return false; ++ } ++ ++ @Override ++ protected boolean shouldStackTabsAtBottom() { ++ return false; ++ } ++ ++ @Override ++ protected float getStackPortraitYOffsetProportion() { ++ return STACK_PORTRAIT_Y_OFFSET_PROPORTION; ++ } ++ ++ @Override ++ protected float getStackLandscapeStartOffsetProportion() { ++ return STACK_LANDSCAPE_START_OFFSET_PROPORTION; ++ } ++ ++ @Override ++ protected float getStackLandscapeYOffsetProportion() { ++ return STACK_LANDSCAPE_Y_OFFSET_PROPORTION; ++ } ++ ++ @Override ++ protected void computeTabClippingVisibilityHelper() { ++ // Performance optimization: we don't need to draw any tab other than the centered one, the ++ // one immediately to the left, and the two immediately to the right (we need the second ++ // one for discard animations) since the others can't possibly be on screen. ++ int centeredTab = getCenteredTabIndex(); ++ for (int i = 0; i < mStackTabs.length; i++) { ++ LayoutTab layoutTab = mStackTabs[i].getLayoutTab(); ++ if (i < centeredTab - 1 || i > centeredTab + 2) { ++ layoutTab.setVisible(false); ++ } else { ++ layoutTab.setVisible(true); ++ } ++ } ++ } ++ ++ @Override ++ protected int computeReferenceIndex() { ++ return getCenteredTabIndex(); ++ } ++ ++ @Override ++ protected boolean shouldCloseGapsBetweenTabs() { ++ return false; ++ } ++ ++ @Override ++ protected float getMinScroll(boolean allowUnderScroll) { ++ if (mSuppressScrollClamping) return -Float.MAX_VALUE; ++ ++ if (mStackTabs == null) return 0; ++ for (int i = mStackTabs.length - 1; i >= 0; i--) { ++ // The getScrollOffset() != 0 check avoids a bug when undiscarding the last tab, in ++ // which case the tab's scroll offset is initially set to 0, which would cause us to ++ // immediately center the first tab. If 0 is the correct offset to return, it's the ++ // default value anyway after going through all the tabs. ++ if (!mStackTabs[i].isDying() && mStackTabs[i].getScrollOffset() != 0) { ++ return -mStackTabs[i].getScrollOffset(); ++ } ++ } ++ ++ return 0; ++ } ++ ++ @Override ++ protected boolean allowOverscroll() { ++ return false; ++ } ++ ++ @Override ++ protected int computeSpacing(int layoutTabCount) { ++ return (int) Math.round( ++ getScrollDimensionSize() * getScaleAmount() + EXTRA_SPACE_BETWEEN_TABS_DP); ++ } ++ ++ /** ++ * Updates the overall scroll offset and the scroll offsets for each tab based on the current ++ * value of mSpacing so that the tabs are in the proper locations and the specified tab is ++ * centered. ++ * ++ * @param centeredTab The index of the tab that should be centered. ++ */ ++ private void updateScrollOffsets(int centeredTab) { ++ // Reset the tabs' scroll offsets. ++ if (mStackTabs != null) { ++ for (int i = 0; i < mStackTabs.length; i++) { ++ mStackTabs[i].setScrollOffset(i * mSpacing); ++ } ++ } ++ ++ // Reset the overall scroll offset. ++ mScrollOffset = -centeredTab * mSpacing; ++ setScrollTarget(mScrollOffset, false); ++ } ++ ++ @Override ++ protected void resetAllScrollOffset() { ++ if (mTabList == null) return; ++ updateScrollOffsets(mTabList.index()); ++ } ++ ++ // NonOverlappingStack uses linear scrolling, so screenToScroll() and scrollToScreen() are both ++ // just the identity function. ++ @Override ++ public float screenToScroll(float screenSpace) { ++ return screenSpace; ++ } ++ ++ @Override ++ public float scrollToScreen(float scrollSpace) { ++ return scrollSpace; ++ } ++ ++ @Override ++ public float getMaxTabHeight() { ++ // We want to maintain a constant tab height (via cropping) even as the width is changed as ++ // a result of changing the scale. ++ if (getNonDyingTabCount() > 1) return mLayout.getHeight(); ++ return (SCALE_FRACTION_MULTIPLE_TABS / SCALE_FRACTION_SINGLE_TAB) * mLayout.getHeight(); ++ } ++ ++ /** ++ * This method sets mSuppressScrollClamping to true to allow an animation to animate the ++ * mScrollOffset outside the normal bounds. It will be reset to false when finishAnimation() is ++ * called. ++ */ ++ public void suppressScrollClampingForAnimation() { ++ mSuppressScrollClamping = true; ++ } ++ ++ /** ++ * Animates the (up to 3) visible tabs sliding off screen. ++ * @param direction Whether the tabs should slide off the left or right side of the screen. ++ */ ++ public void runSwitchAwayAnimation(@SwitchDirection int direction) { ++ if (mStackTabs == null || mSwitchedAway) { ++ mSwitchedAway = true; ++ mLayout.onSwitchAwayFinished(); ++ return; ++ } ++ ++ mSwitchedAway = true; ++ mSuppressScrollClamping = true; ++ ++ // Make sure we don't leave any tabs stuck in a partially-discarded state. ++ for (int i = 0; i < mStackTabs.length; i++) { ++ mStackTabs[i].setDiscardAmount(0); ++ } ++ ++ // Make sure the tabs are not scrolling so the centered tab does not change between the ++ // "switch away" and "switch to" animations. ++ forceScrollStop(); ++ ++ CompositorAnimationHandler handler = mLayout.getAnimationHandler(); ++ Collection animationList = new ArrayList<>(); ++ ++ int centeredTab = getCenteredTabIndex(); ++ for (int i = centeredTab - 1; i <= centeredTab + 1; i++) { ++ if (i < 0 || i >= mStackTabs.length) continue; ++ StackTab tab = mStackTabs[i]; ++ ++ float endOffset; ++ if (direction == SwitchDirection.LEFT) { ++ endOffset = -SWITCH_ANIMATION_SPACING_MULTIPLE * mSpacing + tab.getScrollOffset(); ++ } else { ++ endOffset = SWITCH_ANIMATION_SPACING_MULTIPLE * mSpacing + tab.getScrollOffset(); ++ } ++ ++ CompositorAnimator animation = ++ CompositorAnimator.ofFloatProperty(handler, tab, StackTab.SCROLL_OFFSET, ++ tab.getScrollOffset(), endOffset, SWITCH_AWAY_ANIMATION_DURATION); ++ animationList.add(animation); ++ } ++ ++ AnimatorSet set = new AnimatorSet(); ++ set.playTogether(animationList); ++ set.addListener(new AnimatorListenerAdapter() { ++ @Override ++ public void onAnimationEnd(Animator a) { ++ // If the user pressed the incognito button with one finger while dragging the stack ++ // with another, we might not be centered on a tab. We therefore need to enforce ++ // this after the animation finishes to avoid odd behavior if/when the user returns ++ // to this stack. ++ ++ mScrollOffset = Math.round(mScrollOffset / mSpacing) * mSpacing; ++ forceScrollStop(); ++ mLayout.onSwitchAwayFinished(); ++ } ++ }); ++ set.start(); ++ } ++ ++ /** ++ * Animates the (up to 3) tabs were slid off the screen by runSwitchAwayAnimation() back onto ++ * the screen. ++ * @param direction Whether the tabs should slide in from the left or right side of the screen. ++ */ ++ public void runSwitchToAnimation(@SwitchDirection int direction) { ++ if (mStackTabs == null || !mSwitchedAway) { ++ mSwitchedAway = false; ++ mLayout.onSwitchToFinished(); ++ return; ++ } ++ ++ mSwitchedAway = false; ++ mSuppressScrollClamping = true; ++ ++ CompositorAnimationHandler handler = mLayout.getAnimationHandler(); ++ Collection animationList = new ArrayList<>(); ++ ++ int centeredTab = getCenteredTabIndex(); ++ for (int i = centeredTab - 1; i <= centeredTab + 1; i++) { ++ if (i < 0 || i >= mStackTabs.length) continue; ++ StackTab tab = mStackTabs[i]; ++ ++ float startOffset; ++ if (direction == SwitchDirection.LEFT) { ++ startOffset = SWITCH_ANIMATION_SPACING_MULTIPLE * mSpacing + tab.getScrollOffset(); ++ } else { ++ startOffset = -SWITCH_ANIMATION_SPACING_MULTIPLE * mSpacing + tab.getScrollOffset(); ++ } ++ ++ CompositorAnimator animation = ++ CompositorAnimator.ofFloatProperty(handler, tab, StackTab.SCROLL_OFFSET, ++ startOffset, i * mSpacing, SWITCH_TO_ANIMATION_DURATION); ++ animationList.add(animation); ++ } ++ ++ AnimatorSet set = new AnimatorSet(); ++ set.playTogether(animationList); ++ set.addListener(new AnimatorListenerAdapter() { ++ @Override ++ public void onAnimationEnd(Animator a) { ++ // There are some oddball cases, e.g. a tab was immediately closed before triggering ++ // the toggle animation, where the tab offsets might get left in an undesired state. ++ // Resetting all the scroll offsets here limits the effect of these bugs to just ++ // making the animation look funny vs. leaving the tabs e.g. stuck with gaps between ++ // them or overlapping each other. ++ if (mStackTabs != null) { ++ for (int i = 0; i < mStackTabs.length; i++) { ++ mStackTabs[i].setScrollOffset(i * mSpacing); ++ } ++ } ++ ++ mSuppressScrollClamping = false; ++ mLayout.onSwitchToFinished(); ++ } ++ }); ++ set.start(); ++ } ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java +@@ -21,6 +21,8 @@ import org.chromium.chrome.browser.compositor.layouts.Layout.Orientation; + import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; + import org.chromium.chrome.browser.compositor.layouts.phone.StackLayoutBase; + import org.chromium.chrome.browser.compositor.layouts.phone.stack.StackAnimation.OverviewAnimationType; ++import org.chromium.chrome.browser.flags.CachedFeatureFlags; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.layouts.animation.CompositorAnimationHandler; + import org.chromium.chrome.browser.layouts.animation.FloatProperty; + import org.chromium.chrome.browser.tab.Tab; +@@ -357,6 +359,10 @@ public abstract class Stack { + * we should put it on the left. This method already accounts for RTL flipping. + */ + private boolean isCloseButtonOnRight() { ++ if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)) { ++ return !LocalizationUtils.isLayoutRtl(); ++ } ++ + return mCurrentMode == Orientation.PORTRAIT ^ LocalizationUtils.isLayoutRtl(); + } + +@@ -2025,7 +2031,11 @@ public abstract class Stack { + } + + protected void updateCurrentMode(@Orientation int orientation) { +- mCurrentMode = orientation; ++ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)) { ++ mCurrentMode = Orientation.LANDSCAPE; ++ } else { ++ mCurrentMode = orientation; ++ } + + mDiscardDirection = getDefaultDiscardDirection(); + final float opaqueTopPadding = mBorderTopPadding - mBorderTransparentTop; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java +@@ -13,6 +13,7 @@ import androidx.annotation.IntDef; + import org.chromium.base.MathUtils; + import org.chromium.chrome.browser.compositor.layouts.Layout.Orientation; + import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.layouts.animation.CompositorAnimationHandler; + import org.chromium.chrome.browser.layouts.animation.CompositorAnimator; + import org.chromium.chrome.browser.layouts.animation.FloatProperty; +@@ -353,6 +354,11 @@ public class StackAnimation { + } + } + ++ // If this flag is enabled, we're using the non-overlapping tab switcher. ++ private boolean isHorizontalTabSwitcherFlagEnabled() { ++ return ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); ++ } ++ + private void createPortraitEnterStackAnimatorSet( + StackAnimatorSet stackAnimatorSet, StackTab[] tabs, int focusIndex, int spacing) { + final float initialScrollOffset = mStack.screenToScroll(0); +@@ -531,8 +537,11 @@ public class StackAnimation { + if (mOrientation == Orientation.LANDSCAPE) { + stackAnimatorSet.addToAnimation(tab, StackTab.X_IN_STACK_INFLUENCE, + tab.getXInStackInfluence(), 0.0f, TAB_FOCUSED_ANIMATION_DURATION_MS, null); +- stackAnimatorSet.addToAnimation(tab, StackTab.SCROLL_OFFSET, tab.getScrollOffset(), +- mStack.screenToScroll(0), TAB_FOCUSED_ANIMATION_DURATION_MS, null); ++ if (!isHorizontalTabSwitcherFlagEnabled()) { ++ stackAnimatorSet.addToAnimation(tab, StackTab.SCROLL_OFFSET, ++ tab.getScrollOffset(), mStack.screenToScroll(0), ++ TAB_FOCUSED_ANIMATION_DURATION_MS, null); ++ } + } else { // mOrientation == Orientation.PORTRAIT + stackAnimatorSet.addToAnimation(tab, StackTab.SCROLL_OFFSET, tab.getScrollOffset(), + Math.max(0.0f, tab.getScrollOffset() - mWidth - spacing), +@@ -610,10 +619,12 @@ public class StackAnimation { + // If the non-overlapping horizontal tab switcher is enabled, we shift all the + // tabs over simultaneously. Otherwise we stagger the animation start times to + // create a ripple effect. +- long startTime = (long) Math.max(0, +- TAB_REORDER_START_SPAN / screenSizeInScrollDirection +- * (getLandscapePortraitScreenPositionInScrollDirection(tab) +- - firstDyingTabOffset)); ++ long startTime = isHorizontalTabSwitcherFlagEnabled() ++ ? 0 ++ : (long) Math.max(0, ++ TAB_REORDER_START_SPAN / screenSizeInScrollDirection ++ * (getLandscapePortraitScreenPositionInScrollDirection(tab) ++ - firstDyingTabOffset)); + if (tab.isDying()) { + float discard = tab.getDiscardAmount(); + if (discard == 0.0f) discard = defaultDiscardDirectionPositive ? 0.0f : -0.0f; +@@ -653,6 +664,39 @@ public class StackAnimation { + newIndex++; + } + } ++ ++ // Scroll offset animation for non-overlapping horizontal tab switcher (if enabled) ++ if (isHorizontalTabSwitcherFlagEnabled()) { ++ NonOverlappingStack nonOverlappingStack = (NonOverlappingStack) stack; ++ int centeredTabIndex = nonOverlappingStack.getCenteredTabIndex(); ++ ++ // For all tab closures (except for the last one), we slide the remaining tabs ++ // in to fill the gap. ++ // ++ // There are two cases where we also need to animate the NonOverlappingStack's ++ // overall scroll position over by one tab: ++ // ++ // - Closing the last tab while centered on it (since we don't have a tab we can ++ // slide over to replace it) ++ // ++ // - Closing any tab prior to the currently centered one (so we can keep the ++ // same tab centered). Together with animating the individual scroll offsets for ++ // each tab, this has the visual appearance of sliding in the prior tabs from the ++ // left (in LTR mode) to fill the gap. ++ boolean closingLastTabWhileCentered = ++ firstDyingTabIndex == tabs.length - 1 && firstDyingTabIndex == centeredTabIndex; ++ boolean closingPriorTab = ++ firstDyingTabIndex != -1 && firstDyingTabIndex < centeredTabIndex; ++ ++ boolean shouldAnimateStackScrollOffset = closingLastTabWhileCentered || closingPriorTab; ++ ++ if (shouldAnimateStackScrollOffset) { ++ nonOverlappingStack.suppressScrollClampingForAnimation(); ++ stackAnimatorSet.addToAnimation(nonOverlappingStack, Stack.SCROLL_OFFSET, ++ stack.getScrollOffset(), -(centeredTabIndex - 1) * stack.getSpacing(), ++ TAB_REORDER_DURATION_MS, null); ++ } ++ } + } + + /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java +@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.compositor.LayerTitleCache; + import org.chromium.chrome.browser.compositor.layouts.Layout; + import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; + import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.layouts.scene_layer.SceneLayer; + import org.chromium.chrome.browser.tabmodel.TabModelSelector; + import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; +@@ -97,6 +98,9 @@ public class TabListSceneLayer extends SceneLayer { + backgroundResourceId, backgroundAlpha, backgroundTopOffset); + } + ++ boolean isHTSEnabled = ++ ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); ++ + final float shadowAlpha = ColorUtils.shouldUseLightForegroundOnBackground(tabListBgColor) + ? LayoutTab.SHADOW_ALPHA_ON_DARK_BG + : LayoutTab.SHADOW_ALPHA_ON_LIGHT_BG; +@@ -107,7 +111,7 @@ public class TabListSceneLayer extends SceneLayer { + final float decoration = t.getDecorationAlpha(); + + int urlBarBackgroundId = R.drawable.modern_location_bar; +- boolean useIncognitoColors = t.isIncognito(); ++ boolean useIncognitoColors = t.isIncognito() && !isHTSEnabled; + + int defaultThemeColor = ChromeColors.getDefaultThemeColor(res, useIncognitoColors); + +@@ -161,7 +165,8 @@ public class TabListSceneLayer extends SceneLayer { + protected int getTabListBackgroundColor(Context context) { + int colorId = R.color.default_bg_color; + +- if (TabUiFeatureUtilities.isGridTabSwitcherEnabled()) { ++ if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID) ++ || TabUiFeatureUtilities.isGridTabSwitcherEnabled()) { + if (mTabModelSelector != null && mTabModelSelector.isIncognitoSelected()) { + colorId = R.color.default_bg_color_dark; + } else { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java +@@ -18,6 +18,7 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.base.task.AsyncTask; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.flags.ChromeSwitches; + import org.chromium.chrome.browser.infobar.InfoBarContainer; + import org.chromium.chrome.browser.infobar.InfoBarIdentifier; +@@ -138,7 +139,10 @@ public class ChromeSurveyController implements InfoBarAnimationListener { + } + }; + +- String siteContext = ChromeVersionInfo.getProductVersion() + ",NotHorizontalTabSwitcher"; ++ String siteContext = ChromeVersionInfo.getProductVersion() + "," ++ + (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID) ++ ? "HorizontalTabSwitcher" ++ : "NotHorizontalTabSwitcher"); + surveyController.downloadSurvey(context, siteId, onSuccessRunnable, siteContext); + } + +@@ -317,6 +321,20 @@ public class ChromeSurveyController implements InfoBarAnimationListener { + } + + int maxNumber = getMaxNumber(); ++ ++ int maxForHorizontalTabSwitcher = -1; ++ if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)) { ++ maxForHorizontalTabSwitcher = ChromeFeatureList.getFieldTrialParamByFeatureAsInt( ++ ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID, MAX_NUMBER, -1); ++ } ++ if (maxForHorizontalTabSwitcher != -1) { ++ if (maxNumber == -1) { ++ maxNumber = maxForHorizontalTabSwitcher; ++ } else { ++ maxNumber = Math.min(maxNumber, maxForHorizontalTabSwitcher); ++ } ++ } ++ + if (maxNumber == -1) { + recordSurveyFilteringResult(FilteringResult.MAX_NUMBER_MISSING); + return false; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarColors.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarColors.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarColors.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarColors.java +@@ -5,6 +5,7 @@ + package org.chromium.chrome.browser.toolbar; + + import org.chromium.chrome.browser.device.DeviceClassManager; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; + import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; + +@@ -17,8 +18,11 @@ public class ToolbarColors { + */ + public static boolean canUseIncognitoToolbarThemeColorInOverview() { + final boolean isAccessibilityEnabled = DeviceClassManager.enableAccessibilityLayout(); ++ final boolean isHorizontalTabSwitcherEnabled = ChromeFeatureList.isInitialized() ++ && ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); + final boolean isTabGridEnabled = TabUiFeatureUtilities.isGridTabSwitcherEnabled(); + final boolean isStartSurfaceEnabled = StartSurfaceConfiguration.isStartSurfaceEnabled(); +- return (isAccessibilityEnabled || isTabGridEnabled || isStartSurfaceEnabled); ++ return (isAccessibilityEnabled || isHorizontalTabSwitcherEnabled || isTabGridEnabled ++ || isStartSurfaceEnabled); + } + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java +@@ -18,6 +18,7 @@ import androidx.appcompat.content.res.AppCompatResources; + + import org.chromium.chrome.R; + import org.chromium.chrome.browser.device.DeviceClassManager; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.incognito.IncognitoUtils; + import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; + import org.chromium.chrome.browser.tabmodel.TabModelSelector; +@@ -241,6 +242,11 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout + void onAccessibilityStatusChanged(boolean enabled) { + if (mNewTabImageButton != null) mNewTabImageButton.onAccessibilityStatusChanged(); + ++ if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID) ++ && IncognitoUtils.isIncognitoModeEnabled()) { ++ updateTabSwitchingElements(!enabled); ++ } ++ + updatePrimaryColorAndTint(); + } + +@@ -291,7 +297,8 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout + // the tab switcher, which is the standard mode background. Note that horizontal tab + // switcher is an exception, which uses the correspond background color for standard + // and incognito mode. +- int backgroundColor = ChromeColors.getPrimaryBackgroundColor(getResources(), false); ++ int backgroundColor = ChromeColors.getPrimaryBackgroundColor( ++ getResources(), usingHorizontalTabSwitcher() && mIsIncognito); + useLightIcons = ColorUtils.shouldUseLightForegroundOnBackground(backgroundColor); + } else { + useLightIcons = ColorUtils.shouldUseLightForegroundOnBackground(primaryColor); +@@ -322,6 +329,14 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout + return Color.TRANSPARENT; + } + ++ private boolean usingHorizontalTabSwitcher() { ++ // The horizontal tab switcher flag does not affect the accessibility switcher. We do the ++ // enableAccessibilityLayout() check first here to avoid logging an experiment exposure for ++ // these users. ++ return !DeviceClassManager.enableAccessibilityLayout() ++ && ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID); ++ } ++ + private void inflateIncognitoToggle() { + ViewStub incognitoToggleTabsStub = findViewById(R.id.incognito_tabs_stub); + mIncognitoToggleTabLayout = (IncognitoToggleTabLayout) incognitoToggleTabsStub.inflate(); +@@ -358,6 +373,7 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout + * and incognito status. + */ + private boolean shouldShowIncognitoToggle() { +- return mIsGridTabSwitcherEnabled && IncognitoUtils.isIncognitoModeEnabled(); ++ return (usingHorizontalTabSwitcher() || mIsGridTabSwitcherEnabled) ++ && IncognitoUtils.isIncognitoModeEnabled(); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java +@@ -21,6 +21,7 @@ import org.mockito.MockitoAnnotations; + import org.robolectric.annotation.Config; + + import org.chromium.base.test.BaseRobolectricTestRunner; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + import org.chromium.chrome.browser.tab.Tab; +@@ -33,6 +34,7 @@ import org.chromium.content_public.browser.WebContents; + */ + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE) ++@Features.EnableFeatures(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID) + public class ChromeSurveyControllerTest { + private static final String STUDY_NAME = "HorizontalTabSwitcherStudyName"; + private static final String GROUP_NAME = "HorizontalTabSwitcherGroupName"; +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 +@@ -5024,6 +5024,11 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kCriticalPersistedTabDataDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kCriticalPersistedTabData)}, + ++ {"enable-horizontal-tab-switcher", ++ flag_descriptions::kHorizontalTabSwitcherAndroidName, ++ flag_descriptions::kHorizontalTabSwitcherAndroidDescription, kOsAndroid, ++ FEATURE_VALUE_TYPE(chrome::android::kHorizontalTabSwitcherAndroid)}, ++ + {"enable-tab-grid-layout", flag_descriptions::kTabGridLayoutAndroidName, + flag_descriptions::kTabGridLayoutAndroidDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid, +diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json +--- a/chrome/browser/flag-metadata.json ++++ b/chrome/browser/flag-metadata.json +@@ -78,6 +78,11 @@ + "owners": [ "zentaro" ], + "expiry_milestone": 82 + }, ++ { ++ "name": "enable-horizontal-tab-switcher", ++ "owners": [ "memex-team@google.com" ], ++ "expiry_milestone": -1 ++ }, + { + "name": "allow-insecure-localhost", + "owners": [ "security-dev" ], +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 +@@ -1334,6 +1334,12 @@ const char kHideShelfControlsInTabletModeDescription[] = + "Hides home, back, and overview button from the shelf while the device is " + "in tablet mode. Predicated on shelf-hotseat feature being enabled."; + ++const char kHorizontalTabSwitcherAndroidName[] = ++ "Enable horizontal tab switcher"; ++const char kHorizontalTabSwitcherAndroidDescription[] = ++ "Changes the layout of the Android tab switcher so tabs scroll " ++ "horizontally instead of vertically."; ++ + const char kTabSwitcherOnReturnName[] = "Tab switcher on return"; + const char kTabSwitcherOnReturnDescription[] = + "Enable tab switcher on return after specified time has elapsed"; +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 +@@ -789,6 +789,9 @@ extern const char kHeavyAdPrivacyMitigationsDescription[]; + extern const char kHeavyAdInterventionName[]; + extern const char kHeavyAdInterventionDescription[]; + ++extern const char kHorizontalTabSwitcherAndroidName[]; ++extern const char kHorizontalTabSwitcherAndroidDescription[]; ++ + extern const char kTabSwitcherOnReturnName[]; + extern const char kTabSwitcherOnReturnDescription[]; + +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 +@@ -197,6 +197,7 @@ const base::Feature* kFeaturesExposedToJava[] = { + &kFocusOmniboxInIncognitoTabIntents, + &kHandleMediaIntents, + &kHomepagePromoCard, ++ &kHorizontalTabSwitcherAndroid, + &kImmersiveUiMode, + &kIncognitoScreenshot, + &kInlineUpdateFlow, +@@ -551,6 +552,9 @@ const base::Feature kHandleMediaIntents{"HandleMediaIntents", + const base::Feature kHomepagePromoCard{"HomepagePromoCard", + base::FEATURE_DISABLED_BY_DEFAULT}; + ++const base::Feature kHorizontalTabSwitcherAndroid{ ++ "HorizontalTabSwitcherAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; ++ + const base::Feature kImmersiveUiMode{"ImmersiveUiMode", + base::FEATURE_DISABLED_BY_DEFAULT}; + +diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h +--- a/chrome/browser/flags/android/chrome_feature_list.h ++++ b/chrome/browser/flags/android/chrome_feature_list.h +@@ -86,6 +86,7 @@ extern const base::Feature kExploreSites; + extern const base::Feature kFocusOmniboxInIncognitoTabIntents; + extern const base::Feature kHandleMediaIntents; + extern const base::Feature kHomepagePromoCard; ++extern const base::Feature kHorizontalTabSwitcherAndroid; + extern const base::Feature kImmersiveUiMode; + extern const base::Feature kIncognitoScreenshot; + extern const base::Feature kImprovedA2HS; +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +@@ -54,6 +54,7 @@ public class CachedFeatureFlags { + put(ChromeFeatureList.CHROME_STARTUP_DELEGATE, false); + put(ChromeFeatureList.CONDITIONAL_TAB_STRIP_ANDROID, false); + put(ChromeFeatureList.LENS_CAMERA_ASSISTED_SEARCH, false); ++ put(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID, false); + put(ChromeFeatureList.SERVICE_MANAGER_FOR_DOWNLOAD, true); + put(ChromeFeatureList.SERVICE_MANAGER_FOR_BACKGROUND_PREFETCH, true); + put(ChromeFeatureList.COMMAND_LINE_ON_NON_ROOTED, false); +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +@@ -335,6 +335,7 @@ public abstract class ChromeFeatureList { + public static final String HANDLE_MEDIA_INTENTS = "HandleMediaIntents"; + public static final String HIDE_FROM_API_3_TRANSITIONS_FROM_HISTORY = + "HideFromApi3TransitionsFromHistory"; ++ public static final String HORIZONTAL_TAB_SWITCHER_ANDROID = "HorizontalTabSwitcherAndroid"; + public static final String IMMERSIVE_UI_MODE = "ImmersiveUiMode"; + public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; +-- +2.17.1 + diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index b6caf01c..c38c18a2 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -13,7 +13,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. 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 -@@ -3280,6 +3280,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3285,6 +3285,10 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)}, #endif // OS_MAC #if defined(OS_ANDROID) @@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1091,6 +1091,11 @@ +@@ -1096,6 +1096,11 @@ // enable-javascript-harmony. "expiry_milestone": -1 }, @@ -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 -@@ -3241,6 +3241,10 @@ const char kReadLaterDescription[] = +@@ -3245,6 +3245,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 -@@ -1876,6 +1876,9 @@ extern const char kQueryTilesMoreTrendingDescription[]; +@@ -1879,6 +1879,9 @@ extern const char kQueryTilesMoreTrendingDescription[]; extern const char kQueryTilesSwapTrendingName[]; extern const char kQueryTilesSwapTrendingDescription[]; diff --git a/build/patches/Revert-flags-remove-num-raster-threads.patch b/build/patches/Revert-flags-remove-num-raster-threads.patch index 3a278595..59ab1d7e 100644 --- a/build/patches/Revert-flags-remove-num-raster-threads.patch +++ b/build/patches/Revert-flags-remove-num-raster-threads.patch @@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kTouchSelectionStrategyCharacter, -@@ -3378,6 +3387,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3383,6 +3392,9 @@ const FeatureEntry kFeatureEntries[] = { feature_engagement::kIPHDemoMode, feature_engagement::kIPHDemoModeChoiceVariations, "IPH_DemoMode")}, @@ -42,7 +42,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3560,6 +3560,11 @@ +@@ -3570,6 +3570,11 @@ ], "expiry_milestone": 95 }, @@ -57,7 +57,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 -@@ -1601,6 +1601,14 @@ const char kUseMultiloginEndpointName[] = "Use Multilogin endpoint."; +@@ -1607,6 +1607,14 @@ const char kUseMultiloginEndpointName[] = "Use Multilogin endpoint."; const char kUseMultiloginEndpointDescription[] = "Use Gaia OAuth multilogin for identity consistency."; @@ -75,7 +75,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 -@@ -959,6 +959,13 @@ extern const char kNotificationsSystemFlagDescription[]; +@@ -962,6 +962,13 @@ extern const char kNotificationsSystemFlagDescription[]; extern const char kUseMultiloginEndpointName[]; extern const char kUseMultiloginEndpointDescription[]; diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 00ccd860..c8d969fb 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -80,7 +80,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 -@@ -1145,6 +1145,7 @@ chrome_java_sources = [ +@@ -1146,6 +1146,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", -- GitLab From ce1a0395378051e28bbae91a9205abec646c2161 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Mon, 26 Apr 2021 14:24:51 +0200 Subject: [PATCH 10/16] explicit denial to fetch (#1106) --- ...Disable-fetching-of-all-field-trials.patch | 64 ++++--------------- 1 file changed, 11 insertions(+), 53 deletions(-) diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index 8704d4c4..c5506409 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -3,60 +3,9 @@ Date: Sun, 8 Jul 2018 18:16:34 +0200 Subject: Disable fetching of all field trials --- - .../browser/flags/ChromeFeatureList.java | 19 ++++--------------- - .../variations/service/variations_service.cc | 12 +----------- - 2 files changed, 5 insertions(+), 26 deletions(-) + .../variations/service/variations_service.cc | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) -diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ---- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -123,9 +123,7 @@ public abstract class ChromeFeatureList { - * the specified parameter does not exist. - */ - public static String getFieldTrialParamByFeature(String featureName, String paramName) { -- if (FeatureList.hasTestFeatures()) return ""; -- assert FeatureList.isInitialized(); -- return ChromeFeatureListJni.get().getFieldTrialParamByFeature(featureName, paramName); -+ return ""; - } - - /** -@@ -142,10 +140,7 @@ public abstract class ChromeFeatureList { - */ - public static int getFieldTrialParamByFeatureAsInt( - String featureName, String paramName, int defaultValue) { -- if (FeatureList.hasTestFeatures()) return defaultValue; -- assert FeatureList.isInitialized(); -- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt( -- featureName, paramName, defaultValue); -+ return defaultValue; - } - - /** -@@ -162,10 +157,7 @@ public abstract class ChromeFeatureList { - */ - public static double getFieldTrialParamByFeatureAsDouble( - String featureName, String paramName, double defaultValue) { -- if (FeatureList.hasTestFeatures()) return defaultValue; -- assert FeatureList.isInitialized(); -- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble( -- featureName, paramName, defaultValue); -+ return defaultValue; - } - - /** -@@ -196,10 +188,7 @@ public abstract class ChromeFeatureList { - */ - public static boolean getFieldTrialParamByFeatureAsBoolean( - String featureName, String paramName, boolean defaultValue) { -- if (FeatureList.hasTestFeatures()) return defaultValue; -- assert FeatureList.isInitialized(); -- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean( -- featureName, paramName, defaultValue); -+ return defaultValue; - } - - /* Alphabetical: */ diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc --- a/components/variations/service/variations_service.cc +++ b/components/variations/service/variations_service.cc @@ -79,6 +28,15 @@ diff --git a/components/variations/service/variations_service.cc b/components/va } std::unique_ptr MaybeImportFirstRunSeed( +@@ -608,7 +598,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) { + // debugger or if the machine was suspended) and OnURLFetchComplete() hasn't + // had a chance to run yet from the previous request. In this case, don't + // start a new request and just let the previous one finish. +- if (pending_seed_request_) ++ if ((true) || pending_seed_request_) + return false; + + last_request_was_http_retry_ = is_http_retry; -- 2.17.1 -- GitLab From b3f5b62956749d91917c4d07fc59accd8004a5b2 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Mon, 26 Apr 2021 21:37:39 +0200 Subject: [PATCH 11/16] New flag "allow-user-certificates" (#1110) * Add a flag AllowUserCertificates default false * add to bromite patches list --- build/bromite_patches_list.txt | 1 + ...a-flag-to-disallow-user-certificates.patch | 169 ++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 build/patches/Add-a-flag-to-disallow-user-certificates.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index d1b60e65..f7c6b5bd 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -146,4 +146,5 @@ Make-all-favicon-requests-on-demand.patch Add-Alt-D-hotkey-to-focus-address-bar.patch Remove-offline-measurement-background-task.patch User-agent-customization.patch +Add-a-flag-to-disallow-user-certificates.patch Automated-domain-substitution.patch diff --git a/build/patches/Add-a-flag-to-disallow-user-certificates.patch b/build/patches/Add-a-flag-to-disallow-user-certificates.patch new file mode 100644 index 00000000..f857a069 --- /dev/null +++ b/build/patches/Add-a-flag-to-disallow-user-certificates.patch @@ -0,0 +1,169 @@ +From: uazo +Date: Mon, 26 Apr 2021 13:28:24 +0000 +Subject: Add a flag AllowUserCertificates default false + +--- + .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++ + .../chromium/chrome/browser/app/flags/ChromeCachedFlags.java | 1 + + chrome/browser/about_flags.cc | 4 ++++ + chrome/browser/flag_descriptions.cc | 5 +++++ + chrome/browser/flag_descriptions.h | 3 +++ + chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++ + chrome/browser/flags/android/chrome_feature_list.h | 1 + + .../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 + + .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 1 + + net/android/java/src/org/chromium/net/X509Util.java | 5 +++++ + 10 files changed, 28 insertions(+) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +@@ -207,6 +207,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; + import org.chromium.content_public.browser.SelectionPopupController; + import org.chromium.content_public.browser.WebContents; + import org.chromium.content_public.common.ContentSwitches; ++import org.chromium.net.X509Util; + import org.chromium.printing.PrintManagerDelegateImpl; + import org.chromium.printing.PrintingController; + import org.chromium.printing.PrintingControllerImpl; +@@ -866,6 +867,8 @@ public abstract class ChromeActivity + UpdateMenuItemHelper.getInstance().onStart(); + ChromeActivitySessionTracker.getInstance().onStartWithNative(); + ChromeCachedFlags.getInstance().cacheNativeFlags(); ++ X509Util.AllowUserCertificates = ChromeFeatureList.isEnabled( ++ ChromeFeatureList.ALLOW_USER_CERTIFICATES); + OfflineIndicatorController.initialize(); + + // postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(), +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +@@ -64,6 +64,7 @@ public class ChromeCachedFlags { + + // clang-format off + List featuresToCache = Arrays.asList( ++ ChromeFeatureList.ALLOW_USER_CERTIFICATES, + ChromeFeatureList.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR, + ChromeFeatureList.ANDROID_MANAGED_BY_MENU_ITEM, + ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE, +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 +@@ -2755,6 +2755,10 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kCOLRV1FontsDescription, kOsAll, + FEATURE_VALUE_TYPE(blink::features::kCOLRV1Fonts)}, + #if defined(OS_ANDROID) ++ {"allow-user-certificates", ++ flag_descriptions::kAllowUserCertificatesName, ++ flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid, ++ FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)}, + {"contextual-search-debug", flag_descriptions::kContextualSearchDebugName, + flag_descriptions::kContextualSearchDebugDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kContextualSearchDebug)}, +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 +@@ -11,6 +11,11 @@ + + namespace flag_descriptions { + ++const char kAllowUserCertificatesName[] = "Allow user certificates"; ++const char kAllowUserCertificatesDescription[] = ++ "Enables the use of user CA certificates during the " ++ "validation of the certificate chain"; ++ + const char kAccelerated2dCanvasName[] = "Accelerated 2D canvas"; + const char kAccelerated2dCanvasDescription[] = + "Enables the use of the GPU to perform 2d canvas rendering instead of " +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 +@@ -45,6 +45,9 @@ namespace flag_descriptions { + + // Cross-platform ------------------------------------------------------------- + ++extern const char kAllowUserCertificatesName[]; ++extern const char kAllowUserCertificatesDescription[]; ++ + extern const char kAccelerated2dCanvasName[]; + extern const char kAccelerated2dCanvasDescription[]; + +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 +@@ -127,6 +127,7 @@ const base::Feature* kFeaturesExposedToJava[] = { + &feed::kWebFeed, + &feed::kXsurfaceMetricsReporting, + &history::kHideFromApi3Transitions, ++ &kAllowUserCertificates, + &kAdjustWebApkInstallationSpace, + &kAllowNewIncognitoTabIntents, + &kAllowRemoteContextForNotifications, +@@ -331,6 +332,9 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { + } // namespace + + // Alphabetical: ++const base::Feature kAllowUserCertificates = { ++ "AllowUserCertificates", base::FEATURE_DISABLED_BY_DEFAULT}; ++ + const base::Feature kAdjustWebApkInstallationSpace = { + "AdjustWebApkInstallationSpace", base::FEATURE_DISABLED_BY_DEFAULT}; + +diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h +--- a/chrome/browser/flags/android/chrome_feature_list.h ++++ b/chrome/browser/flags/android/chrome_feature_list.h +@@ -12,6 +12,7 @@ namespace chrome { + namespace android { + + // Alphabetical: ++extern const base::Feature kAllowUserCertificates; + extern const base::Feature kAdjustWebApkInstallationSpace; + extern const base::Feature kAllowNewIncognitoTabIntents; + extern const base::Feature kAllowRemoteContextForNotifications; +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +@@ -47,6 +47,7 @@ public class CachedFeatureFlags { + */ + private static Map sDefaults = new HashMap() { + { ++ put(ChromeFeatureList.ALLOW_USER_CERTIFICATES, false); + put(ChromeFeatureList.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR, false); + put(ChromeFeatureList.ANDROID_MANAGED_BY_MENU_ITEM, true); + put(ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE, true); +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +@@ -203,6 +203,7 @@ public abstract class ChromeFeatureList { + } + + /* Alphabetical: */ ++ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; + public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar"; + public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents"; + public static final String ALLOW_REMOTE_CONTEXT_FOR_NOTIFICATIONS = +diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java +--- a/net/android/java/src/org/chromium/net/X509Util.java ++++ b/net/android/java/src/org/chromium/net/X509Util.java +@@ -488,6 +488,8 @@ public class X509Util { + return false; + } + ++ public static boolean AllowUserCertificates = false; ++ + public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain, + String authType, + String host) +@@ -568,6 +570,9 @@ public class X509Util { + isIssuedByKnownRoot = isKnownRoot(root); + } + ++ if (AllowUserCertificates == false && isIssuedByKnownRoot == false) ++ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT); ++ + return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK, + isIssuedByKnownRoot, verifiedChain); + } +-- +2.17.1 + -- GitLab From ad010db02ddfd0636695a9075a47f5f286ff278d Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Mon, 26 Apr 2021 21:41:23 +0200 Subject: [PATCH 12/16] Add flag IsCleartextPermitted default true (#1111) Co-authored-by: Carl <32685696+csagan5@users.noreply.github.com> --- build/bromite_patches_list.txt | 1 + ...ag-to-disallow-connections-over-HTTP.patch | 97 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index f7c6b5bd..0427dec0 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -147,4 +147,5 @@ Add-Alt-D-hotkey-to-focus-address-bar.patch Remove-offline-measurement-background-task.patch User-agent-customization.patch Add-a-flag-to-disallow-user-certificates.patch +Add-a-flag-to-disallow-connections-over-HTTP.patch Automated-domain-substitution.patch diff --git a/build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch b/build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch new file mode 100644 index 00000000..15e9c2bf --- /dev/null +++ b/build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch @@ -0,0 +1,97 @@ +From: uazo +Date: Mon, 26 Apr 2021 15:04:11 +0000 +Subject: Add flag IsCleartextPermitted default true + +--- + chrome/browser/about_flags.cc | 5 +++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + net/base/features.cc | 3 +++ + net/base/features.h | 2 ++ + net/url_request/url_request_http_job.cc | 4 ++++ + 6 files changed, 21 insertions(+) + +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 +@@ -7362,6 +7362,11 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE( + chrome::android::kBookmarksExportUseSaf)}, + ++ {"cleartext-permitted", ++ flag_descriptions::kIsCleartextPermittedName, ++ flag_descriptions::kIsCleartextPermittedDescription, kOsAndroid, ++ FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)}, ++ + // NOTE: Adding a new flag requires adding a corresponding entry to enum + // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag + // Histograms" in tools/metrics/histograms/README.md (run the +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 +@@ -1363,6 +1363,10 @@ const char kHostedAppShimCreationName[] = + const char kHostedAppShimCreationDescription[] = + "Create app shims on Mac when creating a hosted app."; + ++const char kIsCleartextPermittedName[] = "Allow cleartext traffic"; ++const char kIsCleartextPermittedDescription[] = ++ "Allow insecure connections over HTTP"; ++ + const char kIgnoreGpuBlocklistName[] = "Override software rendering list"; + const char kIgnoreGpuBlocklistDescription[] = + "Overrides the built-in software rendering list and enables " +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 +@@ -810,6 +810,9 @@ extern const char kHostedAppQuitNotificationDescription[]; + extern const char kHostedAppShimCreationName[]; + extern const char kHostedAppShimCreationDescription[]; + ++extern const char kIsCleartextPermittedName[]; ++extern const char kIsCleartextPermittedDescription[]; ++ + extern const char kIgnoreGpuBlocklistName[]; + extern const char kIgnoreGpuBlocklistDescription[]; + +diff --git a/net/base/features.cc b/net/base/features.cc +--- a/net/base/features.cc ++++ b/net/base/features.cc +@@ -67,6 +67,9 @@ base::TimeDelta GetExtraTimeAbsolute() { + const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData", + base::FEATURE_DISABLED_BY_DEFAULT}; + ++const base::Feature kIsCleartextPermitted{"IsCleartextPermitted", ++ base::FEATURE_ENABLED_BY_DEFAULT}; ++ + const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator", + base::FEATURE_DISABLED_BY_DEFAULT}; + +diff --git a/net/base/features.h b/net/base/features.h +--- a/net/base/features.h ++++ b/net/base/features.h +@@ -28,6 +28,8 @@ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin; + // Enables TLS 1.3 early data. + NET_EXPORT extern const base::Feature kEnableTLS13EarlyData; + ++NET_EXPORT extern const base::Feature kIsCleartextPermitted; ++ + // Support for altering the parameters used for DNS transaction timeout. See + // ResolveContext::SecureTransactionTimeout(). + NET_EXPORT extern const base::Feature kDnsTransactionDynamicTimeouts; +diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc +--- a/net/url_request/url_request_http_job.cc ++++ b/net/url_request/url_request_http_job.cc +@@ -201,6 +201,10 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { + } + + #if defined(OS_ANDROID) ++ if (base::FeatureList::IsEnabled(net::features::kIsCleartextPermitted) == false) { ++ return std::make_unique(request, ++ ERR_CLEARTEXT_NOT_PERMITTED); ++ } + // Check whether the app allows cleartext traffic to this host, and return + // ERR_CLEARTEXT_NOT_PERMITTED if not. + if (request->context()->check_cleartext_permitted() && +-- +2.17.1 + -- GitLab From a0ad5d29e850fbe761757bf26b728de4c86cc6a6 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 27 Apr 2021 00:20:51 +0200 Subject: [PATCH 13/16] Release 90.0.4430.92 --- CHANGELOG.md | 4 +++ build/bromite_patches_list.txt | 4 +-- ...h => Add-AllowUserCertificates-flag.patch} | 8 +++--- ...ch => Add-IsCleartextPermitted-flag.patch} | 8 +++--- .../Automated-domain-substitution.patch | 8 +++--- .../Disable-feeds-support-by-default.patch | 25 ++++++++++++++++--- .../Restore-Search-Ready-Omnibox-flag.patch | 2 +- .../Restore-Simplified-NTP-launch.patch | 2 +- ...zontal-tab-switcher-experiment-logic.patch | 2 +- 9 files changed, 43 insertions(+), 20 deletions(-) rename build/patches/{Add-a-flag-to-disallow-user-certificates.patch => Add-AllowUserCertificates-flag.patch} (97%) rename build/patches/{Add-a-flag-to-disallow-connections-over-HTTP.patch => Add-IsCleartextPermitted-flag.patch} (94%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 450737f5..9eb73ef3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # 90.0.4430.92 * restore horizontal tab switcher feature (fixes https://github.com/bromite/bromite/issues/1077) * fix a couple of bugs in proxy saving UI (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1072) +* disable feeds V2 toggle (fixes https://github.com/bromite/bromite/issues/1070) +* allow fetching field trials from flags (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1021) +* add AllowUserCertificates flag (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/921) +* add IsCleartextPermitted flag (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1068) # 90.0.4430.74 * re-added patch for User agent customization (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1049) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 0427dec0..8f8f976f 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -146,6 +146,6 @@ Make-all-favicon-requests-on-demand.patch Add-Alt-D-hotkey-to-focus-address-bar.patch Remove-offline-measurement-background-task.patch User-agent-customization.patch -Add-a-flag-to-disallow-user-certificates.patch -Add-a-flag-to-disallow-connections-over-HTTP.patch +Add-AllowUserCertificates-flag.patch +Add-IsCleartextPermitted-flag.patch Automated-domain-substitution.patch diff --git a/build/patches/Add-a-flag-to-disallow-user-certificates.patch b/build/patches/Add-AllowUserCertificates-flag.patch similarity index 97% rename from build/patches/Add-a-flag-to-disallow-user-certificates.patch rename to build/patches/Add-AllowUserCertificates-flag.patch index f857a069..95ca93de 100644 --- a/build/patches/Add-a-flag-to-disallow-user-certificates.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -1,6 +1,6 @@ From: uazo Date: Mon, 26 Apr 2021 13:28:24 +0000 -Subject: Add a flag AllowUserCertificates default false +Subject: Add AllowUserCertificates flag --- .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++ @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/Chrom 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 -@@ -2755,6 +2755,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2759,6 +2759,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kCOLRV1FontsDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kCOLRV1Fonts)}, #if defined(OS_ANDROID) @@ -69,7 +69,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti +const char kAllowUserCertificatesName[] = "Allow user certificates"; +const char kAllowUserCertificatesDescription[] = -+ "Enables the use of user CA certificates during the " ++ "Allow user CA certificates during " + "validation of the certificate chain"; + const char kAccelerated2dCanvasName[] = "Accelerated 2D canvas"; @@ -99,7 +99,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kAdjustWebApkInstallationSpace, &kAllowNewIncognitoTabIntents, &kAllowRemoteContextForNotifications, -@@ -331,6 +332,9 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { +@@ -333,6 +334,9 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { } // namespace // Alphabetical: diff --git a/build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch b/build/patches/Add-IsCleartextPermitted-flag.patch similarity index 94% rename from build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch rename to build/patches/Add-IsCleartextPermitted-flag.patch index 15e9c2bf..51300c12 100644 --- a/build/patches/Add-a-flag-to-disallow-connections-over-HTTP.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -1,6 +1,6 @@ From: uazo Date: Mon, 26 Apr 2021 15:04:11 +0000 -Subject: Add flag IsCleartextPermitted default true +Subject: Add IsCleartextPermitted flag --- chrome/browser/about_flags.cc | 5 +++++ @@ -14,7 +14,7 @@ Subject: Add flag IsCleartextPermitted default true 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 -@@ -7362,6 +7362,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7367,6 +7367,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( chrome::android::kBookmarksExportUseSaf)}, @@ -29,7 +29,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 -@@ -1363,6 +1363,10 @@ const char kHostedAppShimCreationName[] = +@@ -1369,6 +1369,10 @@ const char kHostedAppShimCreationName[] = const char kHostedAppShimCreationDescription[] = "Create app shims on Mac when creating a hosted app."; @@ -43,7 +43,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 -@@ -810,6 +810,9 @@ extern const char kHostedAppQuitNotificationDescription[]; +@@ -813,6 +813,9 @@ extern const char kHostedAppQuitNotificationDescription[]; extern const char kHostedAppShimCreationName[]; extern const char kHostedAppShimCreationDescription[]; diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch index 27df8df1..6db99b77 100644 --- a/build/patches/Automated-domain-substitution.patch +++ b/build/patches/Automated-domain-substitution.patch @@ -4020,7 +4020,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kPassiveListenersChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, -@@ -3612,7 +3612,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3616,7 +3616,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSyncSandboxDescription, kOsAll, SINGLE_VALUE_TYPE_AND_VALUE( switches::kSyncServiceURL, @@ -4029,7 +4029,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #if !defined(OS_ANDROID) {"load-media-router-component-extension", flag_descriptions::kLoadMediaRouterComponentExtensionName, -@@ -3858,7 +3858,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3862,7 +3862,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSetMarketUrlForTestingName, flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid, SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting, @@ -4991,7 +4991,7 @@ diff --git a/chrome/browser/feedback/feedback_uploader_chrome.cc b/chrome/browse 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 -@@ -539,7 +539,7 @@ const char kDetectTargetEmbeddingLookalikesName[] = +@@ -544,7 +544,7 @@ const char kDetectTargetEmbeddingLookalikesName[] = "Detect target embedding domains as lookalikes."; const char kDetectTargetEmbeddingLookalikesDescription[] = "Shows a lookalike interstitial when navigating to target embedding domains" @@ -5000,7 +5000,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kDeviceDiscoveryNotificationsName[] = "Device Discovery Notifications"; -@@ -2127,7 +2127,7 @@ const char kIntensiveWakeUpThrottlingName[] = +@@ -2136,7 +2136,7 @@ const char kIntensiveWakeUpThrottlingName[] = const char kIntensiveWakeUpThrottlingDescription[] = "When enabled, wake ups from DOM Timers are limited to 1 per minute in a " "page that has been hidden for 5 minutes. For additional details, see " diff --git a/build/patches/Disable-feeds-support-by-default.patch b/build/patches/Disable-feeds-support-by-default.patch index 6a72aee7..2db9846f 100644 --- a/build/patches/Disable-feeds-support-by-default.patch +++ b/build/patches/Disable-feeds-support-by-default.patch @@ -3,13 +3,26 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100 Subject: Disable feeds support by default --- - components/feed/feed_feature_list.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + .../org/chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +- + components/feed/feed_feature_list.cc | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java +@@ -78,7 +78,7 @@ public class CachedFeatureFlags { + put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false); + put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true); + put(ChromeFeatureList.REPORT_FEED_USER_ACTIONS, false); +- put(ChromeFeatureList.INTEREST_FEED_V2, true); ++ put(ChromeFeatureList.INTEREST_FEED_V2, false); + put(ChromeFeatureList.TABBED_APP_OVERFLOW_MENU_ICONS, false); + put(ChromeFeatureList.TABBED_APP_OVERFLOW_MENU_REGROUP, false); + put(ChromeFeatureList.TABBED_APP_OVERFLOW_MENU_THREE_BUTTON_ACTIONBAR, false); diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc --- a/components/feed/feed_feature_list.cc +++ b/components/feed/feed_feature_list.cc -@@ -11,7 +11,7 @@ +@@ -11,12 +11,12 @@ namespace feed { const base::Feature kInterestFeedContentSuggestions{ @@ -18,6 +31,12 @@ diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature // InterestFeedV2 takes precedence over InterestFeedContentSuggestions. // InterestFeedV2 is cached in ChromeCachedFlags. If the default value here is // changed, please update the cached one's default value in CachedFeatureFlags. + const base::Feature kInterestFeedV2{"InterestFeedV2", +- base::FEATURE_ENABLED_BY_DEFAULT}; ++ base::FEATURE_DISABLED_BY_DEFAULT}; + + const base::Feature kInterestFeedV2Hearts{"InterestFeedV2Hearts", + base::FEATURE_DISABLED_BY_DEFAULT}; -- 2.17.1 diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index 43418ce1..a385e0a6 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -142,7 +142,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -375,6 +375,7 @@ public abstract class ChromeFeatureList { +@@ -386,6 +386,7 @@ public abstract class ChromeFeatureList { public static final String OMNIBOX_ADAPTIVE_SUGGESTIONS_COUNT = "OmniboxAdaptiveSuggestionsCount"; public static final String OMNIBOX_ASSISTANT_VOICE_SEARCH = "OmniboxAssistantVoiceSearch"; diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 99d5be80..c60bd168 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -377,7 +377,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -354,6 +354,7 @@ public abstract class ChromeFeatureList { +@@ -365,6 +365,7 @@ public abstract class ChromeFeatureList { public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MARK_HTTP_AS = "MarkHttpAs"; diff --git a/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch b/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch index b7df98b7..e6603087 100644 --- a/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch +++ b/build/patches/Revert-Remove-horizontal-tab-switcher-experiment-logic.patch @@ -1204,7 +1204,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -335,6 +335,7 @@ public abstract class ChromeFeatureList { +@@ -346,6 +346,7 @@ public abstract class ChromeFeatureList { public static final String HANDLE_MEDIA_INTENTS = "HandleMediaIntents"; public static final String HIDE_FROM_API_3_TRANSITIONS_FROM_HISTORY = "HideFromApi3TransitionsFromHistory"; -- GitLab From 38eeb63d4b7a6c49f731067089a9d8e12d1fa79e Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 27 Apr 2021 18:21:10 +0200 Subject: [PATCH 14/16] Mention new flags in README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 964281a9..5b59aacf 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,8 @@ New flags: * `#show-legacy-tls-warnings` * `#save-data-header`, disabled by default * `#export-bookmarks-use-saf`, disabled by default +* `#allow-user-certificates`, disabled by default +* `#cleartext-permitted`, enabled by default # Privacy limitations -- GitLab From d9876e2da320e1a4a6d9001685dd6a1c9e339c81 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 30 Apr 2021 08:44:11 +0200 Subject: [PATCH 15/16] Release 90.0.4430.101 --- CHANGELOG.md | 4 +++ README.md | 2 ++ build/RELEASE | 2 +- build/bromite_patches_list.txt | 2 ++ build/patches/Disable-FLoC-by-default.patch | 25 +++++++++++++++++++ ...rrentBrowsingContextMedia-by-default.patch | 23 +++++++++++++++++ 6 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 build/patches/Disable-FLoC-by-default.patch create mode 100644 build/patches/Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb73ef3..c8192568 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 90.0.4430.101 +* disable RTCGetCurrentBrowsingContextMedia by default +* disable FLoC by default + # 90.0.4430.92 * restore horizontal tab switcher feature (fixes https://github.com/bromite/bromite/issues/1077) * fix a couple of bugs in proxy saving UI (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1072) diff --git a/README.md b/README.md index 5b59aacf..2bc10bac 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042` * ignore enterprise policies that disallow secure DNS * ask permission to play protected media * disable the DIAL repeating discovery +* disable RTCGetCurrentBrowsingContextMedia by default +* disable FLoC by default ## Features not related to privacy * import/export bookmarks diff --git a/build/RELEASE b/build/RELEASE index 08c6a3d8..9358c2b9 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -90.0.4430.92 +90.0.4430.101 diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 8f8f976f..3e93a5e3 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -148,4 +148,6 @@ Remove-offline-measurement-background-task.patch User-agent-customization.patch Add-AllowUserCertificates-flag.patch Add-IsCleartextPermitted-flag.patch +Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch +Disable-FLoC-by-default.patch Automated-domain-substitution.patch diff --git a/build/patches/Disable-FLoC-by-default.patch b/build/patches/Disable-FLoC-by-default.patch new file mode 100644 index 00000000..dadfa7ca --- /dev/null +++ b/build/patches/Disable-FLoC-by-default.patch @@ -0,0 +1,25 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 29 Apr 2021 20:28:16 +0200 +Subject: Disable FLoC by default + +This is redundant since the privacy sandbox is already disabled by default, +but added as an extra measure +--- + components/federated_learning/features/features.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/federated_learning/features/features.cc b/components/federated_learning/features/features.cc +--- a/components/federated_learning/features/features.cc ++++ b/components/federated_learning/features/features.cc +@@ -24,7 +24,7 @@ const base::Feature kFlocIdSortingLshBasedComputation{ + // required. + // TODO(yaoxia): merge other floc features into this one. + const base::Feature kFederatedLearningOfCohorts{ +- "FederatedLearningOfCohorts", base::FEATURE_ENABLED_BY_DEFAULT}; ++ "FederatedLearningOfCohorts", base::FEATURE_DISABLED_BY_DEFAULT}; + constexpr base::FeatureParam kFlocIdScheduledUpdateInterval{ + &kFederatedLearningOfCohorts, "update_interval", + base::TimeDelta::FromDays(7)}; +-- +2.17.1 + diff --git a/build/patches/Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch b/build/patches/Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch new file mode 100644 index 00000000..fc62c318 --- /dev/null +++ b/build/patches/Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch @@ -0,0 +1,23 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 29 Apr 2021 20:26:31 +0200 +Subject: Disable RTCGetCurrentBrowsingContextMedia by default + +--- + third_party/blink/common/features.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc +--- a/third_party/blink/common/features.cc ++++ b/third_party/blink/common/features.cc +@@ -203,7 +203,7 @@ const base::Feature kRawClipboard{"RawClipboard", + // Kill switch for getCurrentBrowsingContextMedia(), which allows capturing of + // web content from the tab from which it is called. (crbug.com/1136940) + const base::Feature kRTCGetCurrentBrowsingContextMedia{ +- "RTCGetCurrentBrowsingContextMedia", base::FEATURE_ENABLED_BY_DEFAULT}; ++ "RTCGetCurrentBrowsingContextMedia", base::FEATURE_DISABLED_BY_DEFAULT}; + + // Changes the default RTCPeerConnection constructor behavior to use Unified + // Plan as the SDP semantics. When the feature is enabled, Unified Plan is used +-- +2.17.1 + -- GitLab From 376e01573f4f26b2198200600ea14980f95934cc Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 3 May 2021 11:41:11 +0200 Subject: [PATCH 16/16] patches: e: Adapt for upstream changes - Also drop non-required translations Signed-off-by: Aayush Gupta --- build/patches/e/e-rebrand-translations.patch | 1366 ++--------------- ...ve-string-google-from-other-services.patch | 1132 +------------- 2 files changed, 114 insertions(+), 2384 deletions(-) diff --git a/build/patches/e/e-rebrand-translations.patch b/build/patches/e/e-rebrand-translations.patch index 39f36383..4bd81dc9 100644 --- a/build/patches/e/e-rebrand-translations.patch +++ b/build/patches/e/e-rebrand-translations.patch @@ -1,1261 +1,92 @@ -From 0be7281dfa21c499cb4058918df1fa8a21e4bfa2 Mon Sep 17 00:00:00 2001 +From ea56f506da73885298c9cc8bc3d5ed34cbce0624 Mon Sep 17 00:00:00 2001 From: Aayush Gupta -Date: Fri, 19 Mar 2021 06:24:25 +0100 +Date: Mon, 3 May 2021 11:25:37 +0200 Subject: [PATCH] resources: Rebrand Chrome to Browser in translations Signed-off-by: Aayush Gupta --- - chrome/app/resources/google_chrome_strings_af.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_am.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ar.xtb | 2 +- - chrome/app/resources/google_chrome_strings_as.xtb | 2 +- - chrome/app/resources/google_chrome_strings_az.xtb | 2 +- - chrome/app/resources/google_chrome_strings_be.xtb | 2 +- - chrome/app/resources/google_chrome_strings_bg.xtb | 2 +- - chrome/app/resources/google_chrome_strings_bn.xtb | 2 +- - chrome/app/resources/google_chrome_strings_bs.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ca.xtb | 2 +- - chrome/app/resources/google_chrome_strings_cs.xtb | 2 +- - chrome/app/resources/google_chrome_strings_da.xtb | 2 +- - chrome/app/resources/google_chrome_strings_de.xtb | 2 +- - chrome/app/resources/google_chrome_strings_el.xtb | 2 +- - chrome/app/resources/google_chrome_strings_en-GB.xtb | 2 +- - chrome/app/resources/google_chrome_strings_es-419.xtb | 2 +- - chrome/app/resources/google_chrome_strings_es.xtb | 2 +- - chrome/app/resources/google_chrome_strings_et.xtb | 2 +- - chrome/app/resources/google_chrome_strings_eu.xtb | 2 +- - chrome/app/resources/google_chrome_strings_fa.xtb | 2 +- - chrome/app/resources/google_chrome_strings_fi.xtb | 2 +- - chrome/app/resources/google_chrome_strings_fil.xtb | 2 +- - chrome/app/resources/google_chrome_strings_fr-CA.xtb | 2 +- - chrome/app/resources/google_chrome_strings_fr.xtb | 2 +- - chrome/app/resources/google_chrome_strings_gl.xtb | 2 +- - chrome/app/resources/google_chrome_strings_gu.xtb | 2 +- - chrome/app/resources/google_chrome_strings_hi.xtb | 2 +- - chrome/app/resources/google_chrome_strings_hr.xtb | 2 +- - chrome/app/resources/google_chrome_strings_hu.xtb | 2 +- - chrome/app/resources/google_chrome_strings_hy.xtb | 2 +- - chrome/app/resources/google_chrome_strings_id.xtb | 2 +- - chrome/app/resources/google_chrome_strings_is.xtb | 2 +- - chrome/app/resources/google_chrome_strings_it.xtb | 2 +- - chrome/app/resources/google_chrome_strings_iw.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ja.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ka.xtb | 2 +- - chrome/app/resources/google_chrome_strings_kk.xtb | 2 +- - chrome/app/resources/google_chrome_strings_km.xtb | 2 +- - chrome/app/resources/google_chrome_strings_kn.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ko.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ky.xtb | 2 +- - chrome/app/resources/google_chrome_strings_lo.xtb | 2 +- - chrome/app/resources/google_chrome_strings_lt.xtb | 2 +- - chrome/app/resources/google_chrome_strings_lv.xtb | 2 +- - chrome/app/resources/google_chrome_strings_mk.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ml.xtb | 2 +- - chrome/app/resources/google_chrome_strings_mn.xtb | 2 +- - chrome/app/resources/google_chrome_strings_mr.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ms.xtb | 2 +- - chrome/app/resources/google_chrome_strings_my.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ne.xtb | 2 +- - chrome/app/resources/google_chrome_strings_nl.xtb | 2 +- - chrome/app/resources/google_chrome_strings_no.xtb | 2 +- - chrome/app/resources/google_chrome_strings_or.xtb | 2 +- - chrome/app/resources/google_chrome_strings_pa.xtb | 2 +- - chrome/app/resources/google_chrome_strings_pl.xtb | 2 +- - chrome/app/resources/google_chrome_strings_pt-BR.xtb | 2 +- - chrome/app/resources/google_chrome_strings_pt-PT.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ro.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ru.xtb | 2 +- - chrome/app/resources/google_chrome_strings_si.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sk.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sl.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sq.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sr-Latn.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sr.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sv.xtb | 2 +- - chrome/app/resources/google_chrome_strings_sw.xtb | 2 +- - chrome/app/resources/google_chrome_strings_ta.xtb | 2 +- - chrome/app/resources/google_chrome_strings_te.xtb | 2 +- - chrome/app/resources/google_chrome_strings_th.xtb | 2 +- - chrome/app/resources/google_chrome_strings_tr.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_uk.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_ur.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_uz.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_vi.xtb | 4 ++-- - chrome/app/resources/google_chrome_strings_zh-CN.xtb | 2 +- - chrome/app/resources/google_chrome_strings_zh-HK.xtb | 2 +- - chrome/app/resources/google_chrome_strings_zh-TW.xtb | 2 +- - chrome/app/resources/google_chrome_strings_zu.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_af.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_am.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ar.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_as.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_az.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_be.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_bg.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_bn.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_bs.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ca.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_cs.xtb | 2 +- - .../strings/translations/android_chrome_strings_da.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_de.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_el.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_en-GB.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_es-419.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_es.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_et.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_eu.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_fa.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_fi.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_fil.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_fr-CA.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_fr.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_gl.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_gu.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_hi.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_hr.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_hu.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_hy.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_id.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_is.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_it.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_iw.xtb | 6 +++--- - .../strings/translations/android_chrome_strings_ja.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ka.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_kk.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_km.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_kn.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ko.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ky.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_lo.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_lt.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_lv.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_mk.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ml.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_mn.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_mr.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ms.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_my.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ne.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_nl.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_no.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_or.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_pa.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_pl.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_pt-BR.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_pt-PT.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ro.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ru.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_si.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_sk.xtb | 2 +- - .../strings/translations/android_chrome_strings_sl.xtb | 2 +- - .../strings/translations/android_chrome_strings_sq.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_sr-Latn.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_sr.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_sv.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_sw.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ta.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_te.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_th.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_tr.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_uk.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_ur.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_uz.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_vi.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_zh-CN.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_zh-HK.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_zh-TW.xtb | 4 ++-- - .../strings/translations/android_chrome_strings_zu.xtb | 4 ++-- - 160 files changed, 245 insertions(+), 245 deletions(-) + .../strings/translations/android_chrome_strings_af.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_am.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ar.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_as.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_az.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_be.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_bg.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_bn.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_bs.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ca.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_cs.xtb | 2 +- + .../strings/translations/android_chrome_strings_da.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_de.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_el.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_en-GB.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_es-419.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_es.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_et.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_eu.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_fa.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_fi.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_fil.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_fr-CA.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_fr.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_gl.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_gu.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_hi.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_hr.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_hu.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_hy.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_id.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_is.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_it.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_iw.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ja.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ka.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_kk.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_km.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_kn.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ko.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ky.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_lo.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_lt.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_lv.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_mk.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ml.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_mn.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_mr.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ms.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_my.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ne.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_nl.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_no.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_or.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_pa.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_pl.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_pt-BR.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_pt-PT.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ro.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ru.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_si.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_sk.xtb | 2 +- + .../strings/translations/android_chrome_strings_sl.xtb | 2 +- + .../strings/translations/android_chrome_strings_sq.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_sr-Latn.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_sr.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_sv.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_sw.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ta.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_te.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_th.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_tr.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_uk.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_ur.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_uz.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_vi.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_zh-CN.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_zh-HK.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_zh-TW.xtb | 4 ++-- + .../strings/translations/android_chrome_strings_zu.xtb | 4 ++-- + 80 files changed, 157 insertions(+), 157 deletions(-) -diff --git a/chrome/app/resources/google_chrome_strings_af.xtb b/chrome/app/resources/google_chrome_strings_af.xtb -index 1d422b958954..de577ba84f4a 100644 ---- a/chrome/app/resources/google_chrome_strings_af.xtb -+++ b/chrome/app/resources/google_chrome_strings_af.xtb -@@ -84,7 +84,7 @@ Sommige kenmerke kan dalk nie beskikbaar wees nie en veranderings aan voorkeure - 'n Chrome-profiel met hierdie rekening bestaan reeds - Jy is by Chrome aangemeld! - Taakbestuurder --Meer oor Chrome -+Meer oor Browser - Swak wagwoorde is maklik om te raai. Laat Chrome sterk wagwoorde vir jou skep en onthou. - Chrome het nie opgedateer nie; iets het skeefgeloop. Stel Chrome-opdateringprobleme en mislukte opdaterings reg. - – Netwerkaanmelding – Chrome -@@ -304,4 +304,4 @@ Google Chrome kan nie jou instellings terugstel nie. - Dateer Chrome op om te begin sinkroniseer - Meld aan en skakel dan sinkronisering aan om op al jou toestelle toegang tot jou Chrome-goed te kry. - Google Chrome is jou verstekblaaier -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb -index c84f174097df..9dc5a7d7e985 100644 ---- a/chrome/app/resources/google_chrome_strings_am.xtb -+++ b/chrome/app/resources/google_chrome_strings_am.xtb -@@ -83,7 +83,7 @@ - ይህ መለያ ያለው የChrome መገለጫ አስቀድሞ አለ - ወደ Chrome ገብተዋል! - ተግባር መሪ --ስለChrome -+ስለBrowser - ደካማ የይለፍ ቃላት ለመገመት ቀላል ናቸው። Chrome ለእርስዎ ጠንካራ የይለፍ ቃላትን እንዲፈጥር እና እንዲያስታውስ ይፍቀዱ። - Chrome አልተዘመነም፣ የሆነ ስክህተት ተከስቷል። የChrome ዝማኔ ችግሮችን እና ያልተሳኩ ዝማኔዎችን ያስተካክሉ። - - በአውታረ መረብ ወደ መለያ መግባት - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb -index 5dde55504e53..1bef1b856ae3 100644 ---- a/chrome/app/resources/google_chrome_strings_ar.xtb -+++ b/chrome/app/resources/google_chrome_strings_ar.xtb -@@ -82,7 +82,7 @@ - ‏يتوفّر ملف شخصي بهذا الحساب حاليًا على Chrome. - ‏تم تسجيل دخولك إلى Chrome! - إدارة المهام --‏لمحة عن Chrome -+‏لمحة عن Browser - ‏من السهل تخمين كلمات المرور الضعيفة. يمكنك السماح لمتصفِّح Chrome بإنشاء كلمات مرور قوية وتذكُّرها نيابة عنك. - ‏تعذّر تحديث Chrome بسبب حدوث خطأ. حلّ مشاكل تحديث Chrome وتعذُّر التحديثات - - Chrome - تسجيل الدخول إلى الشبكة -diff --git a/chrome/app/resources/google_chrome_strings_as.xtb b/chrome/app/resources/google_chrome_strings_as.xtb -index 9b6107877348..e47078b7edde 100644 ---- a/chrome/app/resources/google_chrome_strings_as.xtb -+++ b/chrome/app/resources/google_chrome_strings_as.xtb -@@ -84,7 +84,7 @@ - এই একাউণ্টটোৰ সৈতে এটা Chrome প্ৰ'ফাইল ইতিমধ্যে আছে - আপুনি Chromeত ছাইন ইন হৈ আছে! - কাৰ্য পৰিচালক --Chromeৰ বিষয়ে -+Browserৰ বিষয়ে - দুৰ্বল পাছৱৰ্ডসমূহ অনুমান কৰিবলৈ সহজ। Chromeক আপোনাৰ বাবে শক্তিশালী পাছৱৰ্ড সৃষ্টি কৰিবলৈ আৰু মনত ৰাখিবলৈ দিয়ক - Chrome আপডে'ট হোৱা নাই, কিবা ভুল হৈছে। Chromeৰ আপডে'ট সম্পর্কীয় সমস্যাবোৰ আৰু বিফল হোৱা আপডে'টসমূহ সমাধান কৰক। - - নেটৱর্কত ছাইন ইন - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb -index 20019da1920c..9bbb11c97589 100644 ---- a/chrome/app/resources/google_chrome_strings_az.xtb -+++ b/chrome/app/resources/google_chrome_strings_az.xtb -@@ -81,7 +81,7 @@ Bəzi funksiyalar əlçatmaz ola bilər ki, nəticədə tərcihlərə edilən d - Bu hesab ilə Chrome profili artıq mövcuddur - Chrome'a daxil olmusunuz! - Tapşırıq Meneceri --Chrome haqqında -+Browser haqqında - Zəif parolları tapmaq asandır. Chrome'un sizin üçün güclü parollar yaratmasına və yadda saxlamasına imkan verin. - Chrome güncəllənmədi, xəta baş verdi. Chrome'un güncəllənmə problemlərini və alınmayan güncəllənmələri həll edin. - - Şəbəkəyə Giriş - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb -index d23cc598250e..f1d18512cd2a 100644 ---- a/chrome/app/resources/google_chrome_strings_be.xtb -+++ b/chrome/app/resources/google_chrome_strings_be.xtb -@@ -83,7 +83,7 @@ - Профіль Chrome з гэтым уліковым запісам ужо існуе - Вы ўвайшлі ў Chrome! - Менеджар заданняў --Пра браўзер Chrome -+Пра браўзер Browser - Ненадзейныя паролі лёгка адгадаць. Дазвольце Chrome ствараць для вас надзейныя паролі і запамінаць іх. - Chrome не абнавіўся. Нешта пайшло не так. Выправіце праблемы з абнаўленнем Chrome і памылкі абнаўлення. -  – Уваход у сетку – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb -index 73b04c4e9c11..175c15092284 100644 ---- a/chrome/app/resources/google_chrome_strings_bg.xtb -+++ b/chrome/app/resources/google_chrome_strings_bg.xtb -@@ -82,7 +82,7 @@ - Вече съществува потребителски профил в Chrome за този профил - Влязохте в Chrome! - Диспечер на задачите --Всичко за Chrome -+Всичко за Browser - Ненадеждните пароли са лесни за отгатване. Използвайте Chrome за създаване и запомняне на надеждни пароли за профилите ви. - Chrome не се актуализира, защото нещо се обърка. Отстранете проблеми с актуализирането на Chrome и неуспешни актуализации. - – Вход в мрежата – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb -index 1a97affa6f20..f187b853a892 100644 ---- a/chrome/app/resources/google_chrome_strings_bn.xtb -+++ b/chrome/app/resources/google_chrome_strings_bn.xtb -@@ -82,7 +82,7 @@ - এই অ্যাকাউন্টের সাথে আগে থেকেই একটি Chrome প্রোফাইল রয়েছে - আপনি Chrome এ প্রবেশ করেছেন৷ - কার্য পরিচালক --Chrome সম্বন্ধে -+Browser সম্বন্ধে - দুর্বল পাসওয়ার্ড সহজেই অনুমান করা যায়। Chrome-কে আপনার জন্য শক্তিশালী পাসওয়ার্ড তৈরি করার ও সেটি মনে রাখার অনুমতি দিন। - Chrome আপডেট করা যায়নি, কোনও সমস্যা হয়েছে। Chrome-এ আপডেট করতে না পারার সমস্যা ও আপডেট করা যায়নি এমন সমস্যার সমাধান করুন। - - নেটওয়ার্ক সাইন-ইন - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_bs.xtb b/chrome/app/resources/google_chrome_strings_bs.xtb -index bf0eaff0e78a..f4012d2371a8 100644 ---- a/chrome/app/resources/google_chrome_strings_bs.xtb -+++ b/chrome/app/resources/google_chrome_strings_bs.xtb -@@ -84,7 +84,7 @@ uparivanjem. - Chrome profil s ovim računom već postoji - Prijavili ste se u Chrome! - Upravitelj zadataka --O Chromeu -+O Browseru - Slabe lozinke je lako pogoditi. Dozvolite Chromeu da kreira i zapamti jake lozinke za vas. - Ažuriranje Chromea nije uspjelo. Nešto nije uredu. Ispravite probleme s ažuriranjem Chromea i neuspjela ažuriranja. - – prijava na mrežu – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb -index 2e7180b07b2a..67a9e0e8a22c 100644 ---- a/chrome/app/resources/google_chrome_strings_ca.xtb -+++ b/chrome/app/resources/google_chrome_strings_ca.xtb -@@ -80,7 +80,7 @@ - Ja existeix un perfil de Chrome amb aquest compte - Teniu la sessió iniciada a Chrome. - Gestor de tasques --Sobre Chrome -+Sobre Browser - Les contrasenyes poc segures són fàcils d'endevinar. Deixa que Chrome creï i recordi contrasenyes segures en nom teu. - No s'ha actualitzat Chrome. S'ha produït un error. Soluciona els problemes i errors d'actualització de Chrome. - - Inici de sessió a la xarxa - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb -index 565b6d86d557..d4b4733480a5 100644 ---- a/chrome/app/resources/google_chrome_strings_cs.xtb -+++ b/chrome/app/resources/google_chrome_strings_cs.xtb -@@ -84,7 +84,7 @@ Některé funkce možná nebudou k dispozici a změny nastavení se neuloží.Profil Chrome s tímto účtem už existuje - Nyní jste přihlášeni do Chromu. - Správce úloh --O aplikaci Chrome -+O aplikaci Browser - Slabá hesla lze snadno uhodnout. Chrome vám může vytvářet a ukládat silná hesla. - Prohlížeč Chrome se neaktualizoval, něco se pokazilo. Vyřešte problémy se stahováním aktualizací Chromu a neúspěšnými aktualizacemi. - – přihlášení k síti – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb -index 950bccdd0260..7d52c70805d4 100644 ---- a/chrome/app/resources/google_chrome_strings_da.xtb -+++ b/chrome/app/resources/google_chrome_strings_da.xtb -@@ -80,7 +80,7 @@ - Der findes allerede en Chrome-profil med denne konto - Du er logget ind på Chrome. - Jobliste --Om Chrome -+Om Browser - Svage adgangskoder er nemme at gætte. Få Chrome til at oprette og huske stærke adgangskoder for dig. - Chrome blev ikke opdateret, da der opstod en fejl. Løs problemer med opdatering af Chrome og mislykkede opdateringer. - – Login på netværk – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb -index d08448a17596..fc34b986cbc9 100644 ---- a/chrome/app/resources/google_chrome_strings_de.xtb -+++ b/chrome/app/resources/google_chrome_strings_de.xtb -@@ -80,7 +80,7 @@ - Ein Chrome-Profil mit diesem Konto ist bereits vorhanden - Sie sind in Chrome angemeldet. - Task-Manager --Über Google Chrome -+Über Browser - Schwache Passwörter sind einfach zu erraten. Erlauben Sie Chrome, ein sicheres Passwort für Ihre Onlinekonten zu erstellen und zu speichern. - Chrome konnte aufgrund eines Fehlers nicht aktualisiert werden. Wie Sie Updateprobleme und Fehler bei der Aktualisierung von Chrome beheben, erfahren Sie hier. -  – Netzwerkanmeldung – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb -index 375b5d77a7a4..4201155d7890 100644 ---- a/chrome/app/resources/google_chrome_strings_el.xtb -+++ b/chrome/app/resources/google_chrome_strings_el.xtb -@@ -82,7 +82,7 @@ - Υπάρχει ήδη προφίλ Chrome με αυτόν τον λογαριασμό. - Έχετε συνδεθεί στο Chrome! - Διαχείριση εργασιών --Σχετικά με το Chrome -+Σχετικά με το Browser - Είναι εύκολο να μαντέψει κανείς τους ασθενείς κωδικούς πρόσβασης. Επιτρέψτε στο Chrome να δημιουργεί και να απομνημονεύει ισχυρούς κωδικούς πρόσβασης για εσάς. - Δεν έγινε ενημέρωση του Chrome, παρουσιάστηκε κάποιο σφάλμα. Επιδιορθώστε τα προβλήματα ενημέρωσης και αποτυχημένων ενημερώσεων του Chrome. - - Σύνδεση δικτύου - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb -index c16eb479747a..b5af07e844c4 100644 ---- a/chrome/app/resources/google_chrome_strings_en-GB.xtb -+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb -@@ -83,7 +83,7 @@ Some features may be unavailable and changes to preferences won't be saved.A Chrome profile with this account already exists - You're signed in to Chrome! - Task Manager --About Chrome -+About Browser - Weak passwords are easy to guess. Let Chrome create and remember strong passwords for you. - Chrome didn't update. Something went wrong. Fix Chrome update problems and failed updates. - – Network sign-in – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb -index 23b6bddab73b..1a44bfa58377 100644 ---- a/chrome/app/resources/google_chrome_strings_es-419.xtb -+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb -@@ -80,7 +80,7 @@ - Ya existe un perfil de Chrome con esta cuenta - Accediste a Google Chrome. - Administrador de tareas --Acerca de Chrome -+Acerca de Browser - Las contraseñas poco seguras son fáciles de adivinar. Permite que Chrome cree y recuerde contraseñas seguras para ti. - No se actualizó Chrome porque se produjo un error. Soluciona los problemas de actualización y las actualizaciones con error de Chrome. - : Acceso a la red - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb -index b36c71f9d2ae..56a03842f4cc 100644 ---- a/chrome/app/resources/google_chrome_strings_es.xtb -+++ b/chrome/app/resources/google_chrome_strings_es.xtb -@@ -84,7 +84,7 @@ Es posible que algunas funciones no estén disponibles y que no se guarden los c - Ya existe un perfil de Chrome con esta cuenta - Has iniciado sesión en Chrome - Administrador de tareas --Información de Chrome -+Información de Browser - Las contraseñas poco seguras son fáciles de adivinar. Permite que Chrome cree y recuerde contraseñas seguras por ti. - Chrome no se ha actualizado, algo no va bien. Soluciona los problemas y errores de actualización de Chrome. - , inicio de sesión en la red, Chrome -diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb -index 72fb939bbe52..b0240d8b4aac 100644 ---- a/chrome/app/resources/google_chrome_strings_et.xtb -+++ b/chrome/app/resources/google_chrome_strings_et.xtb -@@ -81,7 +81,7 @@ - Selle kontoga Chrome'i profiil on juba olemas - Olete Chrome'i sisse logitud. - Tegumihaldur --Teave Chrome'i kohta -+Teave Browser'i kohta - Nõrku paroole on lihtne ära arvata. Laske Chrome'il teie jaoks luua ja meelde jätta tugevaid paroole. - Chrome'i ei värskendatud, midagi läks valesti. Lahendage Chrome'i värskendamisprobleemid ja parandage ebaõnnestunud värskendused. - – võrku sisselogimine – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb -index 4f601b8b7941..2622158034b8 100644 ---- a/chrome/app/resources/google_chrome_strings_eu.xtb -+++ b/chrome/app/resources/google_chrome_strings_eu.xtb -@@ -83,7 +83,7 @@ Eginbide batzuk agian dira erabilgarri egongo eta hobespenei egindako aldaketak - Badago kontu honen Chrome-ko profil bat - Chrome-n saioa hasi duzu. - Zereginen kudeatzailea --Chrome-ri buruz -+Browser-ri buruz - Seguruak ez diren pasahitzak erraz asmatzen dira. Utzi Chrome-ri pasahitz seguruak sortzen eta gogoratzen. - Chrome ez da eguneratu arazoren bat izan delako. Konpondu Chrome eguneratzeko arazoak eta huts egindako eguneratzeak. - - Hasi saioa sarean - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb -index b7287156dc62..34621fe4272c 100644 ---- a/chrome/app/resources/google_chrome_strings_fa.xtb -+++ b/chrome/app/resources/google_chrome_strings_fa.xtb -@@ -80,7 +80,7 @@ - ‏درحال‌حاضر یک نمایه Chrome با این حساب وجود دارد - ‏شما در حال حاضر وارد سیستم Chrome شده‌اید! - مدیر فعالیت‌ها --‏درباره Chrome -+‏درباره Browser - ‏گذرواژه‌های ضعیف را می‌توان به‌راحتی حدس زد. به Chrome اجازه دهید گذرواژه‌هایی قوی برایتان ایجاد کند و آن‌ها را به‌خاطر بسپارد. - ‏Chrome به‌روزرسانی نشد؛ مشکلی پیش آمد. مشکلات به‌روزرسانی Chrome و به‌روزرسانی‌های ناموفق را برطرف کنید. - - ورود به سیستم شبکه - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb -index 8b39f1f057db..2af0daf4f76c 100644 ---- a/chrome/app/resources/google_chrome_strings_fi.xtb -+++ b/chrome/app/resources/google_chrome_strings_fi.xtb -@@ -80,7 +80,7 @@ - Tällä tilillä on jo Chrome-profiili - Olet kirjautunut Chromeen! - Tehtävänhallinta --Tietoja Chromesta -+Tietoja Browsersta - Heikko salasana on helppo arvata. Chrome voi luoda ja muistaa vahvoja salasanoja puolestasi. - Chromea ei päivitetty, vaan jotain meni pieleen. Korjaa Chromen päivitysongelmat ja epäonnistuneet päivitykset. - – Kirjautuminen verkkoon – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb -index f5fbdb025e37..f5149c71f1bd 100644 ---- a/chrome/app/resources/google_chrome_strings_fil.xtb -+++ b/chrome/app/resources/google_chrome_strings_fil.xtb -@@ -84,7 +84,7 @@ Maaaring hindi available ang ilang tampok at hindi mase-save ang mga pagbabago s - Mayroon nang profile sa Chrome na gumagamit ng account na ito - Naka-sign in ka sa Chrome! - Task Manager --Tungkol sa Chrome -+Tungkol sa Browser - Madaling hulaan ang mahihinang password. Hayaan ang Chrome na gumawa ng malalakas na password at tandaan ang mga ito para sa iyo. - Hindi na-update ang Chrome, nagkaproblema. Ayusin ang mga problema sa pag-update ng Chrome at ang mga hindi naisagawang pag-update dito. - - Pag-sign in sa Network - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_fr-CA.xtb b/chrome/app/resources/google_chrome_strings_fr-CA.xtb -index b0a0315883bd..06569e5d612a 100644 ---- a/chrome/app/resources/google_chrome_strings_fr-CA.xtb -+++ b/chrome/app/resources/google_chrome_strings_fr-CA.xtb -@@ -83,7 +83,7 @@ Certaines fonctionnalités ne seront peut-être pas disponibles et les modificat - Un profil Chrome associé à ce compte existe déjà - Vous êtes connecté à Google Chrome! - Moniteur d'activité --À propos de Google Chrome -+À propos de Browser - Les mots de passe faibles sont faciles à deviner. Vous pouvez laisser Chrome créer et mémoriser des mots de passe forts pour vous. - La mise à jour de Chrome n'a pas été installée. Une erreur s'est produite. Découvrez comment résoudre les problèmes de mise à jour de Chrome. - – Connexion au réseau – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb -index 0308814b3793..3c19ffb5c89c 100644 ---- a/chrome/app/resources/google_chrome_strings_fr.xtb -+++ b/chrome/app/resources/google_chrome_strings_fr.xtb -@@ -83,7 +83,7 @@ Certaines fonctionnalités ne seront peut-être pas disponibles, et les modifica - Un profil Chrome existe déjà pour ce compte - Vous êtes connecté à Google Chrome. - Gestionnaire de tâches --À propos de Chrome -+À propos de Browser - Les mots de passe peu sécurisés sont faciles à deviner. Laissez Chrome créer et mémoriser des mots de passe sécurisés à votre place. - Échec de la mise à jour de Chrome en raison d'une erreur. Découvrez comment résoudre ce type de problème. - - Connexion au réseau - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb -index 8052e65cb9ed..6bb8baf38e01 100644 ---- a/chrome/app/resources/google_chrome_strings_gl.xtb -+++ b/chrome/app/resources/google_chrome_strings_gl.xtb -@@ -83,7 +83,7 @@ - Xa existe un perfil de Chrome con esta conta - Iniciaches sesión en Chrome. - Xestor de tarefas --Acerca de Chrome -+Acerca de Browser - Os contrasinais pouco seguros son fáciles de adiviñar. Permite que Chrome cree e lembre contrasinais seguros por ti. - Chrome non se actualizou, xa que se produciu un erro. Soluciona os problemas de actualización de Chrome e as actualizacións que non se puidesen realizar. - (inicio de sesión de rede, Chrome) -diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb -index 5cac144d0891..1bcb6f2ed288 100644 ---- a/chrome/app/resources/google_chrome_strings_gu.xtb -+++ b/chrome/app/resources/google_chrome_strings_gu.xtb -@@ -84,7 +84,7 @@ - આ એકાઉન્ટ સાથેની Chrome પ્રોફાઇલ પહેલેથી અસ્તિત્વમાં છે - તમે હમણાં Chrome માં સાઇન ઇન છો! - કાર્ય વ્યવસ્થાપક --Chrome વિશે -+Browser વિશે - નબળા પાસવર્ડનું અનુમાન કરવું સરળ હોય છે. Chromeને તમારા માટે સશક્ત પાસવર્ડ બનાવવા અને યાદ રાખવાની મંજૂરી આપો. - કંઈક ખોટુ થયું હોવાને કારણે Chrome અપડેટ કરી શકાયું નથી. Chrome અપડેટ કરવામાં આવતી સમસ્યાઓ અને નિષ્ફળ થયેલા અપડેટ સુધારો. - - નેટવર્ક સાઇન ઇન - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb -index d26e2a431a50..03994a121ae6 100644 ---- a/chrome/app/resources/google_chrome_strings_hi.xtb -+++ b/chrome/app/resources/google_chrome_strings_hi.xtb -@@ -80,7 +80,7 @@ - इस खाते के साथ एक Chrome प्रोफ़ाइल पहले से मौजूद है - आप Chrome में प्रवेश हैं. - काम का मैनेजर --Chrome के बारे में -+Browser के बारे में - कमज़ोर पासवर्ड का अंदाज़ा लगाना आसान होता है. Chrome को आपके लिए मज़बूत पासवर्ड बनाने और उन्हें याद रखने की अनुमति दें. - किसी गड़बड़ी की वजह से Chrome अपडेट नहीं हुआ. Chrome को अपडेट करने से जुड़ी समस्याएं और नहीं हो पाने वाले अपडेट ठीक करें. - - नेटवर्क में Chrome से साइन-इन करें -diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb -index d4a13e70cc11..f90b8c819ed2 100644 ---- a/chrome/app/resources/google_chrome_strings_hr.xtb -+++ b/chrome/app/resources/google_chrome_strings_hr.xtb -@@ -80,7 +80,7 @@ - Već postoji profil u Chromeu s tim računom - Prijavljeni ste na Chrome! - Upravitelj zadataka --O Chromeu -+O Browseru - Slabe zaporke lako je pogoditi. Neka Chrome izradi i zapamti snažne zaporke za vas. - Chrome se nije ažurirao zbog pogreške. Riješite probleme s ažuriranjem i neuspjela ažuriranja Chromea. - – Prijava na mrežu – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb -index 1ab496e45055..5884312020fe 100644 ---- a/chrome/app/resources/google_chrome_strings_hu.xtb -+++ b/chrome/app/resources/google_chrome_strings_hu.xtb -@@ -80,7 +80,7 @@ - Már létezik Chrome-profil ezzel a fiókkal - Bejelentkezett a Chrome-ba. - Feladatkezelő --A Chrome névjegye -+A Browser névjegye - A gyenge jelszavakat könnyű kitalálni. Engedélyezze a Chrome számára, hogy erős jelszavakat hozzon létre Önnek, és megjegyezze őket. - Ismeretlen hiba történt, ezért a Chrome nem frissült. A Chrome frissítési problémáinak megoldása. - – Hálózati bejelentkezés – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_hy.xtb b/chrome/app/resources/google_chrome_strings_hy.xtb -index ad2483f95a67..1c8adc445a2a 100644 ---- a/chrome/app/resources/google_chrome_strings_hy.xtb -+++ b/chrome/app/resources/google_chrome_strings_hy.xtb -@@ -81,7 +81,7 @@ - Այս հաշվի հետ կապված Chrome-ի պրոֆիլ արդեն գոյություն ունի - Դուք մուտք եք գործել Chrome: - Task Manager --Chrome-ի մասին -+Browser-ի մասին - Թույլ գաղտնաբառերը հեշտ է գուշակել։ Թույլատրեք Chrome-ին գաղտնաբառեր ստեղծել և պահել ձեզ համար։ - Անհայտ սխալի պատճառով չհաջողվեց թարմացնել Chrome-ը։ Շտկել Chrome-ի թարմացման հետ կապված խնդիրները - – Ցանցի մուտք – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb -index 8a0185a74636..f7cd7a6171ac 100644 ---- a/chrome/app/resources/google_chrome_strings_id.xtb -+++ b/chrome/app/resources/google_chrome_strings_id.xtb -@@ -80,7 +80,7 @@ - Profil Chrome dengan akun ini sudah ada - Anda sudah masuk ke Chrome! - Pengelola Tugas --Tentang Chrome -+Tentang Browser - Sandi yang lemah mudah ditebak. Izinkan Chrome membuat dan mengingat sandi yang kuat untuk Anda. - Chrome tidak dapat diupdate, terjadi error. Perbaiki masalah update Chrome dan update yang gagal. - - Login Jaringan - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_is.xtb b/chrome/app/resources/google_chrome_strings_is.xtb -index 114f6efb7e7b..3f562eab9032 100644 ---- a/chrome/app/resources/google_chrome_strings_is.xtb -+++ b/chrome/app/resources/google_chrome_strings_is.xtb -@@ -83,7 +83,7 @@ Sumir eiginleikar kunna að vera óaðgengilegir og breytingar á kjörstillingu - Chrome prófíll með þessum reikningi er þegar til - Þú ert skráð(ur) inn á Chrome! - Verkstjórn --Um Chrome -+Um Browser - Léleg aðgangsorð eru þau sem auðvelt er að giska á. Leyfðu Chrome að búa til traust aðgangsorð fyrir þig og muna þau. - Chrome uppfærðist ekki, eitthvað fór úrskeiðis. Lagaðu uppfærsluvandamál Chrome og uppfærslur sem mistókust. - – innskráning á net – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb -index 58091a06cee2..a8616330996d 100644 ---- a/chrome/app/resources/google_chrome_strings_it.xtb -+++ b/chrome/app/resources/google_chrome_strings_it.xtb -@@ -79,7 +79,7 @@ - Esiste già un profilo Chrome con questo account - Hai eseguito l'accesso a Chrome. - Task Manager --Informazioni su Chrome -+Informazioni su Browser - Le password inefficaci sono facili da indovinare. Consenti a Chrome di creare e memorizzare password efficaci per te. - Si è verificato un errore: Chrome non si è aggiornato. Risolvi i problemi di aggiornamento e gli aggiornamenti non riusciti di Chrome. - - Accesso rete - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb -index 3286d7a48b63..7f3c29299aeb 100644 ---- a/chrome/app/resources/google_chrome_strings_iw.xtb -+++ b/chrome/app/resources/google_chrome_strings_iw.xtb -@@ -80,7 +80,7 @@ - ‏כבר קיים פרופיל Chrome עם החשבון הזה - ‏נכנסת ל-Chrome! - מנהל המשימות --‏מידע כללי על Chrome -+‏מידע כללי על Browser - ‏קל לנחש סיסמאות חלשות. באמצעות Chrome אפשר ליצור ולזכור סיסמאות חזקות. - ‏Chrome לא התעדכן, משהו השתבש. לטיפול בבעיות בעדכון של Chrome ובעדכונים שנכשלו - – כניסה לרשת – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb -index 8c4b95d199a9..e4ab1b1da451 100644 ---- a/chrome/app/resources/google_chrome_strings_ja.xtb -+++ b/chrome/app/resources/google_chrome_strings_ja.xtb -@@ -79,7 +79,7 @@ - このアカウントの Chrome プロファイルはすでに存在します - Chrome にログインしました - タスク マネージャ --Chrome について -+Browser について - 脆弱なパスワードは簡単に推測されてしまいます。Chrome で安全性の高いパスワードを自動生成して保存することができます。 - エラーが発生したため、Chrome が更新されませんでした。Chrome の更新に関する問題を解決してください。 - - ネットワークにログイン - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb -index b4da975d4fa5..fd468962869a 100644 ---- a/chrome/app/resources/google_chrome_strings_ka.xtb -+++ b/chrome/app/resources/google_chrome_strings_ka.xtb -@@ -83,7 +83,7 @@ - ამ ანგარიშის მქონე Chrome პროფილი უკვე არსებობს - თქვენ შესული ხართ Chrome-ში! - ამოცანების მმართველი --Chrome-ის შესახებ -+Browser-ის შესახებ - სუსტი პაროლები ადვილი გამოსაცნობია, ამიტომ მიეცით საშუალება Chrome-ს, თქვენთვის შექმნას და დაიმახსოვროს ძლიერი პაროლები. - Chrome-ის განახლება ვერ მოხერხდა შეფერხების გამო. შეასწორეთ Chrome-ის განახლებასთან დაკავშირებული პრობლემები და განუხორციელებელი განახლებები. - — ქსელში შესვლა — Chrome -diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb -index b9f9c4fa1212..3a2babab607a 100644 ---- a/chrome/app/resources/google_chrome_strings_kk.xtb -+++ b/chrome/app/resources/google_chrome_strings_kk.xtb -@@ -83,7 +83,7 @@ - Бұл есептік жазбаға Chrome профилі тіркеліп қойған. - Chrome жүйесіне кірдіңіз! - Тапсырмалар реттегіші --Chrome туралы -+Browser туралы - Құпия сөзіңіз оңай болса, оны табу да оңай. Chrome браузеріне күрделі құпия сөздер жасауға және сақтауға мүмкіндік беріңіз. - Chrome жаңартылған жоқ. Бірдеңе дұрыс болмады. Chrome браузеріндегі жаңартуға қатысты мәселелерді түзетіңіз. - – Желіге кіру – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb -index eef55c5b7dcc..b5f538efb21e 100644 ---- a/chrome/app/resources/google_chrome_strings_km.xtb -+++ b/chrome/app/resources/google_chrome_strings_km.xtb -@@ -84,7 +84,7 @@ - កម្រងព័ត៌មាន Chrome ដែលប្រើគណនីនេះមានរួចហើយ - អ្នកបានចូលមកកាន់ Chrome! - កម្មវិធីគ្រប់គ្រងភារកិច្ច --អំពី Chrome -+អំពី Browser - ពាក្យសម្ងាត់ខ្សោយ​មានភាពងាយស្រួលក្នុងការ​ទាយដឹង​។ អនុញ្ញាតឱ្យ Chrome បង្កើត និងចងចាំពាក្យសម្ងាត់ខ្លាំងសម្រាប់អ្នក - Chrome មិន​បានដំឡើងកំណែទេ មានអ្វីមួយខុសប្រក្រតី។ សូមដោះស្រាយបញ្ហា​នៃការដំឡើងកំណែ Chrome និងការដំឡើងកំណែដែលមិនបានសម្រេចផ្សេងៗ។ - - ការចូលបណ្ដាញ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb -index 2d257ec2537e..11ca731b7de4 100644 ---- a/chrome/app/resources/google_chrome_strings_kn.xtb -+++ b/chrome/app/resources/google_chrome_strings_kn.xtb -@@ -81,7 +81,7 @@ - ಈ ಖಾತೆಯೊಂದಿಗೆ Chrome ಪ್ರೊಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ - ನೀವೀಗ Chrome ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ! - ಕಾರ್ಯ ನಿರ್ವಾಹಕ --Chrome ಕುರಿತು -+Browser ಕುರಿತು - ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸುಲಭವಾಗಿ ಊಹಿಸಬಹುದು. Chrome ನಿಮಗಾಗಿ ಸದೃಢ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಅವಕಾಶ ಮಾಡಿಕೊಡಿ. - Chrome ಅಪ್‌ಡೇಟ್ ಆಗಲಿಲ್ಲ, ಏನೋ ಸಮಸ್ಯೆಯಾಗಿದೆ. Chrome ಅಪ್‌ಡೇಟ್ ಸಮಸ್ಯೆಗಳು ಹಾಗೂ ವಿಫಲವಾದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಿ. - - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb -index 17e6b7a391b8..8a491df1631d 100644 ---- a/chrome/app/resources/google_chrome_strings_ko.xtb -+++ b/chrome/app/resources/google_chrome_strings_ko.xtb -@@ -84,7 +84,7 @@ - 이 계정을 사용하는 Chrome 프로필이 이미 존재합니다. - Chrome에 로그인되어 있습니다. - 작업 관리자 --Chrome 정보 -+Browser 정보 - 취약한 비밀번호는 추측하기 쉽습니다. Chrome에서 안전한 비밀번호를 생성하고 기억하도록 설정하세요. - 문제가 발생하여 Chromium을 업데이트할 수 없습니다. Chrome 업데이트 문제 및 업데이트 실패 문제 해결하기 - - 네트워크 로그인 - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb -index d18f3d600f77..3040f07cfc77 100644 ---- a/chrome/app/resources/google_chrome_strings_ky.xtb -+++ b/chrome/app/resources/google_chrome_strings_ky.xtb -@@ -84,7 +84,7 @@ - Бул аккаунт менен Chrome профили мурунтан эле түзүлгөн - Chrome'го кирдиңиз! - Тапшырмаларды башкаргыч --Chrome тууралуу -+Browser тууралуу - Начар сырсөздөрдү билип алуу оңой. Chrome'го сиз үчүн татаал сырсөздөрдү түзүп, эстеп калууга уруксат бериңиз. - Chrome жаңырган жок. Бир жерден ката кетти. Chrome'догу жаңыртуу маселелерин оңдоңуз. - – Тармакка кирүү – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb -index cad676379edc..5066831daf05 100644 ---- a/chrome/app/resources/google_chrome_strings_lo.xtb -+++ b/chrome/app/resources/google_chrome_strings_lo.xtb -@@ -84,7 +84,7 @@ - ມີໂປຣໄຟລ໌ Chrome ກັບບັນຊີນີ້ຢູ່ກ່ອນແລ້ວ - ທ່ານລົງຊື່ເຂົ້າໃຊ້ Chrome ແລ້ວ. - ຕົວຈັດການໜ້າວຽກ --ກ່ຽວ​ກັບ Chrome -+ກ່ຽວ​ກັບ Browser - ລະຫັດຜ່ານງ່າຍແມ່ນລະຫັດຜ່ານທີ່ເດົາໄດ້ງ່າຍ. ອະນຸຍາດໃຫ້ Chrome ສ້າງ ແລະ ຈື່ລະຫັດຜ່ານຍາກສຳລັບທ່ານ. - Chrome ບໍ່ອັບເດດ, ມີບາງຢ່າງຜິດພາດ. ແກ້ໄຂບັນຫາການອັບເດດ Chrome ແລະ ການອັບເດດທີ່ບໍ່ສຳເລັດ. - - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb -index 2a21e2eb9af2..8eb3abd31b45 100644 ---- a/chrome/app/resources/google_chrome_strings_lt.xtb -+++ b/chrome/app/resources/google_chrome_strings_lt.xtb -@@ -84,7 +84,7 @@ Kai kurios funkcijos gali būti nepasiekiamos ir nuostatų pakeitimai nebus išs - „Chrome“ profilis su tokia paskyra jau yra - Esate prisijungę prie „Chrome“. - Užduočių tvarkytuvė --Apie „Chrome“ -+Apie „Browser“ - Nesudėtingus slaptažodžius lengva atspėti. Leiskite „Chrome“ jums sukurti ir įsiminti sudėtingus slaptažodžius. - Nepavyko atnaujinti „Chrome“, įvyko klaida. Pašalinkite „Chrome“ naujinimo problemas ir naujinių klaidas. - “ – prisijungimas prie tinklo – „Chrome“ -diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb -index 7ad3cb1a98ff..d611d75a9d64 100644 ---- a/chrome/app/resources/google_chrome_strings_lv.xtb -+++ b/chrome/app/resources/google_chrome_strings_lv.xtb -@@ -81,7 +81,7 @@ - Chrome profils ar šādu kontu jau pastāv - Esat pierakstījies pārlūkā Chrome! - Uzdevumu pārvaldnieks --Par Chrome -+Par Browser - Nedrošas paroles ir viegli uzminēt. Pārlūkā Chrome var automātiski veidot un iegaumēt drošas paroles jūsu kontiem. - Pārlūkprogramma Chrome netika atjaunināta. Radās problēma. Novērsiet Chrome atjaunināšanas problēmas. -  — pierakstīšanās tīklā — Chrome -diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb -index dae546b39070..b6620e4719c5 100644 ---- a/chrome/app/resources/google_chrome_strings_mk.xtb -+++ b/chrome/app/resources/google_chrome_strings_mk.xtb -@@ -84,7 +84,7 @@ - Веќе постои профил на Chrome со оваа сметка - Најавени сте на Chrome! - Управник со задачи --За Chrome -+За Browser - Слабите лозинки се лесни за погаѓање. Дозволете Chrome да ви создаде и запомни силни лозинки. - Chrome не се ажурираше, нешто тргна наопаку. Поправете ги проблемите со ажурирањето на Chrome и со неуспешните ажурирања. - - Мрежно најавување - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb -index 4c1e67af3617..7cbc8f14efd9 100644 ---- a/chrome/app/resources/google_chrome_strings_ml.xtb -+++ b/chrome/app/resources/google_chrome_strings_ml.xtb -@@ -84,7 +84,7 @@ - ഈ അക്കൗണ്ടുള്ള ഒരു Chrome പ്രൊഫൈൽ നിലവിലുണ്ട് - നിങ്ങൾ Chrome-ൽ സൈൻ ഇൻ ചെയ്‌തു! - ടാസ്‌ക് മാനേജര്‍ --Chrome-നെ കുറിച്ച് -+Browser-നെ കുറിച്ച് - ദുർബലമായ പാസ്‌വേഡുകൾ ഊഹിക്കാൻ എളുപ്പമാണ്. നിങ്ങൾക്കായി ശക്തമായ പാസ്‌വേഡുകൾ സൃഷ്ടിക്കാനും ഓർമ്മിക്കാനും Chrome-നെ അനുവദിക്കുക. - Chrome അപ്‌ഡേറ്റ് ചെയ്തില്ല, എന്തോ കുഴപ്പമുണ്ടായി. Chrome അപ്‌ഡേറ്റ് സംബന്ധിച്ച പ്രശ്നങ്ങളും പരാജയപ്പെട്ട അപ്ഡേറ്റുകളും പരിഹരിക്കുക. - - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb -index 9b1926cf4ac1..8b5d704b3fb4 100644 ---- a/chrome/app/resources/google_chrome_strings_mn.xtb -+++ b/chrome/app/resources/google_chrome_strings_mn.xtb -@@ -84,7 +84,7 @@ - Энэ бүртгэлтэй Chrome-н профайл аль хэдийн байна - Та Chrome-д нэвтэрсэн байна! - Асуудлын менежер --Chrome-н тухай -+Browser-н тухай - Сул нууц үгийг таахад хялбар байдаг. Chrome-д танд зориулан сайн нууц үг үүсгэж, санах боломж олгоорой. - Chrome-г шинэчлээгүй, ямар нэг алдаа гарлаа. Chrome-г шинэчлэхтэй холбоотой асуудлууд болон амжилтгүй болсон шинэчлэлтүүдийг засна уу. - - Сүлжээнд нэвтрэх - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb -index 347dcd0dfcaa..a63b55242b7b 100644 ---- a/chrome/app/resources/google_chrome_strings_mr.xtb -+++ b/chrome/app/resources/google_chrome_strings_mr.xtb -@@ -83,7 +83,7 @@ - हे खाते वापरून तयार केलेली Chrome प्रोफाइल आधीपासून अस्तित्वात आहे - तुम्ही Chrome मध्‍ये साइन इन केले आहे! - टास्क मॅनेजर --Chrome बद्दल -+Browser बद्दल - कमकुवत पासवर्ड ओळखणे सोपे असते. Chrome ला तुमच्यासाठी क्लिष्ट पासवर्ड तयार करून लक्षात ठेवू द्या. - Chrome अपडेट झाले नाही, काहीतरी चूक झाली. Chrome अपडेट समस्या आणि अयशस्वी झालेल्या अपडेटचे निराकरण करा. - - नेटवर्क साइन इन - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb -index 2bfa622e4cca..94b20ddcc03a 100644 ---- a/chrome/app/resources/google_chrome_strings_ms.xtb -+++ b/chrome/app/resources/google_chrome_strings_ms.xtb -@@ -80,7 +80,7 @@ - Profil Chrome dengan akaun ini telah pun wujud - Anda kini telah log masuk ke Chrome! - Pengurus Tugas --Perihal Chrome -+Perihal Browser - Kata laluan lemah mudah diteka. Biar Chrome membuat dan mengingat kata laluan kukuh untuk anda. - Chrome tidak dikemas kini, kesilapan telah berlaku. Selesaikan masalah kemas kini dan kegagalan kemas kini Chrome. - - Log Masuk Rangkaian - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_my.xtb b/chrome/app/resources/google_chrome_strings_my.xtb -index e745513aa064..c9e21eaf332e 100644 ---- a/chrome/app/resources/google_chrome_strings_my.xtb -+++ b/chrome/app/resources/google_chrome_strings_my.xtb -@@ -84,7 +84,7 @@ - ဤအကောင့်သုံးထားသော Chrome ပရိုဖိုင် ရှိနှင့်ပြီးဖြစ်သည် - Chrome သို့သင် ဝင်ရောက်ပြီးဖြစ်သည်။ - အလုပ် မန်နေဂျာ --Chrome အကြောင်း -+Browser အကြောင်း - လုံခြုံမှုလျော့နည်းသည့် စကားဝှက်များကို အလွယ်တကူ ခန့်မှန်းနိုင်သည်။ သင့်အတွက် လုံခြုံမှုမြင့်သည့်စကားဝှက်များ ပြုလုပ်ပြီး မှတ်ထားရန် Chrome ကို ခွင့်ပြုပါ။ - Chrome အပ်ဒိတ်လုပ်၍ မရပါ၊ တစ်ခုခု မှားသွားသည်။ Chrome အပ်ဒိတ်ပြဿနာများနှင့် လုပ်၍မရသော အပ်ဒိတ်များကို ပြင်ဆင်ပါ။ - - ကွန်ရက် လက်မှတ်ထိုးဝင်ခြင်း - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb -index a9bb9a23de57..ec72f0cf6034 100644 ---- a/chrome/app/resources/google_chrome_strings_ne.xtb -+++ b/chrome/app/resources/google_chrome_strings_ne.xtb -@@ -82,7 +82,7 @@ - यो खाता प्रयोग गरेर Chrome प्रोफाइल बनाइसकिएको छ - तपाईं Chrome मा साइन इन हुनुभएको छ! - कार्य व्यवस्थापक --Chrome को बारेमा -+Browser को बारेमा - कमजोर पासवर्डहरू सजिलै अनुमान लगाउन सकिन्छ। Chrome लाई तपाईंका लागि भरपर्दा पासवर्ड बनाउन र याद राख्न दिनुहोस्। - Chrome अद्यावधिक भएन, केही चिज गडबड भयो। Chrome अद्यावधिक गर्दा देखिएका समस्या तथा अद्यावधिक नहुने समस्याहरू समाधान गर्नुहोस्। - - नेटवर्क साइन इन - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb -index 002fffff7766..ed24d1738455 100644 ---- a/chrome/app/resources/google_chrome_strings_nl.xtb -+++ b/chrome/app/resources/google_chrome_strings_nl.xtb -@@ -83,7 +83,7 @@ Sommige functies zijn wellicht niet beschikbaar en wijzigingen in voorkeuren wor - Er bestaat al een Chrome-profiel voor dit account - Je bent ingelogd bij Chrome. - Taakbeheer --Over Chrome -+Over Browser - Zwakke wachtwoorden zijn makkelijk te raden. Laat Chrome sterke wachtwoorden voor je instellen en onthouden. - Chrome is niet geüpdatet. Er is een fout opgetreden. Updateproblemen en mislukte updates voor Chrome verhelpen - - Inloggen bij netwerk - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb -index 2790a177451e..f8150c3b7e3d 100644 ---- a/chrome/app/resources/google_chrome_strings_no.xtb -+++ b/chrome/app/resources/google_chrome_strings_no.xtb -@@ -79,7 +79,7 @@ - Det finnes allerede en Chrome-profil med denne kontoen - Du er nå logget på Chrome. - Oppgavebehandling --Om Chrome -+Om Browser - Svake passord er enkle å gjette. La Chrome opprette og huske sterke passord for deg. - Chrome ble ikke oppdatert. Noe gikk galt. Løs problemer med Chrome-oppdateringer og mislykkede oppdateringer. - – nettverkspålogging – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_or.xtb b/chrome/app/resources/google_chrome_strings_or.xtb -index 25b4e5e117f4..28095d15901f 100644 ---- a/chrome/app/resources/google_chrome_strings_or.xtb -+++ b/chrome/app/resources/google_chrome_strings_or.xtb -@@ -84,7 +84,7 @@ - ଏହି ଆକାଉଣ୍ଟ ସହ ଏକ Chrome ପ୍ରୋଫାଇଲ୍ ପୂର୍ବରୁ ଅଛି - ଆପଣ Chromeରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି! - ଟାସ୍କ ପରିଚାଳକ --Chrome ବିଷୟରେ -+Browser ବିଷୟରେ - ଦୁର୍ବଳ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଅନୁମାନ କରିବା ସହଜ ଅଟେ। Chromeକୁ ଆପଣଙ୍କ ପାଇଁ ଜଟିଳ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ତିଆରି କରି ମନେ ରଖିବାକୁ ଦିଅନ୍ତୁ - Chrome ଅପଡେଟ୍ ହେଲା ନାହିଁ, କିଛି ତ୍ରୁଟି ହୋଇଗଲା। Chrome ଅପଡେଟ୍ ସମସ୍ୟା ଏବଂ ବିଫଳ ଅପଡେଟଗୁଡ଼ିକର ସମାଧାନ କରନ୍ତୁ। - - ନେଟୱାର୍କ ସାଇନ୍-ଇନ୍ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb -index 07affddc5002..13d19430a2cf 100644 ---- a/chrome/app/resources/google_chrome_strings_pa.xtb -+++ b/chrome/app/resources/google_chrome_strings_pa.xtb -@@ -84,7 +84,7 @@ - ਇਸ ਖਾਤੇ ਨਾਲ ਕੋਈ Chrome ਪ੍ਰੋਫਾਈਲ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ - ਤੁਸੀਂ Chrome 'ਤੇ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਹੈ! - ਕੰਮ ਪ੍ਰਬੰਧਕ --Chrome ਬਾਰੇ -+Browser ਬਾਰੇ - ਕਮਜ਼ੋਰ ਪਾਸਵਰਡਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। Chrome ਨੂੰ ਤੁਹਾਡੇ ਲਈ ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾਉਣ ਅਤੇ ਯਾਦ ਰੱਖਣ ਦਿਓ। - Chrome ਅੱਪਡੇਟ ਨਹੀਂ ਹੋਇਆ, ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ। Chrome ਅੱਪਡੇਟ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਅਸਫਲ ਹੋਈਆਂ ਅੱਪਡੇਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ। - - ਨੈੱਟਵਰਕ ਸਾਈਨ-ਇਨ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb -index 1dc28cc0f8c1..ca8b012df044 100644 ---- a/chrome/app/resources/google_chrome_strings_pl.xtb -+++ b/chrome/app/resources/google_chrome_strings_pl.xtb -@@ -79,7 +79,7 @@ - Już istnieje profil Chrome z tym kontem - Jesteś zalogowany w Chrome. - Menedżer zadań --Chrome – informacje -+Browser – informacje - Słabe hasła są łatwe do odgadnięcia. Pozwól Chrome utworzyć i zapamiętać silne hasła. - Coś poszło nie tak i nie udało się zaktualizować Chrome. Napraw nieudane aktualizacje Chrome i rozwiąż inne problemy z aktualizacjami - – logowanie do sieci – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb -index 9b2d38f2b14c..2dd06b9685a0 100644 ---- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb -+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb -@@ -80,7 +80,7 @@ - Já existe um perfil do Chrome para essa conta - Você fez login no Google Chrome. - Gerenciador de tarefas --Sobre o Google Chrome -+Sobre o Browser - Senhas fracas são fáceis de adivinhar. Deixe o Chrome criar e guardar senhas fortes para você. - A atualização do Chrome não foi concluída. Algo deu errado. Corrija as atualizações com falhas e os problemas de atualização do Chrome. - - Login na rede - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb -index 2cd0d4af7da6..ef1955008275 100644 ---- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb -+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb -@@ -80,7 +80,7 @@ a sincronização. Já existe um perfil do Chrome com esta conta. - Tem sessão iniciada no Chrome! - Gestor de tarefas --Acerca do Chrome -+Acerca do Browser - As palavras-passe fracas são fáceis de adivinhar. Permita que o Chrome crie e memorize palavra-passes fortes. - O Chrome não foi atualizado. Ocorreu um erro. Corrija problemas de atualização do Chrome e falhas nas atualizações. - – Início de sessão na rede – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb -index b3dc5f3657b6..3c06a41be959 100644 ---- a/chrome/app/resources/google_chrome_strings_ro.xtb -+++ b/chrome/app/resources/google_chrome_strings_ro.xtb -@@ -79,7 +79,7 @@ - Există deja un profil Chrome asociat acestui cont - V-ați conectat la Chrome! - Manager de activități --Despre Chrome -+Despre Browser - Parolele slabe sunt ușor de ghicit. Permite browserului Chrome să creeze și să memoreze parole puternice pentru tine. - Chrome nu s-a actualizat. A apărut o eroare. Remediază problemele de actualizare și actualizările nereușite în Chrome. - – conectare la rețea – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb -index 321d8ce7cf7d..68974a74d090 100644 ---- a/chrome/app/resources/google_chrome_strings_ru.xtb -+++ b/chrome/app/resources/google_chrome_strings_ru.xtb -@@ -79,7 +79,7 @@ - Профиль Chrome для этого аккаунта уже существует. - Добро пожаловать в Chrome! - Диспетчер задач --О браузере Chrome -+О браузере Browser - Простые пароли легко подобрать. Разрешите Chrome создавать и хранить надежные пароли для вас. - Не удалось обновить Chrome. Выяснить причины неполадок и устранить их - "" – вход в сеть – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_si.xtb b/chrome/app/resources/google_chrome_strings_si.xtb -index 04c7ea0ea798..aa44fe50b070 100644 ---- a/chrome/app/resources/google_chrome_strings_si.xtb -+++ b/chrome/app/resources/google_chrome_strings_si.xtb -@@ -83,7 +83,7 @@ - මෙම ගිණුම සහිත Chrome පැතිකඩක් දැනටමත් පවතී - ඔබ Chromeට සයින් ඉන් වී ඇත! - කාර්ය කළමණාකරු --Chrome ගැන -+Browser ගැන - දුර්වල මුරපද අනුමානය කිරීමට පහසුයි. ඔබ සඳහා ප්‍රබල මුරපද තැනීමට සහ මතක තබා ගැනීමට Chrome හට ඉඩ දෙන්න. - Chrome යාවත්කාලීන නොවිය, යම් දෙයක් වැරදිණි. Chrome යාවත්කාලීන ගැටලු සහ අසමත් වූ යාවත්කාලීන නිරාකරණ කරන්න. - - ජාල පුරනය - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb -index 1c3d79c33fc6..2bd72a426376 100644 ---- a/chrome/app/resources/google_chrome_strings_sk.xtb -+++ b/chrome/app/resources/google_chrome_strings_sk.xtb -@@ -82,7 +82,7 @@ Niektoré funkcie nemusia byť k dispozícii a zmeny vykonané v predvoľbách s - Profil Chromu s týmto účtom už existuje - Ste prihlásený/-á do prehliadača Chrome. - Správca úloh --O prehliadači Chrome -+O prehliadači Browser - Slabé heslá sa dajú ľahko uhádnuť. Povoľte Chromu, aby vám vytváral silné heslá a pamätal si ich. - Chrome sa neaktualizoval. Vyskytol sa problém. Vyriešiť problémy so sťahovaním aktualizácií Chromu a neúspešnými aktualizáciami - – prihlásenie do siete – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb -index b142027a5581..60c2bcfa238f 100644 ---- a/chrome/app/resources/google_chrome_strings_sl.xtb -+++ b/chrome/app/resources/google_chrome_strings_sl.xtb -@@ -84,7 +84,7 @@ Nekatere funkcije morda niso na voljo in spremembe nastavitev ne bodo shranjene. - Profil v Chromu s tem računom že obstaja. - Zdaj ste prijavljeni v Chrome. - Upravitelj opravil --O brskalniku Chrome -+O brskalniku Browser - Šibka gesla je preprosto ugotoviti. Chromu omogočite, da ustvari zapletena gesla za vas in jih shrani. - Chrome se ni posodobil, prišlo je do napake. Odpravite težave s posodobitvijo Chroma in neuspelimi posodobitvami Chroma. - – Prijava v omrežje – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sq.xtb b/chrome/app/resources/google_chrome_strings_sq.xtb -index 40dba24399f4..00e4b2196880 100644 ---- a/chrome/app/resources/google_chrome_strings_sq.xtb -+++ b/chrome/app/resources/google_chrome_strings_sq.xtb -@@ -83,7 +83,7 @@ Disa funksione mund të mos ofrohen dhe ndryshimet në preferenca nuk do të ruh - Ekziston tashmë një profil i Chrome me këtë llogari - Je i identifikuar në Chrome! - Menaxheri i detyrave --Rreth Chrome -+Rreth Browser - Fjalëkalimet e dobëta mund të gjenden me lehtësi. Lejoje Chrome të krijojë dhe mbajë mend fjalëkalime të forta për ty. - Chrome nuk u përditësua. Ndodhi një gabim. Rregullo problemet e përditësimit të Chrome dhe përditësimet e dështuara. - - identifikimi në rrjet - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb -index 8ff307a438f4..e82eb2832a45 100644 ---- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb -+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb -@@ -84,7 +84,7 @@ Neke funkcije su možda nedostupne i promene podešavanja neće biti sačuvane. - Chrome profil sa ovim nalogom već postoji - Prijavljeni ste u Chrome! - Menadžer zadataka --O Chrome pregledaču -+O Browser pregledaču - Slabe lozinke lako mogu da se pogode. Dozvolite da Chrome pravi i pamti jake lozinke za vas. - Chrome se nije ažurirao. Došlo je do greške. Otklonite probleme sa ažuriranjem Chrome-a i neuspela ažuriranja. - – prijavljivanje na mrežu – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb -index 83d76f184886..7d4eecfde453 100644 ---- a/chrome/app/resources/google_chrome_strings_sr.xtb -+++ b/chrome/app/resources/google_chrome_strings_sr.xtb -@@ -84,7 +84,7 @@ - Chrome профил са овим налогом већ постоји - Пријављени сте у Chrome! - Менаџер задатака --О Chrome прегледачу -+О Browser прегледачу - Слабе лозинке лако могу да се погоде. Дозволите да Chrome прави и памти јаке лозинке за вас. - Chrome се није ажурирао. Дошло је до грешке. Отклоните проблеме са ажурирањем Chrome-а и неуспела ажурирања. - – пријављивање на мрежу – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb -index 15b9b199ce0b..33c7b71b59c1 100644 ---- a/chrome/app/resources/google_chrome_strings_sv.xtb -+++ b/chrome/app/resources/google_chrome_strings_sv.xtb -@@ -84,7 +84,7 @@ Vissa funktioner kanske inte är tillgängliga och ändringar i inställningarna - Det finns redan en Chrome-profil med detta konto - Du är inloggad i Chrome. - Aktivitetshanteraren --Om Chrome -+Om Browser - Svaga lösenord är lätta att lista ut. Låt Chrome skapa och spara starka lösenord åt dig. - Ett fel uppstod och Chrome uppdaterades inte. Åtgärda uppdateringsproblem och misslyckade uppdateringar i Chrome. - – nätverksinloggning – Chrome -diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb -index b4c97b8c217d..f521759d3ad0 100644 ---- a/chrome/app/resources/google_chrome_strings_sw.xtb -+++ b/chrome/app/resources/google_chrome_strings_sw.xtb -@@ -84,7 +84,7 @@ Baadhi ya vipengele huenda visipatikane na mabadiliko katika mapendeleo hayatahi - Tayari kuna wasifu kwenye Chrome unaotumia akaunti hii - Umeingia kwenye Chrome! - Kidhibiti cha Shughuli --Kuhusu Chrome -+Kuhusu Browser - Ni rahisi kukisia manenosiri dhaifu. Iruhusu Chrome itunge na ikumbuke manenosiri thabiti kwa niaba yako. - Chrome haijasasishwa, hitilafu fulani imetokea. Rekebisha matatizo ya sasisho la Chrome na masasisho ambayo hayakuwekwa. - - Kuingia katika Akaunti ya Mtandao - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb -index 1765577e7775..b827235172c1 100644 ---- a/chrome/app/resources/google_chrome_strings_ta.xtb -+++ b/chrome/app/resources/google_chrome_strings_ta.xtb -@@ -80,7 +80,7 @@ - இந்தக் கணக்கின் மூலம் ஏற்கெனவே ஒரு Chrome சுயவிவரம் உருவாக்கப்பட்டுள்ளது - Chrome இல் உள்நுழைந்துள்ளீர்கள்! - செயல் நிர்வாகி --Chrome அறிமுகம் -+Browser அறிமுகம் - வலுவற்ற கடவுச்சொற்களை யூகிப்பது எளிது என்பதால் வலிமையான கடவுச்சொற்களை உருவாக்கவும் நினைவில்கொள்ளவும் Chromeமை அனுமதியுங்கள். - ஏதோ தவறாகிவிட்டதால் Chrome புதுப்பிக்கப்படவில்லை. Chrome புதுப்பிப்பு குறித்த சிக்கல்களையும் தோல்வியடைந்த புதுப்பிப்புகளையும் சரிசெய்யவும். - - நெட்வொர்க் உள்நுழைவு - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb -index 4790abdae00d..1b0955c7e715 100644 ---- a/chrome/app/resources/google_chrome_strings_te.xtb -+++ b/chrome/app/resources/google_chrome_strings_te.xtb -@@ -80,7 +80,7 @@ - ఈ ఖాతాతో ఇప్పటికే ఒక Chrome ప్రొఫైల్ ఉంది - మీరు Chromeకు సైన్ ఇన్ చేసారు! - విధి సంచాలకులు --Chrome పరిచయం -+Browser పరిచయం - బలహీనమైన పాస్‌వర్డ్‌లను ఊహించడం చాలా సులభం. మీ కోసం శక్తివంతమైన పాస్‌వర్డ్‌లను క్రియేట్ చేయడం, గుర్తుంచుకోవడం చేయడానికి Chromeను అనుమతించండి. - Chrome అప్‌డేట్ అవ్వలేదు, ఏదో తప్పు జరిగింది. Chrome అప్‌డేట్ సమస్యలు, విఫలమైన అప్‌డేట్‌లను పరిష్కరించండి. - - నెట్‌వర్క్ సైన్ ఇన్ - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb -index 43b41abd7ab4..5f294b3a3a52 100644 ---- a/chrome/app/resources/google_chrome_strings_th.xtb -+++ b/chrome/app/resources/google_chrome_strings_th.xtb -@@ -79,7 +79,7 @@ - มีโปรไฟล์ Chrome ที่ใช้บัญชีนี้อยู่แล้ว - คุณได้ลงชื่อเข้าใช้ Chrome แล้ว! - ตัวจัดการงาน --เกี่ยวกับ Chrome -+เกี่ยวกับ Browser - รหัสผ่านที่ไม่รัดกุมนั้นคาดเดาได้ง่าย ให้ Chrome สร้างและจดจำรหัสผ่านที่รัดกุมให้คุณ - Chrome ไม่ได้อัปเดตเนื่องจากเกิดข้อผิดพลาด โปรดแก้ปัญหาการอัปเดต Chrome และการอัปเดตที่ไม่สำเร็จ - - หน้าลงชื่อเข้าใช้ของเครือข่าย - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb -index 3e4ee4913e22..f44664f9df28 100644 ---- a/chrome/app/resources/google_chrome_strings_tr.xtb -+++ b/chrome/app/resources/google_chrome_strings_tr.xtb -@@ -79,7 +79,7 @@ - Bu hesaba sahip bir Chrome profili zaten var - Chrome'da oturum açtınız! - Görev Yöneticisi --Chrome hakkında -+Browser hakkında - Zayıf şifrelerin tahmin edilmesi kolaydır. Chrome'un sizin için güçlü şifre oluşturup bu şifreleri hatırlamasına izin verin. - Chrome güncellenmedi. Bir sorun oluştu. Chrome güncelleme sorunlarını ve başarısız güncellemeleri düzeltin. - - Ağda Oturum Açın - Chrome -@@ -297,4 +297,4 @@ Bazı özellikler kullanılamayabilir. Lütfen farklı bir profil dizini belirti - Senkronizasyonu başlatmak için Chrome'u güncelleyin - Chrome öğelerinize tüm cihazlarınızda erişmek için oturum açın ve senkronizasyonu etkinleştirin. - Google Chrome varsayılan tarayıcınız oldu -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb -index a7f31c04917b..cafee1eeeae8 100644 ---- a/chrome/app/resources/google_chrome_strings_uk.xtb -+++ b/chrome/app/resources/google_chrome_strings_uk.xtb -@@ -80,7 +80,7 @@ - Профіль Chrome із цим обліковим записом уже існує - Ви ввійшли в Chrome. - Диспетчер завдань --Про Chrome -+Про Browser - Ненадійні паролі можна легко вгадати. Тому радимо створювати й зберігати безпечні паролі в Chrome. - Не вдалось оновити веб-переглядач Chrome. Вирішіть проблеми з оновленням Chrome. - – Вхід у мережу – Chrome -@@ -296,4 +296,4 @@ - Щоб почати синхронізацію, оновіть Chrome - Щоб мати доступ до своїх даних Chrome на всіх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію. - Google Chrome – ваш веб-переглядач за умовчанням -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_ur.xtb b/chrome/app/resources/google_chrome_strings_ur.xtb -index 1ba4742acf0d..9b7299124e6b 100644 ---- a/chrome/app/resources/google_chrome_strings_ur.xtb -+++ b/chrome/app/resources/google_chrome_strings_ur.xtb -@@ -83,7 +83,7 @@ - ‏اس اکاؤنٹ کے ساتھ ایک Chrome پروفائل پہلے سے موجود ہے - ‏آپ Chrome میں سائن ان ہیں! - ٹاسک مینیجر --‏Chrome کے بارے میں -+‏Browser کے بارے میں - ‏کمزور پاس ورڈز کا اندازہ لگانا آسان ہوتا ہے۔ Chrome کو آپ کے لیے مضبوط پاس ورڈز تخلیق کرنے اور یاد رکھنے دیں۔ - ‏Chrome اپ ڈیٹ نہیں ہوا، کچھ غلط ہو گیا۔ Chrome اپ ڈیٹ کی دشواریوں اور ناکام اپ ڈیٹس کو درست کریں۔ - - نیٹ ورک سائن ان - Chrome -@@ -303,4 +303,4 @@ Google Chrome آپ کی ترتیبات کو بازیافت کرنے سے قاص - ‏مطابقت پذیری شروع کرنے کیلئے Chrome کو اپ ڈیٹ کریں - ‏اپنے تمام آلات پر اپنی Chrome کی چیزوں تک رسائی حاصل کرنے کیلئے، سائن ان کریں اور پھر مطابقت پذیری کو آن کریں۔ - ‏Google Chrome آپ کا ڈیفالٹ براؤزر ہے -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb -index d7e0e9eb981f..a219769d724d 100644 ---- a/chrome/app/resources/google_chrome_strings_uz.xtb -+++ b/chrome/app/resources/google_chrome_strings_uz.xtb -@@ -81,7 +81,7 @@ - Bu hisob bilan Chrome profili yaratilgan - Chrome brauzeriga xush kelibsiz! - Vazifalar boshqaruvi --Chrome haqida -+Browser haqida - Kuchsiz parollar oson topiladi. Chrome siz uchun ishonchli parol yaratsin va eslab qolsin. - Notanish xatolik tufayli Chrome yangilanmadi. Chromedagi yangilanish muammolari va xatoliklarni tuzatish. - - Tarmoqqa kirish - Chrome -@@ -301,4 +301,4 @@ Google Chrome sozlamalaringizni qaytadan tiklay olmadi. - Sinxronizatsiyani boshlash uchun Chrome brauzerini yangilang - Chrome brauzeridagi axborotlardan barcha qurilmalaringizda foydalanish uchun hisobingizga kiring va sinxronizatsiyani yoqing. - Qurilmangizdagi asosiy brauzer – Google Chrome. -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb -index 59e46be4ca05..2b93efac28fd 100644 ---- a/chrome/app/resources/google_chrome_strings_vi.xtb -+++ b/chrome/app/resources/google_chrome_strings_vi.xtb -@@ -82,7 +82,7 @@ - Đã có một hồ sơ trên Chrome sử dụng tài khoản này - Bạn đã đăng nhập vào Chrome! - Trình quản lý tác vụ --Giới thiệu về Chrome -+Giới thiệu về Browser - Mật khẩu yếu thường dễ đoán. Chrome có thể tạo mật khẩu mạnh và ghi nhớ mật khẩu này cho bạn. - Đã xảy ra lỗi nên Chrome chưa cập nhật được. Hãy khắc phục các vấn đề cập nhật và các bản cập nhật không thành công của Chrome. - – Đăng nhập vào mạng – Chrome -@@ -300,4 +300,4 @@ Một số tính năng có thể không khả dụng. Vui lòng chỉ định th - Cập nhật Chrome để bắt đầu đồng bộ hóa - Để truy cập vào nội dung của bạn trên Chrome bằng mọi thiết bị, hãy đăng nhập rồi bật tính năng đồng bộ hóa. - Google Chrome là trình duyệt mặc định của bạn -- -\ No newline at end of file -+ -diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb -index 0bd5d4204de3..72dac804467b 100644 ---- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb -+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb -@@ -79,7 +79,7 @@ - 已有一份使用此帐号创建的 Chrome 个人资料 - 您已登录 Chrome! - 任务管理器 --关于 Chrome -+关于 Browser - 安全系数低的密码容易被人猜到。不妨让 Chrome 为您创建并记住安全系数高的密码 - Chrome 未能更新,因为出了点问题。请解决导致 Chrome 更新失败的问题 - - 网络登录 - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb -index 2c16623b4bb4..faa45b65c68f 100644 ---- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb -+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb -@@ -83,7 +83,7 @@ - 此帳戶已有 Chrome 設定檔 - 您已登入 Chrome! - 工作管理員 --關於 Chrome -+關於 Browser - 安全性弱的密碼很容易被猜到。讓 Chrome 為您建立並記住安全性強的密碼 - 發生錯誤,Chrome 未能更新。請修正 Chrome 更新問題與更新失敗問題。 - - 網絡登入 - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb -index 83d0d0ee8fb2..1ad3547bccff 100644 ---- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb -+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb -@@ -79,7 +79,7 @@ - 該帳戶已有相關聯的 Chrome 設定檔 - 你已登入 Chrome! - 工作管理員 --關於 Chrome -+關於 Browser - 低強度密碼很容易讓有心人士猜中,請讓 Chrome 為你建立一組高強度密碼,並儲存在 Chrome 中 - 發生錯誤,Chrome 未能更新。請修正 Chrome 更新問題與更新失敗項目。 - - 網路登入 - Chrome -diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb -index 0d9a60de89b9..563328c2a558 100644 ---- a/chrome/app/resources/google_chrome_strings_zu.xtb -+++ b/chrome/app/resources/google_chrome_strings_zu.xtb -@@ -84,7 +84,7 @@ Ezinye izici kungenzeka zingabi khona futhi izinguquko kokuncamelayo ngeke zize - Iphrofayela ye-Chrome enale akhawunti isikhona kakade - Ungene ngemvume ku-Chrome! - Isiphathi somsebenzi --Mayelana ne-Chrome -+Mayelana ne-Browser - Amaphasiwedi angaqinile aqageleka kalula. Vumela i-Chrome ikudalele futhi ikhumbule amaphasiwedi aqinile. - I-Chrome ayibuyekezekanga, kunokuthile okungahambanga kahle. Lungisa izinkinga zokubuyekaza kwe-Chrome nezibuyekezo ezihlulekile. - - Inethiwekhi Yokungena ngemvume - i-Chrome -@@ -304,4 +304,4 @@ I-Google Chrome ayikwazi ukuthola izilungiselelo zakho. - Buyekeza i-Chrome ukuze uqale ukuvumelanisa - Ukuze ufinyelele ezintweni zakho ze-Chrome kuwo wonke amadivayisi wakho, ngena ngemvume, bese uvula ukuvumelanisa. - I-Google Chrome kuyisphequluli sakho esizenzakalelayo -- -\ No newline at end of file -+ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index d79b650be11e..973fb74779db 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb @@ -1301,7 +132,7 @@ index 7c8e9c24b3b3..4208531bf641 100644 የትር እና የመስኮት አቋራጮች Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb -index 4eb7a595adb2..08798ee13267 100644 +index 1562cc1511cb..e4a19200a82d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb @@ -273,7 +273,7 @@ @@ -1578,7 +409,7 @@ index 892c18dab2fa..8436b1e47a75 100644 Tab and window shortcuts Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb -index fa0e6c283ec2..f89ed6adc21f 100644 +index 0af8b2ddef34..9ec63c6d3e1c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb @@ -273,7 +273,7 @@ Para buscar una palabra, mantenla presionada. Si quieres definir mejor la búsqu @@ -1600,7 +431,7 @@ index fa0e6c283ec2..f89ed6adc21f 100644 Accesos directos a ventanas y pestañas Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb -index 9282ddedf39c..18f53af83df8 100644 +index 7af8987d45bb..ab9e9a4c3335 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb @@ -273,7 +273,7 @@ Mantén pulsada cualquier palabra para buscarla. Para acotar la búsqueda, selec @@ -1644,7 +475,7 @@ index f0434dff7039..76a56ff5144d 100644 Vahelehe ja akna otseteed Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb -index d0c5de78ef1c..b8c0b318cd12 100644 +index 928316efdbe6..8f7e1eba099b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb @@ -273,7 +273,7 @@ Eduki sakatuta bilatu nahi duzun hitza. Bilaketa mugatzeko, hautatu hitz gehiago @@ -1666,7 +497,7 @@ index d0c5de78ef1c..b8c0b318cd12 100644 Fitxetarako eta leihoetarako lasterbideak Ezagutu diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb -index c3e4199ec56a..24b2b252ab61 100644 +index 774355eb8b88..87e7d79f6f6f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb @@ -273,7 +273,7 @@ @@ -1688,7 +519,7 @@ index c3e4199ec56a..24b2b252ab61 100644 میان‌برهای پنجره و برگه کشف کردن diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb -index 6b0674d18a60..fce78045eeb6 100644 +index cd65d782b707..36e738ae3519 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb @@ -273,7 +273,7 @@ Hae sanaa koskettamalla sitä pitkään. Jos haluat tarkentaa hakuasi, valitse e @@ -1703,7 +534,7 @@ index 6b0674d18a60..fce78045eeb6 100644 @@ -311,7 +311,7 @@ Hae sanaa koskettamalla sitä pitkään. Jos haluat tarkentaa hakuasi, valitse e Ilmoitukset Poistu incognito-tilasta - Peruuta synkronointi + Peru synkronointi -Chromen etusivu +Browsern etusivu Lisäasetukset-painiketta klikkaamalla voit katsoa, kuinka paljon dataa olet säästänyt. @@ -1974,7 +805,7 @@ index f9a653ff4544..b91e092f12d3 100644 Scorciatoie di finestre e schede Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb -index 4fa73a66cb39..efa5d2f3f162 100644 +index 4fa73a66cb39..6502b0ddb172 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb @@ -273,7 +273,7 @@ @@ -1995,13 +826,6 @@ index 4fa73a66cb39..efa5d2f3f162 100644 בעזרת הלחצן 'אפשרויות נוספות' אפשר לבדוק את החיסכון בצריכת נתונים מקשי קיצור לכרטיסיות ולחלונות Discover -@@ -1230,4 +1230,4 @@ - סגירת כל הכרטיסיות - כללי - תפריט כרטיס הפיד סגור -- -\ No newline at end of file -+ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb index 50fea67090e3..3f3d6e2cfb06 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb @@ -2047,7 +871,7 @@ index cb104526353b..9fa0e3940b40 100644 ჩანართებისა და ფანჯრების მალსახმობები Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb -index dee88eb6bacc..ac3865b0373a 100644 +index 219d05a45e2c..48edd0a69f16 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb @@ -273,7 +273,7 @@ @@ -2355,7 +1179,7 @@ index 2ae2d5ce79a1..3811dd745cd9 100644 တဘ်နှင့် ဝင်းဒိုးဖြတ်လမ်းလင့်ခ်များ Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb -index 8efb5548df54..47548677dcfb 100644 +index b4eca747b4db..d95d50f1e250 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb @@ -273,7 +273,7 @@ @@ -2610,7 +1434,7 @@ index 7c34c39d8296..2706e785c003 100644 Keď bude tento súbor pripravený, zobrazí sa upozornenie Google môže pomocou vašej histórie prispôsobiť Vyhľadávanie a ďalšie služby Googlu diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb -index 31ead09d68f6..cb225c3c17b6 100644 +index 5e0cd0db5b4f..77480376c67e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb @@ -273,7 +273,7 @@ Dotaknite se poljubne besede in jo pridržite, če želite iskati. Če želite i @@ -2887,7 +1711,7 @@ index 023818005c36..86fc5686b264 100644 Varaq va oynalar bilan ishlash Discover diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb -index 88bfd0eec429..a35632e57b1c 100644 +index 3d7732c216ff..b0f10ef7505d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb @@ -273,7 +273,7 @@ Chạm và giữ từ bất kỳ để tìm kiếm. Để điều chỉnh nội diff --git a/build/patches/e/e-remove-string-google-from-other-services.patch b/build/patches/e/e-remove-string-google-from-other-services.patch index 7b9ed288..a690479a 100644 --- a/build/patches/e/e-remove-string-google-from-other-services.patch +++ b/build/patches/e/e-remove-string-google-from-other-services.patch @@ -1,91 +1,11 @@ -From e1e4fbce98d5f76c6e9e664f9be208c88797f391 Mon Sep 17 00:00:00 2001 +From bf9b921dbcdcad7eac70d7795c9342404433c96b Mon Sep 17 00:00:00 2001 From: Aayush Gupta -Date: Wed, 31 Mar 2021 08:52:00 +0200 +Date: Mon, 3 May 2021 11:38:11 +0200 Subject: [PATCH] chrome: app: Remove Google's reference from the other services -- They are not dependent upon Google - Signed-off-by: Aayush Gupta --- - chrome/app/resources/generated_resources_af.xtb | 2 +- - chrome/app/resources/generated_resources_am.xtb | 2 +- - chrome/app/resources/generated_resources_ar.xtb | 2 +- - chrome/app/resources/generated_resources_as.xtb | 2 +- - chrome/app/resources/generated_resources_az.xtb | 2 +- - chrome/app/resources/generated_resources_be.xtb | 2 +- - chrome/app/resources/generated_resources_bg.xtb | 2 +- - chrome/app/resources/generated_resources_bn.xtb | 2 +- - chrome/app/resources/generated_resources_bs.xtb | 2 +- - chrome/app/resources/generated_resources_ca.xtb | 2 +- - chrome/app/resources/generated_resources_cs.xtb | 2 +- - chrome/app/resources/generated_resources_da.xtb | 2 +- - chrome/app/resources/generated_resources_de.xtb | 2 +- - chrome/app/resources/generated_resources_el.xtb | 2 +- - chrome/app/resources/generated_resources_en-GB.xtb | 2 +- - chrome/app/resources/generated_resources_es-419.xtb | 2 +- - chrome/app/resources/generated_resources_es.xtb | 2 +- - chrome/app/resources/generated_resources_et.xtb | 2 +- - chrome/app/resources/generated_resources_eu.xtb | 2 +- - chrome/app/resources/generated_resources_fa.xtb | 2 +- - chrome/app/resources/generated_resources_fi.xtb | 2 +- - chrome/app/resources/generated_resources_fil.xtb | 2 +- - chrome/app/resources/generated_resources_fr-CA.xtb | 2 +- - chrome/app/resources/generated_resources_fr.xtb | 2 +- - chrome/app/resources/generated_resources_gl.xtb | 2 +- - chrome/app/resources/generated_resources_gu.xtb | 2 +- - chrome/app/resources/generated_resources_hi.xtb | 2 +- - chrome/app/resources/generated_resources_hr.xtb | 2 +- - chrome/app/resources/generated_resources_hu.xtb | 2 +- - chrome/app/resources/generated_resources_hy.xtb | 2 +- - chrome/app/resources/generated_resources_id.xtb | 2 +- - chrome/app/resources/generated_resources_is.xtb | 2 +- - chrome/app/resources/generated_resources_it.xtb | 2 +- - chrome/app/resources/generated_resources_iw.xtb | 2 +- - chrome/app/resources/generated_resources_ja.xtb | 2 +- - chrome/app/resources/generated_resources_ka.xtb | 2 +- - chrome/app/resources/generated_resources_kk.xtb | 2 +- - chrome/app/resources/generated_resources_km.xtb | 2 +- - chrome/app/resources/generated_resources_kn.xtb | 2 +- - chrome/app/resources/generated_resources_ko.xtb | 2 +- - chrome/app/resources/generated_resources_ky.xtb | 2 +- - chrome/app/resources/generated_resources_lo.xtb | 2 +- - chrome/app/resources/generated_resources_lt.xtb | 2 +- - chrome/app/resources/generated_resources_lv.xtb | 2 +- - chrome/app/resources/generated_resources_mk.xtb | 2 +- - chrome/app/resources/generated_resources_ml.xtb | 2 +- - chrome/app/resources/generated_resources_mn.xtb | 2 +- - chrome/app/resources/generated_resources_mr.xtb | 2 +- - chrome/app/resources/generated_resources_ms.xtb | 2 +- - chrome/app/resources/generated_resources_my.xtb | 2 +- - chrome/app/resources/generated_resources_ne.xtb | 2 +- - chrome/app/resources/generated_resources_nl.xtb | 2 +- - chrome/app/resources/generated_resources_no.xtb | 2 +- - chrome/app/resources/generated_resources_or.xtb | 2 +- - chrome/app/resources/generated_resources_pa.xtb | 2 +- - chrome/app/resources/generated_resources_pl.xtb | 2 +- - chrome/app/resources/generated_resources_pt-BR.xtb | 2 +- - chrome/app/resources/generated_resources_pt-PT.xtb | 2 +- - chrome/app/resources/generated_resources_ro.xtb | 2 +- - chrome/app/resources/generated_resources_ru.xtb | 2 +- - chrome/app/resources/generated_resources_si.xtb | 2 +- - chrome/app/resources/generated_resources_sq.xtb | 2 +- - chrome/app/resources/generated_resources_sr-Latn.xtb | 2 +- - chrome/app/resources/generated_resources_sr.xtb | 2 +- - chrome/app/resources/generated_resources_sv.xtb | 2 +- - chrome/app/resources/generated_resources_sw.xtb | 2 +- - chrome/app/resources/generated_resources_ta.xtb | 2 +- - chrome/app/resources/generated_resources_te.xtb | 2 +- - chrome/app/resources/generated_resources_th.xtb | 2 +- - chrome/app/resources/generated_resources_tr.xtb | 2 +- - chrome/app/resources/generated_resources_uk.xtb | 2 +- - chrome/app/resources/generated_resources_ur.xtb | 2 +- - chrome/app/resources/generated_resources_uz.xtb | 2 +- - chrome/app/resources/generated_resources_vi.xtb | 2 +- - chrome/app/resources/generated_resources_zh-CN.xtb | 2 +- - chrome/app/resources/generated_resources_zh-HK.xtb | 2 +- - chrome/app/resources/generated_resources_zh-TW.xtb | 2 +- - chrome/app/resources/generated_resources_zu.xtb | 2 +- .../android/strings/translations/android_chrome_strings_af.xtb | 2 +- .../android/strings/translations/android_chrome_strings_am.xtb | 2 +- .../android/strings/translations/android_chrome_strings_ar.xtb | 2 +- @@ -164,1022 +84,8 @@ Signed-off-by: Aayush Gupta .../strings/translations/android_chrome_strings_zh-HK.xtb | 2 +- .../strings/translations/android_chrome_strings_zh-TW.xtb | 2 +- .../android/strings/translations/android_chrome_strings_zu.xtb | 2 +- - 156 files changed, 156 insertions(+), 156 deletions(-) + 78 files changed, 78 insertions(+), 78 deletions(-) -diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb -index 205108ed6d32..d3c959ede186 100644 ---- a/chrome/app/resources/generated_resources_af.xtb -+++ b/chrome/app/resources/generated_resources_af.xtb -@@ -59,7 +59,7 @@ - Bepaal die frekwensie waarteen die skerm opdateer - Dis amper tyd vir 'n blaaskans - Geskep --Ander Google-dienste -+Ander -dienste - 'n Ander program op jou rekenaar het 'n uitbreiding bygevoeg wat dalk die manier sal verander waarop Chrome werk. - - -diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb -index 0ce7e0a25e62..cf1b890ec9d3 100644 ---- a/chrome/app/resources/generated_resources_am.xtb -+++ b/chrome/app/resources/generated_resources_am.xtb -@@ -59,7 +59,7 @@ - ማያ ገጹ የሚዘመንበት ተደጋጋሚነትን ይወስናል - የእረፍት ጊዜ ሊደርስ ነው - ተፈጥሯል --ሌሎች የGoogle አገልግሎቶች -+ሌሎች የ አገልግሎቶች - በኮምፒውተርዎ ላይ ያለ ሌላ ፕሮግራም Chrome የሚሰራበት መንገድ ሊቀይር የሚችል አንድ ቅጥያ አክሏል። - - -diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb -index 3c576367b740..571b9139c9aa 100644 ---- a/chrome/app/resources/generated_resources_ar.xtb -+++ b/chrome/app/resources/generated_resources_ar.xtb -@@ -59,7 +59,7 @@ - تحدّد معدّل تحديثات الشاشة - سيتم قفل الجهاز بعد قليل - تم الإنشاء --‏خدمات Google الأخرى -+‏خدمات الأخرى - ‏أضاف برنامج آخر بجهاز الكمبيوتر إضافة قد تؤدي إلى تغيير طريقة عمل Chrome. - - -diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb -index 217e870d5500..ed26e5ae9c23 100644 ---- a/chrome/app/resources/generated_resources_as.xtb -+++ b/chrome/app/resources/generated_resources_as.xtb -@@ -59,7 +59,7 @@ - স্ক্ৰীনখন আপডে’ট হোৱা সঘনতা নিৰ্দিষ্ট কৰে - ডিভাইচ লক হওঁ হওঁ - সৃষ্টি কৰা হ’ল --অন্য Google সেৱা -+অন্য সেৱা - আপোনাৰ কম্পিউটাৰৰ অন্য প্ৰ’গামে যোগ কৰা এক্সটেনশ্বনে Chrome কার্যপ্ৰণালী সলনি কৰিব পাৰে। - - -diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb -index d5e2daf3740e..fefd66feb41e 100644 ---- a/chrome/app/resources/generated_resources_az.xtb -+++ b/chrome/app/resources/generated_resources_az.xtb -@@ -59,7 +59,7 @@ - Ekranın güncəllənmə tezliyini təyin edir - Fasilə vaxtıdır - Yaradılıb --Digər Google xidmətləri -+Digər xidmətləri - Kompüterinizdə başqa bir proqram Chrome'un necə işlədiyini dəyişdirən artırma əlavə etdi. - Alternativ brauzerdə saniyəyə açılacaq - Data Şifrələnməsi -diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb -index 8452a7ceb6b0..0538418458c6 100644 ---- a/chrome/app/resources/generated_resources_be.xtb -+++ b/chrome/app/resources/generated_resources_be.xtb -@@ -59,7 +59,7 @@ - Вызначае частату абнаўлення экрана - Набліжаецца час блакіроўкі - Створаны --Іншыя сэрвісы Google -+Іншыя сэрвісы - Іншая праграма на камп'ютары дадала пашырэнне, якое можа змяніць працу Chrome. - - -diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb -index 8027be87bcce..1fb8e4ee527d 100644 ---- a/chrome/app/resources/generated_resources_bg.xtb -+++ b/chrome/app/resources/generated_resources_bg.xtb -@@ -59,7 +59,7 @@ - Определя честотата на актуализиране на екрана - Скоро ще е време за почивка - Дата на създаване --Други услуги на Google -+Други услуги на - Друга програма на компютъра ви добави разширение, което може да промени начина на работа на Chrome. - - -diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb -index 24d80ebc9e7a..54be27eb81ad 100644 ---- a/chrome/app/resources/generated_resources_bn.xtb -+++ b/chrome/app/resources/generated_resources_bn.xtb -@@ -59,7 +59,7 @@ - স্ক্রিন আপডেট হওয়ার ফ্রিকোয়েন্সি নির্ধারণ করে - বিরতির সময় হতে চলেছে - তৈরি হয়েছে --Google-এর অন্যান্য পরিষেবা -+-এর অন্যান্য পরিষেবা - আপনার কম্পিউটারের অন্য একটি প্রোগ্রাম একটি এক্সটেনশন যোগ করেছে যা Chrome-এর কাজ করার ধরন পাল্টে দিতে পারে। - - -diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb -index 2960321a2f19..29f5250d6470 100644 ---- a/chrome/app/resources/generated_resources_bs.xtb -+++ b/chrome/app/resources/generated_resources_bs.xtb -@@ -59,7 +59,7 @@ - Određuje frekvenciju ažuriranja ekrana - Uskoro će vrijeme za odmor - Kreirano --Ostale Googleove usluge -+Ostale ove usluge - Drugi program na vašem računaru je dodao ekstenziju koja može promijeniti rad Chromea. - - -diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb -index 301842b1b414..cd5e1310055c 100644 ---- a/chrome/app/resources/generated_resources_ca.xtb -+++ b/chrome/app/resources/generated_resources_ca.xtb -@@ -59,7 +59,7 @@ - Determina la freqüència d'actualització de la pantalla - Ja gairebé és l'hora de fer una pausa - Creada --Altres serveis de Google -+Altres serveis de - Un altre programa de l'ordinador ha afegit una extensió que pot canviar el funcionament de Chrome. - - -diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb -index 33489297722f..7220e5cdb9f3 100644 ---- a/chrome/app/resources/generated_resources_cs.xtb -+++ b/chrome/app/resources/generated_resources_cs.xtb -@@ -59,7 +59,7 @@ - Určuje frekvenci obnovování obrazovky - Brzy bude čas na přestávku - Vytvořeno --Další služby Google -+Další služby - Jiný program ve vašem počítači nainstaloval rozšíření, které může měnit funkce Chromu. - - -diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb -index 2eab227c13bd..26286e89c9a1 100644 ---- a/chrome/app/resources/generated_resources_da.xtb -+++ b/chrome/app/resources/generated_resources_da.xtb -@@ -59,7 +59,7 @@ - Fastlægger frekvensen for skærmopdateringer - Det er snart tid til en pause - Oprettet --Andre Google-tjenester -+Andre -tjenester - Et andet program på din computer har tilføjet en udvidelse, som kan ændre måden, Chrome fungerer på. - - -diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb -index 571c5313bbfe..303e3b5eb3c9 100644 ---- a/chrome/app/resources/generated_resources_de.xtb -+++ b/chrome/app/resources/generated_resources_de.xtb -@@ -59,7 +59,7 @@ - Bestimmt, wie oft das sichtbare Bild auf dem Bildschirm neu aufgebaut wird - Bald ist es Zeit für eine Pause - Erstellt --Weitere Google-Dienste -+Weitere -Dienste - Ein anderes Programm auf Ihrem Computer hat eine Erweiterung hinzugefügt, die sich möglicherweise auf die Funktionsweise von Chrome auswirkt. - - -diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb -index 0033b01f8c11..c2647e1284f3 100644 ---- a/chrome/app/resources/generated_resources_el.xtb -+++ b/chrome/app/resources/generated_resources_el.xtb -@@ -59,7 +59,7 @@ - Καθορίζει τη συχνότητα ενημέρωσης της οθόνης - Πλησιάζει η ώρα για διάλειμμα - Δημιουργήθηκε --Άλλες υπηρεσίες Google -+Άλλες υπηρεσίες - Κάποιο άλλο πρόγραμμα στον υπολογιστή σας πρόσθεσε μια επέκταση, η οποία ενδέχεται να αλλάξει τον τρόπο λειτουργίας του Chrome. - - -diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb -index 068453087671..c100f70dfa90 100644 ---- a/chrome/app/resources/generated_resources_en-GB.xtb -+++ b/chrome/app/resources/generated_resources_en-GB.xtb -@@ -59,7 +59,7 @@ - Determines the frequency that the screen updates - Almost time for a break - Created --Other Google services -+Other services - Another program on your computer added an extension that may change the way Chrome works. - - -diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb -index f53185b23fe0..ef7513de0f89 100644 ---- a/chrome/app/resources/generated_resources_es-419.xtb -+++ b/chrome/app/resources/generated_resources_es-419.xtb -@@ -59,7 +59,7 @@ - Determina la frecuencia con la que se actualiza la pantalla - Casi es hora de un descanso - Creada --Otros servicios de Google -+Otros servicios de - Otro programa en tu computadora agregó una extensión que puede cambiar el funcionamiento de Chrome. - - -diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb -index 15769f2eb033..ae4ac2bc207e 100644 ---- a/chrome/app/resources/generated_resources_es.xtb -+++ b/chrome/app/resources/generated_resources_es.xtb -@@ -59,7 +59,7 @@ - Determina la frecuencia con la que se actualiza la pantalla - Ya casi es la hora de hacer un descanso - Creada --Otros servicios de Google -+Otros servicios de - Otro programa de tu ordenador ha añadido una extensión que puede cambiar el funcionamiento de Chrome. - - -diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb -index 4584bc41a42f..0c1cbcba5dae 100644 ---- a/chrome/app/resources/generated_resources_et.xtb -+++ b/chrome/app/resources/generated_resources_et.xtb -@@ -59,7 +59,7 @@ - Määrab ekraanikuva värskendamissageduse - Pausiaeg on peagi käes - Loodud --Muud Google'i teenused -+Muud 'i teenused - Muu arvutis olev programm lisas laienduse, mis võib muuta Chrome'i tööd. - - -diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb -index f050b5f71787..ced9161446c0 100644 ---- a/chrome/app/resources/generated_resources_eu.xtb -+++ b/chrome/app/resources/generated_resources_eu.xtb -@@ -59,7 +59,7 @@ - Pantaila eguneratzeko maiztasuna zehazten du - Atseden hartzeko garaia izango da laster - Sortze-data --Google-ren beste zerbitzu batzuk -+-ren beste zerbitzu batzuk - Ordenagailuko beste programa batek Chrome-ren funtzionamenduari eragin diezaiokeen luzapen bat gehitu du. - - -diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb -index e6d030b0bac7..628a9b1ea4fb 100644 ---- a/chrome/app/resources/generated_resources_fa.xtb -+++ b/chrome/app/resources/generated_resources_fa.xtb -@@ -59,7 +59,7 @@ - بسامد به‌روزرسانی‌های صفحه‌نمایش را مشخص می‌کند - تقریباً زمان استراحت است - ایجاد شد --‏سایر سرویس‌های Google -+‏سایر سرویس‌های - ‏برنامه دیگری در رایانه شما یک افزونه اضافه کرده است که ممکن است نحوه کارکرد Chrome را تغییر دهد. - - -diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb -index d354bedc8ecb..ae2eb4cf8790 100644 ---- a/chrome/app/resources/generated_resources_fi.xtb -+++ b/chrome/app/resources/generated_resources_fi.xtb -@@ -59,7 +59,7 @@ - Määrittää näytön päivitystiheyden - Pian on tauon paikka - Luotu --Muut Google-palvelut -+Muut -palvelut - Toinen tietokoneellasi oleva ohjelma on lisännyt laajennuksen, joka voi muuttaa Chromen toimintaa. - - -diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb -index e85c364ff114..8788c62ba19b 100644 ---- a/chrome/app/resources/generated_resources_fil.xtb -+++ b/chrome/app/resources/generated_resources_fil.xtb -@@ -59,7 +59,7 @@ - Tinutukoy ang frequency na ina-update ng screen - Halos oras na para magpahinga - Ginawa --Iba pang serbisyo ng Google -+Iba pang serbisyo ng - Isa pang program sa iyong computer ang nagdagdag extension na maaaring magpabago sa paraan ng paggana ng Chrome. - - -diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb -index b92eae7fea5e..ab99386d0ed1 100644 ---- a/chrome/app/resources/generated_resources_fr-CA.xtb -+++ b/chrome/app/resources/generated_resources_fr-CA.xtb -@@ -59,7 +59,7 @@ - Détermine la fréquence à laquelle l'écran est actualisé - C'est bientôt le moment de prendre une pause - Créé --Autres services Google -+Autres services - Un autre programme sur votre ordinateur a ajouté une extension qui risque de modifier le fonctionnement de Chrome. - - -diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb -index 43920c3b79e7..68f975a95e33 100644 ---- a/chrome/app/resources/generated_resources_fr.xtb -+++ b/chrome/app/resources/generated_resources_fr.xtb -@@ -59,7 +59,7 @@ - Indique la fréquence à laquelle l'écran est actualisé - Il est presque temps de faire une pause - Date de création --Autres services Google -+Autres services - Une extension qui risque de modifier le fonctionnement de Chrome a été ajoutée via un autre programme sur votre ordinateur. - - -diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb -index 59a4ea32aa14..3432c70ee1b6 100644 ---- a/chrome/app/resources/generated_resources_gl.xtb -+++ b/chrome/app/resources/generated_resources_gl.xtb -@@ -59,7 +59,7 @@ - Determina a frecuencia coa que se actualiza a pantalla - Xa case é hora de facer unha pausa - Creada --Outros servizos de Google -+Outros servizos de - Outro programa do teu ordenador engadiu unha extensión que pode cambiar o funcionamento de Chrome. - - -diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb -index 67af53f2292d..c87afdf49e56 100644 ---- a/chrome/app/resources/generated_resources_gu.xtb -+++ b/chrome/app/resources/generated_resources_gu.xtb -@@ -59,7 +59,7 @@ - જે આવર્તન પર સ્ક્રીન અપડેટ કરે છે તેનું નિર્ધારણ કરે છે - વિરામનો સમય થવા જ આવ્યો છે - બનાવ્યું --અન્ય Google સેવાઓ -+અન્ય સેવાઓ - તમારા કોમ્પ્યુટર પરના અન્ય પ્રોગ્રામે કોઇ એક્સ્ટેન્શન ઉમેર્યું છે જેનાથી Chromeની કાર્યપદ્ધતિમાં ફેરફાર થઇ શકે છે. - - -diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb -index 8af4827a0e87..c9fe105dc35e 100644 ---- a/chrome/app/resources/generated_resources_hi.xtb -+++ b/chrome/app/resources/generated_resources_hi.xtb -@@ -59,7 +59,7 @@ - स्क्रीन अपडेट होने की दर तय की जाती है - ब्रेक लेने का समय होने वाला है - निर्मित --Google की दूसरी सेवाएंं -+ की दूसरी सेवाएंं - आपके कंप्‍यूटर पर किसी अन्‍य प्रोग्राम ने ऐसा एक्‍सटेंशन जोड़ा है जो Chrome के काम करने के तरीके को बदल सकता है. - - -diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb -index eda0ccd98e78..e46d5c3e54b3 100644 ---- a/chrome/app/resources/generated_resources_hr.xtb -+++ b/chrome/app/resources/generated_resources_hr.xtb -@@ -59,7 +59,7 @@ - Određuje učestalost kojom se zaslon ažurira - Ubrzo je vrijeme za pauzu - Izrađeno --Ostale Googleove usluge -+Ostale ove usluge - Drugi program na vašem računalu dodao je proširenje koje može promijeniti Chromeov način rada. - - -diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb -index 2af253583b08..701695130764 100644 ---- a/chrome/app/resources/generated_resources_hu.xtb -+++ b/chrome/app/resources/generated_resources_hu.xtb -@@ -59,7 +59,7 @@ - Meghatározza a képernyő frissítési gyakoriságát - Lassan ideje szünetet tartani - Létrehozva --Egyéb Google-szolgáltatások -+Egyéb -szolgáltatások - A számítógépén lévő egyik program olyan bővítményt adott hozzá, amely megváltoztathatja a Chrome működését. - - -diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb -index f26e0205d774..f0f9971caa7c 100644 ---- a/chrome/app/resources/generated_resources_hy.xtb -+++ b/chrome/app/resources/generated_resources_hy.xtb -@@ -59,7 +59,7 @@ - Սահմանում է էկրանի թարմացման հաճախականությունը - Շուտով ընդմիջման ժամն է - Ստեղծվել է --Google-ի այլ ծառայություններ -+-ի այլ ծառայություններ - Ձեր համակարգչի ծրագրերից մեկն ավելացրել է ընդլայնում, որը կարող է միջամտել Chrome-ի աշխատանքին: - - -diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb -index 2638fd0fd672..74eee06fe15e 100644 ---- a/chrome/app/resources/generated_resources_id.xtb -+++ b/chrome/app/resources/generated_resources_id.xtb -@@ -59,7 +59,7 @@ - Menentukan frekuensi pembaruan layar - Hampir waktunya istirahat - Dibuat --Layanan Google lainnya -+Layanan lainnya - Program lain di komputer Anda menambahkan ekstensi yang dapat mengubah cara kerja Chrome. - - -diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb -index 85569e03deef..f3236d8bb391 100644 ---- a/chrome/app/resources/generated_resources_is.xtb -+++ b/chrome/app/resources/generated_resources_is.xtb -@@ -59,7 +59,7 @@ - Segir fyrir um hve hratt skjárinn uppfærist - Það fer að koma tími til að taka sér hlé - Búið til --Önnur Google þjónusta -+Önnur þjónusta - Annað forrit í tölvunni þinni bætti við viðbót sem gæti breytt því hvernig Chrome virkar. - - -diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb -index ebc6c5678d3d..fb699dd4b3d5 100644 ---- a/chrome/app/resources/generated_resources_it.xtb -+++ b/chrome/app/resources/generated_resources_it.xtb -@@ -59,7 +59,7 @@ - Consente di stabilire la frequenza di aggiornamento dello schermo - È quasi ora di fare una pausa - Data creazione --Altri servizi Google -+Altri servizi - Un altro programma sul computer ha aggiunto un'estensione che potrebbe modificare il funzionamento di Chrome. - - -diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb -index fe661b4bcd6f..5beb5b03cdc5 100644 ---- a/chrome/app/resources/generated_resources_iw.xtb -+++ b/chrome/app/resources/generated_resources_iw.xtb -@@ -59,7 +59,7 @@ - קביעת התדירות של רענון המסך - עוד מעט זמן להפסקה - נוצר --‏שירותי Google אחרים -+‏שירותי אחרים - ‏תוכנה אחרת במחשב הוסיפה תוסף שעשוי לשנות את אופן הפעולה של Chrome. - - -diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb -index 141266c139b9..efbf9a53c178 100644 ---- a/chrome/app/resources/generated_resources_ja.xtb -+++ b/chrome/app/resources/generated_resources_ja.xtb -@@ -59,7 +59,7 @@ - 画面の更新頻度を指定します - もうすぐ休憩の時間です - 作成日 --他の Google サービス -+他の サービス - パソコン上の別のプログラムにより、Chrome の動作に影響を及ぼす可能性のある拡張機能が追加されました。 - - -diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb -index 4ccca8343621..cb4f1f1d46fa 100644 ---- a/chrome/app/resources/generated_resources_ka.xtb -+++ b/chrome/app/resources/generated_resources_ka.xtb -@@ -59,7 +59,7 @@ - განსაზღვრავს ეკრანის განახლების სიხშირეს - შესვენების დრო ახლოვდება - შექმნის თარიღი --Google-ის სხვა სერვისები -+-ის სხვა სერვისები - თქვენს კომპიუტერში არსებულმა სხვა პროგრამამ დაამატა გაფართოება, რომელსაც Chrome-ის მუშაობის შეცვლა შეუძლია. - - -diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb -index 51772cc341a5..59b1746c3631 100644 ---- a/chrome/app/resources/generated_resources_kk.xtb -+++ b/chrome/app/resources/generated_resources_kk.xtb -@@ -59,7 +59,7 @@ - Экранның жаңару жиілігін анықтайды. - Үзіліс уақыты келіп қалды - Жасалған --Басқа Google қызметтері -+Басқа қызметтері - Компьютеріңіздегі басқа бір бағдарлама жаңа кеңейтім қосты, ол Chrome жұмысын өзгертуі мүмкін. - - -diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb -index c4b241f5a771..400efa607c83 100644 ---- a/chrome/app/resources/generated_resources_km.xtb -+++ b/chrome/app/resources/generated_resources_km.xtb -@@ -59,7 +59,7 @@ - កំណត់ហ្វ្រេកង់ដែលអេក្រង់ធ្វើបច្ចុប្បន្នភាព - ជិតដល់ពេលសម្រាកហើយ - បានបង្កើត --សេវាកម្ម​​ Google ផ្សេងទៀត -+សេវាកម្ម​​ ផ្សេងទៀត - កម្មវិធីផ្សេងទៀតនៅលើកុំព្យូទ័ររបស់អ្នកបានបន្ថែមផ្នែកបន្ថែមមួយដែលអាចផ្លាស់ប្តូររបៀបដែល Chrome ដំណើរការ។ - - -diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb -index 3df5fbeb602a..e8adc6e72373 100644 ---- a/chrome/app/resources/generated_resources_kn.xtb -+++ b/chrome/app/resources/generated_resources_kn.xtb -@@ -59,7 +59,7 @@ - ಸ್ಕ್ರೀನ್ ಅಪ್‌ಡೇಟ್‌ಗಳ ಫ್ರೀಕ್ವೆನ್ಸಿ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ - ಬಹುತೇಕ ವಿರಾಮದ ಸಮಯ - ರಚಿಸಲಾಗಿದೆ --ಇತರ Google ಸೇವೆಗಳು -+ಇತರ ಸೇವೆಗಳು - ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ, Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಿದೆ. - - -diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb -index 4b1d075efe97..a0d9e7e39e03 100644 ---- a/chrome/app/resources/generated_resources_ko.xtb -+++ b/chrome/app/resources/generated_resources_ko.xtb -@@ -59,7 +59,7 @@ - 화면 업데이트 빈도 결정 - 곧 휴식 시간입니다 - 생성됨 --다른 Google 서비스 -+다른 서비스 - 컴퓨터의 다른 프로그램에서 Chrome 작동에 영향을 줄 수 있는 확장 프로그램을 추가했습니다. - - -diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb -index 295a78ac27a0..2778cd67b3b1 100644 ---- a/chrome/app/resources/generated_resources_ky.xtb -+++ b/chrome/app/resources/generated_resources_ky.xtb -@@ -59,7 +59,7 @@ - Экрандын жаңыртуу жыштыгын аныктайт - Тыныгууга убакыт келип калды - Түзүлгөн --Башка Google кызматтары -+Башка кызматтары - Компьютериңиздеги программалардын бири Chrome'дун ишин өзгөртө турган кеңейтүүнү кошуп койду. - - -diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb -index 3ed12add39ba..fcd800c8afe9 100644 ---- a/chrome/app/resources/generated_resources_lo.xtb -+++ b/chrome/app/resources/generated_resources_lo.xtb -@@ -59,7 +59,7 @@ - ກຳນົດຄວາມຖີ່ທີ່ໜ້າຈໍອັບເດດ - ໃກ້ຮອດເວລາພັກແລ້ວ - ສ້າງຂຶ້ນແລ້ວ --ການບໍລິການອື່ນຂອງ Google -+ການບໍລິການອື່ນຂອງ - ໂປຣແກຣມອື່ນຢູ່ໃນຄອມພິວເຕີຂອງທ່{ານໄດ້ເພີ່ມສ່ວນ​ຂະ​ຫຍາຍທີ່ອາດຈະປ່ຽນແປງວິທີການເຮັດວຽກຂອງ Chrome ແລ້ວ. - - -diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb -index 791e58c06cb2..28ca35b5cdbd 100644 ---- a/chrome/app/resources/generated_resources_lt.xtb -+++ b/chrome/app/resources/generated_resources_lt.xtb -@@ -59,7 +59,7 @@ - Nustatomas ekrano atnaujinimo dažnis - Beveik atėjo laikas padaryti pertrauką - Sukurtas --Kitos „Google“ paslaugos -+Kitos „“ paslaugos - Kita kompiuterio programa pridėjo plėtinį, kuris gali pakeisti, kaip veikia „Chrome“. - - -diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb -index e52e4c31ff3c..9c202c0f94ed 100644 ---- a/chrome/app/resources/generated_resources_lv.xtb -+++ b/chrome/app/resources/generated_resources_lv.xtb -@@ -59,7 +59,7 @@ - Nosaka frekvenci, kādā ekrāns veic atjauninājumus. - Tūlīt būs pārtraukums - Izveidots --Citi Google pakalpojumi -+Citi pakalpojumi - Citā datorā instalētā programmā ir pievienots tāds paplašinājums, kura dēļ var tikt izmainīta pārlūkprogrammas Chrome darbība. - - -diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb -index a615912eb825..8086718d4426 100644 ---- a/chrome/app/resources/generated_resources_mk.xtb -+++ b/chrome/app/resources/generated_resources_mk.xtb -@@ -59,7 +59,7 @@ - Ја одредува фреквенцијата на освежување на екранот - Речиси е време за пауза - Создадено --Други услуги на Google -+Други услуги на - Друга програма на компјутерот додаде екстензија што може да промени како работи Chrome. - - -diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb -index d41a28c93a3e..ef8c750ebef4 100644 ---- a/chrome/app/resources/generated_resources_ml.xtb -+++ b/chrome/app/resources/generated_resources_ml.xtb -@@ -59,7 +59,7 @@ - സ്‌ക്രീൻ അപ്‌ഡേറ്റ് ചെയ്യുന്ന ആവൃത്തി നിർണ്ണയിക്കുന്നു - ഇടവേളയ്ക്കുള്ള സമയം ആകാറായിരിക്കുന്നു - സൃഷ്‌ടിച്ചു --മറ്റ് Google സേവനങ്ങള്‍‌ -+മറ്റ് സേവനങ്ങള്‍‌ - നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ മറ്റൊരു പ്രോഗ്രാം, Chrome പ്രവർത്തിക്കുന്ന രീതിയെ മാറ്റിയേക്കാവുന്ന ഒരു വിപുലീകരണം ചേർത്തു. - - -diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb -index 299948980961..fa40efaf9832 100644 ---- a/chrome/app/resources/generated_resources_mn.xtb -+++ b/chrome/app/resources/generated_resources_mn.xtb -@@ -59,7 +59,7 @@ - Дэлгэцийг шинэчлэх давтамжийг тодорхойлно - Завсарлах цаг ойртож байна - Үүсгэсэн --Google-н бусад үйлчилгээ -+-н бусад үйлчилгээ - Taны компьютерын өөр нэг программ өргөтгөл нэмсэн бөгөөд энэ нь Chrome-н ажиллах зарчмыг өөрчилж магад. - - -diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb -index 6c2720fd00d9..f97a3cb0b9af 100644 ---- a/chrome/app/resources/generated_resources_mr.xtb -+++ b/chrome/app/resources/generated_resources_mr.xtb -@@ -59,7 +59,7 @@ - स्क्रीन अपडेट करत असलेली वारंवारता निर्धारित करतो - विश्रांतीची वेळ झाली आहे - तयार केले --इतर Google सेवा -+इतर सेवा - तुमच्या कॉंप्युटरवरील दुसर्‍या प्रोग्रामने एक एक्स्टेंशन जोडले जो Chrome ची काम करण्‍याची पद्धत कदाचित बदलू शकतो. - - -diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb -index 5afb923411fe..e6906853f8a8 100644 ---- a/chrome/app/resources/generated_resources_ms.xtb -+++ b/chrome/app/resources/generated_resources_ms.xtb -@@ -59,7 +59,7 @@ - Menentukan kekerapan skrin dikemas kini - Masa rehat hampir tiba - Dibuat --Perkhidmatan Google yang lain -+Perkhidmatan yang lain - Program lain pada komputer anda telah menambahkan sambungan yang boleh mengubah cara Chrome berfungsi. - - -diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb -index b026d77e1589..b0b28f90783d 100644 ---- a/chrome/app/resources/generated_resources_my.xtb -+++ b/chrome/app/resources/generated_resources_my.xtb -@@ -59,7 +59,7 @@ - ဖန်သားပြင်အပ်ဒိတ်လုပ်သည့် ကြိမ်နှုန်းကို သတ်မှတ်ပေးသည် - ခေတ္တနားချိန် ရောက်တော့မည် - ပြုလုပ်ပြီးပါပြီ --အခြား Google ဝန်ဆောင်မှုများ -+အခြား ဝန်ဆောင်မှုများ - သင့်ကွန်ပျူတာသို့ Chrome အလုပ်လုပ်ပုံပြောင်းလဲစေမည့် ပရိုဂရမ်အဆက်တစ်ခုကို အခြားပရိုဂရမ်တစ်ခုမှ ပေါင်းတည့်ခဲ့ပါသည်။ - - -diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb -index 6f364391f19e..861a406324ab 100644 ---- a/chrome/app/resources/generated_resources_ne.xtb -+++ b/chrome/app/resources/generated_resources_ne.xtb -@@ -59,7 +59,7 @@ - यसले स्क्रिन अपडेट हुने फ्रिक्वेन्सी निर्धारण गर्छ - विश्राम लिने समय हुनै लाग्यो - सिर्जना गरियो --Google का अन्य सेवाहरू -+ का अन्य सेवाहरू - तपाईँको कम्प्युटरमा अर्को प्रोग्रामले एउटा विस्तार थप्यो जसले Chrome को कार्य गर्ने तरिकालाई बदल्न सक्छ। - सेकेन्डमा वैकल्पिक ब्राउजरमा खोल्दै - लगत एन्सिफरमेन्ट -diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb -index ee516f273ead..329d9574d8f2 100644 ---- a/chrome/app/resources/generated_resources_nl.xtb -+++ b/chrome/app/resources/generated_resources_nl.xtb -@@ -59,7 +59,7 @@ - Bepaalt de frequentie waarmee het scherm wordt geüpdatet - Bijna tijd voor pauze - Gemaakt --Andere Google-services -+Andere -services - Een ander programma op je computer heeft een extensie toegevoegd die de manier kan wijzigen waarop Chrome werkt. - - -diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb -index 67863a1675de..d5ca3dcc15fe 100644 ---- a/chrome/app/resources/generated_resources_no.xtb -+++ b/chrome/app/resources/generated_resources_no.xtb -@@ -59,7 +59,7 @@ - Bestemmer frekvensen for skjermoppdateringer - Snart tid for en pause - Opprettet --Andre Google-tjenester -+Andre -tjenester - Et annet program på datamaskinen la til en utvidelse som kan endre måten Chrome fungerer på. - - -diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb -index b0fc2c46b989..d4d77b71a232 100644 ---- a/chrome/app/resources/generated_resources_or.xtb -+++ b/chrome/app/resources/generated_resources_or.xtb -@@ -59,7 +59,7 @@ - ସ୍କ୍ରିନ୍ ଅପଡେଟ୍ କରୁଥିବା ଫ୍ରିକ୍ୟୁଏନ୍ସି ନିର୍ଦ୍ଧାରଣ କରେ - ବିରତି ପାଇଁ ପ୍ରାୟ ସମୟ ହୋଇଗଲାଣି - ସୃଷ୍ଟିହେଲା: --ଅନ୍ୟାନ୍ୟ Google ସେବା -+ଅନ୍ୟାନ୍ୟ ସେବା - ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍‌ରେ ଥିବା ପ୍ରୋଗ୍ରାମ୍ ଅନ୍ୟ ଏକ ଏକ୍ସଟେନ୍‌ସନ୍‌ ଯୋଗ କରିଥାଏ, ଯାହା Chromeର କାର୍ଯ୍ୟ କରିବା ମାର୍ଗକୁ ପରିବର୍ତ୍ତନ କରିପାରେ। - - -diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb -index ef291be9ae1e..7408f002c68c 100644 ---- a/chrome/app/resources/generated_resources_pa.xtb -+++ b/chrome/app/resources/generated_resources_pa.xtb -@@ -59,7 +59,7 @@ - ਸਕ੍ਰੀਨ ਅੱਪਡੇਟ ਹੋਣ ਦੀ ਵਾਰਵਾਰਤਾ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਦੀ ਹੈ - ਥੋੜ੍ਹੀ ਦੇਰ ਆਰਾਮ ਕਰਨ ਦਾ ਸਮਾਂ ਹੋਣ ਵਾਲਾ ਹੈ - ਬਣਾਇਆ --ਹੋਰ Google ਸੇਵਾਵਾਂ -+ਹੋਰ ਸੇਵਾਵਾਂ - ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਦੇ ਕਿਸੇ ਹੋਰ ਪ੍ਰੋਗਰਾਮ ਨੇ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਜੋੜ ਦਿੱਤੀ ਜੋ Chrome ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ। - - -diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb -index aa1587facca7..eb5ded030577 100644 ---- a/chrome/app/resources/generated_resources_pl.xtb -+++ b/chrome/app/resources/generated_resources_pl.xtb -@@ -59,7 +59,7 @@ - Określa częstotliwość aktualizacji ekranu - Wielkimi krokami nadchodzi przerwa - Utworzono --Inne usługi Google -+Inne usługi - Inny program na Twoim komputerze dodał rozszerzenie, które może zmieniać sposób działania Chrome. - - -diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb -index b585f961e913..1706f72c29de 100644 ---- a/chrome/app/resources/generated_resources_pt-BR.xtb -+++ b/chrome/app/resources/generated_resources_pt-BR.xtb -@@ -59,7 +59,7 @@ - Determina a frequência com que a tela é atualizada - Está quase na hora de fazer uma pausa - Criado em --Outros serviços do Google -+Outros serviços do - Outro programa no seu computador adicionou uma extensão que pode mudar a forma como o Google Chrome funciona. - - -diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb -index aa0569f82869..5dfb1030a73e 100644 ---- a/chrome/app/resources/generated_resources_pt-PT.xtb -+++ b/chrome/app/resources/generated_resources_pt-PT.xtb -@@ -59,7 +59,7 @@ - Determina a frequência de atualização do ecrã - Está quase na altura de fazer uma pausa - Data da criação --Outros serviços Google -+Outros serviços - Outro programa no computador adicionou uma extensão que pode alterar o funcionamento do Chrome. - - -diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb -index 31525bbb8508..58afc530445f 100644 ---- a/chrome/app/resources/generated_resources_ro.xtb -+++ b/chrome/app/resources/generated_resources_ro.xtb -@@ -59,7 +59,7 @@ - Stabilește frecvența actualizării ecranului - Se apropie timpul pentru o pauză - Creat --Alte servicii Google -+Alte servicii - Un alt program de pe computerul tău a adăugat o extensie care poate schimba modul în care funcționează Chrome. - - -diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb -index c8fe5281e0f0..291c1bc7023d 100644 ---- a/chrome/app/resources/generated_resources_ru.xtb -+++ b/chrome/app/resources/generated_resources_ru.xtb -@@ -59,7 +59,7 @@ - Определяет частоту, с которой обновляется экран - Скоро перерыв - Создано --Другие сервисы Google -+Другие сервисы - Одна из программ на вашем компьютере установила расширение, которое может влиять на работу Chrome. - - -diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb -index d0e11651fcb7..dae4cb1ebee6 100644 ---- a/chrome/app/resources/generated_resources_si.xtb -+++ b/chrome/app/resources/generated_resources_si.xtb -@@ -59,7 +59,7 @@ - තිරය යාවත්කාලීන වන සංඛ්‍යාතය තීරණ කරයි - විවේකයක් සඳහා වේලාවයි - සාදන ලදි --වෙනත් Google සේවාවන් -+වෙනත් සේවාවන් - ඔබේ පරිගණකයේ ඇති වෙනත් ක්‍රමලේඛයක් දිගුවක් එක් කර ඇති අතර එයින් Chrome ක්‍රියා කරන ආකරය වෙනස් විය හැකිය. - - -diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb -index 410a16045237..3aa9a47444d7 100644 ---- a/chrome/app/resources/generated_resources_sq.xtb -+++ b/chrome/app/resources/generated_resources_sq.xtb -@@ -59,7 +59,7 @@ - Përcakton shpeshtësinë e përditësimit të ekranit - Pothuajse koha për një pushim - U krijua --Shërbime e tjera të Google -+Shërbime e tjera të - Një program tjetër në kompjuterin tënd shtoi një shtesë që mund të ndryshojë mënyrën e funksionimit të Chrome. - - -diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb -index cab5f01d3304..2489213c909e 100644 ---- a/chrome/app/resources/generated_resources_sr-Latn.xtb -+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb -@@ -59,7 +59,7 @@ - Određuje učestalost ažuriranja ekrana - Skoro je vreme za pauzu - Napravljeno --Druge Google usluge -+Druge usluge - Drugi program na računaru je dodao dodatak koji može da promeni način na koji Chrome funkcioniše. - - -diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb -index 8777902f5855..c998a635d3ae 100644 ---- a/chrome/app/resources/generated_resources_sr.xtb -+++ b/chrome/app/resources/generated_resources_sr.xtb -@@ -59,7 +59,7 @@ - Одређује учесталост ажурирања екрана - Скоро је време за паузу - Направљено --Друге Google услуге -+Друге услуге - Други програм на рачунару је додао додатак који може да промени начин на који Chrome функционише. - - -diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb -index e6040b4a41e5..6f368112457f 100644 ---- a/chrome/app/resources/generated_resources_sv.xtb -+++ b/chrome/app/resources/generated_resources_sv.xtb -@@ -59,7 +59,7 @@ - Anger skärmens uppdateringsfrekvens - Snart dags för en paus - Skapad --Andra Google-tjänster -+Andra -tjänster - Ett annat program i datorn har lagt till ett tillägg som kan ändra hur Chrome fungerar. - - -diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb -index 555097a8425c..054044ec0cd9 100644 ---- a/chrome/app/resources/generated_resources_sw.xtb -+++ b/chrome/app/resources/generated_resources_sw.xtb -@@ -59,7 +59,7 @@ - Hubaini kasi ya kusasisha skrini - Muda wa kupumzika umekaribia - Kiliundwa --Huduma zingine za Google -+Huduma zingine za - Programu nyingine kwenye kompyuta yako iliongeza kiendelezi ambacho kinaweza kubadilisha jinsi Chrome hufanya kazi. - - -diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb -index c569321369e3..adbadb63b320 100644 ---- a/chrome/app/resources/generated_resources_ta.xtb -+++ b/chrome/app/resources/generated_resources_ta.xtb -@@ -59,7 +59,7 @@ - திரை புதுப்பிக்கும் இடைவெளியைத் தீர்மானிக்கும் - சாதனம் பூட்டப்பட உள்ளது - உருவாக்கப்பட்டது --பிற Google சேவைகள் -+பிற சேவைகள் - உங்கள் கம்ப்யூட்டரில் உள்ள மற்றொரு நிரல் Chrome செயல்படும் முறையை மாற்றக்கூடிய ஒரு நீட்டிப்பைச் சேர்த்துள்ளது. - - -diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb -index c379bd7d32f8..9b449f9b6c7c 100644 ---- a/chrome/app/resources/generated_resources_te.xtb -+++ b/chrome/app/resources/generated_resources_te.xtb -@@ -59,7 +59,7 @@ - స్క్రీన్ అప్‌డేట్‌ల ఫ్రీక్వెన్సీని నిర్ణయిస్తుంది - దాదాపు విరామ సమయం - సృష్టించబడింది --ఇతర Google సర్వీసులు -+ఇతర సర్వీసులు - మీ కంప్యూటర్‌లోని మరొక ప్రోగ్రామ్ Chrome పని చేసే విధానాన్ని మార్చగలిగే ఒక ఎక్స్‌టెన్షన్‌ని జోడించింది. - - -diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb -index 0d26942d5e40..665ef8f5c775 100644 ---- a/chrome/app/resources/generated_resources_th.xtb -+++ b/chrome/app/resources/generated_resources_th.xtb -@@ -59,7 +59,7 @@ - กำหนดความถี่ในการอัปเดตหน้าจอ - เกือบถึงเวลาพักแล้ว - สร้างแล้ว --บริการอื่นๆ ของ Google -+บริการอื่นๆ ของ - โปรแกรมอื่นบนคอมพิวเตอร์ได้เพิ่มส่วนขยายที่อาจเปลี่ยนลักษณะการทำงานของ Chrome - - -diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb -index 73b1d622823b..eda1d49d2f1a 100644 ---- a/chrome/app/resources/generated_resources_tr.xtb -+++ b/chrome/app/resources/generated_resources_tr.xtb -@@ -59,7 +59,7 @@ - Ekranın güncellenme sıklığını belirler - Mola verme zamanı yaklaştı - Oluşturulduğu tarih --Diğer Google hizmetleri -+Diğer hizmetleri - Bilgisayarınızdaki başka bir program, Chrome'un çalışma şeklini değiştirebilecek bir uzantı ekledi. - - -diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb -index ff5d1afe0787..48f9734d9205 100644 ---- a/chrome/app/resources/generated_resources_uk.xtb -+++ b/chrome/app/resources/generated_resources_uk.xtb -@@ -59,7 +59,7 @@ - Визначає частоту оновлення екрана - Невдовзі час зробити перерву - Створено --Інші сервіси Google -+Інші сервіси - Інша програма на вашому комп’ютері додала розширення, яке може впливати на роботу Chrome. - - -diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb -index 5534ed90d8ac..8ac94cb0699c 100644 ---- a/chrome/app/resources/generated_resources_ur.xtb -+++ b/chrome/app/resources/generated_resources_ur.xtb -@@ -59,7 +59,7 @@ - اس فریکوئنسی کا تعین کرتا ہے جسے اسکرین اپ ڈیٹ کرتی ہے - وقفے کا وقت تقریباً ہو گیا ہے - بنائی گئی --‏دیگر Google سروسز -+‏دیگر سروسز - ‏آپ کے کمپیوٹر پر موجود کسی دوسرے پروگرام نے ایک ایکسٹینشن شامل کیا ہے جو Chrome کے کام کرنے کا طریقہ تبدیل کر سکتا ہے۔ - - -diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb -index 38f5e7217750..b54cac40182d 100644 ---- a/chrome/app/resources/generated_resources_uz.xtb -+++ b/chrome/app/resources/generated_resources_uz.xtb -@@ -59,7 +59,7 @@ - Ekranlardagi yangilanish chastotasini aniqlaydi - Tanaffus qilish vaqti keldi - Yaratilgan sanasi --Boshqa Google xizmatlari -+Boshqa xizmatlari - Kompyuteringizdagi boshqa dastur bitta kengaytma o‘rnatdi. U Chrome brauzerinig ishlash usulini o‘zgartirishi mumkin. - - -diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb -index 62e3e1dac149..c70cbb0318f9 100644 ---- a/chrome/app/resources/generated_resources_vi.xtb -+++ b/chrome/app/resources/generated_resources_vi.xtb -@@ -59,7 +59,7 @@ - Xác định tần suất cập nhật màn hình - Sắp đến giờ nghỉ giải lao - Đã tạo --Các dịch vụ khác của Google -+Các dịch vụ khác của - Một chương trình khác trên máy tính của bạn đã thêm một tiện ích có thể thay đổi cách Chrome hoạt động. - - -diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb -index 2e016181c536..6de052f6a5fb 100644 ---- a/chrome/app/resources/generated_resources_zh-CN.xtb -+++ b/chrome/app/resources/generated_resources_zh-CN.xtb -@@ -59,7 +59,7 @@ - 确定屏幕更新的频率 - 快到休息时间了 - 创建时间 --其他 Google 服务 -+其他 服务 - 您计算机上的其他程序擅自安装了一个可能会更改 Chrome 工作方式的扩展程序。 - - -diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb -index 9cc42a43d505..b55f9a2debca 100644 ---- a/chrome/app/resources/generated_resources_zh-HK.xtb -+++ b/chrome/app/resources/generated_resources_zh-HK.xtb -@@ -59,7 +59,7 @@ - 決定螢幕更新的頻率 - 快到休息時間了 - 已建立 --其他 Google 服務 -+其他 服務 - 電腦中其他程式所新增的擴充功能可能會變更 Chrome 的運作方式。 - - -diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb -index c00b3344151e..8a56cd66f01f 100644 ---- a/chrome/app/resources/generated_resources_zh-TW.xtb -+++ b/chrome/app/resources/generated_resources_zh-TW.xtb -@@ -59,7 +59,7 @@ - 決定畫面更新的頻率 - 快到休息時間了 - 建立時間 --其他 Google 服務 -+其他 服務 - 電腦中的其他程式新增了一個擴充功能,可能會使 Chrome 的運作方式發生變更。 - - -diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb -index c5e2b8b2180b..e1f7c311eae9 100644 ---- a/chrome/app/resources/generated_resources_zu.xtb -+++ b/chrome/app/resources/generated_resources_zu.xtb -@@ -59,7 +59,7 @@ - Inquma imvamisa isikrini esibuyekezwa ngayo - Kucishe isikhathi sekhefu - Idaliwe --Amanye amasevisi e-Google -+Amanye amasevisi e- - Olunye uhlelo kukhompuyutha yakho lungeze isandiso esingaguqula indlela i-Chrome esebenza ngayo. - - I- diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index 973fb74779db..2fefd3b2ad15 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb @@ -1194,7 +100,7 @@ index 973fb74779db..2fefd3b2ad15 100644 Open in nuwe oortjie in groep Skermskoot diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb -index 4208531bf641..417cb2ebeb3a 100644 +index 4208531bf641..7b92247e52cd 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb @@ -10,7 +10,7 @@ @@ -1202,12 +108,12 @@ index 4208531bf641..417cb2ebeb3a 100644 ማንነት የማያሳውቅ በጭራሽ አልተቀመጠም -ሌሎች የGoogle አገልግሎቶች -+ሌሎች የ አገልግሎቶች ++ሌሎች የአገልግሎቶች የፋይል ቅጥያውን ከቀየሩት ፋይሉ በተለየ መተግበሪያ ሊከፈት ይችላል፣ እና መሣሪያዎን ሊጎዳ ይችላል። በቡድን ውስጥ አዲስ ትር ይክፈቱ የማያ ገጽ ቀረጻ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb -index 08798ee13267..5285484d9f79 100644 +index e4a19200a82d..a8069ad421bd 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb @@ -10,7 +10,7 @@ @@ -1376,7 +282,7 @@ index 8436b1e47a75..45c2ebbd8191 100644 Open in new tab in group Screen Capture diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb -index f89ed6adc21f..035fe6b261b9 100644 +index 9ec63c6d3e1c..8aa452b435f6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb @@ -10,7 +10,7 @@ @@ -1389,7 +295,7 @@ index f89ed6adc21f..035fe6b261b9 100644 Abrir pestaña nueva en grupo Captura de pantalla diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb -index 18f53af83df8..620a2e2454dd 100644 +index ab9e9a4c3335..289a0131aacc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb @@ -10,7 +10,7 @@ @@ -1415,7 +321,7 @@ index 76a56ff5144d..a3bfa7c087e2 100644 Ava rühmas uuel vahelehel Kuva jäädvustamine diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb -index b8c0b318cd12..0ab49f21ddf6 100644 +index 8f7e1eba099b..a5a21c4808dd 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb @@ -10,7 +10,7 @@ @@ -1428,7 +334,7 @@ index b8c0b318cd12..0ab49f21ddf6 100644 Ireki beste fitxa bat taldean Pantaila-argazkia diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb -index 24b2b252ab61..176761a78b53 100644 +index 87e7d79f6f6f..0808a37e85ff 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb @@ -10,7 +10,7 @@ @@ -1441,7 +347,7 @@ index 24b2b252ab61..176761a78b53 100644 باز کردن در برگه جدید در گروه گرفتن عکس از صفحه‌ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb -index fce78045eeb6..59c1bc8c1b2f 100644 +index 36e738ae3519..3e00df1d4740 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb @@ -10,7 +10,7 @@ @@ -1519,7 +425,7 @@ index f314dfebfc2f..9926d3b66267 100644 ગ્રૂપમાં નવા ટૅબમાં ખોલો સ્ક્રીન કૅપ્ચર diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb -index 49c964068ffd..b19ea789d21f 100644 +index 49c964068ffd..14b57f5c16c2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb @@ -10,7 +10,7 @@ @@ -1527,7 +433,7 @@ index 49c964068ffd..b19ea789d21f 100644 गुप्त कभी नहीं सेव किया गया -Google की दूसरी सेवाएंं -+ की दूसरी सेवाएंं ++की दूसरी सेवाएंं अगर आप फ़ाइल का एक्सटेंशन बदलते हैं, तो हो सकता है कि फ़ाइल अलग ऐप्लिकेशन में खुले. इससे आपके डिवाइस को नुकसान पहुंच सकता है. समूह में नए टैब में खोलें स्‍क्रीन कैप्‍चर @@ -1610,7 +516,7 @@ index b91e092f12d3..5dbd0e1ee96c 100644 Apri in nuova scheda in gruppo Acquisizione schermo diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb -index efa5d2f3f162..82b1e32e2e1f 100644 +index 6502b0ddb172..8edfeebddacb 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb @@ -10,7 +10,7 @@ @@ -1649,7 +555,7 @@ index 9fa0e3940b40..c5cb1e6f799f 100644 ჯგუფში ახალ ჩანართზე გახსნა ეკრანის აღბეჭდვა diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb -index ac3865b0373a..8da8096b7454 100644 +index 48edd0a69f16..01bb42d90796 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb @@ -10,7 +10,7 @@ @@ -1831,7 +737,7 @@ index 3811dd745cd9..8415d754de75 100644 အုပ်စုရှိ တဘ်အသစ်တွင် ဖွင့်ပါ မျက်နှာပြင် ပုံဖမ်းမှု diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb -index 47548677dcfb..aaa358be544a 100644 +index d95d50f1e250..4a558da01fab 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb @@ -10,7 +10,7 @@ @@ -1839,8 +745,8 @@ index 47548677dcfb..aaa358be544a 100644 इन्कोग्निटो कहिले पनि बचत नगर्नुहोस् -Google का अन्य सेवाहरू -+ का अन्य सेवाहरू - तपाईंले फाइलको एक्स्टेन्सन परिवर्तन गर्नुभयो भने यो फाइल कुनै अर्को अनुप्रयोगमा खुल्न सक्छ जुन तपाईंको यन्त्रका लागि हानिकारक पनि हुन सक्छ। ++का अन्य सेवाहरू + तपाईंले फाइलको एक्स्टेन्सन परिवर्तन गर्नुभयो भने यो फाइल कुनै अर्को अनुप्रयोगमा खुल्न सक्छ जुन तपाईंको डिभाइसका लागि हानिकारक पनि हुन सक्छ। समूहमा नयाँ ट्याबमा खोल्नुहोस् स्क्रिन क्याप्चर diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb @@ -2130,7 +1036,7 @@ index 86fc5686b264..65b777814cca 100644 Guruhda yangi varaqda ochish Ekranni suratga olish diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb -index a35632e57b1c..381905cb900c 100644 +index b0f10ef7505d..2258f8a479cb 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb @@ -10,7 +10,7 @@ -- GitLab