chromium/chromeos/ash/components/drivefs/mojom/pinning_manager_types.mojom

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

module drivefs.pinning_manager_types.mojom;

// The PinManager first undergoes a setup phase, where it audits the current
// disk space, pins all available files (disk space willing) then moves to
// monitoring. This enum represents the various stages the setup goes through.
// This enum is currently shared between the PinManager as well as the OS
// Settings.
//
// These values are persisted to UMA histograms (see UMA enum
// GoogleDrive.BulkPinning.Stage). Entries should not be renumbered and numeric
// values should never be reused.
enum Stage {
  // Initial stage.
  kStopped = 0,

  // Paused because of unfavorable network conditions.
  kPausedOffline = 1,

  // Paused because of battery saving mode.
  kPausedBatterySaver = 2,

  // In-progress stages.
  kGettingFreeSpace = 3,
  kListingFiles = 4,
  kSyncing = 5,

  // Final success stage.
  kSuccess = 6,

  // Final error stages.
  kNotEnoughSpace = 7,
  kCannotGetFreeSpace = 8,
  kCannotListFiles = 9,
  kCannotEnableDocsOffline = 10,
};