Index: content/browser/renderer_host/buffered_resource_handler.h |
=================================================================== |
--- content/browser/renderer_host/buffered_resource_handler.h (revision 171168) |
+++ content/browser/renderer_host/buffered_resource_handler.h (working copy) |
@@ -1,116 +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_BUFFERED_RESOURCE_HANDLER_H_ |
-#define CONTENT_BROWSER_RENDERER_HOST_BUFFERED_RESOURCE_HANDLER_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/memory/weak_ptr.h" |
-#include "content/browser/renderer_host/layered_resource_handler.h" |
-#include "content/public/browser/resource_controller.h" |
- |
-namespace net { |
-class URLRequest; |
-} |
- |
-namespace webkit { |
-struct WebPluginInfo; |
-} |
- |
-namespace content { |
-class ResourceDispatcherHostImpl; |
- |
-// Used to buffer a request until enough data has been received. |
-class BufferedResourceHandler |
- : public LayeredResourceHandler, |
- public ResourceController { |
- public: |
- BufferedResourceHandler(scoped_ptr<ResourceHandler> next_handler, |
- ResourceDispatcherHostImpl* host, |
- net::URLRequest* request); |
- virtual ~BufferedResourceHandler(); |
- |
- private: |
- // ResourceHandler implementation: |
- virtual void SetController(ResourceController* controller) OVERRIDE; |
- virtual bool OnResponseStarted(int request_id, |
- ResourceResponse* response, |
- 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; |
- |
- // ResourceController implementation: |
- virtual void Resume() OVERRIDE; |
- virtual void Cancel() OVERRIDE; |
- virtual void CancelAndIgnore() OVERRIDE; |
- virtual void CancelWithError(int error_code) OVERRIDE; |
- |
- bool ProcessResponse(bool* defer); |
- |
- bool ShouldSniffContent(); |
- bool DetermineMimeType(); |
- bool SelectNextHandler(bool* defer); |
- bool UseAlternateNextHandler(scoped_ptr<ResourceHandler> handler); |
- |
- bool ReplayReadCompleted(bool* defer); |
- void CallReplayReadCompleted(); |
- |
- bool MustDownload(); |
- bool HasSupportingPlugin(bool* is_stale); |
- |
- // Copies data from |read_buffer_| to |next_handler_|. |
- bool CopyReadBufferToNextHandler(int request_id); |
- |
- // Called on the IO thread once the list of plugins has been loaded. |
- void OnPluginsLoaded(const std::vector<webkit::WebPluginInfo>& plugins); |
- |
- enum State { |
- STATE_STARTING, |
- |
- // In this state, we are filling read_buffer_ with data for the purpose |
- // of sniffing the mime type of the response. |
- STATE_BUFFERING, |
- |
- // In this state, we are select an appropriate downstream ResourceHandler |
- // based on the mime type of the response. We are also potentially waiting |
- // for plugins to load so that we can determine if a plugin is available to |
- // handle the mime type. |
- STATE_PROCESSING, |
- |
- // In this state, we are replaying buffered events (OnResponseStarted and |
- // OnReadCompleted) to the downstream ResourceHandler. |
- STATE_REPLAYING, |
- |
- // In this state, we are just a blind pass-through ResourceHandler. |
- STATE_STREAMING |
- }; |
- State state_; |
- |
- scoped_refptr<ResourceResponse> response_; |
- ResourceDispatcherHostImpl* host_; |
- net::URLRequest* request_; |
- scoped_refptr<net::IOBuffer> read_buffer_; |
- int read_buffer_size_; |
- int bytes_read_; |
- |
- bool must_download_; |
- bool must_download_is_set_; |
- |
- base::WeakPtrFactory<BufferedResourceHandler> weak_ptr_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BufferedResourceHandler); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_BROWSER_RENDERER_HOST_BUFFERED_RESOURCE_HANDLER_H_ |