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

Unified Diff: chrome/browser/chromeos/app_mode/kiosk_app_manager.cc

Issue 1301323005: Implement kiosk multiple apps feature. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
Index: chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
index a37df89e7ee7638bc03f773960b6e5dadaf6f6b4..d590ff30790d25026027c9ad026b068e5cb4054f 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
@@ -465,7 +465,7 @@ void KioskAppManager::RemoveObserver(KioskAppManagerObserver* observer) {
extensions::ExternalLoader* KioskAppManager::CreateExternalLoader() {
if (external_loader_created_) {
NOTREACHED();
- return NULL;
+ return nullptr;
}
external_loader_created_ = true;
KioskAppExternalLoader* loader = new KioskAppExternalLoader();
@@ -474,6 +474,19 @@ extensions::ExternalLoader* KioskAppManager::CreateExternalLoader() {
return loader;
}
+extensions::ExternalLoader*
+KioskAppManager::CreateSecondaryAppExternalLoader() {
+ if (secondary_app_external_loader_created_) {
+ NOTREACHED();
+ return nullptr;
+ }
+ secondary_app_external_loader_created_ = true;
+ KioskAppExternalLoader* secondary_loader = new KioskAppExternalLoader();
+ secondary_app_external_loader_ = secondary_loader->AsWeakPtr();
+
+ return secondary_loader;
+}
+
void KioskAppManager::InstallFromCache(const std::string& id) {
const base::DictionaryValue* extension = NULL;
if (external_cache_->cached_extensions()->GetDictionary(id, &extension)) {
@@ -487,6 +500,25 @@ void KioskAppManager::InstallFromCache(const std::string& id) {
}
}
+void KioskAppManager::InstallSecondaryApps(
+ const std::vector<std::string>& ids) {
+ if (ids.empty())
+ return;
+
+ scoped_ptr<base::DictionaryValue> prefs(new base::DictionaryValue);
+ for (const std::string& id : ids) {
+ scoped_ptr<base::DictionaryValue> extension_entry(
+ new base::DictionaryValue);
+ extension_entry->SetStringWithoutPathExpansion(
+ extensions::ExternalProviderImpl::kExternalUpdateUrl,
+ extension_urls::GetWebstoreUpdateUrl().spec());
+ extension_entry->SetBoolean(
+ extensions::ExternalProviderImpl::kIsFromWebstore, true);
+ prefs->Set(id, extension_entry.Pass());
+ }
+ secondary_app_external_loader_->SetCurrentAppExtensions(prefs.Pass());
+}
+
void KioskAppManager::UpdateExternalCache() {
UpdateAppData();
}
@@ -511,7 +543,9 @@ void KioskAppManager::PutValidatedExternalExtension(
}
KioskAppManager::KioskAppManager()
- : ownership_established_(false), external_loader_created_(false) {
+ : ownership_established_(false),
+ external_loader_created_(false),
+ secondary_app_external_loader_created_(false) {
base::FilePath cache_dir;
GetCrxCacheDir(&cache_dir);
external_cache_.reset(
« no previous file with comments | « chrome/browser/chromeos/app_mode/kiosk_app_manager.h ('k') | chrome/browser/chromeos/app_mode/startup_app_launcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698