Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Unified Diff: chrome/browser/extensions/api/image_writer_private/operation.h

Issue 170123002: Revert of Significantly cleans up the ImageWriter Operation class and subclasses. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/image_writer_private/operation.h
diff --git a/chrome/browser/extensions/api/image_writer_private/operation.h b/chrome/browser/extensions/api/image_writer_private/operation.h
index 0ab4c78198ddb89f5aee3a0329424cc625df7859..58c0814617d4bb3100ed8a965fcc395edefdc980 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation.h
+++ b/chrome/browser/extensions/api/image_writer_private/operation.h
@@ -6,12 +6,12 @@
#define CHROME_BROWSER_EXTENSIONS_API_IMAGE_WRITER_PRIVATE_OPERATION_H_
#include "base/callback.h"
-#include "base/files/scoped_temp_dir.h"
#include "base/md5.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/weak_ptr.h"
#include "base/task/cancelable_task_tracker.h"
#include "base/timer/timer.h"
+#include "chrome/browser/extensions/api/image_writer_private/image_writer_utils.h"
#include "chrome/common/extensions/api/image_writer_private.h"
#include "third_party/zlib/google/zip_reader.h"
@@ -46,10 +46,10 @@
Operation(base::WeakPtr<OperationManager> manager,
const ExtensionId& extension_id,
- const std::string& device_path);
+ const std::string& storage_unit_id);
// Starts the operation.
- void Start();
+ virtual void Start() = 0;
// Cancel the operation. This must be called to clean up internal state and
// cause the the operation to actually stop. It will not be destroyed until
@@ -65,23 +65,6 @@
protected:
virtual ~Operation();
-
- // This function should be overriden by subclasses to set up the work of the
- // operation. It will be called from Start().
- virtual void StartImpl() = 0;
-
- // Unzips the current file if it ends in ".zip". The current_file will be set
- // to the unzipped file.
- void Unzip(const base::Closure& continuation);
-
- // Writes the current file to device_path.
- void Write(const base::Closure& continuation);
-
- // Verifies that the current file and device_path contents match.
- void VerifyWrite(const base::Closure& continuation);
-
- // Completes the operation.
- void Finish();
// Generates an error.
// |error_message| is used to create an OnWriteError event which is
@@ -101,7 +84,12 @@
// Adds a callback that will be called during clean-up, whether the operation
// is aborted, encounters and error, or finishes successfully. These
// functions will be run on the FILE thread.
- void AddCleanUpFunction(const base::Closure& callback);
+ void AddCleanUpFunction(base::Closure);
+
+ void UnzipStart(scoped_ptr<base::FilePath> zip_file);
+ void WriteStart();
+ void VerifyWriteStart();
+ void Finish();
// If |file_size| is non-zero, only |file_size| bytes will be read from file,
// otherwise the entire file will be read.
@@ -110,45 +98,43 @@
// sum. |progress_offset| is an percentage that will be added to the progress
// of the MD5 sum before updating |progress_| but after scaling.
void GetMD5SumOfFile(
- const base::FilePath& file,
+ scoped_ptr<base::FilePath> file,
int64 file_size,
int progress_offset,
int progress_scale,
- const base::Callback<void(const std::string&)>& callback);
+ const base::Callback<void(scoped_ptr<std::string>)>& callback);
base::WeakPtr<OperationManager> manager_;
const ExtensionId extension_id_;
base::FilePath image_path_;
- base::FilePath device_path_;
+ const std::string storage_unit_id_;
- // Temporary directory to store files as we go.
- base::ScopedTempDir temp_dir_;
+ // Whether or not to run the final verification step.
+ bool verify_write_;
private:
friend class base::RefCountedThreadSafe<Operation>;
// TODO(haven): Clean up these switches. http://crbug.com/292956
#if defined(OS_LINUX) && !defined(CHROMEOS)
- void WriteChunk(const int64& bytes_written,
- const int64& total_size,
- const base::Closure& continuation);
- void WriteComplete(const base::Closure& continuation);
+ void WriteRun();
+ void WriteChunk(scoped_ptr<image_writer_utils::ImageReader> reader,
+ scoped_ptr<image_writer_utils::ImageWriter> writer,
+ int64 bytes_written);
+ bool WriteCleanUp(scoped_ptr<image_writer_utils::ImageReader> reader,
+ scoped_ptr<image_writer_utils::ImageWriter> writer);
+ void WriteComplete();
- void VerifyWriteChunk(const int64& bytes_written,
- const int64& total_size,
- const base::Closure& continuation);
- void VerifyWriteComplete(const base::Closure& continuation);
-
- base::PlatformFile image_file_;
- base::PlatformFile device_file_;
+ void VerifyWriteStage2(scoped_ptr<std::string> image_hash);
+ void VerifyWriteCompare(scoped_ptr<std::string> image_hash,
+ scoped_ptr<std::string> device_hash);
#endif
#if defined(OS_CHROMEOS)
- void StartWriteOnUIThread(const base::Closure& continuation);
+ void StartWriteOnUIThread();
- void OnBurnFinished(const base::Closure& continuation,
- const std::string& target_path,
+ void OnBurnFinished(const std::string& target_path,
bool success,
const std::string& error);
void OnBurnProgress(const std::string& target_path,
@@ -158,15 +144,15 @@
#endif
// Incrementally calculates the MD5 sum of a file.
- void MD5Chunk(const base::PlatformFile& file,
+ void MD5Chunk(scoped_ptr<image_writer_utils::ImageReader> reader,
int64 bytes_processed,
int64 bytes_total,
int progress_offset,
int progress_scale,
- const base::Callback<void(const std::string&)>& callback);
+ const base::Callback<void(scoped_ptr<std::string>)>& callback);
// Callbacks for zip::ZipReader.
- void OnUnzipSuccess(const base::Closure& continuation);
+ void OnUnzipSuccess();
void OnUnzipFailure();
void OnUnzipProgress(int64 total_bytes, int64 progress_bytes);

Powered by Google App Engine
This is Rietveld 408576698