// Copyright 2020 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_BROWSER_UPGRADE_DETECTOR_REGISTRY_MONITOR_H_
#define CHROME_BROWSER_UPGRADE_DETECTOR_REGISTRY_MONITOR_H_
#include "base/functional/callback.h"
#include "base/win/registry.h"
#include "chrome/browser/upgrade_detector/installed_version_monitor.h"
// A monitor of installs on Windows that watches for changes in the browser's
// Clients registry key.
class RegistryMonitor final : public InstalledVersionMonitor {
public:
explicit RegistryMonitor(base::win::RegKey key);
~RegistryMonitor() override;
// InstalledVersionMonitor:
void Start(Callback on_change_callback) override;
private:
void StartWatching();
void OnClientsKeyChanged();
base::win::RegKey clients_key_;
Callback on_change_callback_;
};
#endif // CHROME_BROWSER_UPGRADE_DETECTOR_REGISTRY_MONITOR_H_