Send file content in asar://

This commit is contained in:
Cheng Zhao 2014-09-23 20:30:07 +08:00
parent 6d712da7e3
commit b01db4aa09
4 changed files with 122 additions and 9 deletions

View file

@ -5,6 +5,8 @@
#ifndef ATOM_BROWSER_NET_ASAR_URL_REQUEST_ASAR_JOB_H_
#define ATOM_BROWSER_NET_ASAR_URL_REQUEST_ASAR_JOB_H_
#include <string>
#include "atom/common/asar/archive.h"
#include "base/files/file_path.h"
#include "base/memory/ref_counted.h"
@ -15,6 +17,10 @@ namespace base {
class TaskRunner;
}
namespace net {
class FileStream;
}
namespace asar {
class URLRequestAsarJob : public net::URLRequestJob {
@ -37,8 +43,22 @@ class URLRequestAsarJob : public net::URLRequestJob {
virtual ~URLRequestAsarJob();
private:
// Callback after opening file on a background thread.
void DidOpen(int result);
// Callback after seeking to the beginning of |byte_range_| in the file
// on a background thread.
void DidSeek(int64 result);
// Callback after data is asynchronously read from the file into |buf|.
void DidRead(scoped_refptr<net::IOBuffer> buf, int result);
Archive archive_;
Archive::FileInfo file_info_;
base::FilePath file_path_;
scoped_ptr<net::FileStream> stream_;
int64 remaining_bytes_;
const scoped_refptr<base::TaskRunner> file_task_runner_;
base::WeakPtrFactory<URLRequestAsarJob> weak_ptr_factory_;