12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Copyright 2020 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 CHROMEOS_LACROS_CROSAPI_PREF_OBSERVER_H_
- #define CHROMEOS_LACROS_CROSAPI_PREF_OBSERVER_H_
- #include "base/callback_forward.h"
- #include "base/component_export.h"
- #include "base/gtest_prod_util.h"
- #include "base/values.h"
- #include "chromeos/crosapi/mojom/prefs.mojom.h"
- #include "mojo/public/cpp/bindings/receiver.h"
- // Helper to simplify the crosapi::mojom::PrefObserver API.
- // Observes ash-chrome for changes in specified pref.
- class COMPONENT_EXPORT(CHROMEOS_LACROS) CrosapiPrefObserver
- : public crosapi::mojom::PrefObserver {
- public:
- using PrefChangedCallback = base::RepeatingCallback<void(base::Value value)>;
- CrosapiPrefObserver(crosapi::mojom::PrefPath path,
- PrefChangedCallback callback);
- CrosapiPrefObserver(const CrosapiPrefObserver&) = delete;
- CrosapiPrefObserver& operator=(const CrosapiPrefObserver&) = delete;
- ~CrosapiPrefObserver() override;
- private:
- FRIEND_TEST_ALL_PREFIXES(CrosapiPrefObserverLacrosBrowserTest, Basics);
- // crosapi::mojom::PrefObserver:
- void OnPrefChanged(base::Value value) override;
- PrefChangedCallback callback_;
- // Receives mojo messages from ash.
- mojo::Receiver<crosapi::mojom::PrefObserver> receiver_{this};
- };
- #endif // CHROMEOS_LACROS_CROSAPI_PREF_OBSERVER_H_
|