| Index: pdf/document_loader.h
|
| diff --git a/pdf/document_loader.h b/pdf/document_loader.h
|
| index 4e734a0663a4fab82964544eb3f6ae61668b7c81..7e175debdcf878a9511d10a6ebbb2e6e2523ba1d 100644
|
| --- a/pdf/document_loader.h
|
| +++ b/pdf/document_loader.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include <list>
|
| #include <string>
|
| +#include <utility>
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| @@ -14,8 +15,6 @@
|
| #include "ppapi/cpp/url_loader.h"
|
| #include "ppapi/utility/completion_callback_factory.h"
|
|
|
| -#define kDefaultRequestSize 32768u
|
| -
|
| namespace chrome_pdf {
|
|
|
| class DocumentLoader {
|
| @@ -81,12 +80,24 @@ class DocumentLoader {
|
| void LoadFullDocument();
|
| // Download pending requests.
|
| void DownloadPendingRequests();
|
| + // Remove completed ranges.
|
| + void RemoveCompletedRanges();
|
| + // Returns true if we are already in progress satisfying the request, or just
|
| + // about ready to start. This helps us avoid expensive jumping around, and
|
| + // even worse leaving tiny gaps in the byte stream that might have to be
|
| + // filled later.
|
| + bool SatisfyingRequest(size_t pos, size_t size) const;
|
| // Called when we complete server request and read all data from it.
|
| void ReadComplete();
|
| // Creates request to download size byte of data data starting from position.
|
| pp::URLRequestInfo GetRequest(uint32_t position, uint32_t size) const;
|
| - // Returns current request size in bytes.
|
| - uint32_t GetRequestSize() const;
|
| + // Updates the rendering by the Client.
|
| + void UpdateRendering();
|
| +
|
| + // Document below size will be downloaded in one chunk.
|
| + static const uint32_t kMinFileSize = 64 * 1024;
|
| + // Number was chosen in crbug.com/78264#c8
|
| + enum { kDefaultRequestSize = 65536 };
|
|
|
| Client* client_;
|
| std::string url_;
|
| @@ -97,6 +108,15 @@ class DocumentLoader {
|
| bool request_pending_;
|
| typedef std::list<std::pair<size_t, size_t> > PendingRequests;
|
| PendingRequests pending_requests_;
|
| + // The starting position of the HTTP request currently being processed.
|
| + size_t current_request_offset_;
|
| + // The size of the byte range the current HTTP request must download before
|
| + // being cancelled.
|
| + size_t current_request_size_;
|
| + // The actual byte range size of the current HTTP request. This may be larger
|
| + // than |current_request_size_| and the request may be cancelled before
|
| + // reaching |current_request_offset_| + |current_request_extended_size_|.
|
| + size_t current_request_extended_size_;
|
| char buffer_[kDefaultRequestSize];
|
| uint32_t current_pos_;
|
| uint32_t current_chunk_size_;
|
|
|