chromium/chrome/chrome_elf/third_party_dlls/beacon.h

// Copyright 2019 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_CHROME_ELF_THIRD_PARTY_DLLS_BEACON_H_
#define CHROME_CHROME_ELF_THIRD_PARTY_DLLS_BEACON_H_

namespace third_party_dlls {

// Attempts to leave a beacon in the current user's registry hive. If the beacon
// doesn't say it is enabled or there are any other errors when creating the
// beacon, returns false. Otherwise returns true. The intent of the beacon is to
// act as an extra failure mode protection whereby if Chrome repeatedly fails to
// start during the initialization of third-party DLL blocking, it will skip
// blocking on the subsequent run.
bool LeaveSetupBeacon();

// Looks for the setup running beacon that LeaveSetupBeacon() creates and resets
// it to to show the setup was successful.
// Returns true if the beacon was successfully set to BLOCKLIST_ENABLED.
bool ResetBeacon();

}  // namespace third_party_dlls

#endif  // CHROME_CHROME_ELF_THIRD_PARTY_DLLS_BEACON_H_