| Index: chrome_elf/blacklist/blacklist.h
|
| diff --git a/chrome_elf/blacklist/blacklist.h b/chrome_elf/blacklist/blacklist.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5787ddd1421315bf7deeeac7c614a4ad29310b34
|
| --- /dev/null
|
| +++ b/chrome_elf/blacklist/blacklist.h
|
| @@ -0,0 +1,52 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_ELF_BLACKLIST_BLACKLIST_H_
|
| +#define CHROME_ELF_BLACKLIST_BLACKLIST_H_
|
| +
|
| +namespace blacklist {
|
| +
|
| +// Max size of the DLL blacklist.
|
| +const int kTroublesomeDllsMaxCount = 64;
|
| +
|
| +// The DLL blacklist.
|
| +extern const wchar_t* g_troublesome_dlls[kTroublesomeDllsMaxCount];
|
| +
|
| +// Cursor to the current last element in the blacklist.
|
| +extern int g_troublesome_dlls_cur_index;
|
| +
|
| +// The registry path of the blacklist beacon. Exposed here for testing.
|
| +extern const wchar_t kRegistryBeaconPath[];
|
| +
|
| +// Attempts to create a beacon in the current user's registry hive.
|
| +// If the beacon already exists or any other error occurs 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 for some reason fails to start during blacklist setup,
|
| +// it will skip blacklisting on the subsequent run.
|
| +bool CreateBeacon();
|
| +
|
| +// Looks for the beacon that CreateBeacon() creates and attempts to delete it.
|
| +// Returns true if the beacon was found and deleted.
|
| +bool ClearBeacon();
|
| +
|
| +// Adds the given dll name to the blacklist. Returns true if the dll name is in
|
| +// the blacklist when this returns, false on error. Note that this will copy
|
| +// |dll_name| and will leak it on exit if the string is not subsequently removed
|
| +// using RemoveDllFromBlacklist.
|
| +extern "C" bool AddDllToBlacklist(const wchar_t* dll_name);
|
| +
|
| +// Removes the given dll name from the blacklist. Returns true if it was
|
| +// removed, false on error.
|
| +extern "C" bool RemoveDllFromBlacklist(const wchar_t* dll_name);
|
| +
|
| +// Initializes the DLL blacklist in the current process. This should be called
|
| +// before any undesirable DLLs might be loaded. If |force| is set to true, then
|
| +// initialization will take place even if a beacon is present. This is useful
|
| +// for tests.
|
| +bool Initialize(bool force);
|
| +
|
| +} // namespace blacklist
|
| +
|
| +#endif // CHROME_ELF_BLACKLIST_BLACKLIST_H_
|
|
|