Index: chrome/browser/renderer_host/download_throttling_resource_handler.h |
=================================================================== |
--- chrome/browser/renderer_host/download_throttling_resource_handler.h (revision 96872) |
+++ chrome/browser/renderer_host/download_throttling_resource_handler.h (working copy) |
@@ -1,100 +0,0 @@ |
-// Copyright (c) 2011 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 CHROME_BROWSER_RENDERER_HOST_DOWNLOAD_THROTTLING_RESOURCE_HANDLER_H_ |
-#define CHROME_BROWSER_RENDERER_HOST_DOWNLOAD_THROTTLING_RESOURCE_HANDLER_H_ |
-#pragma once |
- |
-#include <string> |
- |
-#include "chrome/browser/download/download_request_limiter.h" |
-#include "content/browser/renderer_host/resource_handler.h" |
-#include "googleurl/src/gurl.h" |
- |
-class DownloadResourceHandler; |
-class ResourceDispatcherHost; |
- |
-namespace net { |
-class URLRequest; |
-} // namespace net |
- |
-// DownloadThrottlingResourceHandler is used to determine if a download should |
-// be allowed. When a DownloadThrottlingResourceHandler is created it pauses the |
-// download and asks the DownloadRequestLimiter if the download should be |
-// allowed. The DownloadRequestLimiter notifies us asynchronously as to whether |
-// the download is allowed or not. If the download is allowed the request is |
-// resumed, a DownloadResourceHandler is created and all EventHandler methods |
-// are delegated to it. If the download is not allowed the request is canceled. |
- |
-class DownloadThrottlingResourceHandler |
- : public ResourceHandler, |
- public DownloadRequestLimiter::Callback { |
- public: |
- DownloadThrottlingResourceHandler(ResourceDispatcherHost* host, |
- net::URLRequest* request, |
- const GURL& url, |
- int render_process_host_id, |
- int render_view_id, |
- int request_id, |
- bool in_complete); |
- |
- // ResourceHanlder implementation: |
- virtual bool OnUploadProgress(int request_id, |
- uint64 position, |
- uint64 size); |
- virtual bool OnRequestRedirected(int request_id, const GURL& url, |
- ResourceResponse* response, bool* defer); |
- virtual bool OnResponseStarted(int request_id, ResourceResponse* response); |
- virtual bool OnWillStart(int request_id, const GURL& url, bool* defer); |
- virtual bool OnWillRead(int request_id, net::IOBuffer** buf, int* buf_size, |
- int min_size); |
- virtual bool OnReadCompleted(int request_id, int* bytes_read); |
- virtual bool OnResponseCompleted(int request_id, |
- const net::URLRequestStatus& status, |
- const std::string& security_info); |
- virtual void OnRequestClosed(); |
- |
- // DownloadRequestLimiter::Callback implementation: |
- virtual void CancelDownload(); |
- virtual void ContinueDownload(); |
- |
- private: |
- virtual ~DownloadThrottlingResourceHandler(); |
- |
- void CopyTmpBufferToDownloadHandler(); |
- |
- ResourceDispatcherHost* host_; |
- net::URLRequest* request_; |
- GURL url_; |
- int render_process_host_id_; |
- int render_view_id_; |
- int request_id_; |
- |
- // Handles the actual download. This is only created if the download is |
- // allowed to continue. |
- scoped_refptr<DownloadResourceHandler> download_handler_; |
- |
- // Response supplied to OnResponseStarted. Only non-null if OnResponseStarted |
- // is invoked. |
- scoped_refptr<ResourceResponse> response_; |
- |
- // If we're created by way of BufferedEventHandler we'll get one request for |
- // a buffer. This is that buffer. |
- scoped_refptr<net::IOBuffer> tmp_buffer_; |
- int tmp_buffer_length_; |
- |
- // If true the next call to OnReadCompleted is ignored. This is used if we're |
- // paused during a call to OnReadCompleted. Pausing during OnReadCompleted |
- // results in two calls to OnReadCompleted for the same data. This make sure |
- // we ignore one of them. |
- bool ignore_on_read_complete_; |
- |
- // Have we received OnRequestClosed()? If so, we shouldn't act on |
- // CancelDownload()/ContinueDownload(). |
- bool request_closed_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DownloadThrottlingResourceHandler); |
-}; |
- |
-#endif // CHROME_BROWSER_RENDERER_HOST_DOWNLOAD_THROTTLING_RESOURCE_HANDLER_H_ |