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..fc43a8fa023c5fda52b0060340ce4bf11158e125 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" |
@@ -31,11 +32,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 +48,17 @@ 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(); |
+} |
+ |
} // namespace arc |