Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(688)

Unified Diff: chrome/browser/profile_impl.cc

Issue 3522015: Implement new strategy for default apps (Closed)
Patch Set: all done Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/profile_impl.h ('k') | chrome/browser/resources/calendar_app/128.png » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profile_impl.cc
diff --git a/chrome/browser/profile_impl.cc b/chrome/browser/profile_impl.cc
index af95572d5f535972bb92aab937bec711f2238481..899e068daa063913ccf5c6fa5d189b0d1601fc45 100644
--- a/chrome/browser/profile_impl.cc
+++ b/chrome/browser/profile_impl.cc
@@ -26,6 +26,7 @@
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/dom_ui/ntp_resource_cache.h"
#include "chrome/browser/download/download_manager.h"
+#include "chrome/browser/extensions/default_apps.h"
#include "chrome/browser/extensions/extension_devtools_manager.h"
#include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_info_map.h"
@@ -168,15 +169,6 @@ bool HasACacheSubdir(const FilePath &dir) {
file_util::PathExists(GetMediaCachePath(dir));
}
-// Returns true if the default apps should be loaded (so that the app panel is
-// not empty).
-bool IncludeDefaultApps() {
-#if defined(OS_CHROMEOS) && defined(GOOGLE_CHROME_BUILD)
- return true;
-#endif
- return false;
-}
-
// Simple task to log the size of the current profile.
class ProfileSizeTask : public Task {
public:
@@ -240,6 +232,7 @@ Profile* Profile::CreateProfile(const FilePath& path) {
// static
void ProfileImpl::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false);
+ DefaultApps::RegisterUserPrefs(prefs);
}
ProfileImpl::ProfileImpl(const FilePath& path)
@@ -375,6 +368,18 @@ void ProfileImpl::InitExtensions() {
GetPath().AppendASCII(ExtensionsService::kInstallDirectoryName),
true);
+ RegisterComponentExtensions();
+ extensions_service_->Init();
+ InstallDefaultApps();
+
+ // Load any extensions specified with --load-extension.
+ if (command_line->HasSwitch(switches::kLoadExtension)) {
+ FilePath path = command_line->GetSwitchValuePath(switches::kLoadExtension);
+ extensions_service_->LoadExtension(path);
+ }
+}
+
+void ProfileImpl::RegisterComponentExtensions() {
// Register the component extensions.
typedef std::list<std::pair<std::string, int> > ComponentExtensionList;
ComponentExtensionList component_extensions;
@@ -392,22 +397,9 @@ void ProfileImpl::InitExtensions() {
component_extensions.push_back(
std::make_pair("web_store", IDR_WEBSTORE_MANIFEST));
- // Some sample apps to make our lives easier while we are developing extension
- // apps. This way we don't have to constantly install these over and over.
- if (Extension::AppsAreEnabled() && IncludeDefaultApps()) {
- component_extensions.push_back(
- std::make_pair("gmail_app", IDR_GMAIL_APP_MANIFEST));
- component_extensions.push_back(
- std::make_pair("calendar_app", IDR_CALENDAR_APP_MANIFEST));
- component_extensions.push_back(
- std::make_pair("docs_app", IDR_DOCS_APP_MANIFEST));
- }
-
#if defined(OS_CHROMEOS) && defined(GOOGLE_CHROME_BUILD)
- if (Extension::AppsAreEnabled()) {
- component_extensions.push_back(
- std::make_pair("chat_manager", IDR_TALK_APP_MANIFEST));
- }
+ component_extensions.push_back(
+ std::make_pair("chat_manager", IDR_TALK_APP_MANIFEST));
#endif
for (ComponentExtensionList::iterator iter = component_extensions.begin();
@@ -425,13 +417,31 @@ void ProfileImpl::InitExtensions() {
extensions_service_->register_component_extension(
ExtensionsService::ComponentExtensionInfo(manifest, path));
}
+}
- extensions_service_->Init();
+void ProfileImpl::InstallDefaultApps() {
+#if !defined(OS_CHROMEOS)
+ // On desktop Chrome, we don't have default apps on by, err, default yet.
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableDefaultApps)) {
+ return;
+ }
+#endif
- // Load any extensions specified with --load-extension.
- if (command_line->HasSwitch(switches::kLoadExtension)) {
- FilePath path = command_line->GetSwitchValuePath(switches::kLoadExtension);
- extensions_service_->LoadExtension(path);
+ // The web store only supports en-US at the moment, so we don't install
+ // default apps in other locales.
+ if (g_browser_process->GetApplicationLocale() != "en-US")
+ return;
+
+ ExtensionsService* extensions_service = GetExtensionsService();
+ const ExtensionIdSet* app_ids =
+ extensions_service->default_apps()->GetAppsToInstall();
+ if (!app_ids)
+ return;
+
+ for (ExtensionIdSet::const_iterator iter = app_ids->begin();
+ iter != app_ids->end(); ++iter) {
+ extensions_service->AddPendingExtensionFromDefaultAppList(*iter);
}
}
« no previous file with comments | « chrome/browser/profile_impl.h ('k') | chrome/browser/resources/calendar_app/128.png » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698