Index: chrome/browser/extensions/api/storage/managed_value_store_cache.cc |
diff --git a/chrome/browser/extensions/api/storage/managed_value_store_cache.cc b/chrome/browser/extensions/api/storage/managed_value_store_cache.cc |
index 31482bf6a86d9775cd4d26b01b1ad6080ba8ef68..3dfbf7e0b26bf4f0ac9ae5ce186927a8527a5db8 100644 |
--- a/chrome/browser/extensions/api/storage/managed_value_store_cache.cc |
+++ b/chrome/browser/extensions/api/storage/managed_value_store_cache.cc |
@@ -19,6 +19,8 @@ |
#include "chrome/browser/extensions/extension_prefs.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_system.h" |
+#include "chrome/browser/policy/policy_domain_descriptor.h" |
+#include "chrome/browser/policy/policy_schema.h" |
#include "chrome/browser/policy/profile_policy_connector.h" |
#include "chrome/browser/policy/profile_policy_connector_factory.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -86,21 +88,19 @@ void ManagedValueStoreCache::ExtensionTracker::Observe( |
// the storage API, but that still includes a lot of extensions that don't |
// use the storage.managed namespace. Use the presence of a schema for the |
// managed namespace in the manifest as a better signal, once available. |
- |
+ scoped_refptr<policy::PolicyDomainDescriptor> descriptor( |
+ new policy::PolicyDomainDescriptor(policy::POLICY_DOMAIN_EXTENSIONS)); |
const ExtensionSet* set = |
ExtensionSystem::Get(profile_)->extension_service()->extensions(); |
- std::set<std::string> use_storage_set; |
- for (ExtensionSet::const_iterator it = set->begin(); |
- it != set->end(); ++it) { |
+ for (ExtensionSet::const_iterator it = set->begin(); it != set->end(); ++it) { |
+ // TODO(joaodasilva): pass the parsed schema here, once available. |
if ((*it)->HasAPIPermission(APIPermission::kStorage)) |
- use_storage_set.insert((*it)->id()); |
+ descriptor->AddComponent((*it)->id(), scoped_ptr<policy::PolicySchema>()); |
} |
policy::ProfilePolicyConnector* connector = |
policy::ProfilePolicyConnectorFactory::GetForProfile(profile_); |
- connector->policy_service()->RegisterPolicyDomain( |
- policy::POLICY_DOMAIN_EXTENSIONS, |
- use_storage_set); |
+ connector->policy_service()->RegisterPolicyDomain(descriptor); |
} |
ManagedValueStoreCache::ManagedValueStoreCache( |