chromium/chromeos/ash/components/standalone_browser/migration_progress_tracker.h

// 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.

#ifndef CHROMEOS_ASH_COMPONENTS_STANDALONE_BROWSER_MIGRATION_PROGRESS_TRACKER_H_
#define CHROMEOS_ASH_COMPONENTS_STANDALONE_BROWSER_MIGRATION_PROGRESS_TRACKER_H_

#include "base/component_export.h"
#include "base/functional/callback.h"

namespace ash::standalone_browser {

ProgressCallback;

// Interface to be inherited by `MigrationProgressTrackerImpl` and
// `FakeMigrationProgressTrackerImpl`. It is passed to
// `BrowserDataMigrator::MigrateInternal()` and called whenever there is an
// update in progress of the migration.
class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_STANDALONE_BROWSER)
    MigrationProgressTracker {};

// Used to send progress updates to the UI. `progress_callback_` is posted on
// the UI thread.
class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_STANDALONE_BROWSER)
  MigrationProgressTrackerImpl : public MigrationProgressTracker {};

}  // namespace ash::standalone_browser

#endif  // CHROMEOS_ASH_COMPONENTS_STANDALONE_BROWSER_MIGRATION_PROGRESS_TRACKER_H_