Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1572)

Unified Diff: content/browser/renderer_host/redirect_to_file_resource_handler.h

Issue 11414299: Add content/browser/loader/ for resource loading related classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/redirect_to_file_resource_handler.h
===================================================================
--- content/browser/renderer_host/redirect_to_file_resource_handler.h (revision 171168)
+++ content/browser/renderer_host/redirect_to_file_resource_handler.h (working copy)
@@ -1,107 +0,0 @@
-// Copyright (c) 2012 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 CONTENT_BROWSER_RENDERER_HOST_REDIRECT_TO_FILE_RESOURCE_HANDLER_H_
-#define CONTENT_BROWSER_RENDERER_HOST_REDIRECT_TO_FILE_RESOURCE_HANDLER_H_
-
-#include "base/file_path.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/platform_file.h"
-#include "content/browser/renderer_host/layered_resource_handler.h"
-#include "net/url_request/url_request_status.h"
-
-namespace net {
-class FileStream;
-class GrowableIOBuffer;
-}
-
-namespace webkit_blob {
-class ShareableFileReference;
-}
-
-namespace content {
-class ResourceDispatcherHostImpl;
-
-// Redirects network data to a file. This is intended to be layered in front
-// of either the AsyncResourceHandler or the SyncResourceHandler.
-class RedirectToFileResourceHandler : public LayeredResourceHandler {
- public:
- RedirectToFileResourceHandler(
- scoped_ptr<ResourceHandler> next_handler,
- int process_id,
- ResourceDispatcherHostImpl* resource_dispatcher_host);
- virtual ~RedirectToFileResourceHandler();
-
- // ResourceHandler implementation:
- virtual bool OnResponseStarted(int request_id,
- ResourceResponse* response,
- bool* defer) OVERRIDE;
- virtual bool OnWillStart(int request_id,
- const GURL& url,
- bool* defer) OVERRIDE;
- virtual bool OnWillRead(int request_id,
- net::IOBuffer** buf,
- int* buf_size,
- int min_size) OVERRIDE;
- virtual bool OnReadCompleted(int request_id,
- int bytes_read,
- bool* defer) OVERRIDE;
- virtual bool OnResponseCompleted(int request_id,
- const net::URLRequestStatus& status,
- const std::string& security_info) OVERRIDE;
-
- private:
- void DidCreateTemporaryFile(base::PlatformFileError error_code,
- base::PassPlatformFile file_handle,
- const FilePath& file_path);
- void DidWriteToFile(int result);
- bool WriteMore();
- bool BufIsFull() const;
- void ResumeIfDeferred();
-
- base::WeakPtrFactory<RedirectToFileResourceHandler> weak_factory_;
-
- ResourceDispatcherHostImpl* host_;
- int process_id_;
- int request_id_;
-
- // We allocate a single, fixed-size IO buffer (buf_) used to read from the
- // network (buf_write_pending_ is true while the system is copying data into
- // buf_), and then write this buffer out to disk (write_callback_pending_ is
- // true while writing to disk). Reading from the network is suspended while
- // the buffer is full (BufIsFull returns true). The write_cursor_ member
- // tracks the offset into buf_ that we are writing to disk.
-
- scoped_refptr<net::GrowableIOBuffer> buf_;
- bool buf_write_pending_;
- int write_cursor_;
-
- scoped_ptr<net::FileStream> file_stream_;
- bool write_callback_pending_;
-
- // |next_buffer_size_| is the size of the buffer to be allocated on the next
- // OnWillRead() call. We exponentially grow the size of the buffer allocated
- // when our owner fills our buffers. On the first OnWillRead() call, we
- // allocate a buffer of 32k and double it in OnReadCompleted() if the buffer
- // was filled, up to a maximum size of 512k.
- int next_buffer_size_;
-
- // We create a ShareableFileReference that's deletable for the temp
- // file created as a result of the download.
- scoped_refptr<webkit_blob::ShareableFileReference> deletable_file_;
-
- bool did_defer_ ;
-
- bool completed_during_write_;
- net::URLRequestStatus completed_status_;
- std::string completed_security_info_;
-
- DISALLOW_COPY_AND_ASSIGN(RedirectToFileResourceHandler);
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_RENDERER_HOST_REDIRECT_TO_FILE_RESOURCE_HANDLER_H_

Powered by Google App Engine
This is Rietveld 408576698