Index: chrome/browser/extensions/extension_assets_manager_chromeos.h |
diff --git a/chrome/browser/extensions/extension_assets_manager_chromeos.h b/chrome/browser/extensions/extension_assets_manager_chromeos.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8112ce2d4a187cbae2e9a54e70be7650ddc2b13d |
--- /dev/null |
+++ b/chrome/browser/extensions/extension_assets_manager_chromeos.h |
@@ -0,0 +1,112 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ASSETS_MANAGER_CHROMEOS_H_ |
+#define CHROME_BROWSER_EXTENSIONS_EXTENSION_ASSETS_MANAGER_CHROMEOS_H_ |
+ |
+#include "chrome/browser/extensions/extension_assets_manager.h" |
+ |
+template <typename T> struct DefaultSingletonTraits; |
+class PrefRegistrySimple; |
+ |
+namespace base { |
+class SequencedTaskRunner; |
+} |
+ |
+namespace extensions { |
+ |
+// Chrome OS specific implementation assets manager that share default apps |
asargent_no_longer_on_chrome
2014/05/20 21:20:25
nit: "that share" -> "that shares"
Dmitry Polukhin
2014/05/20 23:42:16
Done.
|
+// between all users on the machine. |
+class ExtensionAssetsManagerChromeOS : public ExtensionAssetsManager { |
+ public: |
+ static ExtensionAssetsManagerChromeOS* GetInstance(); |
+ |
+ // Path to shared extensions install dir. |
+ static const char kSharedExtensionsDir[]; |
+ |
+ // Register shared assets related preferences. |
+ static void RegisterPrefs(PrefRegistrySimple* registry); |
+ |
+ // Override from ExtensionAssetsManager. |
+ virtual void InstallExtension(const Extension* extension, |
+ const base::FilePath& unpacked_extension_root, |
+ const base::FilePath& local_install_dir, |
+ Profile* profile, |
+ InstallExtensionCallback callback) OVERRIDE; |
+ virtual void UninstallExtension( |
+ const std::string& id, |
+ Profile* profile, |
+ const base::FilePath& local_install_dir, |
+ const base::FilePath& extension_root) OVERRIDE; |
+ |
+ static void SetSharedInstallDirForTesting(const base::FilePath& install_dir); |
+ |
+ private: |
+ friend struct DefaultSingletonTraits<ExtensionAssetsManagerChromeOS>; |
+ |
+ ExtensionAssetsManagerChromeOS(); |
+ virtual ~ExtensionAssetsManagerChromeOS(); |
+ |
+ // Should be called on UI thread to get associated file task runner for |
+ // the profile. |
+ static base::SequencedTaskRunner* GetFileTaskRunner(Profile* profile); |
+ |
+ // Return shared install dir. |
+ static base::FilePath GetSharedInstallDir(); |
+ |
+ // Return |true| if |extension| can be installed in shared place for all users |
asargent_no_longer_on_chrome
2014/05/20 21:20:25
nit: "can be installed in shared place" -> "can be
Dmitry Polukhin
2014/05/20 23:42:16
Done.
|
+ // on the device. |
+ static bool CanShareAssets(const Extension* extension); |
+ |
+ // Called in UI thread to check if given version of the |extension| already |
asargent_no_longer_on_chrome
2014/05/20 21:20:25
a couple grammar nits; this should be:
"Called on
Dmitry Polukhin
2014/05/20 23:42:16
Done.
|
+ // exists at shared location. |
+ static void CheckSharedExtension( |
+ const std::string& id, |
+ const std::string& version, |
+ const base::FilePath& unpacked_extension_root, |
+ const base::FilePath& local_install_dir, |
+ Profile* profile, |
+ InstallExtensionCallback callback); |
+ |
+ // Called on task runner thread when version is found in shared location. |
+ static void RunInstallCallback(const base::FilePath& shared_version_dir, |
+ InstallExtensionCallback callback); |
+ |
+ // Called on task runner thread to install extension to shared location. |
+ static void InstallSharedExtension( |
+ const std::string& id, |
+ const std::string& version, |
+ const base::FilePath& unpacked_extension_root); |
+ |
+ // Called on UI thread to process shared install result. |
+ static void InstallSharedExtensionDone( |
+ const std::string& id, |
+ const std::string& version, |
+ const base::FilePath& shared_version_dir); |
+ |
+ // Called on task runner thread to do local install because shared install |
+ // failed. |
+ static void SharedInstallFailed(const std::string& id, |
+ const std::string& version, |
+ const base::FilePath& unpacked_extension_root, |
+ const base::FilePath& local_install_dir, |
+ InstallExtensionCallback callback); |
+ |
+ // Called on UI thread to mark that shared version is not used. |
+ static void MarkSharedExtensionUnused( |
+ const std::string& id, |
+ Profile* profile); |
+ |
+ // Called on task runner thread to remove shared version. |
+ static void DeleteSharedVersion(const base::FilePath& shared_version_dir); |
+ |
+ // Called on task runner thread to remove shared extension dir. |
+ static void DeleteSharedExtension(const std::string& id); |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ExtensionAssetsManagerChromeOS); |
+}; |
+ |
+} // namespace extensions |
+ |
+#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ASSETS_MANAGER_CHROMEOS_H_ |