blob: 5480c386284bc4e9605cce038c5eb83ca392c862 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/companion/core/features.h"
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
namespace companion {
namespace features {
// This differs from the search companion by providing a separate WebUI that
// contains untrusted content in an iframe.
BASE_FEATURE(kSidePanelCompanion,
"SidePanelCompanion",
base::FEATURE_DISABLED_BY_DEFAULT);
constexpr base::FeatureParam<std::string> kHomepageURLForCompanion{
&kSidePanelCompanion, "companion-homepage-url",
"https://lens.google.com/companion"};
constexpr base::FeatureParam<std::string> kImageUploadURLForCompanion{
&kSidePanelCompanion, "companion-image-upload-url",
"https://lens.google.com/upload"};
constexpr base::FeatureParam<bool> kEnableOpenCompanionForImageSearch{
&kSidePanelCompanion, "open-companion-for-image-search", true};
constexpr base::FeatureParam<bool> kEnableOpenCompanionForWebSearch{
&kSidePanelCompanion, "open-companion-for-web-search", true};
constexpr base::FeatureParam<bool> kOpenLinksInCurrentTab{
&kSidePanelCompanion, "open-links-in-current-tab", true};
} // namespace features
namespace switches {
const char kDisableCheckUserPermissionsForCompanion[] =
"disable-checking-companion-user-permissions";
const char kForceCompanionPinnedState[] = "force-companion-pinned-state";
bool ShouldOverrideCheckingUserPermissionsForCompanion() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
return command_line->HasSwitch(kDisableCheckUserPermissionsForCompanion);
}
absl::optional<bool> ShouldForceOverrideCompanionPinState() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (!command_line->HasSwitch(kForceCompanionPinnedState)) {
return absl::nullopt;
}
std::string pinned_state =
command_line->GetSwitchValueASCII(kForceCompanionPinnedState);
if (pinned_state == "pinned") {
return true;
}
if (pinned_state == "unpinned") {
return false;
}
NOTREACHED() << "Invalid Companion pin state command line switch value: "
<< pinned_state;
return absl::nullopt;
}
} // namespace switches
} // namespace companion