From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 24 Jan 2020 19:17:22 +0100 Subject: Disable smart selection by default Allow web search in incognito mode; Smart Selection still disabled in incognito as per upstream. Partial revert of da1d809c003749846cb4ade8c11b6d038e44416b to restore the ChromeSmartSelection feature flag. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../browser/contextualsearch/SelectionClientManager.java | 4 +++- chrome/browser/flags/android/chrome_feature_list.cc | 1 + .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 1 + .../browser/selection/SelectionPopupControllerImpl.java | 1 - .../disable-smart-selection-by-default.inc | 3 +++ .../disable-smart-selection-by-default.inc | 1 + 6 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-smart-selection-by-default.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-smart-selection-by-default.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java @@ -11,6 +11,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.content_public.browser.SelectAroundCaretResult; import org.chromium.content_public.browser.SelectionClient; import org.chromium.content_public.browser.SelectionEventProcessor; @@ -50,7 +51,8 @@ public class SelectionClientManager { * @param webContents The {@link WebContents} that will show popups for this client. */ SelectionClientManager(WebContents webContents) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) { + if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SMART_SELECTION) + && Build.VERSION.SDK_INT > Build.VERSION_CODES.O) { assert webContents != null; mOptionalSelectionClient = SelectionClient.createSmartSelectionClient(webContents); SelectionPopupController controller = diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc @@ -242,6 +242,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTEphemeralMediaViewerExperiment, &kCCTEphemeralMode, &kCCTFreInSameTask, + &kChromeSmartSelection, &kCCTIncognitoAvailableToThirdParty, &kCCTIntentFeatureOverrides, &kCCTMinimized, diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -548,6 +548,7 @@ public abstract class ChromeFeatureList { "SearchInCCTAlternateTapHandling"; public static final String SEARCH_RESUMPTION_MODULE_ANDROID = "SearchResumptionModuleAndroid"; public static final String SEED_ACCOUNTS_REVAMP = "SeedAccountsRevamp"; + public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection"; public static final String SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER = "SegmentationPlatformAndroidHomeModuleRanker"; public static final String SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 = diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java @@ -1089,7 +1089,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper public boolean canWebSearch() { return hasSelection() && !isFocusedNodeEditable() - && !isIncognito() && isSelectActionModeAllowed(MENU_ITEM_WEB_SEARCH); } diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-smart-selection-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-smart-selection-by-default.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-smart-selection-by-default.inc @@ -0,0 +1,3 @@ +CROMITE_FEATURE(kChromeSmartSelection, + "ChromeSmartSelection", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-smart-selection-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-smart-selection-by-default.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-smart-selection-by-default.inc @@ -0,0 +1 @@ +BASE_DECLARE_FEATURE(kChromeSmartSelection); --