chromium/chrome/browser/lacros/task_manager_lacros.cc

// 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/lacros/task_manager_lacros.h"

#include "base/notreached.h"
#include "chrome/browser/task_manager/providers/crosapi/task_manager_controller_lacros.h"
#include "chromeos/lacros/lacros_service.h"

namespace crosapi {

TaskManagerLacros::TaskManagerLacros() {
  chromeos::LacrosService* service = chromeos::LacrosService::Get();
  if (!service->IsAvailable<crosapi::mojom::TaskManager>())
    return;
  id_ = base::UnguessableToken::Create();
  service->GetRemote<crosapi::mojom::TaskManager>()
      ->RegisterTaskManagerProvider(
          receiver_.BindNewPipeAndPassRemoteWithVersion(), id_);

  task_manager_controller_ =
      std::make_unique<task_manager::TaskManagerControllerLacros>();
}

TaskManagerLacros::~TaskManagerLacros() = default;

void TaskManagerLacros::DeprecatedSetRefreshArgs(
    base::TimeDelta refresh_interval,
    int64_t refresh_flags) {
  NOTIMPLEMENTED();
}

void TaskManagerLacros::GetTaskManagerTasks(
    GetTaskManagerTasksCallback callback) {
  task_manager_controller_->GetTaskManagerTasks(std::move(callback));
}

void TaskManagerLacros::OnTaskManagerClosed() {
  task_manager_controller_->OnTaskManagerClosed();
}

void TaskManagerLacros::SetRefreshFlags(int64_t refresh_flags) {
  task_manager_controller_->SetRefreshFlags(refresh_flags);
}

void TaskManagerLacros::ActivateTask(const std::string& task_uuid) {
  task_manager_controller_->ActivateTask(task_uuid);
}

}  // namespace crosapi