| 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/service.h" | 5 #include "chrome/browser/chromeos/file_system_provider/service.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/prefs/scoped_user_pref_update.h" | 9 #include "base/prefs/scoped_user_pref_update.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 // mount_path = /provided/b33f1337-hello_world-5aa5 | 151 // mount_path = /provided/b33f1337-hello_world-5aa5 |
| 152 ProvidedFileSystemInfo file_system_info(extension_id, options, mount_path); | 152 ProvidedFileSystemInfo file_system_info(extension_id, options, mount_path); |
| 153 | 153 |
| 154 ProvidedFileSystemInterface* file_system = | 154 ProvidedFileSystemInterface* file_system = |
| 155 file_system_factory_.Run(profile_, file_system_info); | 155 file_system_factory_.Run(profile_, file_system_info); |
| 156 DCHECK(file_system); | 156 DCHECK(file_system); |
| 157 file_system_map_[FileSystemKey(extension_id, options.file_system_id)] = | 157 file_system_map_[FileSystemKey(extension_id, options.file_system_id)] = |
| 158 file_system; | 158 file_system; |
| 159 mount_point_name_to_key_map_[mount_point_name] = | 159 mount_point_name_to_key_map_[mount_point_name] = |
| 160 FileSystemKey(extension_id, options.file_system_id); | 160 FileSystemKey(extension_id, options.file_system_id); |
| 161 registry_->RememberFileSystem(file_system_info, | 161 registry_->RememberFileSystem(file_system_info, *file_system->GetWatchers()); |
| 162 *file_system->GetObservedEntries()); | |
| 163 | 162 |
| 164 FOR_EACH_OBSERVER( | 163 FOR_EACH_OBSERVER( |
| 165 Observer, | 164 Observer, |
| 166 observers_, | 165 observers_, |
| 167 OnProvidedFileSystemMount(file_system_info, base::File::FILE_OK)); | 166 OnProvidedFileSystemMount(file_system_info, base::File::FILE_OK)); |
| 168 | 167 |
| 169 return true; | 168 return true; |
| 170 } | 169 } |
| 171 | 170 |
| 172 bool Service::UnmountFileSystem(const std::string& extension_id, | 171 bool Service::UnmountFileSystem(const std::string& extension_id, |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 // preferences to avoid remounting it over and over again with a failure. | 303 // preferences to avoid remounting it over and over again with a failure. |
| 305 registry_->ForgetFileSystem(restored_file_system.extension_id, | 304 registry_->ForgetFileSystem(restored_file_system.extension_id, |
| 306 restored_file_system.options.file_system_id); | 305 restored_file_system.options.file_system_id); |
| 307 continue; | 306 continue; |
| 308 } | 307 } |
| 309 | 308 |
| 310 ProvidedFileSystemInterface* const file_system = | 309 ProvidedFileSystemInterface* const file_system = |
| 311 GetProvidedFileSystem(restored_file_system.extension_id, | 310 GetProvidedFileSystem(restored_file_system.extension_id, |
| 312 restored_file_system.options.file_system_id); | 311 restored_file_system.options.file_system_id); |
| 313 DCHECK(file_system); | 312 DCHECK(file_system); |
| 314 file_system->GetObservedEntries()->insert( | 313 file_system->GetWatchers()->insert(restored_file_system.watchers.begin(), |
| 315 restored_file_system.observed_entries.begin(), | 314 restored_file_system.watchers.end()); |
| 316 restored_file_system.observed_entries.end()); | |
| 317 } | 315 } |
| 318 } | 316 } |
| 319 | 317 |
| 320 ProvidedFileSystemInterface* Service::GetProvidedFileSystem( | 318 ProvidedFileSystemInterface* Service::GetProvidedFileSystem( |
| 321 const std::string& mount_point_name) { | 319 const std::string& mount_point_name) { |
| 322 DCHECK(thread_checker_.CalledOnValidThread()); | 320 DCHECK(thread_checker_.CalledOnValidThread()); |
| 323 | 321 |
| 324 const MountPointNameToKeyMap::const_iterator mapping_it = | 322 const MountPointNameToKeyMap::const_iterator mapping_it = |
| 325 mount_point_name_to_key_map_.find(mount_point_name); | 323 mount_point_name_to_key_map_.find(mount_point_name); |
| 326 if (mapping_it == mount_point_name_to_key_map_.end()) | 324 if (mapping_it == mount_point_name_to_key_map_.end()) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 340 // Notify observers about failure in unmounting, since mount() will not be | 338 // Notify observers about failure in unmounting, since mount() will not be |
| 341 // called by the provided file system. In case of success mount() will be | 339 // called by the provided file system. In case of success mount() will be |
| 342 // invoked, and observers notified, so there is no need to call them now. | 340 // invoked, and observers notified, so there is no need to call them now. |
| 343 if (error != base::File::FILE_OK) { | 341 if (error != base::File::FILE_OK) { |
| 344 FOR_EACH_OBSERVER(Observer, | 342 FOR_EACH_OBSERVER(Observer, |
| 345 observers_, | 343 observers_, |
| 346 OnProvidedFileSystemUnmount(file_system_info, error)); | 344 OnProvidedFileSystemUnmount(file_system_info, error)); |
| 347 } | 345 } |
| 348 } | 346 } |
| 349 | 347 |
| 350 void Service::OnObservedEntryChanged( | 348 void Service::OnWatcherChanged(const ProvidedFileSystemInfo& file_system_info, |
| 351 const ProvidedFileSystemInfo& file_system_info, | 349 const Watcher& watcher, |
| 352 const ObservedEntry& observed_entry, | 350 ChangeType change_type, |
| 353 ChangeType change_type, | 351 const Changes& changes, |
| 354 const Changes& changes, | 352 const base::Closure& callback) { |
| 355 const base::Closure& callback) { | |
| 356 callback.Run(); | 353 callback.Run(); |
| 357 } | 354 } |
| 358 | 355 |
| 359 void Service::OnObservedEntryTagUpdated( | 356 void Service::OnWatcherTagUpdated( |
| 360 const ProvidedFileSystemInfo& file_system_info, | 357 const ProvidedFileSystemInfo& file_system_info, |
| 361 const ObservedEntry& observed_entry) { | 358 const Watcher& watcher) { |
| 362 PrefService* const pref_service = profile_->GetPrefs(); | 359 PrefService* const pref_service = profile_->GetPrefs(); |
| 363 DCHECK(pref_service); | 360 DCHECK(pref_service); |
| 364 | 361 |
| 365 registry_->UpdateObservedEntryTag(file_system_info, observed_entry); | 362 registry_->UpdateWatcherTag(file_system_info, watcher); |
| 366 } | 363 } |
| 367 | 364 |
| 368 void Service::OnObservedEntryListChanged( | 365 void Service::OnWatcherListChanged( |
| 369 const ProvidedFileSystemInfo& file_system_info, | 366 const ProvidedFileSystemInfo& file_system_info, |
| 370 const ObservedEntries& observed_entries) { | 367 const Watchers& watchers) { |
| 371 registry_->RememberFileSystem(file_system_info, observed_entries); | 368 registry_->RememberFileSystem(file_system_info, watchers); |
| 372 } | 369 } |
| 373 | 370 |
| 374 } // namespace file_system_provider | 371 } // namespace file_system_provider |
| 375 } // namespace chromeos | 372 } // namespace chromeos |
| OLD | NEW |