summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/api/management/management_api.cc1
-rw-r--r--chrome/browser/extensions/external_provider_impl.cc2
-rw-r--r--extensions/common/manifest.cc4
-rw-r--r--extensions/common/manifest.h3
-rw-r--r--tools/metrics/histograms/histograms.xml1
5 files changed, 10 insertions, 1 deletions
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc
index 59f2a3c..afad4c9 100644
--- a/chrome/browser/extensions/api/management/management_api.cc
+++ b/chrome/browser/extensions/api/management/management_api.cc
@@ -199,6 +199,7 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo(
NOTREACHED();
case Manifest::INVALID_LOCATION:
case Manifest::COMPONENT:
+ case Manifest::EXTERNAL_COMPONENT:
info->install_type = management::ExtensionInfo::INSTALL_TYPE_OTHER;
break;
}
diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc
index 9b86130..78b1417 100644
--- a/chrome/browser/extensions/external_provider_impl.cc
+++ b/chrome/browser/extensions/external_provider_impl.cc
@@ -490,7 +490,7 @@ void ExternalProviderImpl::CreateExternalProviders(
new ExternalComponentLoader(),
profile,
Manifest::INVALID_LOCATION,
- Manifest::EXTERNAL_POLICY_DOWNLOAD,
+ Manifest::EXTERNAL_COMPONENT,
Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT)));
}
}
diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc
index 4decdd3..39e6920 100644
--- a/extensions/common/manifest.cc
+++ b/extensions/common/manifest.cc
@@ -34,6 +34,10 @@ int GetLocationRank(Manifest::Location location) {
switch (location) {
// Component extensions can not be overriden by any other type.
case Manifest::COMPONENT:
+ rank = 9;
+ break;
+
+ case Manifest::EXTERNAL_COMPONENT:
rank = 8;
break;
diff --git a/extensions/common/manifest.h b/extensions/common/manifest.h
index 4bf92ec..ef76406 100644
--- a/extensions/common/manifest.h
+++ b/extensions/common/manifest.h
@@ -43,6 +43,9 @@ class Manifest {
EXTERNAL_POLICY, // A crx file from an external directory (via admin
// policies), cached locally and installed from the
// cache.
+ EXTERNAL_COMPONENT, // Similar to COMPONENT in that it's considered an
+ // internal implementation detail of chrome, but
+ // installed from an update URL like the *DOWNLOAD ones.
NUM_LOCATIONS
};
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 6078179..e6f6f45 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -21566,6 +21566,7 @@ other types of suffix sets.
<int value="7" label="EXTERNAL_POLICY_DOWNLOAD"/>
<int value="8" label="COMMAND_LINE"/>
<int value="9" label="EXTERNAL_POLICY"/>
+ <int value="10" label="EXTERNAL_COMPONENT"/>
</enum>
<enum name="ExtensionPermission" type="int">