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

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

Issue 300843013: Install and launch kiosk app from cached crx file at start up. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ExternalProviderImplChromeOSTest.AppMode test case. Created 6 years, 5 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.h
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_manager.h b/chrome/browser/chromeos/app_mode/kiosk_app_manager.h
index 7a9fe670717e657fafc2c94aacf44af4e7e58c44..577ca0ef7ddf0374ba204525388ae4947a9065e9 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_manager.h
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_manager.h
@@ -29,11 +29,13 @@ class RefCountedString;
namespace extensions {
class Extension;
+class ExternalLoader;
}
namespace chromeos {
class KioskAppData;
+class KioskAppExternalLoader;
class KioskAppManagerObserver;
// KioskAppManager manages cached app data.
@@ -150,9 +152,32 @@ class KioskAppManager : public KioskAppDataDelegate,
Profile* profile,
const extensions::Extension* app);
+ // Gets the file path and version information of the cached crx with |app_id|.
+ // Returns true if the app is found in cache.
+ bool GetCachedCrx(const std::string& app_id,
xiyuan 2014/07/08 21:50:59 nit: It seems we no longer need to expose crx path
jennyz 2014/07/12 00:03:20 This function is still needed in KioskAppManagerTe
+ base::FilePath* file_path,
+ std::string* version);
+
+ // Returns true if the extension with |id| is pending for caching crx file
+ // for the first time.
+ bool IsExtensionPendingForCache(const std::string& id);
+
+ // Returns true if the extensions with |id| is pending for update check.
+ // The crx file fo the extension has been cached previously.
+ bool IsExtensionPendingForUpdateCheck(const std::string& id);
xiyuan 2014/07/08 21:50:59 We can probably merge this with IsExtensionPending
jennyz 2014/07/12 00:03:20 We don't need both functions now, removed.
+
void AddObserver(KioskAppManagerObserver* observer);
void RemoveObserver(KioskAppManagerObserver* observer);
+ // Creates extensions::ExternalLoader for installing kiosk apps during their
+ // first time launch.
+ extensions::ExternalLoader* CreateExternalLoader();
+
+ // Installs kiosk app with |id|.
+ void InstallKioskApp(const std::string& id);
xiyuan 2014/07/08 21:50:59 nit: InstallKioskApp -> InstallFromCache to be mor
jennyz 2014/07/12 00:03:20 Done.
+
+ bool external_loader_created() const { return external_loader_created_; }
+
private:
friend struct base::DefaultLazyInstanceTraits<KioskAppManager>;
friend struct base::DefaultDeleter<KioskAppManager>;
@@ -176,7 +201,7 @@ class KioskAppManager : public KioskAppDataDelegate,
const KioskAppData* GetAppData(const std::string& app_id) const;
KioskAppData* GetAppDataMutable(const std::string& app_id);
- // Update app data |apps_| based on CrosSettings.
+ // Updates app data |apps_| based on CrosSettings.
void UpdateAppData();
// KioskAppDataDelegate overrides:
@@ -214,10 +239,6 @@ class KioskAppManager : public KioskAppDataDelegate,
void GetCrxCacheDir(base::FilePath* cache_dir);
- bool GetCachedCrx(const std::string& app_id,
- base::FilePath* file_path,
- std::string* version);
-
// True if machine ownership is already established.
bool ownership_established_;
ScopedVector<KioskAppData> apps_;
@@ -231,6 +252,10 @@ class KioskAppManager : public KioskAppDataDelegate,
scoped_ptr<ExternalCache> external_cache_;
+ // The extension external loader for installing kiosk app.
+ bool external_loader_created_;
+ base::WeakPtr<KioskAppExternalLoader> external_loader_;
+
DISALLOW_COPY_AND_ASSIGN(KioskAppManager);
};

Powered by Google App Engine
This is Rietveld 408576698