| 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_
|
|
|