| // 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_ |