blob: e185fbd6f98f44888ae6b962843e54239c545b7e [file] [log] [blame]
Jason Hua06a229e2024-05-04 01:40:061// Copyright 2024 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Radu Nitescue47d5712024-07-12 10:29:025#ifndef COMPONENTS_LENS_LENS_OVERLAY_PERMISSION_UTILS_H_
6#define COMPONENTS_LENS_LENS_OVERLAY_PERMISSION_UTILS_H_
Jason Hua06a229e2024-05-04 01:40:067
8class PrefService;
9
10namespace syncer {
11class SyncService;
12} // namespace syncer
13
Mohamad Ahmadieb5d1222024-05-06 17:12:4314namespace user_prefs {
15class PrefRegistrySyncable;
16} // namespace user_prefs
17
Jason Hua06a229e2024-05-04 01:40:0618namespace lens {
Mohamad Ahmadieb5d1222024-05-06 17:12:4319namespace prefs {
20
Justin Donnellyd4704342024-05-28 20:32:2621// The possible values for the Lens Overlay enterprise policy. The value is an
22// integer rather than a boolean to allow for additional states to be added in
23// the future.
24enum class LensOverlaySettingsPolicyValue {
25 kEnabled = 0,
26 kDisabled = 1,
27};
28
29// An integer setting indicating whether the Lens Overlay feature is enabled or
30// disabled by the 'LensOverlaySettings' enterprise policy.
31inline constexpr char kLensOverlaySettings[] =
32 "lens.policy.lens_overlay_settings";
33
Duncan Mercer24c4edf2024-11-08 23:07:3934// The possible values for the GenAI Lens Overlay enterprise policy. Currently,
35// 0 and 1 are treated the same, since no server-side logging is done for the
36// Lens Overlay. If this changes in the future, and the server needs to
37// log, this policy will control whether logging is allowed for a request.
38enum class GenAiLensOverlaySettingsPolicyValue {
39 kAllowed = 0,
40 kAllowedWithoutLogging = 1,
41 kDisabled = 2,
42};
43
44// An integer setting indicating whether the Lens Overlay feature is enabled or
45// disabled by the 'GenAiLensOverlaySettings' enterprise policy. This policy
Duncan Mercer98b9fc682024-11-26 21:46:1146// will deprecate the old kLensOverlaySettings policy above in the lens overlay
47// is classified as GenAI.
Duncan Mercer24c4edf2024-11-08 23:07:3948inline constexpr char kGenAiLensOverlaySettings[] =
49 "lens.policy.gen_ai_lens_overlay_settings";
50
Mohamad Ahmadieb5d1222024-05-06 17:12:4351// A boolean indicating whether the whether the user has permitted sharing page
52// screenshot with the Lens Overlay server.
53inline constexpr char kLensSharingPageScreenshotEnabled[] =
54 "lens.sharing_page_screenshot.enabled";
55
Nihar Majmudar12008212024-10-09 16:53:5356// A boolean indicating whether the whether the user has permitted sharing page
57// content with the Lens Overlay server. Used for the contextual searchbox.
58inline constexpr char kLensSharingPageContentEnabled[] =
59 "lens.sharing_page_content.enabled";
60
Mohamad Ahmadieb5d1222024-05-06 17:12:4361// Registers the prefs used by the Lens Overlay.
62void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
63
64} // namespace prefs
65
66// Returns true if the user, i.e., the local, current profile, is permitted to
67// share the the page screenshot with the Lens Overlay server.
68bool CanSharePageScreenshotWithLensOverlay(PrefService* pref_service);
Jason Hua06a229e2024-05-04 01:40:0669
70// Returns true if the user, i.e., the local, current profile, is permitted to
Nihar Majmudar12008212024-10-09 16:53:5371// share the the page context with the Lens Overlay server.
72bool CanSharePageContentWithLensOverlay(PrefService* pref_service);
73
74// Returns true if the user, i.e., the local, current profile, is permitted to
75// share the the page URL with the the Lens Overlay server. This can be through
76// MSBB or accepting the CSB permission bubble, which informs the user about
77// sharing the page URL.
Jason Hua06a229e2024-05-04 01:40:0678bool CanSharePageURLWithLensOverlay(PrefService* pref_service);
79
80// Returns true if the user, i.e., the local, current profile, is permitted to
81// share the information about the page title with the the Lens Overlay server.
Nihar Majmudar12008212024-10-09 16:53:5382// This can be through history sync or accepting the CSB permission bubble,
83// which informs the user about sharing the page title.
84bool CanSharePageTitleWithLensOverlay(syncer::SyncService* sync_service,
85 PrefService* pref_service);
Jason Hua06a229e2024-05-04 01:40:0686
87} // namespace lens
88
Radu Nitescue47d5712024-07-12 10:29:0289#endif // COMPONENTS_LENS_LENS_OVERLAY_PERMISSION_UTILS_H_