// 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 BASE_THREADING_CROSS_PROCESS_PLATFORM_THREAD_DELEGATE_H_ #define BASE_THREADING_CROSS_PROCESS_PLATFORM_THREAD_DELEGATE_H_ #include "base/base_export.h" #include "base/threading/platform_thread.h" namespace base { // A CrossProcessPlatformThreadDelegate can intercept thread type changes for // threads including other processes. This can be used for ChromeOS so that the // browser process can proxy thread type updates of child processes received // from SandboxedProcessThreadTypeHandler to D-Bus because child processes don't // have access to D-Bus. class BASE_EXPORT CrossProcessPlatformThreadDelegate { public: CrossProcessPlatformThreadDelegate() = default; CrossProcessPlatformThreadDelegate( const CrossProcessPlatformThreadDelegate&) = delete; CrossProcessPlatformThreadDelegate& operator=( const CrossProcessPlatformThreadDelegate&) = delete; virtual ~CrossProcessPlatformThreadDelegate() = default; // Invoked on thread type change. Returns true if the delegate handles // adjusting thread properties. virtual bool HandleThreadTypeChange(ProcessId process_id, PlatformThreadId thread_id, ThreadType thread_type) = 0; }; } // namespace base #endif // BASE_THREADING_CROSS_PROCESS_PLATFORM_THREAD_DELEGATE_H_