blob: 1326f52536a509acd118fef0c3238ffadfb5b350 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/lens/lens_features.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
namespace lens {
namespace features {
BASE_FEATURE(kLensStandalone,
"LensStandalone",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kLensImageCompression,
"LensImageCompression",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kLensSearchOptimizations,
"LensSearchOptimizations",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLatencyLogging,
"LensImageLatencyLogging",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableRegionSearchKeyboardShortcut,
"LensEnableRegionSearchKeyboardShortcut",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEnableImageTranslate,
"LensEnableImageTranslate",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEnableImageSearchSidePanelFor3PDse,
"EnableImageSearchSidePanelFor3PDse",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kLensRegionSearchStaticPage,
"LensRegionSearchStaticPage",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kLensImageFormatOptimizations,
"LensImageFormatOptimizations",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableContextMenuInLensSidePanel,
"EnableContextMenuInLensSidePanel",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensPing,
"EnableLensPing",
base::FEATURE_DISABLED_BY_DEFAULT);
constexpr base::FeatureParam<std::string> kHomepageURLForLens{
&kLensStandalone, "lens-homepage-url", "https://lens.google.com/"};
constexpr base::FeatureParam<bool> kEnableLensHtmlRedirectFix{
&kLensStandalone, "lens-html-redirect-fix", true};
constexpr base::FeatureParam<int> kMaxPixelsForRegionSearch{
&kLensImageCompression, "region-search-dimensions-max-pixels", 1000};
constexpr base::FeatureParam<int> kMaxAreaForRegionSearch{
&kLensImageCompression, "region-search-dimensions-max-area", 1000000};
constexpr base::FeatureParam<int> kMaxPixelsForImageSearch{
&kLensImageCompression, "dimensions-max-pixels", 1000};
const base::FeatureParam<bool> kEnableLensFullscreenSearch{
&kLensSearchOptimizations, "enable-lens-fullscreen-search", false};
const base::FeatureParam<bool> kLensContextMenuUseAlternateText{
&kLensSearchOptimizations, "use-lens-context-menu-alternate-text", false};
const base::FeatureParam<bool> kUseWebpInImageSearch{
&kLensImageFormatOptimizations, "use-webp-image-search", false};
const base::FeatureParam<int> kEncodingQualityImageSearch{
&kLensImageFormatOptimizations, "encoding-quality-image-search", 90};
const base::FeatureParam<bool> kUseWebpInRegionSearch{
&kLensImageFormatOptimizations, "use-webp-region-search", false};
const base::FeatureParam<bool> kUseJpegInRegionSearch{
&kLensImageFormatOptimizations, "use-jpeg-region-search", true};
const base::FeatureParam<int> kEncodingQualityRegionSearch{
&kLensImageFormatOptimizations, "encoding-quality-region-search", 90};
constexpr base::FeatureParam<std::string> kLensPingURL{
&kEnableLensPing, "lens-ping-url",
"https://lens.google.com/_/LensWebStandaloneUi/gen204/"};
const base::FeatureParam<bool> kPingLensSequentially{
&kEnableLensPing, "ping-lens-sequentially", true};
bool GetEnableLatencyLogging() {
return base::FeatureList::IsEnabled(kEnableLatencyLogging) &&
base::FeatureList::IsEnabled(kLensStandalone);
}
int GetMaxPixelsForRegionSearch() {
return kMaxPixelsForRegionSearch.Get();
}
int GetMaxAreaForRegionSearch() {
return kMaxAreaForRegionSearch.Get();
}
int GetMaxPixelsForImageSearch() {
return kMaxPixelsForImageSearch.Get();
}
std::string GetHomepageURLForLens() {
return kHomepageURLForLens.Get();
}
bool GetEnableLensHtmlRedirectFix() {
return kEnableLensHtmlRedirectFix.Get();
}
bool GetEnableImageSearchUnifiedSidePanelFor3PDse() {
return base::FeatureList::IsEnabled(kEnableImageSearchSidePanelFor3PDse);
}
bool IsLensFullscreenSearchEnabled() {
return base::FeatureList::IsEnabled(kLensStandalone) &&
base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
kEnableLensFullscreenSearch.Get();
}
bool IsLensSidePanelEnabled() {
return base::FeatureList::IsEnabled(kLensStandalone);
}
bool IsLensSidePanelEnabledForRegionSearch() {
return IsLensSidePanelEnabled() && !IsLensFullscreenSearchEnabled();
}
bool IsLensRegionSearchStaticPageEnabled() {
return base::FeatureList::IsEnabled(kLensRegionSearchStaticPage);
}
bool UseLensContextMenuItemAlternateText() {
return base::FeatureList::IsEnabled(kLensStandalone) &&
base::FeatureList::IsEnabled(kLensSearchOptimizations) &&
kLensContextMenuUseAlternateText.Get();
}
bool IsWebpForImageSearchEnabled() {
return base::FeatureList::IsEnabled(kLensImageFormatOptimizations) &&
kUseWebpInImageSearch.Get();
}
int GetImageSearchEncodingQuality() {
return kEncodingQualityImageSearch.Get();
}
bool IsWebpForRegionSearchEnabled() {
return base::FeatureList::IsEnabled(kLensImageFormatOptimizations) &&
kUseWebpInRegionSearch.Get();
}
bool IsJpegForRegionSearchEnabled() {
return base::FeatureList::IsEnabled(kLensImageFormatOptimizations) &&
kUseJpegInRegionSearch.Get();
}
int GetRegionSearchEncodingQuality() {
return kEncodingQualityRegionSearch.Get();
}
bool GetEnableContextMenuInLensSidePanel() {
return base::FeatureList::IsEnabled(kEnableContextMenuInLensSidePanel);
}
bool GetEnableLensPing() {
return base::FeatureList::IsEnabled(kEnableLensPing);
}
std::string GetLensPingURL() {
return kLensPingURL.Get();
}
bool GetLensPingIsSequential() {
return kPingLensSequentially.Get();
}
} // namespace features
} // namespace lens