| OLD | NEW | 
|   1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |   1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4 // |   4 // | 
|   5 // MimeSnifferProxy wraps an URLRequest to use mime_util's MIME |   5 // MimeSnifferProxy wraps an URLRequest to use mime_util's MIME | 
|   6 // sniffer to better report the content's MIME type. |   6 // sniffer to better report the content's MIME type. | 
|   7 // It only supports a subset of the URLRequest API, and must be used together |   7 // It only supports a subset of the URLRequest API, and must be used together | 
|   8 // with an URLRequest.  Their lifetimes should be the same. |   8 // with an URLRequest.  Their lifetimes should be the same. | 
|   9 // |   9 // | 
|  10 // To use it, create a normal URLRequest and initialize it appropriately, |  10 // To use it, create a normal URLRequest and initialize it appropriately, | 
|  11 // then insert a MimeSnifferProxy between your object and the URLRequest: |  11 // then insert a MimeSnifferProxy between your object and the URLRequest: | 
|  12 //   ms_.reset(new MimeSnifferProxy(url_request, this)); |  12 //   ms_.reset(new MimeSnifferProxy(url_request, this)); | 
|  13 // It then proxies URLRequest delegate callbacks (from URLRequest back into |  13 // It then proxies URLRequest delegate callbacks (from URLRequest back into | 
|  14 // your object) appropriately. |  14 // your object) appropriately. | 
|  15 // |  15 // | 
|  16 // For the other direction of calls (from your object to URLRequest), be sure |  16 // For the other direction of calls (from your object to URLRequest), be sure | 
|  17 // to use two MimeSniffed functions in place of the URLRequest functions: |  17 // to use two MimeSniffed functions in place of the URLRequest functions: | 
|  18 // 1) ms_->Read() -- just like URLRequest::Read() |  18 // 1) ms_->Read() -- just like URLRequest::Read() | 
|  19 // 2) ms_->mime_type() -- returns the sniffed mime type of the data; |  19 // 2) ms_->mime_type() -- returns the sniffed mime type of the data; | 
|  20 //    valid after OnResponseStarted() is called. |  20 //    valid after OnResponseStarted() is called. | 
|  21  |  21  | 
|  22 #ifndef NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ |  22 #ifndef NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ | 
|  23 #define NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ |  23 #define NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ | 
|  24  |  24  | 
|  25 #include "net/base/io_buffer.h" |  | 
|  26 #include "net/url_request/url_request.h" |  25 #include "net/url_request/url_request.h" | 
|  27  |  26  | 
 |  27 namespace net { | 
 |  28 class IOBuffer; | 
 |  29 } | 
 |  30  | 
|  28 class MimeSnifferProxy : public URLRequest::Delegate { |  31 class MimeSnifferProxy : public URLRequest::Delegate { | 
|  29  public: |  32  public: | 
|  30   // The constructor inserts this MimeSnifferProxy in between the URLRequest |  33   // The constructor inserts this MimeSnifferProxy in between the URLRequest | 
|  31   // and the URLRequest::Delegate, so that the URLRequest's delegate callbacks |  34   // and the URLRequest::Delegate, so that the URLRequest's delegate callbacks | 
|  32   // first go through the MimeSnifferProxy. |  35   // first go through the MimeSnifferProxy. | 
|  33   MimeSnifferProxy(URLRequest* request, URLRequest::Delegate* delegate); |  36   MimeSnifferProxy(URLRequest* request, URLRequest::Delegate* delegate); | 
|  34  |  37  | 
|  35   // URLRequest::Delegate implementation. |  38   // URLRequest::Delegate implementation. | 
|  36   // These first two functions are handled specially: |  39   // These first two functions are handled specially: | 
|  37   virtual void OnResponseStarted(URLRequest* request); |  40   virtual void OnResponseStarted(URLRequest* request); | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  72   // Whether we've encountered an error on our initial Read(). |  75   // Whether we've encountered an error on our initial Read(). | 
|  73   bool error_; |  76   bool error_; | 
|  74  |  77  | 
|  75   // A buffer for the first bit of the request. |  78   // A buffer for the first bit of the request. | 
|  76   scoped_refptr<net::IOBuffer> buf_; |  79   scoped_refptr<net::IOBuffer> buf_; | 
|  77   // The number of bytes we've read into the buffer. |  80   // The number of bytes we've read into the buffer. | 
|  78   int bytes_read_; |  81   int bytes_read_; | 
|  79 }; |  82 }; | 
|  80  |  83  | 
|  81 #endif  // NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ |  84 #endif  // NET_URL_REQUEST_MIME_SNIFFER_PROXY_H_ | 
| OLD | NEW |