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

Unified Diff: chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc

Issue 2580303002: mediaview: Mount ARC documents provider file system volumes. (Closed)
Patch Set: Consistently use GetGlobalService(). Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc b/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
index 11e02901214ce1564648d02a178140aa523b1a11..5697ea41165128feec3dd0a80409eb8d50a443c0 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
+++ b/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
@@ -8,6 +8,7 @@
#include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_url_util.h"
#include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h"
#include "components/arc/arc_bridge_service.h"
+#include "components/arc/file_system/arc_file_system_observer.h"
#include "content/public/browser/browser_thread.h"
#include "storage/browser/fileapi/external_mount_points.h"
@@ -15,6 +16,10 @@ using content::BrowserThread;
namespace arc {
+// static
+const char ArcFileSystemService::kArcServiceName[] =
+ "arc::ArcFileSystemService";
+
ArcFileSystemService::ArcFileSystemService(ArcBridgeService* bridge_service)
: ArcService(bridge_service) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -31,11 +36,15 @@ ArcFileSystemService::ArcFileSystemService(ArcBridgeService* bridge_service)
storage::kFileSystemTypeArcDocumentsProvider,
storage::FileSystemMountOption(),
base::FilePath(kDocumentsProviderMountPointPath));
+
+ arc_bridge_service()->file_system()->AddObserver(this);
}
ArcFileSystemService::~ArcFileSystemService() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ arc_bridge_service()->file_system()->RemoveObserver(this);
+
storage::ExternalMountPoints* mount_points =
storage::ExternalMountPoints::GetSystemInstance();
@@ -43,4 +52,22 @@ ArcFileSystemService::~ArcFileSystemService() {
mount_points->RevokeFileSystem(kDocumentsProviderMountPointPath);
}
+void ArcFileSystemService::AddObserver(ArcFileSystemObserver* observer) {
+ observer_list_.AddObserver(observer);
+}
+
+void ArcFileSystemService::RemoveObserver(ArcFileSystemObserver* observer) {
+ observer_list_.RemoveObserver(observer);
+}
+
+void ArcFileSystemService::OnInstanceReady() {
+ for (auto& observer : observer_list_)
+ observer.OnFileSystemsReady();
+}
+
+void ArcFileSystemService::OnInstanceClosed() {
+ for (auto& observer : observer_list_)
+ observer.OnFileSystemsClosed();
+}
+
} // namespace arc

Powered by Google App Engine
This is Rietveld 408576698