Index: base/files/important_file_writer.cc |
diff --git a/base/files/important_file_writer.cc b/base/files/important_file_writer.cc |
index 0099cda0b55a8b6f54275126a617af0fe08ff068..cc0a616c5be7e5e09e5235a9f658de6c3e70d740 100644 |
--- a/base/files/important_file_writer.cc |
+++ b/base/files/important_file_writer.cc |
@@ -57,13 +57,18 @@ void LogFailure(const FilePath& path, TempFileFailure failure_code, |
// Helper function to call WriteFileAtomically() with a |
// std::unique_ptr<std::string>. |
-void WriteScopedStringToFileAtomically(const FilePath& path, |
- std::unique_ptr<std::string> data, |
- Callback<void(bool success)> callback) { |
+void WriteScopedStringToFileAtomically( |
+ const FilePath& path, |
+ std::unique_ptr<std::string> data, |
+ Closure before_write_callback, |
+ Callback<void(bool success)> after_write_callback) { |
+ if (!before_write_callback.is_null()) |
+ before_write_callback.Run(); |
+ |
bool result = ImportantFileWriter::WriteFileAtomically(path, *data); |
- if (!callback.is_null()) |
- callback.Run(result); |
+ if (!after_write_callback.is_null()) |
+ after_write_callback.Run(result); |
} |
} // namespace |
@@ -173,7 +178,8 @@ void ImportantFileWriter::WriteNow(std::unique_ptr<std::string> data) { |
timer_.Stop(); |
Closure task = Bind(&WriteScopedStringToFileAtomically, path_, Passed(&data), |
- Passed(&on_next_write_callback_)); |
+ Passed(&before_next_write_callback_), |
+ Passed(&after_next_write_callback_)); |
if (!task_runner_->PostTask(FROM_HERE, MakeCriticalClosure(task))) { |
// Posting the task to background message loop is not expected |
@@ -209,9 +215,11 @@ void ImportantFileWriter::DoScheduledWrite() { |
serializer_ = nullptr; |
} |
-void ImportantFileWriter::RegisterOnNextWriteCallback( |
- const Callback<void(bool success)>& on_next_write_callback) { |
- on_next_write_callback_ = on_next_write_callback; |
+void ImportantFileWriter::RegisterOnNextWriteCallbacks( |
+ const Closure& before_next_write_callback, |
+ const Callback<void(bool success)>& after_next_write_callback) { |
+ before_next_write_callback_ = before_next_write_callback; |
+ after_next_write_callback_ = after_next_write_callback; |
} |
} // namespace base |