| Index: webkit/blob/blob_url_request_job.h | 
| diff --git a/webkit/blob/blob_url_request_job.h b/webkit/blob/blob_url_request_job.h | 
| index 2dec52274fd73c58faf2882079ce8f982c76df2e..c5669bf19d1b1a6e4e1b334d786908e198309d9c 100644 | 
| --- a/webkit/blob/blob_url_request_job.h | 
| +++ b/webkit/blob/blob_url_request_job.h | 
| @@ -11,7 +11,6 @@ | 
| #include "base/scoped_ptr.h" | 
| #include "base/task.h" | 
| #include "net/base/completion_callback.h" | 
| -#include "net/base/file_stream.h" | 
| #include "net/http/http_byte_range.h" | 
| #include "net/url_request/url_request_job.h" | 
| #include "webkit/blob/blob_data.h" | 
| @@ -21,6 +20,10 @@ class MessageLoopProxy; | 
| struct PlatformFileInfo; | 
| } | 
|  | 
| +namespace net { | 
| +class FileStream; | 
| +} | 
| + | 
| namespace webkit_blob { | 
|  | 
| // A request job that handles reading blob URLs. | 
| @@ -41,15 +44,18 @@ class BlobURLRequestJob : public net::URLRequestJob { | 
| virtual void SetExtraRequestHeaders(const net::HttpRequestHeaders& headers); | 
|  | 
| private: | 
| +  void CloseStream(); | 
| void ResolveFile(const FilePath& file_path); | 
| void CountSize(); | 
| void Seek(int64 offset); | 
| void AdvanceItem(); | 
| void AdvanceBytesRead(int result); | 
| +  int ComputeBytesToRead() const; | 
| bool ReadLoop(int* bytes_read); | 
| bool ReadItem(); | 
| -  bool ReadBytes(const BlobData::Item& item, int bytes_to_read); | 
| -  bool ReadFile(const BlobData::Item& item, int bytes_to_read); | 
| +  bool ReadBytes(const BlobData::Item& item); | 
| +  bool DispatchReadFile(const BlobData::Item& item); | 
| +  bool ReadFile(const BlobData::Item& item); | 
| void HeadersCompleted(int status_code, const std::string& status_txt); | 
| int ReadCompleted(); | 
| void NotifySuccess(); | 
| @@ -58,6 +64,9 @@ class BlobURLRequestJob : public net::URLRequestJob { | 
| void DidStart(); | 
| void DidResolve(base::PlatformFileError rv, | 
| const base::PlatformFileInfo& file_info); | 
| +  void DidOpen(base::PlatformFileError rv, | 
| +               base::PassPlatformFile file, | 
| +               bool created); | 
| void DidRead(int result); | 
|  | 
| base::ScopedCallbackFactory<BlobURLRequestJob> callback_factory_; | 
| @@ -65,7 +74,7 @@ class BlobURLRequestJob : public net::URLRequestJob { | 
| scoped_refptr<base::MessageLoopProxy> file_thread_proxy_; | 
| net::CompletionCallbackImpl<BlobURLRequestJob> io_callback_; | 
| std::vector<int64> item_length_list_; | 
| -  net::FileStream stream_; | 
| +  scoped_ptr<net::FileStream> stream_; | 
| size_t item_index_; | 
| int64 total_size_; | 
| int64 current_item_offset_; | 
| @@ -74,6 +83,7 @@ class BlobURLRequestJob : public net::URLRequestJob { | 
| int read_buf_offset_; | 
| int read_buf_size_; | 
| int read_buf_remaining_bytes_; | 
| +  int bytes_to_read_; | 
| bool error_; | 
| bool headers_set_; | 
| bool byte_range_set_; | 
|  |