| // 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_NIX_SCOPED_XDG_ACTIVATION_TOKEN_INJECTOR_H_ |
| #define BASE_NIX_SCOPED_XDG_ACTIVATION_TOKEN_INJECTOR_H_ |
| #include "base/base_export.h" |
| #include "base/memory/raw_ref.h" |
| // Sets the global xdg-activation token after reading from the launching app and |
| // injects it temporarily into the command line if it needs to be sent to |
| // another browser process. |
| // The token switch is removed from the command line on destruction. |
| class BASE_EXPORT ScopedXdgActivationTokenInjector { |
| ScopedXdgActivationTokenInjector(base::CommandLine& command_line, |
| ScopedXdgActivationTokenInjector(const ScopedXdgActivationTokenInjector&) = |
| ScopedXdgActivationTokenInjector& operator=( |
| const ScopedXdgActivationTokenInjector&) = delete; |
| ~ScopedXdgActivationTokenInjector(); |
| const raw_ref<CommandLine> command_line_; |
| bool token_injected_ = false; |
| #endif // BASE_NIX_SCOPED_XDG_ACTIVATION_TOKEN_INJECTOR_H_ |