chromium/chrome/common/extensions/api/odfs_config_private.idl

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

// Use the <code>chrome.odfsConfigPrivate</code> API to configure the
// Microsoft OneDrive integration.
[implemented_in = "chrome/browser/chromeos/extensions/odfs_config_private/odfs_config_private_api.h",
modernised_enums]
namespace odfsConfigPrivate {

  enum Mount {
    allowed,
    disallowed,
    automated
  };

  dictionary MountInfo {
    Mount mode;
  };

  dictionary AccountRestrictionsInfo {
    DOMString[] restrictions;
  };

  callback GetMountCallback = void(MountInfo mount);
  callback GetAccountRestrictionsCallback = void(
      AccountRestrictionsInfo restrictions);
  callback ShowAutomatedMountErrorCallback = void();
  callback BoolCallback = void(boolean result);

  interface Functions {
    // Returns the OneDrive mount mode from the admin policy.
    // |callback|: Invoked when the policy value was retrieved.
    static void getMount(
        GetMountCallback callback);

    // Returns the OneDrive account restrictions from the admin policy.
    // |callback|: Invoked when the policy value was retrieved.
    static void getAccountRestrictions(
        GetAccountRestrictionsCallback callback);

    // Shows a notification that the automated mount failed.
    static void showAutomatedMountError(
        ShowAutomatedMountErrorCallback callback);

    // Returns whether the FileSystemProviderCloudFileSystem feature flag is
    // enabled.
    static void isCloudFileSystemEnabled(BoolCallback callback);

    // Returns whether the FileSystemProviderContentCache feature flag is
    // enabled.
    static void isContentCacheEnabled(BoolCallback callback);
  };

  interface Events {
    // Fired when the OneDrive mount mode changed.
    // |event|: A OneDrive mount mode changed event.
    static void onMountChanged(MountInfo event);

    // Fired when the OneDrive restrictions changed.
    // |event|: A OneDrive restrictions changed event.
    static void onAccountRestrictionsChanged(
        AccountRestrictionsInfo event);
  };

};