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

Unified Diff: chrome/browser/extensions/extension_assets_manager_chromeos.h

Issue 303693011: Add garbage collection for shared extensions on Chrome OS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed Chromium OS valgrind bot Created 6 years, 7 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/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
index 7afacdb976b3e1e2213da1552a045d7b9fd02e31..99ac2a61d6deeac20bb35a1f0feb5d520a08f17f 100644
--- a/chrome/browser/extensions/extension_assets_manager_chromeos.h
+++ b/chrome/browser/extensions/extension_assets_manager_chromeos.h
@@ -5,12 +5,15 @@
#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ASSETS_MANAGER_CHROMEOS_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_ASSETS_MANAGER_CHROMEOS_H_
+#include <map>
+
#include "chrome/browser/extensions/extension_assets_manager.h"
template <typename T> struct DefaultSingletonTraits;
class PrefRegistrySimple;
namespace base {
+class DictionaryValue;
class SequencedTaskRunner;
}
@@ -22,8 +25,14 @@ class ExtensionAssetsManagerChromeOS : public ExtensionAssetsManager {
public:
static ExtensionAssetsManagerChromeOS* GetInstance();
- // Path to shared extensions install dir.
- static const char kSharedExtensionsDir[];
+ // A dictionary that maps shared extension IDs to version/paths/users.
+ static const char kSharedExtensions[];
+
+ // Name of path attribute in shared extensions map.
+ static const char kSharedExtensionPath[];
+
+ // Name of users attribute (list of user emails) in shared extensions map.
+ static const char kSharedExtensionUsers[];
// Register shared assets related preferences.
static void RegisterPrefs(PrefRegistrySimple* registry);
@@ -40,6 +49,16 @@ class ExtensionAssetsManagerChromeOS : public ExtensionAssetsManager {
const base::FilePath& local_install_dir,
const base::FilePath& extension_root) OVERRIDE;
+ // Return shared install dir.
+ static base::FilePath GetSharedInstallDir();
+
+ // Cleans up shared extensions list in preferences and returns list of
+ // extension IDs and version paths that are in use in |live_extension_paths|.
+ // Files on disk are not removed. Must be called on UI thread.
+ // Returns |false| in case of errors.
+ static bool CleanUpSharedExtensions(
+ std::multimap<std::string, base::FilePath>* live_extension_paths);
+
static void SetSharedInstallDirForTesting(const base::FilePath& install_dir);
private:
@@ -52,9 +71,6 @@ class ExtensionAssetsManagerChromeOS : public ExtensionAssetsManager {
// the profile.
static base::SequencedTaskRunner* GetFileTaskRunner(Profile* profile);
- // Return shared install dir.
- static base::FilePath GetSharedInstallDir();
-
// Return |true| if |extension| can be installed in a shared place for all
// users on the device.
static bool CanShareAssets(const Extension* extension);
@@ -97,6 +113,12 @@ class ExtensionAssetsManagerChromeOS : public ExtensionAssetsManager {
// Called on task runner thread to remove shared version.
static void DeleteSharedVersion(const base::FilePath& shared_version_dir);
+ // Clean shared extension with given |id|.
+ static bool CleanUpExtension(
+ const std::string& id,
+ base::DictionaryValue* extension_info,
+ std::multimap<std::string, base::FilePath>* live_extension_paths);
+
DISALLOW_COPY_AND_ASSIGN(ExtensionAssetsManagerChromeOS);
};

Powered by Google App Engine
This is Rietveld 408576698