Index: webkit/browser/blob/blob_url_request_job.h |
diff --git a/webkit/browser/blob/blob_url_request_job.h b/webkit/browser/blob/blob_url_request_job.h |
index 1f2bf5b7adfc0872eae4dcc53a81d4a5d07751a1..c494621d0e8cba12a383f5ca6d5a78e96c038877 100644 |
--- a/webkit/browser/blob/blob_url_request_job.h |
+++ b/webkit/browser/blob/blob_url_request_job.h |
@@ -1,129 +1,5 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright 2014 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. |
-#ifndef WEBKIT_BROWSER_BLOB_BLOB_URL_REQUEST_JOB_H_ |
-#define WEBKIT_BROWSER_BLOB_BLOB_URL_REQUEST_JOB_H_ |
- |
-#include <map> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "net/http/http_byte_range.h" |
-#include "net/http/http_status_code.h" |
-#include "net/url_request/url_request_job.h" |
-#include "webkit/browser/storage_browser_export.h" |
-#include "webkit/common/blob/blob_data.h" |
- |
-namespace base { |
-class MessageLoopProxy; |
-} |
- |
-namespace storage { |
-class FileSystemContext; |
-} |
- |
-namespace net { |
-class DrainableIOBuffer; |
-class IOBuffer; |
-} |
- |
-namespace storage { |
- |
-class FileStreamReader; |
- |
-// A request job that handles reading blob URLs. |
-class STORAGE_EXPORT BlobURLRequestJob |
- : public net::URLRequestJob { |
- public: |
- BlobURLRequestJob(net::URLRequest* request, |
- net::NetworkDelegate* network_delegate, |
- const scoped_refptr<BlobData>& blob_data, |
- storage::FileSystemContext* file_system_context, |
- base::MessageLoopProxy* resolving_message_loop_proxy); |
- |
- // net::URLRequestJob methods. |
- virtual void Start() OVERRIDE; |
- virtual void Kill() OVERRIDE; |
- virtual bool ReadRawData(net::IOBuffer* buf, |
- int buf_size, |
- int* bytes_read) OVERRIDE; |
- virtual bool GetMimeType(std::string* mime_type) const OVERRIDE; |
- virtual void GetResponseInfo(net::HttpResponseInfo* info) OVERRIDE; |
- virtual int GetResponseCode() const OVERRIDE; |
- virtual void SetExtraRequestHeaders( |
- const net::HttpRequestHeaders& headers) OVERRIDE; |
- |
- protected: |
- virtual ~BlobURLRequestJob(); |
- |
- private: |
- typedef std::map<size_t, FileStreamReader*> IndexToReaderMap; |
- |
- // For preparing for read: get the size, apply the range and perform seek. |
- void DidStart(); |
- bool AddItemLength(size_t index, int64 item_length); |
- void CountSize(); |
- void DidCountSize(int error); |
- void DidGetFileItemLength(size_t index, int64 result); |
- void Seek(int64 offset); |
- |
- // For reading the blob. |
- bool ReadLoop(int* bytes_read); |
- bool ReadItem(); |
- void AdvanceItem(); |
- void AdvanceBytesRead(int result); |
- bool ReadBytesItem(const BlobData::Item& item, int bytes_to_read); |
- bool ReadFileItem(FileStreamReader* reader, int bytes_to_read); |
- |
- void DidReadFile(int result); |
- void DeleteCurrentFileReader(); |
- |
- int ComputeBytesToRead() const; |
- int BytesReadCompleted(); |
- |
- // These methods convert the result of blob data reading into response headers |
- // and pass it to URLRequestJob's NotifyDone() or NotifyHeadersComplete(). |
- void NotifySuccess(); |
- void NotifyFailure(int); |
- void HeadersCompleted(net::HttpStatusCode status_code); |
- |
- // Returns a FileStreamReader for a blob item at |index|. |
- // If the item at |index| is not of file this returns NULL. |
- FileStreamReader* GetFileStreamReader(size_t index); |
- |
- // Creates a FileStreamReader for the item at |index| with additional_offset. |
- void CreateFileStreamReader(size_t index, int64 additional_offset); |
- |
- scoped_refptr<BlobData> blob_data_; |
- |
- // Variables for controlling read from |blob_data_|. |
- scoped_refptr<storage::FileSystemContext> file_system_context_; |
- scoped_refptr<base::MessageLoopProxy> file_thread_proxy_; |
- std::vector<int64> item_length_list_; |
- int64 total_size_; |
- int64 remaining_bytes_; |
- int pending_get_file_info_count_; |
- IndexToReaderMap index_to_reader_; |
- size_t current_item_index_; |
- int64 current_item_offset_; |
- |
- // Holds the buffer for read data with the IOBuffer interface. |
- scoped_refptr<net::DrainableIOBuffer> read_buf_; |
- |
- // Is set when NotifyFailure() is called and reset when DidStart is called. |
- bool error_; |
- |
- bool byte_range_set_; |
- net::HttpByteRange byte_range_; |
- |
- scoped_ptr<net::HttpResponseInfo> response_info_; |
- |
- base::WeakPtrFactory<BlobURLRequestJob> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BlobURLRequestJob); |
-}; |
- |
-} // namespace storage |
- |
-#endif // WEBKIT_BROWSER_BLOB_BLOB_URL_REQUEST_JOB_H_ |
+#include "storage/browser/blob/blob_url_request_job.h" |