lens_features.cc 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/lens/lens_features.h"
  5. #include "base/feature_list.h"
  6. #include "base/metrics/field_trial_params.h"
  7. namespace lens {
  8. namespace features {
  9. const base::Feature kLensStandalone{"LensStandalone",
  10. base::FEATURE_ENABLED_BY_DEFAULT};
  11. const base::Feature kLensImageCompression{"LensImageCompression",
  12. base::FEATURE_ENABLED_BY_DEFAULT};
  13. const base::Feature kLensSearchOptimizations{"LensSearchOptimizations",
  14. base::FEATURE_DISABLED_BY_DEFAULT};
  15. const base::Feature kLensTransparentImagesFix{
  16. "LensTransparentImagesFix", base::FEATURE_DISABLED_BY_DEFAULT};
  17. const base::Feature kLensSearchImageInScreenshotSharing{
  18. "LensSearchImageInScreenshotSharing", base::FEATURE_DISABLED_BY_DEFAULT};
  19. const base::Feature kLensUnifiedSidePanelFooter{
  20. "LensUnifiedSidePanelFooter", base::FEATURE_ENABLED_BY_DEFAULT};
  21. const base::Feature kEnableRegionSearchOnPdfViewer{
  22. "LensEnableRegionSearchOnPdfViewer", base::FEATURE_DISABLED_BY_DEFAULT};
  23. const base::Feature kLensInstructionChipImprovements{
  24. "LensInstructionChipImprovements", base::FEATURE_DISABLED_BY_DEFAULT};
  25. const base::FeatureParam<bool> kEnableUKMLoggingForRegionSearch{
  26. &kLensStandalone, "region-search-enable-ukm-logging", true};
  27. const base::FeatureParam<bool> kEnableUKMLoggingForImageSearch{
  28. &kLensStandalone, "enable-ukm-logging", true};
  29. const base::FeatureParam<bool> kEnableSidePanelForLens{
  30. &kLensStandalone, "enable-side-panel", true};
  31. constexpr base::FeatureParam<std::string> kHomepageURLForLens{
  32. &kLensStandalone, "lens-homepage-url", "https://lens.google.com/"};
  33. constexpr base::FeatureParam<int> kMaxPixelsForRegionSearch{
  34. &kLensImageCompression, "region-search-dimensions-max-pixels", 1000};
  35. constexpr base::FeatureParam<int> kMaxAreaForRegionSearch{
  36. &kLensImageCompression, "region-search-dimensions-max-area", 1000000};
  37. constexpr base::FeatureParam<int> kMaxPixelsForImageSearch{
  38. &kLensImageCompression, "dimensions-max-pixels", 1000};
  39. const base::FeatureParam<bool> kUseGoogleAsVisualSearchProvider{
  40. &kLensSearchOptimizations, "use-google-as-visual-search-provider", false};
  41. const base::FeatureParam<bool> kRegionSearchUseMenuItemAltText1{
  42. &kLensSearchOptimizations, "use-menu-item-alt-text-1", false};
  43. const base::FeatureParam<bool> kRegionSearchUseMenuItemAltText2{
  44. &kLensSearchOptimizations, "use-menu-item-alt-text-2", false};
  45. const base::FeatureParam<bool> kRegionSearchUseMenuItemAltText3{
  46. &kLensSearchOptimizations, "use-menu-item-alt-text-3", false};
  47. const base::FeatureParam<bool> kUseSidePanelForScreenshotSharing{
  48. &kLensSearchImageInScreenshotSharing,
  49. "use-side-panel-for-screenshot-sharing", false};
  50. const base::FeatureParam<bool> kEnablePersistentBubble{
  51. &kLensSearchImageInScreenshotSharing, "enable-persistent-bubble", false};
  52. // Default is set to true but it is only enabled if kLensSearchOptimizations is
  53. // enabled. This setup allows us to have fullscreen search as a toggleable
  54. // experience in chrome://flags
  55. const base::FeatureParam<bool> kEnableLensFullscreenSearch{
  56. &kLensSearchOptimizations, "enable-lens-fullscreen-search", true};
  57. const base::FeatureParam<bool> kUseSelectionIconWithImage{
  58. &kLensInstructionChipImprovements, "use-selection-icon-with-image", false};
  59. const base::FeatureParam<bool> kUseAltChipString{
  60. &kLensInstructionChipImprovements, "use-alt-chip-string", false};
  61. bool GetEnableUKMLoggingForRegionSearch() {
  62. return kEnableUKMLoggingForRegionSearch.Get();
  63. }
  64. bool GetEnableUKMLoggingForImageSearch() {
  65. return kEnableUKMLoggingForImageSearch.Get();
  66. }
  67. bool GetEnableLensSidePanelFooter() {
  68. return base::FeatureList::IsEnabled(kLensUnifiedSidePanelFooter);
  69. }
  70. int GetMaxPixelsForRegionSearch() {
  71. return kMaxPixelsForRegionSearch.Get();
  72. }
  73. int GetMaxAreaForRegionSearch() {
  74. return kMaxAreaForRegionSearch.Get();
  75. }
  76. int GetMaxPixelsForImageSearch() {
  77. return kMaxPixelsForImageSearch.Get();
  78. }
  79. std::string GetHomepageURLForLens() {
  80. return kHomepageURLForLens.Get();
  81. }
  82. bool UseRegionSearchMenuItemAltText1() {
  83. return base::FeatureList::IsEnabled(kLensStandalone) &&
  84. base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
  85. kRegionSearchUseMenuItemAltText1.Get();
  86. }
  87. bool UseRegionSearchMenuItemAltText2() {
  88. return base::FeatureList::IsEnabled(kLensStandalone) &&
  89. base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
  90. kRegionSearchUseMenuItemAltText2.Get();
  91. }
  92. bool UseRegionSearchMenuItemAltText3() {
  93. return base::FeatureList::IsEnabled(kLensStandalone) &&
  94. base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
  95. kRegionSearchUseMenuItemAltText3.Get();
  96. }
  97. bool UseGoogleAsVisualSearchProvider() {
  98. return base::FeatureList::IsEnabled(kLensStandalone) &&
  99. base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
  100. kUseGoogleAsVisualSearchProvider.Get();
  101. }
  102. bool IsLensFullscreenSearchEnabled() {
  103. return base::FeatureList::IsEnabled(kLensStandalone) &&
  104. base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
  105. kEnableLensFullscreenSearch.Get();
  106. }
  107. bool IsLensSidePanelEnabled() {
  108. return base::FeatureList::IsEnabled(kLensStandalone) &&
  109. kEnableSidePanelForLens.Get();
  110. }
  111. bool GetSendImagesAsPng() {
  112. return base::FeatureList::IsEnabled(kLensStandalone) &&
  113. base::FeatureList::IsEnabled(kLensTransparentImagesFix);
  114. }
  115. bool IsLensInScreenshotSharingEnabled() {
  116. return base::FeatureList::IsEnabled(kLensStandalone) &&
  117. base::FeatureList::IsEnabled(kLensSearchImageInScreenshotSharing);
  118. }
  119. bool IsLensInstructionChipImprovementsEnabled() {
  120. return base::FeatureList::IsEnabled(kLensStandalone) &&
  121. base::FeatureList::IsEnabled(kLensInstructionChipImprovements);
  122. }
  123. bool UseSelectionIconWithImage() {
  124. return IsLensInstructionChipImprovementsEnabled() &&
  125. kUseSelectionIconWithImage.Get();
  126. }
  127. bool UseAltChipString() {
  128. return IsLensInstructionChipImprovementsEnabled() && kUseAltChipString.Get();
  129. }
  130. // Does not check if kLensSearchImageInScreenshotSharing is enabled because this
  131. // method is not called if kLensSearchImageInScreenshotSharing is false
  132. bool UseSidePanelForScreenshotSharing() {
  133. return kUseSidePanelForScreenshotSharing.Get();
  134. }
  135. // Does not check if kLensSearchImageInScreenshotSharing is enabled because this
  136. // method is not called if kLensSearchImageInScreenshotSharing is false
  137. bool EnablePersistentBubble() {
  138. return kEnablePersistentBubble.Get();
  139. }
  140. } // namespace features
  141. } // namespace lens