| Index: chrome/browser/extensions/external_extension_provider_impl.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/external_extension_provider_impl.cc (revision 106910)
|
| +++ chrome/browser/extensions/external_extension_provider_impl.cc (working copy)
|
| @@ -14,7 +14,6 @@
|
| #include "base/values.h"
|
| #include "base/version.h"
|
| #include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/extensions/default_apps_trial.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/external_extension_provider_interface.h"
|
| #include "chrome/browser/extensions/external_policy_extension_loader.h"
|
| @@ -26,13 +25,15 @@
|
| #include "content/browser/browser_thread.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
|
|
| +#if !defined(OS_CHROMEOS)
|
| +#include "chrome/browser/extensions/default_apps.h"
|
| +#endif
|
| +
|
| #if defined(OS_WIN)
|
| #include "chrome/browser/extensions/external_registry_extension_loader_win.h"
|
| #endif
|
|
|
| // Constants for keeping track of extension preferences in a dictionary.
|
| -const char ExternalExtensionProviderImpl::kLocation[] = "location";
|
| -const char ExternalExtensionProviderImpl::kState[] = "state";
|
| const char ExternalExtensionProviderImpl::kExternalCrx[] = "external_crx";
|
| const char ExternalExtensionProviderImpl::kExternalVersion[] =
|
| "external_version";
|
| @@ -41,47 +42,6 @@
|
| const char ExternalExtensionProviderImpl::kSupportedLocales[] =
|
| "supported_locales";
|
|
|
| -#if !defined(OS_CHROMEOS)
|
| -class DefaultAppsProvider : public ExternalExtensionProviderImpl {
|
| - public:
|
| - DefaultAppsProvider(VisitorInterface* service, Profile* profile)
|
| - : ExternalExtensionProviderImpl(service,
|
| - new ExternalPrefExtensionLoader(chrome::DIR_DEFAULT_APPS,
|
| - ExternalPrefExtensionLoader::NONE),
|
| - Extension::EXTERNAL_PREF, Extension::INVALID),
|
| - profile_(profile) {
|
| - DCHECK(profile_);
|
| - }
|
| -
|
| - // ExternalExtensionProviderImpl overrides:
|
| - virtual void ServiceShutdown() OVERRIDE;
|
| - virtual void VisitRegisteredExtension() const OVERRIDE;
|
| -
|
| - private:
|
| - Profile* profile_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DefaultAppsProvider);
|
| -};
|
| -
|
| -void DefaultAppsProvider::ServiceShutdown() {
|
| - profile_ = NULL;
|
| - ExternalExtensionProviderImpl::ServiceShutdown();
|
| -}
|
| -
|
| -void DefaultAppsProvider::VisitRegisteredExtension() const {
|
| - // Don't install default apps if the profile already has apps installed.
|
| - if (profile_) {
|
| - ExtensionService* extension_service = profile_->GetExtensionService();
|
| - if (extension_service && extension_service->HasApps()) {
|
| - service()->OnExternalProviderReady(this);
|
| - return;
|
| - }
|
| - }
|
| -
|
| - ExternalExtensionProviderImpl::VisitRegisteredExtension();
|
| -}
|
| -#endif
|
| -
|
| ExternalExtensionProviderImpl::ExternalExtensionProviderImpl(
|
| VisitorInterface* service,
|
| ExternalExtensionLoader* loader,
|
| @@ -382,46 +342,15 @@
|
| Extension::EXTERNAL_POLICY_DOWNLOAD)));
|
|
|
| #if !defined(OS_CHROMEOS)
|
| - // We decide to install or not install default apps based on the following
|
| - // criteria, from highest priority to lowest priority:
|
| - //
|
| - // - if this instance of chrome is participating in the default apps
|
| - // field trial, then install apps based on the group
|
| - // - the command line option. Tests use this option to disable installation
|
| - // of default apps in some cases
|
| - // - the preferences value in the profile. This value is usually set in
|
| - // the master_preferences file
|
| - bool install_apps =
|
| - profile->GetPrefs()->GetString(prefs::kDefaultApps) == "install";
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kDisableDefaultApps)) {
|
| - install_apps = false;
|
| + if (default_apps::ShouldInstallInProfile(profile)) {
|
| + provider_list->push_back(
|
| + linked_ptr<ExternalExtensionProviderInterface>(
|
| + new ExternalExtensionProviderImpl(
|
| + service,
|
| + new ExternalPrefExtensionLoader(
|
| + chrome::DIR_DEFAULT_APPS, options),
|
| + Extension::EXTERNAL_PREF,
|
| + Extension::INVALID)));
|
| }
|
| - if (base::FieldTrialList::TrialExists(kDefaultAppsTrial_Name)) {
|
| - install_apps = base::FieldTrialList::Find(
|
| - kDefaultAppsTrial_Name)->group_name() != kDefaultAppsTrial_NoAppsGroup;
|
| - }
|
| -
|
| - if (install_apps) {
|
| - // Don't bother installing default apps in locales where its known that
|
| - // they don't work.
|
| - // TODO(rogerta): Do this check dynamically once the webstore can expose
|
| - // an API.
|
| - const std::string& locale = g_browser_process->GetApplicationLocale();
|
| - static const char* unsupported_locales[] = {"CN", "TR", "IR"};
|
| - bool supported_locale = true;
|
| - for (size_t i = 0; i < arraysize(unsupported_locales); ++i) {
|
| - if (EndsWith(locale, unsupported_locales[i], false)) {
|
| - supported_locale = false;
|
| - break;
|
| - }
|
| - }
|
| -
|
| - if (supported_locale) {
|
| - provider_list->push_back(
|
| - linked_ptr<ExternalExtensionProviderInterface>(
|
| - new DefaultAppsProvider(service, profile)));
|
| - }
|
| - }
|
| #endif
|
| }
|
|
|