| Index: content/browser/loader/navigation_resource_handler.h
|
| diff --git a/content/browser/loader/navigation_resource_handler.h b/content/browser/loader/navigation_resource_handler.h
|
| index c605e62c3ebc478180414dd6c4d021cb045eb8cf..af1db87310ca380c717ee7d73d1c71feca46e520 100644
|
| --- a/content/browser/loader/navigation_resource_handler.h
|
| +++ b/content/browser/loader/navigation_resource_handler.h
|
| @@ -9,10 +9,12 @@
|
|
|
| #include "base/macros.h"
|
| #include "content/browser/loader/resource_handler.h"
|
| -#include "content/browser/loader/stream_writer.h"
|
| +#include "mojo/public/cpp/system/data_pipe.h"
|
| +#include "mojo/public/cpp/system/simple_watcher.h"
|
|
|
| namespace net {
|
| class SSLInfo;
|
| +class IOBufferWithSize;
|
| }
|
|
|
| namespace content {
|
| @@ -65,14 +67,42 @@ class NavigationResourceHandler : public ResourceHandler {
|
| void OnDataDownloaded(int bytes_downloaded) override;
|
|
|
| private:
|
| + class SharedWriter;
|
| + class WriterIOBuffer;
|
| +
|
| // Clears |core_| and its reference to the resource handler. After calling
|
| // this, the lifetime of the request is no longer tied to |core_|.
|
| void DetachFromCore();
|
|
|
| + void InitializeDataPipe(mojo::ScopedDataPipeConsumerHandle* consumer_handle);
|
| + virtual MojoResult BeginWrite(void** data, uint32_t* available);
|
| + virtual MojoResult EndWrite(uint32_t written);
|
| + bool CopyReadDataToDataPipe(bool* defer);
|
| + bool AllocateWriterIOBuffer(scoped_refptr<net::IOBufferWithSize>* buf,
|
| + bool* defer);
|
| + void OnWritable(MojoResult result);
|
| +
|
| NavigationURLLoaderImplCore* core_;
|
| - StreamWriter writer_;
|
| ResourceDispatcherHostDelegate* resource_dispatcher_host_delegate_;
|
|
|
| + bool is_using_io_buffer_not_from_writer_ = false;
|
| +
|
| + // True if OnWillRead was deferred, in order to wait to be able to allocate a
|
| + // buffer.
|
| + bool did_defer_on_will_read_ = false;
|
| + bool did_defer_on_writing_ = false;
|
| + bool did_defer_on_redirect_ = false;
|
| +
|
| + scoped_refptr<net::IOBuffer>* parent_buffer_ = nullptr;
|
| + int* parent_buffer_size_ = nullptr;
|
| +
|
| + mojo::SimpleWatcher handle_watcher_;
|
| + scoped_refptr<net::IOBufferWithSize> buffer_;
|
| + size_t buffer_offset_ = 0;
|
| + size_t buffer_bytes_read_ = 0;
|
| + scoped_refptr<SharedWriter> shared_writer_;
|
| + bool first_read_ = true;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NavigationResourceHandler);
|
| };
|
|
|
|
|