#ifndef REMOTING_HOST_CURTAIN_MODE_CHROMEOS_H_
#define REMOTING_HOST_CURTAIN_MODE_CHROMEOS_H_
#include "remoting/host/curtain_mode.h"
#include "ash/curtain/security_curtain_controller.h"
#include "base/memory/scoped_refptr.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/sequence_bound.h"
namespace ash::curtain {
class SecurityCurtainController;
}
namespace remoting {
class CurtainModeChromeOs : public CurtainMode {
public:
explicit CurtainModeChromeOs(
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
CurtainModeChromeOs(const CurtainModeChromeOs&) = delete;
CurtainModeChromeOs& operator=(const CurtainModeChromeOs&) = delete;
~CurtainModeChromeOs() override;
static ash::curtain::SecurityCurtainController::InitParams CreateInitParams();
bool Activate() override;
private:
class Core {
public:
~Core();
void Activate();
private:
ash::curtain::SecurityCurtainController& security_curtain_controller();
};
base::SequenceBound<Core> core_;
};
}
#endif