OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/file_system_provider/registry.h" | 5 #include "chrome/browser/chromeos/file_system_provider/registry.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/memory/ptr_util.h" |
8 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
9 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" | 10 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" |
10 #include "chrome/browser/chromeos/file_system_provider/observer.h" | 11 #include "chrome/browser/chromeos/file_system_provider/observer.h" |
11 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" | 12 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" |
12 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info
.h" | 13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info
.h" |
13 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" | 14 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" |
14 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
15 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
16 #include "components/pref_registry/pref_registry_syncable.h" | 17 #include "components/pref_registry/pref_registry_syncable.h" |
17 #include "components/prefs/pref_service.h" | 18 #include "components/prefs/pref_service.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 base::DictionaryValue* file_systems_per_extension = NULL; | 113 base::DictionaryValue* file_systems_per_extension = NULL; |
113 if (!dict_update->GetDictionaryWithoutPathExpansion( | 114 if (!dict_update->GetDictionaryWithoutPathExpansion( |
114 extension_id, &file_systems_per_extension)) | 115 extension_id, &file_systems_per_extension)) |
115 return; // Nothing to forget. | 116 return; // Nothing to forget. |
116 | 117 |
117 file_systems_per_extension->RemoveWithoutPathExpansion(file_system_id, NULL); | 118 file_systems_per_extension->RemoveWithoutPathExpansion(file_system_id, NULL); |
118 if (!file_systems_per_extension->size()) | 119 if (!file_systems_per_extension->size()) |
119 dict_update->Remove(extension_id, NULL); | 120 dict_update->Remove(extension_id, NULL); |
120 } | 121 } |
121 | 122 |
122 scoped_ptr<Registry::RestoredFileSystems> Registry::RestoreFileSystems( | 123 std::unique_ptr<Registry::RestoredFileSystems> Registry::RestoreFileSystems( |
123 const std::string& extension_id) { | 124 const std::string& extension_id) { |
124 PrefService* const pref_service = profile_->GetPrefs(); | 125 PrefService* const pref_service = profile_->GetPrefs(); |
125 DCHECK(pref_service); | 126 DCHECK(pref_service); |
126 | 127 |
127 const base::DictionaryValue* const file_systems = | 128 const base::DictionaryValue* const file_systems = |
128 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); | 129 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
129 DCHECK(file_systems); | 130 DCHECK(file_systems); |
130 | 131 |
131 const base::DictionaryValue* file_systems_per_extension = NULL; | 132 const base::DictionaryValue* file_systems_per_extension = NULL; |
132 if (!file_systems->GetDictionaryWithoutPathExpansion( | 133 if (!file_systems->GetDictionaryWithoutPathExpansion( |
133 extension_id, &file_systems_per_extension)) { | 134 extension_id, &file_systems_per_extension)) { |
134 return make_scoped_ptr(new RestoredFileSystems); // Nothing to restore. | 135 return base::WrapUnique(new RestoredFileSystems); // Nothing to restore. |
135 } | 136 } |
136 | 137 |
137 scoped_ptr<RestoredFileSystems> restored_file_systems( | 138 std::unique_ptr<RestoredFileSystems> restored_file_systems( |
138 new RestoredFileSystems); | 139 new RestoredFileSystems); |
139 | 140 |
140 for (base::DictionaryValue::Iterator it(*file_systems_per_extension); | 141 for (base::DictionaryValue::Iterator it(*file_systems_per_extension); |
141 !it.IsAtEnd(); | 142 !it.IsAtEnd(); |
142 it.Advance()) { | 143 it.Advance()) { |
143 const base::Value* file_system_value = NULL; | 144 const base::Value* file_system_value = NULL; |
144 const base::DictionaryValue* file_system = NULL; | 145 const base::DictionaryValue* file_system = NULL; |
145 file_systems_per_extension->GetWithoutPathExpansion(it.key(), | 146 file_systems_per_extension->GetWithoutPathExpansion(it.key(), |
146 &file_system_value); | 147 &file_system_value); |
147 DCHECK(file_system_value); | 148 DCHECK(file_system_value); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 LOG(ERROR) << "Broken preferences detected while updating a tag."; | 271 LOG(ERROR) << "Broken preferences detected while updating a tag."; |
271 return; | 272 return; |
272 } | 273 } |
273 | 274 |
274 watcher_value->SetStringWithoutPathExpansion(kPrefKeyWatcherLastTag, | 275 watcher_value->SetStringWithoutPathExpansion(kPrefKeyWatcherLastTag, |
275 watcher.last_tag); | 276 watcher.last_tag); |
276 } | 277 } |
277 | 278 |
278 } // namespace file_system_provider | 279 } // namespace file_system_provider |
279 } // namespace chromeos | 280 } // namespace chromeos |
OLD | NEW |