chromium/chrome/browser/extensions/preinstalled_apps.h

// Copyright 2012 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_PREINSTALLED_APPS_H_
#define CHROME_BROWSER_EXTENSIONS_PREINSTALLED_APPS_H_

#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/values.h"
#include "chrome/browser/extensions/external_provider_impl.h"
#include "extensions/common/manifest.h"
#include "extensions/common/mojom/manifest.mojom-shared.h"

class Profile;

namespace user_prefs {
class PrefRegistrySyncable;
}

// Functions and types related to preinstalling apps.
namespace preinstalled_apps {

// These enum values are persisted in the user preferences, so they should not
// be changed.
enum InstallState {};

// Register preference properties used by default apps to maintain
// install state.
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);

// A specialization of the ExternalProviderImpl that conditionally installs apps
// from the chrome::DIR_DEFAULT_APPS location based on a preference in the
// profile.
class Provider : public extensions::ExternalProviderImpl {};

}  // namespace preinstalled_apps

#endif  // CHROME_BROWSER_EXTENSIONS_PREINSTALLED_APPS_H_