Fixes from debug build and uazo

This commit is contained in:
csagan5 2022-07-12 00:14:07 +02:00
parent 8439ece721
commit c7a6d5e006
13 changed files with 432 additions and 117 deletions

View file

@ -1 +1 @@
1ab0cee259c250b41b2adb8e3a7fabc967f5b762-
c22bc105a0fa559ec08a6f10c605cc62b6e81ac9-

View file

@ -1 +1 @@
103.0.5060.115
103.0.5060.121

View file

@ -1 +1 @@
3764ccd59b9f1ec1d98138dd253bb0eb08887649
ada3f42065259282d4465fc093d31c6148ae4b19

View file

@ -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

View file

@ -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(

View file

@ -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

View file

@ -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
--

View file

@ -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(-)

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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);
}

View file

@ -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<std::string>& scopes) {
- JNIEnv* env = AttachCurrentThread();
- std::string scope = CombineScopes(scopes);
- ScopedJavaLocalRef<jstring> j_email =
- ConvertUTF8ToJavaString(env, account_id_);
- ScopedJavaLocalRef<jstring> j_scope = ConvertUTF8ToJavaString(env, scope);
- std::unique_ptr<FetchOAuth2TokenCallback> 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<intptr_t>(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<jobject> local_java_ref =
- signin::Java_ProfileOAuth2TokenServiceDelegate_Constructor(
- env, reinterpret_cast<intptr_t>(this),
- account_tracker_service_->GetJavaObject());
- java_ref_.Reset(env, local_java_ref.obj());
-
- if (account_tracker_service_->GetMigrationState() ==
- AccountTrackerService::MIGRATION_IN_PROGRESS) {
- std::vector<CoreAccountId> accounts = GetAccounts();
- std::vector<CoreAccountId> 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<jobject>
ProfileOAuth2TokenServiceDelegateAndroid::GetJavaObject() {
- return ScopedJavaLocalRef<jobject>(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<jstring> 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<jstring> j_access_token =
- ConvertUTF8ToJavaString(env, access_token);
- signin::Java_ProfileOAuth2TokenServiceDelegate_invalidateAccessToken(
- env, java_ref_, j_access_token);
}
void ProfileOAuth2TokenServiceDelegateAndroid::
ReloadAllAccountsFromSystemWithPrimaryAccount(
const absl::optional<CoreAccountId>& primary_account_id) {
- JNIEnv* env = AttachCurrentThread();
-
- ScopedJavaLocalRef<jstring> 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<jstring>& j_primary_account_id,
- const base::android::JavaParamRef<jobjectArray>&
- j_device_account_names) {
- absl::optional<CoreAccountId> primary_account_id;
- if (j_primary_account_id) {
- primary_account_id = CoreAccountId::FromString(
- ConvertJavaStringToUTF8(env, j_primary_account_id));
- }
- std::vector<std::string> device_account_names;
- base::android::AppendJavaStringArrayToStringVector(
- env, j_device_account_names, &device_account_names);
- std::vector<CoreAccountId> 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<jstring>& authToken,
- const jlong expiration_time_secs,
- jboolean isTransientError,
- jlong nativeCallback) {
- std::string token;
- if (authToken)
- token = ConvertJavaStringToUTF8(env, authToken);
- std::unique_ptr<FetchOAuth2TokenCallback> heap_callback(
- reinterpret_cast<FetchOAuth2TokenCallback*>(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<CoreAccountId>& 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<jstring>& j_primary_account_id,
- const base::android::JavaParamRef<jobjectArray>& 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<CoreAccountId>& accounts);
- base::android::ScopedJavaGlobalRef<jobject> java_ref_;
-
// Accounts that have been advertised by OnRefreshTokenAvailable.
std::vector<CoreAccountId> 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<Account> 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