Merge from Chromium at DEPS revision r210036

This commit was generated by merge_to_master.py.

Change-Id: Ib0e33a83ad5dfa541481e83d7acfc6970e68f471
diff --git a/courgette/third_party/bsdiff.h b/courgette/third_party/bsdiff.h
index 5e5683a..77897a8 100644
--- a/courgette/third_party/bsdiff.h
+++ b/courgette/third_party/bsdiff.h
@@ -30,12 +30,15 @@
  * 2009-03-31 - Change to use Streams.  Move CRC code to crc.{h,cc}
  *              Changed status to an enum, removed unused status codes.
  *                --Stephen Adams <sra@chromium.org>
+ * 2013-04-10 - Added wrapper to apply a patch directly to files.
+ *                --Joshua Pawlicki <waffles@chromium.org>
  */
 
 #ifndef COURGETTE_BSDIFF_H_
 #define COURGETTE_BSDIFF_H_
 
 #include "base/basictypes.h"
+#include "base/file_util.h"
 
 namespace courgette {
 
@@ -44,7 +47,8 @@
   MEM_ERROR = 1,
   CRC_ERROR = 2,
   READ_ERROR = 3,
-  UNEXPECTED_ERROR = 4
+  UNEXPECTED_ERROR = 4,
+  WRITE_ERROR = 5
 };
 
 class SourceStream;
@@ -64,6 +68,10 @@
                               SourceStream* patch_stream,
                               SinkStream* new_stream);
 
+// As above, but simply takes the file paths.
+BSDiffStatus ApplyBinaryPatch(const base::FilePath& old_stream,
+                              const base::FilePath& patch_stream,
+                              const base::FilePath& new_stream);
 
 // The following declarations are common to the patch-creation and
 // patch-application code.