Index: chrome/browser/component_updater/component_patcher_operation_out_of_process.h |
diff --git a/chrome/browser/component_updater/component_patcher_operation_out_of_process.h b/chrome/browser/component_updater/component_patcher_operation_out_of_process.h |
index 5500193755977eef8dd9ce86014157fa0d933552..8424a01a6a192b1b66add65249e9dd6c4ca1c455 100644 |
--- a/chrome/browser/component_updater/component_patcher_operation_out_of_process.h |
+++ b/chrome/browser/component_updater/component_patcher_operation_out_of_process.h |
@@ -10,7 +10,9 @@ |
#include "base/callback_forward.h" |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
+#include "chrome/common/file_patcher.mojom.h" |
#include "components/update_client/component_patcher_operation.h" |
+#include "content/public/browser/utility_process_mojo_client.h" |
namespace base { |
class FilePath; |
@@ -19,25 +21,37 @@ class SequencedTaskRunner; |
namespace component_updater { |
-class PatchHost; |
- |
-// Implements the DeltaUpdateOpPatch out-of-process patching. |
class ChromeOutOfProcessPatcher : public update_client::OutOfProcessPatcher { |
public: |
ChromeOutOfProcessPatcher(); |
- // DeltaUpdateOpPatch::OutOfProcessPatcher implementation. |
+ // update_client::OutOfProcessPatcher: |
void Patch(const std::string& operation, |
scoped_refptr<base::SequencedTaskRunner> task_runner, |
- const base::FilePath& input_abs_path, |
- const base::FilePath& patch_abs_path, |
- const base::FilePath& output_abs_path, |
+ const base::FilePath& input_path, |
+ const base::FilePath& patch_path, |
+ const base::FilePath& output_path, |
base::Callback<void(int result)> callback) override; |
private: |
~ChromeOutOfProcessPatcher() override; |
- scoped_refptr<PatchHost> host_; |
+ // Perform a patch operation using chrome::mojom::FilePatcher. |
+ void PatchOnIOThread(const std::string& operation, |
+ base::File input_file, |
+ base::File patch_file, |
+ base::File output_file); |
+ |
+ // Patch operation result handler. |
+ void PatchDone(int result); |
+ |
+ // Used to signal the operation result back to the Patch() requester. |
+ scoped_refptr<base::SequencedTaskRunner> task_runner_; |
+ base::Callback<void(int result)> callback_; |
+ |
+ // Utility process used to perform out-of-process file patching. |
+ std::unique_ptr<content::UtilityProcessMojoClient<chrome::mojom::FilePatcher>> |
+ utility_process_mojo_client_; |
DISALLOW_COPY_AND_ASSIGN(ChromeOutOfProcessPatcher); |
}; |