From 9bb69163f491cc1f1e3f412442a6ca0ad1a947fb Mon Sep 17 00:00:00 2001 From: "bartfab@chromium.org" Date: Thu, 26 Sep 2013 18:50:12 +0000 Subject: Add EXTERNAL_POLICY to list of possible extension locations This CL adds a new extension location, EXTERNAL_POLICY. This will be used for CRX files that are force-installed through policy but instead of being downloaded and installed directly, are cached on disk first. BUG=287802 TEST=Manual Review URL: https://codereview.chromium.org/24365004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225526 0039d316-1c4b-4281-b951-d872f2087c98 --- extensions/common/manifest.cc | 6 +++++- extensions/common/manifest.h | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'extensions') diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc index 85b5d98..4decdd3 100644 --- a/extensions/common/manifest.cc +++ b/extensions/common/manifest.cc @@ -34,11 +34,15 @@ int GetLocationRank(Manifest::Location location) { switch (location) { // Component extensions can not be overriden by any other type. case Manifest::COMPONENT: - rank = 7; + rank = 8; break; // Policy controlled extensions may not be overridden by any type // that is not part of chrome. + case Manifest::EXTERNAL_POLICY: + rank = 7; + break; + case Manifest::EXTERNAL_POLICY_DOWNLOAD: rank = 6; break; diff --git a/extensions/common/manifest.h b/extensions/common/manifest.h index c4ceb387..4bf92ec 100644 --- a/extensions/common/manifest.h +++ b/extensions/common/manifest.h @@ -40,6 +40,9 @@ class Manifest { EXTERNAL_POLICY_DOWNLOAD, // A crx file from an external directory (via // admin policies), installed from an update URL. COMMAND_LINE, // --load-extension. + EXTERNAL_POLICY, // A crx file from an external directory (via admin + // policies), cached locally and installed from the + // cache. NUM_LOCATIONS }; @@ -69,6 +72,7 @@ class Manifest { return location == EXTERNAL_PREF || location == EXTERNAL_REGISTRY || location == EXTERNAL_PREF_DOWNLOAD || + location == EXTERNAL_POLICY || location == EXTERNAL_POLICY_DOWNLOAD; } @@ -84,6 +88,12 @@ class Manifest { IsExternalLocation(location); } + // Whether the |location| is a source of extensions force-installed through + // policy. + static inline bool IsPolicyLocation(Location location) { + return location == EXTERNAL_POLICY || location == EXTERNAL_POLICY_DOWNLOAD; + } + // Unpacked extensions start off with file access since they are a developer // feature. static inline bool ShouldAlwaysAllowFileAccess(Location location) { -- cgit v1.1