// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_PROCESS_SINGLETON_H_ #define CHROME_BROWSER_PROCESS_SINGLETON_H_ #include "base/sequence_checker.h" #include "build/build_config.h" #if BUILDFLAG(IS_WIN) #include "base/win/windows_types.h" #endif // BUILDFLAG(IS_WIN) #include "base/check.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/process/process.h" #include "ui/gfx/native_widget_types.h" #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) #include "base/files/scoped_temp_dir.h" #endif #if BUILDFLAG(IS_WIN) #include "base/win/message_window.h" #endif // BUILDFLAG(IS_WIN) namespace base { class CommandLine; } // ProcessSingleton ---------------------------------------------------------- // // This class allows different browser processes to communicate with // each other. It is named according to the user data directory, so // we can be sure that no more than one copy of the application can be // running at once with a given data directory. // // Implementation notes: // - the Windows implementation uses an invisible global message window; // - the Linux implementation uses a Unix domain socket in the user data dir. class ProcessSingleton { … }; #endif // CHROME_BROWSER_PROCESS_SINGLETON_H_