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

ash / webui / common / sea_pen_provider.h [blame]

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_WEBUI_COMMON_SEA_PEN_PROVIDER_H_
#define ASH_WEBUI_COMMON_SEA_PEN_PROVIDER_H_

#include "ash/webui/common/mojom/sea_pen.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"

namespace ash::common {

// An interface for binding mojom::SeaPenProvider to a WebUI. Used for
// VC Background and Personalization WebUIs.
class SeaPenProvider {
 public:
  virtual ~SeaPenProvider() = default;

  virtual void BindInterface(
      mojo::PendingReceiver<::ash::personalization_app::mojom::SeaPenProvider>
          receiver) = 0;

  // Determines if the current active profile is eligible to see the SeaPen UI.
  virtual bool IsEligibleForSeaPen() = 0;

  virtual bool IsEligibleForSeaPenTextInput() = 0;

  // Managed users controlled by enterprise policy can see Sea Pen entry point
  // which is Sea Pen tile in wallpaper subpage or the Image button in camera
  // shelf for VC Background. However, only the users with the policy enabled
  // can access and use the Sea Pen feature.
  virtual bool IsManagedSeaPenEnabled() = 0;

  // Determines if the current active profile is able to see the SeaPen
  // Feedback.
  virtual bool IsManagedSeaPenFeedbackEnabled() = 0;
};

}  // namespace ash::common

#endif  // ASH_WEBUI_COMMON_SEA_PEN_PROVIDER_H_