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

Side by Side Diff: extensions/browser/value_store/legacy_value_store_factory.cc

Issue 2965153002: Migrate Extensions code to Task Scheduler API (Closed)
Patch Set: Self review Created 3 years, 5 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "extensions/browser/value_store/legacy_value_store_factory.h" 5 #include "extensions/browser/value_store/legacy_value_store_factory.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/files/file_enumerator.h" 9 #include "base/files/file_enumerator.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "content/public/browser/browser_thread.h" 12 #include "base/threading/thread_restrictions.h"
13 #include "extensions/browser/value_store/leveldb_value_store.h" 13 #include "extensions/browser/value_store/leveldb_value_store.h"
14 #include "extensions/common/constants.h" 14 #include "extensions/common/constants.h"
15 15
16 using base::AutoLock; 16 using base::AutoLock;
17 using content::BrowserThread;
18 17
19 namespace { 18 namespace {
20 19
21 // Statistics are logged to UMA with these strings as part of histogram name. 20 // Statistics are logged to UMA with these strings as part of histogram name.
22 // They can all be found under Extensions.Database.Open.<client>. Changing this 21 // They can all be found under Extensions.Database.Open.<client>. Changing this
23 // needs to synchronize with histograms.xml, AND will also become incompatible 22 // needs to synchronize with histograms.xml, AND will also become incompatible
24 // with older browsers still reporting the previous values. 23 // with older browsers still reporting the previous values.
25 const char kSettingsDatabaseUMAClientName[] = "Settings"; 24 const char kSettingsDatabaseUMAClientName[] = "Settings";
26 const char kRulesDatabaseUMAClientName[] = "Rules"; 25 const char kRulesDatabaseUMAClientName[] = "Rules";
27 const char kStateDatabaseUMAClientName[] = "State"; 26 const char kStateDatabaseUMAClientName[] = "State";
(...skipping 24 matching lines...) Expand all
52 return base::DeleteFile(GetDBPath(extension_id), true /* recursive */); 51 return base::DeleteFile(GetDBPath(extension_id), true /* recursive */);
53 } 52 }
54 53
55 bool LegacyValueStoreFactory::ModelSettings::DataExists( 54 bool LegacyValueStoreFactory::ModelSettings::DataExists(
56 const ExtensionId& extension_id) const { 55 const ExtensionId& extension_id) const {
57 return ValidDBExists(GetDBPath(extension_id)); 56 return ValidDBExists(GetDBPath(extension_id));
58 } 57 }
59 58
60 std::set<ExtensionId> 59 std::set<ExtensionId>
61 LegacyValueStoreFactory::ModelSettings::GetKnownExtensionIDs() const { 60 LegacyValueStoreFactory::ModelSettings::GetKnownExtensionIDs() const {
62 DCHECK_CURRENTLY_ON(BrowserThread::FILE); 61 base::ThreadRestrictions::AssertIOAllowed();
63 std::set<ExtensionId> result; 62 std::set<ExtensionId> result;
64 63
65 // Leveldb databases are directories inside |base_path_|. 64 // Leveldb databases are directories inside |base_path_|.
66 base::FileEnumerator extension_dirs(data_path_, false, 65 base::FileEnumerator extension_dirs(data_path_, false,
67 base::FileEnumerator::DIRECTORIES); 66 base::FileEnumerator::DIRECTORIES);
68 while (!extension_dirs.Next().empty()) { 67 while (!extension_dirs.Next().empty()) {
69 base::FilePath extension_dir = extension_dirs.GetInfo().GetName(); 68 base::FilePath extension_dir = extension_dirs.GetInfo().GetName();
70 DCHECK(!extension_dir.IsAbsolute()); 69 DCHECK(!extension_dir.IsAbsolute());
71 // Extension ID's are 'a'..'p', so any directory within this folder will 70 // Extension ID's are 'a'..'p', so any directory within this folder will
72 // either be ASCII, or created by some other application and safe to ignore. 71 // either be ASCII, or created by some other application and safe to ignore.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 DCHECK(extensions_ != nullptr); 120 DCHECK(extensions_ != nullptr);
122 return extensions_.get(); 121 return extensions_.get();
123 } 122 }
124 NOTREACHED(); 123 NOTREACHED();
125 return nullptr; 124 return nullptr;
126 } 125 }
127 126
128 std::set<ExtensionId> 127 std::set<ExtensionId>
129 LegacyValueStoreFactory::SettingsRoot::GetKnownExtensionIDs( 128 LegacyValueStoreFactory::SettingsRoot::GetKnownExtensionIDs(
130 ModelType model_type) const { 129 ModelType model_type) const {
131 DCHECK_CURRENTLY_ON(BrowserThread::FILE); 130 base::ThreadRestrictions::AssertIOAllowed();
132 switch (model_type) { 131 switch (model_type) {
133 case ValueStoreFactory::ModelType::APP: 132 case ValueStoreFactory::ModelType::APP:
134 DCHECK(apps_ != nullptr); 133 DCHECK(apps_ != nullptr);
135 return apps_->GetKnownExtensionIDs(); 134 return apps_->GetKnownExtensionIDs();
136 case ValueStoreFactory::ModelType::EXTENSION: 135 case ValueStoreFactory::ModelType::EXTENSION:
137 DCHECK(extensions_ != nullptr); 136 DCHECK(extensions_ != nullptr);
138 return extensions_->GetKnownExtensionIDs(); 137 return extensions_->GetKnownExtensionIDs();
139 } 138 }
140 NOTREACHED(); 139 NOTREACHED();
141 return std::set<ExtensionId>(); 140 return std::set<ExtensionId>();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 GetSettingsRoot(settings_namespace).GetModel(model_type); 184 GetSettingsRoot(settings_namespace).GetModel(model_type);
186 DCHECK(settings_root != nullptr); 185 DCHECK(settings_root != nullptr);
187 return base::MakeUnique<LeveldbValueStore>( 186 return base::MakeUnique<LeveldbValueStore>(
188 kSettingsDatabaseUMAClientName, settings_root->GetDBPath(extension_id)); 187 kSettingsDatabaseUMAClientName, settings_root->GetDBPath(extension_id));
189 } 188 }
190 189
191 void LegacyValueStoreFactory::DeleteSettings( 190 void LegacyValueStoreFactory::DeleteSettings(
192 settings_namespace::Namespace settings_namespace, 191 settings_namespace::Namespace settings_namespace,
193 ModelType model_type, 192 ModelType model_type,
194 const ExtensionId& extension_id) { 193 const ExtensionId& extension_id) {
195 // TODO(cmumford): Verify that we always need to be called on FILE thread. 194 base::ThreadRestrictions::AssertIOAllowed();
196 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
197 ModelSettings* model_settings = 195 ModelSettings* model_settings =
198 GetSettingsRoot(settings_namespace).GetModel(model_type); 196 GetSettingsRoot(settings_namespace).GetModel(model_type);
199 if (model_settings == nullptr) { 197 if (model_settings == nullptr) {
200 NOTREACHED(); 198 NOTREACHED();
201 return; 199 return;
202 } 200 }
203 model_settings->DeleteData(extension_id); 201 model_settings->DeleteData(extension_id);
204 } 202 }
205 203
206 bool LegacyValueStoreFactory::HasSettings( 204 bool LegacyValueStoreFactory::HasSettings(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 253
256 base::FilePath LegacyValueStoreFactory::GetRulesDBPath() const { 254 base::FilePath LegacyValueStoreFactory::GetRulesDBPath() const {
257 return profile_path_.AppendASCII(kRulesStoreName); 255 return profile_path_.AppendASCII(kRulesStoreName);
258 } 256 }
259 257
260 base::FilePath LegacyValueStoreFactory::GetStateDBPath() const { 258 base::FilePath LegacyValueStoreFactory::GetStateDBPath() const {
261 return profile_path_.AppendASCII(kStateStoreName); 259 return profile_path_.AppendASCII(kStateStoreName);
262 } 260 }
263 261
264 } // namespace extensions 262 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698