// Copyright 2021 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/ash/crosapi/chrome_app_kiosk_service_ash.h"
#include "base/logging.h"
#include "chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom.h"
namespace crosapi {
ChromeAppKioskServiceAsh::ChromeAppKioskServiceAsh() = default;
ChromeAppKioskServiceAsh::~ChromeAppKioskServiceAsh() = default;
void ChromeAppKioskServiceAsh::BindReceiver(
mojo::PendingReceiver<mojom::ChromeAppKioskService> pending_receiver) {
receivers_.Add(this, std::move(pending_receiver));
}
void ChromeAppKioskServiceAsh::BindLaunchController(
mojo::PendingRemote<mojom::ChromeKioskLaunchController> launch_controller) {
launch_controllers_.Add(std::move(launch_controller));
}
void ChromeAppKioskServiceAsh::InstallKioskApp(
const mojom::AppInstallParams& params,
mojom::ChromeKioskLaunchController::InstallKioskAppCallback callback) {
if (!GetController()) {
std::move(callback).Run(mojom::ChromeKioskInstallResult::kUnknown);
return;
}
GetController()->InstallKioskApp(params.Clone(), std::move(callback));
}
void ChromeAppKioskServiceAsh::LaunchKioskApp(
std::string app_id,
bool is_network_ready,
mojom::ChromeKioskLaunchController::LaunchKioskAppCallback callback) {
if (!GetController()) {
std::move(callback).Run(mojom::ChromeKioskLaunchResult::kUnknown);
return;
}
GetController()->LaunchKioskApp(app_id, is_network_ready,
std::move(callback));
}
mojom::ChromeKioskLaunchController* ChromeAppKioskServiceAsh::GetController() {
if (launch_controllers_.empty()) {
LOG(WARNING) << "Lacros installer has not been bound";
return nullptr;
}
return launch_controllers_.begin()->get();
}
} // namespace crosapi