chromium/chrome/browser/extensions/api/webstore_private/extension_install_status.h

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

#ifndef CHROME_BROWSER_EXTENSIONS_API_WEBSTORE_PRIVATE_EXTENSION_INSTALL_STATUS_H_
#define CHROME_BROWSER_EXTENSIONS_API_WEBSTORE_PRIVATE_EXTENSION_INSTALL_STATUS_H_

#include "extensions/common/extension_id.h"
#include "extensions/common/manifest.h"

class Profile;

namespace extensions {

class PermissionSet;

enum ExtensionInstallStatus {};

// Returns the Extension install status for a Chrome web store extension with
// |extension_id| in |profile|. Note that this function won't check whether the
// extension's manifest type, required permissions are blocked by enterprise
// policy. type blocking or permission blocking or manifest version. Please use
// this function only if manifest file is not available.
ExtensionInstallStatus GetWebstoreExtensionInstallStatus(
    const ExtensionId& extension_id,
    Profile* profile);

// Returns the Extension install status for a Chrome web store extension with
// `extension_id` in `profile`. Also check if `manifest_type`, any permission
// in `required_permission_set` is blocked by enterprise policy or
// `manifest_version` is allowed.  `manifest_version` is only valid for
// TYPE_EXTENSION.
ExtensionInstallStatus GetWebstoreExtensionInstallStatus(
    const ExtensionId& extension_id,
    Profile* profile,
    const Manifest::Type manifest_type,
    const PermissionSet& required_permission_set,
    int manifest_version = 3);

}  // namespace extensions

#endif  // CHROME_BROWSER_EXTENSIONS_API_WEBSTORE_PRIVATE_EXTENSION_INSTALL_STATUS_H_