OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/settings/settings_backend.h" | 5 #include "chrome/browser/extensions/settings/settings_backend.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 // Quota for each setting. Sync supports 5k per setting, so be a bit more | 32 // Quota for each setting. Sync supports 5k per setting, so be a bit more |
33 // restrictive than that. | 33 // restrictive than that. |
34 const size_t kQuotaPerSettingBytes = 2048; | 34 const size_t kQuotaPerSettingBytes = 2048; |
35 | 35 |
36 // Max number of settings per extension. Keep low for sync. | 36 // Max number of settings per extension. Keep low for sync. |
37 const size_t kMaxSettingKeys = 512; | 37 const size_t kMaxSettingKeys = 512; |
38 | 38 |
39 } // namespace | 39 } // namespace |
40 | 40 |
41 SettingsBackend::SettingsBackend( | 41 SettingsBackend::SettingsBackend( |
42 SettingsStorageFactory* storage_factory, | 42 const scoped_refptr<SettingsStorageFactory>& storage_factory, |
43 const FilePath& base_path, | 43 const FilePath& base_path, |
44 const scoped_refptr<SettingsObserverList>& observers) | 44 const scoped_refptr<SettingsObserverList>& observers) |
45 : storage_factory_(storage_factory), | 45 : storage_factory_(storage_factory), |
46 base_path_(base_path), | 46 base_path_(base_path), |
47 observers_(observers), | 47 observers_(observers), |
48 sync_type_(syncable::UNSPECIFIED), | 48 sync_type_(syncable::UNSPECIFIED), |
49 sync_processor_(NULL) { | 49 sync_processor_(NULL) { |
50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
51 } | 51 } |
52 | 52 |
53 SettingsBackend::~SettingsBackend() { | 53 SettingsBackend::~SettingsBackend() { |
54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
55 } | 55 } |
56 | 56 |
57 SettingsStorage* SettingsBackend::GetStorage( | 57 SettingsStorage* SettingsBackend::GetStorage( |
58 const std::string& extension_id) const { | 58 const std::string& extension_id) const { |
59 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 59 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
60 DictionaryValue empty; | 60 DictionaryValue empty; |
61 return GetOrCreateStorageWithSyncData(extension_id, empty); | 61 return GetOrCreateStorageWithSyncData(extension_id, empty); |
62 } | 62 } |
63 | 63 |
64 SyncableSettingsStorage* | 64 SyncableSettingsStorage* SettingsBackend::GetOrCreateStorageWithSyncData( |
65 SettingsBackend::GetOrCreateStorageWithSyncData( | |
66 const std::string& extension_id, const DictionaryValue& sync_data) const { | 65 const std::string& extension_id, const DictionaryValue& sync_data) const { |
67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 66 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
68 | 67 |
69 StorageObjMap::iterator maybe_storage = storage_objs_.find(extension_id); | 68 StorageObjMap::iterator maybe_storage = storage_objs_.find(extension_id); |
70 if (maybe_storage != storage_objs_.end()) { | 69 if (maybe_storage != storage_objs_.end()) { |
71 return maybe_storage->second.get(); | 70 return maybe_storage->second.get(); |
72 } | 71 } |
73 | 72 |
74 SettingsStorage* storage = storage_factory_->Create(base_path_, extension_id); | 73 SettingsStorage* storage = storage_factory_->Create(base_path_, extension_id); |
75 if (storage) { | 74 if (storage) { |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 | 287 |
289 for (StorageObjMap::iterator it = storage_objs_.begin(); | 288 for (StorageObjMap::iterator it = storage_objs_.begin(); |
290 it != storage_objs_.end(); ++it) { | 289 it != storage_objs_.end(); ++it) { |
291 // Some storage areas may have already stopped syncing if they had areas | 290 // Some storage areas may have already stopped syncing if they had areas |
292 // and syncing was disabled, but StopSyncing is safe to call multiple times. | 291 // and syncing was disabled, but StopSyncing is safe to call multiple times. |
293 it->second->StopSyncing(); | 292 it->second->StopSyncing(); |
294 } | 293 } |
295 } | 294 } |
296 | 295 |
297 } // namespace extensions | 296 } // namespace extensions |
OLD | NEW |