#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "remoting/host/webauthn/remote_webauthn_extension_notifier.h"
#include <vector>
#include "base/base_paths.h"
#include "base/containers/span.h"
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/scoped_refptr.h"
#include "base/memory/weak_ptr.h"
#include "base/no_destructor.h"
#include "base/notreached.h"
#include "base/path_service.h"
#include "base/sequence_checker.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "build/build_config.h"
#if BUILDFLAG(IS_LINUX)
#include "base/environment.h"
#include "base/nix/xdg_util.h"
#include "base/strings/string_util.h"
#elif BUILDFLAG(IS_WIN)
#include <windows.h>
#include <knownfolders.h>
#include <shlobj.h>
#include <wtsapi32.h>
#include "base/win/scoped_co_mem.h"
#include "base/win/scoped_handle.h"
#endif
namespace remoting {
namespace {
static constexpr char kExtensionWakeupFileContent[] = …;
std::vector<base::FilePath> GetRemoteStateChangeDirPaths() { … }
}
class RemoteWebAuthnExtensionNotifier::Core final { … };
RemoteWebAuthnExtensionNotifier::Core::Core(
std::vector<base::FilePath> remote_state_change_dirs)
: … { … }
RemoteWebAuthnExtensionNotifier::Core::~Core() { … }
void RemoteWebAuthnExtensionNotifier::Core::WakeUpExtension() { … }
const std::vector<base::FilePath::StringType>&
RemoteWebAuthnExtensionNotifier::GetRemoteWebAuthnExtensionIds() { … }
RemoteWebAuthnExtensionNotifier::RemoteWebAuthnExtensionNotifier()
: … { … }
RemoteWebAuthnExtensionNotifier::RemoteWebAuthnExtensionNotifier(
std::vector<base::FilePath> remote_state_change_dirs,
scoped_refptr<base::SequencedTaskRunner> io_task_runner) { … }
RemoteWebAuthnExtensionNotifier::~RemoteWebAuthnExtensionNotifier() { … }
void RemoteWebAuthnExtensionNotifier::NotifyStateChange() { … }
void RemoteWebAuthnExtensionNotifier::WakeUpExtension() { … }
}