diff --git a/CHANGELOG.md b/CHANGELOG.md index 07fe0b6a..37fdd624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# 86.0.4240.55 +* switch to upstream UI for DoH URL customization +* remove weblayer dependency on Play Services +* build fixes for password service +* removed obsolete patch to kill Translate +* removed timezone customization patch +* removed patch to revert unified consent code +* removed patch for dav1d library +* removed patch for improved cookie controls defaults + # 85.0.4183.114 # 85.0.4183.110 diff --git a/build/GN_ARGS b/build/GN_ARGS index 863792ac..4f51574e 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -32,7 +32,7 @@ symbol_level=1 target_os="android" use_debug_fission=true use_errorprone_java_compiler=false -use_jumbo_build=false use_official_google_api_keys=false use_openh264=true chrome_pgo_phase=0 use_sysroot=false +webview_includes_weblayer=false diff --git a/build/RELEASE b/build/RELEASE index bbc37c6f..c47f09bd 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -85.0.4183.114 +86.0.4240.55 diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 47f8e38e..24126dac 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,5 +1,5 @@ Disable-third-party-cookies-by-default.patch -Revert-Remove-pre-unified-consent-code.patch +Password-service-build-fixes.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch @@ -72,7 +72,6 @@ autofill-disable-autofill-download-manager.patch first_run-deactivate-autoupdate-globally.patch translate-disable-fetching-of-translate-languages-from-server.patch kill-TOS-and-metrics-opt-out.patch -kill-Translate.patch kill-Vision.patch kill-Location-fall-back-to-system.patch kill-Auth.patch @@ -115,14 +114,14 @@ Increase-number-of-autocomplete-matches-from-5-to-10.patch Disable-HEAD-requests-for-single-word-Omnibar-searches.patch Disable-some-signed-exchange-features.patch Add-flag-to-disable-WebGL.patch -Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +Enable-DoH.patch Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch Revert-flags-remove-disable-pull-to-refresh-effect.patch Use-dummy-DFM-installer.patch Disable-password-reuse-detection-on-android.patch Disable-feeds-support-by-default.patch Disable-autofill-assistant-by-default.patch -Show-site-settings-for-cookies-javascript-and-ads.patch +Show-site-settings-for-cookies.patch Restore-enable-horizontal-tab-switcher-flag.patch Disable-DRM-media-origin-IDs-preprovisioning.patch Disable-smart-selection-by-default.patch @@ -140,14 +139,12 @@ Block-gateway-attacks-via-websockets.patch Enable-prefetch-privacy-changes-by-default.patch Enable-reduced-referrer-granularity-by-default.patch Disable-support-for-RAR-files-inspection.patch -Enable-improved-cookie-controls-by-default.patch Add-history-support-in-incognito-mode.patch Enable-darken-websites-checkbox-in-themes.patch Remove-blocklisted-URLs-upon-bookmark-creation.patch Disable-scroll-to-text-fragment.patch -Rollback-dav1d-upgrades-that-break-x86.patch Disable-the-DIAL-repeating-discovery.patch -Timezone-customization.patch Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch -Automated-domain-substitution.patch Hardening-against-incognito-mode-detection.patch +Automated-domain-substitution.patch +Remove-weblayer-dependency-on-Play-Services.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index 08b0c0d3..3bb854b2 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -1,7 +1,6 @@ -Revert-Remove-pre-unified-consent-code.patch AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch Disable-password-reuse-detection-on-android.patch Disable-feeds-support-by-default.patch -Rollback-dav1d-upgrades-that-break-x86.patch +Password-service-build-fixes.patch diff --git a/build/patches/AV1-codec-support.patch b/build/patches/AV1-codec-support.patch index b7842a75..403863d5 100644 --- a/build/patches/AV1-codec-support.patch +++ b/build/patches/AV1-codec-support.patch @@ -25,7 +25,7 @@ Report AV1 as playable on Android diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc --- a/media/base/mime_util_internal.cc +++ b/media/base/mime_util_internal.cc -@@ -563,9 +563,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid( +@@ -565,9 +565,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid( case THEORA: return false; @@ -73,7 +73,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni --- a/third_party/libaom/libaom_srcs.gni +++ b/third_party/libaom/libaom_srcs.gni -@@ -656,6 +656,11 @@ aom_mem_sources = [ +@@ -670,6 +670,11 @@ aom_mem_sources = [ aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ] 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 a6b674cb..c690bf84 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 -@@ -4499,6 +4499,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4920,6 +4920,12 @@ const FeatureEntry kFeatureEntries[] = { kOsAll, FEATURE_VALUE_TYPE(features::kEnableAmbientAuthenticationInIncognito)}, @@ -33,7 +33,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 -@@ -515,6 +515,11 @@ const char kEnableAmbientAuthenticationInIncognitoDescription[] = +@@ -548,6 +548,11 @@ const char kEnableAmbientAuthenticationInIncognitoDescription[] = "Enables ambient authentication in Incognito mode. This flag may be " "overriden by policies."; @@ -48,7 +48,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 -@@ -316,6 +316,9 @@ extern const char kEnableAccessibilityObjectModelDescription[]; +@@ -333,6 +333,9 @@ extern const char kEnableAccessibilityObjectModelDescription[]; extern const char kEnableAmbientAuthenticationInIncognitoName[]; extern const char kEnableAmbientAuthenticationInIncognitoDescription[]; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc -@@ -339,6 +339,9 @@ const char kHomePage[] = "homepage"; +@@ -343,6 +343,9 @@ const char kHomePage[] = "homepage"; // Causes the browser to launch directly in incognito mode. const char kIncognito[] = "incognito"; @@ -88,14 +88,14 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h -@@ -107,6 +107,7 @@ extern const char kForceFirstRun[]; +@@ -108,6 +108,7 @@ extern const char kForceFirstRun[]; extern const char kForceStackedTabStripLayout[]; extern const char kHomePage[]; extern const char kIncognito[]; +extern const char kEnableIncognitoSnapshotsInAndroidRecents[]; extern const char kInstallAutogeneratedTheme[]; extern const char kInstallChromeApp[]; - extern const char kInstallSupervisedUserWhitelists[]; + extern const char kInstallSupervisedUserAllowlists[]; -- 2.17.1 diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index dbf85d07..c4d1fc74 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -36,7 +36,7 @@ Offer auto-complete for the proxy page URL. diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -66,6 +66,9 @@ +@@ -41,6 +41,9 @@ @@ -49,17 +49,17 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -6,6 +6,10 @@ - +@@ -7,6 +7,10 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orderingFromXml="false"> + @@ -520,7 +520,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -253,6 +253,8 @@ static_library("ui") { +@@ -254,6 +254,8 @@ static_library("ui") { "webui/metrics_handler.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -528,11 +528,11 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn + "webui/proxy_config_ui.h", "webui/net_internals/net_internals_ui.cc", "webui/net_internals/net_internals_ui.h", - "webui/notifications_internals/notifications_internals_ui.cc", + "webui/ntp_tiles_internals_ui.cc", diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -62,6 +62,7 @@ +@@ -61,6 +61,7 @@ #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy_ui.h" #include "chrome/browser/ui/webui/predictors/predictors_ui.h" @@ -540,7 +540,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" #include "chrome/browser/ui/webui/settings/settings_ui.h" #include "chrome/browser/ui/webui/settings_utils.h" -@@ -464,6 +465,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -483,6 +484,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -548,7 +548,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom + return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetInternalsHost) return &NewWebUI; - if (url.host_piece() == chrome::kChromeUINotificationsInternalsHost) + if (url.host_piece() == chrome::kChromeUINTPTilesInternalsHost) diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc new file mode 100644 --- /dev/null @@ -1017,7 +1017,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -301,6 +303,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { +@@ -315,6 +317,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { kChromeUIMobileSetupHost, kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, @@ -1025,7 +1025,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIOobeHost, kChromeUIOSCreditsHost, kChromeUIOSSettingsHost, -@@ -480,6 +483,7 @@ const char* const kChromeHostURLs[] = { +@@ -501,6 +504,7 @@ const char* const kChromeHostURLs[] = { #if !defined(OS_ANDROID) #if !defined(OS_CHROMEOS) kChromeUIAppLauncherPageHost, @@ -1036,7 +1036,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -108,6 +108,8 @@ extern const char kChromeUIMemoryInternalsHost[]; +@@ -116,6 +116,8 @@ extern const char kChromeUIMemoryInternalsHost[]; extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 2843ce65..53a8cb43 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -10,18 +10,19 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c chrome/android/chrome_java_sources.gni | 1 + .../java/res/xml/privacy_preferences.xml | 5 ++ .../AlwaysIncognitoLinkInterceptor.java | 74 +++++++++++++++++++ - .../chrome/browser/ChromeActivity.java | 4 + .../chrome/browser/ChromeTabbedActivity.java | 6 +- + .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 6 ++ .../ChromeContextMenuPopulator.java | 8 +- - .../CustomTabIntentDataProvider.java | 6 ++ + .../CustomTabIntentDataProvider.java | 5 +- .../browser/init/StartupTabPreloader.java | 11 ++- .../browser/tabmodel/ChromeTabCreator.java | 16 +++- .../tabmodel/TabModelSelectorBase.java | 8 ++ - .../browser/tabmodel/TabPersistentStore.java | 9 +++ + .../browser/tabmodel/TabPersistentStore.java | 10 +++ + .../webapps/WebappIntentDataProvider.java | 14 ++++ .../flags/android/chrome_feature_list.cc | 2 +- .../strings/android_chrome_strings.grd | 7 ++ - 14 files changed, 155 insertions(+), 8 deletions(-) + 15 files changed, 168 insertions(+), 9 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -33,15 +34,15 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java", "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", + "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", - "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java", diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -20,6 +20,11 @@ - android:title="@string/preload_pages_title" +@@ -18,6 +18,11 @@ android:summary="@string/preload_pages_summary" - android:persistent="false" /> + android:persistent="false" + android:order="1"/> + - throw new IllegalStateException( - "Attempting to access TabCreator before initialization"); - } -+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { -+ return mIncognitoTabCreator; -+ } - return incognito ? mIncognitoTabCreator : mRegularTabCreator; - } - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -51,6 +51,7 @@ import org.chromium.base.supplier.OneShotCallback; +@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneShotCallback; import org.chromium.base.supplier.Supplier; import org.chromium.base.task.PostTask; import org.chromium.chrome.R; @@ -161,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; -@@ -1664,8 +1665,9 @@ public class ChromeTabbedActivity extends ChromeActivity + throw new IllegalStateException( + "Attempting to access TabCreator before initialization"); + } ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { ++ return mIncognitoTabCreator; ++ } + return incognito ? mIncognitoTabCreator : mRegularTabCreator; + } + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -296,6 +296,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -354,6 +354,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -218,8 +219,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -50,6 +50,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; - import org.chromium.components.embedder_support.util.UrlConstants; +@@ -52,6 +52,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; + import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.ui.util.ColorUtils; +import org.chromium.base.ContextUtils; @@ -228,20 +229,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -409,6 +412,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid - // TODO(https://crbug.com/1023759): Remove this function and enable - // incognito CCT request for all apps. - private boolean isValidIncognitoIntent(Intent intent) { -+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { -+ return true; -+ } - if (!isIncognitoRequested(intent)) return false; - // Incognito requests for payments flow are supported without - // INCOGNITO_CCT flag as an exceptional case that can use Chrome +@@ -764,7 +767,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid + + @Override + public boolean isIncognito() { +- return false; ++ return ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false); + } + + @Nullable diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java -@@ -36,6 +36,9 @@ import org.chromium.ui.base.PageTransition; +@@ -37,6 +37,9 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -251,7 +251,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab /** * This class attempts to preload the tab if the url is known from the intent when the profile * is created. This is done to improve startup latency. -@@ -187,9 +190,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable +@@ -188,9 +191,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable Intent intent = mIntentSupplier.get(); GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent)); @@ -265,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty()); String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent); -@@ -203,7 +208,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable +@@ -204,7 +209,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable // Create a detached tab, but don't add it to the tab model yet. We'll do that // later if the loadUrlParams etc... match. mTab = TabBuilder.createLiveTab(false) @@ -288,7 +288,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** * This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ -@@ -59,6 +63,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -59,6 +63,7 @@ public class ChromeTabCreator extends TabCreator { private final ChromeActivity mActivity; private final StartupTabPreloader mStartupTabPreloader; private final boolean mIncognito; @@ -296,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome private WindowAndroid mNativeWindow; private TabModel mTabModel; -@@ -76,6 +81,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -77,6 +82,10 @@ public class ChromeTabCreator extends TabCreator { mNativeWindow = nativeWindow; mTabDelegateFactorySupplier = tabDelegateFactory; mIncognito = incognito; @@ -305,9 +305,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome + else + mExtraLogic = null; mOverviewNTPCreator = overviewNTPCreator; + mAsyncTabParamsManager = asyncTabParamsManager; } - -@@ -228,6 +237,8 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -229,6 +238,8 @@ public class ChromeTabCreator extends TabCreator { if (creationState == TabCreationState.LIVE_IN_FOREGROUND && !openInForeground) { creationState = TabCreationState.LIVE_IN_BACKGROUND; } @@ -316,7 +316,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome mTabModel.addTab(tab, position, type, creationState); return tab; } finally { -@@ -262,6 +273,8 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -263,6 +274,8 @@ public class ChromeTabCreator extends TabCreator { @TabCreationState int creationState = openInForeground ? TabCreationState.LIVE_IN_FOREGROUND : TabCreationState.LIVE_IN_BACKGROUND; @@ -325,7 +325,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome mTabModel.addTab(tab, position, type, creationState); return true; } -@@ -305,7 +318,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -306,7 +319,6 @@ public class ChromeTabCreator extends TabCreator { // TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId, boolean forceNewTab, Intent intent, long intentTimestamp) { @@ -333,8 +333,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName()); if (forceNewTab && !isLaunchedFromChrome) { -@@ -412,6 +424,8 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - .setTabState(state) +@@ -415,6 +427,8 @@ public class ChromeTabCreator extends TabCreator { + .setSerializedCriticalPersistedTabData(serializedCriticalPersistedTabData) .build(); } + if (mExtraLogic != null) @@ -345,7 +345,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -@@ -247,7 +247,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector { +@@ -246,7 +246,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector { public void markTabStateInitialized() { if (mTabStateInitialized) return; mTabStateInitialized = true; @@ -364,7 +364,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -47,6 +47,8 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -16,6 +16,7 @@ import androidx.annotation.VisibleForTesting; + import androidx.core.util.AtomicFile; + + import org.chromium.base.Callback; ++import org.chromium.base.ContextUtils; + import org.chromium.base.Log; + import org.chromium.base.ObserverList; + import org.chromium.base.StreamUtil; +@@ -49,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.UiThreadTaskTraits; @@ -373,7 +381,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -599,6 +601,13 @@ public class TabPersistentStore extends TabPersister { +@@ -597,6 +600,13 @@ public class TabPersistentStore extends TabPersister { } } @@ -387,10 +395,55 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer TabModel model = mTabModelSelector.getModel(isIncognito); if (model.isIncognito() != isIncognito) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +@@ -19,6 +19,9 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv + import org.chromium.chrome.browser.flags.ActivityType; + import org.chromium.components.browser_ui.widget.TintedDrawable; + ++import org.chromium.base.ContextUtils; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++ + /** + * Stores info about a web app. + */ +@@ -32,6 +35,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider + private final @ActivityType int mActivityType; + private final Intent mIntent; + ++ private boolean mIsIncognito = false; ++ + /** + * Returns the toolbar color to use if a custom color is not specified by the webapp. + */ +@@ -51,6 +56,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider + mWebappExtras = webappExtras; + mWebApkExtras = webApkExtras; + mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP; ++ ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { ++ mIsIncognito = true; ++ } + } + + @Override +@@ -129,6 +138,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider + return mWebApkExtras; + } + ++ @Override ++ public boolean isIncognito() { ++ return mIsIncognito; ++ } ++ + @Override + public int getDefaultOrientation() { + return mWebappExtras.orientation; 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 -@@ -333,7 +333,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling", +@@ -350,7 +350,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kCCTIncognito{"CCTIncognito", @@ -402,7 +455,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -773,6 +773,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -787,6 +787,13 @@ Your Google account may have other forms of browsing history like searches and a Clears history and autocompletions in the address bar. diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 53be3b7f..a752db8f 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -12,7 +12,7 @@ Completely remove contacts picker permission from the file dialog .../browser/bookmarks/BookmarkActivity.java | 15 ++ .../browser/bookmarks/BookmarkBridge.java | 47 ++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + - .../browser/bookmarks/BookmarkManager.java | 20 ++ + .../browser/bookmarks/BookmarkManager.java | 19 ++ .../browser/bookmarks/BookmarkPage.java | 1 + chrome/browser/BUILD.gn | 8 +- .../android/bookmarks/bookmark_bridge.cc | 217 ++++++++++++++++++ @@ -28,7 +28,7 @@ Completely remove contacts picker permission from the file dialog ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + ui/shell_dialogs/select_file_dialog_android.h | 2 + - 22 files changed, 448 insertions(+), 14 deletions(-) + 22 files changed, 447 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -263,18 +263,15 @@ 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/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -33,8 +33,10 @@ import org.chromium.components.browser_ui.util.ConversionUtils; +@@ -33,6 +33,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils; import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate; +import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.url.GURL; -+import org.chromium.chrome.browser.ChromeActivity; - import java.util.Stack; - -@@ -53,6 +55,7 @@ public class BookmarkManager +@@ -53,6 +54,7 @@ public class BookmarkManager private Activity mActivity; private ViewGroup mMainView; private BookmarkModel mBookmarkModel; @@ -282,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -323,6 +326,13 @@ public class BookmarkManager +@@ -323,6 +325,13 @@ public class BookmarkManager mNativePage = nativePage; } @@ -296,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet -@@ -495,6 +505,16 @@ public class BookmarkManager +@@ -495,6 +504,16 @@ public class BookmarkManager } } @@ -327,7 +324,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -182,6 +182,10 @@ static_library("browser") { +@@ -190,6 +190,10 @@ static_library("browser") { "bitmap_fetcher/bitmap_fetcher_service.h", "bitmap_fetcher/bitmap_fetcher_service_factory.cc", "bitmap_fetcher/bitmap_fetcher_service_factory.h", @@ -338,7 +335,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bluetooth/bluetooth_chooser_context.cc", "bluetooth/bluetooth_chooser_context.h", "bluetooth/bluetooth_chooser_context_factory.cc", -@@ -3048,8 +3052,6 @@ static_library("browser") { +@@ -3126,8 +3130,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -347,7 +344,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "browsing_data/access_context_audit_database.cc", "browsing_data/access_context_audit_database.h", "browsing_data/access_context_audit_service.cc", -@@ -3189,8 +3191,6 @@ static_library("browser") { +@@ -3265,8 +3267,6 @@ static_library("browser") { "importer/importer_uma.h", "importer/in_process_importer_bridge.cc", "importer/in_process_importer_bridge.h", @@ -752,8 +749,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -415,6 +415,9 @@ static_library("common") { - sources += [ +@@ -410,6 +410,9 @@ static_library("common") { + "android/cpu_affinity_experiments.h", "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", + ## Bromite dependencies for bookmark import functionality @@ -765,7 +762,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -70,8 +70,6 @@ static_library("utility") { +@@ -71,8 +71,6 @@ static_library("utility") { if (!is_android) { sources += [ @@ -774,7 +771,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/edge_database_reader_win.cc", -@@ -172,6 +170,11 @@ static_library("utility") { +@@ -173,6 +171,11 @@ static_library("utility") { } } @@ -889,15 +886,15 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -36,6 +36,7 @@ import org.chromium.base.task.PostTask; +@@ -35,6 +35,7 @@ import org.chromium.base.task.AsyncTask; + import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; - import org.chromium.ui.PhotoPickerListener; import org.chromium.ui.R; +import org.chromium.ui.widget.Toast; import org.chromium.ui.UiUtils; import java.io.File; -@@ -55,6 +56,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -54,6 +55,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String IMAGE_TYPE = "image/"; private static final String VIDEO_TYPE = "video/"; private static final String AUDIO_TYPE = "audio/"; @@ -905,7 +902,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*"; private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*"; private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*"; -@@ -133,6 +135,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -151,6 +153,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mFileTypes = fileTypes; } @@ -917,7 +914,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -160,7 +167,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -178,7 +185,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -926,7 +923,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission); } else { if (((mSupportsImageCapture && shouldShowImageTypes()) -@@ -188,7 +195,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -206,7 +213,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -935,7 +932,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format("Permissions arrays misaligned: %d != %d", -@@ -202,7 +209,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -220,7 +227,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -944,7 +941,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui onFileNotSelected(); return; } -@@ -351,6 +358,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -367,6 +374,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -952,7 +949,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -631,6 +639,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -647,6 +655,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(specificType) > 0; } @@ -966,7 +963,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -191,6 +191,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog +@@ -198,6 +198,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog void* params); bool HasMultipleFileTypeChoices(); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 56036a0b..9274cf59 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -26,10 +26,10 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -29,6 +29,11 @@ - android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" +@@ -28,6 +28,11 @@ android:key="do_not_track" - android:title="@string/do_not_track_title" /> + android:title="@string/do_not_track_title" + android:order="3"/> + <resetlink>reset sync

<resetlink>reset sync

Show original diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 3ecd257e..a9bee0ad 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -5,36 +5,44 @@ Subject: Add exit menu item Corrected Exit functionality --- chrome/android/java/res/menu/main_menu.xml | 4 ++++ - .../src/org/chromium/chrome/browser/ChromeActivity.java | 5 +++++ + .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++ .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++- .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++ - 4 files changed, 17 insertions(+), 1 deletion(-) + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -87,6 +87,8 @@ - android:title="@string/menu_help" /> - +@@ -116,6 +116,8 @@ + android:icon="@drawable/vr_headset" /> + + -@@ -104,6 +106,8 @@ - android:title="@string/menu_group_tabs" /> +@@ -139,6 +141,8 @@ + android:title="@string/menu_settings" + android:icon="@drawable/settings_cog" /> + -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -1896,6 +1896,11 @@ public abstract class ChromeActivity +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 +@@ -53,6 +53,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.chrome.R; + import org.chromium.chrome.browser.ActivityTabProvider; + import org.chromium.chrome.browser.AppHooks; ++import org.chromium.chrome.browser.ApplicationLifetime; + import org.chromium.chrome.browser.ChromeActivitySessionTracker; + import org.chromium.chrome.browser.ChromeApplication; + import org.chromium.chrome.browser.ChromeVersionInfo; +@@ -1874,6 +1875,11 @@ public abstract class ChromeActivity RecordUserAction.record("MobileMenuSettings"); } @@ -65,7 +73,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife 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 -@@ -2551,6 +2551,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Settings 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 8322e6b2..941d24b9 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 @@ -19,7 +19,7 @@ with limited CPU/memory resources and it is disabled by default. 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 -@@ -701,6 +701,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { +@@ -732,6 +732,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { net::kEffectiveConnectionType4G}, }; @@ -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 == -@@ -2953,6 +2958,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3249,6 +3254,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidPictureInPictureAPIName, flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid, FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)}, @@ -44,7 +44,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 -@@ -1298,6 +1298,10 @@ const char kMediaHistoryDescription[] = +@@ -1374,6 +1374,10 @@ const char kMediaHistoryDescription[] = "Enables Media History which records data around media playbacks on " "websites."; @@ -58,7 +58,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 -@@ -770,6 +770,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[]; +@@ -810,6 +810,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[]; extern const char kMediaHistoryName[]; extern const char kMediaHistoryDescription[]; @@ -110,14 +110,14 @@ diff --git a/components/network_session_configurator/common/network_switch_list. diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -72,6 +72,7 @@ executable("make_top_domain_list_variables") { - "//base", - "//base:i18n", +@@ -74,6 +74,7 @@ executable("make_top_domain_list_variables") { + "//base/util/ranges:ranges", + "//components/url_formatter/spoof_checks/common_words:common", "//third_party/icu", + "//components/network_session_configurator/common" ] if (is_ios) { - libs = [ "UIKit.framework" ] + frameworks = [ "UIKit.framework" ] diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc 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 af019499..a9d714ba 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 -@@ -2146,6 +2146,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2413,6 +2413,10 @@ const FeatureEntry kFeatureEntries[] = { kOsAura, FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashWhenMouseEnter)}, #endif // USE_AURA @@ -27,7 +27,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 -@@ -912,6 +912,11 @@ const char kMemlogStackModeNative[] = "Native"; +@@ -958,6 +958,11 @@ const char kMemlogStackModeNative[] = "Native"; const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names"; const char kMemlogStackModePseudo[] = "Trace events"; @@ -42,7 +42,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 -@@ -518,6 +518,9 @@ extern const char kEnablePortalsDescription[]; +@@ -541,6 +541,9 @@ extern const char kEnablePortalsDescription[]; extern const char kEnablePortalsCrossOriginName[]; extern const char kEnablePortalsCrossOriginDescription[]; @@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -232,11 +232,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", +@@ -237,11 +237,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", // when in background. const base::Feature kResumeBackgroundVideo { "resume-background-video", diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index e969c453..47f5efb5 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -16,9 +16,9 @@ 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 -@@ -3770,6 +3770,11 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(features::kDirectManipulationStylus)}, - #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) +@@ -4151,6 +4151,11 @@ const FeatureEntry kFeatureEntries[] = { + #endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || + // defined(OS_CHROMEOS) + {"ipv6-probing", + flag_descriptions::kIPv6ProbingName, @@ -26,12 +26,12 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc + FEATURE_VALUE_TYPE(network::features::kIPv6Probing)}, + #if !defined(OS_ANDROID) - {"ntp-confirm-suggestion-removals", - flag_descriptions::kNtpConfirmSuggestionRemovalsName, + {"ntp-dismiss-promos", flag_descriptions::kNtpDismissPromosName, + flag_descriptions::kNtpDismissPromosDescription, kOsDesktop, 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 -@@ -2561,6 +2561,10 @@ const char kContextualSearchRankerQueryDescription[] = +@@ -2750,6 +2750,10 @@ const char kContextualSearchRankerQueryDescription[] = const char kContextualSearchSecondTapName[] = "Contextual Search second tap triggering"; @@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -584,6 +584,9 @@ extern const char kEnableWasmThreadsName[]; +@@ -612,6 +612,9 @@ extern const char kEnableWasmThreadsName[]; extern const char kEnableWasmThreadsDescription[]; extern const char kEnableWasmTieringName[]; @@ -88,16 +88,16 @@ diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresour diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -72,7 +72,8 @@ executable("make_top_domain_list_variables") { - "//base", - "//base:i18n", +@@ -74,7 +74,8 @@ executable("make_top_domain_list_variables") { + "//base/util/ranges:ranges", + "//components/url_formatter/spoof_checks/common_words:common", "//third_party/icu", - "//components/network_session_configurator/common" + "//components/network_session_configurator/common", + "//services/network/public/cpp", ] if (is_ios) { - libs = [ "UIKit.framework" ] + frameworks = [ "UIKit.framework" ] diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 6734a860..92832dec 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 -@@ -1975,6 +1975,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2240,6 +2240,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, @@ -24,9 +24,9 @@ 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 -@@ -484,6 +484,10 @@ const char kDeviceDiscoveryNotificationsName[] = - const char kDeviceDiscoveryNotificationsDescription[] = - "Device discovery notifications on local network."; +@@ -517,6 +517,10 @@ const char kForceEnableDevicesPageDescription[] = + "content, instead of a warning message. Note: chrome://devices is " + "no longer supported, and this flag will be permanently removed in M88."; +const char kDisableWebGLName[] = "Disable all versions of WebGL"; + @@ -38,9 +38,9 @@ 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 -@@ -301,6 +301,9 @@ extern const char kDebugShortcutsDescription[]; - extern const char kDeviceDiscoveryNotificationsName[]; - extern const char kDeviceDiscoveryNotificationsDescription[]; +@@ -318,6 +318,9 @@ extern const char kDeviceDiscoveryNotificationsDescription[]; + extern const char kForceEnableDevicesPageName[]; + extern const char kForceEnableDevicesPageDescription[]; +extern const char kDisableWebGLName[]; +extern const char kDisableWebGLDescription[]; 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 1fbf83f6..43ca0cbb 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 -@@ -2199,6 +2199,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2466,6 +2466,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, @@ -36,7 +36,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 -@@ -705,6 +705,14 @@ const char kWinrtSensorsImplementationDescription[] = +@@ -739,6 +739,14 @@ const char kWinrtSensorsImplementationDescription[] = "Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for " "sensors"; @@ -54,7 +54,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 -@@ -422,6 +422,12 @@ extern const char kWinrtGeolocationImplementationDescription[]; +@@ -439,6 +439,12 @@ extern const char kWinrtGeolocationImplementationDescription[]; extern const char kWinrtSensorsImplementationName[]; extern const char kWinrtSensorsImplementationDescription[]; @@ -70,7 +70,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -92,6 +92,9 @@ void SetRuntimeFeatureDefaultsForPlatform( +@@ -94,6 +94,9 @@ void SetRuntimeFeatureDefaultsForPlatform( command_line.HasSwitch( blink::switches::kEnableGpuMemoryBufferCompositorResources) && !command_line.HasSwitch(switches::kDisableWebGLImageChromium) && @@ -83,7 +83,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -801,6 +801,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend", +@@ -833,6 +833,16 @@ const base::Feature kWebOtpBackend{"kWebOtpBackend", // TODO(rouslan): Remove this. const base::Feature kWebPayments{"WebPayments", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -103,9 +103,9 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -175,6 +175,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrHitTest; +@@ -180,6 +180,8 @@ CONTENT_EXPORT extern const base::Feature kWebXrArModule; + CONTENT_EXPORT extern const base::Feature kWebXrHitTest; CONTENT_EXPORT extern const base::Feature kWebXrIncubations; - CONTENT_EXPORT extern const base::Feature kWebXrPermissionsApi; +CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation; + @@ -127,7 +127,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc --- a/third_party/blink/renderer/modules/modules_initializer.cc +++ b/third_party/blink/renderer/modules/modules_initializer.cc -@@ -224,9 +224,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld( +@@ -226,9 +226,13 @@ void ModulesInitializer::OnClearWindowObjectInMainWorld( Document& document, const Settings& settings) const { LocalDOMWindow& window = *document.domWindow(); @@ -165,7 +165,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1256,6 +1256,14 @@ +@@ -1303,6 +1303,14 @@ name: "OffscreenCanvasCommit", status: "experimental", }, diff --git a/build/patches/Add-history-support-in-incognito-mode.patch b/build/patches/Add-history-support-in-incognito-mode.patch index 5d4f8fb6..4eb7cab7 100644 --- a/build/patches/Add-history-support-in-incognito-mode.patch +++ b/build/patches/Add-history-support-in-incognito-mode.patch @@ -9,10 +9,10 @@ Subject: Add history support in incognito mode chrome/browser/history/history_tab_helper.h | 4 ++++ chrome/browser/prefs/browser_prefs.cc | 2 ++ .../android/strings/android_chrome_strings.grd | 6 ++++++ - .../translations/android_chrome_strings_it.xtb | 2 ++ + .../translations/android_chrome_strings_it.xtb | 4 +++- chrome/common/pref_names.cc | 5 +++++ chrome/common/pref_names.h | 4 ++++ - 9 files changed, 62 insertions(+) + 9 files changed, 63 insertions(+), 1 deletion(-) mode change 100644 => 100755 chrome/android/java/res/xml/privacy_preferences.xml mode change 100644 => 100755 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java mode change 100644 => 100755 chrome/browser/history/history_tab_helper.cc @@ -28,7 +28,7 @@ old mode 100644 new mode 100755 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -39,6 +39,11 @@ +@@ -32,6 +32,11 @@ android:title="@string/close_tabs_on_exit_title" android:summary="@string/close_tabs_on_exit_summary" android:defaultValue="false" /> @@ -45,16 +45,16 @@ old mode 100644 new mode 100755 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -38,6 +38,8 @@ import org.chromium.ui.text.SpanApplier; - - import java.util.List; +@@ -35,6 +35,8 @@ import org.chromium.components.user_prefs.UserPrefs; + import org.chromium.ui.text.NoUnderlineClickableSpan; + import org.chromium.ui.text.SpanApplier; +import org.chromium.base.Log; + /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -54,6 +56,7 @@ public class PrivacySettings +@@ -53,6 +55,7 @@ public class PrivacySettings private ManagedPreferenceDelegate mManagedPreferenceDelegate; public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; @@ -62,9 +62,9 @@ new mode 100755 @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -@@ -84,6 +87,11 @@ public class PrivacySettings - searchSuggestionsPref.setOnPreferenceChangeListener(this); - searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); +@@ -89,6 +92,11 @@ public class PrivacySettings + Preference secureDnsPref = findPreference(PREF_SECURE_DNS); + secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); + ChromeBaseCheckBoxPreference historyInIncognitoPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED); @@ -74,17 +74,17 @@ new mode 100755 updateSummaries(); } -@@ -105,6 +113,9 @@ public class PrivacySettings +@@ -108,6 +116,9 @@ public class PrivacySettings SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); - sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean)newValue); + sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue); sharedPreferencesEditor.apply(); + } else if (PREF_INCOGNITO_TAB_HISTORY_ENABLED.equals(key)) { -+ PrefServiceBridge.getInstance().setBoolean( -+ Pref.INCOGNITO_TAB_HISTORY_ENABLED, (boolean) newValue); ++ UserPrefs.get(Profile.getLastUsedRegularProfile()) ++ .setBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED, (boolean) newValue); } return true; -@@ -179,6 +190,13 @@ public class PrivacySettings +@@ -152,6 +163,13 @@ public class PrivacySettings (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT); closeTabsOnExitPref.setOnPreferenceChangeListener(this); closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); @@ -93,7 +93,7 @@ new mode 100755 + (CheckBoxPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED); + if (historyInIncognitoPref != null) { + historyInIncognitoPref.setChecked( -+ prefServiceBridge.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED)); ++ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED)); + } } @@ -103,7 +103,7 @@ old mode 100644 new mode 100755 --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc -@@ -29,6 +29,9 @@ +@@ -26,6 +26,9 @@ #if defined(OS_ANDROID) #include "chrome/browser/android/background_tab_manager.h" @@ -113,7 +113,7 @@ new mode 100755 #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -242,6 +245,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -227,6 +230,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -127,7 +127,7 @@ new mode 100755 if (profile->IsOffTheRecord()) return NULL; -@@ -249,6 +259,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -234,6 +244,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -168,7 +168,7 @@ old mode 100644 new mode 100755 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -233,6 +233,7 @@ +@@ -231,6 +231,7 @@ #include "components/ntp_tiles/popular_sites_impl.h" #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/query_tiles/tile_service_prefs.h" @@ -176,7 +176,7 @@ new mode 100755 #if BUILDFLAG(ENABLE_FEED_IN_CHROME) #include "components/feed/core/common/pref_names.h" #endif // BUILDFLAG(ENABLE_FEED_IN_CHROME) -@@ -999,6 +1000,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1015,6 +1016,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); feed::prefs::RegisterFeedSharedProfilePrefs(registry); @@ -189,7 +189,7 @@ old mode 100644 new mode 100755 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -794,6 +794,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -811,6 +811,12 @@ Your Google account may have other forms of browsing history like searches and a Opens links in incognito tabs when you click on new tab or on a link @@ -207,21 +207,23 @@ old mode 100644 new mode 100755 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb -@@ -1062,4 +1062,6 @@ Ad esempio, alcuni siti web potrebbero rispondere alla richiesta mostrando annun - Utilizza un servizio di previsione per visualizzare query correlate e siti web popolari durante la digitazione nella barra degli indirizzi - Sincronizzazione con - Gestione attività di Google +@@ -1101,4 +1101,6 @@ Ad esempio, alcuni siti web potrebbero rispondere alla richiesta mostrando annun + Chiudi tutte le schede + Generali + Menu scheda feed chiuso +- +\ No newline at end of file +Abilita la cronologia nelle sessioni in incognito +Abilita la registrazione della navigazione nella cronologia anche per le sessioni in incognito - ++ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc old mode 100644 new mode 100755 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -3038,4 +3038,9 @@ const char kMediaFeedsSafeSearchEnabled[] = "media_feeds_safe_search_enabled"; - // TODO(enne): Remove this once AppCache has been removed. - const char kAppCacheForceEnabled[] = "app_cache_force_enabled"; +@@ -3100,4 +3100,9 @@ const char kShowCaretBrowsingDialog[] = + "settings.a11y.caretbrowsing.show_dialog"; + #endif +#if defined(OS_ANDROID) +const char kIncognitoTabHistoryEnabled[] = @@ -234,9 +236,9 @@ old mode 100644 new mode 100755 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1074,6 +1074,10 @@ extern const char kMediaFeedsSafeSearchEnabled[]; - - extern const char kAppCacheForceEnabled[]; +@@ -1087,6 +1087,10 @@ extern const char kCaretBrowsingEnabled[]; + extern const char kShowCaretBrowsingDialog[]; + #endif +#if defined(OS_ANDROID) +extern const char kIncognitoTabHistoryEnabled[]; diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 59703f8d..c5477f21 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -5,8 +5,8 @@ Subject: Add menu item to view source --- chrome/android/java/res/menu/custom_tabs_menu.xml | 3 +++ chrome/android/java/res/menu/main_menu.xml | 2 ++ - .../chromium/chrome/browser/ChromeActivity.java | 2 ++ .../chrome/browser/ChromeTabbedActivity.java | 2 ++ + .../chrome/browser/app/ChromeActivity.java | 2 ++ .../app/appmenu/AppMenuPropertiesDelegateImpl.java | 14 ++++++++++++++ .../CustomTabAppMenuPropertiesDelegate.java | 1 + .../ui/android/strings/android_chrome_strings.grd | 3 +++ @@ -28,31 +28,19 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -66,6 +66,8 @@ - android:title="@string/menu_find_in_page" /> +@@ -88,6 +88,8 @@ + android:title="@string/menu_add_to_homescreen" + android:icon="@drawable/ic_add_to_home_screen" /> + - - } catch (ActivityNotFoundException e) { - Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show(); - } -+ } 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 = + android:title="@string/menu_open_webapk" + android:icon="@drawable/ic_add_to_home_screen" /> diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1866,6 +1866,8 @@ public class ChromeTabbedActivity extends ChromeActivity + } catch (ActivityNotFoundException e) { + Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show(); + } ++ } 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 = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -287,6 +287,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -334,6 +334,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isChromeScheme, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); @@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // Only display reader mode settings menu option if the current page is in reader mode. menu.findItem(R.id.reader_mode_prefs_id).setVisible(shouldShowReaderModePrefs(currentTab)); -@@ -622,6 +623,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -703,6 +704,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } } @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -220,6 +220,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -222,6 +222,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat } updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust 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 -@@ -307,6 +307,9 @@ CHAR-LIMIT guidelines: +@@ -326,6 +326,9 @@ CHAR-LIMIT guidelines: Other Google services diff --git a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch index 94444a81..c274002d 100644 --- a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch +++ b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch @@ -13,7 +13,7 @@ Subject: Add option to configure the ad blocker filters URL .../browser/settings/AdBlockPreferences.java | 61 ++++++++++++ chrome/app/generated_resources.grd | 10 ++ chrome/browser/browser_process_impl.cc | 3 +- - .../flags/android/cached_feature_flags.cc | 8 ++ + .../flags/android/cached_feature_flags.cc | 11 +++ .../browser/flags/CachedFeatureFlags.java | 10 ++ .../net/system_network_context_manager.cc | 4 + .../strings/android_chrome_strings.grd | 14 +++ @@ -21,7 +21,7 @@ Subject: Add option to configure the ad blocker filters URL chrome/common/pref_names.h | 1 + .../adblock_updater_service.cc | 6 +- .../adblock_updater_service.h | 3 +- - 18 files changed, 313 insertions(+), 5 deletions(-) + 18 files changed, 316 insertions(+), 5 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -30,7 +30,7 @@ Subject: Add option to configure the ad blocker filters URL 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 -@@ -815,6 +815,7 @@ chrome_java_resources = [ +@@ -826,6 +826,7 @@ chrome_java_resources = [ "java/res/layout/account_picker_new_account_row_legacy.xml", "java/res/layout/account_picker_row.xml", "java/res/layout/account_picker_row_legacy.xml", @@ -38,7 +38,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/add_languages_main.xml", "java/res/layout/add_to_homescreen_dialog.xml", "java/res/layout/auto_sign_in_first_run_dialog.xml", -@@ -1102,6 +1103,7 @@ chrome_java_resources = [ +@@ -1106,6 +1107,7 @@ chrome_java_resources = [ "java/res/xml/about_chrome_preferences.xml", "java/res/xml/accessibility_preferences.xml", "java/res/xml/account_management_preferences.xml", @@ -49,7 +49,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 -@@ -1318,6 +1318,8 @@ chrome_java_sources = [ +@@ -1307,6 +1307,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/photo_picker/DecodeVideoTask.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java", @@ -133,7 +133,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -66,6 +66,8 @@ +@@ -41,6 +41,8 @@ @@ -175,9 +175,9 @@ new file mode 100644 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 -@@ -61,6 +61,11 @@ +@@ -88,6 +88,11 @@ android:key="privacy" - android:order="14" + android:order="18" android:title="@string/prefs_privacy"/> + @@ -373,7 +373,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1075,7 +1075,8 @@ BrowserProcessImpl::adblock_updater() { +@@ -1066,7 +1066,8 @@ BrowserProcessImpl::adblock_updater() { adblock_updater_ = std::make_unique( g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(), std::move(scheduler), @@ -386,10 +386,21 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc --- a/chrome/browser/flags/android/cached_feature_flags.cc +++ b/chrome/browser/flags/android/cached_feature_flags.cc -@@ -36,6 +36,14 @@ std::string GetReachedCodeProfilerTrialGroup() { - } // namespace android - } // namespace chrome +@@ -8,6 +8,9 @@ + #include "base/android/jni_string.h" + #include "base/feature_list.h" ++#include "chrome/browser/browser_process.h" ++#include "chrome/common/pref_names.h" ++#include "components/prefs/pref_service.h" + #include "content/public/common/content_features.h" + #include "content/public/common/network_service_util.h" + +@@ -41,3 +44,11 @@ static jboolean JNI_CachedFeatureFlags_IsNetworkServiceWarmUpEnabled( + return content::IsOutOfProcessNetworkService() && + base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess); + } ++ +static ScopedJavaLocalRef JNI_CachedFeatureFlags_GetAdBlockFiltersURL(JNIEnv* env) { + return base::android::ConvertUTF8ToJavaString(env, g_browser_process->local_state()->GetString(prefs::kAdBlockFiltersURL)); +} @@ -397,14 +408,10 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows +static void JNI_CachedFeatureFlags_SetAdBlockFiltersURL(JNIEnv* env, const JavaParamRef& url) { + g_browser_process->local_state()->SetString(prefs::kAdBlockFiltersURL, base::android::ConvertJavaStringToUTF8(env, url)); +} -+ - static jboolean JNI_CachedFeatureFlags_IsNetworkServiceWarmUpEnabled( - JNIEnv* env) { - return content::IsOutOfProcessNetworkService() && 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 -@@ -253,6 +253,14 @@ public class CachedFeatureFlags { +@@ -260,6 +260,14 @@ public class CachedFeatureFlags { ChromeFeatureList.REACHED_CODE_PROFILER, "sampling_interval_us", 0)); } @@ -419,7 +426,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. */ -@@ -405,5 +413,7 @@ public class CachedFeatureFlags { +@@ -412,5 +420,7 @@ public class CachedFeatureFlags { @NativeMethods interface Natives { boolean isNetworkServiceWarmUpEnabled(); @@ -439,7 +446,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows #if !defined(OS_ANDROID) // QuicAllowed was not part of Android policy. const base::Value* value = -@@ -392,6 +394,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -393,6 +395,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); @@ -451,8 +458,8 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows 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 -@@ -1958,6 +1958,20 @@ To change this setting, <resetlink>reset sync

+ @@ -469,13 +476,13 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro + Visit help page + + - - - Drag from top and touch the back button to exit full screen. + + + 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 -@@ -2069,6 +2069,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2103,6 +2103,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; // capture devices without prompt. const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 46b09e31..e96bec9f 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -3,19 +3,19 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200 Subject: Add option to not persist tabs across sessions --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 4 +++- - .../browser/privacy/settings/PrivacySettings.java | 12 ++++++++++++ - .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ - 5 files changed, 29 insertions(+), 1 deletion(-) + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++- + .../chrome/browser/privacy/settings/PrivacySettings.java | 9 ++++++++- + .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ + 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -60,6 +60,9 @@ - - +@@ -35,6 +35,9 @@ + 0 + 1 + Close tabs on exit + Don\'t persist tabs between browsing sessions @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -25,6 +25,11 @@ +@@ -23,6 +23,11 @@ android:title="@string/always_incognito_title" android:summary="@string/always_incognito_summary" android:defaultValue="false" /> @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1182,8 +1182,10 @@ public class ChromeTabbedActivity extends ChromeActivity<resetlink>reset sync

<resetlink>reset sync

IMAGE diff --git a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch b/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch deleted file mode 100644 index 669425e3..00000000 --- a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +++ /dev/null @@ -1,540 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 23 Nov 2019 10:55:16 +0100 -Subject: Add user setting for DNS-over-HTTPS (DoH) custom URL - ---- - chrome/android/chrome_java_resources.gni | 2 + - chrome/android/chrome_java_sources.gni | 2 + - chrome/android/java/res/layout/doh_editor.xml | 67 ++++++++++++++ - chrome/android/java/res/values/values.xml | 2 + - .../android/java/res/xml/doh_preferences.xml | 25 +++++ - .../java/res/xml/privacy_preferences.xml | 5 + - .../chrome/browser/settings/DoHEditor.java | 92 +++++++++++++++++++ - .../browser/settings/DoHPreferences.java | 54 +++++++++++ - chrome/app/generated_resources.grd | 6 ++ - .../flags/android/cached_feature_flags.cc | 25 +++++ - .../browser/flags/CachedFeatureFlags.java | 24 +++++ - .../net/stub_resolver_config_reader.cc | 36 ++------ - .../strings/android_chrome_strings.grd | 11 +++ - chrome/common/chrome_features.cc | 4 +- - 14 files changed, 324 insertions(+), 31 deletions(-) - create mode 100644 chrome/android/java/res/layout/doh_editor.xml - create mode 100644 chrome/android/java/res/xml/doh_preferences.xml - create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/DoHEditor.java - create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/DoHPreferences.java - -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 -@@ -881,6 +881,7 @@ chrome_java_resources = [ - "java/res/layout/date_view.xml", - "java/res/layout/default_search_engine_first_run_fragment.xml", - "java/res/layout/device_item_list.xml", -+ "java/res/layout/doh_editor.xml", - "java/res/layout/distilled_page_font_family_spinner.xml", - "java/res/layout/distilled_page_prefs_view.xml", - "java/res/layout/editable_option_editor_footer.xml", -@@ -1112,6 +1113,7 @@ chrome_java_resources = [ - "java/res/xml/data_reduction_preferences.xml", - "java/res/xml/data_reduction_preferences_off_lite_mode.xml", - "java/res/xml/developer_preferences.xml", -+ "java/res/xml/doh_preferences.xml", - "java/res/xml/do_not_track_preferences.xml", - "java/res/xml/google_services_preferences.xml", - "java/res/xml/homepage_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 -@@ -1373,6 +1373,8 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java", - "java/src/org/chromium/chrome/browser/send_tab_to_self/DevicePickerBottomSheetAdapter.java", - "java/src/org/chromium/chrome/browser/send_tab_to_self/DevicePickerBottomSheetContent.java", -+ "java/src/org/chromium/chrome/browser/settings/DoHEditor.java", -+ "java/src/org/chromium/chrome/browser/settings/DoHPreferences.java", - "java/src/org/chromium/chrome/browser/send_tab_to_self/NotificationManager.java", - "java/src/org/chromium/chrome/browser/send_tab_to_self/NotificationSharedPrefManager.java", - "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridge.java", -diff --git a/chrome/android/java/res/layout/doh_editor.xml b/chrome/android/java/res/layout/doh_editor.xml -new file mode 100644 ---- /dev/null -+++ b/chrome/android/java/res/layout/doh_editor.xml -@@ -0,0 +1,67 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml ---- a/chrome/android/java/res/values/values.xml -+++ b/chrome/android/java/res/values/values.xml -@@ -80,6 +80,8 @@ - 400 - 200 - -+ https://www.bromite.org/doh -+ - - true - -diff --git a/chrome/android/java/res/xml/doh_preferences.xml b/chrome/android/java/res/xml/doh_preferences.xml -new file mode 100644 ---- /dev/null -+++ b/chrome/android/java/res/xml/doh_preferences.xml -@@ -0,0 +1,25 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml ---- a/chrome/android/java/res/xml/privacy_preferences.xml -+++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -19,6 +19,11 @@ - android:key="can_make_payment" - android:title="@string/can_make_payment_title" - android:summary="@string/settings_can_make_payment_toggle_label" /> -+ - { -+ CachedFeatureFlags.setDoHEnabled((boolean) newValue); -+ return true; -+ }); -+ -+ mDoHEdit = findPreference(PREF_DOH_EDIT); -+ updateCurrentDoHUrl(); -+ } -+ -+ private void updateCurrentDoHUrl() { -+ mDoHEdit.setSummary(CachedFeatureFlags.getDoHTemplates()); -+ } -+ -+ @Override -+ public void onResume() { -+ super.onResume(); -+ updateCurrentDoHUrl(); -+ } -+} -diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd ---- a/chrome/app/generated_resources.grd -+++ b/chrome/app/generated_resources.grd -@@ -6977,6 +6977,12 @@ the Bookmarks menu."> - - - -+ -+ Secure DNS -+ -+ -+ Configure DNS-over-HTTPS (DoH) secure DNS -+ - - Homepage - -diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc ---- a/chrome/browser/flags/android/cached_feature_flags.cc -+++ b/chrome/browser/flags/android/cached_feature_flags.cc -@@ -11,6 +11,10 @@ - #include "content/public/common/content_features.h" - #include "content/public/common/network_service_util.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::ConvertUTF8ToJavaString; - using base::android::JavaParamRef; -@@ -49,3 +53,24 @@ static jboolean JNI_CachedFeatureFlags_IsNetworkServiceWarmUpEnabled( - return content::IsOutOfProcessNetworkService() && - base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess); - } -+ -+static jboolean JNI_CachedFeatureFlags_GetDoHEnabled(JNIEnv* env) { -+ std::string doh_mode = g_browser_process->local_state()->GetString(prefs::kDnsOverHttpsMode); -+ return ((doh_mode == "secure") || (doh_mode == "auto")) -+ && !g_browser_process->local_state()->GetString(prefs::kDnsOverHttpsTemplates).empty(); -+} -+ -+static void JNI_CachedFeatureFlags_SetDoHEnabled(JNIEnv* env, jboolean enabled) { -+ if (enabled) -+ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsMode, "secure"); -+ else -+ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsMode, "off"); -+} -+ -+static ScopedJavaLocalRef JNI_CachedFeatureFlags_GetDoHTemplates(JNIEnv* env) { -+ return base::android::ConvertUTF8ToJavaString(env, g_browser_process->local_state()->GetString(prefs::kDnsOverHttpsTemplates)); -+} -+ -+static void JNI_CachedFeatureFlags_SetDoHTemplates(JNIEnv* env, const JavaParamRef& templates) { -+ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsTemplates, base::android::ConvertJavaStringToUTF8(env, templates)); -+} -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 -@@ -128,6 +128,26 @@ public class CachedFeatureFlags { - private static Map sOverridesTestFeatures; - private static String sReachedCodeProfilerTrialGroup; - -+ /** -+ * Records whether custom URL for DoH is enabled with native-side feature utilities. -+ * @param url Whether custom URL is enabled or not. -+ */ -+ public static void setDoHEnabled(boolean enabled) { -+ CachedFeatureFlagsJni.get().setDoHEnabled(enabled); -+ } -+ -+ public static boolean getDoHEnabled() { -+ return CachedFeatureFlagsJni.get().getDoHEnabled(); -+ } -+ -+ public static void setDoHTemplates(String t) { -+ CachedFeatureFlagsJni.get().setDoHTemplates(t); -+ } -+ -+ public static String getDoHTemplates() { -+ return CachedFeatureFlagsJni.get().getDoHTemplates(); -+ } -+ - /** - * Checks if a cached feature flag is enabled. - * -@@ -412,6 +432,10 @@ public class CachedFeatureFlags { - - @NativeMethods - interface Natives { -+ void setDoHEnabled(boolean enabled); -+ boolean getDoHEnabled(); -+ void setDoHTemplates(String templates); -+ String getDoHTemplates(); - boolean isNetworkServiceWarmUpEnabled(); - void setAdBlockFiltersURL(String url); - String getAdBlockFiltersURL(); -diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc ---- a/chrome/browser/net/stub_resolver_config_reader.cc -+++ b/chrome/browser/net/stub_resolver_config_reader.cc -@@ -141,28 +141,6 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state, - base::Value(SecureDnsConfig::ModeToString(default_secure_dns_mode))); - local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsTemplates, - base::Value(default_doh_templates)); -- -- // If the user has explicitly enabled or disabled the DoH experiment in -- // chrome://flags and the DoH UI setting is not visible, store that choice -- // in the user prefs so that it can be persisted after the experiment ends. -- // Also make sure to remove the stored prefs value if the user has changed -- // their chrome://flags selection to the default. -- if (!features::kDnsOverHttpsShowUiParam.Get()) { -- flags_ui::PrefServiceFlagsStorage flags_storage(local_state_); -- std::set entries = flags_storage.GetFlags(); -- if (entries.count("dns-over-https@1")) { -- // The user has "Enabled" selected. -- local_state_->SetString(prefs::kDnsOverHttpsMode, -- SecureDnsConfig::kModeAutomatic); -- } else if (entries.count("dns-over-https@2")) { -- // The user has "Disabled" selected. -- local_state_->SetString(prefs::kDnsOverHttpsMode, -- SecureDnsConfig::kModeOff); -- } else { -- // The user has "Default" selected. -- local_state_->ClearPref(prefs::kDnsOverHttpsMode); -- } -- } - } - - pref_change_registrar_.Add(prefs::kBuiltInDnsClientEnabled, pref_callback); -@@ -346,21 +324,21 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration( - parental_controls_checked_ = true; - } - -- if (record_metrics) { -- UMA_HISTOGRAM_ENUMERATION("Net.DNS.DnsConfig.SecureDnsMode", mode_details); -- } -- - std::string doh_templates = - local_state_->GetString(prefs::kDnsOverHttpsTemplates); -- std::string server_method; -+ if (doh_templates.empty()) { -+ secure_dns_mode = net::DnsConfig::SecureDnsMode::OFF; -+ } -+ LOG(INFO) << "DoH templates: '" << doh_templates << "' with mode " << SecureDnsConfig::ModeToString(secure_dns_mode); - std::vector dns_over_https_servers; - base::Optional> - servers_mojo; -- if (!doh_templates.empty() && -- secure_dns_mode != net::DnsConfig::SecureDnsMode::OFF) { -+ if (secure_dns_mode != net::DnsConfig::SecureDnsMode::OFF) { -+ std::string server_method; - for (base::StringPiece server_template : - chrome_browser_net::secure_dns::SplitGroup(doh_templates)) { - if (!net::dns_util::IsValidDohTemplate(server_template, &server_method)) { -+ LOG(WARNING) << "DoH templates: skipping invalid: '" << server_template << "'"; - continue; - } - -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 -@@ -590,6 +590,17 @@ CHAR-LIMIT guidelines: - Chrome Passwords - - -+ -+ -+ Edit DoH template URLs -+ -+ -+ DoH template URLs -+ -+ -+ Visit help page -+ -+ - - - Enter custom web address -diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc ---- a/chrome/common/chrome_features.cc -+++ b/chrome/common/chrome_features.cc -@@ -281,12 +281,12 @@ const base::Feature kDesktopPWAsRunOnOsLogin{"DesktopPWAsRunOnOsLogin", - - // Enable DNS over HTTPS (DoH). - const base::Feature kDnsOverHttps{"DnsOverHttps", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - // Set whether fallback to insecure DNS is allowed by default. This setting may - // be overridden for individual transactions. - const base::FeatureParam kDnsOverHttpsFallbackParam{&kDnsOverHttps, -- "Fallback", true}; -+ "Fallback", false}; - - // Supply one or more space-separated DoH server URI templates to use when this - // feature is enabled. If no templates are specified, then a hardcoded mapping --- -2.17.1 - diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index b3f28080..6b4619e7 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -10,7 +10,7 @@ Subject: Allow playing audio in background diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc -@@ -1053,6 +1053,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1080,6 +1080,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp void WebMediaPlayerImpl::EnabledAudioTracksChanged( const blink::WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3469,7 +3475,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3493,7 +3499,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { // Audio only stream is allowed to play when in background. // TODO: We should check IsBackgroundOptimizationCandidate here. But we need // to move the logic of checking video frames out of that function. diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 6f0fcf37..ff115629 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -5,9 +5,9 @@ Subject: AudioBuffer, AnalyserNode: fp mitigations Truncate base latency precision to two digits --- .../blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- - .../blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- + .../blink/renderer/modules/webaudio/audio_buffer.idl | 6 ------ .../blink/renderer/modules/webaudio/audio_context.cc | 4 +++- - 3 files changed, 9 insertions(+), 7 deletions(-) + 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl --- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl @@ -30,18 +30,16 @@ diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/thi diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl -@@ -37,12 +37,12 @@ +@@ -37,12 +37,6 @@ // Channel access readonly attribute unsigned long numberOfChannels; -- [HighEntropy, Measure, RaisesException] Float32Array getChannelData( -+ /*[HighEntropy, Measure, RaisesException] Float32Array getChannelData( - unsigned long channelIndex); - [HighEntropy, Measure, RaisesException] void copyFromChannel( - Float32Array destination, - unsigned long channelNumber, +- [HighEntropy=Direct, Measure, RaisesException] Float32Array getChannelData( +- unsigned long channelIndex); +- [HighEntropy, Measure, RaisesException] void copyFromChannel( +- Float32Array destination, +- unsigned long channelNumber, - optional unsigned long bufferOffset = 0); -+ optional unsigned long bufferOffset = 0); */ [RaisesException] void copyToChannel( Float32Array source, unsigned long channelNumber, diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch index 8de1075d..20bc6e9d 100644 --- a/build/patches/Automated-domain-substitution.patch +++ b/build/patches/Automated-domain-substitution.patch @@ -3,517 +3,503 @@ Date: Fri, 21 Aug 2020 13:41:07 +0200 Subject: Automated domain substitution --- - .gn | 2 +- - PRESUBMIT.py | 54 +- - .../devui/WebViewPackageError.java | 2 +- - build/android/pylib/constants/__init__.py | 2 +- - .../android/commands/unzip/Unzip.java | 2 +- - build/config/android/rules.gni | 2 +- - build/toolchain/cros_toolchain.gni | 2 +- - .../AutofillAssistantClient.java | 2 +- - .../browser/feed/FeedConfiguration.java | 4 +- - .../feedactionparser/FeedActionParser.java | 2 +- - .../chrome/browser/ChromeStringConstants.java | 6 +- - .../chrome/browser/ChromeTabbedActivity.java | 2 +- - .../chrome/browser/IntentHandler.java | 10 +- - .../customtabs/CustomButtonParams.java | 2 +- - .../browser/feedback/ConnectivityChecker.java | 4 +- - .../indicator/ConnectivityDetector.java | 4 +- - .../browser/omaha/RequestGenerator.java | 2 +- - .../suggestions/SuggestionsConfig.java | 2 +- - .../SuggestionsNavigationDelegate.java | 2 +- - chrome/app/PRESUBMIT.py | 8 +- - chrome/browser/about_flags.cc | 12 +- - .../apps/platform_apps/install_chrome_app.cc | 2 +- - .../browser/chrome_browser_application_mac.mm | 2 +- - chrome/browser/chromeos/app_mode/fake_cws.cc | 2 +- - .../backdrop_wallpaper_handlers.cc | 6 +- - .../chromeos/crostini/crostini_util.cc | 2 +- - .../customization/customization_document.cc | 2 +- - .../chromeos/drive/drivefs_test_support.cc | 2 +- - .../file_manager/private_api_drive.cc | 2 +- - .../file_manager/private_api_misc.cc | 2 +- - chrome/browser/chromeos/hats/hats_dialog.cc | 2 +- - .../recommend_apps_fetcher_impl.cc | 2 +- - .../login/session/user_session_manager.cc | 2 +- - .../chromeos/plugin_vm/plugin_vm_util.cc | 6 +- - .../chromeos/policy/heartbeat_scheduler.cc | 4 +- - .../remote_commands/crd_host_delegate.cc | 10 +- - .../protocol_handler_registry.cc | 4 +- - .../data_reduction_proxy_chrome_settings.cc | 4 +- - .../mixed_content_download_blocking.cc | 2 +- - .../cryptotoken_private_api.cc | 6 +- - .../enterprise_platform_keys_apitest_nss.cc | 2 +- - .../identity_launch_web_auth_flow_function.cc | 2 +- - .../chrome_management_api_delegate.cc | 2 +- - .../tab_capture_performance_test_base.cc | 2 +- - .../extensions/external_pref_loader.cc | 2 +- - chrome/browser/extensions/install_signer.cc | 2 +- - .../updater/chrome_update_client_config.cc | 2 +- - .../importer/edge_importer_browsertest_win.cc | 8 +- - .../importer/ie_importer_browsertest_win.cc | 30 +- - .../cast/cast_media_route_provider.cc | 4 +- - .../dial/dial_media_route_provider.cc | 12 +- - .../media/webrtc/webrtc_browsertest_common.cc | 2 +- - .../notification_platform_bridge_mac.mm | 2 +- - .../ads_page_load_metrics_observer.cc | 2 +- - chrome/browser/policy/policy_test_utils.cc | 2 +- - .../isolated/isolated_prerender_params.cc | 2 +- - chrome/browser/profiles/profile_window.cc | 2 +- - .../push_messaging_service_impl.cc | 2 +- - .../resources/chromeos/emulator/icons.html | 2 +- - chrome/browser/resources/downloads/icons.html | 2 +- - .../media_router/extension/manifest.yaml | 8 +- - .../browser/resources/pdf/elements/icons.html | 2 +- - .../resources/print_preview/ui/icons.html | 2 +- - .../app_management_page/icons.html | 2 +- - .../resources/settings/chromeos/os_icons.html | 2 +- - chrome/browser/resources/settings/icons.html | 2 +- - .../chrome_password_protection_service.cc | 4 +- - .../client_side_detection_service.cc | 2 +- - .../check_client_download_request_base.cc | 4 +- - .../ppapi_download_request.cc | 6 +- - ...ings_reset_prompt_model_browsertest_win.cc | 2 +- - chrome/browser/search/local_ntp_source.cc | 6 +- - chrome/browser/search/ntp_icon_source.cc | 2 +- - chrome/browser/signin/signin_ui_util.cc | 2 +- - .../browser/ssl/connection_help_tab_helper.cc | 2 +- - .../permission_request_creator_apiary.cc | 2 +- - .../supervised_user_service.cc | 2 +- - .../supervised_user_url_filter.cc | 12 +- - ...r_content_setting_bubble_model_delegate.cc | 4 +- - .../browser_navigator_browsertest_chromeos.cc | 2 +- - .../browser/ui/cocoa/share_menu_controller.mm | 2 +- - chrome/browser/ui/signin_view_controller.cc | 2 +- - .../toolbar/media_router_contextual_menu.cc | 6 +- - .../views/accessibility/invert_bubble_view.cc | 6 +- - .../ui/views/network_profile_bubble_view.cc | 2 +- - .../ui/views/outdated_upgrade_bubble_view.cc | 2 +- - .../add_supervision/add_supervision_ui.cc | 4 +- - .../chromeos/login/gaia_screen_handler.cc | 2 +- - .../ui/webui/interstitials/interstitial_ui.cc | 2 +- - .../browser/ui/webui/management_ui_handler.cc | 2 +- - chrome/browser/ui/webui/ntp/new_tab_ui.cc | 2 +- - .../ui/webui/ntp/ntp_resource_cache.cc | 8 +- - .../webui/settings/reset_settings_handler.cc | 2 +- - .../settings_localized_strings_provider.cc | 2 +- - .../web_applications/web_app_install_task.cc | 2 +- - .../chrome_authenticator_request_delegate.cc | 6 +- - .../mojom/engine_requests.mojom | 2 +- - .../cloud_print/cloud_print_constants.cc | 2 +- - .../common/extensions/api/_api_features.json | 4 +- - .../extensions/api/image_writer_private.idl | 2 +- - .../extensions/api/webrtc_audio_private.idl | 2 +- - .../extensions/chrome_extensions_client.cc | 4 +- - .../api/bookmarks/basic/manifest.json | 2 +- - .../examples/api/bookmarks/basic/popup.html | 2 +- - .../docs/examples/api/commands/background.js | 2 +- - .../default_command_override/background.js | 2 +- - .../api/deviceInfo/basic/manifest.json | 2 +- - .../examples/api/deviceInfo/basic/popup.html | 2 +- - .../download_filename_controller/options.html | 4 +- - .../api/downloads/download_manager/popup.html | 2 +- - .../api/eventPage/basic/background.js | 8 +- - .../api/eventPage/basic/manifest.json | 2 +- - .../examples/api/notifications/options.html | 2 +- - .../api/omnibox/newtab_search/background.js | 2 +- - .../override/override_igoogle/redirect.html | 2 +- - .../docs/examples/api/tabs/pin/background.js | 2 +- - .../api/water_alarm_notification/popup.html | 2 +- - .../webview/capturevisibleregion/test2.html | 2 +- - .../apps/background-simple/index.html | 10 +- - .../apps/hello-java/HelloLicenseServlet.java | 4 +- - .../apps/hello-python/httplib2/__init__.py | 2 +- - .../docs/examples/apps/hello-python/main.py | 6 +- - .../examples/extensions/app_launcher/popup.js | 2 +- - .../docs/examples/extensions/buildbot/bg.js | 16 +- - .../extensions/buildbot/manifest.json | 6 +- - .../examples/extensions/buildbot/popup.js | 6 +- - .../extensions/calendar/javascript/options.js | 2 +- - .../extensions/calendar/views/options.html | 2 +- - .../extensions/chrome_search/background.js | 6 +- - .../extensions/chrome_search/manifest.json | 2 +- - .../extensions/constant_context/background.js | 2 +- - .../extensions/constant_context/manifest.json | 4 +- - .../extensions/download_images/background.js | 2 +- - .../extensions/email_this_page/options.js | 2 +- - .../docs/examples/extensions/fx/bg.js | 10 +- - .../examples/extensions/gdocs/background.html | 10 +- - .../extensions/gdocs/chrome_ex_oauth.html | 2 +- - .../examples/extensions/gdocs/manifest.json | 8 +- - .../examples/extensions/gdocs/options.html | 2 +- - .../docs/examples/extensions/gdocs/popup.html | 18 +- - .../examples/extensions/gmail/background.js | 2 +- - .../examples/extensions/gmail/manifest.json | 2 +- - .../extensions/irc/servlet/index.html | 2 +- - .../examples/extensions/mappy/manifest.json | 6 +- - .../docs/examples/extensions/mappy/popup.js | 4 +- - .../extensions/maps_app/manifest.json | 4 +- - .../examples/extensions/news/css/feed.css | 2 +- - .../examples/extensions/news/css/options.css | 2 +- - .../extensions/news/javascript/feed.js | 2 +- - .../extensions/news/javascript/util.js | 4 +- - .../examples/extensions/news/manifest.json | 2 +- - .../examples/extensions/news/views/feed.html | 6 +- - .../extensions/news/views/options.html | 2 +- - .../examples/extensions/news_a11y/feed.js | 4 +- - .../extensions/news_a11y/manifest.json | 4 +- - .../news_i18n/_locales/en/messages.json | 2 +- - .../extensions/news_i18n/manifest.json | 2 +- - .../extensions/oauth_contacts/background.js | 10 +- - .../extensions/oauth_contacts/contacts.html | 2 +- - .../extensions/oauth_contacts/manifest.json | 8 +- - .../plugin_settings/js/plugin_list_test.html | 2 +- - .../js/plugin_settings_test.html | 20 +- - .../plugin_settings/js/rule_list_test.html | 2 +- - .../extensions/talking_alarm_clock/popup.html | 4 +- - .../examples/extensions/ttsdemo/ttsdemo.html | 2 +- - .../howto/tab_shortcuts/tab_shortcuts.js | 2 +- - .../tutorials/analytics/manifest.json | 2 +- - .../examples/tutorials/analytics/popup.js | 2 +- - .../broken_background_color/background.js | 2 +- - .../get_started_complete/background.js | 2 +- - .../examples/tutorials/getstarted/popup.html | 2 +- - .../oauth_tutorial_complete/manifest.json | 2 +- - .../oauth_tutorial_complete/oauth.js | 4 +- - .../extensions/docs/server2/PRESUBMIT.py | 2 +- - .../extensions/docs/server2/admin_servlets.py | 2 +- - .../docs/server2/gcs_file_system.py | 2 +- - .../extensions/docs/server2/patch_servlet.py | 6 +- - .../extensions/docs/server2/redirector.py | 8 +- - .../docs/server2/rietveld_patcher.py | 10 +- - .../common/extensions/docs/server2/servlet.py | 2 +- - .../extensions/docs/server2/update_cache.py | 2 +- - .../extensions/docs/server2/url_constants.py | 12 +- - .../extensions/docs/static/js/search.js | 2 +- - .../common/extensions/docs/static/js/site.js | 2 +- - .../docs/templates/articles/a11y.html | 10 +- - .../docs/templates/articles/about_apps.html | 12 +- - .../docs/templates/articles/activeTab.html | 2 +- - .../docs/templates/articles/analytics.html | 6 +- - .../templates/articles/angular_framework.html | 26 +- - .../docs/templates/articles/api_index.html | 2 +- - .../docs/templates/articles/api_other.html | 2 +- - .../templates/articles/app_architecture.html | 4 +- - .../templates/articles/app_bluetooth.html | 4 +- - .../articles/app_codelab_basics.html | 2 +- - .../articles/app_codelab_filesystem.html | 4 +- - .../articles/app_codelab_images.html | 6 +- - .../articles/app_codelab_import_todomvc.html | 2 +- - .../templates/articles/app_codelab_intro.html | 4 +- - .../articles/app_codelab_publish.html | 2 +- - .../docs/templates/articles/app_external.html | 8 +- - .../templates/articles/app_frameworks.html | 2 +- - .../docs/templates/articles/app_identity.html | 16 +- - .../docs/templates/articles/app_network.html | 2 +- - .../docs/templates/articles/apps.html | 12 +- - .../articles/arc_in_app_payments.html | 14 +- - .../templates/articles/arc_playservices.html | 14 +- - .../docs/templates/articles/autoupdate.html | 10 +- - .../templates/articles/background_pages.html | 2 +- - .../articles/chrome_apps_on_mobile.html | 14 +- - .../articles/contentSecurityPolicy.html | 2 +- - .../templates/articles/content_scripts.html | 4 +- - .../articles/declare_permissions.html | 2 +- - .../articles/desktop_notifications.html | 8 +- - .../docs/templates/articles/develop_apps.html | 4 +- - .../docs/templates/articles/devguide.html | 2 +- - .../docs/templates/articles/devtools.html | 20 +- - .../docs/templates/articles/experimental.html | 8 +- - .../templates/articles/extensions_index.html | 14 +- - .../articles/external_extensions.html | 14 +- - .../docs/templates/articles/faq.html | 20 +- - .../docs/templates/articles/game_engines.html | 4 +- - .../docs/templates/articles/getstarted.html | 8 +- - .../templates/articles/getstarted_arc.html | 20 +- - .../docs/templates/articles/hosting.html | 8 +- - .../templates/articles/hosting_changes.html | 34 +- - .../docs/templates/articles/inform_users.html | 2 +- - .../docs/templates/articles/inline_faq.html | 4 +- - .../templates/articles/linux_hosting.html | 12 +- - .../docs/templates/articles/manifest/app.html | 4 +- - .../articles/manifest/default_locale.html | 2 +- - .../articles/manifest/description.html | 4 +- - .../manifest/externally_connectable.html | 4 +- - .../articles/manifest/homepage_url.html | 4 +- - .../templates/articles/manifest/icons.html | 4 +- - .../docs/templates/articles/manifest/key.html | 10 +- - .../articles/manifest/kiosk_enabled.html | 28 +- - .../articles/manifest/manifest_version.html | 2 +- - .../manifest/minimum_chrome_version.html | 2 +- - .../articles/manifest/nacl_modules.html | 2 +- - .../templates/articles/manifest/name.html | 4 +- - .../articles/manifest/requirements.html | 6 +- - .../templates/articles/manifest/sandbox.html | 10 +- - .../templates/articles/manifest/storage.html | 6 +- - .../articles/manifest/url_handlers.html | 2 +- - .../templates/articles/manifest/version.html | 2 +- - .../manifest/web_accessible_resources.html | 6 +- - .../templates/articles/match_patterns.html | 30 +- - .../docs/templates/articles/messaging.html | 4 +- - .../articles/migrating_to_manifest_v3.html | 12 +- - .../migrating_to_service_workers.html | 14 +- - .../docs/templates/articles/migration.html | 362 +++---- - .../templates/articles/nativeMessaging.html | 12 +- - .../docs/templates/articles/npapi.html | 6 +- - .../docs/templates/articles/offline_apps.html | 2 +- - .../templates/articles/offline_storage.html | 10 +- - .../docs/templates/articles/overview.html | 4 +- - .../docs/templates/articles/packaging.html | 6 +- - .../docs/templates/articles/performance.html | 6 +- - .../articles/permission_warnings.html | 6 +- - .../docs/templates/articles/publish_app.html | 6 +- - .../templates/articles/richNotifications.html | 4 +- - .../templates/articles/sandboxingEval.html | 4 +- - .../docs/templates/articles/security.html | 20 +- - .../templates/articles/sencha_framework.html | 2 +- - .../templates/articles/settings_override.html | 8 +- - .../templates/articles/single_purpose.html | 28 +- - .../docs/templates/articles/themes.html | 10 +- - .../templates/articles/tut_analytics.html | 16 +- - .../templates/articles/tut_debugging.html | 10 +- - .../tut_migration_to_manifest_v2.html | 2 +- - .../docs/templates/articles/tut_oauth.html | 22 +- - .../docs/templates/articles/tutorials.html | 2 +- - .../templates/articles/user_interface.html | 12 +- - .../docs/templates/articles/user_privacy.html | 6 +- - .../docs/templates/articles/webstore.html | 2 +- - .../docs/templates/articles/xhr.html | 16 +- - .../intros/bluetooth_low_energy.html | 2 +- - .../docs/templates/intros/bookmarks.html | 4 +- - .../docs/templates/intros/browserAction.html | 2 +- - .../docs/templates/intros/browsingData.html | 2 +- - .../templates/intros/certificateProvider.html | 4 +- - .../docs/templates/intros/commands.html | 2 +- - .../templates/intros/contentSettings.html | 2 +- - .../docs/templates/intros/cookies.html | 4 +- - .../templates/intros/declarativeContent.html | 6 +- - .../intros/declarativeNetRequest.html | 18 +- - .../intros/declarativeWebRequest.html | 10 +- - .../intros/devtools_inspectedWindow.html | 2 +- - .../docs/templates/intros/downloads.html | 2 +- - .../intros/enterprise_deviceAttributes.html | 2 +- - .../intros/enterprise_platformKeys.html | 2 +- - .../docs/templates/intros/events.html | 8 +- - .../docs/templates/intros/fontSettings.html | 2 +- - .../docs/templates/intros/history.html | 4 +- - .../docs/templates/intros/i18n.html | 10 +- - .../docs/templates/intros/input_ime.html | 2 +- - .../templates/intros/networkingPrivate.html | 2 +- - .../docs/templates/intros/pageAction.html | 2 +- - .../docs/templates/intros/permissions.html | 14 +- - .../docs/templates/intros/privacy.html | 2 +- - .../docs/templates/intros/storage.html | 2 +- - .../docs/templates/intros/tabs.html | 2 +- - .../docs/templates/intros/webNavigation.html | 6 +- - .../docs/templates/intros/webRequest.html | 8 +- - .../docs/templates/intros/webview_tag.html | 12 +- - .../docs/templates/intros/windows.html | 6 +- - .../docs/templates/json/apps_sidenav.json | 2 +- - .../docs/templates/json/chrome_sidenav.json | 2 +- - .../templates/json/content_providers.json | 2 +- - .../templates/json/extensions_sidenav.json | 4 +- - .../docs/templates/json/intro_tables.json | 22 +- - .../docs/templates/json/strings.json | 40 +- - .../docs/templates/private/api_reference.html | 2 +- - .../docs/templates/private/article.html | 6 +- - .../docs/templates/private/fatnav.html | 2 +- - .../private/intro_tables/master_message.html | 2 +- - .../private/permissions/background.html | 2 +- - .../private/permissions/favicon.html | 2 +- - .../private/permissions/notifications.html | 4 +- - .../private/permissions/pointer_lock.html | 2 +- - .../docs/templates/private/site.html | 10 +- - .../docs/templates/private/warning_beta.html | 4 +- - .../docs/templates/private/warning_dev.html | 2 +- - .../templates/private/warning_master.html | 2 +- - .../docs/templates/public/apps/redirects.json | 18 +- - .../public/extensions/redirects.json | 10 +- - .../docs/templates/public/owners.html | 2 +- - chrome/common/google_url_loader_throttle.cc | 4 +- - chrome/common/service_process.mojom | 2 +- - chrome/common/url_constants.cc | 226 ++--- - .../gaiacp/gaia_credential_base.cc | 8 +- - .../setup/google_chrome_behaviors.cc | 2 +- - .../subresource_redirect_params.cc | 2 +- - chrome/utility/importer/ie_importer_win.cc | 2 +- - .../chromecast/shell/CastCrashUploader.java | 6 +- - chromeos/components/drivefs/drivefs_auth.cc | 2 +- - .../multidevice/remote_device_test_util.cc | 2 +- - .../device_sync/cryptauth_client_impl.cc | 8 +- - .../win/port_monitor/port_monitor.cc | 2 +- - .../arc/mojom/accessibility_helper.mojom | 14 +- - components/arc/mojom/app_permissions.mojom | 2 +- - components/arc/mojom/bluetooth.mojom | 10 +- - components/arc/mojom/file_system.mojom | 6 +- - components/arc/mojom/intent_helper.mojom | 2 +- - .../autofill/content/renderer/form_cache.cc | 4 +- - .../renderer/page_passwords_analyser.cc | 2 +- - .../cronet_consumer_view_controller.m | 4 +- - .../domain_reliability/bake_in_configs.py | 286 +++--- - components/feed/core/feed_networking_host.cc | 2 +- - .../minidump_uploader/MinidumpUploader.java | 2 +- - .../policy/resources/policy_templates.json | 930 +++++++++--------- - .../CaptivePortalHelper.java | 2 +- - .../components/sync/SyncConstants.java | 2 +- - .../firstrun/VariationsSeedFetcher.java | 2 +- - .../browser/webauth/authenticator_common.cc | 6 +- - content/common/renderer.mojom | 2 +- - .../pepper/pepper_media_device_manager.cc | 2 +- - .../chromium/content_shell/ShellManager.java | 2 +- - device/bluetooth/bluetooth_adapter_mac.mm | 2 +- - .../bluetooth/bluetooth_classic_device_mac.mm | 4 +- - device/fido/fido_test_data.h | 2 +- - extensions/common/api/socket.idl | 2 +- - extensions/common/api/sockets_udp.idl | 4 +- - .../lib/browser/protocol/headless_handler.cc | 2 +- - ios/build/chrome_build.gni | 2 +- - ios/chrome/browser/autofill/BUILD.gn | 4 +- - ios/chrome/browser/omaha/omaha_service.mm | 2 +- - ios/chrome/browser/u2f/u2f_controller.mm | 4 +- - .../content_suggestions/ntp_home_mediator.mm | 2 +- - ios/chrome/browser/ui/ntp/incognito_view.mm | 2 +- - .../ui/ntp/notification_promo_whats_new.mm | 2 +- - .../table_cell_catalog_view_controller.mm | 8 +- - ios/third_party/firebase/cipd.yaml | 4 +- - ios/web_view/shell/shell_view_controller.m | 6 +- - .../video/chromeos/mojom/camera3.mojom | 6 +- - .../video/chromeos/mojom/camera_common.mojom | 6 +- - .../chromeos/mojom/camera_metadata.mojom | 4 +- - media/mojo/mojom/provision_fetcher.mojom | 2 +- - native_client_sdk/src/doc/_book.yaml | 2 +- - net/http/transport_security_state_static.json | 510 +++++----- - .../org/chromium/chromoting/Chromoting.java | 4 +- - .../chromoting/PrivacyPolicyActivity.java | 2 +- - .../chromoting/TermsOfServiceActivity.java | 2 +- - .../chromoting/help/HelpAndFeedbackBasic.java | 6 +- - .../chromoting/jni/JniOAuthTokenGetter.java | 4 +- - .../device/public/mojom/geoposition.mojom | 2 +- - .../network/public/mojom/cookie_manager.mojom | 4 +- - .../public/mojom/network_context.mojom | 4 +- - .../public/mojom/network_service.mojom | 4 +- - .../network/public/mojom/udp_socket.mojom | 2 +- - .../memory_instrumentation.mojom | 4 +- - services/tracing/public/mojom/constants.mojom | 2 +- - .../public/mojom/perfetto_service.mojom | 4 +- - third_party/afl/src/afl-as.c | 2 +- - .../mojom/payments/payment_handler_host.mojom | 2 +- - .../mojom/payments/payment_request.mojom | 2 +- - .../peer_connection_tracker.mojom | 2 +- - .../mojom/remote_objects/remote_objects.mojom | 2 +- - .../core/css/css_properties_ranking.json5 | 2 +- - .../blink/renderer/core/frame/deprecation.cc | 46 +- - .../blink/renderer/core/frame/settings.json5 | 4 +- - .../renderer/core/html/html_iframe_element.cc | 2 +- - .../core/html/media/autoplay_policy.cc | 4 +- - .../core/html/media/html_media_element.cc | 4 +- - .../renderer/core/loader/threadable_loader.cc | 2 +- - .../modules/bluetooth/bluetooth_error.cc | 16 +- - .../modules/clipboard/clipboard_promise.cc | 2 +- - .../encryptedmedia/encrypted_media_utils.h | 2 +- - .../modules/geolocation/geolocation.cc | 2 +- - .../modules/indexeddb/indexed_db_names.json5 | 2 +- - .../modules/webaudio/audio_context.cc | 4 +- - .../modules/webmidi/navigator_web_midi.cc | 2 +- - .../platform/runtime_enabled_features.json5 | 2 +- - .../platform/weborigin/security_origin.cc | 2 +- - third_party/blink/tools/blinkpy/PRESUBMIT.py | 2 +- - .../blink/tools/blinkpy/common/net/git_cl.py | 6 +- - .../blinkpy/common/net/results_fetcher.py | 4 +- - .../blink/tools/blinkpy/common/pretty_diff.py | 2 +- - .../tools/blinkpy/common/system/filesystem.py | 2 +- - .../tools/blinkpy/common/system/profiler.py | 2 +- - .../blink/tools/blinkpy/style/filter.py | 2 +- - .../wpt/tools/webdriver/webdriver/client.py | 2 +- - .../third_party/wpt/wpt/tools/wpt/android.py | 2 +- - .../third_party/wpt/wpt/tools/wpt/browser.py | 26 +- - .../third_party/wpt/wpt/tools/wpt/run.py | 4 +- - .../tools/blinkpy/w3c/chromium_commit.py | 2 +- - .../tools/blinkpy/w3c/chromium_commit_mock.py | 2 +- - third_party/blink/tools/blinkpy/w3c/common.py | 4 +- - .../tools/blinkpy/w3c/export_notifier.py | 4 +- - third_party/blink/tools/blinkpy/w3c/gerrit.py | 6 +- - .../tools/blinkpy/w3c/import_notifier.py | 2 +- - .../blink/tools/blinkpy/w3c/monorail.py | 2 +- - .../tools/blinkpy/w3c/pr_cleanup_tool.py | 2 +- - .../blink/tools/blinkpy/w3c/test_exporter.py | 4 +- - .../blink/tools/blinkpy/w3c/test_importer.py | 12 +- - third_party/blink/tools/move_blink_source.py | 2 +- - .../print_stale_test_expectations_entries.py | 2 +- - .../channel/AndroidChannelConstants.java | 2 +- - .../channel/GcmUpstreamSenderService.java | 2 +- - .../externs/chrome_extensions.js | 6 +- - .../crashpad/crashpad/doc/appengine/main.go | 4 +- - .../util/misc/capture_context_win.asm | 4 +- - .../util/misc/capture_context_win_arm64.asm | 2 +- - third_party/google-truth/cipd.yaml | 2 +- - third_party/libxml/src/aclocal.m4 | 2 +- - third_party/mozilla/NSURL+Utils.m | 2 +- - third_party/mozilla/NSWorkspace+Utils.m | 4 +- - third_party/protobuf/configure.ac | 2 +- - .../protobuf/conformance/conformance_objc.m | 2 +- - .../protobuf/conformance/conformance_ruby.rb | 2 +- - .../protobuf/m4/ax_cxx_compile_stdcxx.m4 | 4 +- - third_party/protobuf/objectivec/GPBArray.m | 2 +- - .../protobuf/objectivec/GPBCodedInputStream.m | 4 +- - .../objectivec/GPBCodedOutputStream.m | 2 +- - .../protobuf/objectivec/GPBDescriptor.m | 2 +- - .../protobuf/objectivec/GPBDictionary.m | 2 +- - .../objectivec/GPBExtensionInternals.m | 2 +- - .../objectivec/GPBExtensionRegistry.m | 2 +- - third_party/protobuf/objectivec/GPBMessage.m | 2 +- - .../protobuf/objectivec/GPBProtocolBuffers.m | 2 +- - .../protobuf/objectivec/GPBRootObject.m | 2 +- - .../protobuf/objectivec/GPBUnknownField.m | 2 +- - .../protobuf/objectivec/GPBUnknownFieldSet.m | 2 +- - .../protobuf/objectivec/GPBUtilities.m | 2 +- - .../protobuf/objectivec/GPBWellKnownTypes.m | 4 +- - .../protobuf/objectivec/GPBWireFormat.m | 2 +- - .../protobuf/ruby/lib/google/protobuf.rb | 2 +- - .../ruby/lib/google/protobuf/message_exts.rb | 2 +- - .../lib/google/protobuf/repeated_field.rb | 2 +- - .../lib/google/protobuf/well_known_types.rb | 6 +- - third_party/tcmalloc/vendor/configure.ac | 4 +- - .../scripts/customtabs_benchmark.py | 2 +- - .../plugin/NoAndroidAsyncTaskCheck.java | 2 +- - .../NoContextGetApplicationContext.java | 2 +- - .../plugin/NoRedundantFieldInitCheck.java | 2 +- - tools/checklicenses/checklicenses.py | 2 +- - tools/chrome_proxy/testserver/server.go | 4 +- - tools/emacs/gn.el | 6 +- - tools/json_schema_compiler/preview.py | 2 +- - tools/mb/mb.py | 8 +- - tools/perf/benchmarks/dummy_benchmark.py | 6 +- - tools/perf/benchmarks/system_health.py | 24 +- - tools/perf/core/perf_benchmark.py | 2 +- - tools/perf/core/results_dashboard.py | 12 +- - .../core/test_data/benchmarks_to_shard.json | 44 +- - .../perf/core/test_data/test_timing_data.json | 52 +- - .../test_data/test_timing_data_1_build.json | 22 +- - .../generate_legacy_perf_dashboard_json.py | 2 +- - tools/perf/page_sets/alexa1-10000-urls.json | 124 +-- - .../system_health/system_health_stories.py | 2 +- - tools/web_dev_style/css_checker.py | 6 +- - tools/web_dev_style/js_checker.py | 8 +- - .../foreground/elements/icons.html | 2 +- - .../chromeos_user_pod_template.html | 2 +- - .../account_picker/user_pod_template.html | 2 +- - ui/webui/resources/cr_elements/icons.html | 4 +- - .../weblayer/shell/WebLayerShellActivity.java | 2 +- - 497 files changed, 2486 insertions(+), 2486 deletions(-) + PRESUBMIT.py | 54 +- + .../devui/WebViewPackageError.java | 2 +- + build/android/pylib/constants/__init__.py | 2 +- + .../android/commands/unzip/Unzip.java | 2 +- + build/config/android/rules.gni | 2 +- + build/toolchain/cros_toolchain.gni | 2 +- + .../AutofillAssistantClient.java | 2 +- + .../browser/feed/FeedConfiguration.java | 4 +- + .../feedactionparser/FeedActionParser.java | 2 +- + .../chrome/browser/ChromeStringConstants.java | 6 +- + .../chrome/browser/ChromeTabbedActivity.java | 2 +- + .../chrome/browser/IntentHandler.java | 10 +- + .../customtabs/CustomButtonParams.java | 2 +- + .../browser/feedback/ConnectivityChecker.java | 4 +- + .../chrome/browser/help/HelpAndFeedback.java | 2 +- + .../indicator/ConnectivityDetector.java | 4 +- + .../browser/omaha/RequestGenerator.java | 2 +- + .../suggestions/SuggestionsConfig.java | 2 +- + .../SuggestionsNavigationDelegate.java | 2 +- + chrome/app/PRESUBMIT.py | 8 +- + chrome/browser/about_flags.cc | 12 +- + .../apps/platform_apps/install_chrome_app.cc | 2 +- + .../browser/chrome_browser_application_mac.mm | 2 +- + chrome/browser/chromeos/app_mode/fake_cws.cc | 2 +- + .../backdrop_wallpaper_handlers.cc | 6 +- + .../chromeos/crostini/crostini_util.cc | 2 +- + .../customization/customization_document.cc | 2 +- + .../chromeos/drive/drivefs_test_support.cc | 2 +- + .../file_manager/private_api_drive.cc | 2 +- + .../file_manager/private_api_misc.cc | 2 +- + chrome/browser/chromeos/hats/hats_dialog.cc | 2 +- + .../recommend_apps_fetcher_impl.cc | 2 +- + .../login/session/user_session_manager.cc | 2 +- + .../chromeos/plugin_vm/plugin_vm_util.cc | 6 +- + .../chromeos/policy/heartbeat_scheduler.cc | 4 +- + .../remote_commands/crd_host_delegate.cc | 10 +- + .../protocol_handler_registry.cc | 4 +- + .../data_reduction_proxy_chrome_settings.cc | 4 +- + .../mixed_content_download_blocking.cc | 2 +- + .../cryptotoken_private_api.cc | 6 +- + .../enterprise_platform_keys_apitest_nss.cc | 2 +- + .../identity_launch_web_auth_flow_function.cc | 2 +- + .../chrome_management_api_delegate.cc | 2 +- + .../tab_capture_performance_test_base.cc | 2 +- + .../extensions/external_pref_loader.cc | 2 +- + chrome/browser/extensions/install_signer.cc | 2 +- + .../updater/chrome_update_client_config.cc | 2 +- + .../importer/edge_importer_browsertest_win.cc | 8 +- + .../importer/ie_importer_browsertest_win.cc | 30 +- + .../cast/cast_media_route_provider.cc | 4 +- + .../dial/dial_media_route_provider.cc | 12 +- + .../media/webrtc/webrtc_browsertest_common.cc | 2 +- + .../notification_platform_bridge_mac.mm | 2 +- + .../ads_page_load_metrics_observer.cc | 2 +- + chrome/browser/policy/policy_test_utils.cc | 2 +- + .../isolated/isolated_prerender_params.cc | 4 +- + chrome/browser/profiles/profile_window.cc | 2 +- + .../push_messaging_service_impl.cc | 2 +- + .../resources/chromeos/emulator/icons.html | 2 +- + chrome/browser/resources/downloads/icons.html | 2 +- + .../media_router/extension/manifest.yaml | 8 +- + .../browser/resources/pdf/elements/icons.html | 2 +- + .../resources/print_preview/ui/icons.html | 2 +- + .../app_management_page/icons.html | 2 +- + .../resources/settings/chromeos/os_icons.html | 2 +- + chrome/browser/resources/settings/icons.html | 2 +- + .../chrome_password_protection_service.cc | 4 +- + .../client_side_detection_service.cc | 2 +- + .../check_client_download_request_base.cc | 4 +- + .../ppapi_download_request.cc | 6 +- + ...ings_reset_prompt_model_browsertest_win.cc | 2 +- + chrome/browser/search/local_ntp_source.cc | 6 +- + chrome/browser/search/ntp_icon_source.cc | 2 +- + chrome/browser/signin/signin_ui_util.cc | 2 +- + .../browser/ssl/connection_help_tab_helper.cc | 2 +- + .../permission_request_creator_apiary.cc | 2 +- + .../supervised_user_service.cc | 2 +- + .../supervised_user_url_filter.cc | 12 +- + ...r_content_setting_bubble_model_delegate.cc | 4 +- + .../browser_navigator_browsertest_chromeos.cc | 2 +- + .../browser/ui/cocoa/share_menu_controller.mm | 2 +- + chrome/browser/ui/signin_view_controller.cc | 2 +- + .../toolbar/media_router_contextual_menu.cc | 6 +- + .../views/accessibility/invert_bubble_view.cc | 6 +- + .../ui/views/network_profile_bubble_view.cc | 2 +- + .../ui/views/outdated_upgrade_bubble_view.cc | 2 +- + .../internals_ui_handler.cc | 2 +- + .../add_supervision/add_supervision_ui.cc | 4 +- + .../chromeos/login/gaia_screen_handler.cc | 2 +- + .../ui/webui/interstitials/interstitial_ui.cc | 2 +- + .../browser/ui/webui/management_ui_handler.cc | 2 +- + chrome/browser/ui/webui/ntp/new_tab_ui.cc | 2 +- + .../ui/webui/ntp/ntp_resource_cache.cc | 8 +- + .../webui/settings/reset_settings_handler.cc | 2 +- + .../settings_localized_strings_provider.cc | 2 +- + .../web_applications/web_app_install_task.cc | 2 +- + .../chrome_authenticator_request_delegate.cc | 6 +- + .../mojom/engine_requests.mojom | 2 +- + .../cloud_print/cloud_print_constants.cc | 2 +- + .../common/extensions/api/_api_features.json | 4 +- + .../extensions/api/image_writer_private.idl | 2 +- + .../extensions/api/webrtc_audio_private.idl | 2 +- + .../extensions/chrome_extensions_client.cc | 4 +- + .../api/bookmarks/basic/manifest.json | 2 +- + .../examples/api/bookmarks/basic/popup.html | 2 +- + .../docs/examples/api/commands/background.js | 2 +- + .../default_command_override/background.js | 2 +- + .../api/deviceInfo/basic/manifest.json | 2 +- + .../examples/api/deviceInfo/basic/popup.html | 2 +- + .../download_filename_controller/options.html | 4 +- + .../api/downloads/download_manager/popup.html | 2 +- + .../api/eventPage/basic/background.js | 8 +- + .../api/eventPage/basic/manifest.json | 2 +- + .../examples/api/notifications/options.html | 2 +- + .../api/omnibox/newtab_search/background.js | 2 +- + .../override/override_igoogle/redirect.html | 2 +- + .../docs/examples/api/tabs/pin/background.js | 2 +- + .../api/water_alarm_notification/popup.html | 2 +- + .../webview/capturevisibleregion/test2.html | 2 +- + .../apps/background-simple/index.html | 10 +- + .../apps/hello-java/HelloLicenseServlet.java | 4 +- + .../apps/hello-python/httplib2/__init__.py | 2 +- + .../docs/examples/apps/hello-python/main.py | 6 +- + .../examples/extensions/app_launcher/popup.js | 2 +- + .../docs/examples/extensions/buildbot/bg.js | 16 +- + .../extensions/buildbot/manifest.json | 6 +- + .../examples/extensions/buildbot/popup.js | 6 +- + .../extensions/calendar/javascript/options.js | 2 +- + .../extensions/calendar/views/options.html | 2 +- + .../extensions/chrome_search/background.js | 6 +- + .../extensions/chrome_search/manifest.json | 2 +- + .../extensions/constant_context/background.js | 2 +- + .../extensions/constant_context/manifest.json | 4 +- + .../extensions/download_images/background.js | 2 +- + .../extensions/email_this_page/options.js | 2 +- + .../docs/examples/extensions/fx/bg.js | 10 +- + .../examples/extensions/gdocs/background.html | 10 +- + .../extensions/gdocs/chrome_ex_oauth.html | 2 +- + .../examples/extensions/gdocs/manifest.json | 8 +- + .../examples/extensions/gdocs/options.html | 2 +- + .../docs/examples/extensions/gdocs/popup.html | 18 +- + .../examples/extensions/gmail/background.js | 2 +- + .../examples/extensions/gmail/manifest.json | 2 +- + .../extensions/irc/servlet/index.html | 2 +- + .../examples/extensions/mappy/manifest.json | 6 +- + .../docs/examples/extensions/mappy/popup.js | 4 +- + .../extensions/maps_app/manifest.json | 4 +- + .../examples/extensions/news/css/feed.css | 2 +- + .../examples/extensions/news/css/options.css | 2 +- + .../extensions/news/javascript/feed.js | 2 +- + .../extensions/news/javascript/util.js | 4 +- + .../examples/extensions/news/manifest.json | 2 +- + .../examples/extensions/news/views/feed.html | 6 +- + .../extensions/news/views/options.html | 2 +- + .../examples/extensions/news_a11y/feed.js | 4 +- + .../extensions/news_a11y/manifest.json | 4 +- + .../news_i18n/_locales/en/messages.json | 2 +- + .../extensions/news_i18n/manifest.json | 2 +- + .../extensions/oauth_contacts/background.js | 10 +- + .../extensions/oauth_contacts/contacts.html | 2 +- + .../extensions/oauth_contacts/manifest.json | 8 +- + .../plugin_settings/js/plugin_list_test.html | 2 +- + .../js/plugin_settings_test.html | 20 +- + .../plugin_settings/js/rule_list_test.html | 2 +- + .../extensions/talking_alarm_clock/popup.html | 4 +- + .../examples/extensions/ttsdemo/ttsdemo.html | 2 +- + .../howto/tab_shortcuts/tab_shortcuts.js | 2 +- + .../tutorials/analytics/manifest.json | 2 +- + .../examples/tutorials/analytics/popup.js | 2 +- + .../broken_background_color/background.js | 2 +- + .../get_started_complete/background.js | 2 +- + .../examples/tutorials/getstarted/popup.html | 2 +- + .../oauth_tutorial_complete/manifest.json | 2 +- + .../oauth_tutorial_complete/oauth.js | 4 +- + .../extensions/docs/server2/PRESUBMIT.py | 2 +- + .../extensions/docs/server2/admin_servlets.py | 2 +- + .../docs/server2/gcs_file_system.py | 2 +- + .../extensions/docs/server2/patch_servlet.py | 6 +- + .../extensions/docs/server2/redirector.py | 8 +- + .../docs/server2/rietveld_patcher.py | 10 +- + .../common/extensions/docs/server2/servlet.py | 2 +- + .../extensions/docs/server2/update_cache.py | 2 +- + .../extensions/docs/server2/url_constants.py | 12 +- + .../extensions/docs/static/js/search.js | 2 +- + .../common/extensions/docs/static/js/site.js | 2 +- + .../docs/templates/articles/a11y.html | 10 +- + .../docs/templates/articles/about_apps.html | 12 +- + .../docs/templates/articles/activeTab.html | 2 +- + .../docs/templates/articles/analytics.html | 6 +- + .../templates/articles/angular_framework.html | 26 +- + .../docs/templates/articles/api_index.html | 2 +- + .../docs/templates/articles/api_other.html | 2 +- + .../templates/articles/app_architecture.html | 4 +- + .../templates/articles/app_bluetooth.html | 4 +- + .../articles/app_codelab_basics.html | 2 +- + .../articles/app_codelab_filesystem.html | 4 +- + .../articles/app_codelab_images.html | 6 +- + .../articles/app_codelab_import_todomvc.html | 2 +- + .../templates/articles/app_codelab_intro.html | 4 +- + .../articles/app_codelab_publish.html | 2 +- + .../docs/templates/articles/app_external.html | 8 +- + .../templates/articles/app_frameworks.html | 2 +- + .../docs/templates/articles/app_identity.html | 16 +- + .../docs/templates/articles/app_network.html | 2 +- + .../docs/templates/articles/apps.html | 12 +- + .../articles/arc_in_app_payments.html | 14 +- + .../templates/articles/arc_playservices.html | 14 +- + .../docs/templates/articles/autoupdate.html | 10 +- + .../templates/articles/background_pages.html | 2 +- + .../articles/chrome_apps_on_mobile.html | 14 +- + .../articles/contentSecurityPolicy.html | 2 +- + .../templates/articles/content_scripts.html | 4 +- + .../articles/declare_permissions.html | 2 +- + .../articles/desktop_notifications.html | 8 +- + .../docs/templates/articles/develop_apps.html | 4 +- + .../docs/templates/articles/devguide.html | 2 +- + .../docs/templates/articles/devtools.html | 20 +- + .../docs/templates/articles/experimental.html | 8 +- + .../templates/articles/extensions_index.html | 14 +- + .../articles/external_extensions.html | 14 +- + .../docs/templates/articles/faq.html | 20 +- + .../docs/templates/articles/game_engines.html | 4 +- + .../docs/templates/articles/getstarted.html | 8 +- + .../templates/articles/getstarted_arc.html | 20 +- + .../docs/templates/articles/hosting.html | 8 +- + .../templates/articles/hosting_changes.html | 34 +- + .../docs/templates/articles/inform_users.html | 2 +- + .../docs/templates/articles/inline_faq.html | 4 +- + .../templates/articles/linux_hosting.html | 12 +- + .../docs/templates/articles/manifest/app.html | 4 +- + .../articles/manifest/default_locale.html | 2 +- + .../articles/manifest/description.html | 4 +- + .../manifest/externally_connectable.html | 4 +- + .../articles/manifest/homepage_url.html | 4 +- + .../templates/articles/manifest/icons.html | 4 +- + .../docs/templates/articles/manifest/key.html | 10 +- + .../articles/manifest/kiosk_enabled.html | 28 +- + .../articles/manifest/manifest_version.html | 2 +- + .../manifest/minimum_chrome_version.html | 2 +- + .../articles/manifest/nacl_modules.html | 2 +- + .../templates/articles/manifest/name.html | 4 +- + .../articles/manifest/requirements.html | 6 +- + .../templates/articles/manifest/sandbox.html | 10 +- + .../templates/articles/manifest/storage.html | 6 +- + .../articles/manifest/url_handlers.html | 2 +- + .../templates/articles/manifest/version.html | 2 +- + .../manifest/web_accessible_resources.html | 6 +- + .../templates/articles/match_patterns.html | 30 +- + .../docs/templates/articles/messaging.html | 4 +- + .../articles/migrating_to_manifest_v3.html | 12 +- + .../migrating_to_service_workers.html | 14 +- + .../docs/templates/articles/migration.html | 362 +++--- + .../templates/articles/nativeMessaging.html | 12 +- + .../docs/templates/articles/npapi.html | 6 +- + .../docs/templates/articles/offline_apps.html | 2 +- + .../templates/articles/offline_storage.html | 10 +- + .../docs/templates/articles/overview.html | 4 +- + .../docs/templates/articles/packaging.html | 6 +- + .../docs/templates/articles/performance.html | 6 +- + .../articles/permission_warnings.html | 6 +- + .../docs/templates/articles/publish_app.html | 6 +- + .../templates/articles/richNotifications.html | 4 +- + .../templates/articles/sandboxingEval.html | 4 +- + .../docs/templates/articles/security.html | 20 +- + .../templates/articles/sencha_framework.html | 2 +- + .../templates/articles/settings_override.html | 8 +- + .../templates/articles/single_purpose.html | 28 +- + .../docs/templates/articles/themes.html | 10 +- + .../templates/articles/tut_analytics.html | 16 +- + .../templates/articles/tut_debugging.html | 10 +- + .../tut_migration_to_manifest_v2.html | 2 +- + .../docs/templates/articles/tut_oauth.html | 22 +- + .../docs/templates/articles/tutorials.html | 2 +- + .../templates/articles/user_interface.html | 12 +- + .../docs/templates/articles/user_privacy.html | 6 +- + .../docs/templates/articles/webstore.html | 2 +- + .../docs/templates/articles/xhr.html | 16 +- + .../intros/bluetooth_low_energy.html | 2 +- + .../docs/templates/intros/bookmarks.html | 4 +- + .../docs/templates/intros/browserAction.html | 2 +- + .../docs/templates/intros/browsingData.html | 2 +- + .../templates/intros/certificateProvider.html | 4 +- + .../docs/templates/intros/commands.html | 2 +- + .../templates/intros/contentSettings.html | 2 +- + .../docs/templates/intros/cookies.html | 4 +- + .../templates/intros/declarativeContent.html | 6 +- + .../intros/declarativeNetRequest.html | 18 +- + .../intros/declarativeWebRequest.html | 10 +- + .../intros/devtools_inspectedWindow.html | 2 +- + .../docs/templates/intros/downloads.html | 2 +- + .../intros/enterprise_deviceAttributes.html | 2 +- + .../intros/enterprise_platformKeys.html | 2 +- + .../docs/templates/intros/events.html | 8 +- + .../docs/templates/intros/fontSettings.html | 2 +- + .../docs/templates/intros/history.html | 4 +- + .../docs/templates/intros/i18n.html | 10 +- + .../docs/templates/intros/input_ime.html | 2 +- + .../templates/intros/networkingPrivate.html | 2 +- + .../docs/templates/intros/pageAction.html | 2 +- + .../docs/templates/intros/permissions.html | 14 +- + .../docs/templates/intros/privacy.html | 2 +- + .../docs/templates/intros/storage.html | 2 +- + .../docs/templates/intros/tabs.html | 2 +- + .../docs/templates/intros/webNavigation.html | 6 +- + .../docs/templates/intros/webRequest.html | 8 +- + .../docs/templates/intros/webview_tag.html | 12 +- + .../docs/templates/intros/windows.html | 6 +- + .../docs/templates/json/apps_sidenav.json | 2 +- + .../docs/templates/json/chrome_sidenav.json | 2 +- + .../templates/json/content_providers.json | 2 +- + .../templates/json/extensions_sidenav.json | 4 +- + .../docs/templates/json/intro_tables.json | 22 +- + .../docs/templates/json/strings.json | 40 +- + .../docs/templates/private/api_reference.html | 2 +- + .../docs/templates/private/article.html | 6 +- + .../docs/templates/private/fatnav.html | 2 +- + .../private/intro_tables/master_message.html | 2 +- + .../private/permissions/background.html | 2 +- + .../private/permissions/favicon.html | 2 +- + .../private/permissions/notifications.html | 4 +- + .../private/permissions/pointer_lock.html | 2 +- + .../docs/templates/private/site.html | 10 +- + .../docs/templates/private/warning_beta.html | 4 +- + .../docs/templates/private/warning_dev.html | 2 +- + .../templates/private/warning_master.html | 2 +- + .../docs/templates/public/apps/redirects.json | 18 +- + .../public/extensions/redirects.json | 10 +- + .../docs/templates/public/owners.html | 2 +- + chrome/common/google_url_loader_throttle.cc | 4 +- + chrome/common/service_process.mojom | 2 +- + chrome/common/url_constants.cc | 224 ++-- + .../gaiacp/gaia_credential_base.cc | 8 +- + .../setup/google_chrome_behaviors.cc | 2 +- + .../subresource_redirect_params.cc | 2 +- + chrome/utility/importer/ie_importer_win.cc | 2 +- + .../chromecast/shell/CastCrashUploader.java | 6 +- + chromeos/components/drivefs/drivefs_auth.cc | 2 +- + .../multidevice/remote_device_test_util.cc | 2 +- + .../device_sync/cryptauth_client_impl.cc | 8 +- + .../win/port_monitor/port_monitor.cc | 2 +- + .../arc/mojom/accessibility_helper.mojom | 14 +- + components/arc/mojom/app_permissions.mojom | 2 +- + components/arc/mojom/bluetooth.mojom | 10 +- + components/arc/mojom/file_system.mojom | 6 +- + components/arc/mojom/intent_helper.mojom | 2 +- + .../autofill/content/renderer/form_cache.cc | 4 +- + .../renderer/page_passwords_analyser.cc | 2 +- + .../cronet_consumer_view_controller.m | 4 +- + .../domain_reliability/bake_in_configs.py | 286 ++--- + components/feed/core/feed_networking_host.cc | 2 +- + .../minidump_uploader/MinidumpUploader.java | 2 +- + .../policy/resources/policy_templates.json | 1032 ++++++++--------- + .../CaptivePortalHelper.java | 2 +- + .../browser/resources/interstitial_large.js | 2 +- + .../components/sync/SyncConstants.java | 2 +- + .../firstrun/VariationsSeedFetcher.java | 2 +- + .../browser/webauth/authenticator_common.cc | 6 +- + content/common/renderer.mojom | 2 +- + .../pepper/pepper_media_device_manager.cc | 2 +- + .../chromium/content_shell/ShellManager.java | 2 +- + device/bluetooth/bluetooth_adapter_mac.mm | 2 +- + .../bluetooth/bluetooth_classic_device_mac.mm | 4 +- + device/fido/fido_test_data.h | 2 +- + extensions/common/api/socket.idl | 2 +- + extensions/common/api/sockets_udp.idl | 4 +- + .../lib/browser/protocol/headless_handler.cc | 2 +- + ios/build/chrome_build.gni | 2 +- + ios/chrome/browser/autofill/BUILD.gn | 4 +- + ios/chrome/browser/omaha/omaha_service.mm | 2 +- + ios/chrome/browser/u2f/u2f_controller.mm | 4 +- + .../content_suggestions/ntp_home_mediator.mm | 8 +- + ios/chrome/browser/ui/ntp/incognito_view.mm | 2 +- + .../ui/ntp/notification_promo_whats_new.mm | 2 +- + .../table_cell_catalog_view_controller.mm | 8 +- + ios/web_view/shell/shell_view_controller.m | 6 +- + .../video/chromeos/mojom/camera3.mojom | 6 +- + .../video/chromeos/mojom/camera_common.mojom | 6 +- + .../chromeos/mojom/camera_metadata.mojom | 4 +- + media/mojo/mojom/provision_fetcher.mojom | 2 +- + native_client_sdk/src/doc/_book.yaml | 2 +- + net/http/transport_security_state_static.json | 512 ++++---- + .../org/chromium/chromoting/Chromoting.java | 4 +- + .../chromoting/PrivacyPolicyActivity.java | 2 +- + .../chromoting/TermsOfServiceActivity.java | 2 +- + .../chromoting/help/HelpAndFeedbackBasic.java | 6 +- + .../chromoting/jni/JniOAuthTokenGetter.java | 4 +- + .../device/public/mojom/geoposition.mojom | 2 +- + .../network/public/mojom/cookie_manager.mojom | 4 +- + .../public/mojom/network_context.mojom | 6 +- + .../public/mojom/network_service.mojom | 4 +- + .../network/public/mojom/udp_socket.mojom | 2 +- + .../memory_instrumentation.mojom | 4 +- + services/tracing/public/mojom/constants.mojom | 2 +- + .../public/mojom/perfetto_service.mojom | 4 +- + third_party/afl/src/afl-as.c | 2 +- + .../mojom/payments/payment_handler_host.mojom | 2 +- + .../mojom/payments/payment_request.mojom | 2 +- + .../peer_connection_tracker.mojom | 2 +- + .../mojom/remote_objects/remote_objects.mojom | 2 +- + .../core/css/css_properties_ranking.json5 | 2 +- + .../blink/renderer/core/frame/deprecation.cc | 46 +- + .../blink/renderer/core/frame/settings.json5 | 4 +- + .../renderer/core/html/html_iframe_element.cc | 2 +- + .../core/html/media/autoplay_policy.cc | 4 +- + .../core/html/media/html_media_element.cc | 4 +- + .../renderer/core/loader/threadable_loader.cc | 2 +- + .../modules/bluetooth/bluetooth_error.cc | 16 +- + .../modules/clipboard/clipboard_promise.cc | 2 +- + .../encryptedmedia/encrypted_media_utils.h | 2 +- + .../modules/geolocation/geolocation.cc | 2 +- + .../modules/indexeddb/indexed_db_names.json5 | 2 +- + .../modules/webaudio/audio_context.cc | 4 +- + .../modules/webmidi/navigator_web_midi.cc | 2 +- + .../platform/runtime_enabled_features.json5 | 2 +- + .../platform/weborigin/security_origin.cc | 2 +- + third_party/blink/tools/blinkpy/PRESUBMIT.py | 2 +- + .../blink/tools/blinkpy/common/net/git_cl.py | 6 +- + .../blinkpy/common/net/results_fetcher.py | 4 +- + .../blink/tools/blinkpy/common/pretty_diff.py | 2 +- + .../tools/blinkpy/common/system/filesystem.py | 2 +- + .../tools/blinkpy/common/system/profiler.py | 2 +- + .../blink/tools/blinkpy/style/filter.py | 2 +- + .../wpt/tools/webdriver/webdriver/client.py | 2 +- + .../third_party/wpt/wpt/tools/wpt/android.py | 2 +- + .../third_party/wpt/wpt/tools/wpt/browser.py | 26 +- + .../third_party/wpt/wpt/tools/wpt/run.py | 4 +- + .../tools/blinkpy/w3c/chromium_commit.py | 2 +- + .../tools/blinkpy/w3c/chromium_commit_mock.py | 2 +- + third_party/blink/tools/blinkpy/w3c/common.py | 4 +- + .../tools/blinkpy/w3c/export_notifier.py | 4 +- + third_party/blink/tools/blinkpy/w3c/gerrit.py | 6 +- + .../tools/blinkpy/w3c/import_notifier.py | 2 +- + .../blink/tools/blinkpy/w3c/monorail.py | 2 +- + .../tools/blinkpy/w3c/pr_cleanup_tool.py | 2 +- + .../blink/tools/blinkpy/w3c/test_exporter.py | 4 +- + .../blink/tools/blinkpy/w3c/test_importer.py | 12 +- + third_party/blink/tools/move_blink_source.py | 2 +- + .../print_stale_test_expectations_entries.py | 2 +- + .../externs/chrome_extensions.js | 6 +- + .../util/misc/capture_context_win.asm | 4 +- + .../util/misc/capture_context_win_arm64.asm | 2 +- + third_party/google-truth/cipd.yaml | 2 +- + third_party/libxml/src/aclocal.m4 | 2 +- + third_party/mozilla/NSURL+Utils.m | 2 +- + third_party/mozilla/NSWorkspace+Utils.m | 4 +- + third_party/protobuf/configure.ac | 2 +- + .../protobuf/conformance/conformance_objc.m | 2 +- + .../protobuf/conformance/conformance_ruby.rb | 2 +- + .../protobuf/m4/ax_cxx_compile_stdcxx.m4 | 4 +- + third_party/protobuf/objectivec/GPBArray.m | 2 +- + .../protobuf/objectivec/GPBCodedInputStream.m | 4 +- + .../objectivec/GPBCodedOutputStream.m | 2 +- + .../protobuf/objectivec/GPBDescriptor.m | 2 +- + .../protobuf/objectivec/GPBDictionary.m | 2 +- + .../objectivec/GPBExtensionInternals.m | 2 +- + .../objectivec/GPBExtensionRegistry.m | 2 +- + third_party/protobuf/objectivec/GPBMessage.m | 2 +- + .../protobuf/objectivec/GPBProtocolBuffers.m | 2 +- + .../protobuf/objectivec/GPBRootObject.m | 2 +- + .../protobuf/objectivec/GPBUnknownField.m | 2 +- + .../protobuf/objectivec/GPBUnknownFieldSet.m | 2 +- + .../protobuf/objectivec/GPBUtilities.m | 2 +- + .../protobuf/objectivec/GPBWellKnownTypes.m | 4 +- + .../protobuf/objectivec/GPBWireFormat.m | 2 +- + .../protobuf/ruby/lib/google/protobuf.rb | 2 +- + .../ruby/lib/google/protobuf/message_exts.rb | 2 +- + .../lib/google/protobuf/repeated_field.rb | 2 +- + .../lib/google/protobuf/well_known_types.rb | 6 +- + third_party/tcmalloc/vendor/configure.ac | 4 +- + .../scripts/customtabs_benchmark.py | 2 +- + .../plugin/NoAndroidAsyncTaskCheck.java | 2 +- + .../NoContextGetApplicationContext.java | 2 +- + .../plugin/NoRedundantFieldInitCheck.java | 2 +- + tools/checklicenses/checklicenses.py | 2 +- + tools/chrome_proxy/testserver/server.go | 4 +- + tools/emacs/gn.el | 6 +- + tools/json_schema_compiler/preview.py | 2 +- + tools/mb/mb.py | 6 +- + tools/perf/benchmarks/dummy_benchmark.py | 6 +- + tools/perf/benchmarks/system_health.py | 24 +- + tools/perf/core/perf_benchmark.py | 2 +- + tools/perf/core/results_dashboard.py | 12 +- + .../core/test_data/benchmarks_to_shard.json | 44 +- + .../perf/core/test_data/test_timing_data.json | 52 +- + .../test_data/test_timing_data_1_build.json | 22 +- + .../generate_legacy_perf_dashboard_json.py | 2 +- + tools/perf/page_sets/alexa1-10000-urls.json | 124 +- + .../system_health/system_health_stories.py | 2 +- + tools/web_dev_style/css_checker.py | 6 +- + tools/web_dev_style/js_checker.py | 8 +- + .../foreground/elements/icons.html | 2 +- + .../chromeos_user_pod_template.html | 2 +- + .../account_picker/user_pod_template.html | 2 +- + ui/webui/resources/cr_elements/icons.html | 4 +- + .../weblayer/shell/WebLayerShellActivity.java | 4 +- + 495 files changed, 2538 insertions(+), 2538 deletions(-) -diff --git a/.gn b/.gn ---- a/.gn -+++ b/.gn -@@ -568,7 +568,7 @@ check_targets = [ - "//ui/*", - "//url/*", - -- #"//v8/*", # Errors: https://bugs.chromium.org/p/v8/issues/detail?id=7330 -+ #"//v8/*", # Errors: https://bugs.ch40m1um.qjz9zk/p/v8/issues/detail?id=7330 - - "//weblayer/*", - ] diff --git a/PRESUBMIT.py b/PRESUBMIT.py --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -525,8 +511,8 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py +See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts for more details about the presubmit API built into depot_tools. """ - -@@ -133,7 +133,7 @@ _BANNED_OBJC_FUNCTIONS = ( + PRESUBMIT_VERSION = '2.0.0' +@@ -162,7 +162,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView addTrackingRect:owner:userData:assumeInside:] is' 'prohibited. Please use CrTrackingArea instead.', @@ -535,7 +521,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), False, ), -@@ -142,7 +142,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -171,7 +171,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of NSTrackingAreas is prohibited. Please use CrTrackingArea', 'instead.', @@ -544,7 +530,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), False, ), -@@ -151,7 +151,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -180,7 +180,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertPointFromBase:] is almost certainly wrong.', 'Please use |convertPoint:(point) fromView:nil| instead.', @@ -553,7 +539,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -160,7 +160,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -189,7 +189,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertPointToBase:] is almost certainly wrong.', 'Please use |convertPoint:(point) toView:nil| instead.', @@ -562,7 +548,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -169,7 +169,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -198,7 +198,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertRectFromBase:] is almost certainly wrong.', 'Please use |convertRect:(point) fromView:nil| instead.', @@ -571,7 +557,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -178,7 +178,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -207,7 +207,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertRectToBase:] is almost certainly wrong.', 'Please use |convertRect:(point) toView:nil| instead.', @@ -580,7 +566,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -187,7 +187,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -216,7 +216,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertSizeFromBase:] is almost certainly wrong.', 'Please use |convertSize:(point) fromView:nil| instead.', @@ -589,7 +575,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -196,7 +196,7 @@ _BANNED_OBJC_FUNCTIONS = ( +@@ -225,7 +225,7 @@ _BANNED_OBJC_FUNCTIONS = ( ( 'The use of -[NSView convertSizeToBase:] is almost certainly wrong.', 'Please use |convertSize:(point) toView:nil| instead.', @@ -598,7 +584,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), True, ), -@@ -610,7 +610,7 @@ _BANNED_CPP_FUNCTIONS = ( +@@ -623,7 +623,7 @@ _BANNED_CPP_FUNCTIONS = ( ( "Don't use CallJavascriptFunctionUnsafe() in new code. Instead, use", 'AllowJavascript(), OnJavascriptAllowed()/OnJavascriptDisallowed(),', @@ -607,7 +593,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ), False, ( -@@ -1249,7 +1249,7 @@ _DEPRECATED_MOJO_TYPES = ( +@@ -1279,7 +1279,7 @@ _DEPRECATED_MOJO_TYPES = ( _IPC_ENUM_TRAITS_DEPRECATED = ( 'You are using IPC_ENUM_TRAITS() in your code. It has been deprecated.\n' @@ -616,7 +602,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py 'security-tips-for-ipc') _LONG_PATH_ERROR = ( -@@ -1395,7 +1395,7 @@ _KNOWN_ROBOTS = set( +@@ -1428,7 +1428,7 @@ _KNOWN_ROBOTS = set( 'wpt-autoroller',) ) | set('%s@skia-public.iam.gserviceaccount.com' % s for s in ('chromium-autoroll', 'chromium-release-autoroll') @@ -625,7 +611,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py for s in ('chromium-internal-autoroll',)) -@@ -1802,7 +1802,7 @@ def _CheckNoDEPSGIT(input_api, output_api): +@@ -1838,7 +1838,7 @@ def CheckNoDEPSGIT(input_api, output_api): 'Never commit changes to .DEPS.git. This file is maintained by an\n' 'automated system based on what\'s in DEPS and your changes will be\n' 'overwritten.\n' @@ -634,7 +620,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py 'get-the-code#Rolling_DEPS\n' 'for more information')] return [] -@@ -2011,7 +2011,7 @@ def _CheckNoPragmaOnce(input_api, output_api): +@@ -2047,7 +2047,7 @@ def CheckNoPragmaOnce(input_api, output_api): if files: return [output_api.PresubmitError( 'Do not use #pragma once in header files.\n' @@ -643,16 +629,16 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py files)] return [] -@@ -2217,7 +2217,7 @@ def _CheckForVersionControlConflicts(input_api, output_api): +@@ -2232,7 +2232,7 @@ def CheckForVersionControlConflicts(input_api, output_api): - def _CheckGoogleSupportAnswerUrl(input_api, output_api): + def CheckGoogleSupportAnswerUrlOnUpload(input_api, output_api): - pattern = input_api.re.compile('support\.google\.com\/chrome.*/answer') + pattern = input_api.re.compile('support\.9oo91e\.qjz9zk\/chrome.*/answer') errors = [] for f in input_api.AffectedFiles(): for line_num, line in f.ChangedContents(): -@@ -2326,7 +2326,7 @@ def _CheckNoAbbreviationInPngFileName(input_api, output_api): +@@ -2341,7 +2341,7 @@ def CheckNoAbbreviationInPngFileName(input_api, output_api): results.append(output_api.PresubmitError( 'The name of PNG files should not have abbreviations. \n' 'Use _hover.png, _center.png, instead of _h.png, _c.png.\n' @@ -661,7 +647,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py return results -@@ -3061,7 +3061,7 @@ def _CheckSecurityOwners(input_api, output_api): +@@ -3078,7 +3078,7 @@ def CheckSecurityOwners(input_api, output_api): if to_check: # If there are any OWNERS files to check, there are IPC-related changes in # this CL. Auto-CC the review list. @@ -670,7 +656,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py # Go through the OWNERS files to check, filtering out rules that are already # present in that OWNERS file. -@@ -3359,7 +3359,7 @@ def _CheckAndroidToastUsage(input_api, output_api): +@@ -3376,7 +3376,7 @@ def _CheckAndroidToastUsage(input_api, output_api): 'android.widget.Toast usage is detected. Android toasts use hardware' ' acceleration, and can be\ncostly on low-end devices. Please use' ' org.chromium.ui.widget.Toast instead.\n' @@ -679,7 +665,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py errors)) return results -@@ -3492,7 +3492,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api): +@@ -3510,7 +3510,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api): if errors: results.append(output_api.PresubmitError( 'APIs from junit.framework.* are deprecated, please use JUnit4 framework' @@ -688,7 +674,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ' if you have any question.', errors)) return results -@@ -3523,7 +3523,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api): +@@ -3541,7 +3541,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api): results.append(output_api.PresubmitPromptWarning( 'The newly created files include Test classes that inherits from base' ' class. Please do not use inheritance in JUnit4 tests or add new' @@ -697,7 +683,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py ' questions.', errors)) return results -@@ -3547,7 +3547,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api): +@@ -3565,7 +3565,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api): 'Annotations in android.test.suitebuilder.annotation have been' ' deprecated since API level 24. Please use android.support.test.filters' ' from //third_party/android_support_test_runner:runner_java instead.' @@ -706,7 +692,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py return results -@@ -3567,7 +3567,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api): +@@ -3585,7 +3585,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api): 'MDPI assets should be placed in /res/drawable-mdpi/ or ' '/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and' '/res/drawable-ldrtl/.\n' @@ -715,7 +701,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py return results -@@ -4258,7 +4258,7 @@ def _CheckFuzzTargets(input_api, output_api): +@@ -4285,7 +4285,7 @@ def CheckFuzzTargetsOnUpload(input_api, output_api): 'LLVMFuzzerInitialize should not be used, unless your fuzz target needs ' 'to access command line arguments passed to the fuzzer. Instead, prefer ' 'static initialization and shared resources as documented in ' @@ -724,7 +710,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py 'libfuzzer/efficient_fuzzing.md#simplifying-initialization_cleanup.\n' % ( ', '.join(EXPORTED_SYMBOLS), REQUIRED_HEADER) ) -@@ -4293,7 +4293,7 @@ def _CheckNewImagesWarning(input_api, output_api): +@@ -4320,7 +4320,7 @@ def _CheckNewImagesWarning(input_api, output_api): errors.append(output_api.PresubmitPromptWarning( 'It looks like you are trying to commit some images. If these are ' 'non-test-only images, please make sure to read and apply the tips in ' @@ -733,16 +719,16 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py 'binary_size/optimization_advice.md#optimizing-images\nThis check is ' 'FYI only and will not block your CL on the CQ.', image_paths)) return errors -@@ -4619,7 +4619,7 @@ def _CheckForInvalidIfDefinedMacros(input_api, output_api): +@@ -4601,7 +4601,7 @@ def CheckForInvalidIfDefinedMacros(input_api, output_api): - def _CheckForIPCRules(input_api, output_api): + def CheckForIPCRules(input_api, output_api): """Check for same IPC rules described in - http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc + http://www.ch40m1um.qjz9zk/Home/chromium-security/education/security-tips-for-ipc """ base_pattern = r'IPC_ENUM_TRAITS\(' inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern) -@@ -4865,7 +4865,7 @@ def CheckChangeOnCommit(input_api, output_api): +@@ -4845,7 +4845,7 @@ def CheckChangeOnCommit(input_api, output_api): results.extend(input_api.canned_checks.CheckTreeIsOpen( input_api, output_api, @@ -751,9 +737,9 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py results.extend( input_api.canned_checks.CheckPatchFormatted(input_api, output_api)) -@@ -5184,7 +5184,7 @@ def _CheckStrings(input_api, output_api): +@@ -5173,7 +5173,7 @@ def CheckStrings(input_api, output_api): if icu_syntax_errors: - results.append(output_api.PresubmitError( + results.append(output_api.PresubmitPromptWarning( 'ICU syntax errors were found in the following strings (problems or ' - 'feedback? Contact rainhard@chromium.org):', items=icu_syntax_errors)) + 'feedback? Contact rainhard@ch40m1um.qjz9zk):', items=icu_syntax_errors)) @@ -775,7 +761,7 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/d diff --git a/build/android/pylib/constants/__init__.py b/build/android/pylib/constants/__init__.py --- a/build/android/pylib/constants/__init__.py +++ b/build/android/pylib/constants/__init__.py -@@ -127,7 +127,7 @@ BAD_DEVICES_JSON = os.path.join(DIR_SOURCE_ROOT, +@@ -126,7 +126,7 @@ BAD_DEVICES_JSON = os.path.join(DIR_SOURCE_ROOT, os.environ.get('CHROMIUM_OUT_DIR', 'out'), 'bad_devices.json') @@ -799,7 +785,7 @@ diff --git a/build/android/pylib/device/commands/java/src/org/chromium/android/c diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -1715,7 +1715,7 @@ if (enable_java_templates) { +@@ -1714,7 +1714,7 @@ if (enable_java_templates) { # * public.txt # * annotations.zip # * assets/ @@ -883,7 +869,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeStringCon diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -194,7 +194,7 @@ public class ChromeTabbedActivity extends ChromeActivity GetIdFromDriveUrl(const GURL& url) { const std::string& spec = url.spec(); @@ -1231,7 +1229,7 @@ diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_util.cc b/chrome/browse if (base::StartsWith(spec, kOpenUrlBase, base::CompareCase::INSENSITIVE_ASCII)) { // e.g. https://drive.google.com/open?id=[ID] -@@ -205,9 +205,9 @@ base::Optional GetIdFromDriveUrl(const GURL& url) { +@@ -206,9 +206,9 @@ base::Optional GetIdFromDriveUrl(const GURL& url) { // These will match some invalid URLs, which is fine. const std::string kViewUrlPatternWithDomain = @@ -1292,7 +1290,7 @@ diff --git a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc --- a/chrome/browser/custom_handlers/protocol_handler_registry.cc +++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc -@@ -222,11 +222,11 @@ void ProtocolHandlerRegistry::InstallDefaultsForChromeOS() { +@@ -220,11 +220,11 @@ void ProtocolHandlerRegistry::InstallDefaultsForChromeOS() { AddPredefinedHandler( ProtocolHandler::CreateProtocolHandler( "mailto", @@ -1431,7 +1429,7 @@ diff --git a/chrome/browser/extensions/install_signer.cc b/chrome/browser/extens diff --git a/chrome/browser/extensions/updater/chrome_update_client_config.cc b/chrome/browser/extensions/updater/chrome_update_client_config.cc --- a/chrome/browser/extensions/updater/chrome_update_client_config.cc +++ b/chrome/browser/extensions/updater/chrome_update_client_config.cc -@@ -187,7 +187,7 @@ ChromeUpdateClientConfig::GetNetworkFetcherFactory() { +@@ -188,7 +188,7 @@ ChromeUpdateClientConfig::GetNetworkFetcherFactory() { // from chrome.google.com, so send cookies if and only if that is // the download domain. base::BindRepeating([](const GURL& url) { @@ -1561,9 +1559,9 @@ diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provide --- a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc +++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc @@ -31,8 +31,8 @@ constexpr char kLoggerComponent[] = "CastMediaRouteProvider"; - // Whitelist of origins allowed to use a PresentationRequest to initiate - // mirroring. - constexpr std::array kPresentationApiWhitelist = { + + // List of origins allowed to use a PresentationRequest to initiate mirroring. + constexpr std::array kPresentationApiAllowlist = { - "https://docs.google.com", - "https://meet.google.com", + "https://docs.9oo91e.qjz9zk", @@ -1620,7 +1618,7 @@ diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc -@@ -104,7 +104,7 @@ void RecordFeatureUsage(content::RenderFrameHost* rfh, +@@ -114,7 +114,7 @@ void RecordFeatureUsage(content::RenderFrameHost* rfh, std::string GetHeavyAdReportMessage(const FrameData& frame_data, bool will_unload_adframe) { const char kChromeStatusMessage[] = @@ -1632,7 +1630,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load diff --git a/chrome/browser/policy/policy_test_utils.cc b/chrome/browser/policy/policy_test_utils.cc --- a/chrome/browser/policy/policy_test_utils.cc +++ b/chrome/browser/policy/policy_test_utils.cc -@@ -248,7 +248,7 @@ void PolicyTest::ClearEnableFlag(const keyboard::KeyboardEnableFlag& flag) { +@@ -245,7 +245,7 @@ void PolicyTest::ClearEnableFlag(const keyboard::KeyboardEnableFlag& flag) { // static GURL PolicyTest::GetExpectedSearchURL(bool expect_safe_search) { @@ -1644,12 +1642,21 @@ diff --git a/chrome/browser/policy/policy_test_utils.cc b/chrome/browser/policy/ diff --git a/chrome/browser/prerender/isolated/isolated_prerender_params.cc b/chrome/browser/prerender/isolated/isolated_prerender_params.cc --- a/chrome/browser/prerender/isolated/isolated_prerender_params.cc +++ b/chrome/browser/prerender/isolated/isolated_prerender_params.cc -@@ -105,7 +105,7 @@ GURL IsolatedPrerenderCanaryCheckURL() { +@@ -120,7 +120,7 @@ GURL IsolatedPrerenderTLSCanaryCheckURL() { if (url.is_valid()) { return url; } -- return GURL("http://check.googlezip.net/connect"); -+ return GURL("http://check.9oo91e21p.qjz9zk/connect"); +- return GURL("http://tls.tunnel.check.googlezip.net/connect"); ++ return GURL("http://tls.tunnel.check.9oo91e21p.qjz9zk/connect"); + } + + GURL IsolatedPrerenderDNSCanaryCheckURL() { +@@ -129,7 +129,7 @@ GURL IsolatedPrerenderDNSCanaryCheckURL() { + if (url.is_valid()) { + return url; + } +- return GURL("http://dns.tunnel.check.googlezip.net/connect"); ++ return GURL("http://dns.tunnel.check.9oo91e21p.qjz9zk/connect"); } base::TimeDelta IsolatedPrerenderCanaryCheckCacheLifetime() { @@ -1668,7 +1675,7 @@ diff --git a/chrome/browser/profiles/profile_window.cc b/chrome/browser/profiles diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc --- a/chrome/browser/push_messaging/push_messaging_service_impl.cc +++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc -@@ -87,7 +87,7 @@ const char kSilentPushUnsupportedMessage[] = +@@ -88,7 +88,7 @@ const char kSilentPushUnsupportedMessage[] = "Chrome currently only supports the Push API for subscriptions that will " "result in user-visible messages. You can indicate this by calling " "pushManager.subscribe({userVisibleOnly: true}) instead. See " @@ -1738,7 +1745,7 @@ diff --git a/chrome/browser/resources/pdf/elements/icons.html b/chrome/browser/r diff --git a/chrome/browser/resources/print_preview/ui/icons.html b/chrome/browser/resources/print_preview/ui/icons.html --- a/chrome/browser/resources/print_preview/ui/icons.html +++ b/chrome/browser/resources/print_preview/ui/icons.html -@@ -23,7 +23,7 @@ +@@ -34,7 +34,7 @@ + -- +@@ -40,9 +40,4 @@ + android:summary="@string/prefs_safe_browsing_summary" + android:fragment="org.chromium.chrome.browser.safe_browsing.settings.SecuritySettingsFragment" + android:order="6"/> - +- app:allowDividerBelow="false" +- android:order="7"/> -- 2.17.1 diff --git a/build/patches/Disable-third-party-cookies-by-default.patch b/build/patches/Disable-third-party-cookies-by-default.patch index 5afaaf5b..bb054258 100644 --- a/build/patches/Disable-third-party-cookies-by-default.patch +++ b/build/patches/Disable-third-party-cookies-by-default.patch @@ -10,7 +10,7 @@ author: Chad Miller diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -63,7 +63,7 @@ void CookieSettings::GetCookieSettings( +@@ -65,7 +65,7 @@ void CookieSettings::GetCookieSettings( void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index c01fda9a..6d8e1e6f 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -3,15 +3,15 @@ Date: Thu, 27 Feb 2020 23:23:59 +0100 Subject: Do not compile QR code sharing --- - chrome/android/java/AndroidManifest.xml | 16 ------------ - .../ChromeProvidedSharingOptionsProvider.java | 25 ------------------- - chrome/browser/share/android/java_sources.gni | 18 ------------- - 3 files changed, 59 deletions(-) + chrome/android/java/AndroidManifest.xml | 16 --------------- + .../ChromeProvidedSharingOptionsProvider.java | 20 ------------------- + chrome/browser/share/android/java_sources.gni | 18 ----------------- + 3 files changed, 54 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -729,22 +729,6 @@ by a child template that "extends" this file. +@@ -740,22 +740,6 @@ by a child template that "extends" this file. @@ -37,44 +37,39 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java -@@ -22,7 +22,6 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.preferences.PrefServiceBridge; +@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity; import org.chromium.chrome.browser.share.ChromeShareExtras; + import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator; -import org.chromium.chrome.browser.share.qrcode.QrCodeCoordinator; import org.chromium.chrome.browser.share.screenshot.ScreenshotCoordinator; import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType; import org.chromium.chrome.browser.tab.Tab; -@@ -145,10 +144,6 @@ class ChromeProvidedSharingOptionsProvider { - mOrderedFirstPartyOptions.add(createCopyTextFirstPartyOption()); +@@ -151,10 +150,6 @@ class ChromeProvidedSharingOptionsProvider { + && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID)) { + mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption()); } - mOrderedFirstPartyOptions.add(createSendTabToSelfFirstPartyOption()); - if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARE_QRCODE) - && !mTabProvider.get().getWebContents().isIncognito()) { - mOrderedFirstPartyOptions.add(createQrCodeFirstPartyOption()); - } - if (mPrefServiceBridge.getBoolean(Pref.PRINTING_ENABLED)) { + if (UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(Pref.PRINTING_ENABLED)) { mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption()); } -@@ -261,26 +256,6 @@ class ChromeProvidedSharingOptionsProvider { +@@ -265,21 +260,6 @@ class ChromeProvidedSharingOptionsProvider { ContentType.IMAGE)); } - private FirstPartyOption createQrCodeFirstPartyOption() { - PropertyModel propertyModel = ShareSheetPropertyModelBuilder.createPropertyModel( - AppCompatResources.getDrawable(mActivity, R.drawable.qr_code), -- mActivity.getResources().getString(R.string.qr_code_share_icon_label), -- (currentActivity) -- -> { +- mActivity.getResources().getString(R.string.qr_code_share_icon_label), (view) -> { - RecordUserAction.record("SharingHubAndroid.QRCodeSelected"); -- RecordHistogram.recordMediumTimesHistogram( -- "Sharing.SharingHubAndroid.TimeToShare", -- System.currentTimeMillis() - mShareStartTime); +- recordTimeToShare(mShareStartTime); - mBottomSheetController.hideContent(mBottomSheetContent, true); - QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(mActivity, mUrl); - qrCodeCoordinator.show(); -- }, -- /*isFirstParty=*/true); +- }); - return new FirstPartyOption(propertyModel, - Arrays.asList(ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, - ContentType.IMAGE)); @@ -88,8 +83,8 @@ diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/shar +++ b/chrome/browser/share/android/java_sources.gni @@ -8,24 +8,6 @@ share_java_sources = [ "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/BitmapDownloadRequest.java", - "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/BitmapUriRequest.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/clipboard/ClipboardImageFileProvider.java", + "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java", - "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QRCodeGenerationRequest.java", - "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeCoordinator.java", - "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java", diff --git a/build/patches/Do-not-store-passwords-by-default.patch b/build/patches/Do-not-store-passwords-by-default.patch index fda0e47c..92051c87 100644 --- a/build/patches/Do-not-store-passwords-by-default.patch +++ b/build/patches/Do-not-store-passwords-by-default.patch @@ -9,7 +9,7 @@ Subject: Do not store passwords by default diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -206,10 +206,10 @@ FormData SimplifiedFormDataFromFormStructure( +@@ -207,10 +207,10 @@ FormData SimplifiedFormDataFromFormStructure( void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( diff --git a/build/patches/Enable-DoH.patch b/build/patches/Enable-DoH.patch new file mode 100644 index 00000000..32efddd3 --- /dev/null +++ b/build/patches/Enable-DoH.patch @@ -0,0 +1,50 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 26 Sep 2020 14:23:19 +0100 +Subject: Enable DoH + +--- + .../chrome/browser/privacy/secure_dns/SecureDnsBridge.java | 2 +- + chrome/common/chrome_features.cc | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java +--- a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java ++++ b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsBridge.java +@@ -46,7 +46,7 @@ class SecureDnsBridge { + // Must match features::kDnsOverHttpsShowUiParam. + final String showUiParam = "ShowUi"; + // Must match the default value for this param. +- final boolean showUiParamDefault = false; ++ final boolean showUiParamDefault = true; + + return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( + ChromeFeatureList.DNS_OVER_HTTPS, showUiParam, showUiParamDefault); +diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc +--- a/chrome/common/chrome_features.cc ++++ b/chrome/common/chrome_features.cc +@@ -263,7 +263,7 @@ const base::Feature kDesktopPWAsWithoutExtensions{ + + // Enable DNS over HTTPS (DoH). + const base::Feature kDnsOverHttps{"DnsOverHttps", +- base::FEATURE_DISABLED_BY_DEFAULT}; ++ base::FEATURE_ENABLED_BY_DEFAULT}; + + // Provides a mechanism to remove providers from the dropdown list in the + // settings UI. Separate multiple provider ids with commas. See the +@@ -274,11 +274,11 @@ const base::FeatureParam kDnsOverHttpsDisabledProvidersParam{ + // Set whether fallback to insecure DNS is allowed by default. This setting may + // be overridden for individual transactions. + const base::FeatureParam kDnsOverHttpsFallbackParam{&kDnsOverHttps, +- "Fallback", true}; ++ "Fallback", false}; + + // Sets whether the DoH setting is displayed in the settings UI. + const base::FeatureParam kDnsOverHttpsShowUiParam{&kDnsOverHttps, +- "ShowUi", false}; ++ "ShowUi", true}; + + // Supply one or more space-separated DoH server URI templates to use when this + // feature is enabled. If no templates are specified, then a hardcoded mapping +-- +2.17.1 + diff --git a/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch b/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch index d5a0c987..ab6c6836 100644 --- a/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch +++ b/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch @@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -637,11 +637,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", +@@ -690,11 +690,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", // browser_features, as they are only used on the browser side. const base::Feature kSitePerProcess { "site-per-process", diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index 05258361..ac498b15 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -11,19 +11,19 @@ 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 -@@ -783,7 +783,7 @@ +@@ -898,7 +898,7 @@ { - "name": "darken-websites-checkbox-in-themes-setting", - "owners": [ "lazzzis@google.com", "twellington" ], + "name": "disable-keepalive-fetch", + "owners": [ "yhirano" ], - "expiry_milestone": 83 + "expiry_milestone": -1 }, { - "name": "data-saver-server-previews", + "name": "disable-office-editing-component-app", 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 -@@ -432,7 +432,7 @@ const base::Feature kContextualSearchTranslations{ +@@ -452,7 +452,7 @@ const base::Feature kContextualSearchTranslations{ "ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kDarkenWebsitesCheckboxInThemesSetting{ diff --git a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch index 4c6cea5a..a0334e6e 100644 --- a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch +++ b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch @@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -288,6 +288,10 @@ config("compiler") { +@@ -290,6 +290,10 @@ config("compiler") { } } diff --git a/build/patches/Enable-improved-cookie-controls-by-default.patch b/build/patches/Enable-improved-cookie-controls-by-default.patch deleted file mode 100644 index 995c92ca..00000000 --- a/build/patches/Enable-improved-cookie-controls-by-default.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Fri, 7 Aug 2020 13:41:21 +0200 -Subject: Enable improved cookie controls by default - ---- - components/content_settings/core/common/features.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc ---- a/components/content_settings/core/common/features.cc -+++ b/components/content_settings/core/common/features.cc -@@ -11,7 +11,7 @@ namespace content_settings { - - // Enables an improved UI for third-party cookie blocking in incognito mode. - const base::Feature kImprovedCookieControls{"ImprovedCookieControls", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - // Default setting for improved cookie controls. - const base::FeatureParam kImprovedCookieControlsDefaultInIncognito{ -@@ -20,10 +20,10 @@ const base::FeatureParam kImprovedCookieControlsDefaultInIncognito{ - // Enables an improved UI for existing third-party cookie blocking users. - const base::Feature kImprovedCookieControlsForThirdPartyCookieBlocking{ - "ImprovedCookieControlsForThirdPartyCookieBlocking", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - const base::Feature kDisallowWildcardsInPluginContentSettings{ - "DisallowWildcardsInPluginContentSettings", - base::FEATURE_ENABLED_BY_DEFAULT}; - --} // namespace content_settings -\ No newline at end of file -+} // namespace content_settings --- -2.17.1 - diff --git a/build/patches/Enable-legacy-TLS-interstitital-warning.patch b/build/patches/Enable-legacy-TLS-interstitital-warning.patch index b0414be8..52ccfbe8 100644 --- a/build/patches/Enable-legacy-TLS-interstitital-warning.patch +++ b/build/patches/Enable-legacy-TLS-interstitital-warning.patch @@ -15,7 +15,7 @@ Expose show-legacy-tls-warnings flag on Android as well 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 -@@ -5366,11 +5366,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5790,11 +5790,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kElasticOverscrollWin)}, #endif diff --git a/build/patches/Enable-prefetch-privacy-changes-by-default.patch b/build/patches/Enable-prefetch-privacy-changes-by-default.patch index 0b517494..d855ecad 100644 --- a/build/patches/Enable-prefetch-privacy-changes-by-default.patch +++ b/build/patches/Enable-prefetch-privacy-changes-by-default.patch @@ -9,7 +9,7 @@ Subject: Enable prefetch-privacy-changes by default 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 -@@ -283,7 +283,7 @@ const base::Feature kFontAccess{"FontAccess", +@@ -303,7 +303,7 @@ const base::Feature kWebComponentsV0{"WebComponentsV0", // Prefetch request properties are updated to be privacy-preserving. See // crbug.com/988956. const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges", diff --git a/build/patches/Enable-reduced-referrer-granularity-by-default.patch b/build/patches/Enable-reduced-referrer-granularity-by-default.patch index 1fef498e..16d6699a 100644 --- a/build/patches/Enable-reduced-referrer-granularity-by-default.patch +++ b/build/patches/Enable-reduced-referrer-granularity-by-default.patch @@ -3,21 +3,21 @@ Date: Fri, 31 Jul 2020 08:28:35 +0200 Subject: Enable reduced-referrer-granularity by default --- - content/public/common/content_features.cc | 2 +- + third_party/blink/common/features.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc ---- a/content/public/common/content_features.cc -+++ b/content/public/common/content_features.cc -@@ -456,7 +456,7 @@ const base::Feature kProactivelySwapBrowsingInstance{ +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 +@@ -698,7 +698,7 @@ const base::Feature kCompositingOptimizations{ // Reduce the amount of information in the default 'referer' header for // cross-origin requests. const base::Feature kReducedReferrerGranularity{ - "ReducedReferrerGranularity", base::FEATURE_DISABLED_BY_DEFAULT}; + "ReducedReferrerGranularity", base::FEATURE_ENABLED_BY_DEFAULT}; - // Controls whether FileURLLoaderFactory can fetch additional files based on the - // isolated world's origin. This feature is disabled by default because we want + // Enables the user activated exponential delay in the ContentCapture task. + const base::Feature kContentCaptureUserActivatedDelay = { -- 2.17.1 diff --git a/build/patches/Enable-user-agent-freeze-by-default.patch b/build/patches/Enable-user-agent-freeze-by-default.patch index 774fa45b..2f6e31b3 100644 --- a/build/patches/Enable-user-agent-freeze-by-default.patch +++ b/build/patches/Enable-user-agent-freeze-by-default.patch @@ -16,8 +16,8 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; - // When enabled, use the maximum possible bounds in compositing overlap testing - // for fixed position elements. + const base::Feature kMeasureMemoryExperiment{"MeasureMemoryExperiment", + base::FEATURE_DISABLED_BY_DEFAULT}; -- 2.17.1 diff --git a/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch b/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch index 732cc4f7..06f5d09b 100644 --- a/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch +++ b/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch @@ -9,7 +9,7 @@ Subject: Fix crash when accessing page info / site settings diff --git a/components/permissions/permission_manager.cc b/components/permissions/permission_manager.cc --- a/components/permissions/permission_manager.cc +++ b/components/permissions/permission_manager.cc -@@ -682,6 +682,10 @@ PermissionResult PermissionManager::GetPermissionStatusHelper( +@@ -676,6 +676,10 @@ PermissionResult PermissionManager::GetPermissionStatusHelper( if (status != CONTENT_SETTING_DEFAULT) return PermissionResult(status, PermissionStatusSource::UNSPECIFIED); PermissionContextBase* context = GetPermissionContext(permission); diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch index d3c21504..eb507512 100644 --- a/build/patches/Hardening-against-incognito-mode-detection.patch +++ b/build/patches/Hardening-against-incognito-mode-detection.patch @@ -26,8 +26,8 @@ diff --git a/storage/browser/quota/quota_features.cc b/storage/browser/quota/quo - &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.2}; + &kIncognitoDynamicQuota, "IncognitoQuotaRatioUpperBound", 0.3}; - } // namespace features - } // namespace storage + // Enables Storage Pressure Event. + const base::Feature kStoragePressureEvent{"StoragePressureEvent", -- 2.17.1 diff --git a/build/patches/Hide-passwords-manager-link.patch b/build/patches/Hide-passwords-manager-link.patch index 55477690..e10aa861 100644 --- a/build/patches/Hide-passwords-manager-link.patch +++ b/build/patches/Hide-passwords-manager-link.patch @@ -9,7 +9,7 @@ Subject: Hide passwords manager link diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -284,7 +284,7 @@ public class PasswordSettings +@@ -316,7 +316,7 @@ public class PasswordSettings return; } @@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage PreferenceGroup passwordParent; if (mSearchQuery == null) { -@@ -360,7 +360,7 @@ public class PasswordSettings +@@ -392,7 +392,7 @@ public class PasswordSettings return; } diff --git a/build/patches/Hide-send-reports-checkbox.patch b/build/patches/Hide-send-reports-checkbox.patch index 313a59d8..0b0bd768 100644 --- a/build/patches/Hide-send-reports-checkbox.patch +++ b/build/patches/Hide-send-reports-checkbox.patch @@ -9,13 +9,13 @@ Subject: Hide send reports checkbox diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml --- a/chrome/android/java/res/layout/fre_tosanduma.xml +++ b/chrome/android/java/res/layout/fre_tosanduma.xml -@@ -70,7 +70,7 @@ +@@ -91,7 +91,7 @@ android:layout_height="wrap_content" android:lineSpacingMultiplier="1.4" android:text="@string/fre_send_report_check" - android:textAppearance="@style/TextAppearance.TextMedium.Primary" /> + android:textAppearance="@style/TextAppearance.TextMedium.Primary" android:visibility="gone" /> - + -- diff --git a/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch index cf84d774..f2e31fd9 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch @@ -11,9 +11,9 @@ Patch from https://github.com/Eloston/ungoogled-chromium/issues/814#issuecomment diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -76,7 +76,8 @@ struct MatchGURLHash { +@@ -70,7 +70,8 @@ struct MatchGURLHash { // static - size_t AutocompleteResult::GetMaxMatches(bool input_from_omnibox_focus) { + size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) { #if (defined(OS_ANDROID)) - constexpr size_t kDefaultMaxAutocompleteMatches = 5; + // changed from 6, this needs to be double the value of default_max_matches_per_provider from components/omnibox/browser/omnibox_field_trial.cc @@ -24,7 +24,7 @@ diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omni diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -361,11 +361,11 @@ void OmniboxFieldTrial::GetDemotionsByType( +@@ -382,11 +382,11 @@ void OmniboxFieldTrial::GetDemotionsByType( size_t OmniboxFieldTrial::GetProviderMaxMatches( AutocompleteProvider::Type provider) { @@ -38,7 +38,7 @@ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omni return default_max_matches_per_provider; std::string param_value = base::GetFieldTrialParamValueByFeature( -@@ -392,7 +392,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches( +@@ -413,7 +413,7 @@ size_t OmniboxFieldTrial::GetProviderMaxMatches( else if (k == provider) return v; } diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch index f305d38a..f15f372a 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -21,7 +21,7 @@ Send a random key press to circumvent idle status detection diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn --- a/third_party/blink/renderer/core/dom/BUILD.gn +++ b/third_party/blink/renderer/core/dom/BUILD.gn -@@ -140,6 +140,8 @@ blink_core_sources("dom") { +@@ -178,6 +178,8 @@ blink_core_sources("dom") { "global_event_handlers.h", "icon_url.cc", "icon_url.h", @@ -33,7 +33,7 @@ diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -264,6 +264,7 @@ +@@ -273,6 +273,7 @@ #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h" #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" @@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h" #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" -@@ -328,6 +329,8 @@ +@@ -338,6 +339,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& liveDocumentSet(); -@@ -6803,6 +6806,61 @@ void Document::MarkFirstPaint() { +@@ -6874,6 +6877,61 @@ void Document::MarkFirstPaint() { MaybeExecuteDelayedAsyncScripts(); } @@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink void Document::FinishedParsing() { DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing()); DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading); -@@ -6858,6 +6916,10 @@ void Document::FinishedParsing() { +@@ -6929,6 +6987,10 @@ void Document::FinishedParsing() { frame->Loader().FinishedParsing(); @@ -126,7 +126,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -1692,6 +1692,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -1670,6 +1670,9 @@ class CORE_EXPORT Document : public ContainerNode, void AddAXContext(AXContext*); void RemoveAXContext(AXContext*); @@ -161,7 +161,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc --- a/third_party/blink/renderer/core/html/html_script_element.cc +++ b/third_party/blink/renderer/core/html/html_script_element.cc -@@ -167,6 +167,11 @@ void HTMLScriptElement::setTextContent( +@@ -168,6 +168,11 @@ void HTMLScriptElement::setTextContent( } } @@ -176,7 +176,7 @@ diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third diff --git a/third_party/blink/renderer/core/html/html_script_element.h b/third_party/blink/renderer/core/html/html_script_element.h --- a/third_party/blink/renderer/core/html/html_script_element.h +++ b/third_party/blink/renderer/core/html/html_script_element.h -@@ -54,6 +54,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement, +@@ -53,6 +53,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement, void setInnerText(const StringOrTrustedScript&, ExceptionState&) override; void setTextContent(const StringOrTrustedScript&, ExceptionState&) override; void setTextContent(const String&) override; diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 44dbbe23..d88d8e03 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -10,14 +10,13 @@ Subject: Modify default preferences chrome/browser/profiles/profile.cc | 2 +- .../settings/reset_page/reset_profile_dialog.html | 2 +- chrome/browser/ui/browser_ui_prefs.cc | 4 ++-- - chrome/browser/ui/navigation_correction_tab_observer.cc | 2 +- .../ui/webui/local_discovery/local_discovery_ui.cc | 4 ---- chrome/service/cloud_print/connector_settings.cc | 2 +- components/autofill/core/browser/autofill_manager.cc | 9 +++------ components/autofill/core/common/autofill_prefs.cc | 2 +- components/bookmarks/browser/bookmark_utils.cc | 4 ++-- .../safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++-- - 14 files changed, 18 insertions(+), 25 deletions(-) + 13 files changed, 17 insertions(+), 24 deletions(-) diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc --- a/chrome/browser/background/background_mode_manager.cc @@ -34,7 +33,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows 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 -@@ -1277,7 +1277,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1290,7 +1290,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -70,7 +69,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -262,7 +262,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; +@@ -257,7 +257,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kSearchSuggestEnabled, @@ -108,22 +107,10 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); registry->RegisterDictionaryPref(prefs::kAppWindowPlacement); -diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc ---- a/chrome/browser/ui/navigation_correction_tab_observer.cc -+++ b/chrome/browser/ui/navigation_correction_tab_observer.cc -@@ -59,7 +59,7 @@ void NavigationCorrectionTabObserver::SetAllowEnableCorrectionsForTesting( - void NavigationCorrectionTabObserver::RegisterProfilePrefs( - user_prefs::PrefRegistrySyncable* prefs) { - prefs->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, -- true, -+ false, - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - } - diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc --- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc +++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc -@@ -109,10 +109,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs( +@@ -147,10 +147,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kLocalDiscoveryEnabled, true); registry->RegisterBooleanPref( prefs::kLocalDiscoveryNotificationsEnabled, @@ -149,7 +136,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -948,10 +948,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl( +@@ -955,10 +955,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl( // suggestions available. // TODO(mathp): Differentiate between number of suggestions available // (current metric) and number shown to the user. @@ -161,7 +148,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a } } -@@ -1587,8 +1584,8 @@ void AutofillManager::Reset() { +@@ -1593,8 +1590,8 @@ void AutofillManager::Reset() { #if defined(OS_ANDROID) || defined(OS_IOS) autofill_assistant_.Reset(); #endif @@ -205,7 +192,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar 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 -@@ -189,9 +189,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -205,9 +205,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( diff --git a/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch b/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch index 34d38f34..2efb2978 100644 --- a/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch +++ b/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch @@ -56,9 +56,9 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2098,6 +2098,7 @@ static_library("browser") { - "//services/data_decoder/public/cpp", +@@ -2132,6 +2132,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", + "//services/device/public/cpp/serial:switches", "//services/device/public/cpp/usb", + "//third_party/ungoogled:switches", "//services/device/public/mojom", @@ -68,14 +68,14 @@ 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 @@ -164,6 +164,7 @@ + #include "services/media_session/public/cpp/features.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/network_switches.h" - #include "services/service_manager/sandbox/features.h" +#include "third_party/ungoogled/ungoogled_switches.h" - #include "services/service_manager/sandbox/switches.h" + #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" -@@ -2017,12 +2018,24 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2281,12 +2282,24 @@ const FeatureEntry kFeatureEntries[] = { {"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName, flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll, SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)}, @@ -103,7 +103,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -216,6 +216,7 @@ jumbo_source_set("browser") { +@@ -221,6 +221,7 @@ source_set("browser") { "//third_party/libyuv", "//third_party/re2", "//third_party/sqlite", @@ -114,7 +114,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn 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 -@@ -224,6 +224,7 @@ +@@ -223,6 +223,7 @@ #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" #include "third_party/blink/public/mojom/disk_allocator.mojom.h" #include "third_party/blink/public/public_buildflags.h" @@ -122,7 +122,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "third_party/skia/include/core/SkBitmap.h" #include "ui/accessibility/accessibility_switches.h" #include "ui/base/ui_base_switches.h" -@@ -3294,6 +3295,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3333,6 +3334,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisablePreferCompositingToLCDText, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -135,7 +135,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -123,6 +123,7 @@ target(link_target_type, "child") { +@@ -125,6 +125,7 @@ target(link_target_type, "child") { "//third_party/blink/public/common", "//third_party/blink/public/strings", "//third_party/ced", @@ -146,7 +146,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -26,6 +26,7 @@ +@@ -28,6 +28,7 @@ #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/network_switches.h" #include "third_party/blink/public/common/features.h" @@ -154,7 +154,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #include "third_party/blink/public/common/switches.h" #include "third_party/blink/public/platform/web_runtime_features.h" #include "ui/accessibility/accessibility_features.h" -@@ -535,6 +536,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -582,6 +583,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( // They're moved here to distinguish them from actual base checks WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled()); @@ -171,7 +171,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -223,6 +223,9 @@ class WebRuntimeFeatures { +@@ -224,6 +224,9 @@ class WebRuntimeFeatures { BLINK_PLATFORM_EXPORT static void EnableTranslateService(bool); BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool); BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool); @@ -184,7 +184,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -35,6 +35,7 @@ +@@ -41,6 +41,7 @@ #include "base/auto_reset.h" #include "base/macros.h" #include "base/optional.h" @@ -192,7 +192,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/time/time.h" #include "cc/input/overscroll_behavior.h" #include "cc/input/scroll_snap_data.h" -@@ -2513,6 +2514,23 @@ void Document::UpdateStyleAndLayoutTree() { +@@ -2475,6 +2476,23 @@ void Document::UpdateStyleAndLayoutTree() { #if DCHECK_IS_ON() AssertLayoutTreeUpdated(*this); #endif @@ -219,7 +219,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -451,6 +451,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -438,6 +438,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -230,7 +230,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ String visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -1974,6 +1978,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -1943,6 +1947,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -243,7 +243,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2031,6 +2031,11 @@ DOMRectList* Element::getClientRects() { +@@ -2019,6 +2019,11 @@ DOMRectList* Element::getClientRects() { DCHECK(element_layout_object); GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom( quads, *element_layout_object); @@ -255,7 +255,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return MakeGarbageCollected(quads); } -@@ -2048,6 +2053,9 @@ DOMRect* Element::getBoundingClientRect() { +@@ -2036,6 +2041,9 @@ DOMRect* Element::getBoundingClientRect() { DCHECK(element_layout_object); GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -357,7 +357,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1552,7 +1552,9 @@ jumbo_component("platform") { +@@ -1548,7 +1548,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -368,7 +368,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re public_deps = [ ":blink_platform_public_deps", -@@ -1593,6 +1595,7 @@ jumbo_component("platform") { +@@ -1592,6 +1594,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -379,8 +379,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -709,4 +709,16 @@ void WebRuntimeFeatures::EnableContentIndex(bool enable) { - RuntimeEnabledFeatures::SetContentIndexEnabled(enable); +@@ -729,4 +729,16 @@ void WebRuntimeFeatures::EnableConversionMeasurementInfraSupport(bool enable) { + RuntimeEnabledFeatures::SetConversionMeasurementInfraSupportEnabled(enable); } +void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) { @@ -446,10 +446,10 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc #include "v8/include/v8.h" namespace blink { -@@ -128,7 +132,162 @@ bool StaticBitmapImage::CopyToByteArray( - DCHECK(read_pixels_successful || - !sk_image->bounds().intersect(SkIRect::MakeXYWH( - rect.X(), rect.Y(), info.width(), info.height()))); +@@ -129,7 +133,162 @@ bool StaticBitmapImage::CopyToByteArray( + .bounds() + .intersect(SkIRect::MakeXYWH(rect.X(), rect.Y(), info.width(), + info.height()))); + + if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) { + ShuffleSubchannelColorData(dst.data(), info, rect.X(), rect.Y()); @@ -624,7 +624,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -752,6 +752,15 @@ +@@ -795,6 +795,15 @@ origin_trial_feature_name: "FeaturePolicyReporting", status: "experimental" }, diff --git a/build/patches/Open-YouTube-links-in-Bromite.patch b/build/patches/Open-YouTube-links-in-Bromite.patch index ac2b97fa..fcab69fd 100644 --- a/build/patches/Open-YouTube-links-in-Bromite.patch +++ b/build/patches/Open-YouTube-links-in-Bromite.patch @@ -9,7 +9,7 @@ Subject: Open YouTube links in Bromite diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -493,6 +493,7 @@ public class ExternalNavigationHandler { +@@ -499,6 +499,7 @@ public class ExternalNavigationHandler { startActivity(intent, false, mDelegate); return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT; } @@ -17,7 +17,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component } private static void loadUrlWithReferrer( -@@ -1060,6 +1061,13 @@ public class ExternalNavigationHandler { +@@ -1153,6 +1154,13 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION; } diff --git a/build/patches/Password-service-build-fixes.patch b/build/patches/Password-service-build-fixes.patch new file mode 100644 index 00000000..fcbd6720 --- /dev/null +++ b/build/patches/Password-service-build-fixes.patch @@ -0,0 +1,52 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Wed, 23 Sep 2020 14:47:44 +0200 +Subject: Password service build fixes + +--- + .../safe_browsing/chrome_password_protection_service.h | 2 -- + .../password_protection/password_protection_request.cc | 2 -- + .../password_protection/password_protection_service.h | 5 ----- + 3 files changed, 9 deletions(-) + +diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.h b/chrome/browser/safe_browsing/chrome_password_protection_service.h +--- a/chrome/browser/safe_browsing/chrome_password_protection_service.h ++++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h +@@ -250,8 +250,6 @@ class ChromePasswordProtectionService : public PasswordProtectionService { + // |NOT_SIGNED_IN|. + LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType + GetSyncAccountType() const override; +- safe_browsing::LoginReputationClientRequest::UrlDisplayExperiment +- GetUrlDisplayExperiment() const override; + + // Stores |verdict| in the cache based on its |trigger_type|, |url|, + // reused |password_type|, |verdict| and |receive_time|. +diff --git a/components/safe_browsing/content/password_protection/password_protection_request.cc b/components/safe_browsing/content/password_protection/password_protection_request.cc +--- a/components/safe_browsing/content/password_protection/password_protection_request.cc ++++ b/components/safe_browsing/content/password_protection/password_protection_request.cc +@@ -132,8 +132,6 @@ PasswordProtectionRequest::PasswordProtectionRequest( + password_type_ != PasswordType::SAVED_PASSWORD || + !matching_reused_credentials_.empty()); + request_proto_->set_trigger_type(trigger_type_); +- *request_proto_->mutable_url_display_experiment() = +- pps->GetUrlDisplayExperiment(); + } + + PasswordProtectionRequest::~PasswordProtectionRequest() { +diff --git a/components/safe_browsing/content/password_protection/password_protection_service.h b/components/safe_browsing/content/password_protection/password_protection_service.h +--- a/components/safe_browsing/content/password_protection/password_protection_service.h ++++ b/components/safe_browsing/content/password_protection/password_protection_service.h +@@ -423,11 +423,6 @@ class PasswordProtectionService : public history::HistoryServiceObserver { + virtual LoginReputationClientRequest::PasswordReuseEvent::SyncAccountType + GetSyncAccountType() const = 0; + +- // Get information about Delayed Warnings and Omnibox URL display experiments. +- // This information is sent in PhishGuard pings. +- virtual LoginReputationClientRequest::UrlDisplayExperiment +- GetUrlDisplayExperiment() const = 0; +- + // Returns the reason why a ping is not sent based on the |trigger_type|, + // |url| and |password_type|. Crash if |CanSendPing| is true. + virtual RequestOutcome GetPingNotSentReason( +-- +2.17.1 + diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index 677ff3ce..f392dc12 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -27,7 +27,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc -@@ -419,7 +419,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { +@@ -418,7 +418,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { // Disable secure DNS for any DoH server hostname lookups to avoid deadlock. request_->SetDisableSecureDns(true); request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | @@ -62,7 +62,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); AddCookieHeaderAndStart(); -@@ -532,10 +536,12 @@ void URLRequestHttpJob::AddExtraHeaders() { +@@ -538,10 +542,12 @@ void URLRequestHttpJob::AddExtraHeaders() { } else { // Advertise "br" encoding only if transferred data is opaque to proxy. bool advertise_brotli = false; @@ -79,7 +79,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } } -@@ -553,7 +559,7 @@ void URLRequestHttpJob::AddExtraHeaders() { +@@ -559,7 +565,7 @@ void URLRequestHttpJob::AddExtraHeaders() { } } diff --git a/build/patches/Remove-SMS-integration.patch b/build/patches/Remove-SMS-integration.patch index 39d56415..49b15486 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -3,27 +3,42 @@ Date: Sun, 3 Nov 2019 08:22:29 +0100 Subject: Remove SMS integration --- - .../browser/sms/SmsUserConsentReceiver.java | 33 ++----------------- - .../browser/sms/SmsVerificationReceiver.java | 30 ++--------------- - .../content/browser/sms/Wrappers.java | 14 +------- - 3 files changed, 6 insertions(+), 71 deletions(-) + .../PasswordManagerLauncher.java | 3 -- + .../browser/sms/SmsUserConsentReceiver.java | 42 ++----------------- + .../browser/sms/SmsVerificationReceiver.java | 30 +------------ + .../content/browser/sms/Wrappers.java | 14 +------ + 4 files changed, 7 insertions(+), 82 deletions(-) +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java +@@ -6,9 +6,6 @@ package org.chromium.chrome.browser.password_manager; + + import android.app.Activity; + +-import com.google.android.gms.common.ConnectionResult; +-import com.google.android.gms.common.GoogleApiAvailability; +- + import org.chromium.base.ContextUtils; + import org.chromium.base.annotations.CalledByNative; + import org.chromium.base.metrics.RecordHistogram; diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java --- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java +++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java -@@ -12,11 +12,6 @@ import android.content.IntentFilter; +@@ -12,12 +12,6 @@ import android.content.IntentFilter; import androidx.annotation.VisibleForTesting; -import com.google.android.gms.auth.api.phone.SmsRetriever; -import com.google.android.gms.common.api.CommonStatusCodes; -import com.google.android.gms.common.api.Status; +-import com.google.android.gms.tasks.OnFailureListener; -import com.google.android.gms.tasks.Task; - import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.annotations.CalledByNative; -@@ -45,18 +40,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -46,18 +40,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { mSmsProviderAndroid = smsProviderAndroid; mContext = new Wrappers.SmsReceiverContext(ContextUtils.getApplicationContext()); @@ -42,7 +57,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } @CalledByNative -@@ -69,7 +52,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -70,7 +52,6 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { private void destroy() { if (DEBUG) Log.d(TAG, "Destroying SmsUserConsentReceiver."); mDestroyed = true; @@ -50,7 +65,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } @Override -@@ -82,7 +64,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -83,7 +64,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { return; } @@ -59,7 +74,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm return; } -@@ -114,28 +96,19 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -115,35 +96,20 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { if (DEBUG) Log.d(TAG, "Timeout"); SmsUserConsentReceiverJni.get().onTimeout(mSmsProviderAndroid); break; @@ -74,14 +89,22 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm - } else if (resultCode == Activity.RESULT_CANCELED) { - if (DEBUG) Log.d(TAG, "Activity result cancelled."); - } -+ Log.d(TAG, "Activity result discarded."); ++ if (DEBUG) Log.d(TAG, "Activity result discarded."); } @CalledByNative private void listen(WindowAndroid windowAndroid) { mWindowAndroid = windowAndroid; - Task task = getClient().startSmsUserConsent(null); +- +- task.addOnFailureListener(new OnFailureListener() { +- @Override +- public void onFailure(Exception e) { +- Log.e(TAG, "Task failed to start", e); +- } +- }); - if (DEBUG) Log.d(TAG, "Installed task"); ++ Log.d(TAG, "Ignored task"); } private Wrappers.SmsRetrieverClientWrapper getClient() { diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch index 7fee5218..74b2d60e 100644 --- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch +++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch @@ -3,13 +3,13 @@ Date: Fri, 21 Aug 2020 22:39:23 +0200 Subject: Remove blocklisted URLs upon bookmark creation --- - .../chromium/chrome/browser/ChromeActivity.java | 15 +++++++++++++++ + .../chrome/browser/app/ChromeActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -123,6 +123,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncher; +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 +@@ -134,6 +134,8 @@ import org.chromium.chrome.browser.settings.SettingsLauncher; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegateImpl; @@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabDelegateFactory; -@@ -228,6 +230,7 @@ public abstract class ChromeActivity +@@ -241,6 +243,7 @@ public abstract class ChromeActivity private TabContentManager mTabContentManager; private UmaSessionStats mUmaSessionStats; private ContextReporter mContextReporter; @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. private boolean mPartnerBrowserRefreshNeeded; -@@ -1203,6 +1206,11 @@ public abstract class ChromeActivity +@@ -1186,6 +1189,11 @@ public abstract class ChromeActivity mCompositorViewHolder = null; } @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. onDestroyInternal(); if (mDidAddPolicyChangeListener) { -@@ -1437,6 +1445,13 @@ public abstract class ChromeActivity +@@ -1416,6 +1424,13 @@ public abstract class ChromeActivity return; } @@ -47,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. + mMostVisitedSites = + SuggestionsDependencyFactory.getInstance().createMostVisitedSites(Profile.getLastUsedRegularProfile()); + } -+ mMostVisitedSites.removeBlacklistedUrl(tabToBookmark.getOriginalUrl()); ++ mMostVisitedSites.removeBlocklistedUrl(tabToBookmark.getOriginalUrl()); + // Note we get user bookmark ID over just a bookmark ID here: Managed bookmarks can't be // edited. If the current URL is only bookmarked by managed bookmarks, this will return diff --git a/build/patches/Remove-dependency-on-auth-signin-dynamic-and-tasks.patch b/build/patches/Remove-dependency-on-auth-signin-dynamic-and-tasks.patch index 3c86d6d9..52fd6289 100644 --- a/build/patches/Remove-dependency-on-auth-signin-dynamic-and-tasks.patch +++ b/build/patches/Remove-dependency-on-auth-signin-dynamic-and-tasks.patch @@ -5,7 +5,7 @@ Subject: Remove dependency on auth, signin, dynamic and tasks --- chrome/android/BUILD.gn | 8 -- chrome/android/features/media_router/BUILD.gn | 2 - - .../media/router/ChromeMediaRouter.java | 7 +- + .../media/router/ChromeMediaRouter.java | 18 +--- chrome/android/java/AndroidManifest.xml | 9 -- .../org/chromium/chrome/browser/AppHooks.java | 14 +--- .../chrome/browser/ChromeVersionInfo.java | 12 +-- @@ -29,13 +29,12 @@ Subject: Remove dependency on auth, signin, dynamic and tasks services/device/geolocation/BUILD.gn | 2 - services/shape_detection/BUILD.gn | 2 - third_party/android_deps/BUILD.gn | 41 ---------- - third_party/cacheinvalidation/BUILD.gn | 1 - - 27 files changed, 16 insertions(+), 272 deletions(-) + 26 files changed, 16 insertions(+), 282 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -272,9 +272,6 @@ android_library("chrome_java") { +@@ -263,9 +263,6 @@ android_library("chrome_java") { ":partner_location_descriptor_proto_java", ":update_proto_java", ":usage_stats_proto_java", @@ -45,7 +44,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:jni_java", "//chrome/android/features/keyboard_accessory:public_java", -@@ -717,8 +714,6 @@ junit_binary("chrome_junit_tests") { +@@ -739,8 +736,6 @@ junit_binary("chrome_junit_tests") { ":chrome_app_java_resources", ":chrome_java", ":partner_location_descriptor_proto_java", @@ -54,7 +53,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -895,9 +890,6 @@ android_library("chrome_test_java") { +@@ -928,9 +923,6 @@ android_library("chrome_test_java") { ":chrome_test_util_java", ":native_java_unittests_java", ":partner_location_descriptor_proto_java", @@ -67,8 +66,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/features/media_router/BUILD.gn --- a/chrome/android/features/media_router/BUILD.gn +++ b/chrome/android/features/media_router/BUILD.gn -@@ -10,8 +10,6 @@ import("//chrome/common/features.gni") - android_library("java") { +@@ -11,8 +11,6 @@ android_library("java") { + resources_package = "org.chromium.chrome.media.router" deps = [ ":java_resources", - "$google_play_services_package:google_play_services_base_java", @@ -89,21 +88,32 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.StrictModeContext; -@@ -43,9 +40,7 @@ public class ChromeMediaRouter implements MediaRouteManager { - int googleApiAvailabilityResult = - AppHooks.get().isGoogleApiAvailableWithMinApkVersion( - MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); +@@ -39,20 +36,7 @@ public class ChromeMediaRouter implements MediaRouteManager { + new MediaRouteProvider.Factory() { + @Override + public void addProviders(MediaRouteManager manager) { +- int googleApiAvailabilityResult = +- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable( +- ContextUtils.getApplicationContext(), +- MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); - if (googleApiAvailabilityResult != ConnectionResult.SUCCESS) { - GoogleApiAvailability.getInstance().showErrorNotification( - ContextUtils.getApplicationContext(), googleApiAvailabilityResult); -+ if (true) { - return; - } - MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager); +- return; +- } +- MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager); +- manager.addMediaRouteProvider(cafProvider); +- MediaRouteProvider remotingProvider = +- CafRemotingMediaRouteProvider.create(manager); +- manager.addMediaRouteProvider(remotingProvider); ++ return; + } + }; + diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -746,15 +746,6 @@ by a child template that "extends" this file. +@@ -757,15 +757,6 @@ by a child template that "extends" this file. @@ -129,10 +139,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; - - import org.chromium.base.Callback; import org.chromium.base.ContextUtils; import org.chromium.base.annotations.CalledByNative; -@@ -304,16 +301,7 @@ public abstract class AppHooks { + import org.chromium.chrome.browser.banners.AppDetailsDelegate; +@@ -325,16 +322,7 @@ public abstract class AppHooks { * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}. */ public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) { @@ -499,7 +509,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java -@@ -21,8 +21,6 @@ import androidx.annotation.NonNull; +@@ -19,8 +19,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -508,7 +518,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta import org.chromium.base.ActivityState; import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus.ActivityStateListener; -@@ -465,13 +463,7 @@ public class UpdateStatusProvider implements ActivityStateListener { +@@ -456,13 +454,7 @@ public class UpdateStatusProvider implements ActivityStateListener { } private boolean isGooglePlayStoreAvailable(Context context) { @@ -522,20 +532,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta + return false; } - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) + private long getSize(StatFs statFs) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java -@@ -6,8 +6,6 @@ package org.chromium.chrome.browser.password_manager; - - import android.app.Activity; - --import com.google.android.gms.common.ConnectionResult; -- - import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.metrics.RecordHistogram; - import org.chromium.chrome.browser.AppHooks; -@@ -89,20 +87,6 @@ public class PasswordManagerLauncher { +@@ -93,22 +93,6 @@ public class PasswordManagerLauncher { } private static boolean tryShowingTheGooglePasswordManager(Activity activity) { @@ -546,7 +547,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage - int minGooglePlayServicesVersion = ChromeFeatureList.getFieldTrialParamByFeatureAsInt( - GOOGLE_ACCOUNT_PWM_UI, MIN_GOOGLE_PLAY_SERVICES_VERSION_PARAM, - DEFAULT_MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); -- if (AppHooks.get().isGoogleApiAvailableWithMinApkVersion(minGooglePlayServicesVersion) +- +- if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable( +- ContextUtils.getApplicationContext(), minGooglePlayServicesVersion) - != ConnectionResult.SUCCESS) { - return false; - } @@ -560,7 +563,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -239,8 +239,6 @@ android_library("chrome_java_test_support") { +@@ -249,8 +249,6 @@ android_library("chrome_java_test_support") { "javatests/src/org/chromium/chrome/test/util/browser/webapps/WebappTestPage.java", ] deps = [ @@ -572,7 +575,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn -@@ -119,10 +119,6 @@ if (is_android) { +@@ -120,10 +120,6 @@ if (is_android) { deps = [ ":background_task_scheduler_task_ids_java", @@ -586,7 +589,7 @@ diff --git a/components/background_task_scheduler/BUILD.gn b/components/backgrou diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn --- a/components/background_task_scheduler/internal/BUILD.gn +++ b/components/background_task_scheduler/internal/BUILD.gn -@@ -26,9 +26,6 @@ if (is_android) { +@@ -25,9 +25,6 @@ if (is_android) { deps = [ ":proto_java", @@ -596,7 +599,7 @@ diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components "//base:base_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", "//components/background_task_scheduler:public_java", -@@ -96,9 +93,6 @@ if (is_android) { +@@ -95,9 +92,6 @@ if (is_android) { deps = [ ":internal_java", @@ -654,7 +657,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2515,9 +2515,6 @@ if (is_android) { +@@ -2535,9 +2535,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -667,7 +670,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -393,8 +393,6 @@ if (is_android) { +@@ -394,8 +394,6 @@ if (is_android) { junit_binary("device_junit_tests") { sources = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ] deps = [ @@ -679,7 +682,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni --- a/remoting/android/client_java_tmpl.gni +++ b/remoting/android/client_java_tmpl.gni -@@ -102,9 +102,6 @@ template("remoting_android_client_java_tmpl") { +@@ -104,9 +104,6 @@ template("remoting_android_client_java_tmpl") { if (defined(invoker.play_services_package)) { deps += [ @@ -728,7 +731,7 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD. diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -995,37 +995,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { +@@ -1137,37 +1137,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { ] } @@ -766,7 +769,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_gcm_java") { aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" -@@ -1044,16 +1013,6 @@ android_aar_prebuilt("google_play_services_gcm_java") { +@@ -1186,16 +1155,6 @@ android_aar_prebuilt("google_play_services_gcm_java") { strip_drawables = true } @@ -783,17 +786,6 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = -diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn ---- a/third_party/cacheinvalidation/BUILD.gn -+++ b/third_party/cacheinvalidation/BUILD.gn -@@ -133,7 +133,6 @@ if (is_android) { - jacoco_never_instrument = true - deps = [ - ":cacheinvalidation_proto_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", - "//third_party/android_protobuf:protobuf_nano_javalib", - ] -- 2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gcm.patch b/build/patches/Remove-dependency-on-com.google.android.gcm.patch index b08d0469..07e5931f 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gcm.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gcm.patch @@ -3,11 +3,8 @@ Date: Sat, 2 Nov 2019 09:29:52 +0100 Subject: Remove dependency on com.google.android.gcm --- - third_party/android_sdk/BUILD.gn | 3 -- - .../client/android2/AndroidManifest.xml | 35 ------------------- - .../AndroidMessageReceiverService.java | 17 --------- - .../channel/AndroidMessageSenderService.java | 3 +- - 4 files changed, 1 insertion(+), 57 deletions(-) + third_party/android_sdk/BUILD.gn | 3 --- + 1 file changed, 3 deletions(-) diff --git a/third_party/android_sdk/BUILD.gn b/third_party/android_sdk/BUILD.gn --- a/third_party/android_sdk/BUILD.gn @@ -20,113 +17,6 @@ diff --git a/third_party/android_sdk/BUILD.gn b/third_party/android_sdk/BUILD.gn - jar_path = "//third_party/android_sdk/public/extras/google/gcm/gcm-client/dist/gcm.jar" - } } -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifest.xml b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifest.xml ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifest.xml -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifest.xml -@@ -4,10 +4,6 @@ - - -- -- -- -- - - - -@@ -16,40 +12,9 @@ - - -- -- -- - - - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java -@@ -15,7 +15,6 @@ - */ - package com.google.ipc.invalidation.ticl.android2.channel; - --import com.google.android.gcm.GCMRegistrar; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; - import com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener; -@@ -126,20 +125,4 @@ public class AndroidMessageReceiverService extends MultiplexingGcmListener.Abstr - // now, there is nothing to do. - } - -- /** -- * Initializes GCM as a convenience method for tests. In production, applications should handle -- * this. -- */ -- public static void initializeGcmForTest(Context context, Logger logger, String senderId) { -- // Initialize GCM. -- GCMRegistrar.checkDevice(context); -- GCMRegistrar.checkManifest(context); -- String regId = GCMRegistrar.getRegistrationId(context); -- if (regId.isEmpty()) { -- logger.info("Not registered with GCM; registering"); -- GCMRegistrar.register(context, senderId); -- } else { -- logger.fine("Already registered with GCM: %s", regId); -- } -- } - } -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java -@@ -15,7 +15,6 @@ - */ - package com.google.ipc.invalidation.ticl.android2.channel; - --import com.google.android.gcm.GCMRegistrar; - import com.google.ipc.invalidation.common.GcmSharedConstants; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; -@@ -395,7 +394,7 @@ public class AndroidMessageSenderService extends IntentService { - // No client key when using old style registration id. - clientKey = ""; - try { -- registrationId = GCMRegistrar.getRegistrationId(context); -+ registrationId = null; - } catch (RuntimeException exception) { - // GCMRegistrar#getRegistrationId occasionally throws a runtime exception. Catching the - // exception rather than crashing. -- 2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch b/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch index 835203eb..8a414320 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch @@ -14,7 +14,7 @@ Subject: Remove dependency on com.google.android.gms.auth diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -272,7 +272,6 @@ android_library("chrome_java") { +@@ -263,7 +263,6 @@ android_library("chrome_java") { ":partner_location_descriptor_proto_java", ":update_proto_java", ":usage_stats_proto_java", @@ -93,7 +93,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2515,7 +2515,6 @@ if (is_android) { +@@ -2535,7 +2535,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -104,7 +104,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -996,53 +996,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { +@@ -1138,53 +1138,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { ] } diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch index 12803284..746249d9 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch @@ -22,17 +22,17 @@ Subject: Remove dependency on com.google.android.gms.cast .../remoting/FlingingControllerAdapter.java | 74 ------------- .../caf/remoting/RemotingMediaSource.java | 8 +- .../remoting/RemotingSessionController.java | 26 ----- - chrome/android/java/AndroidManifest.xml | 28 ----- + chrome/android/java/AndroidManifest.xml | 27 ----- .../settings/PasswordSettings.java | 14 --- .../modules/chrome_feature_modules.gni | 3 - chrome/test/android/cast_emulator/BUILD.gn | 1 - third_party/android_deps/BUILD.gn | 39 ------- - 24 files changed, 29 insertions(+), 814 deletions(-) + 24 files changed, 29 insertions(+), 813 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -274,14 +274,11 @@ android_library("chrome_java") { +@@ -265,14 +265,11 @@ android_library("chrome_java") { ":usage_stats_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -47,7 +47,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/android/modules/image_editor/provider:java", "//chrome/android/modules/image_editor/public:java", "//chrome/android/modules/stack_unwinder/provider:java", -@@ -722,8 +719,6 @@ junit_binary("chrome_junit_tests") { +@@ -744,8 +741,6 @@ junit_binary("chrome_junit_tests") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -56,7 +56,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -902,8 +897,6 @@ android_library("chrome_test_java") { +@@ -935,8 +930,6 @@ android_library("chrome_test_java") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -68,7 +68,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/features/media_router/BUILD.gn --- a/chrome/android/features/media_router/BUILD.gn +++ b/chrome/android/features/media_router/BUILD.gn -@@ -12,8 +12,6 @@ android_library("java") { +@@ -13,8 +13,6 @@ android_library("java") { ":java_resources", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -77,7 +77,7 @@ diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/feat "//base:base_java", "//base:jni_java", "//chrome/android:chrome_java", -@@ -123,9 +121,6 @@ junit_binary("media_router_junit_tests") { +@@ -130,9 +128,6 @@ junit_binary("media_router_junit_tests") { deps = [ ":java", @@ -656,7 +656,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b - this, CastSession.class); - mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId, - origin, tabId, isIncognito, nativeRequestId, targetRouteInfo); + origin, tabId, isOffTheRecord, nativeRequestId, targetRouteInfo); @@ -212,100 +205,6 @@ public abstract class CafBaseMediaRouteProvider removeRoute(routeId, /* error= */ null); @@ -1452,7 +1452,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -164,12 +164,6 @@ by a child template that "extends" this file. +@@ -165,12 +165,6 @@ by a child template that "extends" this file. {% endif %} @@ -1465,7 +1465,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - {% endblock %} - {% block extra_application_definitions_for_test %} - {% endblock %} + + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -35,7 +35,6 @@ import org.chromium.chrome.browser.profiles.Profile; +@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsLauncher; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; --import org.chromium.chrome.modules.cablev2_authenticator.CableAuthenticatorModuleProvider; +-import org.chromium.chrome.browser.webauthn.CableAuthenticatorModuleProvider; import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference; import org.chromium.components.browser_ui.settings.ChromeBasePreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; -@@ -509,19 +508,6 @@ public class PasswordSettings +@@ -558,19 +557,6 @@ public class PasswordSettings } private void displaySecurityKeyLink() { @@ -1566,7 +1565,7 @@ diff --git a/chrome/test/android/cast_emulator/BUILD.gn b/chrome/test/android/ca diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -1026,45 +1026,6 @@ android_aar_prebuilt("google_play_services_basement_java") { +@@ -1168,45 +1168,6 @@ android_aar_prebuilt("google_play_services_basement_java") { input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ] } diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch b/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch index 00b12791..c22f4a9b 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch @@ -5,26 +5,24 @@ Subject: Remove dependency on com.google.android.gms.gcm It also disalbes Snippets, auto-update of offline pages and launching browser from background service. The snippets are already disabled in native codes, this will disable it on Java level. --- - chrome/android/BUILD.gn | 3 - - .../browser/ChromeBackgroundService.java | 4 - - .../ntp/snippets/SnippetsLauncher.java | 2 +- - .../gcm/ChromeGcmListenerService.java | 58 +----------- - components/background_task_scheduler/BUILD.gn | 1 - - .../internal/BUILD.gn | 2 - - .../BackgroundTaskGcmTaskService.java | 78 +--------------- - ...ackgroundTaskSchedulerFactoryInternal.java | 6 +- - ...kgroundTaskSchedulerGcmNetworkManager.java | 14 +-- - third_party/cacheinvalidation/BUILD.gn | 1 - - .../android2/AndroidManifestUpdatedGcm.xml | 20 ----- - .../channel/AndroidGcmController.java | 42 +-------- - .../AndroidInstanceIDListenerService.java | 13 +-- - .../channel/GcmRegistrationTaskService.java | 89 +------------------ - 14 files changed, 11 insertions(+), 322 deletions(-) + chrome/android/BUILD.gn | 3 - + .../browser/ChromeBackgroundService.java | 4 - + .../ntp/snippets/SnippetsLauncher.java | 2 +- + .../gcm/ChromeGcmListenerService.java | 220 ------------------ + components/background_task_scheduler/BUILD.gn | 1 - + .../internal/BUILD.gn | 3 - + .../BackgroundTaskGcmTaskService.java | 160 ------------- + ...ackgroundTaskSchedulerFactoryInternal.java | 6 +- + ...kgroundTaskSchedulerGcmNetworkManager.java | 55 ----- + 9 files changed, 2 insertions(+), 452 deletions(-) + delete mode 100644 chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java + delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java + delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -277,7 +277,6 @@ android_library("chrome_java") { +@@ -268,7 +268,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -32,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", -@@ -910,7 +909,6 @@ android_library("chrome_test_java") { +@@ -943,7 +942,6 @@ android_library("chrome_test_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -40,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", -@@ -1808,7 +1806,6 @@ android_library("browser_java_test_support") { +@@ -1870,7 +1868,6 @@ android_library("browser_java_test_support") { ] deps = [ ":chrome_java", @@ -75,24 +73,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/Sn /** * Create a SnippetsLauncher object, which is owned by C++. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java +deleted file mode 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java -@@ -10,7 +10,6 @@ import android.os.Build; - import android.os.Bundle; - import android.text.TextUtils; - ++++ /dev/null +@@ -1,220 +0,0 @@ +-// Copyright 2015 The Chromium Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style license that can be +-// found in the LICENSE file. +- +-package org.chromium.chrome.browser.services.gcm; +- +-import android.content.Context; +-import android.content.Intent; +-import android.os.Build; +-import android.os.Bundle; +-import android.text.TextUtils; +- -import com.google.android.gms.gcm.GcmListenerService; - import com.google.ipc.invalidation.ticl.android2.channel.AndroidGcmController; - - import org.chromium.base.ContextUtils; -@@ -33,62 +32,9 @@ import org.chromium.content_public.browser.UiThreadTaskTraits; - /** - * Receives Downstream messages and status of upstream messages from GCM. - */ +- +-import org.chromium.base.ContextUtils; +-import org.chromium.base.Log; +-import org.chromium.base.ThreadUtils; +-import org.chromium.base.task.PostTask; +-import org.chromium.chrome.browser.DeviceConditions; +-import org.chromium.chrome.browser.init.ChromeBrowserInitializer; +-import org.chromium.chrome.browser.init.ProcessInitializationHandler; +-import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; +-import org.chromium.components.background_task_scheduler.TaskIds; +-import org.chromium.components.background_task_scheduler.TaskInfo; +-import org.chromium.components.gcm_driver.GCMDriver; +-import org.chromium.components.gcm_driver.GCMMessage; +-import org.chromium.components.gcm_driver.InstanceIDFlags; +-import org.chromium.components.gcm_driver.LazySubscriptionsManager; +-import org.chromium.components.gcm_driver.SubscriptionFlagManager; +-import org.chromium.content_public.browser.UiThreadTaskTraits; +- +-/** +- * Receives Downstream messages and status of upstream messages from GCM. +- */ -public class ChromeGcmListenerService extends GcmListenerService { -+public class ChromeGcmListenerService { - private static final String TAG = "ChromeGcmListener"; - +- private static final String TAG = "ChromeGcmListener"; +- - @Override - public void onCreate() { - ProcessInitializationHandler.getInstance().initializePreNative(); @@ -104,12 +125,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/Ch - boolean hasCollapseKey = !TextUtils.isEmpty(data.getString("collapse_key")); - GcmUma.recordDataMessageReceived(ContextUtils.getApplicationContext(), hasCollapseKey); - -- String invalidationSenderId = AndroidGcmController.get(this).getSenderId(); -- if (from.equals(invalidationSenderId)) { -- AndroidGcmController.get(this).onMessageReceived(data); -- return; -- } -- - // Dispatch the message to the GCM Driver for native features. - PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> { - GCMMessage message = null; @@ -146,22 +161,146 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/Ch - GcmUma.recordDeletedMessages(ContextUtils.getApplicationContext()); - } - - /** - * Returns if we deliver the GCMMessage with a background service by calling - * Context#startService. This will only work if Android has put us in a whitelist to allow -@@ -218,7 +164,7 @@ public class ChromeGcmListenerService extends GcmListenerService { - static void dispatchMessageToDriver(GCMMessage message) { - ThreadUtils.assertOnUiThread(); - ChromeBrowserInitializer.getInstance().handleSynchronousStartup(); +- /** +- * Returns if we deliver the GCMMessage with a background service by calling +- * Context#startService. This will only work if Android has put us in a whitelist to allow +- * background services to be started. +- */ +- private static boolean maybeBypassScheduler(GCMMessage message) { +- // Android only puts us on a whitelist for high priority messages. +- if (message.getOriginalPriority() != GCMMessage.Priority.HIGH) { +- return false; +- } +- +- final String subscriptionId = SubscriptionFlagManager.buildSubscriptionUniqueId( +- message.getAppId(), message.getSenderId()); +- if (!SubscriptionFlagManager.hasFlags(subscriptionId, InstanceIDFlags.BYPASS_SCHEDULER)) { +- return false; +- } +- +- try { +- Context context = ContextUtils.getApplicationContext(); +- Intent intent = new Intent(context, GCMBackgroundService.class); +- intent.putExtras(message.toBundle()); +- context.startService(intent); +- return true; +- } catch (IllegalStateException e) { +- // Failed to start service, maybe we're not whitelisted? Fallback to using +- // BackgroundTaskScheduler to start Chrome. +- // TODO(knollr): Add metrics for this. +- Log.e(TAG, "Could not start background service", e); +- return false; +- } +- } +- +- /** +- * Returns if the |message| is sent from a lazy subscription and we persist it to be delivered +- * the next time Chrome is launched into foreground. +- */ +- private static boolean maybePersistLazyMessage(GCMMessage message) { +- if (isFullBrowserLoaded()) { +- return false; +- } +- +- final String subscriptionId = LazySubscriptionsManager.buildSubscriptionUniqueId( +- message.getAppId(), message.getSenderId()); +- +- boolean isSubscriptionLazy = LazySubscriptionsManager.isSubscriptionLazy(subscriptionId); +- boolean isHighPriority = message.getOriginalPriority() == GCMMessage.Priority.HIGH; +- // TODO(crbug.com/945402): Add metrics for the new high priority message logic. +- boolean shouldPersistMessage = isSubscriptionLazy && !isHighPriority; +- if (shouldPersistMessage) { +- LazySubscriptionsManager.persistMessage(subscriptionId, message); +- } +- +- return shouldPersistMessage; +- } +- +- /** +- * Schedules a background task via Job Scheduler to deliver the |message|. Delivery might get +- * delayed by Android if the device is currently in doze mode. +- */ +- private static void scheduleBackgroundTask(GCMMessage message) { +- // TODO(peter): Add UMA for measuring latency introduced by the BackgroundTaskScheduler. +- TaskInfo backgroundTask = +- TaskInfo.createOneOffTask(TaskIds.GCM_BACKGROUND_TASK_JOB_ID, 0 /* immediately */) +- .setExtras(message.toBundle()) +- .build(); +- BackgroundTaskSchedulerFactory.getScheduler().schedule( +- ContextUtils.getApplicationContext(), backgroundTask); +- } +- +- private static void recordWebPushMetrics(GCMMessage message) { +- Context context = ContextUtils.getApplicationContext(); +- boolean inIdleMode = DeviceConditions.isCurrentlyInIdleMode(context); +- boolean isHighPriority = message.getOriginalPriority() == GCMMessage.Priority.HIGH; +- +- @GcmUma.WebPushDeviceState +- int state; +- if (inIdleMode) { +- state = isHighPriority ? GcmUma.WebPushDeviceState.IDLE_HIGH_PRIORITY +- : GcmUma.WebPushDeviceState.IDLE_NOT_HIGH_PRIORITY; +- } else { +- state = isHighPriority ? GcmUma.WebPushDeviceState.NOT_IDLE_HIGH_PRIORITY +- : GcmUma.WebPushDeviceState.NOT_IDLE_NOT_HIGH_PRIORITY; +- } +- GcmUma.recordWebPushReceivedDeviceState(state); +- } +- +- /** +- * If Chrome is backgrounded, messages coming from lazy subscriptions are +- * persisted on disk and replayed next time Chrome is forgrounded. If Chrome is forgrounded or +- * if the message isn't coming from a lazy subscription, this method either schedules |message| +- * to be dispatched through the Job Scheduler, which we use on Android N and beyond, or +- * immediately dispatches the message on other versions of Android. Some subscriptions bypass +- * the Job Scheduler and use Context#startService instead if the |message| has a high priority. +- * Must be called on the UI thread both for the BackgroundTaskScheduler and for dispatching the +- * |message| to the GCMDriver. +- */ +- static void scheduleOrDispatchMessageToDriver(GCMMessage message) { +- ThreadUtils.assertOnUiThread(); +- +- // GCMMessage#getAppId never returns null. +- if (message.getAppId().startsWith("wp:")) { +- recordWebPushMetrics(message); +- } +- +- // Check if we should only persist the message for now. +- if (maybePersistLazyMessage(message)) { +- return; +- } +- +- // Dispatch message immediately on pre N versions of Android. +- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { +- dispatchMessageToDriver(message); +- return; +- } +- +- // Check if we should bypass the scheduler for high priority messages. +- if (!maybeBypassScheduler(message)) { +- scheduleBackgroundTask(message); +- } +- } +- +- /** +- * To be called when a GCM message is ready to be dispatched. Will initialise the native code +- * of the browser process, and forward the message to the GCM Driver. Must be called on the UI +- * thread. +- */ +- static void dispatchMessageToDriver(GCMMessage message) { +- ThreadUtils.assertOnUiThread(); +- ChromeBrowserInitializer.getInstance().handleSynchronousStartup(); - GCMDriver.dispatchMessage(message); -+ //GCMDriver.dispatchMessage(message); - } - - private static boolean isFullBrowserLoaded() { +- } +- +- private static boolean isFullBrowserLoaded() { +- return ChromeBrowserInitializer.getInstance().isFullBrowserInitialized(); +- } +-} diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn -@@ -122,7 +122,6 @@ if (is_android) { +@@ -123,7 +123,6 @@ if (is_android) { "$google_play_services_package:google_play_services_auth_base_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -172,7 +311,15 @@ diff --git a/components/background_task_scheduler/BUILD.gn b/components/backgrou diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn --- a/components/background_task_scheduler/internal/BUILD.gn +++ b/components/background_task_scheduler/internal/BUILD.gn -@@ -28,7 +28,6 @@ if (is_android) { +@@ -11,7 +11,6 @@ if (is_android) { + android_library("internal_java") { + sources = [ + "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java", +- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java", + "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService.java", + "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java", + "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java", +@@ -28,7 +27,6 @@ if (is_android) { ":proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -180,7 +327,7 @@ diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -99,7 +98,6 @@ if (is_android) { +@@ -99,7 +97,6 @@ if (is_android) { ":internal_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -189,27 +336,38 @@ diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components "//base:base_java", "//base:base_java_test_support", diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java +deleted file mode 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java -+++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java -@@ -8,10 +8,6 @@ import android.os.Build; - - import androidx.annotation.VisibleForTesting; - ++++ /dev/null +@@ -1,160 +0,0 @@ +-// Copyright 2017 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.components.background_task_scheduler.internal; +- +-import android.os.Build; +- +-import androidx.annotation.VisibleForTesting; +- -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.GcmTaskService; -import com.google.android.gms.gcm.TaskParams; - - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; - import org.chromium.base.ThreadUtils; -@@ -23,16 +19,9 @@ import java.util.concurrent.TimeUnit; - import java.util.concurrent.atomic.AtomicBoolean; - - /** Delegates calls out to various tasks that need to run in the background. */ +-import org.chromium.base.ContextUtils; +-import org.chromium.base.Log; +-import org.chromium.base.ThreadUtils; +-import org.chromium.components.background_task_scheduler.BackgroundTask; +-import org.chromium.components.background_task_scheduler.TaskParameters; +- +-import java.util.concurrent.CountDownLatch; +-import java.util.concurrent.TimeUnit; +-import java.util.concurrent.atomic.AtomicBoolean; +- +-/** Delegates calls out to various tasks that need to run in the background. */ -public class BackgroundTaskGcmTaskService extends GcmTaskService { -+public class BackgroundTaskGcmTaskService { - private static final String TAG = "BkgrdTaskGcmTS"; - +- private static final String TAG = "BkgrdTaskGcmTS"; +- - private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = System::currentTimeMillis; - - @VisibleForTesting @@ -217,13 +375,65 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/ - mClock = clock; - } - - /** Class that waits for the processing to be done. */ - private static class Waiter { - // Wakelock is only held for 3 minutes by default for GcmTaskService. -@@ -92,69 +81,4 @@ public class BackgroundTaskGcmTaskService extends GcmTaskService { - } - } - +- /** Class that waits for the processing to be done. */ +- private static class Waiter { +- // Wakelock is only held for 3 minutes by default for GcmTaskService. +- private static final long MAX_TIMEOUT_SECONDS = 179; +- private final CountDownLatch mLatch; +- private long mWaiterTimeoutSeconds; +- private boolean mIsRescheduleNeeded; +- private boolean mHasTaskTimedOut; +- +- public Waiter(long waiterTimeoutSeconds) { +- mLatch = new CountDownLatch(1); +- mWaiterTimeoutSeconds = Math.min(waiterTimeoutSeconds, MAX_TIMEOUT_SECONDS); +- } +- +- /** Start waiting for the processing to finish. */ +- public void startWaiting() { +- try { +- mHasTaskTimedOut = !mLatch.await(mWaiterTimeoutSeconds, TimeUnit.SECONDS); +- } catch (InterruptedException e) { +- Log.d(TAG, "Waiter interrupted while waiting."); +- } +- } +- +- /** Called to finish waiting. */ +- public void onWaitDone(boolean needsRescheduling) { +- mIsRescheduleNeeded = needsRescheduling; +- mLatch.countDown(); +- } +- +- /** @return Whether last task timed out. */ +- public boolean hasTaskTimedOut() { +- return mHasTaskTimedOut; +- } +- +- /** @return Whether task needs to be rescheduled. */ +- public boolean isRescheduleNeeded() { +- return mIsRescheduleNeeded; +- } +- } +- +- private static class TaskFinishedCallbackGcmTaskService +- implements BackgroundTask.TaskFinishedCallback { +- private final Waiter mWaiter; +- +- public TaskFinishedCallbackGcmTaskService(Waiter waiter) { +- mWaiter = waiter; +- } +- +- @Override +- public void taskFinished(final boolean needsReschedule) { +- ThreadUtils.runOnUiThreadBlocking(new Runnable() { +- @Override +- public void run() { +- mWaiter.onWaitDone(needsReschedule); +- } +- }); +- } +- } +- - @Override - public int onRunTask(TaskParams params) { - final TaskParameters taskParams = @@ -289,7 +499,7 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/ - BackgroundTaskSchedulerFactoryInternal.getScheduler().reschedule( - ContextUtils.getApplicationContext()); - } - } +-} diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java @@ -302,26 +512,54 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/ - } else { - return new BackgroundTaskSchedulerGcmNetworkManager(); - } -+ return new BackgroundTaskSchedulerJobService(); /* minSDK is 24 */ ++ return new BackgroundTaskSchedulerJobService(); } /** diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java +deleted file mode 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java -+++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java -@@ -21,7 +21,7 @@ import java.util.concurrent.TimeUnit; - * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services - * {@link GcmNetworkManager} to schedule jobs. - */ ++++ /dev/null +@@ -1,55 +0,0 @@ +-// Copyright 2017 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.components.background_task_scheduler.internal; +- +-import android.content.Context; +-import android.os.Bundle; +- +-import androidx.annotation.NonNull; +-import androidx.annotation.VisibleForTesting; +- +-import org.chromium.base.Log; +-import org.chromium.base.ThreadUtils; +-import org.chromium.components.background_task_scheduler.TaskInfo; +-import org.chromium.components.background_task_scheduler.TaskParameters; +- +-import java.util.concurrent.TimeUnit; +- +-/** +- * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services +- * {@link GcmNetworkManager} to schedule jobs. +- */ -class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedulerDelegate { -+class BackgroundTaskSchedulerGcmNetworkManager { - private static final String TAG = "BkgrdTaskSchedGcmNM"; - - /** Delta time for expiration checks, after the end time. */ -@@ -37,18 +37,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule - sClock = clock; - } - +- private static final String TAG = "BkgrdTaskSchedGcmNM"; +- +- /** Delta time for expiration checks, after the end time. */ +- static final long DEADLINE_DELTA_MS = 1000; +- +- /** Clock to use so we can mock time in tests. */ +- public interface Clock { long currentTimeMillis(); } +- +- private static Clock sClock = System::currentTimeMillis; +- +- @VisibleForTesting +- static void setClockForTesting(Clock clock) { +- sClock = clock; +- } +- - @Override - public boolean schedule(Context context, @NonNull TaskInfo taskInfo) { - ThreadUtils.assertOnUiThread(); @@ -334,268 +572,10 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/ - ThreadUtils.assertOnUiThread(); - } - - private static String taskIdToTaskTag(int taskId) { - return Integer.toString(taskId); - } -diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn ---- a/third_party/cacheinvalidation/BUILD.gn -+++ b/third_party/cacheinvalidation/BUILD.gn -@@ -133,7 +133,6 @@ if (is_android) { - jacoco_never_instrument = true - deps = [ - ":cacheinvalidation_proto_java", -- "$google_play_services_package:google_play_services_gcm_java", - "$google_play_services_package:google_play_services_iid_java", - "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml -@@ -24,17 +24,6 @@ - - -- -- -- -- -- -- -- -- -- - - -@@ -42,14 +31,5 @@ - - - -- -- -- -- -- -- -- - - -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java -@@ -15,8 +15,6 @@ - */ - package com.google.ipc.invalidation.ticl.android2.channel; - --import com.google.android.gms.gcm.GcmNetworkManager; --import com.google.android.gms.gcm.OneoffTask; - import com.google.ipc.invalidation.common.GcmSharedConstants; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; -@@ -50,7 +48,7 @@ public class AndroidGcmController { - - private static AndroidGcmController androidGcmController; - -- private GcmNetworkManager gcmNetworkManager; -+// private GcmNetworkManager gcmNetworkManager; - - private Context context; - -@@ -64,32 +62,12 @@ public class AndroidGcmController { - public static AndroidGcmController get(Context context) { - synchronized (lock) { - if (androidGcmController == null) { -- androidGcmController = -- new AndroidGcmController(context, GcmNetworkManager.getInstance(context)); -+ androidGcmController = null; - } - } - return androidGcmController; - } - -- /** -- * Override AndroidGcmController with a custom GcmNetworkManager in tests. This overrides the -- * existing instance of AndroidGcmController if any. -- * -- * @param context the application context. -- * @param gcmNetworkManager the custom GcmNetworkManager to use. -- */ -- public static void overrideAndroidGcmControllerForTests( -- Context context, GcmNetworkManager gcmNetworkManager) { -- synchronized (lock) { -- androidGcmController = new AndroidGcmController(context, gcmNetworkManager); +- private static String taskIdToTaskTag(int taskId) { +- return Integer.toString(taskId); - } -- } -- -- private AndroidGcmController(Context context, GcmNetworkManager gcmNetworkManager) { -- this.context = context; -- this.gcmNetworkManager = gcmNetworkManager; -- } -- - /** - * Returns true if no registration token is stored or the current application version is higher - * than the version for the token stored. -@@ -142,21 +120,7 @@ public class AndroidGcmController { - return; - } - -- OneoffTask registrationTask = -- new OneoffTask.Builder() -- .setExecutionWindow(0, 1) -- .setTag(AndroidChannelConstants.GCM_REGISTRATION_TASK_SERVICE_TAG) -- .setService(GcmRegistrationTaskService.class) -- .build(); -- -- try { -- gcmNetworkManager.schedule(registrationTask); -- } catch (IllegalArgumentException exception) { -- // Scheduling the service can throw an exception due to a framework error on Android when -- // the the look up for the GCMTaskService being scheduled to be run fails. -- // See crbug/548314. -- logger.warning("Failed to schedule GCM registration task. Exception: %s", exception); -- } -+ logger.warning("Failed to schedule GCM registration task."); - } - - /** -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java -@@ -15,7 +15,6 @@ - */ - package com.google.ipc.invalidation.ticl.android2.channel; - --import com.google.android.gms.iid.InstanceIDListenerService; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; - -@@ -23,16 +22,6 @@ import com.google.ipc.invalidation.external.client.android.service.AndroidLogger - * Implementation of {@link InstanceIDListenerService} to receive notifications from GCM to - * update the registration token. - */ --public class AndroidInstanceIDListenerService extends InstanceIDListenerService { -+public class AndroidInstanceIDListenerService { - private static final Logger logger = AndroidLogger.forTag("InstanceIDListener"); -- -- /** -- * Called when the token needs to updated. {@link AndroidGcmController#fetchToken} clears the -- * current token and schedules a task to fetch a new token. -- */ -- @Override -- public void onTokenRefresh() { -- logger.info("Received token refresh request"); -- AndroidGcmController.get(this).fetchToken(); -- } - } -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java -@@ -15,11 +15,6 @@ - */ - package com.google.ipc.invalidation.ticl.android2.channel; - --import com.google.android.gms.gcm.GcmNetworkManager; --import com.google.android.gms.gcm.GcmTaskService; --import com.google.android.gms.gcm.GoogleCloudMessaging; --import com.google.android.gms.gcm.TaskParams; --import com.google.android.gms.iid.InstanceID; - import com.google.ipc.invalidation.common.GcmSharedConstants; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; -@@ -42,88 +37,6 @@ import java.io.IOException; - * failure to fetch the token, the task is rescheduled using the GcmNetworkManager which uses - * exponential back-offs to control when the task is executed. - */ --public class GcmRegistrationTaskService extends GcmTaskService { -+public class GcmRegistrationTaskService { - private static final Logger logger = AndroidLogger.forTag("RegistrationTaskService"); -- -- public InstanceID getInstanceID(Context context) { -- return InstanceID.getInstance(context); -- } -- -- /** -- * Called when the task is ready to be executed. Registers with GCM using -- * {@link InstanceID#getToken} and stores the registration token. -- * -- *

Returns {@link GcmNetworkManager#RESULT_SUCCESS} when the token is successfully retrieved. -- * On failure {@link GcmNetworkManager#RESULT_RESCHEDULE} is used which reschedules the service -- * to be executed again using exponential back-off. -- */ -- @Override -- public int onRunTask(TaskParams params) { -- if (!AndroidChannelConstants.GCM_REGISTRATION_TASK_SERVICE_TAG.equals(params.getTag())) { -- logger.warning("Unknown task received with tag: %s", params.getTag()); -- return GcmNetworkManager.RESULT_FAILURE; -- } -- -- String senderId = GcmSharedConstants.GCM_UPDATED_SENDER_ID; -- try { -- String token = getInstanceID(this).getToken( -- senderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); -- storeToken(token); -- return GcmNetworkManager.RESULT_SUCCESS; -- } catch (IOException exception) { -- logger.warning("Failed to get token for sender: %s. Exception : %s", senderId, exception); -- return GcmNetworkManager.RESULT_RESCHEDULE; -- } catch (SecurityException exception) { -- // InstanceID#getToken occasionally throws a security exception when trying send the -- // registration intent to GMSCore. Catching the exception here to prevent crashes. -- logger.warning("Security exception when fetching token: %s", exception); -- return GcmNetworkManager.RESULT_RESCHEDULE; -- } -- } -- -- /** Stores the registration token and the current application version in Shared Preferences. */ -- private void storeToken(String token) { -- AndroidChannelPreferences.setRegistrationToken(token); -- AndroidChannelPreferences.setAppVersion( -- CommonUtils.getPackageVersion(this, getPackageName())); -- // Send the updated token to the server. -- updateServer(); -- } -- -- /** Sends a message to the server to update the GCM registration token. */ -- private void updateServer() { -- // Inform the sender service that the registration token has changed. If the sender service -- // had buffered a message because no registration token was previously available, this intent -- // will cause it to send that message. -- Intent sendBuffered = new Intent(); -- final String ignoredData = ""; -- sendBuffered.putExtra(AndroidChannelConstants.MESSAGE_SENDER_SVC_GCM_REGID_CHANGE, ignoredData); -- -- // Select the sender service to use for upstream message. -- if (AndroidChannelPreferences.getGcmChannelType() == GcmChannelType.GCM_UPSTREAM) { -- String upstreamServiceClass = new AndroidTiclManifest(this).getGcmUpstreamServiceClass(); -- if (upstreamServiceClass == null) { -- logger.warning("GcmUpstreamSenderService class not found."); -- return; -- } -- sendBuffered.setClassName(this, upstreamServiceClass); -- } else { -- sendBuffered.setClass(this, AndroidMessageSenderService.class); -- } -- try { -- startService(sendBuffered); -- } catch (IllegalStateException exception) { -- logger.warning("Unable to send buffered message(s): %s", exception); -- } -- -- // Inform the Ticl service that the registration id has changed. This will cause it to send -- // a message to the data center and update the GCM registration id stored at the data center. -- Intent updateServer = ProtocolIntents.InternalDowncalls.newNetworkAddrChangeIntent(); -- updateServer.setClassName(this, new AndroidTiclManifest(this).getTiclServiceClass()); -- try { -- startService(updateServer); -- } catch (IllegalStateException exception) { -- logger.warning("Unable to inform server about new registration id: %s", exception); -- } -- } - } +-} -- 2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.play.patch b/build/patches/Remove-dependency-on-com.google.android.play.patch index 77958516..3c6b2034 100644 --- a/build/patches/Remove-dependency-on-com.google.android.play.patch +++ b/build/patches/Remove-dependency-on-com.google.android.play.patch @@ -14,9 +14,9 @@ Subject: Remove dependency on com.google.android.play diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -471,7 +471,6 @@ android_library("chrome_java") { - "//third_party/cacheinvalidation:cacheinvalidation_javalib", - "//third_party/cacheinvalidation:cacheinvalidation_proto_java", +@@ -482,7 +482,6 @@ android_library("chrome_java") { + "//third_party/blink/public/mojom:android_mojo_bindings_java", + "//third_party/blink/public/mojom:mojom_platform_java", "//third_party/gif_player:gif_player_java", - "//third_party/google_android_play_core:com_google_android_play_core_java", "//ui/android:ui_java", @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Fa - import org.chromium.base.ContextUtils; import org.chromium.base.task.PostTask; - import org.chromium.chrome.browser.ChromeActivity; + import org.chromium.chrome.browser.app.ChromeActivity; @@ -31,7 +26,7 @@ import java.lang.ref.WeakReference; * wrapper isn't meant to be used for a full integration test, but simulating all of the possible * error cases is a bit easier to do here. @@ -471,15 +471,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn +++ b/components/module_installer/android/BUILD.gn -@@ -36,7 +36,6 @@ android_library("module_installer_java") { - "//base:base_java", +@@ -37,7 +37,6 @@ android_library("module_installer_java") { "//base:jni_java", "//components/crash/android:java", + "//third_party/android_deps:androidx_annotation_annotation_java", - "//third_party/google_android_play_core:com_google_android_play_core_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -@@ -59,7 +58,6 @@ junit_binary("module_installer_junit_tests") { +@@ -60,7 +59,6 @@ junit_binary("module_installer_junit_tests") { "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", diff --git a/build/patches/Remove-dependency-on-fido-iid-instantapps-location.patch b/build/patches/Remove-dependency-on-fido-iid-instantapps-location.patch index 4e22e1f9..72c35ec7 100644 --- a/build/patches/Remove-dependency-on-fido-iid-instantapps-location.patch +++ b/build/patches/Remove-dependency-on-fido-iid-instantapps-location.patch @@ -16,14 +16,12 @@ Subject: Remove dependency on fido, iid, instantapps, location services/device/geolocation/BUILD.gn | 1 - .../geolocation/LocationProviderGmsCore.java | 103 +----------------- third_party/android_deps/BUILD.gn | 75 ------------- - third_party/cacheinvalidation/BUILD.gn | 1 - - .../android2/AndroidManifestUpdatedGcm.xml | 3 - - 15 files changed, 15 insertions(+), 305 deletions(-) + 13 files changed, 15 insertions(+), 301 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -276,8 +276,6 @@ android_library("chrome_java") { +@@ -267,8 +267,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -32,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:jni_java", -@@ -726,7 +724,6 @@ junit_binary("chrome_junit_tests") { +@@ -748,7 +746,6 @@ junit_binary("chrome_junit_tests") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -40,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -907,8 +904,6 @@ android_library("chrome_test_java") { +@@ -940,8 +937,6 @@ android_library("chrome_test_java") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -52,7 +50,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1755,9 +1755,6 @@ chrome_java_sources = [ +@@ -1728,9 +1728,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewDelegate.java", "java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java", "java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java", @@ -65,7 +63,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -@@ -282,12 +282,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -216,12 +216,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override public void maybeAdjustInstantAppExtras(Intent intent, boolean isIntentToInstantApp) { @@ -251,7 +249,7 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm "//base:base_java", "//base:jni_java", "//components/gcm_driver/android:gcm_driver_java", -@@ -33,7 +32,6 @@ android_library("instance_id_driver_java") { +@@ -34,7 +33,6 @@ android_library("instance_id_driver_java") { android_library("instance_id_driver_test_support_java") { deps = [ ":instance_id_driver_java", @@ -347,7 +345,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -750,7 +750,7 @@ const base::Feature kWebContentsOcclusion { +@@ -782,7 +782,7 @@ const base::Feature kWebContentsOcclusion { // Controls whether the WebAuthentication API is enabled: // https://w3c.github.io/webauthn const base::Feature kWebAuth{"WebAuthentication", @@ -359,7 +357,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -395,7 +395,6 @@ if (is_android) { +@@ -396,7 +396,6 @@ if (is_android) { deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -552,7 +550,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. ":org_robolectric_utils_java", ":org_robolectric_utils_reflector_java", "//third_party/robolectric:android-all-10-robolectric-5803371_java", -@@ -1066,20 +1065,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") { +@@ -1208,20 +1207,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") { strip_resources = !is_java_debug } @@ -573,7 +571,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_gcm_java") { aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" -@@ -1098,52 +1083,6 @@ android_aar_prebuilt("google_play_services_gcm_java") { +@@ -1240,52 +1225,6 @@ android_aar_prebuilt("google_play_services_gcm_java") { strip_drawables = true } @@ -626,7 +624,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_tasks_java") { aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.0.0.aar" -@@ -1454,20 +1393,6 @@ java_prebuilt("org_robolectric_shadows_multidex_java") { +@@ -1660,20 +1599,6 @@ java_prebuilt("org_robolectric_shadows_multidex_java") { bypass_platform_checks = true } @@ -647,30 +645,6 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("org_robolectric_utils_java") { jar_path = "libs/org_robolectric_utils/utils-4.3.1.jar" -diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn ---- a/third_party/cacheinvalidation/BUILD.gn -+++ b/third_party/cacheinvalidation/BUILD.gn -@@ -133,7 +133,6 @@ if (is_android) { - jacoco_never_instrument = true - deps = [ - ":cacheinvalidation_proto_java", -- "$google_play_services_package:google_play_services_iid_java", - "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", - "//third_party/android_protobuf:protobuf_nano_javalib", -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/android2/AndroidManifestUpdatedGcm.xml -@@ -27,9 +27,6 @@ - - -- -- -- - - - -- 2.17.1 diff --git a/build/patches/Remove-dependency-on-flags-places-and-stats.patch b/build/patches/Remove-dependency-on-flags-places-and-stats.patch index 1ee99bc2..42b90175 100644 --- a/build/patches/Remove-dependency-on-flags-places-and-stats.patch +++ b/build/patches/Remove-dependency-on-flags-places-and-stats.patch @@ -9,7 +9,7 @@ Subject: Remove dependency on flags, places and stats diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -2102,37 +2102,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") { +@@ -2196,37 +2196,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") { visibility = [ ":*" ] } diff --git a/build/patches/Remove-dependency-on-vision-clearcut-and-phenotype.patch b/build/patches/Remove-dependency-on-vision-clearcut-and-phenotype.patch index 543eb22e..245b144d 100644 --- a/build/patches/Remove-dependency-on-vision-clearcut-and-phenotype.patch +++ b/build/patches/Remove-dependency-on-vision-clearcut-and-phenotype.patch @@ -494,7 +494,7 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -1154,36 +1154,6 @@ android_aar_prebuilt("google_play_services_tasks_java") { +@@ -1296,36 +1296,6 @@ android_aar_prebuilt("google_play_services_tasks_java") { strip_drawables = true } @@ -531,7 +531,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = -@@ -2132,62 +2102,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") { +@@ -2226,62 +2196,6 @@ java_prebuilt("com_github_kevinstern_software_and_algorithms_java") { visibility = [ ":*" ] } diff --git a/build/patches/Remove-google_services_gcm.patch b/build/patches/Remove-google_services_gcm.patch index c6070998..aaaf39d6 100644 --- a/build/patches/Remove-google_services_gcm.patch +++ b/build/patches/Remove-google_services_gcm.patch @@ -9,7 +9,7 @@ Subject: Remove google_services_gcm diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -995,24 +995,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { +@@ -1137,24 +1137,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { ] } diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 11c04d8c..c48d83ff 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -4,8 +4,8 @@ Subject: Remove help menu item --- chrome/android/java/res/menu/main_menu.xml | 2 -- - .../src/org/chromium/chrome/browser/ChromeActivity.java | 9 --------- .../org/chromium/chrome/browser/KeyboardShortcuts.java | 3 --- + .../org/chromium/chrome/browser/app/ChromeActivity.java | 9 --------- .../chrome/browser/customtabs/BaseCustomTabActivity.java | 2 +- .../browser/directactions/MenuDirectActionHandler.java | 2 -- 5 files changed, 1 insertion(+), 17 deletions(-) @@ -13,19 +13,32 @@ Subject: Remove help menu item diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -83,8 +83,6 @@ - android:icon="@drawable/reader_mode_prefs_icon" /> +@@ -108,8 +108,6 @@ + android:title="@string/menu_settings" + android:icon="@drawable/settings_cog" /> - +- android:title="@string/menu_help" + android:icon="@drawable/help_outline" /> - + android:title="@string/enter_vr" +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +@@ -343,9 +343,6 @@ public class KeyboardShortcuts { + tab = activity.getActivityTab(); + if (tab != null && tab.canGoForward()) tab.goForward(); + return true; +- case CTRL | SHIFT | KeyEvent.KEYCODE_SLASH: // i.e. Ctrl+? +- activity.onMenuOrKeyboardAction(R.id.help_id, false); +- return true; + } + } + +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 +@@ -1887,15 +1887,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -41,19 +54,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. if (id == R.id.open_history_menu_id) { // 'currentTab' could only be null when opening history from start surface, which is // not available on tablet. -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -342,9 +342,6 @@ public class KeyboardShortcuts { - tab = activity.getActivityTab(); - if (tab != null && tab.canGoForward()) tab.goForward(); - return true; -- case CTRL | SHIFT | KeyEvent.KEYCODE_SLASH: // i.e. Ctrl+? -- activity.onMenuOrKeyboardAction(R.id.help_id, false); -- return true; - } - } - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch index 66380412..9dda9b5f 100644 --- a/build/patches/Remove-signin-and-data-saver-integrations.patch +++ b/build/patches/Remove-signin-and-data-saver-integrations.patch @@ -16,27 +16,27 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() >>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17) >>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a --- - chrome/android/BUILD.gn | 3 +- - chrome/android/java/AndroidManifest.xml | 28 ------ - .../android/java/res/xml/main_preferences.xml | 14 --- - .../chrome/browser/ChromeActivity.java | 34 ------- - .../DataReductionPreferenceFragment.java | 24 ++--- - .../privacy/settings/PrivacySettings.java | 6 -- - .../chrome/browser/settings/MainSettings.java | 90 +------------------ - .../chrome/browser/signin/SigninManager.java | 59 ++---------- - .../browser/sync/AndroidSyncSettings.java | 24 +---- - .../settings/SyncAndServicesSettings.java | 8 -- - .../android/signin/signin_manager_android.cc | 1 - - .../strings/android_chrome_strings.grd | 15 ---- - .../signin/SystemAccountManagerDelegate.java | 38 +------- - .../net/HttpNegotiateAuthenticator.java | 88 +----------------- - .../chromoting/base/OAuthTokenFetcher.java | 2 - - 15 files changed, 25 insertions(+), 409 deletions(-) + chrome/android/BUILD.gn | 3 +- + chrome/android/java/AndroidManifest.xml | 18 --- + .../android/java/res/xml/main_preferences.xml | 9 -- + .../chrome/browser/app/ChromeActivity.java | 34 ------ + .../DataReductionPreferenceFragment.java | 24 +--- + .../privacy/settings/PrivacySettings.java | 10 -- + .../chrome/browser/settings/MainSettings.java | 108 +----------------- + .../chrome/browser/signin/SigninManager.java | 62 ++-------- + .../browser/sync/AndroidSyncSettings.java | 24 +--- + .../settings/SyncAndServicesSettings.java | 8 -- + .../android/signin/signin_manager_android.cc | 1 - + .../strings/android_chrome_strings.grd | 12 -- + .../signin/SystemAccountManagerDelegate.java | 38 +----- + .../net/HttpNegotiateAuthenticator.java | 88 +------------- + .../chromoting/base/OAuthTokenFetcher.java | 2 - + 15 files changed, 27 insertions(+), 414 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -1364,8 +1364,7 @@ jinja_template_resources("chrome_public_apk_template_resources") { +@@ -1426,8 +1426,7 @@ jinja_template_resources("chrome_public_apk_template_resources") { resources = [ "java/res_template/xml/file_paths.xml", "java/res_template/xml/launchershortcuts.xml", @@ -49,7 +49,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -43,23 +43,17 @@ by a child template that "extends" this file. +@@ -44,23 +44,17 @@ by a child template that "extends" this file. {% if target_sdk_version|int > 27 or target_sdk_version == "Q" %} {% endif %} @@ -73,7 +73,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% set enable_vr = enable_vr|default(0) %} {% if enable_vr == "true" %} -@@ -100,8 +94,6 @@ by a child template that "extends" this file. +@@ -101,8 +95,6 @@ by a child template that "extends" this file. @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} {% endblock %} -@@ -870,16 +862,6 @@ by a child template that "extends" this file. +@@ -881,16 +873,6 @@ by a child template that "extends" this file. android:resource="@xml/file_paths" /> @@ -99,58 +99,36 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -987,16 +969,6 @@ by a child template that "extends" this file. - - -- -- -- -- -- -- - - 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 -@@ -6,15 +6,6 @@ - - -- +@@ -19,10 +19,6 @@ + android:order="2" + android:title="@string/prefs_section_account_and_google_services" + app:isPreferenceVisible="false"/> - -- - - +@@ -257,9 +255,6 @@ public abstract class ChromeActivity private boolean mRemoveWindowBackgroundDone; protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler; - // Observes when sync becomes ready to create the mContextReporter. - private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener; - - @Nullable - private ChromeFullscreenManager mFullscreenManager; + // The PictureInPictureController is initialized lazily https://crbug.com/729738. + private PictureInPictureController mPictureInPictureController; -@@ -868,28 +863,6 @@ public abstract class ChromeActivity +@@ -846,28 +841,6 @@ public abstract class ChromeActivity private void createContextReporterIfNeeded() { if (!mStarted) return; // Sync state reporting should work only in started state. if (mContextReporter != null || getActivityTab() == null) return; @@ -198,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. } @Override -@@ -955,13 +928,6 @@ public abstract class ChromeActivity +@@ -933,13 +906,6 @@ public abstract class ChromeActivity if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) { GSAAccountChangeListener.getInstance().disconnect(); } @@ -256,30 +234,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -47,9 +47,6 @@ public class PrivacySettings - private static final String PREF_SECURE_DNS = "secure_dns"; - private static final String PREF_DO_NOT_TRACK = "do_not_track"; - private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; -- private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = -- "sync_and_services_link_divider"; -- private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; - - private ManagedPreferenceDelegate mManagedPreferenceDelegate; - -@@ -77,9 +74,6 @@ public class PrivacySettings +@@ -84,16 +84,6 @@ public class PrivacySettings Preference secureDnsPref = findPreference(PREF_SECURE_DNS); - secureDnsPref.setVisible(privacyPrefManager.isDnsOverHttpsUiEnabled()); + secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); -- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); +- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); +- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { +- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); +- settingsLauncher.launchSettingsActivity(getActivity(), SyncAndServicesSettings.class, +- SyncAndServicesSettings.createArguments(false)); +- }); +- syncAndServicesLink.setSummary( +- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), +- new SpanApplier.SpanInfo("", "", linkSpan))); - - ChromeBaseCheckBoxPreference searchSuggestionsPref = - (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS); - searchSuggestionsPref.setOnPreferenceChangeListener(this); + updateSummaries(); + } + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -17,19 +17,13 @@ import androidx.preference.PreferenceFragmentCompat; +@@ -18,10 +18,8 @@ import androidx.preference.PreferenceFragmentCompat; import org.chromium.base.ContextUtils; import org.chromium.chrome.R; @@ -289,29 +264,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe -import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.night_mode.NightModeUtils; import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration; - import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; - import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; + import org.chromium.chrome.browser.password_check.PasswordCheck; +@@ -31,10 +29,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -import org.chromium.chrome.browser.signin.IdentityServicesProvider; -import org.chromium.chrome.browser.signin.SigninManager; -import org.chromium.chrome.browser.sync.ProfileSyncService; -import org.chromium.chrome.browser.sync.settings.SignInPreference; + import org.chromium.chrome.browser.sync.settings.SyncPromoPreference; import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; - import org.chromium.components.browser_ui.settings.ChromeBasePreference; -@@ -45,18 +39,13 @@ import java.util.Map; +@@ -51,8 +45,7 @@ import java.util.Map; * The main settings screen, shown when the user first opens Settings. */ public class MainSettings extends PreferenceFragmentCompat - implements TemplateUrlService.LoadListener, ProfileSyncService.SyncStateChangedListener, - SigninManager.SignInStateObserver { -- public static final String PREF_ACCOUNT_SECTION = "account_section"; -- public static final String PREF_SIGN_IN = "sign_in"; -- public static final String PREF_SYNC_AND_SERVICES = "sync_and_services"; + implements TemplateUrlService.LoadListener { - public static final String PREF_SEARCH_ENGINE = "search_engine"; - public static final String PREF_PASSWORDS = "passwords"; - public static final String PREF_HOMEPAGE = "homepage"; + public static final String PREF_SYNC_PROMO = "sync_promo"; + public static final String PREF_ACCOUNT_SECTION = "account_section"; + public static final String PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION = +@@ -67,7 +60,6 @@ public class MainSettings extends PreferenceFragmentCompat public static final String PREF_UI_THEME = "ui_theme"; public static final String PREF_PRIVACY = "privacy"; public static final String PREF_SAFETY_CHECK = "safety_check"; @@ -319,27 +294,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe public static final String PREF_NOTIFICATIONS = "notifications"; public static final String PREF_DOWNLOADS = "downloads"; public static final String PREF_DEVELOPER = "developer"; -@@ -67,7 +56,6 @@ public class MainSettings extends PreferenceFragmentCompat - +@@ -79,7 +71,6 @@ public class MainSettings extends PreferenceFragmentCompat private final ManagedPreferenceDelegate mManagedPreferenceDelegate; private final Map mAllPreferences = new HashMap<>(); + private SyncPromoPreference mSyncPromoPreference; - private SignInPreference mSignInPreference; + private ChromeBasePreference mManageSync; + private @Nullable PasswordCheck mPasswordCheck; - public MainSettings() { - setHasOptionsMenu(true); -@@ -90,35 +78,16 @@ public class MainSettings extends PreferenceFragmentCompat - @Override +@@ -111,7 +102,6 @@ public class MainSettings extends PreferenceFragmentCompat public void onDestroy() { super.onDestroy(); + mSyncPromoPreference.onPreferenceFragmentDestroyed(); - mSignInPreference.onPreferenceFragmentDestroyed(); - } - + // The component should only be destroyed when the activity has been closed by the user + // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed + // by the system. +@@ -121,33 +111,11 @@ public class MainSettings extends PreferenceFragmentCompat @Override public void onStart() { super.onStart(); -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(); +- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( +- Profile.getLastUsedRegularProfile()); - if (signinManager.isSigninSupported()) { - signinManager.addSignInStateObserver(this); +- mSyncPromoPreference.registerForUpdates(); - mSignInPreference.registerForUpdates(); - } - ProfileSyncService syncService = ProfileSyncService.get(); @@ -351,9 +330,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe @Override public void onStop() { super.onStop(); -- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(); +- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( +- Profile.getLastUsedRegularProfile()); - if (signinManager.isSigninSupported()) { - signinManager.removeSignInStateObserver(this); +- mSyncPromoPreference.unregisterForUpdates(); - mSignInPreference.unregisterForUpdates(); - } - ProfileSyncService syncService = ProfileSyncService.get(); @@ -363,7 +344,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } @Override -@@ -146,12 +115,9 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -182,12 +150,9 @@ public class MainSettings extends PreferenceFragmentCompat cachePreferences(); @@ -376,29 +357,42 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // If we are on Android O+ the Notifications preference should lead to the Android -@@ -202,7 +168,6 @@ public class MainSettings extends PreferenceFragmentCompat - Preference preference = getPreferenceScreen().getPreference(index); +@@ -255,7 +220,6 @@ public class MainSettings extends PreferenceFragmentCompat mAllPreferences.put(preference.getKey(), preference); } + mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO); - mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN); + mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC); } - private void setManagedPreferenceDelegateForPreference(String key) { -@@ -211,13 +176,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -265,24 +229,12 @@ public class MainSettings extends PreferenceFragmentCompat } private void updatePreferences() { -- if (IdentityServicesProvider.get().getSigninManager().isSigninSupported()) { +- if (IdentityServicesProvider.get() +- .getSigninManager(Profile.getLastUsedRegularProfile()) +- .isSigninSupported()) { - addPreferenceIfAbsent(PREF_SIGN_IN); - } else { - removePreferenceIfPresent(PREF_SIGN_IN); - } - +- boolean hasPrimaryAccount = IdentityServicesProvider.get() +- .getIdentityManager(Profile.getLastUsedRegularProfile()) +- .hasPrimaryAccount(); +- boolean isSyncPromoHidden = +- mSyncPromoPreference.getState() == SyncPromoPreference.State.PROMO_HIDDEN; ++ boolean hasPrimaryAccount = false; ++ boolean isSyncPromoHidden = true; + mManageSync.setVisible( + ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY) + && hasPrimaryAccount && isSyncPromoHidden); + - updateSyncAndServicesPreference(); updateSearchEnginePreference(); Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -@@ -234,10 +192,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -299,10 +251,6 @@ public class MainSettings extends PreferenceFragmentCompat } else { removePreferenceIfPresent(PREF_DEVELOPER); } @@ -409,21 +403,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } private Preference addPreferenceIfAbsent(String key) { -@@ -251,13 +205,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -316,15 +264,6 @@ public class MainSettings extends PreferenceFragmentCompat if (preference != null) getPreferenceScreen().removePreference(preference); } - private void updateSyncAndServicesPreference() { -- ChromeBasePreference syncAndServices = -- (ChromeBasePreference) findPreference(PREF_SYNC_AND_SERVICES); -- syncAndServices.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity())); -- syncAndServices.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity())); +- ChromeBasePreference preference = findPreference( +- ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY) +- ? PREF_MANAGE_SYNC +- : PREF_SYNC_AND_SERVICES); +- preference.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity())); +- preference.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity())); - } - private void updateSearchEnginePreference() { if (!TemplateUrlServiceFactory.get().isLoaded()) { ChromeBasePreference searchEnginePref = -@@ -289,28 +236,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -356,34 +295,6 @@ public class MainSettings extends PreferenceFragmentCompat pref.setSummary(isOn ? R.string.text_on : R.string.text_off); } @@ -441,8 +437,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe - } - - private void onSignInPreferenceStateChanged() { -- // Remove "Account" section header if the personalized sign-in promo is shown. -- if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) { +- // Remove "Account" section header if the personalized sign-in promo is shown. Remove +- // "You and Google" section header if the personalized sync promo is shown. +- boolean isShowingPersonalizedPromo = +- mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO; +- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) { +- findPreference(PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION) +- .setVisible(!isShowingPersonalizedPromo); +- } else if (isShowingPersonalizedPromo) { - removePreferenceIfPresent(PREF_ACCOUNT_SECTION); - } else { - addPreferenceIfAbsent(PREF_ACCOUNT_SECTION); @@ -452,7 +454,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe // TemplateUrlService.LoadListener implementation. @Override public void onTemplateUrlServiceLoaded() { -@@ -318,11 +243,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -391,11 +302,6 @@ public class MainSettings extends PreferenceFragmentCompat updateSearchEnginePreference(); } @@ -464,7 +466,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe @VisibleForTesting public ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() { return mManagedPreferenceDelegate; -@@ -332,9 +252,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -405,9 +311,6 @@ public class MainSettings extends PreferenceFragmentCompat return new ChromeManagedPreferenceDelegate() { @Override public boolean isPreferenceControlledByPolicy(Preference preference) { @@ -474,7 +476,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe if (PREF_SEARCH_ENGINE.equals(preference.getKey())) { return TemplateUrlServiceFactory.get().isDefaultSearchManaged(); } -@@ -343,11 +260,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -416,11 +319,6 @@ public class MainSettings extends PreferenceFragmentCompat @Override public boolean isPreferenceClickDisabledByPolicy(Preference preference) { @@ -489,17 +491,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java -@@ -23,9 +23,7 @@ import org.chromium.base.metrics.RecordUserAction; +@@ -23,7 +23,6 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.sync.AndroidSyncSettings; -import org.chromium.components.signin.AccountTrackerService; import org.chromium.components.signin.AccountUtils; --import org.chromium.components.signin.ChromeSigninController; import org.chromium.components.signin.base.CoreAccountInfo; import org.chromium.components.signin.identitymanager.ClearAccountsAction; - import org.chromium.components.signin.identitymanager.ConsentLevel; -@@ -51,7 +49,7 @@ import java.util.List; +@@ -50,7 +49,7 @@ import java.util.List; * See chrome/browser/signin/signin_manager_android.h for more details. */ public class SigninManager @@ -508,7 +508,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa private static final String TAG = "SigninManager"; /** -@@ -169,7 +167,6 @@ public class SigninManager +@@ -168,7 +167,6 @@ public class SigninManager * This is not final, as destroy() updates this. */ private long mNativeSigninManagerAndroid; @@ -516,7 +516,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa private final IdentityManager mIdentityManager; private final IdentityMutator mIdentityMutator; private final AndroidSyncSettings mAndroidSyncSettings; -@@ -207,24 +204,22 @@ public class SigninManager +@@ -206,24 +204,22 @@ public class SigninManager */ @CalledByNative private static SigninManager create(long nativeSigninManagerAndroid, @@ -544,7 +544,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa mIdentityManager = identityManager; mIdentityMutator = identityMutator; mAndroidSyncSettings = androidSyncSettings; -@@ -233,7 +228,6 @@ public class SigninManager +@@ -232,7 +228,6 @@ public class SigninManager mSigninAllowedByPolicy = SigninManagerJni.get().isSigninAllowedByPolicy(mNativeSigninManagerAndroid); @@ -552,7 +552,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa mIdentityManager.addObserver(this); reloadAllAccountsFromSystem(); -@@ -246,7 +240,6 @@ public class SigninManager +@@ -245,7 +240,6 @@ public class SigninManager @CalledByNative public void destroy() { mIdentityManager.removeObserver(this); @@ -560,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa mNativeSigninManagerAndroid = 0; } -@@ -285,9 +278,7 @@ public class SigninManager +@@ -284,9 +278,7 @@ public class SigninManager * Returns true if signin can be started now. */ public boolean isSignInAllowed() { @@ -571,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa } /** -@@ -342,17 +333,6 @@ public class SigninManager +@@ -341,17 +333,6 @@ public class SigninManager }); } @@ -589,7 +589,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa /** * Starts the sign-in flow, and executes the callback when finished. * -@@ -421,11 +401,8 @@ public class SigninManager +@@ -420,11 +401,8 @@ public class SigninManager } private void progressSignInFlowSeedSystemAccounts() { @@ -603,7 +603,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa } /** -@@ -462,18 +439,6 @@ public class SigninManager +@@ -461,19 +439,6 @@ public class SigninManager // The user should not be already signed in assert !mIdentityManager.hasPrimaryAccount(); @@ -613,27 +613,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa - return; - } - -- // Cache the signed-in account name. This must be done after the native call, otherwise -- // sync tries to start without being signed in natively and crashes. -- ChromeSigninController.get().setSignedInAccountName( +- // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses +- // the sync account before the native is loaded. +- SigninPreferencesManager.getInstance().setLegacySyncAccountEmail( - mSignInState.mCoreAccountInfo.getEmail()); +- - enableSync(mSignInState.mCoreAccountInfo); - if (mSignInState.mCallback != null) { mSignInState.mCallback.onSignInComplete(); } -@@ -631,10 +596,8 @@ public class SigninManager +@@ -629,13 +594,8 @@ public class SigninManager - // Native sign-out must happen before resetting the account so data is deleted correctly. - // http://crbug.com/589028 -- ChromeSigninController.get().setSignedInAccountName(null); + Log.d(TAG, "On native signout, wipe user data: " + mSignOutState.mShouldWipeUserData); + +- // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses +- // the sync account before the native is loaded. +- SigninPreferencesManager.getInstance().setLegacySyncAccountEmail(null); +- if (mSignOutState.mSignOutCallback != null) mSignOutState.mSignOutCallback.preWipeData(); disableSyncAndWipeData(mSignOutState.mShouldWipeUserData, this::finishSignOut); - mAccountTrackerService.invalidateAccountSeedStatus(true); } void finishSignOut() { -@@ -694,14 +657,6 @@ public class SigninManager +@@ -695,14 +655,6 @@ public class SigninManager SigninManagerJni.get().stopApplyingCloudPolicy(mNativeSigninManagerAndroid); } @@ -651,7 +655,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java -@@ -215,13 +215,7 @@ public class AndroidSyncSettings { +@@ -216,13 +216,7 @@ public class AndroidSyncSettings { private void setChromeSyncEnabled(boolean value) { synchronized (mLock) { @@ -666,7 +670,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn } notifyObservers(); } -@@ -302,19 +296,9 @@ public class AndroidSyncSettings { +@@ -307,19 +301,9 @@ public class AndroidSyncSettings { boolean oldChromeSyncEnabled = mChromeSyncEnabled; boolean oldMasterSyncEnabled = mMasterSyncEnabled; @@ -674,7 +678,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn - if (mAccount != null) { - mIsSyncable = - mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) -- == 1; +- > 0; - mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically( - mAccount, mContractAuthority); - } else { @@ -692,7 +696,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java -@@ -165,15 +165,7 @@ public class SyncAndServicesSettings extends PreferenceFragmentCompat +@@ -170,15 +170,7 @@ public class SyncAndServicesSettings extends PreferenceFragmentCompat mPrivacyPrefManager.migrateNetworkPredictionPreferences(); @@ -711,7 +715,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/S diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc --- a/chrome/browser/android/signin/signin_manager_android.cc +++ b/chrome/browser/android/signin/signin_manager_android.cc -@@ -139,7 +139,6 @@ SigninManagerAndroid::SigninManagerAndroid( +@@ -140,7 +140,6 @@ SigninManagerAndroid::SigninManagerAndroid( java_signin_manager_ = Java_SigninManager_create( base::android::AttachCurrentThread(), reinterpret_cast(this), @@ -722,13 +726,7 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br 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 -@@ -261,18 +261,9 @@ CHAR-LIMIT guidelines: - - - -- -- Account -- +@@ -269,12 +269,6 @@ CHAR-LIMIT guidelines: Sign in to Chrome @@ -741,7 +739,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Sync and personalize across devices -@@ -331,9 +322,6 @@ CHAR-LIMIT guidelines: +@@ -333,9 +327,6 @@ CHAR-LIMIT guidelines: Sends URLs of pages you visit to Google @@ -751,7 +749,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Cancel sync? -@@ -964,9 +952,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1108,9 +1099,6 @@ Your Google account may have other forms of browsing history like searches and a When Lite mode is on, Chrome uses Google servers to make pages load faster. Lite mode rewrites very slow pages to load only essential content. Lite mode does not apply to Incognito tabs. diff --git a/build/patches/Remove-weblayer-dependency-on-Play-Services.patch b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch new file mode 100644 index 00000000..8272569f --- /dev/null +++ b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch @@ -0,0 +1,26 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sun, 27 Sep 2020 09:24:16 +0200 +Subject: Remove weblayer dependency on Play Services + +--- + weblayer/shell/android/BUILD.gn | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn +--- a/weblayer/shell/android/BUILD.gn ++++ b/weblayer/shell/android/BUILD.gn +@@ -36,11 +36,8 @@ android_library("weblayer_shell_java") { + testonly = true + resources_package = "org.chromium.weblayer.shell" + +- # The play services dependency is necessary for the +- # google_play_services_version definition in the manifest. + deps = [ + ":weblayer_shell_resources", +- "$google_play_services_package:google_play_services_base_java", + "//base:base_java", + "//third_party/android_deps:android_support_v4_java", + "//third_party/android_deps:android_support_v7_appcompat_java", +-- +2.17.1 + diff --git a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch index 88fe72de..c18a5a7b 100644 --- a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch +++ b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch @@ -9,7 +9,7 @@ Subject: Replace DoH probe domain with RIPE domain diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc -@@ -838,7 +838,7 @@ class DnsTCPAttempt : public DnsAttempt { +@@ -837,7 +837,7 @@ class DnsTCPAttempt : public DnsAttempt { // ---------------------------------------------------------------------------- diff --git a/build/patches/Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch b/build/patches/Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch index fe3c1e53..ade695d4 100644 --- a/build/patches/Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch +++ b/build/patches/Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch @@ -13,7 +13,7 @@ See discussion at https://github.com/bromite/bromite/issues/445 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -3537,6 +3537,22 @@ +@@ -3286,6 +3286,22 @@ "dont_delete_source_texture_for_egl_image" ] }, diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index d3fd7ec2..18ca50f8 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -20,7 +20,7 @@ Disable search-ready omnibox by default diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -@@ -61,6 +61,7 @@ class DropdownItemViewInfoListBuilder { +@@ -62,6 +62,7 @@ class DropdownItemViewInfoListBuilder { private int mDropdownHeight; private boolean mEnableAdaptiveSuggestionsCount; private boolean mBuiltListHasFullyConcealedElements; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest DropdownItemViewInfoListBuilder() { mPriorityOrderedSuggestionProcessors = new ArrayList<>(); -@@ -89,8 +90,8 @@ class DropdownItemViewInfoListBuilder { +@@ -90,8 +91,8 @@ class DropdownItemViewInfoListBuilder { () -> mShareDelegateSupplier == null ? null : mShareDelegateSupplier.get(); mHeaderProcessor = new HeaderProcessor(context, host, delegate); @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, imageFetcherSupplier)); registerSuggestionProcessor( -@@ -218,6 +219,10 @@ class DropdownItemViewInfoListBuilder { +@@ -219,6 +220,10 @@ class DropdownItemViewInfoListBuilder { /** Signals that native initialization has completed. */ void onNativeInitialized() { @@ -53,7 +53,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 -@@ -2539,6 +2539,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2811,6 +2811,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidAutofillAccessibilityName, flag_descriptions::kAndroidAutofillAccessibilityDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kAndroidAutofillAccessibility)}, @@ -67,8 +67,8 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -1884,6 +1884,11 @@ - "owners": [ "peter", "finnur" ], - "expiry_milestone": 84 + // with neural net palm detection. + "expiry_milestone": 90 }, + { + "name": "enable-search-ready-omnibox", @@ -76,12 +76,12 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js + "expiry_milestone": -1 + }, { - "name": "enable-navigation-predictor", - "owners": [ "tbansal", "ryansturm", "instant-nav" ], + "name": "enable-parallel-downloading", + "owners": [ "qinmin", "xingliu", "dtrainor" ], 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 -@@ -2890,6 +2890,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = +@@ -3109,6 +3109,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = "process to check the Safe Browsing reputation of URLs without calling " "into GmsCore for every URL."; @@ -96,7 +96,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 -@@ -1673,6 +1673,9 @@ extern const char kReportFeedUserActionsDescription[]; +@@ -1791,6 +1791,9 @@ extern const char kSafeBrowsingSecuritySectionUiAndroidDescription[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Name[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Description[]; @@ -109,7 +109,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 -@@ -183,6 +183,7 @@ const base::Feature* kFeaturesExposedToJava[] = { +@@ -187,6 +187,7 @@ const base::Feature* kFeaturesExposedToJava[] = { &kReachedCodeProfiler, &kReaderModeInCCT, &kReengagementNotification, @@ -117,7 +117,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kRelatedSearches, &kRevampedContextMenu, &kSearchEnginePromoExistingDevice, -@@ -552,6 +553,9 @@ const base::Feature kRelatedSearches{"RelatedSearches", +@@ -569,6 +570,9 @@ const base::Feature kRelatedSearches{"RelatedSearches", const base::Feature kRevampedContextMenu{"RevampedContextMenu", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -130,7 +130,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 -@@ -104,6 +104,7 @@ extern const base::Feature kRelatedSearches; +@@ -106,6 +106,7 @@ extern const base::Feature kRelatedSearches; extern const base::Feature kRevampedContextMenu; extern const base::Feature kSearchEnginePromoExistingDevice; extern const base::Feature kSearchEnginePromoNewDevice; @@ -141,7 +141,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 -@@ -324,6 +324,7 @@ public abstract class ChromeFeatureList { +@@ -330,6 +330,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-enable-horizontal-tab-switcher-flag.patch b/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch index 89748422..8ecefe4f 100644 --- a/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch +++ b/build/patches/Restore-enable-horizontal-tab-switcher-flag.patch @@ -9,7 +9,7 @@ Subject: Restore enable-horizontal-tab-switcher flag 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 -@@ -1746,7 +1746,7 @@ +@@ -1651,7 +1651,7 @@ { "name": "enable-horizontal-tab-switcher", "owners": [ "memex-team@google.com" ], diff --git a/build/patches/Revert-Remove-flags-to-enable-disable-AImageReader.patch b/build/patches/Revert-Remove-flags-to-enable-disable-AImageReader.patch index 9ed07414..3c9d9de5 100644 --- a/build/patches/Revert-Remove-flags-to-enable-disable-AImageReader.patch +++ b/build/patches/Revert-Remove-flags-to-enable-disable-AImageReader.patch @@ -4,14 +4,14 @@ Subject: Revert "Remove flags to enable/disable AImageReader." This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634. --- - .../service/image_reader_gl_owner_unittest.cc | 5 +++++ - gpu/config/gpu_finch_features.cc | 4 ++++ - gpu/config/gpu_finch_features.h | 1 + - gpu/ipc/service/stream_texture_android.cc | 10 ++++++++-- - media/base/media_switches.cc | 4 ++++ - media/base/media_switches.h | 1 + - media/gpu/android/video_frame_factory_impl.cc | 3 ++- - 7 files changed, 25 insertions(+), 3 deletions(-) + .../service/image_reader_gl_owner_unittest.cc | 5 +++++ + gpu/config/gpu_finch_features.cc | 4 ++++ + gpu/config/gpu_finch_features.h | 1 + + gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++- + media/base/media_switches.cc | 4 ++++ + media/base/media_switches.h | 1 + + media/gpu/android/video_frame_factory_impl.cc | 5 ++++- + 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc --- a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc @@ -26,10 +26,10 @@ diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/ #include "gpu/command_buffer/service/image_reader_gl_owner.h" #include "gpu/command_buffer/service/mock_abstract_texture.h" +#include "media/base/media_switches.h" + #include "media/base/android/media_codec_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_bindings.h" - #include "ui/gl/gl_context_egl.h" -@@ -30,6 +32,8 @@ class ImageReaderGLOwnerTest : public testing::Test { +@@ -31,6 +33,8 @@ class ImageReaderGLOwnerTest : public testing::Test { if (!IsImageReaderSupported()) return; @@ -38,7 +38,7 @@ diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/ gl::init::InitializeStaticGLBindingsImplementation( gl::kGLImplementationEGLGLES2, false); gl::init::InitializeGLOneOffPlatformImplementation(false, false, true); -@@ -69,6 +73,7 @@ class ImageReaderGLOwnerTest : public testing::Test { +@@ -70,6 +74,7 @@ class ImageReaderGLOwnerTest : public testing::Test { return base::android::AndroidImageReader::GetInstance().IsSupported(); } @@ -50,16 +50,16 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc @@ -13,6 +13,10 @@ + namespace features { - #if defined(OS_ANDROID) +// Use android AImageReader when playing videos with MediaPlayer. +const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer", + base::FEATURE_ENABLED_BY_DEFAULT}; + - // Used only by webview to disable SurfaceControl. - const base::Feature kDisableSurfaceControlForWebview{ - "DisableSurfaceControlForWebview", base::FEATURE_DISABLED_BY_DEFAULT}; + #if defined(OS_ANDROID) + // Used to limit GL version to 2.0 for skia raster on Android. + const base::Feature kUseGles2ForOopR{"UseGles2ForOopR", diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h --- a/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h @@ -68,33 +68,41 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h // alongside the definition of their values in the .cc file. #if defined(OS_ANDROID) +GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer; - GPU_EXPORT extern const base::Feature kDisableSurfaceControlForWebview; - GPU_EXPORT extern const base::Feature kUseGles2ForOopR; + GPU_EXPORT extern const base::Feature kAndroidSurfaceControl; + GPU_EXPORT extern const base::Feature kAImageReader; diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc --- a/gpu/ipc/service/stream_texture_android.cc +++ b/gpu/ipc/service/stream_texture_android.cc -@@ -51,8 +51,14 @@ TextureOwner::Mode GetTextureOwnerMode() { - const bool a_image_reader_supported = - base::android::AndroidImageReader::GetInstance().IsSupported(); +@@ -6,6 +6,7 @@ -- return a_image_reader_supported ? TextureOwner::Mode::kAImageReaderInsecure -- : TextureOwner::Mode::kSurfaceTextureInsecure; + #include + ++#include "base/android/android_image_reader_compat.h" + #include "base/android/scoped_hardware_buffer_fence_sync.h" + #include "base/bind.h" + #include "base/feature_list.h" +@@ -47,7 +48,15 @@ std::unique_ptr MakeCurrent( + } + + TextureOwner::Mode GetTextureOwnerMode() { +- return features::IsAImageReaderEnabled() ++ const bool a_image_reader_supported = ++ base::android::AndroidImageReader::GetInstance().IsSupported(); ++ + // TODO(vikassoni) : Currently we have 2 different flags to enable/disable + // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2 + // flags into a single flag. Keeping the 2 flags separate for now since finch + // experiment using this flag is in progress. -+ return a_image_reader_supported && base::FeatureList::IsEnabled( -+ features::kAImageReaderMediaPlayer) -+ ? TextureOwner::Mode::kAImageReaderInsecure -+ : TextureOwner::Mode::kSurfaceTextureInsecure; ++ return a_image_reader_supported && features::IsAImageReaderEnabled() && ++ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer) + ? TextureOwner::Mode::kAImageReaderInsecure + : TextureOwner::Mode::kSurfaceTextureInsecure; } - - } // namespace diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -542,6 +542,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", +@@ -547,6 +547,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", const base::Feature kMediaDrmPreprovisioningAtStartup{ "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -108,7 +116,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -186,6 +186,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture; +@@ -192,6 +192,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture; MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense; MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning; MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup; @@ -119,13 +127,22 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc --- a/media/gpu/android/video_frame_factory_impl.cc +++ b/media/gpu/android/video_frame_factory_impl.cc -@@ -41,7 +41,8 @@ gpu::TextureOwner::Mode GetTextureOwnerMode( +@@ -6,6 +6,7 @@ + + #include + ++#include "base/android/android_image_reader_compat.h" + #include "base/bind.h" + #include "base/bind_helpers.h" + #include "base/callback.h" +@@ -65,7 +66,9 @@ gpu::TextureOwner::Mode GetTextureOwnerMode( switch (overlay_mode) { case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints: case VideoFrameFactory::OverlayMode::kRequestPromotionHints: -- return a_image_reader_supported -+ return a_image_reader_supported && base::FeatureList::IsEnabled( -+ media::kAImageReaderVideoOutput) +- return features::IsAImageReaderEnabled() ++ return base::android::AndroidImageReader::GetInstance().IsSupported() && ++ features::IsAImageReaderEnabled() && ++ base::FeatureList::IsEnabled(media::kAImageReaderVideoOutput) ? gpu::TextureOwner::Mode::kAImageReaderInsecure : gpu::TextureOwner::Mode::kSurfaceTextureInsecure; case VideoFrameFactory::OverlayMode::kSurfaceControlSecure: diff --git a/build/patches/Revert-Remove-pre-unified-consent-code.patch b/build/patches/Revert-Remove-pre-unified-consent-code.patch deleted file mode 100644 index d7e85a36..00000000 --- a/build/patches/Revert-Remove-pre-unified-consent-code.patch +++ /dev/null @@ -1,1767 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 25 Sep 2019 10:59:28 +0200 -Subject: Revert "Remove pre-unified consent code" - -This reverts commit c672a0683e89eba3554e2562156b3c8532136f21. - -Restore translations -Disable unified consent on Android -Unified consent miscellanous backport fixes ---- - .../java/res/xml/privacy_preferences.xml | 25 +++++ - .../privacy/settings/PrivacySettings.java | 95 +++++++++++++++++-- - .../sync/SyncNotificationController.java | 6 +- - .../chrome/browser/sync/SyncTestRule.java | 10 +- - .../strings/android_chrome_strings.grd | 15 +++ - .../android_chrome_strings_am.xtb | 19 +++- - .../android_chrome_strings_ar.xtb | 19 +++- - .../android_chrome_strings_bg.xtb | 19 +++- - .../android_chrome_strings_bn.xtb | 19 +++- - .../android_chrome_strings_ca.xtb | 19 +++- - .../android_chrome_strings_cs.xtb | 19 +++- - .../android_chrome_strings_da.xtb | 19 +++- - .../android_chrome_strings_de.xtb | 19 +++- - .../android_chrome_strings_el.xtb | 19 +++- - .../android_chrome_strings_en-GB.xtb | 19 +++- - .../android_chrome_strings_es-419.xtb | 19 +++- - .../android_chrome_strings_es.xtb | 19 +++- - .../android_chrome_strings_et.xtb | 19 +++- - .../android_chrome_strings_fa.xtb | 19 +++- - .../android_chrome_strings_fi.xtb | 19 +++- - .../android_chrome_strings_fil.xtb | 19 +++- - .../android_chrome_strings_fr.xtb | 19 +++- - .../android_chrome_strings_gu.xtb | 19 +++- - .../android_chrome_strings_hi.xtb | 19 +++- - .../android_chrome_strings_hr.xtb | 19 +++- - .../android_chrome_strings_hu.xtb | 19 +++- - .../android_chrome_strings_id.xtb | 19 +++- - .../android_chrome_strings_it.xtb | 19 +++- - .../android_chrome_strings_iw.xtb | 19 +++- - .../android_chrome_strings_ja.xtb | 19 +++- - .../android_chrome_strings_kn.xtb | 19 +++- - .../android_chrome_strings_ko.xtb | 19 +++- - .../android_chrome_strings_lt.xtb | 19 +++- - .../android_chrome_strings_lv.xtb | 19 +++- - .../android_chrome_strings_ml.xtb | 19 +++- - .../android_chrome_strings_mr.xtb | 19 +++- - .../android_chrome_strings_ms.xtb | 19 +++- - .../android_chrome_strings_nl.xtb | 19 +++- - .../android_chrome_strings_no.xtb | 19 +++- - .../android_chrome_strings_pl.xtb | 19 +++- - .../android_chrome_strings_pt-BR.xtb | 19 +++- - .../android_chrome_strings_pt-PT.xtb | 19 +++- - .../android_chrome_strings_ro.xtb | 19 +++- - .../android_chrome_strings_ru.xtb | 19 +++- - .../android_chrome_strings_sk.xtb | 19 +++- - .../android_chrome_strings_sl.xtb | 19 +++- - .../android_chrome_strings_sr.xtb | 19 +++- - .../android_chrome_strings_sv.xtb | 19 +++- - .../android_chrome_strings_sw.xtb | 19 +++- - .../android_chrome_strings_ta.xtb | 19 +++- - .../android_chrome_strings_te.xtb | 19 +++- - .../android_chrome_strings_th.xtb | 19 +++- - .../android_chrome_strings_tr.xtb | 19 +++- - .../android_chrome_strings_uk.xtb | 19 +++- - .../android_chrome_strings_vi.xtb | 19 +++- - .../android_chrome_strings_zh-CN.xtb | 19 +++- - .../android_chrome_strings_zh-TW.xtb | 19 +++- - .../unified_consent_service_factory.cc | 5 +- - 58 files changed, 1073 insertions(+), 71 deletions(-) - -diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml ---- a/chrome/android/java/res/xml/privacy_preferences.xml -+++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -6,6 +6,24 @@ - - -+ -+ -+ -+ - -+ - -+ - { -- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); -- settingsLauncher.launchSettingsActivity(getActivity(), SyncAndServicesSettings.class, -- SyncAndServicesSettings.createArguments(false)); -- }); -- syncAndServicesLink.setSummary( -- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -- new SpanApplier.SpanInfo("", "", linkSpan))); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); -+ -+ ChromeBaseCheckBoxPreference navigationErrorPref = -+ (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); -+ navigationErrorPref.setOnPreferenceChangeListener(this); -+ navigationErrorPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); -+ -+ ChromeBaseCheckBoxPreference searchSuggestionsPref = -+ (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS); -+ searchSuggestionsPref.setOnPreferenceChangeListener(this); -+ searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); -+ -+ // Listen to changes to the Extended Reporting pref. -+ ChromeBaseCheckBoxPreference scoutReportingPref = -+ (ChromeBaseCheckBoxPreference) findPreference( -+ PREF_SAFE_BROWSING_SCOUT_REPORTING); -+ scoutReportingPref.setOnPreferenceChangeListener(this); -+ scoutReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); -+ -+ ChromeBaseCheckBoxPreference safeBrowsingPref = -+ (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING); -+ safeBrowsingPref.setOnPreferenceChangeListener(this); -+ safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - - updateSummaries(); - } -@@ -94,6 +119,15 @@ public class PrivacySettings - Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); - } else if (PREF_NETWORK_PREDICTIONS.equals(key)) { - PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue); -+ } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { -+ PrefServiceBridge.getInstance().setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); -+ } else if (PREF_SAFE_BROWSING.equals(key)) { -+ PrefServiceBridge.getInstance().setBoolean(Pref.SAFE_BROWSING_ENABLED, (boolean) newValue); -+ } else if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -+ SafeBrowsingBridge.setSafeBrowsingExtendedReportingEnabled( -+ (boolean) newValue); -+ } else if (PREF_NAVIGATION_ERROR.equals(key)) { -+ PrefServiceBridge.getInstance().setBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED, (boolean) newValue); - } - - return true; -@@ -111,6 +145,35 @@ public class PrivacySettings - public void updateSummaries() { - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); - -+ CharSequence textOn = getActivity().getResources().getText(R.string.text_on); -+ CharSequence textOff = getActivity().getResources().getText(R.string.text_off); -+ -+ CheckBoxPreference navigationErrorPref = (CheckBoxPreference) findPreference( -+ PREF_NAVIGATION_ERROR); -+ if (navigationErrorPref != null) { -+ navigationErrorPref.setChecked( -+ prefServiceBridge.getBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED)); -+ } -+ -+ CheckBoxPreference searchSuggestionsPref = (CheckBoxPreference) findPreference( -+ PREF_SEARCH_SUGGESTIONS); -+ if (searchSuggestionsPref != null) { -+ searchSuggestionsPref.setChecked(prefServiceBridge.getBoolean(Pref.SEARCH_SUGGEST_ENABLED)); -+ } -+ -+ CheckBoxPreference extendedReportingPref = -+ (CheckBoxPreference) findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING); -+ if (extendedReportingPref != null) { -+ extendedReportingPref.setChecked( -+ SafeBrowsingBridge.isSafeBrowsingExtendedReportingEnabled()); -+ } -+ -+ CheckBoxPreference safeBrowsingPref = -+ (CheckBoxPreference) findPreference(PREF_SAFE_BROWSING); -+ if (safeBrowsingPref != null) { -+ safeBrowsingPref.setChecked(prefServiceBridge.getBoolean(Pref.SAFE_BROWSING_ENABLED)); -+ } -+ - CheckBoxPreference canMakePaymentPref = - (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT); - if (canMakePaymentPref != null) { -@@ -173,6 +236,18 @@ public class PrivacySettings - private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() { - return preference -> { - String key = preference.getKey(); -+ if (PREF_NAVIGATION_ERROR.equals(key)) { -+ return PrefServiceBridge.getInstance().isManagedPreference(Pref.ALTERNATE_ERROR_PAGES_ENABLED); -+ } -+ if (PREF_SEARCH_SUGGESTIONS.equals(key)) { -+ return PrefServiceBridge.getInstance().isManagedPreference(Pref.SEARCH_SUGGEST_ENABLED); -+ } -+ if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -+ return SafeBrowsingBridge.isSafeBrowsingExtendedReportingManaged(); -+ } -+ if (PREF_SAFE_BROWSING.equals(key)) { -+ return PrefServiceBridge.getInstance().isManagedPreference(Pref.SAFE_BROWSING_ENABLED); -+ } - if (PREF_NETWORK_PREDICTIONS.equals(key)) { - return PrivacyPreferencesManager.getInstance().isNetworkPredictionManaged(); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -@@ -193,10 +193,12 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC - * @return the intent for opening the settings - */ - private Intent createSettingsIntent() { -+ final String fragmentName = SyncNotificationController.class.getName(); -+ - SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); - return settingsLauncher.createSettingsActivityIntent(ContextUtils.getApplicationContext(), -- SyncAndServicesSettings.class.getName(), -- SyncAndServicesSettings.createArguments(false)); -+ fragmentName); -+ - } - - /** -diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java ---- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java -+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java -@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.ChromeActivity; - import org.chromium.chrome.browser.SyncFirstSetupCompleteSource; - import org.chromium.chrome.browser.autofill.PersonalDataManager; - import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard; -+import org.chromium.chrome.browser.ChromeFeatureList; - import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator; - import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory; - import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator; -@@ -430,9 +431,12 @@ public class SyncTestRule extends ChromeActivityTestRule { - Assert.fail("Sign-in was aborted"); - } - }); -- // Outside of tests, URL-keyed anonymized data collection is enabled by sign-in UI. -- UnifiedConsentServiceBridge.setUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile(), true); -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ // Outside of tests, URL-keyed anonymized data collection is enabled by sign-in UI. -+ // Note: If unified consent is not enabled, then UKM will be enabled based on -+ // the history sync state. -+ UnifiedConsentServiceBridge.setUrlKeyedAnonymizedDataCollectionEnabled(true); -+ } - }); - if (setFirstSetupComplete) { - SyncTestUtil.waitForSyncActive(); -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 -@@ -681,6 +681,18 @@ CHAR-LIMIT guidelines: - - Privacy - -+ -+ Navigation error suggestions -+ -+ -+ Show suggestions when a web address does not resolve or a connection cannot be made -+ -+ -+ Search and URL suggestions -+ -+ -+ Use a prediction service to show related queries and popular websites as you type in the address bar -+ - - Help improve Chrome security - -@@ -1217,6 +1229,9 @@ Your Google account may have other forms of browsing history like searches and a - - Signed in to Google as - -+ -+ Syncing to %1$sjohndoe@gmail.com -+ - - Sign out of Chrome - -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb -@@ -1045,4 +1045,21 @@ - ሁሉንም ትሮች ይዝጉ - አጠቃላይ - የምግብ ካርድ ምናሌ ተዘግቷል -- -\ No newline at end of file -+ትሮችዎን ከሌሎች መሣሪያዎችዎ ለማግኘት ወደ Chrome ይግቡ። -+ለበለጠ ፈጣን ጭነት እና የመስመር ውጭ ንባብ ገጾችን አስቀድመው ይጫኑ -+Google ፍለጋን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ብሎ የአሰሳ ታሪክዎን እንዴት እንደሚጠቀምበት ይቆጣጠሩት። -+በGoogle የሚጠቆም ግላዊነት የተላበሰ ይዘትን ለማግኘት በመለያ ወደ Chrome ይግቡ። -+የእርስዎን ዕልባቶች፣ የይለፍ ቃላት እና በሁሉም የእርስዎ መሣሪያዎች ላይ ተጨማሪ ለማግኘት ወደ Chrome በመለያ ይግቡ። -+የእርስዎን ዕልባቶች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ወደ Chrome ይግቡ። -+የአሰሳ ስህተት ጥቆማ አስተያየቶች -+አንድ የድር አድራሻ መፍትሔ ካላመጣ ወይም ግንኙነት ሊፈጠር ካልቻለ ጥቆማዎችን አሳይ -+ከChrome ተዘግቶ ይወጣ? -+የገጽ ግመታዎችን ይጠቀሙ -+ዘግተህ ውጣ -+በእርስዎ ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ላይ የተደረጉ ለውጦች ከአሁን በኋላ ከእርስዎ የGoogle መለያ ጋር አይሠምሩም። ሆኖም ግን ነባር ውሂብዎ በእርስዎ የGoogle መለያ ላይ እንደተከማቸ ይቆያል። -+Google ፍለጋን፣ ማስታወቂያዎችን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ብሎ የአሰሳ ታሪክዎን እንዴት እንደሚጠቀምበት ይቆጣጠሩት። -+የፍለጋ እና ዩአርኤል ጥቆማዎች -+በአድራሻ አሞሌው ላይ እየተየቡ ሳለ ተዛማጅ መጠይቆችን ለማሳየት እና ታዋቂ ድር ጣቢያዎችን ለማሳየት የመገመቻ አገልግሎት ይጠቀሙ -+ ጋር ማሥመር -+የ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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb -@@ -1045,4 +1045,21 @@ - إغلاق جميع علامات التبويب - عام - قائمة بطاقات الخلاصة مغلقة -- -\ No newline at end of file -+‏للحصول على علامات التبويب من أجهزتك الأخرى، سجّل الدخول إلى Chrome. -+يتم تحميل الصفحات بشكل مسبق لضمان تحميلها على نحو أسرع وإتاحة قراءتها بلا اتصال بالإنترنت. -+‏التحكّم في الطريقة التي تتّبعها Google عند استخدام سجلّ التصفّح لتخصيص البحث وخدمات Google الأخرى -+‏للحصول على محتوى مخصص اقترحته Google، سجِّلْ الدخول إلى Chrome. -+‏سجّل الدخول إلى Chrome للحصول على الإشارات المرجعية وكلمات المرور والإعدادات الأخرى واستخدامها على جميع أجهزتك. -+‏للحصول على الإشارات المرجعية على جميع أجهزتك، سجِّل الدخول إلى Chrome. -+اقتراحات عن الأخطاء في التنقل -+يتم عرض اقتراحات عند تعذّر فتح عنوان ويب أو تعذّر الاتصال بالإنترنت. -+‏هل تريد تسجيل الخروج من Chrome؟ -+استخدام ميزة توقّع الصفحات -+تسجيل الخروج -+‏لن تتم بعد الآن مزامنة التغييرات التي تطرأ على الإشارات المرجعية والسجلّ وكلمات المرور وغيرها من الإعدادات مع حسابك على Google، ولكن ستظل بياناتك الحالية مخزّنة في حسابك على Google. -+‏التحكّم في الطريقة التي تتّبعها Google عند استخدام سجلّ التصفّح لتخصيص البحث والإعلانات وخدمات Google الأخرى -+‏اقتراحات عن طلبات البحث وعناوين URL -+يمكنك استخدام خدمة التوقّعات لعرض طلبات البحث ذات الصلة ومواقع الويب الشائعة أثناء الكتابة في شريط العناوين. -+تتم المزامنة مع -+‏عناصر التحكم في النشاط على Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb -@@ -1045,4 +1045,21 @@ - Затваряне на всички раздели - Общи - Менюто на картата за емисията е затворено -- -\ No newline at end of file -+Влезте в Chrome, за да получите разделите си от другите си устройства. -+Предварително зареждане на страниците с цел по-бързо отваряне и четене офлайн -+Контролирайте начина, по който използваме историята ви на сърфиране, за да персонализираме търсенето и други услуги на Google. -+За да получавате персонализирано съдържание, предлагано от Google, влезте в Chrome. -+Влезте в Chrome, за да получите отметките, паролите и др. на всичките си устройства. -+Влезте в Chrome, за да получите отметките си на всичките си устройства. -+Предложения в случай на грешки при сърфиране -+Показване на предложения, когато даден уеб адрес не може да бъде преобразуван или не може да бъде осъществена връзка -+Искате ли да излезете от Chrome? -+Използване на предвижданията за страници -+Изход -+Промените в отметките, историята, паролите и другите ви настройки вече няма да се синхронизират с профила ви в Google. Съществуващите ви данни обаче ще продължат да се съхраняват в него. -+Контролирайте начина, по който използваме историята ви на сърфиране, за да персонализираме търсенето, рекламите и други услуги на Google. -+Предложения за търсене и за URL адреси -+Използване на услуга за предвиждания за показване на сродни заявки и популярни уебсайтове, докато пишете в адресната лента -+Синхронизира се със: -+Контроли за активността в Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb -@@ -1047,4 +1047,21 @@ - সমস্ত ট্যাবগুলি বন্ধ করুন - সাধারণ - ফিড কার্ডের মেনু বন্ধ করা আছে -- -\ No newline at end of file -+আপনার অন্য ডিভাইসগুলি থেকে আপনার ট্যাবগুলি পেতে, Chrome-এ সাইন-ইন করুন। -+দ্রুত লোডিং এবং অফলাইনে পড়ার জন্য পৃষ্ঠাটি আগে লোড করুন -+সার্চ এবং অন্যান্য Google পরিষেবা নিজের মতো করতে Google কিভাবে আপনার ব্রাউজিং ইতিহাস ব্যবহার করে তা নিয়ন্ত্রণ করুন। -+Google-এর প্রস্তাবিত নিজের মতো করা কন্টেন্ট পেতে, Chrome-এ সাইন-ইন করুন। -+আপনার বুকমার্ক, পাসওয়ার্ড এবং অন্যান্য জিনিস আপনার সমস্ত ডিভাইসে পেতে Chrome-এ সাইন-ইন করুন। -+সব ডিভাইসে আপনার বুকমার্কগুলি পেতে Chrome-এ সাইন-ইন করুন। -+নেভিগেশান ত্রুটির পরামর্শগুলি -+যখন কোনো ওয়েব ঠিকানা সমাধান করা না গেলে অথবা কোনো সংযোগ স্থাপন করা না গেলে সেক্ষেত্রে প্রস্তাবগুলি দেখান -+Chrome থেকে সাইন-আউট করবেন? -+পৃষ্ঠার প্রস্তাবনা ব্যবহার করুন -+সাইন-আউট করুন -+আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসে করা পরিবর্তন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। অবশ্য, আপনার বর্তমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে। -+সার্চ, বিজ্ঞাপন এবং অন্যান্য Google পরিষেবা নিজের মতো করতে Google কিভাবে আপনার ব্রাউজিং ইতিহাস ব্যবহার করে তা নিয়ন্ত্রণ করুন। -+সার্চ এবং URL পরামর্শগুলি -+সম্পর্কিত কোয়েরি এবং অ্যাড্রেস বারের মধ্যে আপনার টাইপ করা জনপ্রিয় ওয়েবসাইটগুলি দেখাতে একটি পূর্বাভাস পরিষেবা ব্যবহার করুন -+ এ সিঙ্ক হচ্ছে -+Google অ্যাক্টিভিটির নিয়ন্ত্রণগুলি -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb -@@ -1045,4 +1045,21 @@ Per exemple, és possible que alguns llocs web responguin a aquesta sol·licitud - Tanca totes les pestanyes - General - El menú de la targeta del tauler està tancat -- -\ No newline at end of file -+Inicia la sessió a Chrome per accedir a les pestanyes dels altres dispositius que tinguis. -+Carrega les pàgines prèviament perquè es mostrin més ràpid i per poder llegir-les sense connexió -+Controla com Google utilitza l'historial de navegació per personalitzar la Cerca i altres serveis de Google. -+Inicia la sessió a Chrome perquè Google et suggereixi contingut personalitzat -+Inicia la sessió a Chrome per accedir a les adreces d'interès, les contrasenyes i altres continguts des de tots els teus dispositius. -+Inicia la sessió a Chrome per accedir a les adreces d'interès des de tots els dispositius. -+Suggeriments d'errors de navegació -+Mostra suggeriments quan no es resol una adreça web o quan no es pot establir una connexió -+Vols tancar la sessió de Chrome? -+Utilitza les prediccions de pàgines -+Tanca la sessió -+Els canvis que es facin a les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració es deixaran de sincronitzar amb el Compte de Google. No obstant això, les dades actuals hi continuaran emmagatzemades. -+Controla com Google utilitza l'historial de navegació per personalitzar la Cerca, els anuncis i altres serveis de Google. -+Suggeriments de cerca i d'URL -+Utilitza un servei de predicció per mostrar consultes relacionades i llocs web populars mentre escrius a la barra d'adreces -+Se sincronitza amb -+Controls d'activitat de Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb -@@ -1045,4 +1045,21 @@ Některé weby mohou například na tento požadavek reagovat tak, že vám zobr - Zavřít všechny karty - Všeobecné - Nabídka karty informačních kanálů je zavřená -- -\ No newline at end of file -+Chcete-li získat přístup ke kartám ze svých ostatních zařízení, přihlaste se do Chromu. -+Načítat stránky předem kvůli rychlejšímu načítání a čtení offline -+Nastavte, jak má Google využívat vaši historii procházení k personalizaci Vyhledávání a dalších služeb Google. -+Chcete-li od Googlu získat personalizované návrhy obsahu, přihlaste se do Chromu. -+Chcete-li mít své záložky, hesla a další obsah na všech zařízeních, přihlaste se do Chromu. -+Chcete-li záložky synchronizovat do všech zařízení, přihlaste se do Chromu. -+Návrhy při chybách navigace -+Zobrazovat návrhy, pokud nelze vyhledat webovou adresu nebo navázat připojení. -+Odhlásit se z Chromu? -+Předvídat stránky -+Odhlásit se -+Změny záložek, historie, hesel a dalších nastavení se již nebudou synchronizovat do vašeho účtu Google. Vaše existující data však v účtu Google uložena zůstanou. -+Nastavte, jak má Google využívat vaši historii procházení k personalizaci Vyhledávání, reklam a dalších služeb Google. -+Vyhledávání a návrhy adres URL -+Používat službu předpovídání k zobrazení souvisejících dotazů a oblíbených webových stránek. -+Data se synchronizují do účtu -+Ovládací prvky aktivity Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb -@@ -1045,4 +1045,21 @@ Nogle websites kan f.eks. reagere på denne anmodning ved at vise dig annoncer, - Luk alle faner - Generelt - Feedkortmenuen er lukket -- -\ No newline at end of file -+Log ind på Chrome for at få adgang til dine faner på dine andre enheder. -+Forudindlæs sider, så de indlæses hurtigere og kan ses offline -+Administrer, hvordan Google bruger din browserhistorik til at tilpasse Søgning og andre Google-tjenester personligt til dig. -+Log ind på Chrome for at hente brugertilpasset indhold, som er foreslået af Chrome. -+Log ind på Chrome for at få dine bogmærker, adgangskoder og meget mere på alle dine enheder. -+Log ind på Chrome for at se dine bogmærker på alle dine enheder. -+Forslag ved navigationsfejl -+Vis forslag, hvis en webadresse ikke bliver fundet, eller hvis der ikke kan oprettes forbindelse -+Vil du logge ud af Chrome? -+Brug sideforslag -+Log ud -+Ændringer i dine bogmærker, din historik, dine adgangskoder og andre indstillinger synkroniseres ikke længere til din Google-konto, men dine eksisterende data er stadig gemt på din Google-konto. -+Administrer, hvordan Google bruger din browserhistorik til at tilpasse Søgning, annoncer og andre Google-tjenester personligt til dig. -+Forslag til søgning og webadresser -+Brug en forslagstjeneste til at få vist relaterede forespørgsler og populære websites, mens du skriver i adresselinjen -+Synkroniserer til -+Aktivitetsadministration på Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb -@@ -1045,4 +1045,21 @@ Einige Websites schalten möglicherweise Werbeanzeigen, deren Auswahl nicht dara - Alle Tabs schließen - Allgemein - Feedkartenmenü ist geschlossen -- -\ No newline at end of file -+Melden Sie sich in Chrome an, um Tabs von Ihren anderen Geräten abzurufen. -+Seiten vorab laden, um das Surfen und die Suche zu beschleunigen -+Legen Sie fest, wie Google anhand des Browserverlaufs die Suche und andere Google-Dienste für Sie personalisieren soll. -+Melden Sie sich in Chrome an, um personalisierte, von Google vorgeschlagene Inhalte zu erhalten. -+Melden Sie sich in Chrome an, um Daten wie Lesezeichen und Passwörter auf allen Ihren Geräten zu nutzen. -+Melden Sie sich in Chrome an, um auf all Ihren Geräten auf Ihre Lesezeichen zugreifen zu können. -+Vorschläge bei Navigationsfehlern -+Vorschläge einblenden, wenn eine Webadresse nicht gefunden oder keine Verbindung hergestellt werden kann -+Von Chrome abmelden? -+Vervollständigungen für Seiten verwenden -+Abmelden -+Änderungen an Ihren Lesezeichen, Ihrem Verlauf, Ihren Passwörtern und anderen Einstellungen werden nicht mehr mit Ihrem Google-Konto synchronisiert. Ihre vorhandenen Daten bleiben aber in Ihrem Google-Konto gespeichert. -+Sie können festlegen, wie Google Ihren Browserverlauf nutzt, um die Suche, Werbung und andere Google-Dienste zu personalisieren. -+Such- und URL-Vorschläge -+Während der Eingabe in die Adressleiste mithilfe einer Vervollständigungsfunktion ähnliche Suchanfragen und beliebte Websites einblenden -+Synchronisierung mit -+Google-Aktivitätseinstellungen -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb -@@ -1045,4 +1045,21 @@ - Κλείσιμο όλων των καρτελών - Γενικά - Το μενού της κάρτας ροής είναι κλειστό -- -\ No newline at end of file -+Για να εμφανίζονται οι καρτέλες από τις άλλες συσκευές σας, συνδεθείτε στο Chrome. -+Προφόρτωση ιστοσελίδων για ταχύτερη φόρτωση και ανάγνωση εκτός σύνδεσης -+Ελέγξτε τον τρόπο με τον οποίο η Google χρησιμοποιεί το ιστορικό περιήγησής σας για να εξατομικεύει την Αναζήτηση και άλλες υπηρεσίες Google. -+Για να λάβετε εξατομικευμένο περιεχόμενο που προτείνεται από την Google, συνδεθείτε στο Chrome. -+Συνδεθείτε στο Chrome, για να έχετε τους σελιδοδείκτες, τους κωδικούς πρόσβασης κ.ά. σε όλες τις συσκευές σας. -+Για να εμφανίζονται οι σελιδοδείκτες σας σε όλες τις συσκευές σας, συνδεθείτε στο Chrome. -+Προτάσεις σφάλματος πλοήγησης -+Εμφάνιση προτάσεων όταν μια διεύθυνση ιστού δεν αναλύεται σωστά ή δεν είναι δυνατό να πραγματοποιηθεί σύνδεση -+Αποσύνδεση από το Chrome; -+Χρήση προβλέψεων σελίδας -+Έξοδος -+Οι αλλαγές σε σελιδοδείκτες, ιστορικό, κωδικούς πρόσβασης και άλλες ρυθμίσεις δεν θα συγχρονίζονται πλέον με το Λογαριασμό σας Google. Ωστόσο, τα υπάρχοντα δεδομένα σας θα παραμείνουν αποθηκευμένα στο λογαριασμό σας Google. -+Ελέγξτε τον τρόπο με τον οποίο η Google χρησιμοποιεί το ιστορικό περιήγησής σας για την εξατομίκευση της Αναζήτησης, των διαφημίσεων και άλλων υπηρεσιών Google. -+Αναζήτηση και προτάσεις διευθύνσεων URL -+Χρήση υπηρεσίας προβλέψεων για την εμφάνιση σχετικών ερωτημάτων και δημοφιλών ιστοτόπων, καθώς πληκτρολογείτε στη γραμμή διευθύνσεων -+Συγχρονισμός με -+Στοιχεία ελέγχου δραστηριότητας Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb -@@ -1045,4 +1045,21 @@ For example, some websites may respond to this request by showing you ads that a - Close all tabs - General - Feed card menu is closed -- -\ No newline at end of file -+To get your tabs from your other devices, sign in to Chrome. -+Preload pages for faster loading and offline reading -+Control how Google uses your browsing history to personalise Search and other Google services. -+To get personalised content suggested by Google, sign in to Chrome. -+Sign in to Chrome to get your bookmarks, passwords and more on all your devices. -+To get your bookmarks on all your devices, sign in to Chrome. -+Navigation error suggestions -+Show suggestions when a web address does not resolve or a connection cannot be made -+Sign out of Chrome? -+Use page predictions -+Sign out -+Changes to your bookmarks, history, passwords and other settings will no longer be synced to your Google Account. However, your existing data will remain stored in your Google Account. -+Control how Google uses your browsing history to personalise Search, ads and other Google services. -+Search and URL suggestions -+Use a prediction service to show related queries and popular websites as you type in the address bar -+Syncing to -+Google Activity Controls -+ -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 ---- 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 -@@ -1045,4 +1045,21 @@ Por ejemplo, algunos sitios web pueden responder a la solicitud mediante anuncio - Cerrar todas las pestañas - General - Se cerró el menú de la tarjeta de feed -- -\ No newline at end of file -+Accede a Chrome para obtener las pestañas de tus otros dispositivos. -+Carga las páginas previamente para acelerar la carga y leerlas sin conexión -+Controla la forma en que Google usa tu historial de navegación para personalizar Búsqueda y otros servicios de Google. -+Para obtener contenido personalizado y sugerido por Google, accede a tu cuenta en Chrome. -+Accede a tu cuenta en Chrome para obtener tus favoritos, contraseñas y mucho más desde todos tus dispositivos. -+Para usar tus favoritos en todos los dispositivos, accede a Chrome. -+Sugerencias relacionadas con errores de navegación -+Mostrar sugerencias cuando no se resuelve una dirección web o cuando no se puede establecer una conexión -+¿Quieres salir de Chrome? -+Usar las predicciones de página -+Salir -+Los cambios que hagas en tus favoritos, historial, contraseñas y otras opciones de configuración se seguirán sincronizando con tu cuenta de Google. Sin embargo, tus datos existentes seguirán almacenados en tu cuenta de Google. -+Controla la forma en que Google usa tu historial de navegación para personalizar Búsqueda, Ads y otros servicios de Google. -+Sugerencias de URL y de búsqueda -+Usar un servicio de predicción para ver consultas relacionadas y sitios web populares a medida que escribes en la barra de direcciones. -+Sincronizando con -+Controles de actividad de Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb -@@ -1045,4 +1045,21 @@ Por ejemplo, algunos sitios web pueden responder a la solicitud mostrándote anu - Cerrar todas las pestañas - General - El menú de la tarjeta del feed está cerrado -- -\ No newline at end of file -+Inicia sesión en Chrome para ver las pestañas de tus otros dispositivos. -+Carga las páginas previamente para mostrarlas más rápido y poder leerlas sin conexión -+Controla cómo utiliza Google tu historial de navegación para personalizar la Búsqueda y otros servicios de Google. -+Para obtener contenido personalizado sugerido por Google, inicia sesión en Chrome. -+Inicia sesión en Chrome para sincronizar los marcadores, las contraseñas y mucho más en todos tus dispositivos. -+Inicia sesión en Chrome para ver tus marcadores en todos tus dispositivos. -+Sugerencias para errores de navegación -+Muestra sugerencias cuando no se puede resolver una dirección web o no se puede establecer una conexión -+¿Quieres cerrar sesión en Chrome? -+Utilizar predicciones de página -+Cerrar sesión -+Los cambios que realices en los marcadores, el historial, las contraseñas y otras opciones no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos actuales seguirán almacenados en tu cuenta. -+Controla cómo utiliza Google tu historial de navegación para personalizar la Búsqueda, los anuncios y otros servicios de Google. -+Sugerencias de URL y de búsqueda -+Utiliza un servicio de predicciones para mostrar consultas relacionadas y sitios web populares a medida que escribes en la barra de direcciones -+Sincronizando con -+Gestión de tu actividad en Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb -@@ -1045,4 +1045,21 @@ Näiteks võivad mõned veebisaidid taotlusele reageerida nii, et näitavad teil - Sule kõik vahelehed - Üldine - Voo kaardimenüü on suletud -- -\ No newline at end of file -+Vahelehtede hankimiseks oma teistest seadmetest logige Chrome'i sisse. -+Eellaaditakse lehti kiiremaks laadimiseks ja võrguühenduseta lugemiseks -+Saate juhtida seda, kuidas Google kasutab teie sirvimisajalugu otsingu ja muude Google'i teenuste isikupärastamiseks. -+Google'i soovitatud isikupärastatud sisu hankimiseks logige Chrome'i sisse. -+Logige Chrome'i sisse, et kõikides oma seadmetes kasutada järjehoidjaid, paroole ja muud. -+Järjehoidjate hankimiseks kõikidesse seadmetesse logige Chrome'i sisse. -+Soovitused navigeerimisvigade korral -+Soovituste näitamine, kui veebiaadressi ei saa lahendada või ühendust ei õnnestu luua -+Kas logida Chrome'ist välja? -+Kasuta lehe ennustusi -+Logi välja -+Järjehoidjates, ajaloos, paroolides ja muudes seadetes tehtud muudatusi ei sünkroonita enam teie Google'i kontoga. Teie olemasolevad andmed jäävad siiski teie Google'i kontole. -+Juhtige seda, kuidas Google kasutab teie sirvimisajalugu otsingu, reklaamide ja muude Google'i teenuste isikupärastamiseks. -+Otsingu ja URL-i soovitused -+Aadressiribale teksti sisestamisel ennustusteenuse abil seotud päringute ja populaarsete veebisaitide kuvamine -+Sünkroonimine kontoga -+Google'i kontotegevuste haldus -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb -@@ -1045,4 +1045,21 @@ - بستن همه برگه‌ها - موارد کلی - منوی کارت فید بسته شد -- -\ No newline at end of file -+‏برای دسترسی به برگه‌هایتان در دستگاه‌های دیگر، به سیستم Chrome وارد شوید. -+برای بارگیری سریع‌تر و خواندن درحالت آفلاین، صفحات را پیش‌بارگیری کنید -+‏نحوه استفاده Google از سابقه مرورتان را برای شخصی‌سازی جستجو و سایر سرویس‌های Google کنترل کنید. -+‏برای دریافت محتوای شخصی‌سازی‌شده پیشنهادی Google، به Chrome وارد شوید. -+‏برای دریافت نشانک‌ها، گذرواژه‌ها و موارد دیگر در همه دستگاه‌هایتان، به سیستم Chrome وارد شوید. -+‏برای اینکه نشانک‌ها را در همه دستگاه‌هایتان دریافت کنید به سیستم Chrome وارد شوید. -+پیشنهادات خطای پیمایش -+وقتی آدرس وب شناسایی نمی‌شود یا اتصال برقرار نمی‌شود، پیشنهاداتی نشان داده می‌شود -+‏از سیستم Chrome خارج می شوید؟ -+استفاده از پیش‌بینی صفحه -+خروج از سیستم -+‏تغییرات در نشانک‌ها، سابقه، گذرواژه و سایر تنظیمات دیگر با حساب Google شما همگام‌سازی نخواهد شد. با این حال، داده‌های موجودتان در حساب Google شما باقی خواهند ماند. -+‏نحوه استفاده Google را از سابقه مرورتان برای شخصی‌سازی جستجو، آگهی‌ها و سایر سرویس‌های Google کنترل کنید. -+پیشنهادات جستجو و نشانی وب -+از یک سرویس پیش‌بینی استفاده می‌شود تا هم‌زمان با تایپ کردن شما در نوار آدرس، عبارت‌های جستجوی مرتبط و وب‌سایت‌های محبوب نشان داده شوند -+در حال همگام‌سازی در -+‏کنترل‌های فعالیت Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb -@@ -1045,4 +1045,21 @@ Jotkin verkkosivustot voivat vastata tähän pyyntöön esimerkiksi näyttämäl - Sulje kaikki välilehdet - Yleistä - Fiidikorttien valikko on suljettu -- -\ No newline at end of file -+Käytä välilehtiä muilta laitteiltasi kirjautumalla Chromeen. -+Sivujen esilataaminen nopeuttaa lataamista ja mahdollistaa lukemisen offline-tilassa. -+Hallinnoi tapaa, jolla Google käyttää selaushistoriaasi haun ja muiden Googlen palveluiden muokkaamiseen. -+Kirjaudu Chromeen, niin voit lisätä Googlen suosittelemaa sisältöä. -+Kirjaudu sisään Chromeen, jotta voit käyttää kirjanmerkkejäsi, salasanojasi ja muita asetuksiasi kaikilla laitteillasi. -+Kirjaudu sisään Chromeen, niin voit käyttää kirjanmerkkejäsi kaikilla laitteilla. -+Selausvirheiden ehdotukset -+Näytä ehdotuksia, jos verkko-osoitetta ei tunnisteta tai yhteyttä ei voi muodostaa. -+Kirjaudutaanko ulos Chromesta? -+Sivujen ennakoivan esilatauksen käyttö -+Kirjaudu ulos -+Kirjanmerkkeihin, historiaan, salasanoihin ja muihin asetuksiin tehtäviä muutoksia ei enää synkronoida Google-tilillesi. Olemassa olevia tietojasi säilytetään kuitenkin Google-tililläsi. -+Hallinnoi tapaa, jolla Google käyttää selaushistoriaasi haun, mainosten ja muiden Googlen palveluiden muokkaamiseen. -+Haku ja URL-ehdotukset -+Käytä ennakointipalvelua, joka näyttää sinulle aiheeseen liittyviä kyselyitä sekä suosittuja verkkosivustoja kirjoittaessasi osoitepalkkiin. -+Synkronoidaan tietoja tilille . -+Googlen toimintojen hallinta -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb -@@ -1045,4 +1045,21 @@ Halimbawa, puwedeng tumugon ang ilang website sa kahilingang ito sa pamamagitan - Isara ang lahat ng tab - Pangkalahatan - Nakasara ang menu ng feed card -- -\ No newline at end of file -+Upang makuha ang iyong mga tab mula sa iba mo pang mga device, mag-sign in sa Chrome. -+Mag-preload ng mga page para sa mas mabilis na pag-load at offline na pagbabasa -+Kontrolin kung paano ginagamit ng Google ang iyong history ng pag-browse para i-personalize ang Search at iba pang serbisyo ng Google. -+Upang makakuha ng naka-personalize na content na iminumungkahi ng Google, mag-sign in sa Chrome. -+Mag-sign in sa Chrome upang makuha ang iyong mga bookmark, password, at higit pa sa lahat ng device mo. -+Para mailagay ang iyong mga bookmark sa lahat ng device mo, mag-sign in sa Chrome. -+Mga suhestyon para sa error sa pag-navigate -+Magpakita ng mga suhestyon kapag hindi ma-resolve ang isang website o kung hindi makakonekta -+Mag-sign out sa Chrome? -+Gamitin ang mga hula sa page -+Mag-sign out -+Hindi na masi-sync sa Google Account mo ang mga pagbabago sa iyong mga bookmark, history, password, at iba pang setting. Gayunpaman, mananatiling naka-store sa Google account mo ang iyong kasalukuyang data. -+Kontrolin kung paano ginagamit ng Google ang iyong history ng pag-browse para i-personalize ang Search, mga ad, at iba pang serbisyo ng Google. -+Mga suhestyon sa paghahanap at URL -+Gumamit ng serbisyo sa paghula para magpakita ng mga nauugnay na query at sikat na website habang nagta-type ka sa address bar -+Sini-sync sa -+Mga Kontrol ng Aktibidad ng Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb -@@ -1045,4 +1045,21 @@ Par exemple, certains sites Web peuvent répondre à cette demande en diffusant - Fermer tous les onglets - Général - Le menu de la carte de flux est fermé -- -\ No newline at end of file -+Connectez-vous à Chrome pour accéder à vos onglets sur vos autres appareils. -+Précharge des pages pour accélérer leur chargement ou les lire hors connexion -+Contrôlez la façon dont Google utilise votre historique de navigation pour personnaliser la recherche et d'autres services Google. -+Pour obtenir une recommandation de contenu personnalisé de la part de Google, connectez-vous à Chrome. -+Connectez-vous à Chrome pour accéder à vos favoris, mots de passe et bien plus sur tous vos appareils. -+Connectez-vous à Chrome pour synchroniser vos favoris sur tous vos appareils. -+Suggestions en cas d'erreur de navigation -+Afficher d'autres solutions lorsqu'une adresse Web ne peut pas être résolue ou qu'une connexion ne peut pas être établie -+Se déconnecter de Chrome ? -+Utiliser le service de prédiction -+Déconnexion -+Les modifications apportées à vos favoris, votre historique, vos mots de passe et d'autres paramètres ne seront plus synchronisées avec votre compte Google. Vos données seront cependant conservées dans votre compte Google. -+Contrôlez la façon dont Google utilise votre historique de navigation pour personnaliser la recherche, les annonces et d'autres services Google. -+Suggestions de recherche et d'URL -+Utiliser un service de prédiction pour suggérer des requêtes associées et des sites populaires lorsque vous saisissez des termes dans la barre d'adresse -+Synchronisation avec -+Commandes Google relatives à l'activité -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb -@@ -1045,4 +1045,21 @@ - બધા ટેબ્સ બંધ કરો - સામાન્ય - ફીડ કાર્ડ મેનૂ બંધ છે -- -\ No newline at end of file -+તમારા અન્ય ઉપકરણો પરથી તમારા ટૅબ્સ મેળવવા માટે, Chrome માં સાઇન ઇન કરો. -+ઝડપી લોડ કરવા અને ઑફલાઇન વાંચન માટે પેજને પહેલેથી લોડ કરો -+Google, શોધ અને અન્ય Google સેવાઓને મનગમતી બનાવવા માટે તમારા બ્રાઉઝિંગ ઇતિહાસનો ઉપયોગ કેવી રીતે કરે છે તે નિયંત્રિત કરો. -+Google દ્વારા સૂચવેલ વ્યક્તિગત કરેલ કન્ટેન્ટ મેળવવા માટે, Chrome માં સાઇન ઇન કરો. -+તમારા બધા ઉપકરણો પર તમારા બુકમાર્ક, પાસવર્ડ અને બીજુ ઘણું મેળવવા માટે Chromeમાં સાઇન ઇન કરો. -+તમારા સમગ્ર ઉપકરણો પર તમારા બુકમાર્ક્સ મેળવવા માટે, Chrome માં સાઇન ઇન કરો. -+નેવિગેશન ભૂલ સૂચનો -+જ્યારે વેબ ઍડ્રેસ ન ઉકેલાય અથવા કનેક્શન કરી શકાતું ન હોય ત્યારે સૂચનો દર્શાવો -+Chromeમાંથી સાઇન આઉટ કરીએ? -+પેજના પૂર્વાનુમાનનો ઉપયોગ કરો -+સાઇન આઉટ -+તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગમાં ફેરફારને હવે તમારા Google એકાઉન્ટ પર સિંક કરવામાં આવશે નહિ. જોકે, તમારો અસ્તિત્વમાંનો ડેટા તમારા Google એકાઉન્ટમાં સ્ટોર રહેશે. -+શોધ, જાહેરાતો અને અન્ય Google સેવાઓને મનગમતી બનાવવા માટે Google, તમારા બ્રાઉઝિંગ ઇતિહાસનો ઉપયોગ કેવી રીતે કરે છે તે નિયંત્રિત કરો. -+શોધ અને URL સૂચનો -+સરનામાં બારમાં લખતાંની સાથે સંબંધિત ક્વેરીઝ અને લોકપ્રિય વેબસાઇટ્સ દર્શાવવા માટે પૂર્વાનુમાન સેવાનો ઉપયોગ કરો. -+ પર સમન્વયિત કરી રહ્યાં છે -+Google પ્રવૃત્તિ નિયંત્રણો -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb -@@ -1045,4 +1045,21 @@ - सभी टैब बंद करें - सामान्य - फ़ीड कार्ड मेन्यू बंद हो गया है -- -\ No newline at end of file -+अपने दूसरे डिवाइस से अपने टैब पाने के लिए, Chrome में साइन इन करें. -+पेजों को पहले से लोड करके रखा जाता है ताकि वे तेज़ी से लोड हों और उन्हें ऑफ़लाइन पढ़ा जा सके -+नियंत्रित करें कि खोज और अन्य Google सेवाओं को मनमुताबिक बनाने के लिए Google आपके ब्राउज़िंग इतिहास का उपयोग कैसे करता है. -+Google द्वारा सुझाई गई मनमुताबिक सामग्री पाने के लिए, Chrome में साइन इन करें. -+अपने सभी डिवाइस पर बुकमार्क, पासवर्ड और ज़्यादा चीज़ें पाने के लिए Chrome में साइन इन करें. -+अपने सभी डिवाइस पर बुकमार्क पाने के लिए, Chrome में साइन इन करें. -+नेविगेशन की गड़बड़ी से जुड़े सुझाव -+जब कोई वेब पता काम नहीं करता है या उससे कनेक्शन नहीं हो पाता है, तो आपको सुझाव दिखाए जाते हैं -+Chrome से साइन आउट करें? -+पेज पूर्वानुमानों का इस्तेमाल करें -+साइन आउट करें -+आपके बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग में किए गए बदलाव अब आपके Google खाते में सिंक नहीं किए जाएंगे. हालांकि, आपका मौजूदा डेटा आपके Google खाते में संग्रहित रहेगा. -+नियंत्रित करें कि खोज, विज्ञापन और दूसरी Google सेवाओं को मनमुताबिक बनाने के लिए Google आपके ब्राउज़िंग इतिहास का इस्तेमाल कैसे करता है. -+खोज और URL सुझाव -+जैसे ही आप पता बार में लिखना शुरू करते हैं, पूर्वानुमान सेवा का इस्तेमाल करके आपको संबंधित क्वेरी और लोकप्रिय वेबसाइटें दिखाई जाती हैं -+ से समन्वयित हो रहा है -+Google गतिविधि नियंत्रण -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb -@@ -1045,4 +1045,21 @@ Na primjer, neke web-lokacije na taj zahtjev mogu odgovoriti tako da vam prikaž - Zatvori sve kartice - Općenito - Izbornik kartice feeda je zatvoren -- -\ No newline at end of file -+Da bi se prikazale kartice s vaših ostalih uređaja, prijavite se na Chrome. -+Prethodno učitajte stranice za brže učitavanje i čitanje izvan mreže -+Upravljajte načinom na koji Google upotrebljava vašu povijest pregledavanja za prilagodbu Pretraživanja i drugih Googleovih usluga. -+Prijavite se u Chrome ako želite da vam Google predlaže sadržaje. -+Prijavite se na Chrome kako biste mogli pristupati svojim oznakama, zaporkama i ostalom na svim svojim uređajima. -+Da biste imali svoje oznake na svim svojim uređajima, prijavite se na Chrome. -+Prijedlozi pogreške kretanja -+Prikaži prijedloge kada se ne razriješi web-adresa ili nije moguće uspostaviti vezu -+Želite li se odjaviti s Chromea? -+Upotrebljavajte predviđanja za stranice -+Odjava -+Promjene oznaka, povijesti, zaporki i drugih postavki više se neće sinkronizirati s vašim Google računom. No vaši postojeći podaci ostat će pohranjeni na vašem Google računu. -+Upravljajte načinom na koji Google upotrebljava vašu povijest pregledavanja za prilagodbu Pretraživanja, oglasa i drugih Googleovih usluga. -+Prijedlozi za pretraživanje i URL -+Upotrijebi uslugu predviđanja za prikaz srodnih upita i popularnih web-lokacija prilikom upisivanja u adresnu traku -+Sinkronizira se s računom -+Google kontrole aktivnosti -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb -@@ -1045,4 +1045,21 @@ Egyes webhelyek például válaszolhatnak rá úgy, hogy olyan hirdetéseket jel - Az összes lap bezárása - Általános - A hírcsatornakártya menüje be van csukva -- -\ No newline at end of file -+Ha a többi eszközéről is szeretné elérni a lapjait, jelentkezzen be a Chrome-ba. -+Oldalak előtöltése a gyorsabb betöltés és az offline módban történő olvasás érdekében -+Annak szabályozása, hogy a Google hogyan használhatja fel a böngészési előzményeket a Keresés és más Google-szolgáltatások személyre szabására. -+A Google által javasolt, személyre szabott tartalmak fogadásához jelentkezzen be a Chrome-ba. -+Jelentkezzen be a Chrome-ba, hogy az összes eszközén hozzáférhessen könyvjelzőihez, jelszavaihoz és más beállításaihoz. -+Ha az összes eszközén szeretné elérni könyvjelzőit, jelentkezzen be a Chrome-ba. -+Navigálási hibákkal kapcsolatos javaslatok -+Javaslatok megjelenítése, ha egy internetcímet nem lehet feloldani, vagy nem lehet kapcsolódni -+Kijelentkezés a Chrome-ból -+Várható oldalak használata -+Kijelentkezés -+Könyvjelzői, előzményei, jelszavai és más beállításai a továbbiakban már nem lesznek szinkronizálva Google-fiókjával. Meglévő adatainak tárolása azonban továbbra is megmarad Google-fiókjában. -+Annak szabályozása, hogy a Google hogyan használhatja fel az Ön böngészési előzményeit a Keresés, a hirdetések és más Google-szolgáltatások személyre szabására. -+Keresési és URL-javaslatok -+„Várható kifejezések” szolgáltatás használata a kapcsolódó lekérdezések és népszerű webhelyek megjelenítéséhez a címsávban történő gépelés során. -+Szinkronizálás a következővel: -+Google Tevékenységvezérlők -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb -@@ -1045,4 +1045,21 @@ Misalnya, beberapa situs web mungkin menanggapi permintaan ini dengan menayangka - Tutup semua tab - Umum - Menu kartu feed ditutup -- -\ No newline at end of file -+Untuk mengakses tab Anda dari perangkat lainnya, login ke Chrome. -+Pramuat halaman agar memuat lebih cepat dan untuk membaca offline -+Kontrol cara Google menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran dan layanan Google lainnya. -+Untuk mendapatkan konten hasil personalisasi yang disarankan oleh Google, masuk ke Chrome. -+Login ke Chrome untuk mendapatkan bookmark, sandi, dan lainnya di semua perangkat Anda. -+Untuk dapat mengakses bookmark Anda di semua perangkat, login ke Chrome. -+Saran untuk kesalahan navigasi -+Tampilkan saran saat alamat web tidak ditemukan atau koneksi bermasalah -+Logout dari Chrome? -+Gunakan prediksi halaman -+Logout -+Perubahan pada bookmark, histori, sandi, dan setelan lainnya tidak akan disinkronkan lagi dengan Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di akun Google Anda. -+Kontrol cara Google menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya. -+Saran URL dan penelusuran -+Gunakan pencarian otomatis untuk menunjukkan situs web populer saat Anda mengetik alamat situs -+Menyinkronkan dengan -+Kontrol Aktivitas Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb -@@ -1045,4 +1045,21 @@ Ad esempio, alcuni siti web potrebbero rispondere alla richiesta mostrando annun - Chiudi tutte le schede - Generali - Menu scheda feed chiuso -- -\ No newline at end of file -+Accedi a Chrome per trovare le tue schede degli altri dispositivi. -+Le pagine vengono precaricate per velocizzare il caricamento e per la lettura offline -+Controlla il modo in cui Google utilizza la cronologia di navigazione per personalizzare la Ricerca e altri servizi Google. -+Per ricevere contenuti suggeriti appositamente per te da Google, accedi a Chrome. -+Accedi a Chrome per trovare i tuoi preferiti, le password e altre impostazioni su tutti i tuoi dispositivi. -+Accedi a Chrome per trovare i tuoi preferiti su tutti i dispositivi. -+Suggerimenti per gli errori di navigazione -+Mostra suggerimenti quando un indirizzo web non viene trovato o non è possibile stabilire una connessione -+Uscire da Chrome? -+Usa previsioni di pagina -+Esci -+Le modifiche ai preferiti, alla cronologia, alle password e ad altre impostazioni non verranno più sincronizzate con il tuo Account Google. Tuttavia, i dati esistenti rimarranno memorizzati. -+Controlla il modo in cui Google utilizza la tua cronologia di navigazione per personalizzare la Ricerca, gli annunci e altri servizi Google. -+Suggerimenti di ricerca e URL -+Utilizza un servizio di previsione per visualizzare query correlate e siti web popolari durante la digitazione nella barra degli indirizzi -+Sincronizzazione con -+Gestione attività di Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb -@@ -1045,4 +1045,21 @@ - סגירת כל הכרטיסיות - כללי - תפריט כרטיס הפיד סגור -- -\ No newline at end of file -+‏כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, יש להיכנס ל-Chrome. -+טעינה מקדימה של דפים מאפשרת טעינה מהירה יותר וקריאה במצב לא מקוון -+‏קבע כיצד Google משתמשת בהיסטוריית הגלישה שלך כדי להתאים אישית את החיפוש ושירותים אחרים של Google. -+‏כדי לקבל מ-Google הצעות לתוכן מותאם אישית, היכנס אל Chrome. -+‏יש להיכנס אל Chrome כדי לקבל גישה אל הסימניות, הסיסמאות ונתונים נוספים בכל המכשירים שלך. -+‏כדי שהסימניות שלך יופיעו בכל המכשירים, היכנס ל-Chrome. -+הצעות לשגיאת ניווט -+הצעות יופיעו כאשר כתובת אינטרנט אינה מזוהה או כשלא ניתן ליצור חיבור -+‏האם לצאת מ-Chrome? -+שימוש בחיזויי דפים -+יציאה -+‏שינויים בסימניות, בהיסטוריה, בסיסמאות ובהגדרות נוספות לא יסונכרנו עוד עם חשבון Google. עם זאת, הנתונים הקיימים עדיין יאוחסנו בחשבון Google שלך. -+‏בידיך השליטה איך Google משתמשת בהיסטוריית הגלישה לצורך התאמה אישית של חיפוש Google, מודעות Google ושירותי Google אחרים. -+הצעות חיפוש וכתובות אתר -+שימוש בשירות חיזוי כדי להציג שאילתות קשורות ואתרים פופולריים תוך כדי ההקלדה בשורת כתובת האתר -+מסנכרן עם -+‏בחירת הפעילויות ב-Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb -@@ -1045,4 +1045,21 @@ - すべてのタブを閉じる - 全般 - フィードカード メニューは閉じています -- -\ No newline at end of file -+他のデバイスと同じタブを使用するには、Chrome にログインします。 -+ページをプリロードして、すばやく読み込んだりオフラインで閲覧したりできるようにします -+Google が閲覧履歴をどのような方法で使用し、検索やその他の Google サービスをカスタマイズするかを設定します。 -+ユーザーに合わせた Google からのおすすめコンテンツを表示するには、Chrome にログインします。 -+Chrome にログインすると、ブックマーク、パスワード、その他の設定をどのデバイスからでもご利用いただけます。 -+お使いのどのデバイスでも同じブックマークを使用するには、Chrome にログインします。 -+アクセスエラー時の候補表示 -+ウェブアドレスが解決されない場合や接続を確立できない場合にアドバイスを表示します -+Chrome からログアウトしますか? -+ページ予測の使用 -+ログアウト -+今後、ブックマーク、履歴、パスワードなどの設定への変更は Google アカウントに同期されません。ただし、既存のデータは Google アカウントに保存されたままとなります。 -+検索、広告、その他の Google サービスをカスタマイズするために Google が閲覧履歴をどのような方法で使用するかを設定します。 -+検索と URL の候補表示 -+予測サービスを使用し、アドレスバーへの入力時に関連性の高い検索キーワードや人気のウェブサイトを表示します -+ に同期しています -+Google アクティビティ管理 -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb -@@ -1045,4 +1045,21 @@ - ಎಲ್ಲ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ - ಸಾಮಾನ್ಯ - ಫೀಡ್ ಕಾರ್ಡ್ ಮೆನು ಅನ್ನು ಮುಚ್ಚಲಾಗಿದೆ -- -\ No newline at end of file -+ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಿಂದ ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ. -+ವೇಗವಾಗಿ ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಓದುವುದಕ್ಕಾಗಿ ಪೂರ್ವಲೋಡ್ ಆಗಿರುವಂತಹ ಪುಟಗಳು -+ಹುಡುಕಾಟ ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು Google ಹೇಗೆ ಬಳಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿ. -+Google ಸಲಹೆ ನೀಡಲಾದ ವೈಯಕ್ತೀಕರಿಸಲಾದ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ. -+ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇನ್ನಷ್ಟನ್ನು ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಪಡೆದುಕೊಳ್ಳಲು Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ. -+ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ. -+ನ್ಯಾವಿಗೇಶನ್ ದೋಷ ಸಲಹೆಗಳು -+ವೆಬ್ ವಿಳಾಸವು ಪೂರೈಸದಿದ್ದರೆ ಅಥವಾ ಸಂಪರ್ಕಪಡಿಸಲು ಆಗದಿದ್ದರೆ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಿ -+Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದೇ? -+ಪುಟದ ಮುನ್ನೋಟಗಳನ್ನು ಬಳಸಿ -+ಸೈನ್ ಔಟ್ -+ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಗೆ ಇನ್ನು ಮುಂದೆ ಸಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದರೂ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೇಟಾ, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿಯೇ ಇರುತ್ತದೆ. -+ಹುಡುಕಾಟ, ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು Google ಹೇಗೆ ಬಳಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿ. -+ಹುಡುಕಾಟ ಮತ್ತು URL ಸಲಹೆಗಳು -+ನೀವು ವಿಳಾಸ ಬಾರ್‌ನಲ್ಲಿ ಟೈಪ್ ಮಾಡಿದಂತೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ತೋರಿಸಲು ಪೂರ್ವಸೂಚನೆಯ ಸೇವೆಯನ್ನು ಬಳಸಿ -+ ಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ -+Google ಚಟುವಟಿಕೆ ನಿಯಂತ್ರಣಗಳು -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb -@@ -1045,4 +1045,21 @@ - 탭 모두 닫기 - 일반 - 피드 카드 메뉴가 닫힘 -- -\ No newline at end of file -+다른 기기에서 탭을 가져오려면 Chrome에 로그인하세요. -+더 빠른 로드와 오프라인 읽기를 위해 페이지를 미리 로드 -+Google이 검색 및 다른 Google 서비스를 맞춤설정하기 위하여 내 인터넷 사용 기록을 사용하는 방법을 제어하세요. -+Google에서 추천한 맞춤설정 콘텐츠를 받으려면 Chrome에 로그인합니다. -+Chrome에 로그인하여 모든 기기에서 내 북마크, 비밀번호 등을 사용하세요. -+어느 기기에서나 내 북마크를 사용하려면 Chrome에 로그인하세요. -+탐색 오류 시 추천사항 표시 -+웹 주소가 확인되지 않거나 연결되지 않는 경우 추천 주소 표시 -+Chrome에서 로그아웃하시겠습니까? -+페이지 예측 사용 -+로그아웃 -+북마크, 방문 기록, 비밀번호, 기타 설정이 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장됩니다. -+Google이 검색, 광고 및 다른 Google 서비스를 맞춤설정하기 위하여 내 인터넷 사용 기록을 사용하는 방법을 제어하세요. -+추천 검색어 및 추천 URL -+예상 검색어 서비스를 사용하여 검색주소창에 입력할 때 관련 검색어 및 인기 웹사이트 표시 -+에 동기화 중 -+Google 활동 제어 -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb -@@ -1045,4 +1045,21 @@ Pavyzdžiui, kai kurios svetainės gali atsakyti į šią užklausą rodydamos j - Uždar. visų skirtukų lapus - Bendra - Sklaidos kanalo kortelės meniu uždarytas -- -\ No newline at end of file -+Prisijunkite prie „Chrome“, kad pasiektumėte skirtukus iš kitų įrenginių. -+Iš anksto įkeliami puslapiai, kad įkėlimo procesas vyktų greičiau ir būtų galima skaityti neprisijungus -+Galite pasirinkti, kaip „Google“ turėtų naudoti jūsų naršymo istoriją, kad suasmenintų Paiešką ir kitas „Google“ paslaugas. -+Jei norite gauti „Google“ siūlomo suasmeninto turinio, prisijunkite prie „Chrome“. -+Prisijunkite prie „Chrome“, kad galėtumėte naudoti žymes, slaptažodžius ir kitus nustatymus visuose įrenginiuose. -+Prisijunkite naršyklėje „Chrome“, kad pasiektumėte žymes visuose įrenginiuose. -+Naršymo klaidų pasiūlymai -+Rodyti pasiūlymus, kai žiniatinklio adresas nepasiekiamas arba nepavyksta užmegzti ryšio -+Atsijungti nuo „Chrome“? -+Naudoti puslapių numatymą -+Atsijungti -+Žymių, istorijos, slaptažodžių ir kitų nustatymų pakeitimai nebebus sinchronizuojami su „Google“ paskyra. Tačiau esami duomenys ir toliau bus saugomi „Google“ paskyroje. -+Valdykite, kaip „Google“ turėtų naudoti jūsų naršymo istoriją, kad suasmenintų Paiešką, skelbimus ir kitas „Google“ paslaugas. -+Paieškos ir URL pasiūlymai -+Naudoti numatymo paslaugą, kad adreso juostoje įvedant tekstą būtų rodomos susijusios užklausos ir populiarios svetainės -+Sinchronizuojama su -+„Google“ veiklos valdikliai -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb -@@ -1045,4 +1045,21 @@ Piemēram, dažas vietnes, reaģējot uz šo pieprasījumu, var rādīt jums rek - Aizvērt visas cilnes - Vispārīgi - Plūsmas kartītes izvēlne ir aizvērta -- -\ No newline at end of file -+Pierakstieties pārlūkā Chrome, lai būtu pieejamas cilnes no citām jūsu ierīcēm. -+Veiciet lapu pirmsielādi, lai ātrāk ielādētu lapas un lasītu tās bezsaistē. -+Kontrolējiet to, kā Google var izmantot jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu un citus Google pakalpojumus. -+Lai saņemtu Google ieteikto personalizēto saturu, pierakstieties pārlūkā Chrome. -+Pierakstieties pārlūkā Chrome, lai iegūtu savas grāmatzīmes, paroles un citu saturu visās savās ierīcēs. -+Pierakstieties pārlūkā Chrome, lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs. -+Navigācijas kļūdu ieteikumi -+Rādīt ieteikumus, ja nedarbojas tīmekļa adrese vai nevar izveidot savienojumu. -+Vai izrakstīties no pārlūka Chrome? -+Lapu ieteikumu izmantošana -+Izrakstīties -+Grāmatzīmju, vēstures, paroļu un citu iestatījumu izmaiņas vairs netiks sinhronizētas ar jūsu Google kontu. Tomēr esošie dati joprojām tiks glabāti jūsu Google kontā. -+Kontrolējiet to, kā Google izmanto jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu, reklāmas un citus Google pakalpojumus. -+Meklēšana un URL ieteikumi -+Izmantojiet ieteikumus, lai skatītu saistītos vaicājumus un populāras vietnes, kad rakstāt adreses joslā. -+Sinhronizēšana ar -+Google aktivitātes vadīklas -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb -@@ -1045,4 +1045,21 @@ - ടാബെല്ലാം അടയ്‌ക്കൂ - പൊതുവായ - ഫീഡ് കാർഡ് മെനു അടച്ചു -- -\ No newline at end of file -+നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകൾ ലഭിക്കാൻ, Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക. -+വേഗത്തിൽ ലോഡ് ചെയ്യാനും ഓഫ്‍ലൈന്‍ വായനക്കുമായി പേജുകൾ മുൻകൂട്ടി ലോഡ് ചെയ്യുക -+തിരയലും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ, Google നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിക്കുന്ന രീതി നിയന്ത്രിക്കുക. -+Google നിർദ്ദേശിച്ച, വ്യക്തിപരമാക്കിയ ഉള്ളടക്കം സ്വന്തമാക്കാൻ, Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക. -+നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകളും ‌പാസ്‌വേഡുകളും മറ്റും എല്ലാ ഉപകരണങ്ങളിലും ലഭ്യമാക്കുന്നതിന് Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക. -+നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകൾ ലഭിക്കാൻ, Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക. -+നാവിഗേഷൻ പിശക് നിർദ്ദേശങ്ങൾ -+ഒരു വെബ് വിലാസം വ്യക്തമാക്കാത്തപ്പോഴോ ഒരു കണക്ഷൻ സ്ഥാപിക്കാൻ കഴിയാത്തപ്പോഴോ നിർദ്ദേശങ്ങൾ ദൃശ്യമാക്കുക -+Chrome-ൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യണോ? -+പേജ് പ്രവചനങ്ങൾ ഉപയോഗിക്കുക -+പുറത്തുകടക്കുക -+ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവയിലുള്ള മാറ്റങ്ങൾ ഇനി നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കില്ല. എന്നിരുന്നാലും, നിങ്ങളുടെ നിലവിലെ ഡാറ്റ Google അക്കൗണ്ടിൽ തുടർന്നും സൂക്ഷിക്കും. -+തിരയലും പരസ്യങ്ങളും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ, Google നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിക്കുന്ന രീതി നിയന്ത്രിക്കുക. -+തിരയലും URL നിർദ്ദേശങ്ങളും -+നിങ്ങൾ വിലാസ ബാറിൽ ടൈപ്പുചെയ്യുന്നതിനനുസരിച്ച് ബന്ധപ്പെട്ട അന്വേഷണങ്ങളും ജനപ്രിയ വെബ്‌സൈറ്റുകളും കാണിക്കുന്നതിന് ഒരു പ്രവചന സേവനം ഉപയോഗിക്കുക -+ അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കുന്നു -+Google പ്രവർത്തന നിയന്ത്രണങ്ങൾ -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb -@@ -1045,4 +1045,21 @@ - सर्व टॅब बंद करा - सामान्य - फीड कार्ड मेनू बंद केला गेला आहे -- -\ No newline at end of file -+आपल्या इतर डिव्हाइसेसवरील तुमचे टॅब प्राप्त करण्यासाठी, Chrome मध्ये साइन इन करा. -+जलद लोडिंग आणि ऑफलाइन वाचनासाठी पेज प्रीलोड करा -+शोध आणि इतर Google सेवा पर्सनलाइझ करण्यासाठी Google तुमच्या ब्राउझिंग इतिहासाचा कसा वापर करू शकते ते नियंत्रित करा. -+Google ने सुचविलेली पर्सनलाइझ आशय मिळविण्यासाठी, Chrome मध्ये साइन इन करा. -+तुमच्या सर्व डिव्हाइसवर तुमचे बुकमार्क, पासवर्ड आणि अधिक मिळवण्यासाठी Chromeमध्ये साइन इन करा. -+आपल्या सर्व डिव्हाइसेसवर तुमचे बुकमार्क प्राप्त करण्यासाठी, Chrome मध्ये साइन इन करा. -+नेव्हिगेशन एरर सूचना -+वेब पत्ता निराकरण करत नाही किंवा कनेक्शन केले जाऊ शकत नाही तेव्हा सूचना दर्शवा -+Chrome मधून साइन आउट करायचे? -+पेज पूर्वानुमान वापरा -+साइन आउट करा -+तुमचे बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज मधील बदल यापुढे आपल्या Google खात्यात संकालित केले जाणार नाहीत. तथापि, तुमचा विद्यमान डेटा आपल्या Google खात्यात संचयित केलेला असेल. -+शोध, जाहिरात आणि इतर Google सेवा पर्सनलाइझ करण्यासाठी Google तुमच्या ब्राउझिंग इतिहासाचा कसा वापर करते ते नियंत्रित करा. -+शोध आणि URL सूचना -+तुम्ही अ‍ॅड्रेस बारमध्ये टाइप करता त्याप्रमाणे संबंधित क्वेरी आणि लोकप्रिय वेबसाइट दर्शविण्यासाठी एक पूर्वानुमान सेवा वापरा -+ वर संकालित करीत आहे -+Google ॲक्टिव्हिटी नियंत्रणे -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb -@@ -1045,4 +1045,21 @@ Sebagai contoh, sesetengah tapak web mungkin memberi respons kepada permintaan i - Tutup semua tab - Umum - Menu kad suapan ditutup -- -\ No newline at end of file -+Log masuk ke Chrome untuk mendapatkan tab daripada peranti anda yang lain. -+Pramuat halaman untuk pemuatan yang lebih cepat dan bacaan luar talian -+Kawal cara Google menggunakan sejarah penyemakan imbas anda untuk memperibadikan Carian dan perkhidmatan Google yang lain. -+Untuk mendapatkan kandungan diperibadikan yang dicadangkan oleh Google, log masuk ke Chrome. -+Log masuk ke Chrome untuk mendapatkan penanda halaman, kata laluan anda dan pelbagai lagi pada semua peranti anda. -+Log masuk ke Chrome untuk mendapatkan penanda halaman pada semua peranti anda. -+Cadangan ralat navigasi -+Tunjukkan cadangan apabila alamat web tidak selesai atau sambungan tidak boleh dibuat -+Log keluar daripada Chrome? -+Gunakan ramalan halaman -+Log keluar -+Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Walau bagaimanapun, data sedia ada akan kekal disimpan dalam akaun Google anda. -+Kawal cara Google menggunakan sejarah penyemakan imbas anda untuk memperibadikan Carian, iklan dan perkhidmatan Google yang lain. -+Cadangan carian dan URL -+Gunakan khidmat ramalan untuk menunjukkan pertanyaan berkaitan dan tapak web popular semasa anda menaip dalam bar alamat -+Menyegerakkan ke -+Kawalan Aktiviti 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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb -@@ -1045,4 +1045,21 @@ Zo kunnen sommige websites op dit verzoek reageren door advertenties weer te gev - Alle tabbladen sluiten - Algemeen - Feedkaartmenu is gesloten -- -\ No newline at end of file -+Log in bij Chrome om de tabbladen van je andere apparaten te bekijken. -+Pagina's vooraf laden voor sneller laden en offline lezen -+Beheer hoe Google je browsegeschiedenis gebruikt om Google Zoeken en andere Google-services te personaliseren. -+Log in bij Chrome om suggesties met gepersonaliseerde content van Google te ontvangen. -+Log in bij Chrome om je bladwijzers, wachtwoorden en meer op al je apparaten te gebruiken. -+Log in bij Chrome om al je bladwijzers op al je apparaten te bekijken. -+Suggesties bij navigatiefouten -+Suggesties weergeven wanneer een webadres onjuist is of er geen verbinding kan worden gemaakt -+Uitloggen bij Chrome? -+Paginavoorspellingen gebruiken -+Uitloggen -+Wijzigingen in je bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden niet meer gesynchroniseerd met je Google-account. Je bestaande gegevens blijven echter opgeslagen in je Google-account. -+Beheer hoe Google je browsegeschiedenis gebruikt om Google Zoeken, advertenties en andere Google-services te personaliseren. -+Zoek- en URL-suggesties -+Een voorspellingsservice gebruiken om gerelateerde zoekopdrachten en populaire websites te tonen terwijl je in de adresbalk typt -+Synchroniseren met -+Google-activiteitsopties -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb -@@ -1045,4 +1045,21 @@ Noen nettsteder kan for eksempel svare på denne forespørselen ved å vise deg - Lukk alle faner - Generelt - Feedkortmenyen er lukket -- -\ No newline at end of file -+For å få fanene dine fra de andre enhetene du bruker, logg på Chrome. -+Last inn sider på forhånd for raskere innlasting og lesing uten nett -+Kontrollér hvordan Google bruker nettlesingsloggen din for å gi Søk og andre Google-tjenester et personlig preg. -+For å få forslag om personlig tilpasset innhold fra Google, logg på Chrome. -+Logg på Chrome for å hente blant annet bokmerkene og passordene dine på alle enhetene du bruker. -+Logg på Chrome for å få bokmerkene dine på alle enhetene du bruker. -+Forslag ved navigasjonsfeil -+Vis forslag når en nettadresse ikke fungerer eller en tilkobling ikke kan opprettes -+Vil du logge av Chrome? -+Bruk sideforslag -+Logg av -+Endringer i bokmerker, loggoppføringer, passord og andre innstillinger blir ikke synkronisert med Google-kontoen din lenger. Data som allerede er lagret i Google-kontoen din, blir imidlertid ikke fjernet. -+Kontrollér hvordan Google bruker nettlesingsloggen din for å gi Søk, annonser og andre Google-tjenester et personlig preg. -+Nettadresse- og søkeforslag -+Bruk en forslagstjeneste for å vise relaterte søkeord og populære nettsteder mens du skriver i adressefeltet -+Synkroniserer til -+Google Aktivitetslagring -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb -@@ -1045,4 +1045,21 @@ Na przykład niektóre strony mogą na nie zareagować, wyświetlając reklamy b - Zamknij wszystkie karty - Ogólne - Menu karty kanału jest zamknięte -- -\ No newline at end of file -+Aby korzystać z kart ze swoich innych urządzeń, zaloguj się w Chrome. -+Ładuj wstępnie strony, by szybciej się wczytywały i były dostępne do czytania w trybie offline -+Określ, jak Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania i działanie innych usług. -+Aby uzyskać dostęp do spersonalizowanej treści proponowanej przez Google, zaloguj się w Chrome. -+Zaloguj się w Chrome, by mieć dostęp do swoich zakładek, haseł i innych ustawień na wszystkich swoich urządzeniach. -+Aby korzystać ze swoich zakładek na wszystkich urządzeniach, zaloguj się w Chrome. -+Podpowiedzi przy błędach nawigacji -+Pokazuj podpowiedzi, gdy nie można znaleźć adresu internetowego lub nawiązać połączenia -+Wylogować z Chrome? -+Używaj przewidywania stron -+Wyloguj się -+Zmiany w zakładkach, historii, hasłach i innych ustawieniach nie będą już synchronizowane z kontem Google. Twoje obecne dane będą jednak nadal na nim przechowywane. -+Określ, jak Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania, reklamy i działanie innych usług. -+Podpowiedzi wyszukiwania i adresów URL -+Gdy piszesz na pasku adresu, korzystaj z podpowiedzi, by wyświetlać podobne zapytania i adresy popularnych stron -+Synchronizacja z kontem -+Zarządzanie aktywnością w Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb -@@ -1046,4 +1046,21 @@ Por exemplo, alguns sites podem responder a esse pedido mostrando anúncios que - Fechar todas as guias - Geral - O menu do card do feed está fechado -- -\ No newline at end of file -+Para ver as guias dos seus outros dispositivos, faça login no Chrome. -+Pré-carrega as páginas para um carregamento mais rápido e leitura off-line -+Controle a maneira como o Google usa seu histórico de navegação para personalizar a Pesquisa e outros serviços do Google. -+Para receber conteúdo personalizado sugerido pelo Google, faça login no Chrome. -+Faça login no Chrome para ver seus favoritos, senhas e muito mais em todos os seus dispositivos. -+Para ter seus favoritos em todos os seus dispositivos, faça login no Chrome. -+Sugerir opções quando houver erro de navegação -+Mostra sugestões quando houver falha em um endereço da Web ou uma conexão não puder ser estabelecida -+Sair do Google Chrome? -+Usar predições de páginas -+Sair -+Alterações feitas nos seus favoritos, histórico, senhas e outras configurações não serão mais sincronizadas com sua Conta do Google. No entanto, os dados já existentes permanecerão armazenados na Conta do Google. -+Controle a maneira como o Google usa seu histórico de navegação para personalizar a Pesquisa Google, os anúncios e outros serviços nossos. -+Sugestões de pesquisa e URL -+Prevê as palavras da consulta à medida que você digita -+Sincronizando com -+Controles de atividades do Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb -@@ -1045,4 +1045,21 @@ Por exemplo, alguns Sites podem responder a este pedido ao mostrar-lhe anúncios - Fechar todos os separadores - Geral - O menu do cartão do feed está fechado. -- -\ No newline at end of file -+Para obter os separadores dos seus outros dispositivos, inicie sessão no Chrome. -+Pré-carregar páginas para um carregamento mais rápido e para leitura offline -+Controle a forma como a Google utiliza o seu histórico de navegação para personalizar a Pesquisa Google e outros serviços Google. -+Para obter conteúdo personalizado sugerido pelo Google, inicie sessão no Chrome. -+Inicie sessão no Chrome para obter os seus marcadores, palavras-passe e muito mais em todos os dispositivos. -+Para obter os seus marcadores em todos os dispositivos, inicie sessão no Chrome. -+Sugestões de erros de navegação -+Mostrar sugestões quando um endereço Web não responder ou não for possível estabelecer ligação -+Pretende terminar sessão no Chrome? -+Utilizar previsões de páginas -+Terminar sessão -+As alterações aos marcadores, ao histórico, às palavras-passe e a outras definições deixam de ser sincronizadas com a Conta Google. Contudo, os dados existentes permanecem armazenados na Conta Google. -+Controle a forma como a Google utiliza o seu histórico de navegação para personalizar a Pesquisa Google, os anúncios e outros serviços Google. -+Pesquisa e sugestões de URL -+Utilizar um serviço de previsão para mostrar consultas relacionadas e Sites populares à medida que escreve na barra de endereço -+A sincronizar com -+Controlos da atividade Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb -@@ -1045,4 +1045,21 @@ De exemplu, unele site-uri pot răspunde la această solicitare afișând anunț - Închide toate filele - General - Meniul cardului din feed este închis -- -\ No newline at end of file -+Pentru a accesa filele de pe alte dispozitive, conectează-te la Chrome. -+Preîncarcă paginile pentru încărcare mai rapidă și lectură offline -+Controlează cum poate folosi Google istoricul de navigare pentru a personaliza Căutarea și alte servicii Google. -+Pentru a obține sugestii de conținut personalizat de la Google, conectează-te la Chrome. -+Conectează-te la Chrome pentru a accesa marcajele, parolele și altele pe toate dispozitivele tale. -+Pentru a accesa marcajele pe toate dispozitivele, conectează-te la Chrome. -+Sugestii pentru erori de navigare -+Afișează sugestii atunci când o adresă web nu se rezolvă sau nu poate fi stabilită o conexiune -+Te deconectezi de la Chrome? -+Folosește predicțiile pentru pagini -+Deconectează-te -+Modificările marcajelor, istoricului, parolelor sau ale altor setări nu vor mai fi sincronizate cu Contul Google. Totuși, datele existente vor rămâne stocate în Contul Google. -+Stabilește cum poate folosi Google istoricul de navigare pentru a personaliza Căutarea, anunțurile și alte servicii Google. -+Sugestii de căutare și pentru adrese URL -+Folosește un serviciu de predicții pentru a afișa interogări similare și site-uri populare în timp ce introduci text în bara de adrese. -+Se sincronizează cu -+Opțiuni privind activitatea Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb -@@ -1045,4 +1045,21 @@ - Закрыть все вкладки - Общие - Меню карточки из ленты закрыто -- -\ No newline at end of file -+Чтобы получить доступ к вкладкам на всех ваших устройствах, войдите в Chrome. -+Загружать страницы предварительно для повышения скорости работы и просмотра офлайн -+Укажите, как Google может использовать историю просмотров для персонализации Поиска и других сервисов. -+Чтобы мы могли рекомендовать вам интересный контент, войдите в свой аккаунт в Chrome. -+Войдите в Chrome, чтобы синхронизировать закладки, пароли и другую информацию на всех ваших устройствах. -+Чтобы получить доступ к закладкам на всех ваших устройствах, войдите в Chrome. -+Подсказки при ошибке навигации -+Предлагать альтернативы, если веб-адрес недоступен или с ним не удается установить соединение -+Выйти из Chrome? -+Загружать страницы предварительно -+Выйти -+Изменения в ваших закладках, паролях, истории и других настройках больше не будут синхронизироваться с аккаунтом Google. Это изменение не затронет данные, сохраненные в аккаунте ранее. -+Укажите, как Google может использовать историю браузера для персонализации Поиска, Рекламы и других сервисов. -+Поиск и предложения URL -+Показывать подсказки с похожими запросами и часто посещаемыми сайтами по мере ввода в адресную строку -+Синхронизация с аккаунтом -+Отслеживание действий в Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb -@@ -1045,4 +1045,21 @@ Niektoré weby môžu napríklad na túto žiadosť reagovať tak, že vám zobr - Zavrieť všetky karty - Všeobecné - Ponuka karty feedu je zatvorená -- -\ No newline at end of file -+Ak chcete získať karty z ďalších svojich zariadení, prihláste sa do Chromu. -+Vopred načítavať stránky na zrýchlenie načítania a offline čítania -+Nastavte, ako má Google používať vašu históriu prehliadania na prispôsobenie Vyhľadávania a ďalších služieb Googlu. -+Ak chcete získavať prispôsobený obsah navrhnutý Googlom, prihláste sa do Chromu. -+Prihláste sa do Chromu a získajte svoje záložky, heslá a ďalšie nastavenia na všetkých zariadeniach. -+Ak chcete mať záložky na všetkých zariadeniach, prihláste sa do Chromu. -+Návrhy v prípade chýb navigácie -+Zobrazovať návrhy, ak sa nedá nájsť webová adresa alebo nadviazať spojenie -+Odhlásiť sa z Chromu? -+Používať predpovede stránok -+Odhlásiť sa -+Záložky, história, heslá a ďalšie nastavenia sa už nebudú ďalej synchronizovať do vášho účtu Google. Vaše súčasné údaje však zostanú v účte Google zachované. -+Nastavte, ako má Google používať vašu históriu prehliadania na prispôsobenie Vyhľadávania, reklám a ďalších služieb Googlu. -+Návrhy dopytov a webových adries -+Predpovedať súvisiace dopyty a populárne weby pri zadávaní textu do panela s adresou -+Synchronizácia do účtu -+Riadenie aktivity Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb -@@ -1045,4 +1045,21 @@ Nekatera spletna mesta se lahko na primer na zahtevo odzovejo tako, da prikažej - Zapri vse zavihke - Splošno - Meni kartice vira je zaprt -- -\ No newline at end of file -+Če želite dostopati do zavihkov v drugih napravah, se prijavite v Chrome. -+Vnaprejšnje nalaganje strani za hitrejše nalaganje in branje brez povezave -+Nadzirajte, kako Google na podlagi vaše zgodovine brskanja prilagaja Iskanje Google in druge Googlove storitve. -+Če želite prejemati prilagojeno vsebino, ki jo predlaga Google, se prijavite v Chrome. -+Prijavite se v Chrome, če želite dostopati do svojih zaznamkov, gesel in drugega v vseh napravah. -+Če želite dostopati do zaznamkov v vseh napravah, se prijavite v Chrome. -+Predlogi za napake pri krmarjenju -+Pokaži predloge, ko spletnega naslova ni mogoče najti ali povezave ni mogoče vzpostaviti -+Se želite odjaviti iz Chroma? -+Uporabite predvidevanja strani -+Odjava -+Spremembe zaznamkov, zgodovine, gesel in drugih nastavitev ne bodo več sinhronizirane z Google Računom. Obstoječi podatki bodo še naprej shranjeni v Google Računu. -+Nadzirajte, kako Google na podlagi vaše zgodovine brskanja prilagaja Iskanje Google, oglase in druge Googlove storitve. -+Predlogi za iskanje in URL-je -+Uporabite storitev predvidevanja za prikaz povezanih poizvedb in priljubljenih spletnih mest med vnašanjem v naslovno vrstico -+Sinhronizacija z računom -+Googlovi kontrolniki za dejavnost -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb -@@ -1045,4 +1045,21 @@ Google налог можда има друге облике историје п - Затвори све картице - Опште - Мени картице фида је затворен -- -\ No newline at end of file -+Да би вам картице биле доступне на другим уређајима, пријавите се у Chrome. -+Странице се учитавају унапред за брже учитавање и офлајн читање -+Контролишите како Google користи историју прегледања за персонализацију Претраге и других Google услуга -+Да бисте добијали персонализовани садржај који предлаже Google, пријавите се у Chrome. -+Пријавите се у Chrome да би вам обележивачи, лозинке и други садржај били доступни на свим уређајима. -+Да би вам обележивачи били доступни на свим уређајима, пријавите се у Chrome. -+Предлози за грешке при навигацији -+Приказивање предлога када се веб-адреса не разреши или када није могуће успоставити везу -+Желите ли да се одјавите из Chrome-а? -+Користите предвиђања страница -+Одјави ме -+Промене обележивача, историје, лозинки и других подешавања се више неће синхронизовати са Google налогом. Међутим, постојећи подаци ће остати сачувани на Google налогу. -+Контролишите како Google користи историју прегледања за персонализацију Претраге, огласа и других Google услуга. -+Предлози за претрагу и URL-ове -+Коришћење услуге предвиђања за приказивање сродних упита и популарних веб-сајтова док куцате у траци за адресу -+Синхронизује се са -+Google контроле активности -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb -@@ -1045,4 +1045,21 @@ Vissa webbplatser kan till exempel svara på begäran genom att visa annonser so - Stäng alla flikar - Allmänt - Menyn med flödeskort är stängd -- -\ No newline at end of file -+Logga in i Chrome om du vill ha samma flikar tillgängliga på alla enheter. -+Genom att läsa in sidor i förväg går det snabbare att läsa in sidor och läsa offline -+Styr hur Google anpassar Sök och andra Google-tjänster utifrån webbhistoriken. -+Logga in i Chrome om du vill få förslag på anpassat innehåll från Google. -+Logga in i Chrome om du vill få dina bokmärken, lösenord med mera på alla dina enheter. -+Logga in i Chrome om du vill få tillgång till samma bokmärken på alla enheter. -+Förslag vid navigeringsfel -+Visa förslag när det inte går att öppna en webbadress eller upprätta en anslutning -+Vill du logga ut från Chrome? -+Använd sidförslag -+Logga ut -+Ändringar i bokmärken, historik, lösenord och andra inställningar synkroniseras inte längre med ditt Google-konto. Befintlig data fortsätter dock att lagras i Google-kontot. -+Styr hur Google anpassar Sök, annonser och andra Google-tjänster utifrån webbhistoriken. -+Sökning och webbadressförslag -+Använd en tjänst som ger förslag på relaterade sökfrågor och populära webbplatser när du skriver i adressfältet -+Synkroniseras med -+Googles aktivitetsinställningar -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb -@@ -1045,4 +1045,21 @@ Kwa mfano, baadhi ya tovuti zinaweza kujibu ombi hili kwa kukuonyesha matangazo - Funga vichupo vyote - Jumla - Menyu ya kadi ya mipasho imefungwa -- -\ No newline at end of file -+Ili upate vichupo kutoka kwenye vifaa vyako vingine, ingia katika Chrome. -+Pakia mapema kurasa ili zipakie kwa haraka na kwa usomaji wa nje ya mtandao -+Dhibiti namna Google inavyotumia historia yako ya kuvinjari ili uweke mapendeleo kwenye huduma ya Tafuta na huduma nyingine za Google. -+Ili Google ikupendekezee maudhui yanayokufaa, ingia katika Chrome. -+Ingia katika Chrome ili upate alamisho, manenosiri yako na mengine mengi kwenye vifaa vyako vyote. -+Ingia katika Chrome ili upate alamisho zako kwenye vifaa vyako vyote. -+Mapendekezo ya hitilafu ya kuelekea unapotaka -+Onyesha mapendekezo wakati anwani ya wavuti inaposhindwa kutatuliwa au muunganisho ukiwa hauwezi kufanyika -+Ungependa kuondoka kwenye Chrome? -+Tumia utabiri wa ukurasa -+Ondoka -+Mabadiliko kwenye alamisho, historia, manenosiri na mipangilio yako mingine haitasawazishwa tena kwenye Akaunti yako ya Google. Hata hivyo, data yako iliyopo itaendelea kuhifadhiwa katika akaunti yako ya Google. -+Dhibiti namna Google inavyotumia historia ya jinsi unavyovinjari ili kuweka mapendeleo kwenye huduma ya Tafuta na Google, matangazo na huduma nyingine za Google. -+Mapendekezo ya utafutaji na URL -+Tumia huduma ya ubashiri ili kuonyesha hoja zinazohusiana na tovuti maarufu unapocharaza katika sehemu ya anwani -+Inasawazisha kwenye -+Vidhibiti vya Shughuli za Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb -@@ -1045,4 +1045,21 @@ - எல்லா தாவல்களையும் மூடு - பொது - ஃபீட் கார்டு மெனு மூடப்பட்டுள்ளது -- -\ No newline at end of file -+உங்கள் பிற சாதனங்களிலிருந்து தாவல்களைப் பெற, Chrome இல் உள்நுழையவும். -+விரைவாக ஏற்றுவதற்கும் ஆஃப்லைனில் படிப்பதற்கும் பக்கங்களை முன்னதாக ஏற்றும் -+தேடல் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் உலாவல் வரலாற்றை Google எவ்வாறு பயன்படுத்துகிறது என்பதைக் கட்டுப்படுத்தலாம். -+Google பரிந்துரைக்கும் தனிப்பயனாக்கிய உள்ளடக்கத்தைப் பெற, Chrome இல் உள்நுழையவும். -+உங்கள் எல்லாச் சாதனங்களிலும் உங்கள் புக்மார்க்குகள், கடவுச்சொற்கள் மற்றும் பலவற்றைப் பெற, Chrome இல் உள்நுழையவும். -+உங்கள் எல்லா சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, Chrome இல் உள்நுழையவும். -+வழிநடத்தல் பிழை பரிந்துரைகள் -+இணைய முகவரியைத் தீர்க்க முடியாதபோது அல்லது இணைப்பை உருவாக்க முடியவில்லையெனில் பரிந்துரைகளைக் காட்டு -+Chrome இலிருந்து வெளியேறவா? -+பக்கக் கணிப்புகளைப் பயன்படுத்தவும் -+வெளியேறு -+புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் ஆகியவற்றிலும் பிற அமைப்புகளிலும் செய்யும் மாற்றங்கள், இனி உங்கள் Google கணக்குடன் ஒத்திசைக்கப்படாது. எனினும், ஏற்கனவே சேமிக்கப்பட்ட உங்கள் தரவு Google கணக்கில் அப்படியே இருக்கும். -+தேடல், விளம்பரங்கள் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் உலாவல் வரலாற்றை Google எவ்வாறு பயன்படுத்துகிறது என்பதைக் கட்டுப்படுத்தலாம். -+தேடலும் URL பரிந்துரைகளும் -+முகவரிப்பட்டியில் நீங்கள் உள்ளிடும்போதே தொடர்புடைய கேள்விகளையும், பிரபலமான இணையதளங்களையும் காட்டுவதற்கு, யூக சேவையைப் பயன்படுத்தவும் -+ உடன் ஒத்திசைக்கிறது -+Google செயல்பாட்டுக் கட்டுப்பாடுகள் -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb -@@ -1045,4 +1045,21 @@ - అన్ని ట్యాబ్‌లను మూసివేయి - సాధారణం - ఫీడ్ కార్డ్ మెనూ మూసివేయబడింది -- -\ No newline at end of file -+మీ ఇతర పరికరాల నుండి మీ ట్యాబ్‌లను పొందడానికి, Chromeకు సైన్ ఇన్ చేయండి. -+వేగమైన లోడింగ్, ఆఫ్‌లైన్‌లో చదవడం కోసం పేజీలను ప్రీలోడ్ చేయండి -+శోధన మరియు ఇతర Google సేవలను వ్యక్తిగతీకరించడం కోసం Google మీ బ్రౌజింగ్ చరిత్రను ఉపయోగించే విధానాన్ని నియంత్రించండి. -+Google సూచించే వ్యక్తిగతీకరించిన కంటెంట్‌ను పొందడానికి, Chromeకు సైన్ ఇన్ చేయండి. -+మీ పరికరాలన్నింటిలో మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు మరియు మరిన్నింటిని పొందడానికి Chromeకు సైన్ ఇన్ చేయండి. -+మీ అన్ని పరికరాలలో మీ బుక్‌మార్క్‌లను పొందడానికి, Chromeకు సైన్ ఇన్ చేయండి. -+నావిగేషన్ ఎర్రర్ సూచనలు -+వెబ్ చిరునామా సంశయాత్మకంగా ఉన్నప్పుడు లేదా కనెక్షన్ సాధ్యం కానప్పుడు సూచనలను చూపుతుంది -+Chrome నుండి సైన్ అవుట్ చేయాలా? -+పేజీ సూచనలను ఉపయోగించండి -+సైన్ ఔట్ -+మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌లకు చేసే మార్పులు ఇకపై మీ Google ఖాతాకు సింక్ చేయ‌బడవు. అయితే, ఇప్పటికే ఉన్న మీ డేటా మీ Google ఖాతాలో అలాగే నిల్వ చేయబడి ఉంటుంది. -+శోధన, ప్రకటనలు మరియు ఇతర Google సేవలను వ్యక్తిగతీకరించడం కోసం Google మీ బ్రౌజింగ్ చరిత్రను ఉపయోగించే విధానాన్ని నియంత్రించండి. -+శోధన మరియు URL సూచనలు -+మీరు చిరునామా పట్టీలో టైప్ చేస్తున్నప్పుడు సంబంధిత ప్రశ్నలను మరియు జనాదరణ పొందిన వెబ్‌సైట్‌లను చూపడానికి సూచన సేవను ఉపయోగించండి -+కు సమకాలీకరిస్తోంది -+Google కార్య‌క‌లాపాల నియంత్రణలు -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb -@@ -1045,4 +1045,21 @@ - ปิดแท็บทั้งหมด - ทั่วไป - เมนูของการ์ดฟีดปิดอยู่ -- -\ No newline at end of file -+ลงชื่อเข้าใช้ Chrome เพื่อรับแท็บจากอุปกรณ์เครื่องอื่นๆ ของคุณ -+โหลดหน้าเว็บไว้ล่วงหน้าเพื่อให้โหลดได้เร็วและไว้อ่านแบบออฟไลน์ -+ควบคุมวิธีที่ Google ใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยนการค้นหาในแบบของคุณและบริการอื่นๆ ของ Google -+หากต้องการรับคำแนะนำเนื้อหาที่เหมาะสำหรับคุณจาก Google ให้ลงชื่อเข้าใช้ Chrome -+ลงชื่อเข้าใช้ Chrome เพื่อรับบุ๊กมาร์ก รหัสผ่าน และข้อมูลอื่นๆ ในอุปกรณ์ทุกเครื่องของคุณ -+ลงชื่อเข้าใช้ Chrome เพื่อรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่องของคุณ -+คำแนะนำเมื่อเกิดข้อผิดพลาดในการนำทาง -+แสดงคำแนะนำเมื่อไม่สามารถระบุที่อยู่เว็บหรือไม่สามารถเชื่อมต่อได้ -+ต้องการออกจากระบบ Chrome ไหม -+ใช้การคาดคะเนหน้า -+ออกจากระบบ -+การเปลี่ยนแปลงบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะไม่ซิงค์กับบัญชี Google ของคุณอีกต่อไป อย่างไรก็ตาม ข้อมูลที่คุณมีจะยังคงจัดเก็บอยู่ในบัญชี Google ของคุณ -+ควบคุมวิธีที่ Google ใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยนการค้นหา โฆษณา และบริการอื่นๆ ของ Google ในแบบของคุณ -+การค้นหาและคำแนะนำ URL -+ใช้บริการการคาดคะเนเพื่อแสดงคำค้นหาที่เกี่ยวข้องและเว็บไซต์ยอดนิยมขณะที่คุณพิมพ์ในแถบที่อยู่ -+กำลังซิงค์กับ -+ส่วนควบคุมกิจกรรมของ Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb -@@ -1045,4 +1045,21 @@ Bu ayarı değiştirmek için senkronizasyonu sıfırlay - Tüm sekmeleri kapat - Genel - Akış kartı menüsü kapalı -- -\ No newline at end of file -+Diğer cihazlarınızdaki sekmelerinize ulaşmak için Chrome'da oturum açın. -+Daha hızlı yükleme ve çevrimdışı okuma için sayfaları önceden yükle -+Google'ın, Arama ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi nasıl kullanacağını kontrol edin. -+Google tarafından önerilen kişiselleştirilmiş içeriği almak için Chrome'da oturum açın. -+Tüm cihazlarınızda yer işaretlerinizi, şifrelerinizi almak ve daha pek çok şey yapmak için Chrome'da oturum açın. -+Yer işaretlerinizi tüm cihazlarınızda almak için Chrome'da oturum açın. -+Gezinme hataları ile ilgili öneriler -+Bir web adresi çözümlenemezse veya bağlantı yapılamazsa öneriler göster -+Chrome oturumu kapatılsın mı? -+Sayfa tahminlerini kullan -+Çıkış -+Yer işaretleri, geçmiş, şifreler ve diğer ayarlarınızda yaptığınız değişiklikler artık Google Hesabınız ile senkronize edilmeyecek. Ancak, mevcut verileriniz Google hesabınızda saklanmaya devam edecek. -+Google'ın Arama, reklamlar ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi nasıl kullanacağını kontrol edin. -+Arama ve URL önerileri -+Adres çubuğuna yazarken ilgili sorguları ve popüler siteleri göstermek için bir tahmin hizmeti kullan -+ ile senkronize ediliyor -+Google Etkinlik Kontrolleri -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb -@@ -1045,4 +1045,21 @@ - Закрити всі вкладки - Загальне - Меню картки зі стрічки закрито -- -\ No newline at end of file -+Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис Chrome. -+Попередньо завантажує сторінки, щоб швидше завантажувати та переглядати їх у режимі офлайн -+Укажіть, як Google має використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук та інші служби Google. -+Щоб отримувати персоналізовані пропозиції від Google, увійдіть в обліковий запис Chrome. -+Увійдіть в обліковий запис у Chrome, щоб мати доступ до своїх закладок, паролів та інших даних на всіх пристроях. -+Щоб мати доступ до закладок на всіх своїх пристроях, увійдіть в обліковий запис Chrome. -+Пропозиції у випадку помилок навігації -+Показувати пропозиції, коли неможливо перейти за веб-адресою чи не вдається встановити з’єднання -+Вийти з Chrome? -+Використання передбачень сторінки -+Вийти -+Зміни в закладках, історії, паролях та інших налаштуваннях більше не синхронізуватимуться з вашим обліковим записом Google. Однак наявні дані залишаться у вашому обліковому записі Google. -+Укажіть, як Google може використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук, рекламні оголошення й інші сервіси Google. -+Пропозиції пошуку та URL-адрес -+Показувати підказки зі схожими запитами та популярними веб-сайтами під час введення запиту в адресному рядку -+Синхронізація з обліковим записом -+Відстеження дій у Google -+ -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 ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb -@@ -1045,4 +1045,21 @@ Ví dụ: một số trang web có thể phản hồi yêu cầu này bằng cá - Đóng tất cả các thẻ - Chung - Trình đơn thẻ nguồn cấp dữ liệu đang đóng -- -\ No newline at end of file -+Để có các tab từ các thiết bị khác của bạn, hãy đăng nhập vào Chrome. -+Tải trước trang để tải nhanh hơn và đọc ngoại tuyến -+Kiểm soát cách Google sử dụng lịch sử duyệt web của bạn để cá nhân hóa Tìm kiếm và các dịch vụ khác của Google. -+Để nhận nội dung được cá nhân hóa do Google đề xuất, hãy đăng nhập vào Chrome. -+Đăng nhập vào Chrome để nhận dấu trang, mật khẩu và nhiều nội dung khác trên tất cả các thiết bị của bạn. -+Để nhận dấu trang trên tất cả các thiết bị của bạn, hãy đăng nhập vào Chrome. -+Đề xuất cho lỗi điều hướng -+Hiển thị các đề xuất khi địa chỉ web không khắc phục được hoặc kết nối không thể được thực hiện -+Đăng xuất khỏi Chrome? -+Sử dụng truy vấn dự đoán trang -+Đăng xuất -+Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các tùy chọn cài đặt khác sẽ không đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong tài khoản Google của bạn. -+Kiểm soát cách Google sử dụng lịch sử duyệt web của bạn để cá nhân hóa Tìm kiếm, quảng cáo và các dịch vụ khác của Google. -+Đề xuất tìm kiếm và URL -+Sử dụng dịch vụ gợi ý để hiển thị các truy vấn có liên quan và các trang web phổ biến khi bạn nhập vào thanh địa chỉ -+Đang đồng bộ hóa với -+Kiểm soát hoạt động trên Google -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb -@@ -1045,4 +1045,21 @@ - 关闭所有标签页 - 常规 - 动态卡片上的菜单已关闭 -- -\ No newline at end of file -+要访问您在其他设备上的标签页,请登录 Chrome。 -+预加载网页,以便更快地加载并实现离线阅读 -+控制 Google 如何使用您的浏览记录对 Google 搜索和其他 Google 服务进行个性化设置。 -+要获取 Google 推荐的个性化内容,请登录 Chrome。 -+登录 Chrome 即可获取您在所有设备上保存的书签、密码等。 -+要将您的书签同步到您所有的设备上,请登录 Chrome。 -+导航错误建议 -+无法解析网址或无法建立连接时显示建议 -+退出 Chrome? -+使用网页联想查询功能 -+退出 -+对您的书签、历史记录、密码和其他设置所做的更改将不再同步到您的 Google 帐号。但是,您的现有数据将继续存储在您的 Google 帐号中。 -+控制 Google 如何利用您的浏览记录为您提供个性化的 Google 搜索、广告和其他 Google 服务。 -+搜索和网址建议 -+当您在地址栏中输入查询内容时,使用联想查询服务显示相关查询和热门网站 -+正在同步到 -+Google 活动控件 -+ -diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb ---- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb -+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb -@@ -1045,4 +1045,21 @@ - 關閉所有分頁 - 一般 - 已關閉動態消息資訊卡選單 -- -\ No newline at end of file -+如要存取您在其他裝置上開啟的分頁,請登入 Chrome。 -+預先載入網頁,以加快載入速度,並提供離線瀏覽功能 -+控制 Google 如何使用您的瀏覽記錄,為您提供個人化的搜尋服務和其他各項 Google 服務。 -+如要取得個人化的 Google 推薦內容,請登入 Chrome。 -+無論使用任何裝置,只要登入 Chrome,即可取得你的書籤、密碼,並沿用其他設定。 -+登入 Chrome 之後即可在你的所有裝置上使用自己的書籤。 -+瀏覽錯誤建議 -+在無法解析網址或建立連線時顯示建議 -+要登出 Chrome 嗎? -+使用網頁預測功能 -+登出 -+你更改過的書籤、歷史記錄、密碼和其他設定不會繼續與 Google 帳戶中的資料保持同步,但是 Google 帳戶現有的資料仍會保留。 -+控管 Google 使用您瀏覽記錄的方式,針對 Google 所提供的個人化搜尋服務、廣告內容和其他各項 Google 服務調整相關設定。 -+搜尋與網址建議 -+啟用預測查詢字串服務,讓您在網址列中輸入查詢內容時,能夠即時看到相關查詢和熱門網站 -+同步的帳戶: -+Google 活動控制項 -+ -diff --git a/chrome/browser/unified_consent/unified_consent_service_factory.cc b/chrome/browser/unified_consent/unified_consent_service_factory.cc ---- a/chrome/browser/unified_consent/unified_consent_service_factory.cc -+++ b/chrome/browser/unified_consent/unified_consent_service_factory.cc -@@ -36,10 +36,7 @@ std::vector GetSyncedServicePrefNames() { - return { - prefs::kSearchSuggestEnabled, embedder_support::kAlternateErrorPagesEnabled, - prefs::kSafeBrowsingEnabled, prefs::kSafeBrowsingScoutReportingEnabled, -- spellcheck::prefs::kSpellCheckUseSpellingService, --#if defined(OS_ANDROID) -- prefs::kContextualSearchEnabled --#endif -+ spellcheck::prefs::kSpellCheckUseSpellingService - }; - } - --- -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 516a1b94..dcc93b67 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,9 +13,9 @@ 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 -@@ -2564,6 +2564,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2836,6 +2836,10 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)}, - #endif // OS_MACOSX + #endif // OS_MAC #if defined(OS_ANDROID) + {"disable-pull-to-refresh-effect", + flag_descriptions::kPullToRefreshEffectName, @@ -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 -@@ -945,6 +945,11 @@ +@@ -890,6 +890,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 -@@ -2848,6 +2848,10 @@ const char kQueryTilesInstantFetchName[] = "Query tile instant fetch"; +@@ -3053,6 +3053,10 @@ const char kQueryTilesInstantFetchName[] = "Query tile instant fetch"; const char kQueryTilesInstantFetchDescription[] = "Immediately schedule background task to fetch query tiles"; @@ -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 -@@ -1650,6 +1650,9 @@ extern const char kQueryTilesCountryCodeIndonesia[]; +@@ -1762,6 +1762,9 @@ extern const char kQueryTilesCountryCodeIndonesia[]; extern const char kQueryTilesInstantFetchName[]; extern const char kQueryTilesInstantFetchDescription[]; diff --git a/build/patches/Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch b/build/patches/Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch index 039fb6ac..a503b22e 100644 --- a/build/patches/Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch +++ b/build/patches/Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch @@ -65,20 +65,20 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc #if !defined(OS_ANDROID) return kGpuFeatureStatusDisabled; #else -+ if (blacklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)) -+ return kGpuFeatureStatusBlacklisted; ++ if (blocklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)) ++ return kGpuFeatureStatusBlocklisted; + if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -371,6 +374,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { +@@ -374,6 +377,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] = - kGpuFeatureStatusBlacklisted; + kGpuFeatureStatusBlocklisted; } + + if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { + gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] = -+ kGpuFeatureStatusBlacklisted; ++ kGpuFeatureStatusBlocklisted; + } } @@ -92,14 +92,14 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list disable_accelerated_av1_decode +disable_aimagereader disable_accelerated_vp8_decode + disable_accelerated_vp8_encode disable_accelerated_vp9_decode - disable_async_readpixels diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -561,6 +561,12 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, - ui::OzonePlatform::GetInstance()->AfterSandboxEntry(); - #endif +@@ -708,6 +708,12 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, + AdjustInfoToSwiftShader(); + } +#if defined(OS_ANDROID) + // Disable AImageReader if the workaround is enabled. @@ -108,11 +108,11 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc + } +#endif #if defined(USE_OZONE) - gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing = - std::move(supported_buffer_formats_for_texturing); -@@ -587,6 +593,11 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, - DisableInProcessGpuVulkan(&gpu_feature_info_, &gpu_preferences_); - default_offscreen_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size()); + if (features::IsUsingOzonePlatform()) { + const std::vector +@@ -727,6 +733,11 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, + gl::DirectCompositionSurfaceWin::DisableDecodeSwapChain(); + #endif + // Disable AImageReader if the workaround is enabled. + if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { @@ -121,7 +121,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc + UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation()); } - #else + #endif // OS_ANDROID -- 2.17.1 diff --git a/build/patches/Rollback-dav1d-upgrades-that-break-x86.patch b/build/patches/Rollback-dav1d-upgrades-that-break-x86.patch deleted file mode 100644 index ece1adba..00000000 --- a/build/patches/Rollback-dav1d-upgrades-that-break-x86.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 22 Aug 2020 14:31:59 +0200 -Subject: Rollback dav1d upgrades that break x86 - -Revert "Roll src/third_party/dav1d/libdav1d/ 54f92068c..47daa4df3 (1 commit)" - -This reverts commit e6447f7294588dcab826736c267cdab094a1643e. - -Revert "Roll src/third_party/dav1d/libdav1d/ 07261e8c3..54f92068c (15 commits)" - -This reverts commit b47516cde6a4d570b4c29b761d31c26009f9611f. - -Revert "Roll src/third_party/dav1d/libdav1d/ b585f051c..07261e8c3 (39 commits)" - -This reverts commit d723c1391cd7f73dedfd97805f1503010edf06ad. ---- - DEPS | 2 +- - third_party/dav1d/dav1d_generated.gni | 4 +--- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/DEPS b/DEPS ---- a/DEPS -+++ b/DEPS -@@ -774,7 +774,7 @@ deps = { - Var('chromium_git') + '/angle/angle.git' + '@' + Var('angle_revision'), - - 'src/third_party/dav1d/libdav1d': -- Var('chromium_git') + '/external/github.com/videolan/dav1d.git' + '@' + '47daa4df3387c1529536243db80b81f3878cbf76', -+ Var('chromium_git') + '/external/github.com/videolan/dav1d.git' + '@' + 'b585f051c365bbada36bd066dd0a8a237fbf9dca', - - 'src/third_party/dawn': - Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), -diff --git a/third_party/dav1d/dav1d_generated.gni b/third_party/dav1d/dav1d_generated.gni ---- a/third_party/dav1d/dav1d_generated.gni -+++ b/third_party/dav1d/dav1d_generated.gni -@@ -20,7 +20,7 @@ x86_asm_sources = [ - "libdav1d/src/x86/looprestoration.asm", - "libdav1d/src/x86/looprestoration_ssse3.asm", - "libdav1d/src/x86/mc.asm", -- "libdav1d/src/x86/mc_sse.asm", -+ "libdav1d/src/x86/mc_ssse3.asm", - "libdav1d/src/x86/msac.asm", - ] - -@@ -37,11 +37,9 @@ x86_template_sources = [ - arm32_asm_sources = [ - "libdav1d/src/arm/32/cdef.S", - "libdav1d/src/arm/32/ipred.S", -- "libdav1d/src/arm/32/itx.S", - "libdav1d/src/arm/32/loopfilter.S", - "libdav1d/src/arm/32/looprestoration.S", - "libdav1d/src/arm/32/mc.S", -- "libdav1d/src/arm/32/msac.S", - "libdav1d/src/arm/32/util.S", - ] - --- -2.17.1 - diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies.patch similarity index 68% rename from build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch rename to build/patches/Show-site-settings-for-cookies.patch index 71969d21..ff915e8a 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies.patch @@ -1,26 +1,26 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 28 Dec 2019 10:23:04 +0100 -Subject: Show site settings for cookies, javascript and ads +Subject: Show site settings for cookies Avoid displaying info about intrusive ads --- - .../site_settings/SingleWebsiteSettings.java | 59 +++++++++---------- - .../browser_ui/site_settings/Website.java | 20 +++++++ - 2 files changed, 47 insertions(+), 32 deletions(-) + .../site_settings/SingleWebsiteSettings.java | 58 +++++++++---------- + .../browser_ui/site_settings/Website.java | 14 +++-- + 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -349,6 +349,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -418,6 +418,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpSoundPreference(preference); - } else if (i == ContentSettingException.Type.JAVASCRIPT) { + } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); -+ } else if (i == ContentSettingException.Type.COOKIE) { ++ } else if (type == ContentSettingsType.COOKIES) { + setUpCookiePreference(preference); } else { // ContentSettingException can not be embargoed. - setUpListPreference(preference, mSite.getContentSettingPermission(i), -@@ -671,19 +673,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment + setUpListPreference(preference, mSite.getContentSettingPermission(type), +@@ -727,18 +729,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment } private void setUpAdsInformationalBanner() { @@ -30,8 +30,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - && WebsitePreferenceBridge.getAdBlockingActivated( - getSiteSettingsClient().getBrowserContextHandle(), - mSite.getAddress().getOrigin()) -- && findPreference(PERMISSION_PREFERENCE_KEYS[ContentSettingException.Type.ADS]) -- != null; +- && findPreference(getPreferenceKey(ContentSettingsType.ADS)) != null; - - if (!adBlockingActivated) { - removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); @@ -42,10 +41,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private SiteSettingsCategory getWarningCategory() { -@@ -838,13 +829,29 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -899,13 +891,29 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment + @ContentSettingValues @Nullable - Integer currentValue = - mSite.getContentSettingPermission(ContentSettingException.Type.JAVASCRIPT); + Integer currentValue = mSite.getContentSettingPermission(ContentSettingsType.JAVASCRIPT); - // If Javascript is blocked by default, then always show a Javascript permission. - // To do this, set it to the default value (blocked). - if ((currentValue == null) @@ -68,7 +67,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + @ContentSettingValues + @Nullable + Integer currentValue = -+ mSite.getContentSettingPermission(ContentSettingException.Type.COOKIE); ++ mSite.getContentSettingPermission(ContentSettingsType.COOKIES); + // Always show the cookies permission + if (currentValue == null) { + currentValue = WebsitePreferenceBridge.isCategoryEnabled( @@ -79,7 +78,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Not possible to embargo JAVASCRIPT. setUpListPreference(preference, currentValue, false /* isEmbargoed */); -@@ -863,22 +870,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -924,22 +932,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment setUpListPreference(preference, null, false); return; } @@ -89,7 +88,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - getSiteSettingsClient().getBrowserContextHandle(), mSite.getAddress().getOrigin()); @ContentSettingValues @Nullable - Integer permission = mSite.getContentSettingPermission(ContentSettingException.Type.ADS); + Integer permission = mSite.getContentSettingPermission(ContentSettingsType.ADS); - // If |permission| is null, there is no explicit (non-default) permission set for this site. - // If the site is not considered a candidate for blocking, do the standard thing and remove @@ -105,33 +104,29 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -220,6 +220,26 @@ public class Website implements Serializable { - } else { - RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings"); +@@ -197,13 +197,17 @@ public final class Website implements Serializable { + // ContentSettingsType. + ContentSettingException exception = getContentSettingException(type); + if (type == ContentSettingsType.ADS) { +- // It is possible to set the permission without having an existing exception, +- // because we can show the BLOCK state even when this permission is set to the +- // default. In that case, just set an exception now to BLOCK to enable changing the +- // permission. ++ // It is possible to set the permission without having an existing exception + if (exception == null) { + exception = new ContentSettingException(ContentSettingsType.ADS, +- getAddress().getOrigin(), ContentSettingValues.BLOCK, ""); ++ getAddress().getOrigin(), value, ""); ++ setContentSettingException(type, exception); ++ } ++ } else if (type == ContentSettingsType.COOKIES) { ++ // It is possible to set the permission without having an existing exception ++ if (exception == null) { ++ exception = new ContentSettingException(ContentSettingsType.COOKIES, ++ getAddress().getOrigin(), value, ""); + setContentSettingException(type, exception); } -+ } else if (type == ContentSettingException.Type.COOKIE) { -+ // It is possible to set the permission without having an existing exception, -+ // because we can show the ALLOW state even when this permission is set to the -+ // default. In that case, just set an exception now to ALLOW to enable changing the -+ // permission. -+ if (mContentSettingException[type] == null) { -+ mContentSettingException[type] = -+ new ContentSettingException(ContentSettingsType.COOKIES, -+ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); -+ } -+ } else if (type == ContentSettingException.Type.JAVASCRIPT) { -+ // It is possible to set the permission without having an existing exception, -+ // because we can show the ALLOW state even when this permission is set to the -+ // default. In that case, just set an exception now to ALLOW to enable changing the -+ // permission. -+ if (mContentSettingException[type] == null) { -+ mContentSettingException[type] = -+ new ContentSettingException(ContentSettingsType.JAVASCRIPT, -+ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); -+ } - } else if (type == ContentSettingException.Type.SOUND) { - // It is possible to set the permission without having an existing exception, - // because we always show the sound permission in Site Settings. + } else if (type == ContentSettingsType.JAVASCRIPT) { -- 2.17.1 diff --git a/build/patches/Skip-the-first-run-and-metrics.patch b/build/patches/Skip-the-first-run-and-metrics.patch index a2dfa13d..7d6044f4 100644 --- a/build/patches/Skip-the-first-run-and-metrics.patch +++ b/build/patches/Skip-the-first-run-and-metrics.patch @@ -3,15 +3,15 @@ Date: Sun, 26 Nov 2017 22:51:43 +0100 Subject: Skip the first run and metrics --- - .../chrome/browser/firstrun/FirstRunStatus.java | 11 +++++------ - .../chrome/browser/firstrun/FirstRunUtils.java | 15 +++++---------- - .../firstrun/ToSAndUMAFirstRunFragment.java | 6 ++++-- - 3 files changed, 14 insertions(+), 18 deletions(-) + .../chrome/browser/firstrun/FirstRunStatus.java | 11 +++++------ + .../chrome/browser/firstrun/FirstRunUtils.java | 3 --- + .../browser/firstrun/ToSAndUMAFirstRunFragment.java | 13 ------------- + 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java -@@ -31,12 +31,11 @@ public class FirstRunStatus { +@@ -61,12 +61,11 @@ public class FirstRunStatus { * includes ToS and Sign In pages if necessary. */ public static boolean getFirstRunFlowComplete() { @@ -32,52 +32,45 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java -@@ -37,16 +37,11 @@ public class FirstRunUtils { +@@ -37,15 +37,12 @@ public class FirstRunUtils { boolean javaPrefValue = javaPrefs.readBoolean(ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED, false); boolean nativePrefValue = isFirstRunEulaAccepted(); -- boolean userHasSeenTos = -- ToSAckedReceiver.checkAnyUserHasSeenToS(); - boolean isFirstRunComplete = FirstRunStatus.getFirstRunFlowComplete(); -- if (javaPrefValue || nativePrefValue || userHasSeenTos || isFirstRunComplete) { -- if (!javaPrefValue) { -- javaPrefs.writeBoolean(ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED, true); -- } -- if (!nativePrefValue) { -- setEulaAccepted(); -- } -+ if (!javaPrefValue) { -+ javaPrefs.writeBoolean(ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED, true); -+ } -+ if (!nativePrefValue) { -+ setEulaAccepted(); - } +- if (javaPrefValue || nativePrefValue || isFirstRunComplete) { + if (!javaPrefValue) { + javaPrefs.writeBoolean(ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED, true); + } + if (!nativePrefValue) { + setEulaAccepted(); + } +- } } + /** diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java -@@ -76,7 +76,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm +@@ -80,19 +80,6 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm } }); -- if (ChromeVersionInfo.isOfficialBuild()) { -+/* if (ChromeVersionInfo.isOfficialBuild()) { - int paddingStart = getResources().getDimensionPixelSize( - R.dimen.fre_tos_checkbox_padding); - ViewCompat.setPaddingRelative(mSendReportCheckBox, -@@ -88,8 +88,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm - mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING); - } else { - mSendReportCheckBox.setVisibility(View.GONE); +- int paddingStart = getResources().getDimensionPixelSize(R.dimen.fre_tos_checkbox_padding); +- ViewCompat.setPaddingRelative(mSendReportCheckBox, +- ViewCompat.getPaddingStart(mSendReportCheckBox) + paddingStart, +- mSendReportCheckBox.getPaddingTop(), ViewCompat.getPaddingEnd(mSendReportCheckBox), +- mSendReportCheckBox.getPaddingBottom()); +- mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING); +- +- if (!canShowUmaCheckBox()) { +- mSendReportCheckBox.setVisibility(View.GONE); - } -+ }*/ - -+ mSendReportCheckBox.setChecked(false); -+ mSendReportCheckBox.setVisibility(View.GONE); - mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance()); - +- +- mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance()); +- Resources resources = getResources(); + NoUnderlineClickableSpan clickableGoogleTermsSpan = + new NoUnderlineClickableSpan(resources, (view1) -> { -- 2.17.1 diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index 1613c60d..4c7ca577 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -16,7 +16,7 @@ higher memory/cache usage but not by the full 2-3%. diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -279,16 +279,12 @@ config("compiler") { +@@ -281,16 +281,12 @@ config("compiler") { cflags += [ "-fstack-protector" ] } } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch deleted file mode 100644 index e3013ae4..00000000 --- a/build/patches/Timezone-customization.patch +++ /dev/null @@ -1,1398 +0,0 @@ -From: uazo -Date: Thu, 3 Sep 2020 15:53:15 +0000 -Subject: Timezone customization - -Allow specifying a custom timezone, or using a random one. - -See also: https://github.com/bromite/bromite/wiki/TimezoneOverride ---- - .../ChromeSiteSettingsHelpClient.java | 18 ++ - .../browser_ui/site_settings/android/BUILD.gn | 3 + - .../res/layout/time_zone_select_dialog.xml | 36 ++++ - ...ezoneoverride_site_settings_preference.xml | 68 ++++++ - .../res/xml/single_website_preferences.xml | 2 + - .../res/xml/site_settings_preferences.xml | 4 + - .../java/res/xml/website_preferences.xml | 9 + - .../ContentSettingException.java | 7 +- - .../ContentSettingsResources.java | 29 +++ - .../site_settings/SingleCategorySettings.java | 70 ++++++- - .../site_settings/SingleWebsiteSettings.java | 18 ++ - .../site_settings/SiteSettings.java | 2 +- - .../site_settings/SiteSettingsCategory.java | 11 +- - .../site_settings/SiteSettingsHelpClient.java | 7 + - ...imezoneOverrideSiteSettingsPreference.java | 193 ++++++++++++++++++ - .../browser_ui/site_settings/Website.java | 10 + - .../WebsitePermissionsFetcher.java | 4 + - .../WebsitePreferenceBridge.java | 12 ++ - .../android/website_preference_bridge.cc | 16 ++ - .../strings/android/site_settings.grdp | 35 ++++ - .../browser/content_settings_pref_provider.cc | 16 ++ - .../browser/content_settings_pref_provider.h | 5 + - .../core/browser/content_settings_registry.cc | 12 ++ - .../core/browser/content_settings_utils.cc | 7 + - .../core/browser/host_content_settings_map.cc | 8 + - .../core/browser/host_content_settings_map.h | 3 + - .../core/common/content_settings.cc | 4 +- - .../core/common/content_settings.h | 2 + - .../core/common/content_settings.mojom | 2 + - .../common/content_settings_mojom_traits.cc | 4 +- - .../common/content_settings_mojom_traits.h | 10 + - .../core/common/content_settings_types.h | 3 + - .../core/common/pref_names.cc | 2 + - .../content_settings/core/common/pref_names.h | 2 + - .../renderer/content_settings_agent_impl.cc | 88 ++++++++ - .../renderer/content_settings_agent_impl.h | 4 + - .../WebLayerSiteSettingsClient.java | 3 + - 37 files changed, 717 insertions(+), 12 deletions(-) - create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml - create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml - create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsHelpClient.java -@@ -11,6 +11,12 @@ import org.chromium.chrome.browser.help.HelpAndFeedback; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.components.browser_ui.site_settings.SiteSettingsHelpClient; - -+import android.app.Activity; -+import android.content.Context; -+import android.content.Intent; -+import android.net.Uri; -+import android.provider.Browser; -+ - /** - * A SiteSettingsHelpClient instance that provides Chrome-specific help functionality. - */ -@@ -33,4 +39,16 @@ public class ChromeSiteSettingsHelpClient implements SiteSettingsHelpClient { - currentActivity.getString(R.string.help_context_protected_content), - Profile.getLastUsedRegularProfile(), null); - } -+ -+ // open wiki page for documentation about the timezone override feature -+ @Override -+ public void launchTimeZoneOverrideHelpAndFeedbackActivity(Activity currentActivity) { -+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/bromite/bromite/wiki/TimezoneOverride")); -+ // Let Chromium know that this intent is from Chromium, so that it does not close the app when -+ // the user presses 'back' button. -+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, currentActivity.getPackageName()); -+ intent.putExtra(Browser.EXTRA_CREATE_NEW_TAB, true); -+ intent.setPackage(currentActivity.getPackageName()); -+ currentActivity.startActivity(intent); -+ } - } -diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn ---- a/components/browser_ui/site_settings/android/BUILD.gn -+++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -74,6 +74,7 @@ android_library("java") { - "java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java", - "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", - "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", -+ "java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java" - ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] - deps = [ -@@ -200,6 +201,8 @@ android_resources("java_resources") { - "java/res/xml/single_website_preferences.xml", - "java/res/xml/site_settings_preferences.xml", - "java/res/xml/website_preferences.xml", -+ "java/res/layout/timezoneoverride_site_settings_preference.xml", -+ "java/res/layout/time_zone_select_dialog.xml", - ] - - deps = [ -diff --git a/components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml b/components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml -new file mode 100755 ---- /dev/null -+++ b/components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml -@@ -0,0 +1,36 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml b/components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml -new file mode 100755 ---- /dev/null -+++ b/components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml -@@ -0,0 +1,68 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml ---- a/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml -+++ b/components/browser_ui/site_settings/android/java/res/xml/single_website_preferences.xml -@@ -53,6 +53,8 @@ - android:key="push_notifications_list" /> - -+ - - -+ -+ - - - -+ -+ -+ -+ - - - -+ -+ - - - 0; - return getString(resource); -@@ -682,6 +703,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) && mRequiresFourStateSetting) { - setting = cookieSettingsExceptionShouldBlock() ? ContentSettingValues.BLOCK - : ContentSettingValues.ALLOW; -+ } else if(mRequiresTriStateSetting) { -+ setting = WebsitePreferenceBridge.getContentSetting(browserContextHandle, mCategory.getContentSettingsType()); -+ if(setting == ContentSettingValues.ALLOW) { -+ setting = ContentSettingValues.BLOCK; -+ } else { -+ setting = ContentSettingValues.ALLOW; -+ } - } else { - setting = (WebsitePreferenceBridge.isCategoryEnabled( - browserContextHandle, mCategory.getContentSettingsType())) -@@ -739,6 +767,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - && !WebsitePreferenceBridge.isCategoryEnabled( - browserContextHandle, ContentSettingsType.AUTOMATIC_DOWNLOADS)) { - exception = true; -+ } else if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) { -+ exception = true; - } - if (exception) { - getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(), -@@ -912,7 +942,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - TriStateSiteSettingsPreference triStateToggle = - (TriStateSiteSettingsPreference) getPreferenceScreen().findPreference( - TRI_STATE_TOGGLE_KEY); -- return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); -+ if (triStateToggle != null) -+ return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); -+ -+ TimezoneOverrideSiteSettingsPreference timeOverrideStatePreference = -+ (TimezoneOverrideSiteSettingsPreference) getPreferenceScreen().findPreference( -+ TIMEOVERRIDE_STATE_TOGGLE_KEY); -+ if (timeOverrideStatePreference != null) -+ return (timeOverrideStatePreference.getCheckedSetting() != ContentSettingValues.ALLOW); - } else if (mRequiresFourStateSetting) { - FourStateCookieSettingsPreference fourStateCookieToggle = - (FourStateCookieSettingsPreference) getPreferenceScreen().findPreference( -@@ -940,6 +977,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - FourStateCookieSettingsPreference fourStateCookieToggle = - (FourStateCookieSettingsPreference) screen.findPreference( - FOUR_STATE_COOKIE_TOGGLE_KEY); -+ TimezoneOverrideSiteSettingsPreference timeOverrideStatePreference = -+ (TimezoneOverrideSiteSettingsPreference) screen.findPreference( -+ TIMEOVERRIDE_STATE_TOGGLE_KEY); - Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY); - Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); - Preference notificationsQuietUi = screen.findPreference(NOTIFICATIONS_QUIET_UI_TOGGLE_KEY); -@@ -957,17 +997,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - screen.removePreference(binaryToggle); - screen.removePreference(triStateToggle); - screen.removePreference(fourStateCookieToggle); -+ screen.removePreference(timeOverrideStatePreference); - } else if (mRequiresTriStateSetting) { - screen.removePreference(binaryToggle); - screen.removePreference(fourStateCookieToggle); -- configureTriStateToggle(triStateToggle, contentType); -+ if (contentType == ContentSettingsType.TIMEZONE_OVERRIDE) { -+ screen.removePreference(triStateToggle); -+ configureTimeOverrideStateToggle(timeOverrideStatePreference); -+ } -+ else { -+ screen.removePreference(timeOverrideStatePreference); -+ configureTriStateToggle(triStateToggle, contentType); -+ } - } else if (mRequiresFourStateSetting) { - screen.removePreference(binaryToggle); - screen.removePreference(triStateToggle); -+ screen.removePreference(timeOverrideStatePreference); - configureFourStateCookieToggle(fourStateCookieToggle); - } else { - screen.removePreference(triStateToggle); - screen.removePreference(fourStateCookieToggle); -+ screen.removePreference(timeOverrideStatePreference); - configureBinaryToggle(binaryToggle, contentType); - } - -@@ -980,6 +1030,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - ContentSettingsFeatureList.IMPROVED_COOKIE_CONTROLS))) { - screen.removePreference(screen.findPreference(COOKIE_INFO_TEXT_KEY)); - } -+ if (!(mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE))) { -+ screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT)); -+ } - - if (hideSecondaryToggles) { - screen.removePreference(thirdPartyCookies); -@@ -1103,6 +1156,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - triStateToggle.initialize(setting, descriptionIds); - } - -+ private void configureTimeOverrideStateToggle( -+ TimezoneOverrideSiteSettingsPreference timeOverrideStateToggle) { -+ timeOverrideStateToggle.setOnPreferenceChangeListener(this); -+ @ContentSettingValues -+ int setting = WebsitePreferenceBridge.getContentSetting( -+ getSiteSettingsClient().getBrowserContextHandle(), ContentSettingsType.TIMEZONE_OVERRIDE); -+ timeOverrideStateToggle.initialize(setting, getSiteSettingsClient().getBrowserContextHandle()); -+ } -+ - private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { - binaryToggle.setOnPreferenceChangeListener(this); - binaryToggle.setTitle(ContentSettingsResources.getTitle(contentType)); -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -94,6 +94,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment - // PermissionInfo.Type.PROTECTED_MEDIA_IDENTIFIER - "sensors_permission_list", // PermissionInfo.Type.SENSORS - "vr_permission_list", // PermissionInfo.Type.VIRTUAL_REALITY -+ "timezone_override_permission_list", // PermissionInfo.Type.TIMEZONE_OVERRIDE - }; - - private static final int REQUEST_CODE_NOTIFICATION_CHANNEL_SETTINGS = 1; -@@ -750,6 +751,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment - setUpPreferenceCommon(preference); - ListPreference listPreference = (ListPreference) preference; - -+ if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.TIMEZONE_OVERRIDE) { -+ CharSequence[] keys = new String[3]; -+ keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); -+ keys[1] = ContentSetting.toString(ContentSettingValues.ASK); -+ keys[2] = ContentSetting.toString(ContentSettingValues.BLOCK); -+ int[] descriptionsId = ContentSettingsResources.getTriStateSettingDescriptionIDs(ContentSettingsType.TIMEZONE_OVERRIDE); -+ CharSequence[] descriptions = new String[3]; -+ descriptions[0] = getString(descriptionsId[0]); -+ descriptions[1] = getString(descriptionsId[1]); -+ descriptions[2] = getString(descriptionsId[2]); -+ listPreference.setEntryValues(keys); -+ listPreference.setEntries(descriptions); -+ int indexSelected = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2)); -+ listPreference.setValueIndex(indexSelected); -+ return; -+ } -+ - CharSequence[] keys = new String[2]; - CharSequence[] descriptions = new String[2]; - keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW); -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -@@ -111,7 +111,7 @@ public class SiteSettings - } else if (Type.SOUND == prefCategory && !checked) { - p.setSummary(ContentSettingsResources.getSoundBlockedListSummary()); - } else if (requiresTriStateSetting) { -- p.setSummary(ContentSettingsResources.getCategorySummary(setting)); -+ p.setSummary(ContentSettingsResources.getCategorySummary(contentType, setting)); - } else { - p.setSummary(ContentSettingsResources.getCategorySummary(contentType, checked)); - } -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -42,7 +42,7 @@ public class SiteSettingsCategory { - Type.BACKGROUND_SYNC, Type.BLUETOOTH, Type.BLUETOOTH_SCANNING, Type.CAMERA, - Type.CLIPBOARD, Type.COOKIES, Type.DEVICE_LOCATION, Type.JAVASCRIPT, Type.MICROPHONE, - Type.NFC, Type.NOTIFICATIONS, Type.POPUPS, Type.PROTECTED_MEDIA, Type.SENSORS, -- Type.SOUND, Type.USB, Type.VIRTUAL_REALITY, Type.USE_STORAGE}) -+ Type.SOUND, Type.USB, Type.VIRTUAL_REALITY, Type.USE_STORAGE, Type.TIMEZONE_OVERRIDE}) - @Retention(RetentionPolicy.SOURCE) - public @interface Type { - // Values used to address array index - should be enumerated from 0 and can't have gaps. -@@ -69,11 +69,12 @@ public class SiteSettingsCategory { - int USB = 18; - int BLUETOOTH = 19; - int VIRTUAL_REALITY = 20; -- int USE_STORAGE = 21; // Always last as it should appear in the UI at the bottom. -+ int TIMEZONE_OVERRIDE = 21; -+ int USE_STORAGE = 22; // Always last as it should appear in the UI at the bottom. - /** - * Number of handled categories used for calculating array sizes. - */ -- int NUM_ENTRIES = 22; -+ int NUM_ENTRIES = 23; - } - - private final BrowserContextHandle mBrowserContextHandle; -@@ -189,6 +190,8 @@ public class SiteSettingsCategory { - return ContentSettingsType.USB_GUARD; - case Type.VIRTUAL_REALITY: - return ContentSettingsType.VR; -+ case Type.TIMEZONE_OVERRIDE: -+ return ContentSettingsType.TIMEZONE_OVERRIDE; - // case Type.ALL_SITES - // case Type.USE_STORAGE - default: -@@ -260,6 +263,8 @@ public class SiteSettingsCategory { - return "use_storage"; - case Type.VIRTUAL_REALITY: - return "virtual_reality"; -+ case Type.TIMEZONE_OVERRIDE: -+ return "timezone_override"; - default: - assert false; - return ""; -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHelpClient.java -@@ -28,4 +28,11 @@ public interface SiteSettingsHelpClient { - * @see org.chromium.chrome.browser.help.HelpAndFeedback#show - */ - void launchProtectedContentHelpAndFeedbackActivity(Activity currentActivity); -+ -+ /** -+ * Launches a support page related to timezone override content. -+ * -+ * @see org.chromium.chrome.browser.help.HelpAndFeedback#show -+ */ -+ void launchTimeZoneOverrideHelpAndFeedbackActivity(Activity currentActivity); - } -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java -new file mode 100755 ---- /dev/null -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java -@@ -0,0 +1,193 @@ -+/* -+ 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.components.browser_ui.site_settings; -+ -+import org.chromium.base.Log; -+import android.content.Context; -+import android.content.Intent; -+import android.content.DialogInterface; -+import android.view.View; -+import android.widget.RadioGroup; -+import android.widget.Button; -+import android.widget.TextView; -+import android.util.AttributeSet; -+import android.widget.ArrayAdapter; -+import android.widget.ListView; -+import android.view.LayoutInflater; -+import android.widget.AdapterView; -+import android.graphics.Color; -+ -+import androidx.preference.Preference; -+import androidx.preference.PreferenceViewHolder; -+import androidx.appcompat.app.AlertDialog; -+ -+import org.chromium.components.content_settings.ContentSettingValues; -+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle; -+import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -+import org.chromium.components.browser_ui.widget.RadioButtonWithDescription; -+import org.chromium.components.browser_ui.widget.RadioButtonWithEditText; -+import org.chromium.components.browser_ui.widget.TintedDrawable; -+ -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.TimeZone; -+ -+/** -+ * TimezoneOverride Preference for SiteSettings. -+ */ -+public class TimezoneOverrideSiteSettingsPreference -+ extends Preference implements RadioGroup.OnCheckedChangeListener, -+ RadioButtonWithEditText.OnTextChangeListener { -+ private @ContentSettingValues int mSetting = ContentSettingValues.DEFAULT; -+ private RadioButtonWithDescription mAllowed; -+ private RadioButtonWithEditText mAsk; -+ private RadioButtonWithDescription mBlocked; -+ private RadioGroup mRadioGroup; -+ private TextView mSelectButton; -+ -+ private String currentSelected; -+ -+ private BrowserContextHandle mBrowserContextHandle; -+ -+ public TimezoneOverrideSiteSettingsPreference(Context context, AttributeSet attrs) { -+ super(context, attrs); -+ -+ setLayoutResource(R.layout.timezoneoverride_site_settings_preference); -+ setSelectable(false); -+ } -+ -+ public void initialize(@ContentSettingValues int setting, BrowserContextHandle browserContextHandle) { -+ mSetting = setting; -+ mBrowserContextHandle = browserContextHandle; -+ } -+ -+ public @ContentSettingValues int getCheckedSetting() { -+ return mSetting; -+ } -+ -+ @Override -+ public void onCheckedChanged(RadioGroup group, int checkedId) { -+ if (mAllowed.isChecked()) { -+ mSetting = ContentSettingValues.ALLOW; -+ } else if (mAsk.isChecked()) { -+ mSetting = ContentSettingValues.ASK; -+ } else if (mBlocked.isChecked()) { -+ mSetting = ContentSettingValues.BLOCK; -+ } -+ -+ callChangeListener(mSetting); -+ } -+ -+ @Override -+ public void onBindViewHolder(PreferenceViewHolder holder) { -+ super.onBindViewHolder(holder); -+ -+ mAllowed = (RadioButtonWithDescription) holder.findViewById(R.id.allowed); -+ mAsk = (RadioButtonWithEditText) holder.findViewById(R.id.ask); -+ mBlocked = (RadioButtonWithDescription) holder.findViewById(R.id.blocked); -+ mRadioGroup = (RadioGroup) holder.findViewById(R.id.radio_button_layout); -+ mRadioGroup.setOnCheckedChangeListener(this); -+ -+ mAsk.setPrimaryText(WebsitePreferenceBridge.getCustomTimezone(mBrowserContextHandle)); -+ mAsk.addTextChangeListener(this); -+ -+ ListView listView = (ListView)holder.findViewById(R.id.listView); -+ -+ mSelectButton = (TextView) holder.findViewById(R.id.select_button); -+ mSelectButton.setOnClickListener(view -> { -+ showSelectTimeZoneDialog(); -+ }); -+ -+ RadioButtonWithDescription radioButton = findRadioButton(mSetting); -+ if (radioButton != null) radioButton.setChecked(true); -+ } -+ -+ private RadioButtonWithDescription findRadioButton(@ContentSettingValues int setting) { -+ if (setting == ContentSettingValues.ALLOW) { -+ return mAllowed; -+ } else if (setting == ContentSettingValues.ASK) { -+ return mAsk; -+ } else if (setting == ContentSettingValues.BLOCK) { -+ return mBlocked; -+ } else { -+ return null; -+ } -+ } -+ -+ public void onTextChanged(CharSequence newText) { -+ WebsitePreferenceBridge.setCustomTimezone(mBrowserContextHandle, newText.toString()); -+ } -+ -+ private void showSelectTimeZoneDialog() { -+ LayoutInflater inflater = -+ (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); -+ View view = inflater.inflate(R.layout.time_zone_select_dialog, null); -+ -+ ListView listView = view.findViewById(R.id.listView); -+ ArrayList timezones = new ArrayList<>(Arrays.asList(TimeZone.getAvailableIDs())); -+ ArrayAdapter adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, timezones); -+ listView.setAdapter(adapter); -+ -+ currentSelected = String.valueOf(mAsk.getPrimaryText()); -+ listView.post(new Runnable() -+ { -+ public void run() -+ { -+ for (int j = 0; j < timezones.size(); j++) { -+ if(currentSelected.equals(timezones.get(j))) { -+ listView.requestFocusFromTouch(); -+ listView.setSelection(j); -+ adapter.notifyDataSetChanged(); -+ break; -+ } -+ } -+ } -+ }); -+ -+ listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { -+ @Override -+ public void onItemClick(AdapterView adapterView, View view, int i, long l) { -+ currentSelected = timezones.get(i); -+ listView.setSelected(true); -+ } -+ }); -+ -+ DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() { -+ @Override -+ public void onClick(DialogInterface dialog, int button) { -+ if (button == AlertDialog.BUTTON_POSITIVE) { -+ mAsk.setPrimaryText(currentSelected); -+ } else { -+ dialog.dismiss(); -+ } -+ } -+ }; -+ -+ AlertDialog.Builder alert = -+ new AlertDialog.Builder(getContext(), R.style.Theme_Chromium_AlertDialog); -+ AlertDialog alertDialog = -+ alert.setTitle(R.string.website_settings_select_dialog_title) -+ .setView(view) -+ .setPositiveButton( -+ R.string.website_settings_select_dialog_button, onClickListener) -+ .setNegativeButton(R.string.cancel, onClickListener) -+ .create(); -+ alertDialog.getDelegate().setHandleNativeActionModesEnabled(false); -+ alertDialog.show(); -+ } -+} -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -252,6 +252,16 @@ public class Website implements Serializable { - } else { - RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings"); - } -+ } else if (type == ContentSettingException.Type.TIMEZONE_OVERRIDE) { -+ // It is possible to set the permission without having an existing exception, -+ // because we can show the ALLOW state even when this permission is set to the -+ // default. In that case, just set an exception now to ALLOW to enable changing the -+ // permission. -+ if (mContentSettingException[type] == null) { -+ mContentSettingException[type] = -+ new ContentSettingException(ContentSettingsType.TIMEZONE_OVERRIDE, -+ getAddress().getOrigin(), value, ""); -+ } - } - // We want to call setContentSetting even after explicitly setting - // mContentSettingException above because this will trigger the actual change -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -163,6 +163,8 @@ public class WebsitePermissionsFetcher { - // AR permission is per-origin and per-embedder. - queue.add(new PermissionInfoFetcher(PermissionInfo.Type.AUGMENTED_REALITY)); - -+ queue.add(new ExceptionInfoFetcher(ContentSettingsType.TIMEZONE_OVERRIDE)); -+ - queue.add(new PermissionsAvailableCallbackRunner(callback)); - - queue.next(); -@@ -257,6 +259,8 @@ public class WebsitePermissionsFetcher { - } else if (category.showSites(SiteSettingsCategory.Type.AUGMENTED_REALITY)) { - // AUGMENTED_REALITY permission is per-origin and per-embedder. - queue.add(new PermissionInfoFetcher(PermissionInfo.Type.AUGMENTED_REALITY)); -+ } else if (category.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) { -+ queue.add(new ExceptionInfoFetcher(ContentSettingsType.TIMEZONE_OVERRIDE)); - } - queue.add(new PermissionsAvailableCallbackRunner(callback)); - queue.next(); -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -333,6 +333,8 @@ public class WebsitePreferenceBridge { - switch (contentSettingsType) { - case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER: - return true; -+ case ContentSettingsType.TIMEZONE_OVERRIDE: -+ return true; - default: - return false; - } -@@ -599,6 +601,14 @@ public class WebsitePreferenceBridge { - contentSettingType, primaryPattern, secondaryPattern, setting); - } - -+ public static String getCustomTimezone(BrowserContextHandle browserContextHandle) { -+ return WebsitePreferenceBridgeJni.get().getCustomTimezone(browserContextHandle); -+ } -+ -+ public static void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone) { -+ WebsitePreferenceBridgeJni.get().setCustomTimezone(browserContextHandle, timezone); -+ } -+ - @VisibleForTesting - @NativeMethods - public interface Natives { -@@ -734,5 +744,7 @@ public class WebsitePreferenceBridge { - void setSensorsEnabled(BrowserContextHandle browserContextHandle, boolean enabled); - void setSoundEnabled(BrowserContextHandle browserContextHandle, boolean enabled); - void setVrEnabled(BrowserContextHandle browserContextHandle, boolean enabled); -+ String getCustomTimezone(BrowserContextHandle browserContextHandle); -+ void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone); - } - } -diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc ---- a/components/browser_ui/site_settings/android/website_preference_bridge.cc -+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1428,3 +1428,19 @@ static jboolean JNI_WebsitePreferenceBridge_GetMicManagedByCustodian( - return IsContentSettingManagedByCustodian( - jbrowser_context_handle, ContentSettingsType::MEDIASTREAM_MIC); - } -+ -+static void JNI_WebsitePreferenceBridge_SetCustomTimezone( -+ JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle, -+ const JavaParamRef& timezone) { -+ std::string new_timezone = ConvertJavaStringToUTF8(env, timezone); -+ GetHostContentSettingsMap(jbrowser_context_handle)->SetTimezoneOverrideValue(new_timezone); -+} -+ -+static base::android::ScopedJavaLocalRef JNI_WebsitePreferenceBridge_GetCustomTimezone( -+ JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle) { -+ std::string timezone; -+ GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(timezone); -+ return ConvertUTF8ToJavaString(env, timezone); -+} -diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp ---- a/components/browser_ui/strings/android/site_settings.grdp -+++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -66,6 +66,9 @@ - - Virtual reality - -+ -+ Timezone override -+ - - - -@@ -462,6 +465,38 @@ - Block sites from playing protected content - - -+ -+ -+ Override timezone with a custom or random one, or use the system timezone -+ -+ -+ None (use system timezone) -+ -+ -+ Random -+ -+ -+ System timezone -+ -+ -+ Custom timezone -+ -+ -+ Specify a custom timezone (default UTC) -+ -+ -+ Random (for each page) -+ -+ -+ Choose Timezone... -+ -+ -+ Choose Timezone -+ -+ -+ Select -+ -+ - - - -diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc ---- a/components/content_settings/core/browser/content_settings_pref_provider.cc -+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -85,6 +85,8 @@ void PrefProvider::RegisterProfilePrefs( - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - #endif // !defined(OS_ANDROID) - #endif // !defined(OS_IOS) -+ -+ registry->RegisterStringPref(prefs::kContentSettingsCustomTimezone, std::string()); - } - - PrefProvider::PrefProvider(PrefService* prefs, -@@ -148,6 +150,10 @@ PrefProvider::PrefProvider(PrefService* prefs, - num_exceptions); - } - -+ custom_timezone_ = -+ prefs_->GetString( -+ prefs::kContentSettingsCustomTimezone); -+ - TRACE_EVENT_END1("startup", "PrefProvider::PrefProvider", - "NumberOfExceptions", num_exceptions); - } -@@ -287,4 +293,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { - clock_ = clock; - } - -+void PrefProvider::GetPrefTimezoneOverrideValue(std::string& timezone) const { -+ timezone = custom_timezone_; -+} -+ -+void PrefProvider::SetPrefTimezoneOverrideValue(const std::string& timezone) { -+ prefs_->SetString( -+ prefs::kContentSettingsCustomTimezone, timezone); -+ custom_timezone_ = timezone; -+} -+ - } // namespace content_settings -diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h ---- a/components/content_settings/core/browser/content_settings_pref_provider.h -+++ b/components/content_settings/core/browser/content_settings_pref_provider.h -@@ -66,6 +66,9 @@ class PrefProvider : public UserModifiableProvider { - - ContentSettingsPref* GetPref(ContentSettingsType type) const; - -+ void GetPrefTimezoneOverrideValue(std::string& timezone) const; -+ void SetPrefTimezoneOverrideValue(const std::string& timezone); -+ - private: - friend class DeadlockCheckerObserver; // For testing. - -@@ -103,6 +106,8 @@ class PrefProvider : public UserModifiableProvider { - - base::Clock* clock_; - -+ std::string custom_timezone_; -+ - DISALLOW_COPY_AND_ASSIGN(PrefProvider); - }; - -diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc ---- a/components/content_settings/core/browser/content_settings_registry.cc -+++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -590,6 +590,18 @@ void ContentSettingsRegistry::Init() { - ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, - ContentSettingsInfo::PERSISTENT, - ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); -+ -+ Register(ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override", CONTENT_SETTING_ALLOW, -+ WebsiteSettingsInfo::SYNCABLE, -+ WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), -+ ValidSettings(CONTENT_SETTING_ALLOW, // use system time -+ CONTENT_SETTING_ASK, // custom timezone, default UTC -+ CONTENT_SETTING_BLOCK), // random -+ WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE, -+ WebsiteSettingsRegistry::PLATFORM_ANDROID, -+ ContentSettingsInfo::INHERIT_IN_INCOGNITO, -+ ContentSettingsInfo::PERSISTENT, -+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); - } - - void ContentSettingsRegistry::Register( -diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc ---- a/components/content_settings/core/browser/content_settings_utils.cc -+++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -148,6 +148,13 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, - &(rules->client_hints_rules)); - map->GetSettingsForOneType(ContentSettingsType::POPUPS, ResourceIdentifier(), - &(rules->popup_redirect_rules)); -+ -+ // pass custom timezone rules and value to the render process -+ map->GetSettingsForOneType(ContentSettingsType::TIMEZONE_OVERRIDE, -+ ResourceIdentifier(), &(rules->timezone_override_rules)); -+ std::string timezone; -+ map->GetTimezoneOverrideValue(timezone); -+ rules->timezone_override_value = timezone; - } - - bool IsMorePermissive(ContentSetting a, ContentSetting b) { -diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc ---- a/components/content_settings/core/browser/host_content_settings_map.cc -+++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -663,6 +663,14 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) { - provider->SetClockForTesting(clock); - } - -+void HostContentSettingsMap::GetTimezoneOverrideValue(std::string& timezone) const { -+ GetPrefProvider()->GetPrefTimezoneOverrideValue(timezone); -+} -+ -+void HostContentSettingsMap::SetTimezoneOverrideValue(const std::string& timezone) { -+ GetPrefProvider()->SetPrefTimezoneOverrideValue(timezone); -+} -+ - void HostContentSettingsMap::RecordExceptionMetrics() { - auto* content_setting_registry = - content_settings::ContentSettingsRegistry::GetInstance(); -diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h ---- a/components/content_settings/core/browser/host_content_settings_map.h -+++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -336,6 +336,9 @@ class HostContentSettingsMap : public content_settings::Observer, - return pref_provider_; - } - -+ void GetTimezoneOverrideValue(std::string& timezone) const; -+ void SetTimezoneOverrideValue(const std::string& timezone); -+ - private: - friend class base::RefCountedThreadSafe; - friend class content_settings::TestUtils; -diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc ---- a/components/content_settings/core/common/content_settings.cc -+++ b/components/content_settings/core/common/content_settings.cc -@@ -90,6 +90,7 @@ constexpr HistogramValue kHistogramValue[] = { - {ContentSettingsType::STORAGE_ACCESS, 67}, - {ContentSettingsType::CAMERA_PAN_TILT_ZOOM, 68}, - {ContentSettingsType::WINDOW_PLACEMENT, 69}, -+ {ContentSettingsType::TIMEZONE_OVERRIDE, 70}, - }; - - } // namespace -@@ -176,7 +177,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( - content_type == ContentSettingsType::JAVASCRIPT || - content_type == ContentSettingsType::CLIENT_HINTS || - content_type == ContentSettingsType::POPUPS || -- content_type == ContentSettingsType::MIXEDSCRIPT; -+ content_type == ContentSettingsType::MIXEDSCRIPT || -+ content_type == ContentSettingsType::TIMEZONE_OVERRIDE; - } - - RendererContentSettingRules::RendererContentSettingRules() {} -diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h ---- a/components/content_settings/core/common/content_settings.h -+++ b/components/content_settings/core/common/content_settings.h -@@ -79,6 +79,8 @@ struct RendererContentSettingRules { - ContentSettingsForOneType client_hints_rules; - ContentSettingsForOneType popup_redirect_rules; - ContentSettingsForOneType mixed_content_rules; -+ ContentSettingsForOneType timezone_override_rules; -+ std::string timezone_override_value; - }; - - namespace content_settings { -diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom ---- a/components/content_settings/core/common/content_settings.mojom -+++ b/components/content_settings/core/common/content_settings.mojom -@@ -78,4 +78,6 @@ struct RendererContentSettingRules { - array client_hints_rules; - array popup_redirect_rules; - array mixed_content_rules; -+ array timezone_override_rules; -+ string timezone_override_value; - }; -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc ---- a/components/content_settings/core/common/content_settings_mojom_traits.cc -+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -101,7 +101,9 @@ bool StructTraitsscript_rules) && - data.ReadClientHintsRules(&out->client_hints_rules) && - data.ReadPopupRedirectRules(&out->popup_redirect_rules) && -- data.ReadMixedContentRules(&out->mixed_content_rules); -+ data.ReadMixedContentRules(&out->mixed_content_rules) && -+ data.ReadTimezoneOverrideRules(&out->timezone_override_rules) && -+ data.ReadTimezoneOverrideValue(&out->timezone_override_value); - } - - } // namespace mojo -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h ---- a/components/content_settings/core/common/content_settings_mojom_traits.h -+++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -149,6 +149,16 @@ struct StructTraits< - return r.mixed_content_rules; - } - -+ static const std::vector& timezone_override_rules( -+ const RendererContentSettingRules& r) { -+ return r.timezone_override_rules; -+ } -+ -+ static const std::string& timezone_override_value( -+ const RendererContentSettingRules& r) { -+ return r.timezone_override_value; -+ } -+ - static bool Read( - content_settings::mojom::RendererContentSettingRulesDataView data, - RendererContentSettingRules* out); -diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h ---- a/components/content_settings/core/common/content_settings_types.h -+++ b/components/content_settings/core/common/content_settings_types.h -@@ -214,6 +214,9 @@ enum class ContentSettingsType : int32_t { - // Permits creating and placing windows across the set of connected screens. - WINDOW_PLACEMENT, - -+ // Content setting for timezone customization functionality. -+ TIMEZONE_OVERRIDE, -+ - NUM_TYPES, - }; - -diff --git a/components/content_settings/core/common/pref_names.cc b/components/content_settings/core/common/pref_names.cc ---- a/components/content_settings/core/common/pref_names.cc -+++ b/components/content_settings/core/common/pref_names.cc -@@ -93,5 +93,7 @@ const char kManagedWebUsbBlockedForUrls[] = - "profile.managed_web_usb_blocked_for_urls"; - const char kManagedLegacyCookieAccessAllowedForDomains[] = - "profile.managed_legacy_cookie_access_allowed_for_domains"; -+const char kContentSettingsCustomTimezone[] = -+ "profile.content_settings.custom_timezone"; - - } // namespace prefs -diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h ---- a/components/content_settings/core/common/pref_names.h -+++ b/components/content_settings/core/common/pref_names.h -@@ -55,6 +55,8 @@ extern const char kManagedWebUsbAskForUrls[]; - extern const char kManagedWebUsbBlockedForUrls[]; - extern const char kManagedLegacyCookieAccessAllowedForDomains[]; - -+extern const char kContentSettingsCustomTimezone[]; -+ - } // namespace prefs - - #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_PREF_NAMES_H_ -diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc ---- a/components/content_settings/renderer/content_settings_agent_impl.cc -+++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -9,6 +9,7 @@ - - #include "base/bind.h" - #include "base/feature_list.h" -+#include "base/logging.h" - #include "base/metrics/histogram_macros.h" - #include "base/strings/string_number_conversions.h" - #include "components/client_hints/common/client_hints.h" -@@ -35,6 +36,10 @@ - #include "third_party/blink/public/web/web_local_frame.h" - #include "third_party/blink/public/web/web_local_frame_client.h" - #include "third_party/blink/public/web/web_view.h" -+#include "third_party/blink/renderer/core/inspector/locale_controller.h" -+#include "third_party/blink/renderer/core/timezone/timezone_controller.h" -+#include "third_party/icu/source/common/unicode/strenum.h" -+#include "third_party/icu/source/i18n/unicode/timezone.h" - #include "url/gurl.h" - #include "url/origin.h" - #include "url/url_constants.h" -@@ -48,6 +53,8 @@ using blink::WebURL; - using blink::WebView; - using content::DocumentState; - -+std::unique_ptr timezone_override_; -+ - namespace content_settings { - namespace { - -@@ -346,6 +353,10 @@ bool ContentSettingsAgentImpl::AllowScript(bool enabled_per_settings) { - allow = allow || IsWhitelistedForContentSettings(); - - cached_script_permissions_[frame] = allow; -+ -+ if (allow) -+ UpdateOverrides(); -+ - return allow; - } - -@@ -572,4 +583,81 @@ bool ContentSettingsAgentImpl::AllowStorageAccess( - return result; - } - -+bool ContentSettingsAgentImpl::UpdateOverrides() { -+ // Evaluate the content setting rules -+ ContentSetting setting = CONTENT_SETTING_ALLOW; -+ -+ if (content_setting_rules_) { -+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); -+ -+ setting = GetContentSettingFromRules( -+ content_setting_rules_->timezone_override_rules, frame, -+ url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL()); -+ } -+ return UpdateTimeZoneOverride( -+ setting, content_setting_rules_->timezone_override_value); -+ //&& UpdateLocaleOverride(setting); -+} -+ -+bool ContentSettingsAgentImpl::UpdateTimeZoneOverride( -+ ContentSetting setting, -+ const std::string& timezone_override_value) { -+ // base/i18n/icu_util.cc # 329 -+ -+ /* timezone_id: third_party/icu/source/i18n/timezone.cpp -+ We first try to lookup the zone ID in our system list. If this -+ * fails, we try to parse it as a custom string GMT[+-]hh:mm. If -+ * all else fails, we return GMT, which is probably not what the -+ * user wants, but at least is a functioning TimeZone object. -+ */ -+ String timezone_id; -+ -+ if (setting == CONTENT_SETTING_ALLOW) { -+ // system time -+ if (timezone_override_) { -+ timezone_override_.reset(); -+ } -+ return true; -+ } else if (setting == CONTENT_SETTING_BLOCK) { -+ // timezone random -+ UErrorCode ec = U_ZERO_ERROR; -+ int32_t rawOffset = ((rand() % 24) - 12) * 3600 * 1000; -+ icu::StringEnumeration* timezones = icu::TimeZone::createEnumeration( -+ rawOffset); // Obtain timezones by GMT timezone offset -+ if (timezones) { -+ const char* tzID; -+ int32_t length; -+ if ((tzID = timezones->next(&length, ec)) != NULL) { -+ timezone_id = String(tzID); -+ } -+ delete timezones; -+ } -+ } else if (setting == CONTENT_SETTING_ASK) { -+ if (timezone_override_value.empty()) -+ timezone_id = "Europe/London"; -+ else -+ timezone_id = String(timezone_override_value.c_str()); -+ } -+ -+ if (blink::TimeZoneController::HasTimeZoneOverride() == false) { -+ timezone_override_.reset(); -+ timezone_override_ = -+ blink::TimeZoneController::SetTimeZoneOverride(timezone_id); -+ if (!timezone_override_) { -+ LOG(WARNING) << "UpdateTimeZoneOverride - Invalid timezone id '" -+ << timezone_id << "'"; -+ return false; -+ } else { -+ LOG(INFO) -+ << "UpdateTimeZoneOverride - setting to '" -+ << timezone_id << "'"; -+ return true; -+ } -+ } else { -+ LOG(INFO) -+ << "UpdateTimeZoneOverride: already set"; -+ return false; -+ } -+} -+ - } // namespace content_settings -diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h ---- a/components/content_settings/renderer/content_settings_agent_impl.h -+++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -194,6 +194,10 @@ class ContentSettingsAgentImpl - - mojo::AssociatedReceiverSet receivers_; - -+ bool UpdateOverrides(); -+ bool UpdateTimeZoneOverride(ContentSetting setting, const std::string& timezone_override_value); -+ bool UpdateLocaleOverride(ContentSetting setting); -+ - DISALLOW_COPY_AND_ASSIGN(ContentSettingsAgentImpl); - }; - -diff --git a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java ---- a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java -+++ b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerSiteSettingsClient.java -@@ -118,6 +118,9 @@ public class WebLayerSiteSettingsClient - @Override - public void launchProtectedContentHelpAndFeedbackActivity(Activity currentActivity) {} - -+ @Override -+ public void launchTimeZoneOverrideHelpAndFeedbackActivity(Activity currentActivity) {} -+ - // SiteSettingsPrefClient implementation: - - // The quiet notification UI is a Chrome-specific feature for now. --- -2.17.1 - diff --git a/build/patches/Update-i18n-zh_CN-support.patch b/build/patches/Update-i18n-zh_CN-support.patch index c40316fb..d96b62ca 100644 --- a/build/patches/Update-i18n-zh_CN-support.patch +++ b/build/patches/Update-i18n-zh_CN-support.patch @@ -10,7 +10,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 -@@ -6599,4 +6599,8 @@ +@@ -6783,4 +6783,8 @@ YouTube 正在建立安全连接... 检查(&N) @@ -24,10 +24,10 @@ diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/res diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb -@@ -1062,4 +1062,23 @@ - 当您在地址栏中输入查询内容时,使用联想查询服务显示相关查询和热门网站 - 正在同步到 - Google 活动控件 +@@ -1062,6 +1062,25 @@ + 隐私设置和安全性 + 密码 + 关闭“请求切换到桌面版网站” +查看源代码 +关于 Bromite +退出 @@ -47,7 +47,9 @@ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strin +编辑过滤器地址 +过滤器地址 +访问帮助页面 - + 编辑 + Chrome 认为不重要的网站(例如未保存任何设置的网站或您不常访问的网站)存储的数据 + 将于 开始下载。 -- 2.17.1 diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch index aa058950..4cb4e139 100644 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ b/build/patches/Use-4-tile-rows-never-show-logo.patch @@ -13,16 +13,16 @@ Subject: Use 4 tile rows, never show logo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -110,7 +110,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer - private EmptyOverviewModeObserver mOverviewObserver; - private OverviewModeBehavior mOverviewModeBehavior; +@@ -108,7 +108,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer + */ + private boolean mHasShownView; - private boolean mSearchProviderHasLogo = true; + private boolean mSearchProviderHasLogo = false; private boolean mSearchProviderIsGoogle; private boolean mInitialized; -@@ -528,7 +528,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer +@@ -532,7 +532,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer && mInitialized) { return; } @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; updateTileGridPadding(); -@@ -799,7 +799,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer +@@ -803,7 +803,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer Integer maxRows = mQueryTileSection == null ? null : mQueryTileSection.getMaxRowsForMostVisitedTiles(); diff --git a/build/patches/Use-dummy-DFM-installer.patch b/build/patches/Use-dummy-DFM-installer.patch index ee82751d..3a50f66a 100644 --- a/build/patches/Use-dummy-DFM-installer.patch +++ b/build/patches/Use-dummy-DFM-installer.patch @@ -19,7 +19,7 @@ Subject: Use dummy DFM installer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java -@@ -122,10 +122,6 @@ public class ChromeApplication extends Application { +@@ -123,10 +123,6 @@ public class ChromeApplication extends Application { } } @@ -155,7 +155,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component return state -> { if (state.moduleNames().size() != 1) { throw new UnsupportedOperationException("Only one module supported."); -@@ -109,12 +74,12 @@ class SplitCompatEngine implements InstallEngine { +@@ -110,12 +75,12 @@ class SplitCompatEngine implements InstallEngine { mFacade.getLogger().logStatus(moduleName, status); }; @@ -171,7 +171,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component sSessions.remove(moduleName); unregisterUpdateListener(); -@@ -129,15 +94,15 @@ class SplitCompatEngine implements InstallEngine { +@@ -130,15 +95,15 @@ class SplitCompatEngine implements InstallEngine { } private void registerUpdateListener() { @@ -226,7 +226,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component mLogger = umaLogger; } -@@ -38,21 +35,10 @@ class SplitCompatEngineFacade { +@@ -38,24 +35,13 @@ class SplitCompatEngineFacade { return mLogger; } @@ -243,11 +243,14 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component public void notifyObservers() { ModuleUtil.notifyModuleInstalled(); } -- + - public SplitInstallRequest createSplitInstallRequest(String moduleName) { - return SplitInstallRequest.newBuilder().addModule(moduleName).build(); - } - } +- + public void updateCrashKeys() { + ModuleUtil.updateCrashKeys(); + } diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java diff --git a/build/patches/autofill-disable-autofill-download-manager.patch b/build/patches/autofill-disable-autofill-download-manager.patch index 94f69fa9..9a617906 100644 --- a/build/patches/autofill-disable-autofill-download-manager.patch +++ b/build/patches/autofill-disable-autofill-download-manager.patch @@ -109,7 +109,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -186,19 +186,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder, +@@ -185,19 +185,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder, } } @@ -129,7 +129,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a ValuePatternsMetric GetValuePattern(const base::string16& value) { if (IsUPIVirtualPaymentAddress(value)) return ValuePatternsMetric::kUpiVpa; -@@ -1642,11 +1629,6 @@ AutofillManager::AutofillManager( +@@ -1648,11 +1635,6 @@ AutofillManager::AutofillManager( : std::make_unique( driver, client_, personal_data_, credit_card_form_event_logger_.get()); diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 3e0f4a09..79310ea7 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -11,7 +11,7 @@ sysroot. diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -86,7 +86,7 @@ vars = { +@@ -94,7 +94,7 @@ vars = { # Check out and download nacl by default. This can be disabled e.g. with # custom_vars. @@ -20,7 +20,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out src-internal. This can be overridden e.g. with # custom_vars. -@@ -116,8 +116,8 @@ vars = { +@@ -124,8 +124,8 @@ vars = { # support for other platforms may be added in the future. 'checkout_openxr' : 'checkout_win', @@ -31,7 +31,7 @@ diff --git a/DEPS b/DEPS # By default bot checkouts the WPR archive files only when this # flag is set True. -@@ -4170,49 +4170,6 @@ hooks = [ +@@ -4244,49 +4244,6 @@ hooks = [ 'sync', '--extract', ], }, @@ -81,7 +81,7 @@ diff --git a/DEPS b/DEPS { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', -@@ -4336,18 +4293,6 @@ hooks = [ +@@ -4410,18 +4367,6 @@ hooks = [ '-s', 'src/buildtools/mac/clang-format.sha1', ], }, @@ -100,7 +100,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -4373,29 +4318,6 @@ hooks = [ +@@ -4447,29 +4392,6 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], }, diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index 0e9e9d0e..bad8e272 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -9,7 +9,7 @@ Subject: disable AdsBlockedInfoBar diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc --- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc +++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc -@@ -158,11 +158,6 @@ void ChromeSubresourceFilterClient::LogAction(SubresourceFilterAction action) { +@@ -161,11 +161,6 @@ void ChromeSubresourceFilterClient::LogAction(SubresourceFilterAction action) { } void ChromeSubresourceFilterClient::ShowUI(const GURL& url) { @@ -18,9 +18,9 @@ diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client. - InfoBarService::FromWebContents(web_contents()); - AdsBlockedInfobarDelegate::Create(infobar_service); -#endif - content_settings::TabSpecificContentSettings* content_settings = - content_settings::TabSpecificContentSettings::FromWebContents( - web_contents()); + // TODO(https://crbug.com/1103176): Plumb the actual frame reference here + // (it comes from + // ContentSubresourceFilterThrottleManager::DidDisallowFirstSubresource, which -- 2.17.1 diff --git a/build/patches/disable-background-sync-by-default.patch b/build/patches/disable-background-sync-by-default.patch index f4ed149c..34b77e56 100644 --- a/build/patches/disable-background-sync-by-default.patch +++ b/build/patches/disable-background-sync-by-default.patch @@ -9,7 +9,7 @@ Subject: disable background sync by default diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -313,7 +313,7 @@ void ContentSettingsRegistry::Init() { +@@ -314,7 +314,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::BACKGROUND_SYNC, "background-sync", diff --git a/build/patches/disable-sensors-access-site-setting-by-default.patch b/build/patches/disable-sensors-access-site-setting-by-default.patch index 7436c6a7..d76c0d57 100644 --- a/build/patches/disable-sensors-access-site-setting-by-default.patch +++ b/build/patches/disable-sensors-access-site-setting-by-default.patch @@ -9,7 +9,7 @@ Subject: disable sensors access site setting by default diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -417,7 +417,7 @@ void ContentSettingsRegistry::Init() { +@@ -418,7 +418,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index 652d9240..e70b3d06 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -10,18 +10,18 @@ Subject: kill Auth diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java -@@ -11,10 +11,6 @@ import android.content.Context; - import androidx.annotation.Nullable; +@@ -10,10 +10,6 @@ import android.content.Context; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.auth.AccountChangeEvent; -import com.google.android.gms.auth.GoogleAuthException; -import com.google.android.gms.auth.GoogleAuthUtil; - + import org.chromium.base.ApplicationState; + import org.chromium.base.ApplicationStatus; import org.chromium.base.ContextUtils; - import org.chromium.base.Log; - import org.chromium.base.task.AsyncTask; -@@ -62,23 +58,7 @@ public class SigninHelper { +@@ -64,23 +60,7 @@ public class SigninHelper implements ApplicationStatus.ApplicationStateListener @Override public List getAccountChangeEvents( Context context, int index, String accountName) { diff --git a/build/patches/kill-GCM.patch b/build/patches/kill-GCM.patch index 8a893f29..5c35b12c 100644 --- a/build/patches/kill-GCM.patch +++ b/build/patches/kill-GCM.patch @@ -3,10 +3,10 @@ Date: Fri, 22 Jun 2018 17:11:38 +0200 Subject: kill GCM --- - ...em_webview_bundle.AndroidManifest.expected | 7 - + ...em_webview_bundle.AndroidManifest.expected | 6 - chrome/android/BUILD.gn | 1 - - chrome/android/chrome_java_sources.gni | 6 - - chrome/android/java/AndroidManifest.xml | 62 ------ + chrome/android/chrome_java_sources.gni | 7 - + chrome/android/java/AndroidManifest.xml | 53 ----- .../ChromeBackgroundTaskFactory.java | 3 - .../ntp/snippets/SnippetsLauncher.java | 43 ---- .../services/gcm/GCMBackgroundTask.java | 2 +- @@ -17,41 +17,37 @@ Subject: kill GCM .../gcm_driver/instance_id/android/BUILD.gn | 1 - .../instance_id/InstanceIDBridge.java | 49 +---- components/sync/android/BUILD.gn | 1 - - third_party/cacheinvalidation/BUILD.gn | 6 - - .../contrib/MultiplexingGcmListener.java | 91 +------- - .../channel/AndroidNetworkChannel.java | 6 +- - 17 files changed, 9 insertions(+), 478 deletions(-) + 14 files changed, 7 insertions(+), 368 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected +++ b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected -@@ -21,10 +21,6 @@ +@@ -19,11 +19,6 @@ android:multiArch="true" android:name="org.chromium.android_webview.nonembedded.WebViewApkApplication" android:use32bitAbi="true"> -- - +- # DIFF-ANCHOR: ea1a94af + + android:label="WebView DevTools" +@@ -57,7 +52,6 @@ + android:visibleToInstantApps="true"> + # DIFF-ANCHOR: b7cc06e9 -- - +- + + + @@ -106,7 +110,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} -@@ -929,45 +924,6 @@ by a child template that "extends" this file. +@@ -940,36 +935,6 @@ by a child template that "extends" this file. android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:hardwareAccelerated="false" /> @@ -120,7 +124,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - -- +- - @@ -128,13 +132,6 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - -- -- -- -- -- -- - - @@ -144,15 +141,13 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - -- - - -@@ -989,28 +945,10 @@ by a child template that "extends" this file. +@@ -991,28 +956,10 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -308,7 +303,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GC diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn -@@ -103,7 +103,6 @@ if (is_android) { +@@ -104,7 +104,6 @@ if (is_android) { bypass_platform_checks = true testonly = true sources = [ @@ -562,9 +557,9 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/ diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/android/BUILD.gn --- a/components/gcm_driver/android/BUILD.gn +++ b/components/gcm_driver/android/BUILD.gn -@@ -14,7 +14,6 @@ android_library("gcm_driver_java") { - "//base:jni_java", +@@ -15,7 +15,6 @@ android_library("gcm_driver_java") { "//content/public/android:content_java", + "//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:com_google_code_findbugs_jsr305_java", - "//third_party/android_sdk:android_gcm_java", ] @@ -573,7 +568,7 @@ diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/andr diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn --- a/components/gcm_driver/instance_id/android/BUILD.gn +++ b/components/gcm_driver/instance_id/android/BUILD.gn -@@ -27,7 +27,6 @@ android_library("instance_id_driver_java") { +@@ -28,7 +28,6 @@ android_library("instance_id_driver_java") { sources = [ "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java", @@ -690,184 +685,9 @@ diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn "//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:com_google_code_findbugs_jsr305_java", - "//third_party/android_sdk:android_gcm_java", - "//third_party/cacheinvalidation:cacheinvalidation_javalib", - "//third_party/cacheinvalidation:cacheinvalidation_proto_java", ] -diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn ---- a/third_party/cacheinvalidation/BUILD.gn -+++ b/third_party/cacheinvalidation/BUILD.gn -@@ -138,7 +138,6 @@ if (is_android) { - "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", - "//third_party/android_protobuf:protobuf_nano_javalib", -- "//third_party/android_sdk:android_gcm_java", - ] - - sources = [ -@@ -204,13 +203,8 @@ if (is_android) { - "src/java/com/google/ipc/invalidation/ticl/android2/WakeLockManager.java", - "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelConstants.java", - "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelPreferences.java", -- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java", -- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java", -- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java", -- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java", - "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java", - "src/java/com/google/ipc/invalidation/ticl/android2/channel/CommonUtils.java", -- "src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java", - "src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmUpstreamSenderService.java", - "src/java/com/google/ipc/invalidation/ticl/proto/AndroidChannel.java", - "src/java/com/google/ipc/invalidation/ticl/proto/AndroidListenerProtocol.java", -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java -@@ -16,9 +16,6 @@ - - package com.google.ipc.invalidation.external.client.contrib; - --import com.google.android.gcm.GCMBaseIntentService; --import com.google.android.gcm.GCMBroadcastReceiver; --import com.google.android.gcm.GCMRegistrar; - import com.google.ipc.invalidation.external.client.SystemResources.Logger; - import com.google.ipc.invalidation.external.client.android.service.AndroidLogger; - import com.google.ipc.invalidation.ticl.android2.WakeLockManager; -@@ -69,7 +66,7 @@ import android.content.pm.ServiceInfo; - * there is nothing to do except log an error (which this class does). - * - */ --public class MultiplexingGcmListener extends GCMBaseIntentService { -+public class MultiplexingGcmListener { - /* This class is public so that it can be instantiated by the Android runtime. */ - - /** Constants used in broadcast Intents. */ -@@ -105,18 +102,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService { - public static final String EXTRA_DATA_NUM_DELETED_MSGS = PREFIX + "NUM_DELETED_MSGS"; - } - -- /** -- * {@link GCMBroadcastReceiver} that forwards GCM intents to the {@code MultiplexingGcmListener} -- * class. -- */ -- public static class GCMReceiver extends GCMBroadcastReceiver { -- /* This class is public so that it can be instantiated by the Android runtime. */ -- @Override -- protected String getGCMIntentServiceClassName(Context context) { -- return MultiplexingGcmListener.class.getName(); -- } -- } -- - /** - * Convenience base class for client implementations. It provides base classes for a broadcast - * receiver and an intent service that work together to handle events from the -@@ -260,80 +245,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService { - /** Logger. */ - private static final Logger logger = AndroidLogger.forTag("MplexGcmListener"); - -- // All onYYY methods work by constructing an appropriate Intent and broadcasting it. -- -- @Override -- protected void onMessage(Context context, Intent intent) { -- Intent newIntent = new Intent(); -- newIntent.putExtra(Intents.EXTRA_OP_MESSAGE, true); -- newIntent.putExtras(intent); -- rebroadcast(newIntent); -- } -- -- @Override -- protected void onRegistered(Context context, String registrationId) { -- Intent intent = new Intent(); -- intent.putExtra(Intents.EXTRA_OP_REGISTERED, true); -- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId); -- rebroadcast(intent); -- } -- -- @Override -- protected void onUnregistered(Context context, String registrationId) { -- Intent intent = new Intent(); -- intent.putExtra(Intents.EXTRA_OP_UNREGISTERED, true); -- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId); -- rebroadcast(intent); -- } -- -- @Override -- protected void onDeletedMessages(Context context, int total) { -- Intent intent = new Intent(); -- intent.putExtra(Intents.EXTRA_OP_DELETED_MESSAGES, true); -- intent.putExtra(Intents.EXTRA_DATA_NUM_DELETED_MSGS, total); -- rebroadcast(intent); -- } -- -- @Override -- protected void onError(Context context, String errorId) { -- // This is called for unrecoverable errors, so just log a warning. -- logger.warning("GCM error: %s", errorId); -- } -- -- @Override -- protected String[] getSenderIds(Context context) { -- return readSenderIdsFromManifestOrDie(this); -- } -- -- /** -- * Broadcasts {@code intent} with the action set to {@link Intents#ACTION} and the package name -- * set to the package name of this service. -- */ -- private void rebroadcast(Intent intent) { -- intent.setAction(Intents.ACTION); -- intent.setPackage(getPackageName()); -- sendBroadcast(intent); -- } -- -- /** -- * Registers with GCM if not already registered. Also verifies that the device supports GCM -- * and that the manifest is correctly configured. Returns the existing registration id, if one -- * exists, or the empty string if one does not. -- * -- * @throws UnsupportedOperationException if the device does not have all GCM dependencies -- * @throws IllegalStateException if the manifest is not correctly configured -- */ -- public static String initializeGcm(Context context) { -- AndroidChannelPreferences.setGcmChannelType(GcmChannelType.DEFAULT); -- GCMRegistrar.checkDevice(context); -- GCMRegistrar.checkManifest(context); -- final String regId = GCMRegistrar.getRegistrationId(context); -- if (regId.isEmpty()) { -- GCMRegistrar.register(context, readSenderIdsFromManifestOrDie(context)); -- } -- return regId; -- } -- - /** - * Returns the GCM sender ids from {@link #GCM_SENDER_IDS_METADATA_KEY} or throws a - * {@code RuntimeException} if they are not defined. -diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java ---- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java -+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java -@@ -48,16 +48,12 @@ public class AndroidNetworkChannel implements TestableNetworkChannel { - Intent intent = ProtocolIntents.newOutboundMessageIntent(outgoingMessage); - - // Select the sender service to use for upstream message. -- if (AndroidChannelPreferences.getGcmChannelType() == GcmChannelType.GCM_UPSTREAM) { - String upstreamServiceClass = new AndroidTiclManifest(context).getGcmUpstreamServiceClass(); - if (upstreamServiceClass == null || upstreamServiceClass.isEmpty()) { - logger.warning("GcmUpstreamSenderService class not found."); - return; - } - intent.setClassName(context, upstreamServiceClass); -- } else { -- intent.setClassName(context, AndroidMessageSenderService.class.getName()); -- } - try { - context.startService(intent); - } catch (IllegalStateException exception) { -@@ -77,6 +73,6 @@ public class AndroidNetworkChannel implements TestableNetworkChannel { - - @Override - public NetworkEndpointId getNetworkIdForTest() { -- return AndroidMessageSenderService.getNetworkEndpointId(context, resources.getLogger()); -+ return null; - } - } + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] + srcjar_deps = [ ":java_enums" ] -- 2.17.1 diff --git a/build/patches/kill-TOS-and-metrics-opt-out.patch b/build/patches/kill-TOS-and-metrics-opt-out.patch index d346a20b..4c1cc31d 100644 --- a/build/patches/kill-TOS-and-metrics-opt-out.patch +++ b/build/patches/kill-TOS-and-metrics-opt-out.patch @@ -11,9 +11,9 @@ Subject: kill TOS and metrics opt-out diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml --- a/chrome/android/java/res/layout/fre_tosanduma.xml +++ b/chrome/android/java/res/layout/fre_tosanduma.xml -@@ -62,7 +62,7 @@ - android:layout_marginBottom="@dimen/fre_vertical_spacing" - android:gravity="center" +@@ -83,7 +83,7 @@ + android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/fre_tos_bottom_margin" android:lineSpacingMultiplier="1.4" - android:textAppearance="@style/TextAppearance.TextMedium.Primary" /> + android:textAppearance="@style/TextAppearance.TextMedium.Primary" android:visibility="gone" /> @@ -23,18 +23,18 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -153,7 +153,6 @@ - 12dp - 24dp +@@ -154,7 +154,6 @@ + 36dp 120dp + 110dp - 12dp - - -