| Index: chrome/browser/extensions/default_apps.h
|
| diff --git a/chrome/browser/extensions/default_apps.h b/chrome/browser/extensions/default_apps.h
|
| index b03f6ec16147bf44f0449f6407619ab197d08ac2..a8b162c0021cc370f1388079338baeb8921c391f 100644
|
| --- a/chrome/browser/extensions/default_apps.h
|
| +++ b/chrome/browser/extensions/default_apps.h
|
| @@ -13,21 +13,10 @@
|
|
|
| class PrefService;
|
|
|
| -// Manages the installation of the set of default apps into Chrome, and the
|
| -// promotion of those apps in the launcher.
|
| -//
|
| -// It implements the following rules:
|
| -//
|
| -// - Only install default apps once per-profile.
|
| -// - Don't install default apps if any apps are already installed.
|
| -// - Do not start showing the promo until all default apps have been installed.
|
| -// - Do not show the promo if it has been hidden by the user.
|
| -// - Do not show promo after one app has been manually installed or uninstalled.
|
| -// - Do not show promo if the set of installed apps is different than the set of
|
| -// default apps.
|
| -// - Only show promo a certain amount of times.
|
| -//
|
| -// The promo can also be forced on with --force-apps-promo-visible.
|
| +// Encapsulates business logic for:
|
| +// - Whether to install default apps on Chrome startup
|
| +// - Whether to show the app launcher
|
| +// - Whether to show the apps promo in the launcher
|
| class DefaultApps {
|
| public:
|
| // The maximum number of times to show the apps promo.
|
| @@ -36,28 +25,28 @@ class DefaultApps {
|
| // Register our preferences.
|
| static void RegisterUserPrefs(PrefService* prefs);
|
|
|
| - explicit DefaultApps(PrefService* prefs);
|
| + explicit DefaultApps(PrefService* prefs,
|
| + const std::string& application_locale);
|
| ~DefaultApps();
|
|
|
| - // Gets the list of default apps that should be installed. Can return NULL if
|
| - // no apps need to be installed.
|
| - const ExtensionIdSet* GetAppsToInstall() const;
|
| + // Gets the set of default apps.
|
| + const ExtensionIdSet& default_apps() const;
|
|
|
| - // Gets the list of default apps.
|
| - const ExtensionIdSet* GetDefaultApps() const;
|
| + // Returns true if the default apps should be installed.
|
| + bool ShouldInstallDefaultApps(const ExtensionIdSet& installed_ids);
|
|
|
| - // Returns true if the default apps have been installed. False otherwise.
|
| - bool GetDefaultAppsInstalled() const;
|
| -
|
| - // Should be called after each app is installed. Once installed_ids contains
|
| - // all the default apps, GetAppsToInstall() will start returning NULL.
|
| - void DidInstallApp(const ExtensionIdSet& installed_ids);
|
| + // Returns true if the app launcher in the NTP should be shown.
|
| + bool ShouldShowAppLauncher(const ExtensionIdSet& installed_ids);
|
|
|
| // Returns true if the apps promo should be displayed in the launcher.
|
| //
|
| // NOTE: If the default apps have been installed, but |installed_ids| is
|
| // different than GetDefaultApps(), this will permanently expire the promo.
|
| - bool CheckShouldShowPromo(const ExtensionIdSet& installed_ids);
|
| + bool ShouldShowPromo(const ExtensionIdSet& installed_ids);
|
| +
|
| + // Should be called after each app is installed. Once installed_ids contains
|
| + // all the default apps, GetAppsToInstall() will start returning NULL.
|
| + void DidInstallApp(const ExtensionIdSet& installed_ids);
|
|
|
| // Should be called after each time the promo is installed.
|
| void DidShowPromo();
|
| @@ -66,12 +55,19 @@ class DefaultApps {
|
| void SetPromoHidden();
|
|
|
| private:
|
| - FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps, Basics);
|
| + FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps, HappyPath);
|
| + FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps, UnsupportedLocale);
|
| FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps, HidePromo);
|
| FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps, InstallingAnAppHidesPromo);
|
| FRIEND_TEST_ALL_PREFIXES(ExtensionDefaultApps,
|
| ManualAppInstalledWhileInstallingDefaultApps);
|
|
|
| + bool DefaultAppSupported();
|
| + bool DefaultAppsSupportedForLanguage();
|
| +
|
| + bool NonDefaultAppIsInstalled(const ExtensionIdSet& installed_ids) const;
|
| +
|
| + bool GetDefaultAppsInstalled() const;
|
| void SetDefaultAppsInstalled(bool val);
|
|
|
| int GetPromoCounter() const;
|
| @@ -80,6 +76,9 @@ class DefaultApps {
|
| // Our permanent state is stored in this PrefService instance.
|
| PrefService* prefs_;
|
|
|
| + // The locale the browser is currently in.
|
| + std::string application_locale_;
|
| +
|
| // The set of default extensions. Initialized to a static list in the
|
| // constructor.
|
| ExtensionIdSet ids_;
|
|
|