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

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

Issue 1088883002: Add events for configuring and adding new providers to FSP API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed. Created 5 years, 8 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 "base/values.h"
11 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" 12 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
12 #include "chrome/browser/chromeos/file_system_provider/observer.h" 13 #include "chrome/browser/chromeos/file_system_provider/observer.h"
13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" 14 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
14 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info .h" 15 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info .h"
15 #include "chrome/browser/chromeos/file_system_provider/registry.h" 16 #include "chrome/browser/chromeos/file_system_provider/registry.h"
16 #include "chrome/browser/chromeos/file_system_provider/registry_interface.h" 17 #include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
17 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" 18 #include "chrome/browser/chromeos/file_system_provider/service_factory.h"
18 #include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h" 19 #include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h"
20 #include "extensions/browser/event_router.h"
19 #include "extensions/browser/extension_registry.h" 21 #include "extensions/browser/extension_registry.h"
20 #include "extensions/browser/extension_system.h" 22 #include "extensions/browser/extension_system.h"
21 #include "storage/browser/fileapi/external_mount_points.h" 23 #include "storage/browser/fileapi/external_mount_points.h"
22 #include "storage/common/fileapi/file_system_mount_option.h" 24 #include "storage/common/fileapi/file_system_mount_option.h"
23 25
24 namespace chromeos { 26 namespace chromeos {
25 namespace file_system_provider { 27 namespace file_system_provider {
26 namespace { 28 namespace {
27 29
28 // Maximum number of file systems to be mounted in the same time, per profile. 30 // Maximum number of file systems to be mounted in the same time, per profile.
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 if (file_system_it == file_system_map_.end()) 240 if (file_system_it == file_system_map_.end())
239 return false; 241 return false;
240 242
241 file_system_it->second->RequestUnmount( 243 file_system_it->second->RequestUnmount(
242 base::Bind(&Service::OnRequestUnmountStatus, 244 base::Bind(&Service::OnRequestUnmountStatus,
243 weak_ptr_factory_.GetWeakPtr(), 245 weak_ptr_factory_.GetWeakPtr(),
244 file_system_it->second->GetFileSystemInfo())); 246 file_system_it->second->GetFileSystemInfo()));
245 return true; 247 return true;
246 } 248 }
247 249
250 bool Service::RequestMount(const std::string& extension_id) {
251 DCHECK(thread_checker_.CalledOnValidThread());
252
253 extensions::EventRouter* const event_router =
254 extensions::EventRouter::Get(profile_);
255 DCHECK(event_router);
256
257 if (!event_router->ExtensionHasEventListener(
258 extension_id, extensions::api::file_system_provider::
259 OnMountRequested::kEventName)) {
260 return false;
261 }
262
263 event_router->DispatchEventToExtension(
264 extension_id,
265 make_scoped_ptr(new extensions::Event(
266 extensions::api::file_system_provider::OnMountRequested::kEventName,
267 scoped_ptr<base::ListValue>(nullptr))));
268
269 return true;
270 }
271
248 std::vector<ProvidedFileSystemInfo> Service::GetProvidedFileSystemInfoList() { 272 std::vector<ProvidedFileSystemInfo> Service::GetProvidedFileSystemInfoList() {
249 DCHECK(thread_checker_.CalledOnValidThread()); 273 DCHECK(thread_checker_.CalledOnValidThread());
250 274
251 std::vector<ProvidedFileSystemInfo> result; 275 std::vector<ProvidedFileSystemInfo> result;
252 for (ProvidedFileSystemMap::const_iterator it = file_system_map_.begin(); 276 for (ProvidedFileSystemMap::const_iterator it = file_system_map_.begin();
253 it != file_system_map_.end(); 277 it != file_system_map_.end();
254 ++it) { 278 ++it) {
255 result.push_back(it->second->GetFileSystemInfo()); 279 result.push_back(it->second->GetFileSystemInfo());
256 } 280 }
257 return result; 281 return result;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 } 395 }
372 396
373 void Service::OnWatcherListChanged( 397 void Service::OnWatcherListChanged(
374 const ProvidedFileSystemInfo& file_system_info, 398 const ProvidedFileSystemInfo& file_system_info,
375 const Watchers& watchers) { 399 const Watchers& watchers) {
376 registry_->RememberFileSystem(file_system_info, watchers); 400 registry_->RememberFileSystem(file_system_info, watchers);
377 } 401 }
378 402
379 } // namespace file_system_provider 403 } // namespace file_system_provider
380 } // namespace chromeos 404 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698