Index: extensions/browser/file_reader.cc |
diff --git a/extensions/browser/file_reader.cc b/extensions/browser/file_reader.cc |
index c5deb9b646e071cc844cceb9ec57922b35afab31..6094bc84fa11abd8b0ad633a6e0c721066d4946d 100644 |
--- a/extensions/browser/file_reader.cc |
+++ b/extensions/browser/file_reader.cc |
@@ -11,10 +11,13 @@ |
using content::BrowserThread; |
-FileReader::FileReader(const extensions::ExtensionResource& resource, |
- const Callback& callback) |
+FileReader::FileReader( |
+ const extensions::ExtensionResource& resource, |
+ const OptionalFileThreadTaskCallback& optional_file_thread_task_callback, |
+ const DoneCallback& done_callback) |
: resource_(resource), |
- callback_(callback), |
+ optional_file_thread_task_callback_(optional_file_thread_task_callback), |
+ done_callback_(done_callback), |
origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) {} |
void FileReader::Start() { |
@@ -28,6 +31,11 @@ FileReader::~FileReader() {} |
void FileReader::ReadFileOnBackgroundThread() { |
std::unique_ptr<std::string> data(new std::string()); |
bool success = base::ReadFileToString(resource_.GetFilePath(), data.get()); |
+ |
+ if (!optional_file_thread_task_callback_.is_null()) |
+ optional_file_thread_task_callback_.Run(success, data.get()); |
+ |
origin_task_runner_->PostTask( |
- FROM_HERE, base::Bind(callback_, success, base::Passed(std::move(data)))); |
+ FROM_HERE, |
+ base::Bind(done_callback_, success, base::Passed(std::move(data)))); |
} |