Reapply 61613 that was reverted for false valgrind alarm.

Original issue:
http://codereview.chromium.org/3567012/show

BUG=none
TEST=FileSystemOperationTest.*
TBR=ericu,thestig

Review URL: http://codereview.chromium.org/3603014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61771 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 81b18cad8c727119a822ea1329e673928701f324
diff --git a/base/file_util_proxy.h b/base/file_util_proxy.h
index 32b7863..e716ab7 100644
--- a/base/file_util_proxy.h
+++ b/base/file_util_proxy.h
@@ -89,6 +89,7 @@
   // If destination file doesn't exist or destination's parent
   // doesn't exists.
   // If source dir exists but destination path is an existing file.
+  // If source file exists but destination path is an existing directory.
   // If source is a parent of destination.
   // If source doesn't exists.
   static bool Copy(scoped_refptr<MessageLoopProxy> message_loop_proxy,
@@ -105,9 +106,11 @@
       bool recursive,
       StatusCallback* callback);
 
-  // Deletes a file or empty directory.
+  // Deletes a file or a directory.
+  // It is an error to delete a non-empty directory with recursive=false.
   static bool Delete(scoped_refptr<MessageLoopProxy> message_loop_proxy,
                      const FilePath& file_path,
+                     bool recursive,
                      StatusCallback* callback);
 
   // Moves a file or a directory from src_file_path to dest_file_path.