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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/service.cc

Issue 829553002: [fsp] Add throttling for number of opened files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: int -> size_t. Created 5 years, 11 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 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698