Index: chrome/browser/extensions/api/image_writer_private/operation_nonchromeos.cc |
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_nonchromeos.cc b/chrome/browser/extensions/api/image_writer_private/operation_nonchromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..54f19fbf73dbd21afa42abfe9643b6d255d5c2b9 |
--- /dev/null |
+++ b/chrome/browser/extensions/api/image_writer_private/operation_nonchromeos.cc |
@@ -0,0 +1,76 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/file_util.h" |
+#include "base/files/file_enumerator.h" |
+#include "base/threading/worker_pool.h" |
+#include "chrome/browser/extensions/api/image_writer_private/error_messages.h" |
+#include "chrome/browser/extensions/api/image_writer_private/operation.h" |
+#include "chrome/browser/extensions/api/image_writer_private/operation_manager.h" |
+#include "content/public/browser/browser_thread.h" |
+ |
+namespace extensions { |
+namespace image_writer { |
+ |
+using content::BrowserThread; |
+ |
+void Operation::Write(const base::Closure& continuation) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
+ if (IsCancelled()) { |
+ return; |
+ } |
+ |
+ SetStage(image_writer_api::STAGE_WRITE); |
+ StartUtilityClient(); |
+ |
+ int64 file_size; |
+ if (!base::GetFileSize(image_path_, &file_size)) { |
+ Error(error::kImageReadError); |
+ return; |
+ } |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind( |
+ &ImageWriterUtilityClient::Write, |
+ image_writer_client_, |
+ base::Bind(&Operation::WriteImageProgress, this, file_size), |
+ base::Bind(&Operation::CompleteAndContinue, this, continuation), |
+ base::Bind(&Operation::Error, this), |
+ image_path_, |
+ device_path_)); |
+} |
+ |
+void Operation::VerifyWrite(const base::Closure& continuation) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
+ |
+ if (IsCancelled()) { |
+ return; |
+ } |
+ |
+ SetStage(image_writer_api::STAGE_VERIFYWRITE); |
+ StartUtilityClient(); |
+ |
+ int64 file_size; |
+ if (!base::GetFileSize(image_path_, &file_size)) { |
+ Error(error::kImageReadError); |
+ return; |
+ } |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind( |
+ &ImageWriterUtilityClient::Verify, |
+ image_writer_client_, |
+ base::Bind(&Operation::WriteImageProgress, this, file_size), |
+ base::Bind(&Operation::CompleteAndContinue, this, continuation), |
+ base::Bind(&Operation::Error, this), |
+ image_path_, |
+ device_path_)); |
+} |
+ |
+} // namespace image_writer |
+} // namespace extensions |