1 // Copyright 2024 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/nix/scoped_xdg_activation_token_injector.h" 6 #include "base/command_line.h" 7 #include "base/environment.h" 8 #include "base/nix/xdg_util.h" 9 10 namespace base::nix { 11 ScopedXdgActivationTokenInjector(base::CommandLine & command_line,base::Environment & env)12ScopedXdgActivationTokenInjector::ScopedXdgActivationTokenInjector( 13 base::CommandLine& command_line, 14 base::Environment& env) 15 : command_line_(command_line) { 16 if (auto token = ExtractXdgActivationTokenFromEnv(env); token.has_value()) { 17 command_line.AppendSwitchASCII(kXdgActivationTokenSwitch, *token); 18 token_injected_ = true; 19 } 20 } 21 ~ScopedXdgActivationTokenInjector()22ScopedXdgActivationTokenInjector::~ScopedXdgActivationTokenInjector() { 23 if (token_injected_) { 24 command_line_->RemoveSwitch(kXdgActivationTokenSwitch); 25 } 26 } 27 28 } // namespace base::nix 29