-
Notifications
You must be signed in to change notification settings - Fork 6.6k
/
features.cc
79 lines (63 loc) · 2.78 KB
/
features.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// 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);
// Dynamically enables the search companion if the user has experiments
// enabled.
BASE_FEATURE(kCompanionEnabledByObservingExpsNavigations,
"CompanionEnabledByObservingExpsNavigations",
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};
constexpr base::FeatureParam<std::string> kExpsRegistrationSuccessPageURLs{
&kCompanionEnabledByObservingExpsNavigations,
"exps-registration-success-page-urls", ""};
} // 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