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

Side by Side Diff: chrome/browser/extensions/api/storage/managed_value_store_cache.cc

Issue 102493002: Use schemas bundled in extensions to convert policies loaded on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 7 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | components/policy/core/common/configuration_policy_provider_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h" 5 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 namespace extensions { 46 namespace extensions {
47 47
48 namespace storage = api::storage; 48 namespace storage = api::storage;
49 49
50 namespace { 50 namespace {
51 51
52 const char kLoadSchemasBackgroundTaskTokenName[] = 52 const char kLoadSchemasBackgroundTaskTokenName[] =
53 "load_managed_storage_schemas_token"; 53 "load_managed_storage_schemas_token";
54 54
55 // The Legacy Browser Support was the first user of the policy-for-extensions
56 // API, and relied on behavior that will be phased out. If this extension is
57 // present then its policies will be loaded in a special way.
58 // TODO(joaodasilva): remove this for M35. http://crbug.com/325349
59 const char kLegacyBrowserSupportExtensionId[] =
60 "heildphpnddilhkemkielfhnkaagiabh";
61
55 } // namespace 62 } // namespace
56 63
57 // This helper observes initialization of all the installed extensions and 64 // This helper observes initialization of all the installed extensions and
58 // subsequent loads and unloads, and keeps the SchemaRegistry of the Profile 65 // subsequent loads and unloads, and keeps the SchemaRegistry of the Profile
59 // in sync with the current list of extensions. This allows the PolicyService 66 // in sync with the current list of extensions. This allows the PolicyService
60 // to fetch cloud policy for those extensions, and allows its providers to 67 // to fetch cloud policy for those extensions, and allows its providers to
61 // selectively load only extension policy that has users. 68 // selectively load only extension policy that has users.
62 class ManagedValueStoreCache::ExtensionTracker 69 class ManagedValueStoreCache::ExtensionTracker
63 : public content::NotificationObserver { 70 : public content::NotificationObserver {
64 public: 71 public:
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 base::Bind(&ExtensionTracker::LoadSchemas, 173 base::Bind(&ExtensionTracker::LoadSchemas,
167 base::Passed(&added), 174 base::Passed(&added),
168 weak_factory_.GetWeakPtr())); 175 weak_factory_.GetWeakPtr()));
169 } 176 }
170 177
171 bool ManagedValueStoreCache::ExtensionTracker::UsesManagedStorage( 178 bool ManagedValueStoreCache::ExtensionTracker::UsesManagedStorage(
172 const Extension* extension) const { 179 const Extension* extension) const {
173 if (extension->manifest()->HasPath(manifest_keys::kStorageManagedSchema)) 180 if (extension->manifest()->HasPath(manifest_keys::kStorageManagedSchema))
174 return true; 181 return true;
175 182
176 // TODO(joaodasilva): also load extensions that use the storage API for now, 183 // TODO(joaodasilva): remove this by M35.
177 // to support the Legacy Browser Support extension. Remove this. 184 return extension->id() == kLegacyBrowserSupportExtensionId;
178 // http://crbug.com/240704
179 if (extension->HasAPIPermission(APIPermission::kStorage))
180 return true;
181
182 return false;
183 } 185 }
184 186
185 // static 187 // static
186 void ManagedValueStoreCache::ExtensionTracker::LoadSchemas( 188 void ManagedValueStoreCache::ExtensionTracker::LoadSchemas(
187 scoped_ptr<ExtensionSet> extensions, 189 scoped_ptr<ExtensionSet> extensions,
188 base::WeakPtr<ExtensionTracker> self) { 190 base::WeakPtr<ExtensionTracker> self) {
189 scoped_ptr<policy::ComponentMap> components(new policy::ComponentMap); 191 scoped_ptr<policy::ComponentMap> components(new policy::ComponentMap);
190 192
191 for (ExtensionSet::const_iterator it = extensions->begin(); 193 for (ExtensionSet::const_iterator it = extensions->begin();
192 it != extensions->end(); ++it) { 194 it != extensions->end(); ++it) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 366
365 return store; 367 return store;
366 } 368 }
367 369
368 bool ManagedValueStoreCache::HasStore(const std::string& extension_id) const { 370 bool ManagedValueStoreCache::HasStore(const std::string& extension_id) const {
369 // TODO(joaodasilva): move this check to a ValueStore method. 371 // TODO(joaodasilva): move this check to a ValueStore method.
370 return base::DirectoryExists(base_path_.AppendASCII(extension_id)); 372 return base::DirectoryExists(base_path_.AppendASCII(extension_id));
371 } 373 }
372 374
373 } // namespace extensions 375 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | components/policy/core/common/configuration_policy_provider_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698