chromium/chromecast/common/mojom/feature_update.mojom

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module chromecast.mojom;

import "mojo/public/mojom/base/values.mojom";

// This interface is implemented by the clients of `FeatureUpdateService`.
interface FeatureUpdateObserver {
  // Triggered when there is an update to base::Feature configs because a
  // DCS download is completed. `features` is a dictionary which is ready to be
  // persisted to disk (via PrefService).
  OnFeaturesUpdated(mojo_base.mojom.DictionaryValue features);
};

// This interface is implemented in the Cast Service process and allows the
// observers to receive base::Feature state updates after base::Feature
// overrides are downloaded successfully from the cloud service (DCS).
interface FeatureUpdateService {
  // Adds an observer to receive feature config updates.
  RegisterFeatureUpdateObserver(pending_remote<FeatureUpdateObserver> observer);
};