// Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. #ifndef CEF_LIBCEF_BROWSER_TASK_MANAGER_IMPL_H_ #define CEF_LIBCEF_BROWSER_TASK_MANAGER_IMPL_H_ #pragma once #include "base/memory/raw_ptr.h" #include "cef/include/cef_task_manager.h" #include "cef/libcef/browser/thread_util.h" #include "chrome/browser/task_manager/task_manager_observer.h" namespace task_manager { class TaskManagerInterface; } class CefTaskManagerImpl : public task_manager::TaskManagerObserver, public CefTaskManager { public: explicit CefTaskManagerImpl(task_manager::TaskManagerInterface* task_manager); ~CefTaskManagerImpl(); CefTaskManagerImpl(const CefTaskManagerImpl&) = delete; CefTaskManagerImpl& operator=(const CefTaskManagerImpl&) = delete; // CefTaskManager methods: size_t GetTasksCount() override; bool GetTaskIdsList(TaskIdList& task_ids) override; bool GetTaskInfo(int64_t task_id, CefTaskInfo& info) override; bool KillTask(int64_t task_id) override; int64_t GetTaskIdForBrowserId(int browser_id) override; private: bool IsValidTaskId(int64_t task_id) const; // task_manager::TaskManagerObserver: void OnTaskAdded(int64_t id) override; void OnTaskToBeRemoved(int64_t id) override; void OnTasksRefreshed(const task_manager::TaskIdList& task_ids) override; raw_ptr task_manager_; TaskIdList tasks_; IMPLEMENT_REFCOUNTING_DELETE_ON_UIT(CefTaskManagerImpl); }; #endif // CEF_LIBCEF_BROWSER_TASK_MANAGER_IMPL_H_