// 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);
};
};