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 a26939e1ba2d7f2932d42fe1df7ccecc5db49155..30caf1207a24510a393a33ff1eaa223580afbab1 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. |
@@ -152,14 +154,29 @@ class KioskAppManager : public KioskAppDataDelegate, |
void RetryFailedAppDataFetch(); |
+ // Returns true if the app is found in cache. |
+ bool HasCachedCrx(const std::string& app_id) const; |
+ |
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| from cache. |
+ void InstallFromCache(const std::string& id); |
+ |
+ void UpdateExternalCache(); |
+ |
+ bool external_loader_created() const { return external_loader_created_; } |
+ |
private: |
friend struct base::DefaultLazyInstanceTraits<KioskAppManager>; |
friend struct base::DefaultDeleter<KioskAppManager>; |
friend class KioskAppManagerTest; |
friend class KioskTest; |
+ friend class KioskUpdateTest; |
enum AutoLoginState { |
AUTOLOGIN_NONE = 0, |
@@ -178,7 +195,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: |
@@ -216,9 +233,11 @@ class KioskAppManager : public KioskAppDataDelegate, |
void GetCrxCacheDir(base::FilePath* cache_dir); |
+ // 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, |
base::FilePath* file_path, |
- std::string* version); |
+ std::string* version) const; |
// True if machine ownership is already established. |
bool ownership_established_; |
@@ -233,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); |
}; |