From c7a6d5e00666591a79cc249c77e1a1fcbec3b3df Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 12 Jul 2022 00:14:07 +0200 Subject: [PATCH] Fixes from debug build and uazo --- build/LASTCHANGE | 2 +- build/RELEASE | 2 +- build/RELEASE_COMMIT | 2 +- .../Add-option-to-force-tablet-UI.patch | 117 +++++-- ...ow-building-without-enable_reporting.patch | 39 +-- .../Bromite-AdBlockUpdaterService.patch | 14 +- build/patches/Bromite-package-name.patch | 2 +- build/patches/Chromium-package-name.patch | 1 - build/patches/Disable-AGSA-by-default.patch | 6 +- build/patches/Disable-safety-check.patch | 6 +- .../Experimental-user-scripts-support.patch | 2 +- .../Move-navigation-bar-to-bottom.patch | 71 +---- .../Remove-signin-and-sync-integrations.patch | 285 +++++++++++++++++- 13 files changed, 432 insertions(+), 117 deletions(-) diff --git a/build/LASTCHANGE b/build/LASTCHANGE index 44b544b1..c1dde267 100644 --- a/build/LASTCHANGE +++ b/build/LASTCHANGE @@ -1 +1 @@ -1ab0cee259c250b41b2adb8e3a7fabc967f5b762- \ No newline at end of file +c22bc105a0fa559ec08a6f10c605cc62b6e81ac9- \ No newline at end of file diff --git a/build/RELEASE b/build/RELEASE index 6a616ecc..612fbf25 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -103.0.5060.115 \ No newline at end of file +103.0.5060.121 \ No newline at end of file diff --git a/build/RELEASE_COMMIT b/build/RELEASE_COMMIT index cce6222f..a725588a 100644 --- a/build/RELEASE_COMMIT +++ b/build/RELEASE_COMMIT @@ -1 +1 @@ -3764ccd59b9f1ec1d98138dd253bb0eb08887649 \ No newline at end of file +ada3f42065259282d4465fc093d31c6148ae4b19 \ No newline at end of file diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 529e9d7c..7081d6b4 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -4,18 +4,87 @@ Subject: Add option to force tablet UI License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../preferences/ChromePreferenceKeys.java | 1 + - .../preferences/LegacyChromePreferenceKeys.java | 1 + - .../browser/omnibox/LocationBarCoordinator.java | 2 +- - .../android/strings/android_chrome_strings.grd | 6 ++++++ - .../toolbar/top/ToolbarControlContainer.java | 16 ---------------- - components/BUILD.gn | 6 +++--- - .../java/res/xml/accessibility_preferences.xml | 5 +++++ - .../accessibility/AccessibilitySettings.java | 10 ++++++++++ - ui/android/BUILD.gn | 2 ++ - .../org/chromium/ui/base/DeviceFormFactor.java | 5 +++++ - 10 files changed, 34 insertions(+), 20 deletions(-) + .../ChromeAccessibilitySettingsDelegate.java | 57 +++++++++++++++++++ + .../preferences/ChromePreferenceKeys.java | 1 + + .../LegacyChromePreferenceKeys.java | 1 + + .../omnibox/LocationBarCoordinator.java | 2 +- + .../strings/android_chrome_strings.grd | 6 ++ + .../toolbar/top/ToolbarControlContainer.java | 16 ------ + components/BUILD.gn | 6 +- + .../res/xml/accessibility_preferences.xml | 5 ++ + .../accessibility/AccessibilitySettings.java | 10 ++++ + .../AccessibilitySettingsDelegate.java | 2 + + ui/android/BUILD.gn | 2 + + .../chromium/ui/base/DeviceFormFactor.java | 5 ++ + 12 files changed, 93 insertions(+), 20 deletions(-) +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +@@ -67,6 +67,63 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting + return new ReaderForAccessibilityDelegate(); + } + ++ private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { ++ @Override ++ public boolean isEnabled() { ++ return SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false); ++ } ++ ++ @Override ++ public void setEnabled(boolean value) { ++ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, value); ++ } ++ } ++ ++ @Override ++ public BooleanPreferenceDelegate getForceTabletUIDelegate() { ++ return new ForceTabletUIDelegate(); ++ } ++ ++ private static class MoveTopToolbarToBottomDelegate implements BooleanPreferenceDelegate { ++ @Override ++ public boolean isEnabled() { ++ return CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); ++ } ++ ++ @Override ++ public void setEnabled(boolean value) { ++ CachedFeatureFlags.setFlagEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM, ++ "move-top-toolbar-to-bottom", value); ++ } ++ } ++ ++ @Override ++ public BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate() { ++ return new MoveTopToolbarToBottomDelegate(); ++ } ++ ++ @Override ++ public void requestRestart(Activity activity) { ++ Snackbar mSnackbar = Snackbar.make(activity.getString(R.string.ui_relaunch_notice), ++ new SnackbarManager.SnackbarController() { ++ @Override ++ public void onDismissNoAction(Object actionData) { } ++ ++ @Override ++ public void onAction(Object actionData) { ++ ApplicationLifetime.terminate(true); ++ } ++ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) ++ .setSingleLine(false) ++ .setAction(activity.getString(R.string.relaunch), ++ /*actionData*/null) ++ .setDuration(/*durationMs*/70000); ++ if (!mSnackbarManager.isShowing()) ++ mSnackbarManager.showSnackbar(mSnackbar); ++ } ++ + @Override + public void addExtraPreferences(PreferenceFragmentCompat fragment) { + if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java @@ -140,37 +209,49 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -27,6 +27,7 @@ public class AccessibilitySettings +@@ -27,6 +27,8 @@ public class AccessibilitySettings public static final String PREF_READER_FOR_ACCESSIBILITY = "reader_for_accessibility"; public static final String PREF_CAPTIONS = "captions"; ++ private BooleanPreferenceDelegate mForceTabletUIDelegate; + static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; private TextScalePreference mTextScalePref; private ChromeBaseCheckBoxPreference mForceEnableZoomPref; private boolean mRecordFontSizeChangeOnStop; -@@ -85,6 +86,12 @@ public class AccessibilitySettings +@@ -85,6 +87,12 @@ public class AccessibilitySettings getPreferenceScreen().removePreference(readerForAccessibilityPref); } + ChromeBaseCheckBoxPreference forceTabletUiPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_FORCE_TABLET_UI); -+ forceTabletUiPref.setChecked(SharedPreferencesManager.getInstance().readBoolean( -+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)); ++ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); ++ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); + forceTabletUiPref.setOnPreferenceChangeListener(this); + ChromeBaseCheckBoxPreference accessibilityTabSwitcherPref = (ChromeBaseCheckBoxPreference) findPreference( AccessibilityConstants.ACCESSIBILITY_TAB_SWITCHER); -@@ -133,6 +140,9 @@ public class AccessibilitySettings +@@ -133,6 +141,8 @@ public class AccessibilitySettings mFontSizePrefs.setUserFontScaleFactor((Float) newValue); } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); + } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { -+ SharedPreferencesManager.getInstance().writeBoolean( -+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, (Boolean) newValue); ++ mForceTabletUIDelegate.setEnabled((Boolean) newValue); } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { if (mReaderForAccessibilityDelegate != null) { mReaderForAccessibilityDelegate.setEnabled((Boolean) newValue); +diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java ++++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +@@ -44,6 +44,8 @@ public interface AccessibilitySettingsDelegate { + */ + BooleanPreferenceDelegate getReaderForAccessibilityDelegate(); + ++ BooleanPreferenceDelegate getForceTabletUIDelegate(); ++ + /** + * Allows the embedder to add more preferences to the preference screen. + * diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 0484c38a..7fb2285e 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../net/cross_origin_embedder_policy_reporter.cc | 4 +++- .../net/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- content/browser/net/reporting_service_proxy.cc | 3 +++ - .../renderer_host/render_frame_host_impl.cc | 14 ++++++++++++++ + .../renderer_host/render_frame_host_impl.cc | 6 ------ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + net/reporting/reporting_service.cc | 6 ++++++ @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../blink/renderer/core/frame/local_frame.h | 6 +++--- .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- - 16 files changed, 63 insertions(+), 19 deletions(-) + 16 files changed, 49 insertions(+), 25 deletions(-) diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc @@ -188,31 +188,16 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -11437,6 +11437,7 @@ void RenderFrameHostImpl::TakeNewDocumentPropertiesFromNavigation( - early_hints_manager_ = navigation_request->TakeEarlyHintsManager(); - - // Only take some properties if this is not the synchronous initial -+#if BUILDFLAG(ENABLE_REPORTING) - // `about:blank` navigation, because the values set at construction time - // should remain unmodified. - if (!navigation_request->IsWaitingToCommit()) { -@@ -11555,6 +11556,19 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( - /*type=*/"crash", /*group=*/"default", last_committed_url_, - GetReportingSource(), isolation_info_.network_isolation_key(), - absl::nullopt /* user_agent */, std::move(body)); -+#else -+} -+ -+void RenderFrameHostImpl::OnSameDocumentCommitProcessed( -+ const base::UnguessableToken& navigation_token, -+ bool should_replace_current_entry, -+ blink::mojom::CommitResult result) { -+} -+ -+void RenderFrameHostImpl::MaybeGenerateCrashReport( -+ base::TerminationStatus status, -+ int exit_code) { -+#endif +@@ -11549,12 +11549,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( + auto body = base::DictionaryValue(); + if (!reason.empty()) + body.SetString("reason", reason); +- +- // Send the crash report to the Reporting API. +- GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport( +- /*type=*/"crash", /*group=*/"default", last_committed_url_, +- GetReportingSource(), isolation_info_.network_isolation_key(), +- absl::nullopt /* user_agent */, std::move(body)); } void RenderFrameHostImpl::SendCommitNavigation( diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index e44c7c85..a026b8d0 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -11,6 +11,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681) License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + chrome/android/BUILD.gn | 1 + chrome/android/chrome_java_resources.gni | 2 + chrome/android/chrome_java_sources.gni | 2 + .../java/res/layout/adblock_editor.xml | 67 +++++ @@ -48,7 +49,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/subresource_filter_features.cc | 113 +------- .../core/common/indexed_ruleset.cc | 5 +- .../navigation_throttle_runner.cc | 5 - - 37 files changed, 1160 insertions(+), 126 deletions(-) + 38 files changed, 1161 insertions(+), 126 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 @@ -58,6 +59,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html create mode 100644 components/component_updater/download_filters_task.cc create mode 100644 components/component_updater/download_filters_task.h +diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +--- a/chrome/android/BUILD.gn ++++ b/chrome/android/BUILD.gn +@@ -357,6 +357,7 @@ android_library("chrome_java") { + "//chrome/browser/download/android:java", + "//chrome/browser/download/android:java_resources", + "//chrome/browser/enterprise/util:java", ++ "//chrome/browser/endpoint_fetcher:java", + "//chrome/browser/feature_engagement:java", + "//chrome/browser/feature_guide/notifications:java", + "//chrome/browser/feed/android: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 diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index cec58b23..91ad27db 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -16,7 +16,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn -_default_package = "org.chromium.chrome" +_default_package = "org.bromite.bromite" - if (android_channel != "default" && android_channel != "stable") { + if (android_channel != "default") { # android-binary-size trybot may checks if an internal Chrome variant's # AndroidManifest is as expected by ensuring the differences between its -- diff --git a/build/patches/Chromium-package-name.patch b/build/patches/Chromium-package-name.patch index 45bad2a1..bb919246 100644 --- a/build/patches/Chromium-package-name.patch +++ b/build/patches/Chromium-package-name.patch @@ -3,7 +3,6 @@ Date: Sat, 8 Jan 2022 19:42:34 +0100 Subject: Chromium package name License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html - --- chrome/android/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/patches/Disable-AGSA-by-default.patch b/build/patches/Disable-AGSA-by-default.patch index 086e2949..cb0ca6b5 100644 --- a/build/patches/Disable-AGSA-by-default.patch +++ b/build/patches/Disable-AGSA-by-default.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -364,7 +364,6 @@ android_library("chrome_java") { +@@ -365,7 +365,6 @@ android_library("chrome_java") { "//chrome/browser/first_run/android:java", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/history_clusters:java", "//chrome/browser/history_clusters:java_resources", "//chrome/browser/image_descriptions:java", -@@ -974,7 +973,6 @@ junit_binary("chrome_junit_tests") { +@@ -975,7 +974,6 @@ junit_binary("chrome_junit_tests") { "//chrome/browser/flags:flags_junit_tests", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/history_clusters:java", "//chrome/browser/image_descriptions:java", "//chrome/browser/image_editor/public:java", -@@ -1367,7 +1365,6 @@ android_library("chrome_test_java") { +@@ -1368,7 +1366,6 @@ android_library("chrome_test_java") { "//chrome/browser/first_run/android:java", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index d896494c..63e5fdbf 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -401,7 +401,6 @@ android_library("chrome_java") { +@@ -402,7 +402,6 @@ android_library("chrome_java") { "//chrome/browser/privacy_sandbox/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/safe_browsing/android:java", @@ -22,7 +22,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:java", "//chrome/browser/segmentation_platform:factory_java", "//chrome/browser/selection/android:java", -@@ -1003,8 +1002,6 @@ junit_binary("chrome_junit_tests") { +@@ -1004,8 +1003,6 @@ junit_binary("chrome_junit_tests") { "//chrome/browser/preferences:java", "//chrome/browser/preferences:preferences_junit_tests", "//chrome/browser/profiles/android:java", @@ -31,7 +31,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:java", "//chrome/browser/share:java", "//chrome/browser/tab:java", -@@ -1408,8 +1405,6 @@ android_library("chrome_test_java") { +@@ -1409,8 +1406,6 @@ android_library("chrome_test_java") { "//chrome/browser/profiles/android:java", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index e292351c..5a7fe4db 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -241,7 +241,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } if (enable_vr) { -@@ -555,6 +559,7 @@ android_library("chrome_java") { +@@ -556,6 +560,7 @@ android_library("chrome_java") { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index a5c3e4f5..687d6d0b 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -17,13 +17,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html cc/input/browser_controls_offset_manager.cc | 6 +++ cc/trees/layer_tree_host_impl.cc | 3 ++ .../tab_management/TabGroupUiCoordinator.java | 7 ++- - .../tab_management/TabGroupUiMediator.java | 50 +++++++++++++++++- + .../tab_management/TabGroupUiMediator.java | 50 ++++++++++++++++++- .../tab_management/TabGroupUiProperties.java | 6 ++- .../tab_management/TabGroupUiToolbarView.java | 18 +++++++ .../tab_management/TabGroupUiViewBinder.java | 3 ++ .../tab_management/TabListRecyclerView.java | 19 ++++++- .../tab_management/TabSwitcherMediator.java | 15 ++++++ - .../ChromeAccessibilitySettingsDelegate.java | 52 +++++++++++++++++++ + .../ChromeAccessibilitySettingsDelegate.java | 14 ++++++ .../chrome/browser/app/ChromeActivity.java | 13 +++++ .../browser/app/flags/ChromeCachedFlags.java | 1 + .../compositor/CompositorViewHolder.java | 6 +++ @@ -32,11 +32,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../overlays/strip/StripLayoutHelper.java | 2 +- .../strip/StripLayoutHelperManager.java | 36 +++++++++++-- .../scene_layer/StaticTabSceneLayer.java | 8 ++- - .../scene_layer/TabListSceneLayer.java | 14 +++++ + .../scene_layer/TabListSceneLayer.java | 14 ++++++ .../scene_layer/TabStripSceneLayer.java | 15 +++++- .../browser/findinpage/FindToolbarTablet.java | 11 ++-- .../fullscreen/BrowserControlsManager.java | 13 +++++ - .../messages/MessageContainerCoordinator.java | 17 +++++- + .../messages/MessageContainerCoordinator.java | 17 ++++++- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 13 +++-- .../chrome/browser/ntp/RecentTabsPage.java | 22 ++++++-- @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/settings/SettingsActivity.java | 5 ++ .../StatusIndicatorCoordinator.java | 10 ++++ .../StatusIndicatorSceneLayer.java | 7 ++- - .../browser/toolbar/ToolbarManager.java | 37 +++++++++++-- + .../browser/toolbar/ToolbarManager.java | 37 ++++++++++++-- .../chrome/browser/ui/BottomContainer.java | 19 +++++++ chrome/browser/about_flags.cc | 5 ++ .../scene_layer/tab_strip_scene_layer.cc | 16 ++++-- @@ -56,13 +56,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../flags/android/chrome_feature_list.cc | 2 + .../browser/flags/CachedFeatureFlags.java | 19 +++++++ .../browser/flags/ChromeFeatureList.java | 2 + - .../chrome/browser/ui/appmenu/AppMenu.java | 25 +++++++++ + .../chrome/browser/ui/appmenu/AppMenu.java | 25 ++++++++++ .../ui/appmenu/AppMenuHandlerImpl.java | 11 ++++ .../omnibox/LocationBarCoordinator.java | 9 +++- .../browser/omnibox/UrlBarCoordinator.java | 11 +++- .../suggestions/AutocompleteCoordinator.java | 16 +++++- .../suggestions/AutocompleteMediator.java | 7 ++- - .../OmniboxSuggestionsDropdown.java | 23 +++++++- + .../OmniboxSuggestionsDropdown.java | 23 ++++++++- .../OmniboxSuggestionsDropdownEmbedder.java | 4 ++ .../strings/android_chrome_strings.grd | 6 +++ chrome/browser/ui/android/toolbar/BUILD.gn | 1 + @@ -72,7 +72,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bottom/BottomControlsMediator.java | 9 ++++ .../bottom/BottomControlsProperties.java | 5 +- .../bottom/BottomControlsViewBinder.java | 2 + - .../bottom/ScrollingBottomViewSceneLayer.java | 20 ++++++- + .../bottom/ScrollingBottomViewSceneLayer.java | 20 +++++++- .../toolbar/top/ToolbarControlContainer.java | 11 ++++ .../top/TopToolbarOverlayCoordinator.java | 7 +++ .../top/TopToolbarOverlayProperties.java | 8 ++- @@ -81,7 +81,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../accessibility/AccessibilitySettings.java | 16 ++++++ .../AccessibilitySettingsDelegate.java | 6 +++ .../render_widget_host_view_android.cc | 3 ++ - 69 files changed, 735 insertions(+), 53 deletions(-) + 69 files changed, 697 insertions(+), 53 deletions(-) diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc @@ -501,51 +501,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s private static class ReaderForAccessibilityDelegate implements BooleanPreferenceDelegate { @Override public boolean isEnabled() { -@@ -67,6 +81,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting - return new ReaderForAccessibilityDelegate(); - } - -+ private static class MoveTopToolbarToBottomDelegate implements BooleanPreferenceDelegate { -+ @Override -+ public boolean isEnabled() { -+ return CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); -+ } -+ -+ @Override -+ public void setEnabled(boolean value) { -+ CachedFeatureFlags.setFlagEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM, -+ "move-top-toolbar-to-bottom", value); -+ } -+ } -+ -+ @Override -+ public BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate() { -+ return new MoveTopToolbarToBottomDelegate(); -+ } -+ -+ @Override -+ public void requestRestart(Activity activity) { -+ Snackbar mSnackbar = Snackbar.make(activity.getString(R.string.ui_relaunch_notice), -+ new SnackbarManager.SnackbarController() { -+ @Override -+ public void onDismissNoAction(Object actionData) { } -+ -+ @Override -+ public void onAction(Object actionData) { -+ ApplicationLifetime.terminate(true); -+ } -+ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) -+ .setSingleLine(false) -+ .setAction(activity.getString(R.string.relaunch), -+ /*actionData*/null) -+ .setDuration(/*durationMs*/70000); -+ if (!mSnackbarManager.isShowing()) -+ mSnackbarManager.showSnackbar(mSnackbar); -+ } -+ - @Override - public void addExtraPreferences(PreferenceFragmentCompat fragment) { - if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { 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 @@ -2262,9 +2217,9 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -31,12 +31,15 @@ public class AccessibilitySettings - public static final String PREF_CAPTIONS = "captions"; +@@ -32,12 +32,15 @@ public class AccessibilitySettings + private BooleanPreferenceDelegate mForceTabletUIDelegate; static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; + static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom"; + @@ -2278,7 +2233,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private FontSizePrefs mFontSizePrefs; private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() { -@@ -56,6 +59,10 @@ public class AccessibilitySettings +@@ -57,6 +60,10 @@ public class AccessibilitySettings mFontSizePrefs = FontSizePrefs.getInstance(delegate.getBrowserContextHandle()); } @@ -2289,7 +2244,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); -@@ -105,6 +112,12 @@ public class AccessibilitySettings +@@ -106,6 +113,12 @@ public class AccessibilitySettings getPreferenceScreen().removePreference(accessibilityTabSwitcherPref); } diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch index 1103d0e9..5fb1b45c 100644 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ b/build/patches/Remove-signin-and-sync-integrations.patch @@ -104,10 +104,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/password_manager_client_helper.cc | 43 +--- .../core/browser/sync_credentials_filter.cc | 48 +--- components/signin/features.gni | 4 +- + ...e_oauth2_token_service_delegate_android.cc | 134 +----------- + ...le_oauth2_token_service_delegate_android.h | 10 - .../signin/SystemAccountManagerDelegate.java | 25 +-- + .../ProfileOAuth2TokenServiceDelegate.java | 52 ----- .../net/HttpNegotiateAuthenticator.java | 88 +------- .../chromoting/base/OAuthTokenFetcher.java | 2 - - 88 files changed, 85 insertions(+), 2097 deletions(-) + 91 files changed, 88 insertions(+), 2290 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -4503,6 +4506,218 @@ diff --git a/components/signin/features.gni b/components/signin/features.gni # Mirror is enabled and other account consistency mechanisms are not available. -enable_mirror = is_android || is_chromeos || is_ios +enable_mirror = false +diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc +--- a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc ++++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc +@@ -14,7 +14,6 @@ + #include "base/memory/raw_ptr.h" + #include "base/metrics/histogram_functions.h" + #include "base/metrics/histogram_macros.h" +-#include "components/signin/public/android/jni_headers/ProfileOAuth2TokenServiceDelegate_jni.h" + #include "components/signin/public/base/account_consistency_method.h" + #include "components/signin/public/identity_manager/account_info.h" + #include "google_apis/gaia/gaia_auth_util.h" +@@ -91,20 +90,7 @@ AndroidAccessTokenFetcher::~AndroidAccessTokenFetcher() {} + void AndroidAccessTokenFetcher::Start(const std::string& client_id, + const std::string& client_secret, + const std::vector& scopes) { +- JNIEnv* env = AttachCurrentThread(); +- std::string scope = CombineScopes(scopes); +- ScopedJavaLocalRef j_email = +- ConvertUTF8ToJavaString(env, account_id_); +- ScopedJavaLocalRef j_scope = ConvertUTF8ToJavaString(env, scope); +- std::unique_ptr heap_callback( +- new FetchOAuth2TokenCallback( +- base::BindOnce(&AndroidAccessTokenFetcher::OnAccessTokenResponse, +- weak_factory_.GetWeakPtr()))); +- +- // Call into Java to get a new token. +- signin::Java_ProfileOAuth2TokenServiceDelegate_getAccessTokenFromNative( +- env, oauth2_token_service_delegate_->GetJavaObject(), j_email, j_scope, +- reinterpret_cast(heap_callback.release())); ++ CancelRequest(); + } + + void AndroidAccessTokenFetcher::CancelRequest() { +@@ -153,27 +139,6 @@ ProfileOAuth2TokenServiceDelegateAndroid:: + fire_refresh_token_loaded_(RT_LOAD_NOT_START) { + DVLOG(1) << "ProfileOAuth2TokenServiceDelegateAndroid::ctor"; + DCHECK(account_tracker_service_); +- +- JNIEnv* env = AttachCurrentThread(); +- base::android::ScopedJavaLocalRef local_java_ref = +- signin::Java_ProfileOAuth2TokenServiceDelegate_Constructor( +- env, reinterpret_cast(this), +- account_tracker_service_->GetJavaObject()); +- java_ref_.Reset(env, local_java_ref.obj()); +- +- if (account_tracker_service_->GetMigrationState() == +- AccountTrackerService::MIGRATION_IN_PROGRESS) { +- std::vector accounts = GetAccounts(); +- std::vector accounts_id; +- for (auto account_name : accounts) { +- std::string email = account_name.ToString(); +- AccountInfo account_info = +- account_tracker_service_->FindAccountInfoByEmail(email); +- DCHECK(!account_info.gaia.empty()); +- accounts_id.push_back(CoreAccountId::FromGaiaId(account_info.gaia)); +- } +- SetAccounts(accounts_id); +- } + } + + ProfileOAuth2TokenServiceDelegateAndroid:: +@@ -181,30 +146,12 @@ ProfileOAuth2TokenServiceDelegateAndroid:: + + ScopedJavaLocalRef + ProfileOAuth2TokenServiceDelegateAndroid::GetJavaObject() { +- return ScopedJavaLocalRef(java_ref_); ++ return nullptr; + } + + bool ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable( + const CoreAccountId& account_id) const { +- DVLOG(1) +- << "ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable" +- << " account= " << account_id; +- std::string account_name = MapAccountIdToAccountName(account_id); +- if (account_name.empty()) { +- // This corresponds to the case when the account with id |account_id| is not +- // present on the device and thus was not seeded. +- DVLOG(1) +- << "ProfileOAuth2TokenServiceDelegateAndroid::RefreshTokenIsAvailable" +- << " cannot find account name for account id " << account_id; +- return false; +- } +- JNIEnv* env = AttachCurrentThread(); +- ScopedJavaLocalRef j_account_name = +- ConvertUTF8ToJavaString(env, account_name); +- jboolean refresh_token_is_available = +- signin::Java_ProfileOAuth2TokenServiceDelegate_hasOAuth2RefreshToken( +- env, java_ref_, j_account_name); +- return refresh_token_is_available == JNI_TRUE; ++ return false; + } + + GoogleServiceAuthError ProfileOAuth2TokenServiceDelegateAndroid::GetAuthError( +@@ -277,49 +224,11 @@ void ProfileOAuth2TokenServiceDelegateAndroid::OnAccessTokenInvalidated( + const std::string& client_id, + const OAuth2AccessTokenManager::ScopeSet& scopes, + const std::string& access_token) { +- ValidateAccountId(account_id); +- JNIEnv* env = AttachCurrentThread(); +- ScopedJavaLocalRef j_access_token = +- ConvertUTF8ToJavaString(env, access_token); +- signin::Java_ProfileOAuth2TokenServiceDelegate_invalidateAccessToken( +- env, java_ref_, j_access_token); + } + + void ProfileOAuth2TokenServiceDelegateAndroid:: + ReloadAllAccountsFromSystemWithPrimaryAccount( + const absl::optional& primary_account_id) { +- JNIEnv* env = AttachCurrentThread(); +- +- ScopedJavaLocalRef j_account_id = +- primary_account_id.has_value() +- ? ConvertUTF8ToJavaString(env, primary_account_id->ToString()) +- : nullptr; +- signin:: +- Java_ProfileOAuth2TokenServiceDelegate_seedAndReloadAccountsWithPrimaryAccount( +- env, java_ref_, j_account_id); +-} +- +-void ProfileOAuth2TokenServiceDelegateAndroid:: +- ReloadAllAccountsWithPrimaryAccountAfterSeeding( +- JNIEnv* env, +- const base::android::JavaParamRef& j_primary_account_id, +- const base::android::JavaParamRef& +- j_device_account_names) { +- absl::optional primary_account_id; +- if (j_primary_account_id) { +- primary_account_id = CoreAccountId::FromString( +- ConvertJavaStringToUTF8(env, j_primary_account_id)); +- } +- std::vector device_account_names; +- base::android::AppendJavaStringArrayToStringVector( +- env, j_device_account_names, &device_account_names); +- std::vector account_ids; +- for (const std::string& name : device_account_names) { +- CoreAccountId id(MapAccountNameToAccountId(name)); +- if (!id.empty()) +- account_ids.push_back(std::move(id)); +- } +- UpdateAccountList(primary_account_id, GetValidAccounts(), account_ids); + } + + void ProfileOAuth2TokenServiceDelegateAndroid::UpdateAccountList( +@@ -482,40 +391,3 @@ ProfileOAuth2TokenServiceDelegateAndroid::MapAccountNameToAccountId( + << "Can't find account id, account_name=" << account_name; + return account_id; + } +- +-namespace signin { +- +-// Called from Java when fetching of an OAuth2 token is finished. The +-// |authToken| param is only valid when |result| is true. +-// |expiration_time_secs| param is the number of seconds (NOT milliseconds) +-// after the Unix epoch when the token is scheduled to expire. +-// It is set to 0 if there's no known expiration time. +-void JNI_ProfileOAuth2TokenServiceDelegate_OnOAuth2TokenFetched( +- JNIEnv* env, +- const JavaParamRef& authToken, +- const jlong expiration_time_secs, +- jboolean isTransientError, +- jlong nativeCallback) { +- std::string token; +- if (authToken) +- token = ConvertJavaStringToUTF8(env, authToken); +- std::unique_ptr heap_callback( +- reinterpret_cast(nativeCallback)); +- GoogleServiceAuthError err = GoogleServiceAuthError::AuthErrorNone(); +- if (!authToken) { +- err = +- isTransientError +- ? GoogleServiceAuthError(GoogleServiceAuthError::CONNECTION_FAILED) +- : GoogleServiceAuthError::FromInvalidGaiaCredentialsReason( +- GoogleServiceAuthError::InvalidGaiaCredentialsReason:: +- CREDENTIALS_REJECTED_BY_SERVER); +- } +- +- const base::Time expiration_time = +- expiration_time_secs == 0 +- ? base::Time() +- : base::Time::FromJavaTime(expiration_time_secs * 1000); +- +- std::move(*heap_callback).Run(err, token, expiration_time); +-} +-} // namespace signin +diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h +--- a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h ++++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.h +@@ -59,14 +59,6 @@ class ProfileOAuth2TokenServiceDelegateAndroid + void ReloadAllAccountsFromSystemWithPrimaryAccount( + const absl::optional& primary_account_id) override; + +- // Resumes the reload of accounts once the account seeding is complete. +- // TODO(crbug.com/934688) Once ProfileOAuth2TokenServiceDelegate.java is +- // internalized, use CoreAccountId instead of String. +- void ReloadAllAccountsWithPrimaryAccountAfterSeeding( +- JNIEnv* env, +- const base::android::JavaParamRef& j_primary_account_id, +- const base::android::JavaParamRef& j_device_account_names); +- + // Takes a the signed in sync account as well as all the other + // android account ids and check the token status of each. + // NOTE: TokenAvailable notifications will be sent for all accounts, even if +@@ -117,8 +109,6 @@ class ProfileOAuth2TokenServiceDelegateAndroid + // Set accounts that have been advertised by OnRefreshTokenAvailable. + virtual void SetAccounts(const std::vector& accounts); + +- base::android::ScopedJavaGlobalRef java_ref_; +- + // Accounts that have been advertised by OnRefreshTokenAvailable. + std::vector accounts_; + diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java +++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -4547,6 +4762,74 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } @Nullable +diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java +--- a/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java ++++ b/components/signin/public/android/java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java +@@ -82,31 +82,6 @@ final class ProfileOAuth2TokenServiceDelegate { + private void getAccessTokenFromNative( + String accountEmail, String scope, final long nativeCallback) { + assert accountEmail != null : "Account email cannot be null!"; +- mAccountManagerFacade.getAccounts().then(accounts -> { +- final Account account = AccountUtils.findAccountByName(accounts, accountEmail); +- if (account == null) { +- ThreadUtils.postOnUiThread(() -> { +- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched( +- null, AccessTokenData.NO_KNOWN_EXPIRATION_TIME, false, nativeCallback); +- }); +- return; +- } +- String oauth2Scope = OAUTH2_SCOPE_PREFIX + scope; +- getAccessToken(account, oauth2Scope, new GetAccessTokenCallback() { +- @Override +- public void onGetTokenSuccess(AccessTokenData token) { +- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched( +- token.getToken(), token.getExpirationTimeSecs(), false, nativeCallback); +- } +- +- @Override +- public void onGetTokenFailure(boolean isTransientError) { +- ProfileOAuth2TokenServiceDelegateJni.get().onOAuth2TokenFetched(null, +- AccessTokenData.NO_KNOWN_EXPIRATION_TIME, isTransientError, +- nativeCallback); +- } +- }); +- }); + } + + /** +@@ -161,32 +136,5 @@ final class ProfileOAuth2TokenServiceDelegate { + @CalledByNative + void seedAndReloadAccountsWithPrimaryAccount(@Nullable String primaryAccountId) { + ThreadUtils.assertOnUiThread(); +- mAccountTrackerService.seedAccountsIfNeeded(() -> { +- final List accounts = AccountUtils.getAccountsIfFulfilledOrEmpty( +- AccountManagerFacadeProvider.getInstance().getAccounts()); +- ProfileOAuth2TokenServiceDelegateJni.get() +- .reloadAllAccountsWithPrimaryAccountAfterSeeding( +- mNativeProfileOAuth2TokenServiceDelegate, primaryAccountId, +- AccountUtils.toAccountNames(accounts).toArray(new String[0])); +- }); +- } +- +- @NativeMethods +- interface Natives { +- /** +- * Called to C++ when fetching of an OAuth2 token is finished. +- * @param authToken The string value of the OAuth2 token. +- * @param expirationTimeSecs The number of seconds after the Unix epoch when the token is +- * scheduled to expire. It is set to 0 if there's no known expiration time. +- * @param isTransientError Indicates if the error is transient (network timeout or +- * * unavailable, etc) or persistent (bad credentials, permission denied, etc). +- * @param nativeCallback the pointer to the native callback that should be run upon +- * completion. +- */ +- void onOAuth2TokenFetched(String authToken, long expirationTimeSecs, +- boolean isTransientError, long nativeCallback); +- void reloadAllAccountsWithPrimaryAccountAfterSeeding( +- long nativeProfileOAuth2TokenServiceDelegateAndroid, @Nullable String accountId, +- String[] deviceAccountNames); + } + } diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java --- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java +++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java