Files
cromite/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
2026-05-19 10:48:25 +02:00

304 lines
19 KiB
Diff

From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 7 Dec 2022 20:32:15 +0100
Subject: Restore adaptive-button-in-top-toolbar-customization
This reverts commit 18d03b9cca4e90d2a446ea28266876d8c5fdc4f0.
Voice button and legacy share/voice functionality is not restored.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../ReaderModeToolbarButtonController.java | 5 +++--
.../ContextualPageActionController.java | 4 ++++
.../TabbedAppMenuPropertiesDelegate.java | 4 ----
.../distiller_ui_handle_android.h | 4 ++--
.../segmentation_platform_config.cc | 1 +
.../strings/android_chrome_strings.grd | 3 +++
...tton_group_adaptive_toolbar_preference.xml | 9 +++++++++
.../AdaptiveToolbarButtonController.java | 2 +-
.../adaptive/AdaptiveToolbarFeatures.java | 2 +-
.../adaptive/AdaptiveToolbarPrefs.java | 2 +-
.../AdaptiveToolbarStatePredictor.java | 6 +++++-
.../adaptive/AdaptiveToolbarStats.java | 2 ++
...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++-------
...ve-button-in-top-toolbar-customization.inc | 1 +
14 files changed, 45 insertions(+), 19 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.dom_distiller;
+import android.content.res.Resources;
import android.content.Context;
import android.view.View;
@@ -70,11 +71,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider
modalDialogManager,
AppCompatResources.getDrawable(context, R.drawable.ic_mobile_friendly_24dp),
context.getString(R.string.reader_mode_cpa_button_text),
- /* actionChipLabelResId= */ R.string.reader_mode_cpa_button_text,
+ /* actionChipLabelResId= */ Resources.ID_NULL,
/* supportsTinting= */ true,
/* iphCommandBuilder= */ null,
AdaptiveToolbarButtonVariant.READER_MODE,
- /* tooltipTextResId= */ R.string.show_reading_mode_text);
+ /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page);
mReaderModeIphControllerSupplier = readerModeIphControllerSupplier;
mActivityTabObserver =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
@@ -298,6 +298,10 @@ public class ContextualPageActionController {
&& mTabSupplier.get().getId() == tab.getId();
if (!isSameTab) return;
+ if (mSignalAccumulator.getSignal(AdaptiveToolbarButtonVariant.READER_MODE) //
+ && result == AdaptiveToolbarButtonVariant.UNKNOWN) {
+ result = AdaptiveToolbarButtonVariant.READER_MODE;
+ }
showDynamicAction(result);
});
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -1107,10 +1107,6 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
assert shouldShowMoreToolsItem(currentTab);
List<ListItem> submenuItems = new ArrayList<>();
- if (shouldShowReaderModeItem(currentTab)) {
- submenuItems.add(buildReaderModeItem(currentTab));
- }
-
if (shouldShowTaskManagerItem()) {
submenuItems.add(buildTaskManagerItem());
}
diff --git a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h
--- a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h
+++ b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h
@@ -26,12 +26,12 @@ class DistillerUIHandleAndroid : public DistillerUIHandle {
~DistillerUIHandleAndroid() override = default;
void set_render_frame_host(content::RenderFrameHost* host) {
- render_frame_host_ = host;
+ // render_frame_host_ = host;
}
void OpenSettings() override;
private:
- raw_ptr<content::RenderFrameHost> render_frame_host_ = nullptr;
+ // raw_ptr<content::RenderFrameHost> render_frame_host_ = nullptr;
};
} // namespace android
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
--- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc
+++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
@@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56;
#if BUILDFLAG(IS_ANDROID)
std::unique_ptr<Config> GetConfigForAdaptiveToolbar() {
+ if ((true)) return nullptr;
if (!base::FeatureList::IsEnabled(
chrome::android::kAdaptiveButtonInTopToolbarCustomizationV2)) {
return nullptr;
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
@@ -5243,6 +5243,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_READER_MODE_MESSAGE_BUTTON" desc="The label for the button to open the current page in reader mode.">
View
</message>
+ <message name="IDS_READER_MODE_ACTION_CHIP_LABEL_SIMPLIFY_PAGE" desc="The label for the action chip shown on the toolbar to open the current page in reader mode. [CHAR_LIMIT=27]">
+ Simplify page
+ </message>
<message name="IDS_CONTENT_PROVIDER_SEARCH_DESCRIPTION" desc="Description for Chrome's entry in QSB's list of search suggestion providers [CHAR_LIMIT=32]">
Bookmarks and web history
</message>
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml
--- a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml
+++ b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml
@@ -99,6 +99,15 @@ found in the LICENSE file.
app:iconSrc="@drawable/summarize_auto"
app:primaryText="@string/adaptive_toolbar_button_preference_page_summary"
app:descriptionText="@string/adaptive_toolbar_button_preference_page_summary_description"/>
+ <org.chromium.components.browser_ui.widget.RadioButtonWithDescription
+ android:id="@+id/adaptive_option_reader_mode"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/min_touch_target_size"
+ android:paddingTop="10dp"
+ app:iconSrc="@drawable/ic_mobile_friendly_24dp"
+ app:primaryText="@string/reader_mode_action_chip_label_simplify_page" />
+
</org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionLayout>
</LinearLayout>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
@@ -356,7 +356,7 @@ public class AdaptiveToolbarButtonController
}
private boolean isScreenWideEnoughForButton() {
- return mScreenWidthDp >= AdaptiveToolbarFeatures.getDeviceMinimumWidthForShowingButton();
+ return true;
}
/** Returns the {@link ButtonDataProvider} used in a single-variant mode. */
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
@@ -77,9 +77,9 @@ public class AdaptiveToolbarFeatures {
case AdaptiveToolbarButtonVariant.VOICE:
case AdaptiveToolbarButtonVariant.AUTO:
case AdaptiveToolbarButtonVariant.GLIC:
+ case AdaptiveToolbarButtonVariant.READER_MODE:
return false;
case AdaptiveToolbarButtonVariant.PRICE_TRACKING:
- case AdaptiveToolbarButtonVariant.READER_MODE:
case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS:
case AdaptiveToolbarButtonVariant.DISCOUNTS:
case AdaptiveToolbarButtonVariant.TAB_GROUPING:
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java
@@ -23,7 +23,7 @@ public class AdaptiveToolbarPrefs {
*/
public static boolean isCustomizationPreferenceEnabled() {
return ChromeSharedPreferences.getInstance()
- .readBoolean(ADAPTIVE_TOOLBAR_CUSTOMIZATION_ENABLED, true);
+ .readBoolean(ADAPTIVE_TOOLBAR_CUSTOMIZATION_ENABLED, false);
}
/**
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
@@ -205,12 +205,12 @@ public class AdaptiveToolbarStatePredictor {
case AdaptiveToolbarButtonVariant.PAGE_SUMMARY:
case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER:
case AdaptiveToolbarButtonVariant.GLIC:
+ case AdaptiveToolbarButtonVariant.READER_MODE:
return true;
case AdaptiveToolbarButtonVariant.UNKNOWN:
case AdaptiveToolbarButtonVariant.NONE:
case AdaptiveToolbarButtonVariant.AUTO:
case AdaptiveToolbarButtonVariant.PRICE_TRACKING:
- case AdaptiveToolbarButtonVariant.READER_MODE:
case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS:
case AdaptiveToolbarButtonVariant.TAB_GROUPING:
return false;
@@ -239,6 +239,10 @@ public class AdaptiveToolbarStatePredictor {
* @param callback A callback for results.
*/
public void readFromSegmentationPlatform(Callback<List<Integer>> callback) {
+ if ((true)) {
+ callback.onResult(List.of(AdaptiveToolbarButtonVariant.UNKNOWN));
+ return;
+ }
if (sSegmentationResultsForTesting != null) {
callback.onResult(sSegmentationResultsForTesting);
return;
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java
@@ -128,6 +128,8 @@ public class AdaptiveToolbarStats {
return AdaptiveToolbarRadioButtonState.OPEN_IN_BROWSER;
case AdaptiveToolbarButtonVariant.GLIC:
return AdaptiveToolbarRadioButtonState.GLIC;
+ case AdaptiveToolbarButtonVariant.READER_MODE:
+ return AdaptiveToolbarRadioButtonState.UNKNOWN;
case AdaptiveToolbarButtonVariant.AUTO:
switch (uiState.autoButtonCaption) {
case AdaptiveToolbarButtonVariant.NEW_TAB:
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java
@@ -44,6 +44,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
private @Nullable RadioButtonWithDescription mReadAloudButton;
private @Nullable RadioButtonWithDescription mPageSummaryButton;
private @Nullable RadioButtonWithDescription mGlicButton;
+ private @Nullable RadioButtonWithDescription mReaderMode;
private @AdaptiveToolbarButtonVariant int mSelected;
private @AdaptiveToolbarButtonVariant int mAutoButtonCaption;
private @Nullable AdaptiveToolbarStatePredictor mStatePredictor;
@@ -80,6 +81,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mAutoButton =
(RadioButtonWithDescription)
holder.findViewById(R.id.adaptive_option_based_on_usage);
+ mAutoButton.setVisibility(View.GONE);
mNewTabButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_new_tab);
mShareButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_share);
@@ -87,6 +89,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search);
mTranslateButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate);
+ updateButtonVisibility(mTranslateButton, false);
mAddToBookmarksButton =
(RadioButtonWithDescription)
holder.findViewById(R.id.adaptive_option_add_to_bookmarks);
@@ -95,6 +98,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mPageSummaryButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_page_summary);
mGlicButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_glic);
+ mReaderMode =
+ (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_reader_mode);
mIsBound = true;
@@ -173,13 +178,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mAutoButton.setDescriptionText(
getContext().getString(resId, getButtonString(uiState.autoButtonCaption)));
- // Description to indicate these buttons only appear on small windows,
- // as large windows (tablets) show them elsewhere on UI (strip, omnibox).
- resId = R.string.adaptive_toolbar_button_preference_based_on_window_width_description;
- String basedOnWindowDesc = getContext().getString(resId);
- mNewTabButton.setDescriptionText(basedOnWindowDesc);
- mAddToBookmarksButton.setDescriptionText(basedOnWindowDesc);
-
updateVoiceButtonVisibility();
updateReadAloudButtonVisibility();
updatePageSummaryButtonVisibility();
@@ -212,6 +210,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY;
} else if (mGlicButton.isChecked()) {
mSelected = AdaptiveToolbarButtonVariant.GLIC;
+ } else if (mReaderMode.isChecked()) {
+ mSelected = AdaptiveToolbarButtonVariant.READER_MODE;
} else {
assert false : "No matching setting found.";
}
@@ -253,6 +253,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
return mPageSummaryButton;
case AdaptiveToolbarButtonVariant.GLIC:
return mGlicButton;
+ case AdaptiveToolbarButtonVariant.READER_MODE:
+ return mReaderMode;
}
return null;
}
@@ -287,6 +289,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER:
stringRes = R.string.menu_open_in_product_default;
break;
+ case AdaptiveToolbarButtonVariant.READER_MODE:
+ stringRes = R.string.adaptive_toolbar_button_preference_page_summary;
+ break;
default:
assert false : "Unknown variant " + variant;
}
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_ENABLED(kAdaptiveButtonInTopToolbarCustomizationV2);
--