Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / drive / file_system.cc
index eb3069e..c452eb8 100644 (file)
@@ -11,6 +11,7 @@
 #include "chrome/browser/chromeos/drive/directory_loader.h"
 #include "chrome/browser/chromeos/drive/drive.pb.h"
 #include "chrome/browser/chromeos/drive/file_cache.h"
+#include "chrome/browser/chromeos/drive/file_change.h"
 #include "chrome/browser/chromeos/drive/file_system/copy_operation.h"
 #include "chrome/browser/chromeos/drive/file_system/create_directory_operation.h"
 #include "chrome/browser/chromeos/drive/file_system/create_file_operation.h"
@@ -292,7 +293,7 @@ void FileSystem::Reset(const FileOperationCallback& callback) {
 }
 
 void FileSystem::ResetComponents() {
-  file_system::OperationObserver* observer = this;
+  file_system::OperationDelegate* delegate = this;
 
   about_resource_loader_.reset(new internal::AboutResourceLoader(scheduler_));
   loader_controller_.reset(new internal::LoaderController);
@@ -314,7 +315,7 @@ void FileSystem::ResetComponents() {
   directory_loader_->AddObserver(this);
 
   sync_client_.reset(new internal::SyncClient(blocking_task_runner_.get(),
-                                              observer,
+                                              delegate,
                                               scheduler_,
                                               resource_metadata_,
                                               cache_,
@@ -322,47 +323,45 @@ void FileSystem::ResetComponents() {
                                               temporary_file_directory_));
 
   copy_operation_.reset(
-      new file_system::CopyOperation(
-          blocking_task_runner_.get(),
-          observer,
-          scheduler_,
-          resource_metadata_,
-          cache_,
-          drive_service_->GetResourceIdCanonicalizer()));
+      new file_system::CopyOperation(blocking_task_runner_.get(),
+                                     delegate,
+                                     scheduler_,
+                                     resource_metadata_,
+                                     cache_));
   create_directory_operation_.reset(new file_system::CreateDirectoryOperation(
-      blocking_task_runner_.get(), observer, resource_metadata_));
+      blocking_task_runner_.get(), delegate, resource_metadata_));
   create_file_operation_.reset(
       new file_system::CreateFileOperation(blocking_task_runner_.get(),
-                                           observer,
+                                           delegate,
                                            resource_metadata_));
   move_operation_.reset(
       new file_system::MoveOperation(blocking_task_runner_.get(),
-                                     observer,
+                                     delegate,
                                      resource_metadata_));
   open_file_operation_.reset(
       new file_system::OpenFileOperation(blocking_task_runner_.get(),
-                                         observer,
+                                         delegate,
                                          scheduler_,
                                          resource_metadata_,
                                          cache_,
                                          temporary_file_directory_));
   remove_operation_.reset(
       new file_system::RemoveOperation(blocking_task_runner_.get(),
-                                       observer,
+                                       delegate,
                                        resource_metadata_,
                                        cache_));
   touch_operation_.reset(new file_system::TouchOperation(
-      blocking_task_runner_.get(), observer, resource_metadata_));
+      blocking_task_runner_.get(), delegate, resource_metadata_));
   truncate_operation_.reset(
       new file_system::TruncateOperation(blocking_task_runner_.get(),
-                                         observer,
+                                         delegate,
                                          scheduler_,
                                          resource_metadata_,
                                          cache_,
                                          temporary_file_directory_));
   download_operation_.reset(
       new file_system::DownloadOperation(blocking_task_runner_.get(),
-                                         observer,
+                                         delegate,
                                          scheduler_,
                                          resource_metadata_,
                                          cache_,
@@ -373,7 +372,7 @@ void FileSystem::ResetComponents() {
   get_file_for_saving_operation_.reset(
       new file_system::GetFileForSavingOperation(logger_,
                                                  blocking_task_runner_.get(),
-                                                 observer,
+                                                 delegate,
                                                  scheduler_,
                                                  resource_metadata_,
                                                  cache_,
@@ -788,9 +787,11 @@ void FileSystem::SearchMetadata(const std::string& query,
                                   callback);
 }
 
-void FileSystem::OnDirectoryChangedByOperation(
-    const base::FilePath& directory_path) {
-  OnDirectoryChanged(directory_path);
+void FileSystem::OnFileChangedByOperation(const FileChange& changed_files) {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+  FOR_EACH_OBSERVER(
+      FileSystemObserver, observers_, OnFileChanged(changed_files));
 }
 
 void FileSystem::OnEntryUpdatedByOperation(const std::string& local_id) {
@@ -824,11 +825,23 @@ void FileSystem::OnDriveSyncErrorAfterGetFilePath(
                     OnDriveSyncError(type, *file_path));
 }
 
-void FileSystem::OnDirectoryChanged(const base::FilePath& directory_path) {
+bool FileSystem::WaitForSyncComplete(const std::string& local_id,
+                                     const FileOperationCallback& callback) {
+  return sync_client_->WaitForUpdateTaskToComplete(local_id, callback);
+}
+
+void FileSystem::OnDirectoryReloaded(const base::FilePath& directory_path) {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+  FOR_EACH_OBSERVER(
+      FileSystemObserver, observers_, OnDirectoryChanged(directory_path));
+}
+
+void FileSystem::OnFileChanged(const FileChange& changed_files) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
 
-  FOR_EACH_OBSERVER(FileSystemObserver, observers_,
-                    OnDirectoryChanged(directory_path));
+  FOR_EACH_OBSERVER(
+      FileSystemObserver, observers_, OnFileChanged(changed_files));
 }
 
 void FileSystem::OnLoadFromServerComplete() {