// 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_