| Index: net/base/file_stream_win.cc
 | 
| diff --git a/net/base/file_stream_win.cc b/net/base/file_stream_win.cc
 | 
| index cec6a9d65cfe27e594e68649474f90a402e800b4..e1928a73f4409b1d6f5bdc9d10eaffc5eb1d910b 100644
 | 
| --- a/net/base/file_stream_win.cc
 | 
| +++ b/net/base/file_stream_win.cc
 | 
| @@ -120,16 +120,10 @@ FileStream::FileStream()
 | 
|        open_flags_(0) {
 | 
|  }
 | 
|  
 | 
| -FileStream::FileStream(base::PlatformFile file, int flags)
 | 
| -    : file_(file),
 | 
| -      open_flags_(flags) {
 | 
| -  // If the file handle is opened with base::PLATFORM_FILE_ASYNC, we need to
 | 
| -  // make sure we will perform asynchronous File IO to it.
 | 
| -  if (flags & base::PLATFORM_FILE_ASYNC) {
 | 
| -    async_context_.reset(new AsyncContext(this));
 | 
| -    MessageLoopForIO::current()->RegisterIOHandler(file_,
 | 
| -                                                   async_context_.get());
 | 
| -  }
 | 
| +FileStream::FileStream(base::PlatformFile file, int open_flags)
 | 
| +    : file_(INVALID_HANDLE_VALUE),
 | 
| +      open_flags_(0) {
 | 
| +  Open(file, open_flags);
 | 
|  }
 | 
|  
 | 
|  FileStream::~FileStream() {
 | 
| @@ -147,6 +141,13 @@ void FileStream::Close() {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void FileStream::Release() {
 | 
| +  if (file_ != INVALID_HANDLE_VALUE)
 | 
| +    CancelIo(file_);
 | 
| +  async_context_.reset();
 | 
| +  file_ = INVALID_HANDLE_VALUE;
 | 
| +}
 | 
| +
 | 
|  int FileStream::Open(const FilePath& path, int open_flags) {
 | 
|    if (IsOpen()) {
 | 
|      DLOG(FATAL) << "File is already open!";
 | 
| @@ -170,6 +171,26 @@ int FileStream::Open(const FilePath& path, int open_flags) {
 | 
|    return OK;
 | 
|  }
 | 
|  
 | 
| +int FileStream::Open(base::PlatformFile file, int open_flags) {
 | 
| +  if (IsOpen()) {
 | 
| +    DLOG(FATAL) << "File is already open!";
 | 
| +    return ERR_UNEXPECTED;
 | 
| +  }
 | 
| +
 | 
| +  open_flags_ = open_flags;
 | 
| +  file_ = file;
 | 
| +
 | 
| +  // If the file handle is opened with base::PLATFORM_FILE_ASYNC, we need to
 | 
| +  // make sure we will perform asynchronous File IO to it.
 | 
| +  if (open_flags_ & base::PLATFORM_FILE_ASYNC) {
 | 
| +    async_context_.reset(new AsyncContext(this));
 | 
| +    MessageLoopForIO::current()->RegisterIOHandler(file_,
 | 
| +                                                   async_context_.get());
 | 
| +  }
 | 
| +
 | 
| +  return OK;
 | 
| +}
 | 
| +
 | 
|  bool FileStream::IsOpen() const {
 | 
|    return file_ != INVALID_HANDLE_VALUE;
 | 
|  }
 | 
| 
 |