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" |
11 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" | 11 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" |
12 #include "chrome/browser/chromeos/file_system_provider/observer.h" | 12 #include "chrome/browser/chromeos/file_system_provider/observer.h" |
13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" | 13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" |
14 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info
.h" | 14 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info
.h" |
15 #include "chrome/browser/chromeos/file_system_provider/registry.h" | 15 #include "chrome/browser/chromeos/file_system_provider/registry.h" |
16 #include "chrome/browser/chromeos/file_system_provider/registry_interface.h" | 16 #include "chrome/browser/chromeos/file_system_provider/registry_interface.h" |
17 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" | 17 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" |
| 18 #include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h" |
18 #include "extensions/browser/extension_registry.h" | 19 #include "extensions/browser/extension_registry.h" |
19 #include "extensions/browser/extension_system.h" | 20 #include "extensions/browser/extension_system.h" |
20 #include "storage/browser/fileapi/external_mount_points.h" | 21 #include "storage/browser/fileapi/external_mount_points.h" |
21 #include "storage/common/fileapi/file_system_mount_option.h" | 22 #include "storage/common/fileapi/file_system_mount_option.h" |
22 | 23 |
23 namespace chromeos { | 24 namespace chromeos { |
24 namespace file_system_provider { | 25 namespace file_system_provider { |
25 namespace { | 26 namespace { |
26 | 27 |
27 // Maximum number of file systems to be mounted in the same time, per profile. | 28 // Maximum number of file systems to be mounted in the same time, per profile. |
28 const size_t kMaxFileSystems = 16; | 29 const size_t kMaxFileSystems = 16; |
29 | 30 |
30 // Default factory for provided file systems. |profile| must not be NULL. | 31 // Default factory for provided file systems. |profile| must not be NULL. |
31 ProvidedFileSystemInterface* CreateProvidedFileSystem( | 32 ProvidedFileSystemInterface* CreateProvidedFileSystem( |
32 Profile* profile, | 33 Profile* profile, |
33 const ProvidedFileSystemInfo& file_system_info) { | 34 const ProvidedFileSystemInfo& file_system_info) { |
34 DCHECK(profile); | 35 DCHECK(profile); |
35 return new ProvidedFileSystem(profile, file_system_info); | 36 return new ThrottledFileSystem( |
| 37 make_scoped_ptr(new ProvidedFileSystem(profile, file_system_info))); |
36 } | 38 } |
37 | 39 |
38 } // namespace | 40 } // namespace |
39 | 41 |
40 Service::Service(Profile* profile, | 42 Service::Service(Profile* profile, |
41 extensions::ExtensionRegistry* extension_registry) | 43 extensions::ExtensionRegistry* extension_registry) |
42 : profile_(profile), | 44 : profile_(profile), |
43 extension_registry_(extension_registry), | 45 extension_registry_(extension_registry), |
44 file_system_factory_(base::Bind(&CreateProvidedFileSystem)), | 46 file_system_factory_(base::Bind(&CreateProvidedFileSystem)), |
45 registry_(new Registry(profile)), | 47 registry_(new Registry(profile)), |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 } | 366 } |
365 | 367 |
366 void Service::OnWatcherListChanged( | 368 void Service::OnWatcherListChanged( |
367 const ProvidedFileSystemInfo& file_system_info, | 369 const ProvidedFileSystemInfo& file_system_info, |
368 const Watchers& watchers) { | 370 const Watchers& watchers) { |
369 registry_->RememberFileSystem(file_system_info, watchers); | 371 registry_->RememberFileSystem(file_system_info, watchers); |
370 } | 372 } |
371 | 373 |
372 } // namespace file_system_provider | 374 } // namespace file_system_provider |
373 } // namespace chromeos | 375 } // namespace chromeos |
OLD | NEW |