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

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

Issue 464893002: Accept invalid Schemas for the managed storage API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use an empty schema if schema validation failed Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 manifest_keys::kStorageManagedSchema, &schema_file)) { 199 manifest_keys::kStorageManagedSchema, &schema_file)) {
200 // TODO(joaodasilva): Remove this. http://crbug.com/325349 200 // TODO(joaodasilva): Remove this. http://crbug.com/325349
201 (*components)[(*it)->id()] = policy::Schema(); 201 (*components)[(*it)->id()] = policy::Schema();
202 continue; 202 continue;
203 } 203 }
204 // The extension should have been validated, so assume the schema exists 204 // The extension should have been validated, so assume the schema exists
205 // and is valid. 205 // and is valid.
206 std::string error; 206 std::string error;
207 policy::Schema schema = 207 policy::Schema schema =
208 StorageSchemaManifestHandler::GetSchema(it->get(), &error); 208 StorageSchemaManifestHandler::GetSchema(it->get(), &error);
209 CHECK(schema.valid()) << error; 209 // If the schema is invalid then proceed with an empty schema. The extension
210 // will be listed in chrome://policy but won't be able to load any policies.
not at google - send to devlin 2014/08/13 17:27:31 It'd be nice to try to recover the policy in this
Joao da Silva 2014/08/14 11:56:57 sgtm. Shouldn't we try to do the same recovery for
211 if (!schema.valid())
212 schema = policy::Schema();
210 (*components)[(*it)->id()] = schema; 213 (*components)[(*it)->id()] = schema;
211 } 214 }
212 215
213 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 216 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
214 base::Bind(&ExtensionTracker::Register, self, 217 base::Bind(&ExtensionTracker::Register, self,
215 base::Owned(components.release()))); 218 base::Owned(components.release())));
216 } 219 }
217 220
218 void ManagedValueStoreCache::ExtensionTracker::Register( 221 void ManagedValueStoreCache::ExtensionTracker::Register(
219 const policy::ComponentMap* components) { 222 const policy::ComponentMap* components) {
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 368
366 return store; 369 return store;
367 } 370 }
368 371
369 bool ManagedValueStoreCache::HasStore(const std::string& extension_id) const { 372 bool ManagedValueStoreCache::HasStore(const std::string& extension_id) const {
370 // TODO(joaodasilva): move this check to a ValueStore method. 373 // TODO(joaodasilva): move this check to a ValueStore method.
371 return base::DirectoryExists(base_path_.AppendASCII(extension_id)); 374 return base::DirectoryExists(base_path_.AppendASCII(extension_id));
372 } 375 }
373 376
374 } // namespace extensions 377 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698