#include "chrome/browser/component_updater/zxcvbn_data_component_installer.h"
#include <array>
#include <bit>
#include <cstdint>
#include <memory>
#include <string>
#include <string_view>
#include <vector>
#include "base/containers/flat_map.h"
#include "base/feature_list.h"
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/files/memory_mapped_file.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/scoped_refptr.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_split.h"
#include "base/task/thread_pool.h"
#include "base/values.h"
#include "base/version.h"
#include "components/component_updater/component_installer.h"
#include "components/component_updater/component_updater_service.h"
#include "components/password_manager/core/common/password_manager_features.h"
#include "components/update_client/update_client.h"
#include "components/update_client/update_client_errors.h"
#include "components/update_client/utils.h"
#include "third_party/zxcvbn-cpp/native-src/zxcvbn/frequency_lists.hpp"
namespace component_updater {
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kEnglishWikipediaTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kFemaleNamesTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kMaleNamesTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kPasswordsTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kSurnamesTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kUsTvAndFilmTxtFileName;
constexpr base::FilePath::StringPieceType
ZxcvbnDataComponentInstallerPolicy::kCombinedRankedDictsFileName;
namespace {
constexpr char kFirstMemoryMappedVersion[] = …;
constexpr int kNumMarkerBytes = …;
constexpr uint8_t kMarkerBit = …;
zxcvbn::RankedDicts MemoryMapRankedDictionaries(
const base::FilePath& install_dir) { … }
constexpr std::array<uint8_t, 32> kZxcvbnDataPublicKeySha256 = …;
}
bool ZxcvbnDataComponentInstallerPolicy::VerifyInstallation(
const base::Value::Dict& manifest,
const base::FilePath& install_dir) const { … }
bool ZxcvbnDataComponentInstallerPolicy::
SupportsGroupPolicyEnabledComponentUpdates() const { … }
bool ZxcvbnDataComponentInstallerPolicy::RequiresNetworkEncryption() const { … }
update_client::CrxInstaller::Result
ZxcvbnDataComponentInstallerPolicy::OnCustomInstall(
const base::Value::Dict& manifest,
const base::FilePath& install_dir) { … }
void ZxcvbnDataComponentInstallerPolicy::OnCustomUninstall() { … }
void ZxcvbnDataComponentInstallerPolicy::ComponentReady(
const base::Version& version,
const base::FilePath& install_dir,
base::Value::Dict manifest) { … }
base::FilePath ZxcvbnDataComponentInstallerPolicy::GetRelativeInstallDir()
const { … }
void ZxcvbnDataComponentInstallerPolicy::GetHash(
std::vector<uint8_t>* hash) const { … }
std::string ZxcvbnDataComponentInstallerPolicy::GetName() const { … }
update_client::InstallerAttributes
ZxcvbnDataComponentInstallerPolicy::GetInstallerAttributes() const { … }
void RegisterZxcvbnDataComponent(ComponentUpdateService* cus) { … }
}