Disable-smart-selection-by-default.patch 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Fri, 24 Jan 2020 19:17:22 +0100
  3. Subject: Disable smart selection by default
  4. Allow web search in incognito mode; Smart Selection still
  5. disabled in incognito as per upstream.
  6. Partial revert of da1d809c003749846cb4ade8c11b6d038e44416b to restore
  7. the ChromeSmartSelection feature flag.
  8. ---
  9. .../contextualsearch/SelectionClientManager.java | 4 +++-
  10. .../browser/flags/android/chrome_feature_list.cc | 4 ++++
  11. .../browser/flags/android/chrome_feature_list.h | 1 +
  12. .../chrome/browser/flags/ChromeFeatureList.java | 1 +
  13. .../selection/SelectionPopupControllerImpl.java | 2 +-
  14. testing/variations/fieldtrial_testing_config.json | 15 +++++++++++++++
  15. 6 files changed, 25 insertions(+), 2 deletions(-)
  16. 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
  17. --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
  18. +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
  19. @@ -10,6 +10,7 @@ import android.view.textclassifier.TextClassifier;
  20. import androidx.annotation.Nullable;
  21. import androidx.annotation.VisibleForTesting;
  22. +import org.chromium.chrome.browser.flags.ChromeFeatureList;
  23. import org.chromium.content_public.browser.SelectAroundCaretResult;
  24. import org.chromium.content_public.browser.SelectionClient;
  25. import org.chromium.content_public.browser.SelectionEventProcessor;
  26. @@ -45,7 +46,8 @@ public class SelectionClientManager {
  27. * @param webContents The {@link WebContents} that will show popups for this client.
  28. */
  29. SelectionClientManager(WebContents webContents) {
  30. - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
  31. + if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SMART_SELECTION)
  32. + && Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
  33. assert webContents != null;
  34. mOptionalSelectionClient = SelectionClient.createSmartSelectionClient(webContents);
  35. SelectionPopupController controller =
  36. diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
  37. --- a/chrome/browser/flags/android/chrome_feature_list.cc
  38. +++ b/chrome/browser/flags/android/chrome_feature_list.cc
  39. @@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
  40. &kCCTClientDataHeader,
  41. &kCCTExternalLinkHandling,
  42. &kCCTIncognito,
  43. + &kChromeSmartSelection,
  44. &kCCTIncognitoAvailableToThirdParty,
  45. &kCCTNewDownloadTab,
  46. &kCCTPostMessageAPI,
  47. @@ -524,6 +525,9 @@ const base::Feature kChromeSharingHubLaunchAdjacent{
  48. const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid",
  49. base::FEATURE_ENABLED_BY_DEFAULT};
  50. +const base::Feature kChromeSmartSelection{"ChromeSmartSelection",
  51. + base::FEATURE_DISABLED_BY_DEFAULT};
  52. +
  53. const base::Feature kCommandLineOnNonRooted{"CommandLineOnNonRooted",
  54. base::FEATURE_DISABLED_BY_DEFAULT};
  55. diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
  56. --- a/chrome/browser/flags/android/chrome_feature_list.h
  57. +++ b/chrome/browser/flags/android/chrome_feature_list.h
  58. @@ -53,6 +53,7 @@ extern const base::Feature kDontAutoHideBrowserControls;
  59. extern const base::Feature kChromeNewDownloadTab;
  60. extern const base::Feature kChromeShareLongScreenshot;
  61. extern const base::Feature kChromeShareScreenshot;
  62. +extern const base::Feature kChromeSmartSelection;
  63. extern const base::Feature kChromeSharingHub;
  64. extern const base::Feature kChromeSharingHubLaunchAdjacent;
  65. extern const base::Feature kChromeSurveyNextAndroid;
  66. 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
  67. --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
  68. +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
  69. @@ -246,6 +246,7 @@ public abstract class ChromeFeatureList {
  70. public static final String CCT_NEW_DOWNLOAD_TAB = "CCTNewDownloadTab";
  71. public static final String CCT_POST_MESSAGE_API = "CCTPostMessageAPI";
  72. public static final String CCT_REDIRECT_PRECONNECT = "CCTRedirectPreconnect";
  73. + public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection";
  74. public static final String CCT_REMOVE_REMOTE_VIEW_IDS = "CCTRemoveRemoteViewIds";
  75. public static final String CCT_RESIZABLE_90_MAXIMUM_HEIGHT = "CCTResizable90MaximumHeight";
  76. public static final String CCT_RESIZABLE_ALLOW_RESIZE_BY_USER_GESTURE =
  77. 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
  78. --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
  79. +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
  80. @@ -840,7 +840,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
  81. menu.removeItem(R.id.select_action_menu_share);
  82. }
  83. - if (isFocusedNodeEditable() || isIncognito()
  84. + if (isFocusedNodeEditable()
  85. || !isSelectActionModeAllowed(MENU_ITEM_WEB_SEARCH)) {
  86. menu.removeItem(R.id.select_action_menu_web_search);
  87. }
  88. diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
  89. --- a/testing/variations/fieldtrial_testing_config.json
  90. +++ b/testing/variations/fieldtrial_testing_config.json
  91. @@ -1962,6 +1962,21 @@
  92. ]
  93. }
  94. ],
  95. + "ChromeSmartSelection": [
  96. + {
  97. + "platforms": [
  98. + "android"
  99. + ],
  100. + "experiments": [
  101. + {
  102. + "name": "Enabled_Launch",
  103. + "enable_features": [
  104. + "ChromeSmartSelection"
  105. + ]
  106. + }
  107. + ]
  108. + }
  109. + ],
  110. "ChromeStart": [
  111. {
  112. "platforms": [
  113. --
  114. 2.25.1