blob: 840f3d5c0bd1382c2677ee1172f012b1e14b428c [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
Mohamad Ahmadieb5d1222024-05-06 17:12:4334// A boolean indicating whether the whether the user has permitted sharing page
35// screenshot with the Lens Overlay server.
36inline constexpr char kLensSharingPageScreenshotEnabled[] =
37 "lens.sharing_page_screenshot.enabled";
38
Nihar Majmudar12008212024-10-09 16:53:5339// A boolean indicating whether the whether the user has permitted sharing page
40// content with the Lens Overlay server. Used for the contextual searchbox.
41inline constexpr char kLensSharingPageContentEnabled[] =
42 "lens.sharing_page_content.enabled";
43
Mohamad Ahmadieb5d1222024-05-06 17:12:4344// Registers the prefs used by the Lens Overlay.
45void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
46
47} // namespace prefs
48
49// Returns true if the user, i.e., the local, current profile, is permitted to
50// share the the page screenshot with the Lens Overlay server.
51bool CanSharePageScreenshotWithLensOverlay(PrefService* pref_service);
Jason Hua06a229e2024-05-04 01:40:0652
53// Returns true if the user, i.e., the local, current profile, is permitted to
Nihar Majmudar12008212024-10-09 16:53:5354// share the the page context with the Lens Overlay server.
55bool CanSharePageContentWithLensOverlay(PrefService* pref_service);
56
57// Returns true if the user, i.e., the local, current profile, is permitted to
58// share the the page URL with the the Lens Overlay server. This can be through
59// MSBB or accepting the CSB permission bubble, which informs the user about
60// sharing the page URL.
Jason Hua06a229e2024-05-04 01:40:0661bool CanSharePageURLWithLensOverlay(PrefService* pref_service);
62
63// Returns true if the user, i.e., the local, current profile, is permitted to
64// share the information about the page title with the the Lens Overlay server.
Nihar Majmudar12008212024-10-09 16:53:5365// This can be through history sync or accepting the CSB permission bubble,
66// which informs the user about sharing the page title.
67bool CanSharePageTitleWithLensOverlay(syncer::SyncService* sync_service,
68 PrefService* pref_service);
Jason Hua06a229e2024-05-04 01:40:0669
70} // namespace lens
71
Radu Nitescue47d5712024-07-12 10:29:0272#endif // COMPONENTS_LENS_LENS_OVERLAY_PERMISSION_UTILS_H_