Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / browser / loader / temporary_file_stream.cc
index 1d23ae9..0569d49 100644 (file)
@@ -6,7 +6,7 @@
 
 #include "base/bind.h"
 #include "base/callback.h"
-#include "base/files/file_util_proxy.h"
+#include "base/files/file_proxy.h"
 #include "base/memory/ref_counted.h"
 #include "content/public/browser/browser_thread.h"
 #include "net/base/file_stream.h"
@@ -20,28 +20,28 @@ namespace {
 
 void DidCreateTemporaryFile(
     const CreateTemporaryFileStreamCallback& callback,
+    scoped_ptr<base::FileProxy> file_proxy,
     base::File::Error error_code,
-    base::PassPlatformFile file_handle,
     const base::FilePath& file_path) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
 
-  if (error_code != base::File::FILE_OK) {
+  if (!file_proxy->IsValid()) {
     callback.Run(error_code, scoped_ptr<net::FileStream>(), NULL);
     return;
   }
 
+  scoped_refptr<base::TaskRunner> task_runner =
+      BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE);
+
   // Cancelled or not, create the deletable_file so the temporary is cleaned up.
   scoped_refptr<ShareableFileReference> deletable_file =
       ShareableFileReference::GetOrCreate(
           file_path,
           ShareableFileReference::DELETE_ON_FINAL_RELEASE,
-          BrowserThread::GetMessageLoopProxyForThread(
-              BrowserThread::FILE).get());
+          task_runner.get());
 
-  scoped_ptr<net::FileStream> file_stream(new net::FileStream(
-      file_handle.ReleaseValue(),
-      base::PLATFORM_FILE_WRITE | base::PLATFORM_FILE_ASYNC,
-      NULL));
+  scoped_ptr<net::FileStream> file_stream(
+      new net::FileStream(file_proxy->TakeFile(), task_runner));
 
   callback.Run(error_code, file_stream.Pass(), deletable_file);
 }
@@ -52,10 +52,12 @@ void CreateTemporaryFileStream(
     const CreateTemporaryFileStreamCallback& callback) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
 
-  base::FileUtilProxy::CreateTemporary(
-      BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE).get(),
-      base::PLATFORM_FILE_ASYNC,
-      base::Bind(&DidCreateTemporaryFile, callback));
+  scoped_ptr<base::FileProxy> file_proxy(new base::FileProxy(
+      BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE).get()));
+  base::FileProxy* proxy = file_proxy.get();
+  proxy->CreateTemporary(
+      base::File::FLAG_ASYNC,
+      base::Bind(&DidCreateTemporaryFile, callback, Passed(&file_proxy)));
 }
 
 }  // namespace content